2025-02-23  Stefan Kangas  <stefankangas@gmail.com>

	Mention CVE-2025-1244 in NEWS

	* etc/NEWS: Document CVE-2025-1244.

	For anyone looking to backport this, the fix is in commit
	820f0793f0b46448928905552726c1f1b999062f.

2025-02-23  Yuan Fu  <casouri@gmail.com>

	Use character position for ranges in treesit_sync_visible_region

	* src/treesit.c (treesit_sync_visible_region): Use character position
	instead of byte position when comparing to ranges, because the
	ranges are in character position.

2025-02-21  Po Lu  <luangruo@yahoo.com>

	Fix reported Haiku build error in emacs-30.1-rc1

	* src/haiku_support.cc (keysym_from_raw_char): Don't define
	duplicate cases on the previous release.

2025-02-20  Stefan Kangas  <stefankangas@gmail.com>

	Bump Emacs version to 30.1

	* README:
	* configure.ac:
	* exec/configure.ac:
	* msdos/sed2v2.inp:
	* nt/README.W32: Bump Emacs version to 30.1.

2025-02-20  Stefan Kangas  <stefankangas@gmail.com>

	Update files for Emacs 30.1

	* ChangeLog.4:
	* etc/AUTHORS: Update for Emacs 30.1.

2025-02-19  Po Lu  <luangruo@yahoo.com>

	Fix remaining Android bugs reported over the past months

	* java/org/gnu/emacs/EmacsActivity.java (attachWindow):
	Guarantee that child windows promoted to toplevels receive
	layout parameters that direct them to receive their parents'
	dimensions.  Otherwise, the size of the window as a child is
	retained on Huawei HarmonyOS 4.2 and possibly other Android
	distributions.

	* java/org/gnu/emacs/EmacsService.java (updateCursorAnchorInfo):
	Run anchor updates on the UI thread, as
	`InputMethodManager#updateCursorAnchorInfo' is liable to call
	`View#requestLayout'.

	* java/org/gnu/emacs/EmacsView.java (onMeasure): Always call
	`measureChildren', or child frames' onLayout handlers might not
	be invoked after they request a layout cycle and are duly
	processed in `onLayout'.
	(swapBuffers): Delete erroneous commentary.

	* java/org/gnu/emacs/EmacsWindow.java (viewLayout): If
	overrideRedirect, don't inadvertently clear rect.left and
	rect.top by recording the window's WM window-relative position.
	Fix typos.
	(reparentTo): Invalidate focus after transferring frame.
	(translateCoordinates): Account for override-redirect windows.
	Mostly important for mouse-drag-and-drop-region.

2025-02-19  Po Lu  <luangruo@yahoo.com>

	Properly move existing tooltips on Android

	* java/org/gnu/emacs/EmacsWindow.java (requestViewLayout): If an
	override redirect window, additionally notify the window manager
	of layout changes.

2025-02-17  Po Lu  <luangruo@yahoo.com>

	Fix crash in frame deletion on Android

	* java/org/gnu/emacs/EmacsWindow.java (destroyHandle):
	Invalidate the input focus in the UI thread, as is proper.

2025-02-17  Po Lu  <luangruo@yahoo.com>

	* src/pgtkterm.c (pgtk_enumerate_devices): Circumvent bug#76239.

2025-02-16  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/man.el (Man-shell-file-name): Ensure a Bourne shell.  (Bug#75308)

2025-02-15  Po Lu  <luangruo@yahoo.com>

	Add two missing NULL checks of malloc'd values on Android

	* src/android.c (sendDndUri, sendDndText): Verify that allocated
	string memory is non-nil before writing to it.

2025-02-13  Stefan Kangas  <stefankangas@gmail.com>

	Fix (Non)GNU ELPA description in manual

	* doc/emacs/package.texi (Packages): Move detailed (Non)GNU ELPA
	description...
	(Package Installation): ...here, and fix incorrect information.

2025-02-13  Stefan Kangas  <stefankangas@gmail.com>

	Move 'package-archives' documentation to emacs manual

	* doc/lispref/package.texi (Package Archives): Move documentation
	of package-archives variable from here...
	* doc/emacs/package.texi (Package Installation): ...to here.
	(Bug#76266)

2025-02-12  Stefan Kangas  <stefankangas@gmail.com>

	Document (Non-)GNU ELPA in emacs manual

	* doc/emacs/package.texi (Packages): Document GNU ELPA and NonGNU
	ELPA.  (Bug#59609)

2025-02-12  Robert Pluim  <rpluim@gmail.com>

	Fix author name

	* admin/authors.el (authors-aliases): Fix entry for
	"thuna.cing@gmail.com"  (Bug#76221).

2025-02-12  Yuan Fu  <casouri@gmail.com>

	Use c-ts-common's comment setup in go-ts-mode (bug#75978)

	c-ts-common-comment-setup sets up fill-paragraph-function, which
	enables filling for comments.

	* lisp/progmodes/go-ts-mode.el (go-ts-mode):
	(go-mod-ts-mode): Use c-ts-common-comment-setup.

2025-02-12  Robert Brown  <robert.brown@gmail.com>  (tiny change)

	Add java-language-server to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add support for Java
	server <https://github.com/georgewfraser/java-language-server>.
	(Bug#59138)

2025-02-11  João Távora  <joaotavora@gmail.com>

	Eglot: mention ocaml-ts-mode in eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Mention
	ocaml-ts-mode.

	(cherry picked from commit 96dc5deddc2b60210feb10e3a68b74ecd2480b34)

2025-02-11  Dmitry Gutov  <dmitry@gutov.dev>

	Fix minibuffer-next-completion in completing-read-multiple

	* lisp/emacs-lisp/crm.el (completing-read-multiple):
	Adapt to the previous removal of completion-base-affixes
	(bug#48356, bug#48356).

2025-02-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/help.el (help-function-arglist): Fix out-of-bounds access (bug#76179)

2025-02-09  Po Lu  <luangruo@yahoo.com>

	Fix program execution on Android 15 QPR2 Beta

	* exec/trace.c (process_vm_readv, process_vm_writev): New
	function pointers.  Attempt to load them on recent Android
	systems when `exec' was not linked with a sufficiently
	up-to-date libc.
	(read_memory, user_copy): Always use process_vm_readv and
	process_vm_writev if available.
	(handle_openat): Write trailing NULL byte of filename to user
	buffer.
	(exec_init): Attempt to dlsym process_vm_readv and
	process_vm_writev.

2025-02-07  Mauro Aranda  <maurooaranda@gmail.com>

	Fix gnus-score-find-score-files-function :type

	* lisp/gnus/gnus-score.el (gnus-score-find-score-files-function):
	Delete extra quotes.  (Bug#76118)

2025-02-06  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'file-name-concat'

	* doc/lispref/files.texi (Directory Names):
	* src/fileio.c (Ffile_name_concat): Advise not to use
	'file-name-concat' unless necessary.  (Bug#76023)

2025-02-04  Eli Zaretskii  <eliz@gnu.org>

	* src/fileio.c (Fsubstitute_in_file_name): Doc fix (bug#76023).

2025-02-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/track-changes.el (track-changes-fetch): Fix
	bug#75906.

2025-02-03  Michael Albinus  <michael.albinus@gmx.de>

	Better NaN handling in proced-tests.el

	* test/lisp/proced-tests.el (proced--cpu-at-point): Make it more robust.
	(proced--assert-process-valid-cpu-refinement):
	Handle `ert-test-skipped' signal.

2025-02-03  Robert Pluim  <rpluim@gmail.com>

	Fix padding when using which-key-setup-side-window-right

	* lisp/which-key.el (which-key--pad-column): Insert zero padding
	spaces when the description string is longer than the column
	width.  (Bug#75765)

2025-02-02  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'display-monitor-attributes-list'

	* doc/lispref/frames.texi (Multiple Terminals):
	* lisp/frame.el (display-monitor-attributes-list): Better
	documentation of what the 'source' key means on X.  (Bug#75936)

2025-02-01  Eli Zaretskii  <eliz@gnu.org>

	Remove bookmark fringe marks when deleting all bookmarks

	* lisp/bookmark.el (bookmark-delete-all): Remove fringe marks for
	all the bookmarks.  (Bug#75953)

2025-02-01  Stefan Kangas  <stefankangas@gmail.com>

	Improve wording in symbols.texi

	* doc/lispref/symbols.texi (Symbol Components): Improve wording
	(Bug#75512).   Reported by Matt Trzcinski <matt@excalamus.com>.

2025-02-01  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix typo in Gnus manual

	* doc/misc/gnus.texi (Comparing Mail Back Ends): Fix a missing
	verb.  (Bug#75974)

2025-02-01  Damien Cassou  <damien@cassou.me>

	eglot: Allow omnisharp binary to be capitalized "OmniSharp"

	Some distributors (e.g. nixpkgs) provide a binary "OmniSharp"
	instead of "omnisharp", which breaks on case-sensitive
	file-systems.

	* lisp/progmodes/eglot.el (eglot-server-programs): Add "OmniSharp"
	as a valid binary name to search for.  (Bug#75954)

2025-01-31  Stefan Kangas  <stefankangas@gmail.com>

	Do not set `trusted-content' in major modes

	* lisp/progmodes/elisp-mode.el (lisp-interaction-mode):
	* lisp/ielm.el (inferior-emacs-lisp-mode): Do not set
	`trusted-content'.
	* lisp/ielm.el (ielm):
	* lisp/simple.el (get-scratch-buffer-create): Set
	`trusted-content' here instead.
	* lisp/files.el (trusted-content): Doc fix; warn against setting
	this option to :all in a major or mode mode.  Problem reported by
	Max Nikulin <manikulin@gmail.com>.

2025-01-30  Eli Zaretskii  <eliz@gnu.org>

	* src/puresize.h (BASE_PURESIZE): Increase.  (bug#75907)

2025-01-28  Stefan Kangas  <stefankangas@gmail.com>

	Update cc-mode URL to point to nongnu.org

	* doc/misc/cc-mode.texi (Getting Started)
	(Custom Filling and Breaking, Updating CC Mode)
	(Mailing Lists and Bug Reports):
	* lisp/progmodes/cc-mode.el: Update cc-mode URL to point to
	nongnu.org, instead of old URL on SourceForge.

2025-01-28  Michael Albinus  <michael.albinus@gmx.de>

	* CONTRIBUTE: Recommend running the unit test prior to committing.

2025-01-28  Yuan Fu  <casouri@gmail.com>

	Don't signal an error in treesit-node-at

	* lisp/treesit.el (treesit-node-at): Wrap treesit-buffer-root-node
	within condition-case.

2025-01-26  Stefan Kangas  <stefankangas@gmail.com>

	Document insert-directory-program as a user option

	* doc/lispref/files.texi (Contents of Directories): Document
	'insert-directory-program' as a user option.

2025-01-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/lispref/modes.texi (Syntactic Font Lock): Update for commit
	644c6b414f3, by removing an outdated `nil' element, as discussed
	in
	https://lists.gnu.org/archive/html/help-gnu-emacs/2025-01/msg00244.html.

2025-01-25  Zhengyi Fu  <i@fuzy.me>  (tiny change)

	Restore the old behavior of `bookmark-write-file'

	* lisp/bookmark.el (bookmark-write-file): Use 'pp-28' to avoid
	filling the bookmarks.  (Bug#75775)

2025-01-24  Stefan Kangas  <stefankangas@gmail.com>

	Avoid double spaces around abbreviations in Texinfo

	* doc/emacs/custom.texi (Init Rebinding):
	* doc/emacs/dired.texi (Operating on Files):
	* doc/emacs/emacs.texi (Top):
	* doc/emacs/emerge-xtra.texi (Emerge):
	* doc/emacs/files.texi (Files):
	* doc/emacs/frames.texi (Drag and Drop):
	* doc/emacs/misc.texi (Hyperlinking):
	* doc/emacs/modes.texi (Modes):
	* doc/emacs/mule.texi (Input Methods):
	* doc/emacs/windows.texi (Window Tool Bar):
	* doc/lispintro/emacs-lisp-intro.texi
	(Lexical & Dynamic Binding Differences):
	* doc/lispref/elisp.texi (Top):
	* doc/lispref/functions.texi (Functions, Generic Functions):
	* doc/lispref/hash.texi (Defining Hash):
	* doc/lispref/keymaps.texi (Creating Keymaps):
	* doc/lispref/lists.texi (Property Lists):
	* doc/lispref/modes.texi (%-Constructs):
	* doc/lispref/nonascii.texi (Character Properties):
	* doc/lispref/processes.texi (Misc Network):
	* doc/lispref/searching.texi (Regexp Functions):
	* doc/lispref/syntax.texi (Syntax Table Internals):
	* doc/lispref/text.texi (Filling, Checksum/Hash)
	(JSONRPC deferred requests):
	* doc/misc/calc.texi (What is Calc, Modes Tutorial):
	* doc/misc/cc-mode.texi (List Line-Up, Operator Line-Up)
	(Custom Macros, Indenting Directives):
	* doc/misc/efaq.texi (Colors on a TTY, Security risks with Emacs):
	* doc/misc/eglot.texi (Eglot Variables):
	* doc/misc/erc.texi (Connecting):
	* doc/misc/eshell.texi (Aliases, Completion):
	* doc/misc/flymake.texi (Backend functions):
	* doc/misc/gnus-faq.texi (FAQ 5 - Composing messages):
	* doc/misc/gnus.texi (Gnus Unplugged, Window Layout)
	(Filtering Incoming Mail, History):
	* doc/misc/idlwave.texi (Online Help, Catalogs):
	* doc/misc/wisent.texi (Wisent Overview): Be more consistent with
	abbreviations.  Use @: or comma or rewrite to avoid double spaces.
	Ref: https://lists.gnu.org/r/emacs-devel/2025-01/msg00909.html.

2025-01-24  Rudolf Adamkovič  <rudolf@adamkovic.org>

	Ispell: Use "personal dictionary" terminology consistently

	* lisp/textmodes/ispell.el (ispell-command-loop, ispell-help): Use
	consistent terminology when referring to "personal dictionary".
	(Bug#75802)

2025-01-23  Stefan Kangas  <stefankangas@gmail.com>

	Add language server "ruff server" for Python

	* lisp/progmodes/eglot.el (eglot-server-programs): Add "ruff
	server" for Python.

2025-01-23  Randy Taylor  <dev@rjt.dev>

	Fix go-ts-mode type declaration indentation (Bug#75785)

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): Add
	rule for type_declaration.

2025-01-21  Arthur Miller  <arthur.miller@live.com>

	Fix bug in w32_memory_info

	* src/w32.c (w32_memory_info): Initialize struct size.

2025-01-21  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes in redisplay due to problematic font setups

	* src/xdisp.c (handle_single_display_spec)
	(produce_stretch_glyph): Avoid crashes if a face's font is NULL.
	(Bug#75725)

2025-01-20  Robert Pluim  <rpluim@gmail.com>

	Improve 'key-valid-p' docstring

	* lisp/keymap.el (key-valid-p): Add "RET", "<return>", and "C-m"
	examples.  (Bug#75586)

2025-01-19  Stefan Kangas  <stefankangas@gmail.com>

	Minor copyedits in internals.texi

	* doc/lispref/internals.texi (Writing Emacs Primitives): Minor
	copyedits.

2025-01-19  Stefan Kangas  <stefankangas@gmail.com>

	Better document side-effect free and pure C functions

	* doc/lispref/internals.texi (Writing Emacs Primitives): Document
	that side-effect free and pure properties of C functions are
	defined in byte-opt.el.

2025-01-14  Robert Pluim  <rpluim@gmail.com>

	Add smtpmail cross-reference to 'auth-sources'.

	* doc/misc/smtpmail.texi (Authentication): Add cross-reference to
	'auth-sources'.

2025-01-12  Mauro Aranda  <maurooaranda@gmail.com>

	Emphasize the use of :tag for new customization types

	* doc/lispref/customize.texi (Type Keywords): Name important use
	cases of the :tag keyword.
	(Defining New Types): Emphasize the use of the :tag keyword when
	using the lazy widget.  (Bug#74409)

	 (cherry picked from commit 99b85e116f09e68e0d5750c9772d0a2489680078)

2025-01-11  Mauro Aranda  <maurooaranda@gmail.com>

	Fix checkbox's child creation

	* lisp/wid-edit.el (widget-checklist-add-item): Swap function
	calls so that child is actually a widget.  (Bug#72156)

2025-01-11  Eli Zaretskii  <eliz@gnu.org>

	Document that 'package-vc' doesn't support built-in packages

	* doc/misc/use-package.texi (Install package):
	* doc/emacs/package.texi (Fetching Package Sources): Document that
	upgrading built-in packages is not yet supported using
	'package-vc'.  (Bug#75328)

2025-01-11  Stefan Kangas  <stefankangas@gmail.com>

	Improve checkdoc-common-verbs-wrong-voice docstring

	* lisp/emacs-lisp/checkdoc.el (checkdoc-common-verbs-wrong-voice):
	Improve docstring.

2025-01-11  Stefan Kangas  <stefankangas@gmail.com>

	Document string-as-{unibyte,multibyte} as obsolete in manual

	* doc/lispref/nonascii.texi (Selecting a Representation): Document
	string-as-unibyte and string-as-multibyte as obsolete.

2025-01-10  Randy Taylor  <dev@rjt.dev>

	Fix go-ts-mode var spec indentation (Bug#75362)

	v0.21.1 and onwards changed how this was indented.

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): Add
	rule for var_spec_list.

2025-01-09  Kohei Tsuruta  <seventhepg@gmail.com>  (tiny change)

	Add "text" as a thing in tsx-ts-mode

	* lisp/progmodes/typescript-ts-mode.el (tsx-ts-mode): Add
	definition of "text".  (bug#75422)

2025-01-09  Nikolaos Chatzikonstantinou  <nchatz314@gmail.com>

	Improve doc string of 'package-delete'

	* lisp/emacs-lisp/package.el (package-delete): Elaborate on the
	kind of argument expected by the function.  (Bug#75382)

2025-01-08  Stefan Kangas  <stefankangas@gmail.com>

	Clarify that 'mac' line ending convention is not used on macOS

	* doc/emacs/mule.texi (Coding Systems):
	* doc/lispref/nonascii.texi (Coding System Basics): Clarify that
	the 'mac' line ending convention is not used on macOS, and is now
	rare outside of legacy software.

2025-01-07  Ellis Kenyo  <me@elken.dev>  (tiny change)

	Add language server for Odin

	* lisp/progmodes/eglot.el (eglot-server-programs): Add language
	server for the Odin programming language.  (Bug#75421)

2025-01-07  Stefan Kangas  <stefankangas@gmail.com>

	Modernize "Commentary" section of files.el

	* lisp/files.el: Modernize "Commentary" section.  (Bug#75398)

2025-01-05  Michael Albinus  <michael.albinus@gmx.de>

	* INSTALL: Add advice how to invoke 'make install'.  (Bug#74400)

2025-01-05  Hong Xu  <hong@topbug.net>

	Improve the documentation of 'key-valid-p'

	* lisp/keymap.el (key-valid-p): Add an function key and mouse
	button example.  Mention '<left>' as a cursor control key instead
	of a function key.  Briefly explain what an event may be.
	(Bug#75366)

2025-01-04  Ulrich Müller  <ulm@gentoo.org>

	Update doc string of 'insert'

	* src/editfns.c (Finsert): Mention 'decode-coding-string' instead
	of the obsolete 'string-as-multibyte' in doc string.  (Bug#75345)

2025-01-04  Hong Xu  <hong@topbug.net>

	Use `keymap*-set' over `global-set-key'/`define-key' in elisp
	intro

	* doc/lispintro/emacs-lisp-intro.texi (Key Bindings): Since
	`global-set-key' and `define-key' are considered legacy, we
	encourage `keymap-global-set' and `keymap-set' now.  (Bug#74999)

2025-01-04  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation and prompt in 'package-isolate'

	* lisp/emacs-lisp/package.el (package-isolate): Fix doc string and
	the prompt.  (Bug#75163)

2025-01-03  Wilhelm Kirschbaum  <wkirschbaum@gmail.com>

	Update fontification for attribute values in heex-ts-mode

	Attribute values are strings as with html-ts-mode.

	* lisp/progmodes/heex-ts-mode.el (heex-ts--font-lock-settings):
	Change to attribute value to @font-lock-string-face.  (Bug#75192)

2025-01-03  Wilhelm Kirschbaum  <wkirschbaum@gmail.com>

	Add expression handling to heex-ts-mode

	On the latest update of the grammar expressions were added and
	won't be seen as directives anymore.

	* lisp/progmodes/heex-ts-mode.el
	(heex-ts--sexp-regexp): Match on expression as well.
	(heex-ts--indent-rules): Indent on expression end.  (Bug#75191)
	* test/lisp/progmodes/heex-ts-mode-resources/indent.erts: Add expression
	indent test.

2025-01-03  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/man.el (Man-mode): Improve docstring.

2025-01-02  Stefan Kangas  <stefankangas@gmail.com>

	Fix copyright years by hand

	These are dates that admin/update-copyright did not update.

2025-01-02  Stefan Kangas  <stefankangas@gmail.com>

	Update copyright year to 2025

	Run "TZ=UTC0 admin/update-copyright".

2025-01-02  Dmitry Gutov  <dmitry@gutov.dev>

	[project-vc]: Make project-buffers more consistent with
	project-files

	* lisp/progmodes/project.el (project-buffers): Catch
	'file-missing' error to continue anyway if .git does not exist
	(bug#74826).

2025-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	(elisp-flymake-byte-compile): Improve UX with `debug-on-error

	* lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile): Don't jump
	into the debugger just because the content is not trusted.

2024-12-28  Wilhelm Kirschbaum  <wkirschbaum@gmail.com>

	Always match underscore variables for elixir-ts-mode

	The code comment is invalid, as it is common to treat any
	_variable as a comment.

	* lisp/progmodes/elixir-ts-mode.el (elixir-ts-font-lock-settings):
	Add ":override t" to comment identifier match.  (Bug#75156)

2024-12-28  Wilhelm Kirschbaum  <wkirschbaum@gmail.com>

	Add missing fontification matches for elixir-ts-mode

	* lisp/progmodes/elixir-ts-mode.el
	(elixir-ts--font-lock-settings): Add matches for missing tokens
	and fix atom type face.  (Bug#75156)

2024-12-26  Stefan Kangas  <stefankangas@gmail.com>

	Don't start docstrings with "This function" or similar

	* lisp/calculator.el (calculator-add-operators):
	* lisp/erc/erc-backend.el (erc-server-ping-handler):
	* lisp/erc/erc-log.el (erc-generate-log-file-name-with-date):
	(erc-generate-log-file-name-short):
	* lisp/erc/erc-track.el (erc-track-shorten-function):
	* lisp/eshell/em-smart.el (eshell-where-to-jump):
	* lisp/eshell/esh-mode.el (eshell-begin-on-new-line):
	* lisp/gnus/gnus-art.el (gnus-prompt-before-saving):
	* lisp/mail/supercite.el (sc-cite-region-limit):
	* lisp/net/nsm.el (network-security-protocol-checks):
	* lisp/org/org-element.el
	(org-element--cache-avoid-synchronous-headline-re-parsing):
	* lisp/progmodes/hideif.el (hif-merge-ifdef-region):
	* lisp/progmodes/modula2.el (m2-indent):
	* lisp/progmodes/xscheme.el (xscheme-running-p):
	(xscheme-control-g-disabled-p):
	* lisp/tab-bar.el (tab-bar--event-to-item):
	* lisp/which-key.el (which-key--hide-popup): Don't start
	docstrings with "This function" or "This variable".

2024-12-26  Stefan Kangas  <stefankangas@gmail.com>

	Enable indent-tabs-mode in obj-c-mode

	* .dir-locals.el (obj-c-mode): Enable indent-tabs-mode.

2024-12-26  john muhl  <jm@pub.pink>

	Fix comment indent in 'lua-ts-mode' and old grammar

	* lisp/progmodes/lua-ts-mode.el (lua-ts--simple-indent-rules):
	Improve multi-line comment indentation for pre-0.0.19 grammars
	that used a different structure for comment start/end markers.
	(Bug#75107)

2024-12-25  Corwin Brust  <corwin@bru.st>

	* admin/nt/dist-build/build-dep-zips.py (deps src): Handle zst
	format.

	This patch fixes various problems preventing this script from
	working. The job of this script is to collect Emacs' dependanicies
	and the (MSYS2/MinGW64) source archives for dependencies
	(including 2nd etc. order dependencies) into zip archives.  GPL
	requires distributing such archives (along with Emacs' own
	sources) when distributing GPL binaries.

	Most principle of the changes is support for MSYS2 "w64" source
	archives in zst format; previously this script assumed all sources
	were available as tar.gz files.  Additionally several DLLs are
	added to list of required, including sqllite3 and tree-sitter.

	In general this is a maintenance fix to ensure others have access
	to the code used to create pretest (and, presumably release)
	version of Emacs 30.  Additional changes are required to
	progmatically identify changes in Emacs' dependencies (e.g. after
	building a new Emacs binary for distribution).  There is commented
	out code to this effect in the changes I've installed which did
	work, for a brief period in time; I suspect some changes in MSYS2
	made it more difficult (or impossible?) to invoke the MSYS2 shell
	(under which this python script must run) from the MINGW64 (under
	which Emacs is built).  I may resort to a powershell script as a
	way to orchistrate/invoke both MSYS2 and MING64 but I'm currently
	still messing with a Makefile based approach (which would run
	under MINGW64), in any event I believe we're all agreed this
	script must interigate Emacs to create the "starting list" of
	dependencies to include as a way to resolve this issue
	(missing/incorrect deps are frequent source of broken binary
	releases).  (bug#65206)

2024-12-24  Eli Zaretskii  <eliz@gnu.org>

	Document undocumented completion commands

	* src/minibuf.c (Fread_from_minibuffer):
	* lisp/minibuffer.el (minibuffer-complete-history)
	(minibuffer-complete-defaults): Doc fixes.

	* doc/emacs/mini.texi (Completion Commands): Fix markup, style of
	describing commands, and indexing.  Document 'C-x UP' and 'C-x
	DOWN'.

2024-12-23  Corwin Brust  <corwin@bru.st>

	* admin/nt/dist-build/emacs.nsi (Uninstall): Delete only one
	Emacs.

	Previously, the uninstaller would recursively, unconditionally,
	remove the parent folder in which Emacs was installed (the folder
	selected by when running the installer), into which the installer
	places a folder named for the given release (e.g. emacs-30.1).
	This was a problem during uinstalation when the selected folder
	contained other versions of Emacs the user did not wish to remove.
	Additionally, deleting Start Menu short-cuts did not work
	(bug#68756).

	Some installer language now better reflects that users are not
	required to "Accept" the GNU Public License in order to use (etc.)
	Emacs (bug#67667).

	Users selections related to where to create (or not create) Start
	Menu shortcuts are no longer ignored.  (bug#75013)

	Emacs (as installed by the installer) can now be uninstalled via
	Windows' Add/Remove Progrms Control Panel.

	The uninstaller will now remove (empty) parent folders, both under
	Program Files and (when creation of shortcuts is enabled) under
	the select Start Menu location.

2024-12-22  Michael Albinus  <michael.albinus@gmx.de>

	Improve D-Bus and Tramp manual

	* doc/misc/dbus.texi (Overview):
	* doc/misc/tramp.texi (GVFS-based methods): Describe how the
	feature can be checked at runtime.  (Bug#75004)

2024-12-21  john muhl  <jm@pub.pink>

	Add 'lua-ts-mode' to 'interpreter-mode-alist'

	* lisp/progmodes/lua-ts-mode.el: Enable 'lua-ts-mode' for Lua
	scripts based on their interpreter line.  (Bug#74951)

2024-12-21  Richard Lawrence  <rwl@recursewithless.net>

	Document representation of dates in calendar.el

	* lisp/calendar/calendar.el: Add a comment in file header
	explaining how dates are represented.

2024-12-20  Eli Zaretskii  <eliz@gnu.org>

	Autoload 'shortdoc-help-fns-examples-function'

	* lisp/help-fns.el (shortdoc-help-fns-examples-function):
	Autoload, to allow adding it to
	'help-fns-describe-function-functions' as advertised.  (Bug#74995)

2024-12-19  Andrea Corallo  <acorallo@gnu.org>

	* Update 'ldefs-boot.el' (don't merge)

	* lisp/ldefs-boot.el: Update.

2024-12-19  Andrea Corallo  <acorallo@gnu.org>

	* Bump Emacs version to 30.0.93

	* nt/README.W32: Update Emacs version.
	* msdos/sed2v2.inp: Likewise.
	* exec/configure.ac: Likewise.
	* configure.ac: Likewise.
	* README: Likewise.

2024-12-19  Andrea Corallo  <acorallo@gnu.org>

	* Update authors.el

	* admin/authors.el (authors-aliases, authors-valid-file-names)
	(authors-renamed-files-alist): Add entry.

2024-12-18  Eli Zaretskii  <eliz@gnu.org>

	Document 'trusted-content'

	* doc/emacs/misc.texi (Host Security): Document 'trusted-content'.

	* lisp/files.el (trusted-content): Doc fix.

	* etc/NEWS: Mark its entry as "documented".

2024-12-18  Robert Pluim  <rpluim@gmail.com>

	Mention network-interface-list in network-interface-info docstring

	* src/process.c (Fnetwork_interface_info): Reference
	'network-interface-list'.

2024-12-17  Stefan Kangas  <stefankangas@gmail.com>

	Move NEWS items from unreleased 28.3 to released 29.1

	* etc/NEWS.28: Remove empty sections for 28.3.
	Move single pertinent item from here...
	* etc/NEWS.29: ...to here.

2024-12-17  Stefan Kangas  <stefankangas@gmail.com>

	Improve browse-url-android-share docstring

	* lisp/net/browse-url.el (browse-url-android-share): Clarify that
	the option only applies to Android systems.

2024-12-17  Stefan Kangas  <stefankangas@gmail.com>

	Minor doc fix for url-handler-regexp

	* lisp/url/url-handlers.el (url-handler-regexp): Remove mention of
	obsolete internal protocol "about" (i.e. url-about.el).  Reflow.

2024-12-16  Stefan Kangas  <stefankangas@gmail.com>

	Improve reb-change-syntax docstring

	* lisp/emacs-lisp/re-builder.el (reb-change-syntax): Improve docstring.

2024-12-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/files.el (trusted-content-p): Make `:all' work in non-file
	buffers.

2024-12-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/org/ox-texinfo.el (org-texinfo-template): Fix Info format.
	(bug#74844)

2024-12-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	trusted-content: Adjust the last patch based on preliminary
	feedback.

	* lisp/files.el (trusted-content): Rename from `trusted-files'.
	Update all references.

	* lisp/progmodes/elisp-mode.el (lisp-interaction-mode):
	* lisp/ielm.el (inferior-emacs-lisp-mode):
	* lisp/simple.el (read--expression): Set `trusted-content' since
	these buffers contain code that the user presumably intends to run
	anyway.
	(elisp--safe-macroexpand-all): Make the warning more discreet.

2024-12-15  Paul Eggert  <eggert@cs.ucla.edu>

	Update documentation of 'etags' regexps some more

	* doc/emacs/maintaining.texi (Etags Regexps):
	* doc/man/etags.1: Give more details about what's not supported.

2024-12-15  Eli Zaretskii  <eliz@gnu.org>

	Update documentation of 'etags' regexps

	* doc/emacs/maintaining.texi (Etags Regexps):
	* doc/man/etags.1: Say that shy groups are not supported
	(bug#74861).

2024-12-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	elisp-mode.el: Disable Flymake byte-compile backend in untrusted files

	To address serious security issues (CVE-2024-53920), disable
	`elisp-flymake-byte-compile' except in those files which are
	explicitly specified as "trusted".

	For that introduce a new custom var `trusted-files' and new
	function `trusted-content-p'.

	While at it, similarly skip the implicit macroexpansion done
	during completion if the current file is not trusted.

	* lisp/files.el (trusted-files): New variable.
	(trusted-content-p): New function.

	* lisp/progmodes/elisp-mode.el (elisp--safe-macroexpand-all):
	New function, extracted from `elisp--local-variables'.
	Use `trusted-content-p'.
	(elisp--local-variables): Use it.
	(elisp-flymake-byte-compile): Disable according to
	`trusted-content-p'.

2024-12-13  Stephen Gildea  <stepheng+emacs@gildea.com>

	* lisp/time-stamp.el: Limit field width to two digits.

2024-12-10  Philip Kaludercic  <philipk@posteo.net>

	Revert "Attempt to install package first when upgrading"

	This reverts commit 3d8e49c41a66a7f05cb96f84e2a10f0f308ac9ca.

2024-12-10  Robert Pluim  <rpluim@gmail.com>

	Fix 'gnus-select-method' custom type

	* lisp/gnus/gnus.el (gnus-redefine-select-method-widget): Cater
	for the 'gnus-search-engine' configuration variable, which takes 2
	args instead of 1.  (Bug#74759)

2024-12-10  Chu  <maedaqu@gmail.com>  (tiny change)

	Fix typo in maps.texi

	* doc/lispref/maps.texi (Standard Keymaps): Fix typo.  (Bug#74761)

2024-12-09  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/tramp.texi (FUSE-based methods): Fix sshfs reference.

2024-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Improve gnus.texi indexing

	* doc/misc/gnus.texi (Common Variables): Improve indexing.

2024-12-07  Philip Kaludercic  <philipk@posteo.net>

	Attempt to install package first when upgrading

	* lisp/emacs-lisp/package.el (package-upgrade): Swap the
	'package-install' and the 'package-delete' invocations.
	(Bug#74556)

2024-12-07  john muhl  <jm@pub.pink>

	Don't restrict 'lua-ts-send-file' to 'lua-ts-mode'

	* lisp/progmodes/lua-ts-mode.el (lua-ts-send-file): Remove
	restriction on interactive use.  Unlike related send-* commands it
	can be useful to send a file to the Lua interpreter outside of a
	'lua-ts-mode' buffer.  (Bug#74705)

2024-12-07  Vincenzo Pupillo  <vincenzo.pupillo@unimi.it>

	Remove unnecessary function call from 'php-ts-mode'

	* lisp/progmodes/php-ts-mode.el (php-ts-mode): Remove unnecessary
	function call 'treesit-font-lock-recompute-features'.
	(Bug#74688)

	(cherry picked from commit c87c5b95e1309b59b6cb07d07a20234a74a73f35)

2024-12-04  Robert Pluim  <rpluim@gmail.com>

	Add tags to 'compilation-transform-file-match-alist' custom type

	* lisp/progmodes/compile.el (compilation-filter-start): Add some
	more meaningful tags, and switch to using 'radio' instead of
	'choice'.

2024-12-04  Robert Pluim  <rpluim@gmail.com>

	Improve 'compilation-transform-file-match-alist' documentation

	* doc/emacs/building.texi (Compilation Mode): Document
	'compilation-transform-file-match-alist'.
	* lisp/progmodes/compile.el
	(compilation-transform-file-match-alist):
	Expand docstring and add some examples.

2024-12-04  Robert Pluim  <rpluim@gmail.com>

	Improve 'compilation-hidden-output' docstring

	* lisp/progmodes/compile.el (compilation-hidden-output): Escape
	the newline so the example value is more suitable for copying.

2024-12-04  Robert Pluim  <rpluim@gmail.com>

	Improve docstrings of functions for moving to message headers

	* lisp/gnus/message.el (message-goto-to, message-goto-from)
	(message-goto-subject, message-goto-cc, message-goto-bcc)
	(message-goto-fcc, message-goto-reply-to, message-goto-newsgroups)
	(message-goto-distribution, message-goto-followup-to)
	(message-goto-mail-followup-to, message-goto-keywords)
	(message-goto-summary): Mention that these will insert an empty
	header if the header is not found.
	(message-position-on-field): Explain that this inserts an empty
	header if the header is missing, and that insertion is done
	after the headers mentioned in AFTERS.

	(cherry picked from commit 9f266e2d7cde41f5872304bae0b6d2415655f1c8)

2024-12-03  Stephen Berman  <stephen.berman@gmx.net>

	Fix the latest dabbrev-expand test fix

	* test/lisp/dabbrev-tests.el
	(dabbrev-expand-after-killing-buffer): In batch runs of this file,
	the user-error message contains curved quotes, but grave quotes
	when running `make check' (so here was evidently not passed to
	`substitute-command-keys'), so use grave quotes so the test
	succeeds in both modes of execution.

2024-12-02  Michael Albinus  <michael.albinus@gmx.de>

	Fix password prompt in comint (don't merge)

	* lisp/comint.el (comint-watch-for-password-prompt): Use whole
	string for setting the prompt.  (Bug#74626)

2024-12-02  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix the version of librsvg API change

	* src/image.c (init_svg_functions, svg_load_image): The first
	official version that introduces
	'rsvg_handle_get_pixbuf_and_error' is 2.59.0 not 2.58.0.
	(Bug#74606)

2024-12-02  Stephen Berman  <stephen.berman@gmx.net>

	Fix latest test for dabbrev-expand

	* test/lisp/dabbrev-tests.el
	(dabbrev-expand-after-killing-buffer): Fix typo in a 'should'
	test, use part of return value of 'should-error' test, and remove
	mistaken and unfounded FIXME comment.

2024-12-01  Yuan Fu  <casouri@gmail.com>

	Allow passing nil to treesit-node-match-p (bug#74612)

	* src/treesit.c (Ftreesit_node_match_p): Return nil if NODE is
	nil.

2024-12-01  Manuel Giraud  <manuel@ledu-giraud.fr>

	Update to version 2.58 of librsvg API (bug#74606)

	* src/image.c (init_svg_functions): Declare new function.
	(svg_load_image): Use it.

2024-12-01  Visuwesh  <visuweshm@gmail.com>

	Fix decoding of non-ASCII email attachments

	* lisp/mail/rfc2231.el (rfc2231-parse-string): Fix logic when a
	non-ASCII file name is split between two filename*N* parts.
	(Bug#74624)

2024-11-30  Stephen Berman  <stephen.berman@gmx.net>

	Prevent "Selecting deleted buffer" error with dabbrev-expand

	* lisp/dabbrev.el (dabbrev-expand): Use the buffer where the last
	expansion was found only if it is still a live buffer (bug#74090).

	* test/lisp/dabbrev-tests.el (dabbrev-expand-test-minibuffer-3):
	Fix typo in doc string.
	(dabbrev-expand-after-killing-buffer): New test.

2024-11-30  Yuan Fu  <casouri@gmail.com>

	Fix docstring of c-ts-mode-indent-style

	* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-style): Make the
	docstring reflect what's expected by the code.

2024-11-29  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Support PHP 8.4 and more reliable indentation (bug#74525)

	Added support for PHP 8.4 property hook.  More reliable CSS and
	Javascript syntax indentation when there are attributes in
	<script> and <style>.

	* lisp/progmodes/php-ts-mode.el:
	(php-ts-mode--language-source-alist): Switch to the latest php
	grammar.
	(php-ts-mode--js-css-tag-bol): CSS and Javascript indentation is
	now more more reliable in different formatting styles.
	(php-ts-mode--test-property-hook-clause-p): New function that
	tests property_hook support.
	(php-ts-mode--font-lock-settings): Use the new function.
	(php-ts-mode--colorize-css-value): The function now behaves
	exactly like the one in css-ts-mode.
	(php-ts-mode--feature-list): Changed the list to match
	css-ts-mode.

2024-11-28  Martin Rudalics  <rudalics@gmx.at>

	Don't inadvertently reset frame scroll bar sizes (Bug#74435)

	* src/frame.c (gui_set_scroll_bar_width)
	(gui_set_scroll_bar_height): When the new size equals the old one
	do not reset size to default size (Bug#74435).

2024-11-28  Mike Kupfer  <kupfer@rawbw.com>

	Mention special variables in lexical binding documentation

	* doc/lispref/variables.texi (Lexical Binding): Briefly mention
	special variables and their semantics.  (Bug#74540)

2024-11-28  Eli Zaretskii  <eliz@gnu.org>

	Allow to go back to using 'ruby-mode' after loading 'ruby-ts-mode'

	* lisp/progmodes/ruby-ts-mode.el (major-mode-remap-defaults):
	Remap 'ruby-mode' to 'ruby-ts-mode'.  Add commentary.
	* lisp/progmodes/ruby-mode.el (major-mode-remap-defaults): Remove
	any remappings of ruby-mode'.
	* lisp/progmodes/c-ts-mode.el: Fix a typo in a comment.  (Bug#74339)

2024-11-25  Stefan Kangas  <stefankangas@gmail.com>

	Delete obsolete section in admin/notes/repo

	* admin/notes/repo: Delete section "How to merge changes from
	emacs-24 to master", which is documented in
	admin/notes/git-workflow.  Also delete out-of-date autoload
	advice.

2024-11-25  Joost Kremers  <joostkremers@fastmail.com>

	Improve documentation for 'while-let'

	* doc/lispref/control.texi (Conditionals): Reorganize describing
	what's overlapping between the macros (and between the macros and
	let*), and then improve the documentation for 'while-let'.

2024-11-25  Yuan Fu  <casouri@gmail.com>

	Remove mention of treesit-defun-prefer-top-level (bug#74474)

	treesit-defun-prefer-top-level is removed before Emacs 29 released
	and was replaced by treesit-defun-tactic.  These statements that
	set it doesn't do anything other than introduce confusion, so we
	should remove them.

	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode):
	* lisp/progmodes/js.el (js-ts-mode):
	* lisp/progmodes/php-ts-mode.el (php-ts-mode):
	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
	* lisp/progmodes/typescript-ts-mode.el:
	(typescript-ts-base-mode):
	Remove statements setting treesit-defun-prefer-top-level.

2024-11-24  Aaron Jensen  <aaronjensen@gmail.com>

	Fix NS non-native fullscreen on initial frame load (bug#59790)

	* src/nsterm.m ([EmacsView toggleFullScreen:]): Reset
	fs_is_native.

2024-11-24  Eli Zaretskii  <eliz@gnu.org>

	Fix user options for listing and marking diary files

	* lisp/calendar/diary-lib.el (diary-nongregorian-listing-hook)
	(diary-nongregorian-marking-hook): Add Chinese functions to the
	list of variable's options.  (Bug#74498)

2024-11-24  john muhl  <jm@pub.pink>

	Avoid loading 'rx' at runtime in 'lua-ts-mode'

	* lisp/progmodes/lua-ts-mode.el (lua-ts-inferior-lua): Replace
	'rx-to-string' and substitution with 'rx' and 'literal'.
	(Bug#74499)

	(cherry picked from commit e71d714a815e1088f8cfe946b1e431356ec85b24)

2024-11-23  Eli Zaretskii  <eliz@gnu.org>

	Make 'jsonrpc-default-request-timeout' a defcustom

	* lisp/jsonrpc.el (jsonrpc-default-request-timeout): New
	defcustom, replaces a defconst.
	(jsonrpc): New customization group.

	* etc/NEWS: Announce the change.  (Bug#74338)

2024-11-23  Eli Zaretskii  <eliz@gnu.org>

	Update MS-Windows build instructions

	* nt/INSTALL.W64:
	* nt/README.W32: Update the name of the MSYS2 libtree-sitter
	distribution.  Reported by Nerd <hiweedmandriva3@163.com>.
	(Bug#74429)

2024-11-22  Laurence Warne  <laurencewarne@gmail.com>

	Skip proced refine tests on Darwin

	* test/lisp/proced-tests.el (proced-refine-test)
	(proced-refine-with-update-test): Skip if the system is Darwin.

2024-11-21  Eli Zaretskii  <eliz@gnu.org>

	Future-proof loading tree-sitter library on MS-Windows

	* src/treesit.c (syms_of_treesit) <tree-sitter--library-abi>: New
	internal variable.

	* lisp/term/w32-win.el (dynamic-library-alist): Use
	'tree-sitter--library-abi' to select a proper libtree-sitter DLL
	version.

2024-11-21  Eli Zaretskii  <eliz@gnu.org>

	Fix overriding 'c-ts-mode' by 'c-mode'

	* lisp/progmodes/c-ts-mode.el: Remove all c- and c++-mode
	associations from 'major-mode-remap-defaults' before installing
	entries that remap to 'c-ts-mode' and 'c++-ts-mode'.  (Bug#74339)

2024-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/c-ts-mode.el: Demote loading c-ts-mode as a
	configuration.

	See bug#74367.

2024-11-16  F. Jason Park  <jp@neverwas.me>

	Backport: Don't autoload erc-modules

	* doc/misc/erc.texi (Modules): Recommend using `describe-variable'
	instead of `customize-option' because the latter needs the symbol
	to be loaded.
	* lisp/erc/erc.el (erc-modules): Remove autoload cookie because it
	caused customizations for this option to load the main library.
	This reverts the thrust of bb894845 "Teach customize-option about
	erc-modules", which was added in ERC 5.6 and Emacs 30.  The
	motivation for the original offending change was to allow new
	users to run M-x customize-option RET erc-modules RET immediately
	after startup instead of M-x customize-group RET, followed by an
	I-search.  (Bug#73812)

	(Cherry picked from commit 1854f2751e3f73e1e5f12f6de993b6357de1766b)

	Do not merge to master.

2024-11-16  Eli Zaretskii  <eliz@gnu.org>

	Improve the documentation of major-mode remapping

	* etc/NEWS (example):
	* doc/emacs/files.texi (Reverting):
	* doc/emacs/modes.texi (Choosing Modes): Improve the documentation
	of 'major-mode-remap-alist' and mode remapping.  (Bug#74339)

2024-11-15  Robert Pluim  <rpluim@gmail.com>

	Improve 'which-key-special-keys' docstring

	* lisp/which-key.el (which-key-special-keys): Explain the format
	and use 'setopt'.

2024-11-15  Laurence Warne  <laurencewarne@gmail.com>

	Don't error in Proced tests if %CPU is a NaN

	* test/lisp/proced-tests.el (proced--cpu-at-point): New function.
	(proced--assert-process-valid-cpu-refinement)
	(proced-refine-test, proced-refine-with-update-test): If %CPU for any
	process visited is a NaN skip the test.
	(proced-update-preserves-pid-at-point-test): Fix typo in comment.
	(proced--assert-process-valid-cpu-refinement-explainer): Add process
	attributes to the explainer along with tweaking how the process %CPU is
	obtained to account for circumstances where it's not numeric (most
	notably '-nan').

2024-11-15  Joseph Turner  <joseph@breatheoutbreathe.in>

	* lisp/subr.el (read-number): Document collision with
	'format-prompt'.

2024-11-14  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Improve font-locking and indentation in 'php-ts-mode'

	* lisp/progmodes/php-ts-mode.el (php-ts-mode--language-source-alist):
	Updated to latest version of PHP grammar.
	(php-ts-mode--indent-styles): 'namespace_use_declaration' is now
	correctly indented.
	(php-ts-mode--operators): Support of the "argument unpacking
	operator".
	(php-ts-mode--font-lock-settings): 'nullsafe_member_call_expression'
	is now highlighted correctly.
	(php-ts-mode--comment-indent-new-line): Delete trailing whitespace
	before inserting newline (see bug#73900 for more information).
	Bug#74239

2024-11-14  john muhl  <jm@pub.pink>

	Fix some 'lua-ts-mode' options (Bug#74235)

	* lisp/progmodes/lua-ts-mode.el (lua-ts-luacheck-program):
	(lua-ts-inferior-program): Switch to 'file' type and remove 'nil'
	as a choice.
	(lua-ts-inferior-lua): Ensure 'lua-ts-inferior-program' is set.

2024-11-14  john muhl  <jm@pub.pink>

	Improve comment indenting in 'lua-ts-mode'

	* lisp/progmodes/lua-ts-mode.el (lua-ts--simple-indent-rules):
	Align single line comments with the surrounding context.
	(lua-ts--comment-first-sibling-matcher): Check that comment is
	the first sibling.
	(lua-ts--multi-line-comment-start): New function.
	* test/lisp/progmodes/lua-ts-mode-resources/indent.erts:
	Add tests.  (Bug#74298)

2024-11-14  Eshel Yaron  <me@eshelyaron.com>

	Update 'xref-num-matches-found' when reverting *xref* buffer

	* lisp/progmodes/xref.el (xref--insert-xrefs): Update
	'xref-num-matches-found' here...
	(xref--show-xref-buffer): ...instead of here (bug#74313).

2024-11-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/files.el (require-with-check): Fix last fix (bug#74289)

2024-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/files.el (require-with-check): Fix bug#74091.

2024-11-10  Eli Zaretskii  <eliz@gnu.org>

	Fix handling of permanent-local variables in 'kill-all-local-variables'

	The original implementation went too far and caused unexpected
	results.
	* src/buffer.c (reset_buffer_local_variables): Second argument is
	now 'int', and can be 0, 1, or 2.
	(Fkill_all_local_variables): Call 'reset_buffer_local_variables'
	with 2nd argument 2 if KILL-PERMANENT is non-nil.  (Bug#74091)

2024-11-10  Michael Albinus  <michael.albinus@gmx.de>

	Precise password cache in Tramp

	* doc/misc/tramp.texi (Password handling): Describe
	auth-source-cache-expiry and auth-source-do-cache instead of
	password-cache-expiry and password-cache.  (Bug#74105)

	* lisp/net/tramp.el (tramp-read-passwd): Check for `auth-sources'
	being non-nil.

2024-11-10  Eli Zaretskii  <eliz@gnu.org>

	Fix picture-mode with full-width characters

	* lisp/textmodes/picture.el (picture-insert): Don't rely on
	'move-to-column' to move to the column that is its argument: this
	might be false when full-width characters are involved.

2024-11-10  Eli Zaretskii  <eliz@gnu.org>

	Fix movement to the left in picture-mode

	* lisp/textmodes/picture.el (picture-insert): Measure width by
	counting columns on display, not by using 'string-width', because
	the latter is inaccurate when TABs are involved.  (Bug#74255)

2024-11-09  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation and error message of adding local variables

	* lisp/files-x.el (add-file-local-variable)
	(add-file-local-variable-prop-line): Doc fixes.
	(add-file-local-variable): Improve the user-error text.
	(Bug#74267)

2024-11-09  Eli Zaretskii  <eliz@gnu.org>

	Document the 'display-line-numbers-disable' property

	* doc/lispref/display.texi (Overlay Properties):
	* doc/lispref/text.texi (Special Properties): Document
	'display-line-numbers-disable'.  Fix indexing.

2024-11-09  Eli Zaretskii  <eliz@gnu.org>

	Document issues with 'use-package's ':custom' and byte compilation

	* doc/misc/use-package.texi (User options): Warn against
	byte-compiling init files that use ':custom'.  (Bug#73609)

2024-11-08  Tim Ruffing  <dev@real-or-random.org>

	Fix display of compositions when font style changes (Cairo backend)

	* src/ftcrfont.c (ftcrhbfont_end_hb_font): Don't persist the
	result of 'cairo_ft_scaled_font_lock_face' in violation of the API
	contract.  (Bug#73752)

2024-11-06  Mattias Engdegård  <mattiase@acm.org>

	Fix wrong value of `when' and `unless' with empty body (bug#74215)

	* lisp/subr.el (when, unless): Return nil when the body is empty.
	Reported by Brennan Vincent.
	* test/lisp/subr-tests.el (subr-test-when): Add test cases.

	(cherry picked from commit 9ee9154247454c18f9f75d0d32592b817d7e977a)

2024-11-05  Robert Pluim  <rpluim@gmail.com>

	Improve 'open-network-stream' documentation.

	* doc/lispref/processes.texi (Network): Correct explanation of
	':warn-unless-encrypted'.  Document ':error' return keyword.
	* lisp/net/network-stream.el (open-network-stream): Improve
	':return-list' documentation.  Document ':error'.  Correct
	explanation of ':warn-unless-encrypted'.

2024-11-03  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp documentation on direct async processes

	* doc/misc/tramp.texi (Remote processes): Add another example
	enabling direct async processes based on method name.  (Bug#74105)

	* etc/NEWS: Rephrase Tramp entry on direct async processes.

2024-11-01  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of letter-case conversions

	* doc/lispref/nonascii.texi (Character Properties):
	* doc/lispref/strings.texi (Case Conversion, Case Tables):
	Document that special-casing rules override the case-table
	conversions.  (Bug#74155)

2024-11-01  Dmitry Gutov  <dmitry@gutov.dev>

	project-tests: Add test assertion for bug#73801

	* test/lisp/progmodes/project-tests.el
	(project-vc-extra-root-markers-supports-wildcards): End with a
	check that we didn't cache a wrong value for parent.  (bug#73801)

	(cherry picked from commit 94a9e40e82d4180563d7bddfa0cc6c8990824f8d)

2024-11-01  Dmitry Gutov  <dmitry@gutov.dev>

	project-try-vc: Fix the "sometimes wrong cache" issue

	* lisp/progmodes/project.el (project-try-vc--search): Extract from
	'project-try-vc'.
	(project-try-vc): Use it.
	(project-try-vc--search): Call itself recursively directly, to
	avoid creating invalid cache entry (bug#73801).

	(cherry picked from commit 29b30eb49f8bd8bad4f9e24dd56f32d62bf70121)

2024-10-31  Stephen Berman  <stephen.berman@gmx.net>

	Fix bugs in dabbrev-expand (bug#74090)

	* lisp/dabbrev.el (dabbrev-expand): Use the buffer where the
	expansion was found when setting the internal variables used to
	determine the next expansion or a replacement expansion.

	* test/lisp/dabbrev-tests.el (ert-x): Require for
	'ert-with-temp-directory', 'ert-resource-directory' and
	'ert-resource-file'.
	(with-dabbrev-test): New macro.
	(dabbrev-expand-test-same-buffer-{1,2,3,4})
	(dabbrev-expand-test-other-buffer-{1,2,3,4})
	(dabbrev-expand-test-minibuffer-{1,2,3,4}): New tests.

	* test/lisp/dabbrev-resources/dabbrev-expand.el:
	* test/lisp/dabbrev-resources/INSTALL_BEGIN: New test resources.

	(cherry picked from commit f6c359cb66a0e9b851e3467b1ba9cab7efa8f744)

2024-10-31  Yuan Fu  <casouri@gmail.com>

	Fix undefined variable in previous commit (bug#73900)

	I somehow thought allow-auto-fill is a global variable that's used
	by cc.  But it's not.  It's just a function param used by
	c-indent-new-comment-line.

	* lisp/progmodes/c-ts-common.el:
	(c-ts-common-comment-indent-new-line): Remove reference to
	allow-auto-fill.

2024-10-31  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-common-comment-indent-new-line (bug#73900)

	* lisp/progmodes/c-ts-common.el:
	(c-ts-common-comment-indent-new-line): Delete trailing whitespace
	before inserting newline.  The insert-line-break function is the
	same as in c-indent-new-comment-line.

2024-10-31  Yuan Fu  <casouri@gmail.com>

	Fix the call to treesit-thing-defined-p

	* lisp/treesit.el (treesit-defun-at-point): Add the necessary 2nd
	argument.

2024-10-30  Juri Linkov  <juri@linkov.net>

	Backport: Call tab-bar-tab-post-open-functions during tabs initialization

	* lisp/tab-bar.el (tab-bar-tabs): Run the hook
	'tab-bar-tab-post-open-functions' after creating the first tab in
	the selected frame's tab-bar list of tabs (bug#74087).  Suggested
	by Ship Mints <shipmints@gmail.com>.

	(cherry picked from commit 2c062dfdf50970766db179ccbad7ce71c541cd72)

2024-10-30  Laurence Warne  <laurencewarne@gmail.com>

	Work on proced-tests.el

	* test/lisp/proced-tests.el
	(proced--assert-process-valid-cpu-refinement-explainer): New function
	for explaining refinement test failures in greater detail.

2024-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/files.el (require-with-check): Be a bit more lenient (bug74040)

2024-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	(with-peg-rules): Fix references to rulesets (bug#74018)

	PEG rules get "compiled" to functions with name `peg-rule <RULE>'.
	`define-peg-ruleset' instead defines it PEG rules with name
	`peg-rule <RULESET> <RULE>', so that they can be made visible
	by `with-peg-rules' simply by adding local aliases from
	`peg-rule <RULE>' to `peg-rule <RULESET> <RULE>'.

	Apparently when I added `define-peg-ruleset' I somehow failed to
	install some of the corresponding code in `with-peg-rules', so the
	aliases were not installed, making it "impossible" to use
	rulesets.
	[ I still have no idea how this happened and/or where
	  the missing code went, so I "recreated" it.  ]

	* lisp/progmodes/peg.el (with-peg-rules): Install the aliases
	for the rulesets.
	(peg--translate-rule-body): Try and preserve location info when
	emitting a warning.

	* test/lisp/progmodes/peg-tests.el (peg-test-myrules): New ruleset.
	(peg-test-ruleset): New test.

2024-10-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	Tweak doc w.r.t to "void function" (bug#73886)

	* doc/lispref/functions.texi (Function Cells): Avoid talking
	about the function cell being void.

	* src/data.c (Fboundp, Ffmakunbound, Fsymbol_function):
	Don't suggest that "void" can be considered as a kind of value.

2024-10-27  Laurence Warne  <laurencewarne@gmail.com>

	Fix flakey proced refine tests (Bug#73441)

	* test/lisp/proced-tests.el (proced-refine-test)
	(proced-refine-with-update-test): Use the much simpler CPU
	refinement for testing 'proced-refine'.  The previous tests made
	the incorrect assumption that refining on the PID of process A
	only filtered the buffer to contain process A and its children,
	whereas in actuality the children of process A's children, their
	children, and so on will also be shown.
	(proced-update-preserves-pid-at-point-test): Mark as unstable.

2024-10-27  Eli Zaretskii  <eliz@gnu.org>

	Another 'void' update

	* doc/lispref/symbols.texi (Symbol Components): Another update due
	to the change in 'void' function implementation.  (Bug#73886)

2024-10-27  Eli Zaretskii  <eliz@gnu.org>

	Fix doc string of 'wdired-use-dired-vertical-movement'

	* lisp/wdired.el (wdired-use-dired-vertical-movement): Remove the
	incorrect reference to 'track-eol'.  (Bug#73917)

2024-10-27  Eli Zaretskii  <eliz@gnu.org>

	Update the documentation of void functions

	* doc/lispref/functions.texi (Function Cells):
	* src/data.c (Ffboundp, Ffmakunbound, Fsymbol_function): Update
	documentation to the changes of how void functions are represented
	since Emacs 24.5.  (Bug#73886)

2024-10-27  Sean Whitton  <spwhitton@spwhitton.name>

	Backport some docstring updates, warn about upcoming obsolescence

	Try to save people some time if they're developing on Emacs 30.x.

	Do not merge to master.

	* lisp/subr.el (if-let*, when-let*, if-let, when-let): Move
	docstring text around so that if-let* and when-let* descriptions
	no longer refer to if-let and when-let.  Note that if-let and
	when-let will be marked obsolete, and recommend if-let*, when-let*
	and and-let* for new code.

2024-10-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/editorconfig.el (editorconfig--get-indentation): Fix
	bug#73991.

2024-10-26  Andrea Corallo  <acorallo@gnu.org>

	Update 'ldefs-boot.el' (don't merge)

	* lisp/ldefs-boot.el: Update.

2024-10-26  Andrea Corallo  <acorallo@gnu.org>

	Bump Emacs version to 30.0.92

	* nt/README.W32: Update Emacs version.
	* msdos/sed2v2.inp: Likewise.
	* exec/configure.ac: Likewise.
	* configure.ac: Likewise.
	* README: Likewise.

2024-10-25  Eli Zaretskii  <eliz@gnu.org>

	Skip *.dylib files in 'loaddefs-generate'

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Add .dylib
	to extensions of files that are skipped.  (Bug#74001)

2024-10-24  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Highlight namespace name in "use" clause.

	* lisp/progmodes/php-ts-mode.el (php-ts-mode--font-lock-settings):
	New rule to highlight namespace name in "use" clause.  (Bug#73975)

2024-10-24  Sean Whitton  <spwhitton@spwhitton.name>

	Update special conditionals documentation

	* doc/lispref/control.texi (Conditionals): Document if-let* and
	when-let*, not if-let and when-let.  Document and-let*.

2024-10-23  Sean Whitton  <spwhitton@spwhitton.name>

	Document and-let* vs. when-let* usage convention

	* lisp/subr.el (and-let*): Document and/and-let*
	vs. when/when-let* usage convention (some discussion in
	bug#73853).
	(when-let*): Add cross-reference to and-let*.

2024-10-22  Jim Porter  <jporterbugs@gmail.com>

	Fix error when splicing Eshell globs and a glob expands to itself

	This could happen when 'eshell-extended-glob' determines that a
	"glob" is not really a glob.  This mainly happens for remote file
	names with a "~" in them, like "/ssh:remote:~/file.txt".

	* lisp/eshell/em-glob.el (eshell-extended-glob): Return a list
	when 'eshell-glob-splice-results' is non-nil.
	* test/lisp/eshell/em-glob-tests.el
	(em-glob-test/expand/splice-results)
	em-glob-test/expand/no-splice-results): Extend tests.

2024-10-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	* etc/package-keyring.gpg: Update expiration and add new key

2024-10-21  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes when scrolling images under winner-mode

	* src/window.c (window_scroll_pixel_based): Fix calculation of a
	window's vscroll.  (Bug#73933)

2024-10-20  Eli Zaretskii  <eliz@gnu.org>

	* src/lread.c (READ_AND_BUFFER): Reject negative chars (bug#73914).

2024-10-20  Michael Albinus  <michael.albinus@gmx.de>

	* test/Makefile.in: Do not show emacs-module-tests.log by default.

2024-10-19  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Fix 'php-ts-mode': better indentation and font locking

	Incomplete compound_statement or colon_block (statement-group
	without a closing brace or closing keyword) that are not inside
	a function or method are not recognized as such by tree-sitter-php.
	A new function 'php-ts-mode--open-statement-group-heuristic'
	handles this case.  Font locking of magic methods and better
	support for alternative control structure syntax.
	Support for latest grammar version.
	* lisp/progmodes/php-ts-mode.el
	(php-ts-mode--language-source-alist): Updated grammar version.
	(php-ts-mode--possibly-braceless-keyword-re): Regular expression
	for braceless keyword.
	(php-ts-mode--open-statement-group-heuristic): New function.
	(php-ts-mode--parent-html-bol): Use the new function and doc fix.
	(php-ts-mode--parent-html-heuristic): Use the new function and doc
	fix.
	(php-ts-mode--indent-styles): Use the new function and add
	'colon_block' support.
	(php-ts-mode--class-magic-methods): New predefined magic methods
	list.
	(php-ts-mode--test-namespace-name-as-prefix-p): Doc fix.
	(php-ts-mode--test-namespace-aliasing-clause-p): Fix the test and
	doc.
	(php-ts-mode--test-namespace-use-group-clause-p): Doc fix.
	(php-ts-mode--test-visibility-modifier-operation-clause-p): New
	function for the new asymmetric property visibility feature of
	PHP 8.4.
	(php-ts-mode--font-lock-settings): Font lock for class magic
	methods and alternative syntax.  Better font lock for
	'instanceof'.  Use 'font-lock-function-call-face' for scoped and
	member call expression.
	(bug#73779)

2024-10-19  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/auth-source.el (read-passwd): Remove entry from
	`post-command-hook'.

2024-10-19  Eli Zaretskii  <eliz@gnu.org>

	New FAQ about Ctrl keys on xterm

	* doc/misc/efaq.texi
	(Some Ctrl-modified keys do not work on xterm): New section
	(bug#73813).

2024-10-19  Eli Zaretskii  <eliz@gnu.org>

	Autoload 'message-narrow-to-headers-or-head' in mml.el

	* lisp/gnus/mml.el (message-narrow-to-headers-or-head): Autoload
	it.  (Bug#73815)

2024-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/pcase.el (pcase--make-docstring): Fix bug#73766

	Do not merge to `master'.

2024-10-18  Michael Albinus  <michael.albinus@gmx.de>

	Locate password icon in global-mode-string

	* doc/emacs/mini.texi (Passwords): Precise the location of the
	password icon.

	* doc/lispref/minibuf.texi (Reading a Password): The password icon
	is added to global-mode-string.

	* lisp/auth-source.el (read-passwd--mode-line-buffer): Remove.
	(read-passwd--hide-password): Fix docstring.
	(read-passwd-toggle-visibility): Don't use
	`read-passwd--mode-line-buffer'.  Check for `read-passwd-mode'.
	Force update in all mode lines.
	(read-passwd-mode): Set `read-passwd--mode-line-icon' in
	`global-mode-string'.  (Bug#73768)

2024-10-18  Robert Pluim  <rpluim@gmail.com>

	Explain tty-color-mode frame parameter more.

	* doc/emacs/cmdargs.texi (Colors X): Explain that tty color
	support is dynamic.
	* doc/lispref/frames.texi (Font and Color Parameters): Explain
	that 'tty-color-mode' can be changed on the fly.
	* doc/misc/efaq.texi (Colors on a TTY): Explain how to disable
	'tty-color-mode', either at startup or dynamically.

2024-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	(track-changes--after): Fix problem found in bug#73041

	When calling `track-changes--before' (e.g. because of a missing
	b-f-c or for some other reason), it sets
	`track-changes--before-end' to the right value so we shouldn't
	increment it right after.  Also, we should update
	`track-changes--buffer-size' before calling
	`track-changes--before' so it doesn't risk signaling a spurious
	inconsistency.

	* lisp/emacs-lisp/track-changes.el (track-changes--after): Update
	`track-changes--buffer-size' earlier, and don't increment
	`track-changes--before-end' when we call `track-changes--before'.

2024-10-16  Jim Porter  <jporterbugs@gmail.com>

	Fix Eshell's evaluation of empty 'progn' forms

	Do not merge to master.

	* lisp/eshell/esh-cmd.el (eshell-do-eval): Make sure we evaluate
	to 'nil' for 'progn' forms with no body.  (bug#73722)

2024-10-15  Andrea Corallo  <acorallo@gnu.org>

	* lisp/progmodes/c-ts-mode.el (treesit-node-eq): Declare to
	silence warning.

2024-10-15  Michael Albinus  <michael.albinus@gmx.de>

	* admin/notes/emba: Docker builds do not run in a worktree.

2024-10-15  Ulrich Müller  <ulm@gentoo.org>

	* lisp/calc/calc-ext.el (math-approx-sqrt-e): Doc fix.
	(bug#73817)

2024-10-15  Eli Zaretskii  <eliz@gnu.org>

	: Revert a mistaken change

	* lisp/net/dictionary.el (dictionary-word-definition-face): Revert
	a mistakenly installed change.

2024-10-15  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode--anchor-prev-sibling (bug#73661)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--anchor-prev-sibling): Fix parentheses and use a
	slightly more efficient function.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Replace
	the tab in the test code with spaces.

2024-10-14  Earl Hyatt  <okamsn@protonmail.com>

	Fix formatting of long keyboard macros by 'list-keyboard-macros'.

	* lisp/kmacro.el (kmacro-menu--refresh): Include the second
	argument of 'format-kbd-macro' so that the formatted keyboard
	macro is on a single line.  (Bug#73797)

2024-10-13  Michael Albinus  <michael.albinus@gmx.de>

	* doc/emacs/mini.texi (Passwords): Mention password visibility.

2024-10-10  Jørgen Kvalsvik  <j@lambda.is>  (tiny change)

	Fix c-ts-mode indentation for initializer lists (bug#73661)

	The indentation behavior differed between c-mode/c++-mode and
	*-ts-mode for initializer lists where the first element was not at
	beginning-of-line.  The anchor-prev-sibling function gave up and
	returned nil, but it should (probably) anchor on the first element
	in the initializer list, such as this:

	return { v1, v2, ...,
	         y1, y2, ... };

	c-ts-mode behaved better and figured out how to align, but I added
	a test for a similar compound literal to prevent regressions.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling):
	Anchor at first sibling unless bol is found.

	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New
	initializer list and compound literal test.

2024-10-09  Eli Zaretskii  <eliz@gnu.org>

	Avoid segfaults in Rmail-MIME

	Rmail-MIME decodes text of email, including removal of CR
	characters, but that can segfault if the text of some MIME part is
	empty.
	* src/coding.c (decode_coding_raw_text):
	* lisp/mail/rmailmm.el (rmail-mime-insert-decoded-text): Don't
	attempt to decode empty text region.

2024-10-09  Brennan Vincent  <brennan@umanwizard.com>  (tiny change)

	Eglot: use :immediate t when resolving completions (bug#73279)


	* lisp/progmodes/eglot.el (eglot-completion-at-point): Tweak
	eglot--request call.

2024-10-09  João Távora  <joaotavora@gmail.com>

	Eglot: minor changes to doc and docstrings

	* doc/misc/eglot.texi (Quick Start): Tweak.
	(Setting Up LSP Servers): Tweak.
	(Customizing Eglot): Clarify eglot-connect-hook and
	eglot-initialized-hook.

	* lisp/progmodes/eglot.el (eglot-connect-hook)
	(eglot-server-initialized-hook): Rework docstring.

2024-10-09  Yuan Fu  <casouri@gmail.com>

	Revert "Set treesit-primary-parser for tree-sitter modes"

	This reverts commit ed57faafc74e0810b492841deccb3cdc77a258ff.

2024-10-08  Yuan Fu  <casouri@gmail.com>

	Remove duplicate indent rules in elixir-ts-mode

	* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode): There are two
	forms adding heex-ts--indent-rules, remove one of them.

2024-10-08  Yuan Fu  <casouri@gmail.com>

	Set treesit-primary-parser for tree-sitter modes

	I debated whether to do this, since technically speaking it's not
	needed for single-language modes.  But ultimately it's better to
	be explicit and set a good example with builtin modes.

	* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode):
	* lisp/progmodes/csharp-mode.el (csharp-ts-mode):
	* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode):
	* lisp/progmodes/go-ts-mode.el (go-ts-mode):
	(go-mod-ts-mode):
	* lisp/progmodes/heex-ts-mode.el (heex-ts-mode):
	* lisp/progmodes/java-ts-mode.el (java-ts-mode):
	* lisp/progmodes/json-ts-mode.el (json-ts-mode):
	* lisp/progmodes/lua-ts-mode.el (lua-ts-mode):
	* lisp/progmodes/python.el (python-ts-mode):
	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode):
	* lisp/progmodes/sh-script.el:
	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode):
	(tsx-ts-mode):
	* lisp/textmodes/css-mode.el (css-ts-mode):
	* lisp/textmodes/html-ts-mode.el (html-ts-mode):
	* lisp/textmodes/toml-ts-mode.el (toml-ts-mode):
	* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode): Set
	treesit-primary-parser.

2024-10-06  Stefan Kangas  <stefankangas@gmail.com>

	Delete XIE X extension from TODO

	According to Wikipedia, XIE "is no longer included in the X11
	reference distribution, having been removed with X11R6.7 in 2004."
	Ref: https://en.wikipedia.org/wiki/X_Image_Extension

	* etc/TODO: Delete item to use XIE X extension.

2024-10-05  Morgan Willcock  <morgan@ice9.digital>

	Restore comment/string check for 'electric-layout-mode'

	This reverts an accidental change which allowed
	'electric-layout-mode' to insert newlines inside strings and
	comments.  The new behavior can be obtained by setting the new
	variable 'electric-layout-allow-in-comment-or-string' to a non-nil
	value.
	* lisp/electric.el (electric-layout-allow-in-comment-or-string):
	New variable to determine whether inserting newlines is
	permitted within comments or strings.
	(electric-layout-post-self-insert-function-1): Restore the
	previous default behavior of not inserting newlines within
	comments or strings.

2024-10-05  Stefan Kangas  <stefankangas@gmail.com>

	Update Arni Magnusson's email address

	* .mailmap:
	* doc/lispref/ChangeLog.1:
	* doc/misc/ChangeLog.1:
	* lisp/ChangeLog.16:
	* lisp/ChangeLog.17:
	* lisp/progmodes/bat-mode.el: Update email address of
	Arni Magnusson.  (Bug#73631)

2024-10-05  Stefan Kangas  <stefankangas@gmail.com>

	Fix python-ts-mode-map docstring

	* lisp/progmodes/python.el (python-ts-mode-map): Fix docstring.

2024-10-05  Stefan Kangas  <stefankangas@gmail.com>

	Normalize "Commentary" section in eudc.el

	* lisp/net/eudc.el: Normalize "Commentary" section to make
	'M-x describe-package RET eudc RET' more useful.

2024-10-04  Eli Zaretskii  <eliz@gnu.org>

	Expand email abbrevs in X-Debbugs-Cc header.

	* lisp/mail/mailabbrev.el (mail-abbrev-mode-regexp):
	* lisp/mail/mailalias.el (mail-address-field-regexp)
	(mail-complete-alist): Add "X-Debbugs-Cc" to headers where email
	aliases should be expanded, for compatibility with emacsbug.el.

2024-10-04  Eli Zaretskii  <eliz@gnu.org>

	Fix 'list-tags' when invoked from a non-file buffer

	This use case was broken by the improvement that attempts to offer
	the current buffer's file name as the default file whose tags to
	list.
	* lisp/progmodes/etags.el
	(tags--get-current-buffer-name-in-tags-file): Doc fix.  Return nil
	if no file is associated with the current buffer, and avoid
	signaling an error if 'buffer-file-name' returns nil.  (Bug#37611)
	(list-tags): Doc fix.  Signal an error if the user specifies no
	file name at the prompt.

	* doc/emacs/maintaining.texi (List Identifiers): Fix wording of
	the documentation of 'list-tags'.

2024-10-04  Sean Whitton  <spwhitton@spwhitton.name>

	count-windows: Fix reference to walk-windows

	* lisp/window.el (count-windows): Refer to walk-windows for the
	precise meaning of both the MINIBUF and ALL-FRAMES arguments, not
	just the ALL-FRAMES argument.  In both functions, these arguments
	are both passed through to window-list-1.

2024-10-03  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/info-look.el (mapc): Add use-package manual's index.

2024-10-03  Yuan Fu  <casouri@gmail.com>

	Update csharp-ts-mode font-lock (bug#73369)

	Adapt to the latest c-sharp grammar.

	* lisp/progmodes/csharp-mode.el:
	(csharp-ts-mode--test-this-expression):
	(csharp-ts-mode--test-interpolated-string-text):
	(csharp-ts-mode--test-type-constraint):
	(csharp-ts-mode--test-type-of-expression):
	(csharp-ts-mode--test-name-equals):
	(csharp-ts-mode--test-if-directive):
	(csharp-ts-mode--test-method-declaration-type-field): New
	functions.
	(csharp-ts-mode--type-field): New variable.
	(csharp-ts-mode--font-lock-settings): Fix font-lock rules.

2024-10-02  Sean Whitton  <spwhitton@spwhitton.name>

	Fix inconsistency in value of rcirc-activity-string

	* lisp/net/rcirc.el (rcirc-update-activity-string): Consistently
	don't display anything if there aren't any IRC connections.

2024-10-02  Stefan Kangas  <stefankangas@gmail.com>

	Revert "; Minor clarification in variables.texi"

	This reverts commit 44156c2140772fa04ebbc0a488a85f0741e0c2ef.

2024-10-01  john muhl  <jm@pub.pink>

	Tag interactive commands in 'lua-ts-mode'

	* lisp/progmodes/lua-ts-mode.el (lua-ts-send-buffer)
	(lua-ts-send-file, lua-ts-send-region): Mark inferior interaction
	commands that are only relevant in Lua buffers.  (Bug#73586)

2024-10-01  Stefan Kangas  <stefankangas@gmail.com>

	Mention LSP acronym in eglot defgroup docstring

	* lisp/progmodes/eglot.el (eglot): Improve defgroup description by
	mentioning the LSP acronym, for users that might be searching for
	that.

2024-10-01  Stefan Kangas  <stefankangas@gmail.com>

	Change :group of 'eglot' defgroup to 'tools'

	In 'M-x customize', Eglot fits in better in "Programming ->
	Tools", with the likes of Flymake and Gud, than it does in
	"Applications", with ERC and Newsticker.

	* lisp/progmodes/eglot.el (eglot): Change :group of defgroup to
	'tools'.

2024-09-30  Stefan Kangas  <stefankangas@gmail.com>

	Remove out-of-date documentation from python.el

	* lisp/progmodes/python.el: Remove out-of-date documentation about
	automatic indentation; 'electric-indent-mode' is enabled by
	default in Emacs 24.4 or later, so this is no longer an issue.

2024-09-30  Jim Porter  <jporterbugs@gmail.com>

	Fix executing commands in Eshell using "env" with no local
	variables

	* lisp/eshell/esh-var.el (eshell/env): Throw
	'eshell-replace-command' as needed.

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/local-variables/env/no-locals): New test (bug#73479).

2024-09-29  Gautier Ponsinet  <gautier@gautierponsinet.xyz>

	Fix a typo in the calendar manual

	* doc/emacs/calendar.texi (Calendar Unit Motion): Add a missing
	parenthesis.  (Bug#73555)

2024-09-28  Morgan Willcock  <morgan@ice9.digital>

	Require ert-x for use by 'ert-font-lock-deftest-file'

	This fixes a void-function error when 'ert-font-lock-deftest-file'
	is called when ert-x has not already been loaded.
	* lisp/emacs-lisp/ert-font-lock.el (ert): Require ert-x so that
	'ert-resource-file' is available for use within
	'ert-font-lock-deftest-file'.  (Bug#73254)

2024-09-28  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Fix php-ts-mode font-lock for latest PHP grammar (bug#73516)

	Version 0.23 of the PHP grammar introduced some changes that
	affect the font lock.

	* lisp/progmodes/php-ts-mode.el
	(php-ts-mode--language-source-alist): Update php, html, js and css
	grammars version.
	(php-ts-mode--parent-html-heuristic): Fix docstring
	(php-ts-mode--test-namespace-name-as-prefix-p): New function.
	(php-ts-mode--test-namespace-aliasing-clause-p): New function.
	(php-ts-mode--test-namespace-use-group-clause-p): New function.
	(php-ts-mode--font-lock-settings): Use the new functions.

2024-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	eieio.texi: Fix bug#73505

	* doc/misc/eieio.texi (Introduction): Remove "missing features"
	which aren't missing any more.
	(Generics, Methods): Delete sections.
	(Inheritance): Adjust reference accordingly.
	(Static Methods): Merge into the parent node.
	(Writing Methods): Refer to the ELisp manual for
	`cl-defmethod/defgeneric'.

2024-09-26  Andrés Ramírez  <rrandresf@hotmail.com>  (tiny change)

	Delete duplicated line in Viper refcard

	* etc/refcards/viperCard.tex: Delete duplicated line.  (Bug#73480)

2024-09-25  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp shortdoc integration

	* lisp/net/tramp-integration.el (tramp-syntax): Declare.
	(shortdoc): Check, that Tramp has `default' syntax.

2024-09-25  Juri Linkov  <juri@linkov.net>

	* lisp/imenu.el (imenu-flatten): More limitations in docstring.
	(bug#73117)

2024-09-25  Sean Whitton  <spwhitton@spwhitton.name>

	remember-data-file: Don't unconditionally call set-visited-file-name

	* lisp/textmodes/remember.el (remember-data-file): Don't
	unconditionally call set-visited-file-name.

2024-09-25  Thomas Voss  <mail@thomasvoss.com>  (tiny change)

	Align columns in which-key with wide characters properly

	In the case that a character takes up multiple columns (such as
	`…' when used as a truncation character), make sure that the
	columns are still aligned properly.
	* lisp/which-key.el (which-key--pad-column): Use `string-width'
	instead of `length'.  (Bug#73463)

2024-09-25  Roland Winkler  <winkler@gnu.org>

	* lisp/textmodes/bibtex.el (bibtex-validate): Fix patch bibtex
	validation for non-file buffers.

2024-09-24  Robert Pluim  <rpluim@gmail.com>

	Document 'buttonize-region' in manual

	It was added in emacs-29, but never added to the lisp reference
	manual.

	* doc/lispref/display.texi (Making Buttons): Document
	'buttonize-region'.

2024-09-24  Tassilo Horn  <tsdh@gnu.org>

	Use black-on-white by default for doc-view-svg-face.

	* lisp/doc-view.el (doc-view-svg-face): Define black on white as
	default value instead of using the current theme's values.
	* etc/NEWS: Adjust entry for doc-view-svg-face.

2024-09-23  Dmitry Gutov  <dmitry@gutov.dev>

	etags-regen-file-extensions: Enable for more extensions

	* lisp/progmodes/etags-regen.el (etags-regen-file-extensions): Add
	more extensions, but remove "a".  From the ones recognized by
	etags, also omit "t", "ml", "l", "def" and "inc", see
	https://lists.gnu.org/archive/html/emacs-devel/2024-09/msg00735.html.
	(etags-regen--all-files): Use 'string-match-p' for performance.
	Bind 'case-fold-search' to t to match extensions in any case.

2024-09-21  Stephen Berman  <stephen.berman@gmx.net>

	Update and improve UI of sql-read-product (bug#73412)

	* lisp/progmodes/sql.el (sql-read-product): In invocation of
	completing-read use format-prompt and make deprecated argument
	INITIAL-INPUT nil.
	(sql-set-product, sql-product-interactive): In invocation of
	sql-read-product adjust prompt to use of format-prompt.

2024-09-21  Philip Kaludercic  <philipk@posteo.net>

	Insert correct commit data into VC package descriptions

	* lisp/emacs-lisp/package-vc.el (package-vc-commit): Rename
	argument from PKG to PKG-DESC.
	(package-vc--generate-description-file): Update the "extras"
	section of the package description with the revision string at
	generation time.

2024-09-21  Stefan Kangas  <stefankangas@gmail.com>

	Document reporting security issues in user manual

	* doc/emacs/trouble.texi (Bugs): Document how to report important
	security issues.

2024-09-21  Stefan Kangas  <stefankangas@gmail.com>

	* BUGS: Minor copy edit.

2024-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix font-lock of last character before EOB under 'whitespace-mode'

	* lisp/whitespace.el (whitespace-color-on): Don't use OVERRIDE in
	font-lock-keywords; instead, use 'prepend' in the call to
	'font-lock-add-keywords'.  (Bug#73332)

2024-09-21  Eli Zaretskii  <eliz@gnu.org>

	Fix 'whitespace-mode' with 'missing-newline-at-eof'

	* lisp/whitespace.el (whitespace-post-command-hook): Refontify
	when point moves if 'missing-newline-at-eof' is in
	'whitespace-active-style'.  (Bug#73332)

2024-09-21  Eli Zaretskii  <eliz@gnu.org>

	Fix 'replace-regexp' in WDired

	* src/search.c (Freplace_match): Revert the search.c part of the
	change from Apr 7, 2024, which aims to fix bug#65451, but causes
	bug#73018.  Do not merge to master.

	* test/src/editfns-tests.el
	(editfns-tests--before/after-change-functions): Expect this test
	to fail.

2024-09-21  Peter Oliver  <git@mavit.org.uk>

	Disable xwidgets with recent webkitgtk versions (Bug#66068)

	* configure.ac: Accept only webkit2gtk-4.* versions less than
	2.41.92.

2024-09-21  Yuan Fu  <casouri@gmail.com>

	Fix treesit--merge-ranges (bug#73324)

	* lisp/treesit.el (treesit--merge-ranges): Make sure that old
	ranges that intersects with START-END are actually discarded.
	* test/src/treesit-tests.el (treesit-range-merge): New test.

2024-09-21  Stefan Kangas  <stefankangas@gmail.com>

	Fix midnight-mode documentation

	* lisp/midnight.el (Commentary): Document that 'midnight-mode'
	should be enabled using the function, instead of by merely loading
	the library.  In Emacs 31, doing the latter will no longer work.
	(Bug#73291)

2024-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	editorconfig.el: Fix too naive sync from upstream

	* lisp/editorconfig.el (editorconfig--get-indentation-nxml-mode):
	New function.
	(editorconfig-indentation-alist): Use it to fix bug#73359.

2024-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/eglot.el (eglot--signal-textDocument/didOpen):
	Fix bug#72696.

2024-09-20  Po Lu  <luangruo@yahoo.com>

	Disable fontset-related workaround on non-Android systems

	* src/fontset.c (fontset_find_font) [!HAVE_ANDROID]: Don't
	refuse to cache font objects whose registries do not agree with
	the font specs.  (bug#73363)

	Do not merge to master.

2024-09-20  Sean Whitton  <spwhitton@spwhitton.name>

	etags-regen-file-extensions: Add .pm

	* lisp/progmodes/etags-regen.el (etags-regen-file-extensions): Add
	.pm.

2024-09-19  Andrea Corallo  <acorallo@gnu.org>

	* src/treesit.c (treesit_debug_print_parser_list): Fix compiler
	warning.

2024-09-19  Robert Pluim  <rpluim@gmail.com>

	Type-check argument to network-lookup-address-info

	* src/process.c (Fnetwork_lookup_address_info): Check that the
	"name" argument is a string, and mention 'puny-encode-domain'.
	(Bug#73337)

2024-09-18  Yuan Fu  <casouri@gmail.com>

	Conservative heuristic for tree-sitter parser ranges (bug#73324)

	* src/treesit.c (treesit_sync_visible_region): If the parser's
	original ranges don't overlap with visible region, give it a zero
	range, rather than don't set any range.
	* test/src/treesit-tests.el (treesit-range-fixup-after-edit): Test
	new behavior.

2024-09-17  Mattias Engdegård  <mattiase@acm.org>

	Re-enable GC mark trace buffer by default

	Enable GC_REMEMBER_LAST_MARKED by default (it was disabled in
	Emacs 29) to make it easier to debug difficult-to-reproduce GC
	problems encountered by users.  This increases GC costs by about 5
	%, which can be avoided by turning the mark trace buffer back off
	using the new --disable-gc-mark-trace option.

	See discussion at
	https://lists.gnu.org/archive/html/emacs-devel/2024-09/msg00240.html

	* configure.ac (--disable-gc-mark-trace): New config option.
	* etc/NEWS: Mention it.
	* src/alloc.c: Enable it by default and avoid a compiler warning.

2024-09-15  Yuan Fu  <casouri@gmail.com>

	Fix treesit_sync_visible_region's range fixup code (bug#73264)

	      new_ranges_head
	      |
	      v
	( )->( )->( )->( )->( )
	           ^    ^
	           |    |
	           |    lisp_ranges (loop head)
	           |
	           prev_cons -> set cdr to nil to cut of the rest

	result:

	     ( )->( )

	* src/treesit.c (treesit_sync_visible_region): Cut off this cons
	and the rest, not set the current range's end to nil.
	* test/src/treesit-tests.el:
	(treesit-range-fixup-after-edit): Add tests for all cases.

2024-09-15  Po Lu  <luangruo@yahoo.com>

	Document unavailability of frame geometry on Wayland

	* etc/PROBLEMS (Runtime problems specific to PGTK build): Document
	that frame-edges and company are liable not to return valid
	coordinates.  (bug#73207)

2024-09-15  Po Lu  <luangruo@yahoo.com>

	Port to Haiku R1/beta5

	* src/haiku_support.cc (keysym_from_raw_char): Use revised names
	for B_HANGUL and B_HANGUL_HANJA.

2024-09-14  Yuan Fu  <casouri@gmail.com>

	Fix c++-ts-mode font-lock for latest c++ grammar (bug#73191)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--keywords): Add "thread_local" keyword.
	(c-ts-mode--test-virtual-named-p): New function.
	(c-ts-mode--font-lock-settings): Use named/anonymous "virtual"
	depending on the grammar.

2024-09-14  Stefan Kangas  <stefankangas@gmail.com>

	* admin/update-copyright: Print reminder to do manual updates.

	* admin/notes/years: Update.

2024-09-14  Stefan Kangas  <stefankangas@gmail.com>

	* etc/TODO: New item "support indentation guides".

	Ref: https://lists.gnu.org/r/emacs-devel/2024-07/msg01062.html

2024-09-14  Stephen Berman  <stephen.berman@gmx.net>

	Fix regression in widget-move (bug#72995)

	* lisp/wid-edit.el (widget-move): Avoid advancing point only if it
	is at the start of a widget at BOB.

	* test/lisp/wid-edit-tests.el (widget-test-widget-move-bug72995):
	New test.

2024-09-14  Spencer Baugh  <sbaugh@janestreet.com>

	Correctly include fixed strings before a prefix wildcard in PCM

	In 03ac16ece40ba3e3ba805d6a61cc457d84bf3792 I fixed a bug with the
	PCM implementation of substring completion, relating to the
	handling of PCM wildcards.  However, this fix was incomplete.
	This change completes the fix by also including a fixed string if
	it appears before a 'prefix' wildcard, even if 'try-completion'
	doesn't discover that fixed string grows to a unique completion.
	I discovered this bug while working on enhancements to PCM
	completion related to 'completion-pcm-leading-wildcard'.
	* lisp/minibuffer.el (completion-pcm--merge-completions): Include
	fixed strings before 'prefix wildcard.  (Bug#72819)
	* test/lisp/minibuffer-tests.el (completion-substring-test-5): Add
	a test for this behavior.

2024-09-14  Yuan Fu  <casouri@gmail.com>

	Set treesit-primary-parser for c and elixir ts mode

	For buffers with multiple parsers, it's important to set this
	variable so font-lock invalidation works smoothly.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode): Set
	treesit-primary-parser.
	* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode): Set
	treesit-primary-parser.

2024-09-14  Yuan Fu  <casouri@gmail.com>

	Fix range handling so it works for multibyte buffer (bug#73204)

	Here by multibyte buffer I mean buffer that includes non-ASCII
	characters.

	The problem is illustrated by this comment, which I copied from the
	source:

	======================================================================
	(ref:bytepos-range-pitfall) Suppose we have the following buffer
	content ([ ] is a unibyte char, [    ] is a multibyte char):

	    [a][b][c][d][e][ f  ]

	and the following ranges (denoted by braces):

	    [a][b][c][d][e][ f  ]
	    {       }{    }

	So far so good, now user deletes a unibyte char at the beginning:

	    [b][c][d][e][ f  ]
	    {       }{    }

	Oops, now our range cuts into the multibyte char, bad!
	======================================================================

	* src/treesit.c (treesit_debug_print_parser_list): Minor fix.
	(treesit_sync_visible_region): Change the way we fixup ranges,
	instead of using the bytepos ranges from tree-sitter, we use the
	cached lisp charpos ranges.
	(treesit_make_ts_ranges): New function.
	(Ftreesit_parser_set_included_ranges): Refactor out the new
	function treesit_make_ts_ranges.
	(Ftreesit_parser_included_ranges): Rather than getting the ranges
	from tree-sitter, just return the cached lisp ranges.

	* src/treesit.h (Lisp_TS_Parser): Add some commentary.
	* test/src/treesit-tests.el (treesit-range-fixup-after-edit): New
	test.

2024-09-14  Yuan Fu  <casouri@gmail.com>

	Revert "Read more on each call to treesit's buffer reader"

	This reverts commit bf23382f1f2d6ea072db4e4750f8a345f77a3ef2.

	We move around the gap, narrow regions, ralloc, etc, and don't
	have a way to invalidate previously given range.  So tree-sitter
	can't be given the full range.

2024-09-14  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter indent preset prev-adaptive-prefix

	* lisp/treesit.el (treesit-simple-indent-presets): Use looking-at
	so the call to match-string has the match data to work with.

2024-09-13  Robert Pluim  <rpluim@gmail.com>

	Improve NEWS entries

	* etc/NEWS: Fix typos, and add information about default values of
	new user options.

2024-09-13  Mattias Engdegård  <mattiase@acm.org>

	Don't fail uniquify-tests in non-version-controlled source trees

	* test/lisp/uniquify-tests.el (uniquify-project-transform): Skip
	test if there is no project (bug#73205).

2024-09-13  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/auth.texi: Minor copy edits.

2024-09-12  Po Lu  <luangruo@yahoo.com>

	* src/pgtkselect.c (Fpgtk_get_selection_internal): If requesting
	TARGETS with just one result, return it as a vector.
	(bug#72254)

2024-09-11  Andrea Corallo  <acorallo@gnu.org>

	Bump Emacs version to 30.0.91

	* nt/README.W32: Update Emacs version.
	* msdos/sed2v2.inp: Likewise.
	* exec/configure.ac: Likewise.
	* configure.ac: Likewise.
	* README: Likewise.

2024-09-11  Yuan Fu  <casouri@gmail.com>

	Fix heex-ts-mode indentation following previews elixir-mode change

	After the previous fix in elixir-ts-mode (0fd259d166c), embedded
	heex code are indented like this:

	1 defmodule Foo do
	2   def foo(assigns) do
	3     ~H"""
	4 <span>
	5   text
	6 </span>
	7     """
	8   end
	9 end

	The indent rule finds the beginning of the parent heex node, and
	uses the indentation of that line as anchor with an offset of 0.
	Previously the parent heex node (fragment) starts at EOL of line
	3; after the previous commit, it now starts at BOL of line 4.  To
	fix the indentation, I changed the anchor to the beginning of the
	elixir (rather than heex) node at point, which is at EOL at line
	3.

	* lisp/progmodes/heex-ts-mode.el (heex-ts--indent-rules): Use the
	elixir node that contains the heex code as the anchor, instead of
	the heex root node.

2024-09-10  Andrea Corallo  <acorallo@gnu.org>

	* lisp/ldefs-boot.el: Update.

2024-09-10  Eli Zaretskii  <eliz@gnu.org>

	Fix use of Uniscribe font driver in MinGW build

	This was inadvertently broken when Windows 9X support was
	fixed in June 2024.
	* src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper): Set
	'uniscribe_available' non-zero in non-Cygwin builds.  (Bug#73159)

2024-09-10  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes in redisplay in batch-mode testing

	* src/xdisp.c (try_window_id): Don't crash for "initial" frame.
	(Bug#72765)

2024-09-10  Dmitry Gutov  <dmitry@gutov.dev>

	eglot-test-rust-completion-exit-function: Fix failure in -Q
	session.

	* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
	Check for buffer liveness (https://debbugs.gnu.org/72765#29).
	(eglot-test-rust-completion-exit-function): Don't expect snippet
	expansion to happen (no yasnippet in batch mode).

2024-09-09  Eli Zaretskii  <eliz@gnu.org>

	Clarify the semantics of 'string-pixel-width'

	* doc/lispref/display.texi (Size of Displayed Text):
	* lisp/emacs-lisp/subr-x.el (string-pixel-width):
	* src/xdisp.c (Fwindow_text_pixel_size, Fbuffer_text_pixel_size):
	Doc fixes.  (Bug#73129)

2024-09-09  Andrea Corallo  <acorallo@gnu.org>

	* src/treesit.c (treesit_debug_print_parser_list): Fix format
	string.

2024-09-09  Yuan Fu  <casouri@gmail.com>

	Read more on each call to treesit's buffer reader

	* src/treesit.c (treesit_read_buffer): Read until the gap or
	visible end, instead of reading a single char.

2024-09-09  Yuan Fu  <casouri@gmail.com>

	Fix the range handling in treesit.c

	1. In treesit_sync_visible_region, reduce the ranges for a parser
	so it doesn't go beyond the visible range.

	2. To avoid possible infinite recursion, add a within_reparse
	field to parsers.  Previously we were using the need_reparse field
	to avoid infinite recursion, but lisp programs in a parser's after
	change hook might make some buffer edit which turns need_reparse
	to true. To avoid that, we now use an explicit field.  If a
	parser's after change function makes a buffer edit, lisp program
	ends up with a desynced parse tree, but that's better than
	possible infinite recursion.  Also after change function shouldn't
	edit the buffer.

	3. In treesit_make_ranges, use parser's visible_beg instead of
	buffer's BEGV.  I mean technically whenever we make ranges,
	buffer's BEGV should be equal to parser's visible_beg, but better
	not take that uncertainty, also makes the code more readable.

	4. In Ftreesit_parser_included_ranges, move visible region sync
	code before the body of the function.

	* src/treesit.c (treesit_sync_visible_region): Minimally fix
	ranges so it doesn't exceed parser's visible range.
	(treesit_call_after_change_functions): Update calling signature to
	treesit_make_ranges.
	(treesit_ensure_parsed, make_treesit_parser): Use the new field
	within_reparse.
	(treesit_make_ranges): Use parser's visible_beg instead of
	buffer's BEGV.
	(Ftreesit_parser_included_ranges): Move visible region check
	before function body.

	* src/treesit.h (Lisp_TS_Parser): Add new field within_reparse.

2024-09-09  Yuan Fu  <casouri@gmail.com>

	Add debugging function for treesit.c

	* src/treesit.c (treesit_debug_print_parser_list): New function.

2024-09-09  Yuan Fu  <casouri@gmail.com>

	Fix elixir-ts-mode's range query

	* lisp/progmodes/elixir-ts-mode.el:
	(elixir-ts--treesit-range-rules): Add underscore in front of the
	name capture, so Emacs won't put heex parser on it.

2024-09-08  Mattias Engdegård  <mattiase@acm.org>

	Make json-serialize always return a unibyte string (bug#70007)

	The JSON format is defined as a byte sequence and will always be
	used as such, so returning a multibyte string makes little sense.

	* src/json.c (json_out_to_string): Remove.
	(Fjson_serialize): Return unibyte string.
	* test/src/json-tests.el (json-serialize/roundtrip)
	(json-serialize/roundtrip-scalars, json-serialize/string):
	Update tests.
	* doc/lispref/text.texi (Parsing JSON): Document.
	* etc/NEWS: Announce.

2024-09-07  Eli Zaretskii  <eliz@gnu.org>

	Fix a typo in ediff-init.el

	* lisp/vc/ediff-init.el (ediff-nonempty-string-p): Fix typo.
	Reported by Jurgen De Backer
	<jurgen.de-backer.ext@eurocontrol.int> (bug#73042).

2024-09-07  Eli Zaretskii  <eliz@gnu.org>

	Fix 'chart-space-usage' on MS-Windows

	* lisp/emacs-lisp/chart.el (chart--file-size)
	(chart--directory-size): New functions.
	(chart-space-usage): Invoke 'du' correctly on MS-Windows.  Provide
	alternative implementation in Lisp when 'du' is not installed,
	using 'chart--directory-size' and 'chart--file-size'.  (Bug#72919)

2024-09-07  Eli Zaretskii  <eliz@gnu.org>

	Fix alignment and documentation of vtable.el

	* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Ensure
	proper alignment between the columns in header-line and in the
	body of the table.  (Bug#73032)

	* doc/misc/vtable.texi (Making A Table): Document the defaults of
	the various keyword parameters.

2024-09-05  Ulrich Müller  <ulm@gentoo.org>

	Fix test failure in erc-networks-tests

	* test/lisp/erc/erc-networks-tests.el
	(erc-networks--id-sort-buffers): Make sure that buffers have
	different timestamps.  (Bug#73036)

2024-09-04  Eli Zaretskii  <eliz@gnu.org>

	Fix :hook in 'use-package'

	* lisp/use-package/use-package-core.el
	(use-package-handler/:hook): Support mode variables in :hook
	declarations.  (Bug#72993)

2024-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Update FSF's address

	* doc/emacs/emacs.texi (Distrib):
	* doc/lispintro/emacs-lisp-intro.texi:
	* doc/lispref/elisp.texi:
	* doc/misc/org.org (Link Abbreviations):
	* etc/tutorials/TUTORIAL.eo:
	* lisp/elide-head.el:
	* lisp/textmodes/page-ext.el: Update the FSF address to 31 Milk
	Street.

2024-09-02  Dmitry Gutov  <dmitry@gutov.dev>

	Support the new option in ruby-ts-mode too

	* etc/NEWS: Describe it here.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--parent-call-or-bol):
	Support the option ruby-bracketed-args-indent here too.
	(bug#60321)

	* test/lisp/progmodes/ruby-ts-mode-tests.el: Include
	ruby-bracketed-args-indent.rb as test examples.

	* test/lisp/progmodes/ruby-mode-resources/ruby-bracketed-args-indent.rb:
	Extend examples for better regression testing.

2024-09-02  Aaron Jensen  <aaronjensen@gmail.com>

	Add new option ruby-bracketed-args-indent

	* lisp/progmodes/ruby-mode.el (ruby-bracketed-args-indent): New option.
	(ruby-smie-rules): Use it.  (bug#60321)
	* test/lisp/progmodes/ruby-mode-resources/ruby-bracketed-args-indent.rb:
	New file.
	* test/lisp/progmodes/ruby-mode-tests.el: Use it for new case.

2024-09-02  Eli Zaretskii  <eliz@gnu.org>

	Fix Rmail base64 and qp decoding of MIME payloads

	* lisp/mail/rmailmm.el (rmail-mime-insert-decoded-text)
	(rmail-mime-insert-html): Remove ^M characters left from DOS EOLs.
	This is what 'rmail-decode-region' does for non-MIME messages.

2024-09-01  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.7.11

2024-09-01  Juri Linkov  <juri@linkov.net>

	* test/lisp/emacs-lisp/tabulated-list-tests.el: Add missing test.
	(tabulated-list-groups-with-path): Add test for
	tabulated-list-groups.

2024-08-31  Evgenii Klimov  <eugene.dev@lipklim.org>

	Make 'python-shell--with-environment' respect buffer-local vars

	* lisp/progmodes/python.el (python-shell--with-environment): Make
	`with-temp-buffer' respect buffer-local values of
	`process-environment' and `exec-path', if set.  (Bug#72849)

2024-08-31  Evgenii Klimov  <eugene.dev@lipklim.org>

	Avoid ANSI escape characters in Python output (bug#45938)

	* lisp/progmodes/python.el (python-shell-completion-native-setup):
	Prevent Readline from emitting escape characters in comint output.

2024-08-31  John Wiegley  <johnw@gnu.org>

	Fix handling of hook variables in 'use-package'

	* lisp/use-package/use-package-core.el
	(use-package-handler/:hook): Append "-hook" to the symbol's name
	only if the named hook variable has no 'symbol-value'.
	(Bug#72818)

2024-08-31  Eli Zaretskii  <eliz@gnu.org>

	Work around Gnuplot bug in displaying plots

	* lisp/calc/calc-graph.el (calc-gnuplot-command): Prepend newline
	to Gnuplot command.  Suggested by Visuwesh <visuweshm@gmail.com>.
	(Bug#72778)

2024-08-31  Eli Zaretskii  <eliz@gnu.org>

	Revert "* lisp/help-fns.el (help-definition-prefixes): Don't
	delete the hashtable"

	This reverts commit 45ae4de0e7ce99c88c62f940f605bca693b8e33f.  It
	did not fix a regression or even a user-visible bug, and it caused
	bug#72787.

	Do not merge to master.

2024-08-31  kobarity  <kobarity@gmail.com>

	Make Python skeletons available in 'python-ts-mode' as well

	* lisp/progmodes/python.el (python-base-mode-abbrev-table):
	Renamed from 'python-mode-abbrev-table' to be available for both
	'python-mode' and 'python-ts-mode'.  (Bug#72298)

2024-08-30  Eli Zaretskii  <eliz@gnu.org>

	More accurate documentation of 'equal' in ELisp Reference

	* doc/lispref/objects.texi (Equality Predicates): Add lists and
	conses.  (Bug#72888)

2024-08-30  Jim Porter  <jporterbugs@gmail.com>

	Support "/dev/null" as a target when creating Eshell handles

	Previously, you could only use this when setting the handle afterwards.

	Do not merge to master.

	* lisp/eshell/esh-io.el (eshell-set-output-handle): Don't catch
	'eshell-null-device' here...
	(eshell-get-target): ... catch it here.

2024-08-30  Jim Porter  <jporterbugs@gmail.com>

	Fix redirecting Eshell output to symbols in some places

	Do not merge to master.

	* lisp/eshell/esh-io.el (eshell-output-object-to-target): Don't
	require TARGET to be bound.

	* lisp/eshell/em-script.el (eshell-execute-file): Quote the
	output/error targets.

	* test/lisp/eshell/em-script-tests.el (eshell-execute-file-output): New
	variable.
	(em-script-test/execute-file/output-file)
	(em-script-test/execute-file/output-symbol): New tests.

	* test/lisp/eshell/esh-io-tests.el (eshell-test-file-string): Move
	to...
	* test/lisp/eshell/eshell-tests-helpers.el
	(eshell-test-file-string): ... here.

2024-08-29  Eli Zaretskii  <eliz@gnu.org>

	Revert "; * admin/authors.el (authors-ignored-files): Add removed
	files."

	This reverts commit d809d53afc007574b3054027ff2eaf6c8d66996c.
	Not useful, for the same reason as the previously reverted
	commit.

2024-08-29  Eli Zaretskii  <eliz@gnu.org>

	Revert "; * admin/authors.el (authors-ignored-files): Ignore
	Unicode files."

	This reverts commit 0db53f14a2974de5209439326d4a9e4749462f42.
	It doesn't help, since existing files are considered worthy
	of mentioning regardless of the other lists.

2024-08-29  George Huebner  <george@feyor.sh>  (tiny change)

	xwidget: Fix xwidget-at misinterpreting non-xwidget
	text-properties.

	'xwidget-open' wrongly assumed the the text-property at
	min-position is an xwidget, if it exists; the fix is just
	returning nil if the text-property isn't an xwidget.
	* lisp/xwidget.el (xwidget-at): Use 'ignore-errors'.  (Bug#72848)

2024-08-29  Eli Zaretskii  <eliz@gnu.org>

	Fix rare segfaults due to freed fontsets

	* src/xfaces.c (recompute_basic_faces): Force complete
	recalculation of non-ASCII faces and their fontsets if any
	non-ASCII faces are in the frame's face cache.  (Bug#72692)

2024-08-28  Dmitry Gutov  <dmitry@gutov.dev>

	Eglot: fix completion highlighting (bug#72824)

	* lisp/progmodes/eglot.el (eglot-completion-at-point): Make sure
	to refer to 'completion-ignore-case' in the 'all-completions'
	method.

2024-08-27  Sean Whitton  <spwhitton@spwhitton.name>

	Discuss commit log messages on feature branches

	* admin/notes/git-workflow (Long-lived feature branches): New
	section, discussing commit log messages on feature branches.

2024-08-27  Sean Whitton  <spwhitton@spwhitton.name>

	* admin/authors.el (authors-fixed-entries): Update docstring.

2024-08-27  Yuan Fu  <casouri@gmail.com>

	More consistent treesit-forward-sexp around comments (bug#72525)

	* lisp/treesit.el (treesit-forward-sexp): Check if point is
	strictly inside a comment or string, only then use the default
	forward-sexp function; otherwise use tree-sitter's forward-sexp
	routine.

2024-08-26  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Improve php-ts-mode font lock and support latest grammar
	(bug#72796)

	* lisp/progmodes/php-ts-mode.el:
	(php-ts-mode--language-source-alist): Update the parser version.
	(php-ts-mode--parent-html-heuristic): Fix commentary.
	(php-ts-mode--keywords): Add "exit" keyword.
	(php-ts-mode--predefined-constant): Added math constant.
	(php-ts-mode--font-lock-settings): New and improved rules.

2024-08-26  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter local parser overlay cleanup routine

	Sorry for sneaking in a sizable commit so late.  But I just found
	out about this bug and it has to be fixed.  Before this change, we
	weren't properly cleaning up overlays that store local parsers.
	And in the case of doxygen local parser in C files, the doxygen
	local parser overlay sometimes bleeds out of comments and into
	other code, and interferes with font-lock and indentation.

	This commit adds a cleanup function that'll cleanup any overlays
	that aren't being used.  I tested with doxygen in C files and
	everything works smoothly now, including tricky tests like
	removing the ending "*/" of a doxygen comment and adding it back.

	The idea is simple, at the end of each call to
	(treesit-update-ranges BEG END), we remove any overlay within BEG
	and END that wasn't touched by the range setting code.

	* lisp/treesit.el (treesit--cleanup-local-range-overlays): New function.
	(treesit--update-ranges-local): Remove code for cleaning up
	zero-length overlays since we have the cleanup function now.
	(treesit-update-ranges): Wrap the function body inside a let form, which
	defines modified-tick; and add a call to
	treesit--cleanup-local-range-overlays at the very end.

2024-08-26  Stefan Kangas  <stefankangas@gmail.com>

	Fix copyright years by hand (Bug#72809)

	These are dates that admin/update-copyright did not update.

2024-08-25  Eli Zaretskii  <eliz@gnu.org>

	Revert a recent change that caused redisplay slowdown

	* src/xfaces.c (recompute_basic_faces): Revert the change which
	caused recalculation of all the faces, as it made cursor motion
	too slow.  Reported by Juri Linkov <juri@linkov.net> (bug#72692).

2024-08-25  F. Jason Park  <jp@neverwas.me>

	Indent ERT failure explanations rigidly

	This also affects the listing of `should' forms produced by
	hitting the L key on a test button in an ERT buffer.

	* lisp/emacs-lisp/ert.el (ert--pp-with-indentation-and-newline):
	Indent the pretty-printed result to match the caller's current
	column as a reference indentation.
	* test/lisp/emacs-lisp/ert-tests.el
	(ert--pp-with-indentation-and-newline): New test.  (Bug#72561)

2024-08-25  Dmitry Gutov  <dmitry@gutov.dev>

	[Eglot] Stricter "expand common" behavior

	* lisp/progmodes/eglot.el (eglot--dumb-tryc): Check that the
	expanded string matches every completion strictly (bug#72705).
	And in the fallback case, check whether the table matches the
	original prefix at all.  Return nil otherwise.

	* test/lisp/progmodes/eglot-tests.el
	(eglot-test-stop-completion-on-nonprefix)
	(eglot-test-try-completion-nomatch): Corresponding tests.

	* etc/EGLOT-NEWS: New entry.

2024-08-25  Dmitry Gutov  <dmitry@gutov.dev>

	eglot-tests.el: New tests for existing completion behavior

	* test/lisp/progmodes/eglot-tests.el
	(eglot-test-common-prefix-completion)
	(eglot-test-try-completion-inside-symbol)
	(eglot-test-rust-completion-exit-function): New tests.
	(eglot--wait-for-rust-analyzer): New function.

2024-08-25  Eli Zaretskii  <eliz@gnu.org>

	Remove dangerous HTML edit from admin.el

	* admin/admin.el (manual-html-fix-index-2): Avoid lax matches with
	"<ul>" which could mistakenly edit unrelated parts of HTML.
	(Bug#72761)

2024-08-24  Mattias Engdegård  <mattiase@acm.org>

	* etc/emacs_lldb.py (Lisp_Object): PVEC_COMPILED -> PVEC_CLOSURE.

2024-08-24  Eli Zaretskii  <eliz@gnu.org>

	Fix rare segfaults due to freed fontsets

	* src/xfaces.c (recompute_basic_faces): Force complete
	recalculation of all the faces.  (Bug#72692)

2024-08-23  Martin Rudalics  <rudalics@gmx.at>

	Avoid putting a dead buffer in the minibuffer window (Bug#72487)

	* src/minibuf.c (minibuffer_unwind): Make sure that the buffer
	referenced by the first element of the list of previous buffers of
	the minibuffer window is live before assigning it to the
	minibuffer window (Bug#72487).
	* src/window.c (set_window_buffer): Assert that BUFFER is live.

2024-08-22  João Távora  <joaotavora@gmail.com>

	Eglot: bump version to 1.17.30 and update EGLOT-NEWS

	This is a change specific to emacs-30.  Don't merge to master.

	* lisp/progmodes/eglot.el (Version): Mark it 1.17.30.

	* etc/EGLOT-NEWS (1.17.30): Fill in section.

2024-08-20  Andrea Corallo  <acorallo@gnu.org>

	Update 'ldefs-boot.el' (don't merge)

	* lisp/ldefs-boot.el: Update.

2024-08-20  Andrea Corallo  <acorallo@gnu.org>

	* doc/man/emacsclient.1: Bump date.

2024-08-20  Andrea Corallo  <acorallo@gnu.org>

	Bump Emacs version to 30.0.90

	* nt/README.W32: Update version.
	* msdos/sed2v2.inp: Likewise.
	* configure.ac: Likewise.
	* README: Likewise.

2024-08-20  Andrea Corallo  <acorallo@gnu.org>

	Update Changelogs

	* ChangeLog.4: Re-generate.
	* ChangeLog.3: Fix some type and style.

2024-08-20  Andrea Corallo  <acorallo@gnu.org>

	Update AUTHORS

	* etc/AUTHORS: Re-generate.
	* admin/authors.el (authors-fixed-entries): Add entry.

2024-08-20  Andrea Corallo  <acorallo@gnu.org>

	* admin/authors.el (authors-aliases, authors-ignored-files): Update.

	* admin/authors.el: Pick-up version from emacs-29.

2024-08-20  Stefan Kangas  <stefankangas@gmail.com>

	Add missing :version tags in use-package

	* lisp/use-package/use-package-core.el (use-package-keywords)
	(use-package-deferring-keywords, use-package-ignore-unknown-keywords)
	(use-package-use-theme, use-package-verbose)
	(use-package-check-before-init, use-package-always-defer)
	(use-package-always-demand, use-package-defaults)
	(use-package-merge-key-alist, use-package-hook-name-suffix)
	(use-package-minimum-reported-time, use-package-inject-hooks)
	(use-package-expand-minimally, use-package-form-regexp-eval)
	(use-package-enable-imenu-support, use-package-compute-statistics):
	* lisp/use-package/use-package-ensure.el (use-package-always-ensure)
	(use-package-always-pin, use-package-ensure-function): Add missing
	:version tags.

2024-08-20  Michael Albinus  <michael.albinus@gmx.de>

	Suppress shallow cloning on emba

	* test/infra/gitlab-ci.yml (variables): Set GIT_DEPTH to 0 in
	order to avoid shallow cloning.

2024-08-20  Po Lu  <luangruo@yahoo.com>

	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.

2024-08-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/help-fns.el (help-definition-prefixes): Don't delete the
	hashtable.

	Fixes bug#72511.

2024-08-19  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.7.10

2024-08-18  Andrea Corallo  <acorallo@gnu.org>

	Bump Emacs version to 30.0.90

	* nt/README.W32: Update version.
	* msdos/sed2v2.inp: Likewise.
	* configure.ac: Likewise.
	* README: Likewise.

2024-08-18  Andrea Corallo  <acorallo@gnu.org>

	Update AUTHORS

	* etc/AUTHORS: Re-generate.
	* admin/authors.el (authors-fixed-entries): Add entry.

2024-08-18  Andrea Corallo  <acorallo@gnu.org>

	* admin/authors.el: Pick-up version from emacs-29.

2024-08-18  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/gitlab-ci.yml (.tree-sitter-template): Adapt changes.

2024-08-18  Stefan Kangas  <stefankangas@gmail.com>

	Bump use-package version for Emacs 30.1

	* lisp/use-package/use-package.el: Bump version to 2.4.6.

2024-08-18  Andrea Corallo  <acorallo@gnu.org>

	* Makefile.in (CHANGELOG_HISTORY_INDEX_MAX): Bump.

2024-08-17  Eli Zaretskii  <eliz@gnu.org>

	Avoid rare crashes due to clobbering of input events

	* src/keyboard.c (read_char): Declare C 'volatile', to prevent
	clobbering it by setjmp/longjmp.  Do not merge to master.
	(Bug#71744)

2024-08-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	Further fix of reading and writing profiler data

	* lisp/profiler.el (profiler-report-make-entry-part): Print
	strings as-is.  (Bug#72559)

2024-08-17  Andrea Corallo  <acorallo@gnu.org>

	* Makefile.in (PREFERRED_BRANCH): Update to emacs-30.

2024-08-17  Po Lu  <luangruo@yahoo.com>

	Backport ed305c4b98cda5c6d479310e4ba350a17d901e75 to emacs-30

	* src/xterm.c (x_construct_mouse_click): `||' → `|'.  Typo found
	by clang 18.1.6 -Wbool-operation.  Do not merge to master.

2024-08-17  Eli Zaretskii  <eliz@gnu.org>

	Fix a typo in Eglot manual

	* doc/misc/eglot.texi (Eglot and Buffers): Fix typo.  Patch by
	david edmonds <edmonds.david.a@gmail.com>.  (Bug#72634)

2024-08-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix dumping of Lisp profiles

	* lisp/profiler.el (profiler-fixup-entry): New function.
	(profiler-fixup-backtrace): Use it.  (Bug#72559)

2024-08-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix 'apropos-library' for 'define-symbol-props'

	* lisp/apropos.el (apropos-library): Sanitize data to avoid
	signaling errors when 'define-symbol-props' is seen.  (Bug#72616)

2024-08-17  Eli Zaretskii  <eliz@gnu.org>

	Fix 'forward-comment' in 'toml-ts-mode'

	* lisp/textmodes/toml-ts-mode.el (toml-ts-mode--syntax-table): Fix
	syntax of newline.  Patch from Jostein Kjønigsen
	<jostein@secure.kjonigsen.net>.  (Bug#72489)

2024-08-17  Eli Zaretskii  <eliz@gnu.org>

	Document spell-checking of multiple languages

	* doc/emacs/fixit.texi (Spelling): Document spell-checking
	multi-lingual text with Hunspell.

2024-08-17  Peter Oliver  <git@mavit.org.uk>

	Apply --display kluge for PGTK too

	* src/emacs.c (main): The --display option needs the same handling
	with the PGTK backend as it does with the X11 backends.
	(Bug#72118)

2024-08-15  Pip Cet  <pipcet@protonmail.com>

	* lisp/files.el (require-with-check): Improve error messages.

2024-08-15  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of ERT

	* doc/misc/ert.texi (Running Tests Interactively)
	(Test Selectors):
	* lisp/emacs-lisp/ert.el (ert-select-tests)
	(ert-run-tests-interactively, ert-run-tests-batch): Improve and
	clarify the documentation of the main ERT functions.

2024-08-15  Visuwesh  <visuweshm@gmail.com>

	Disambiguate minor-mode variable in its function docstring

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring)
	(easy-mmode--mode-docstring): Add "the variable" before the GETTER
	if it is a symbol to properly link to minor-mode variable in the
	*Help* buffer in the common case.  (bug#72405)

2024-08-14  Arash Esbati  <arash@gnu.org>

	Fix project-dired keybinding in manual

	* doc/emacs/maintaining.texi (Project File Commands): Fix the
	keybinding for `project-dired'.  (Bug#72581)

2024-08-14  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of time-parsing functions

	* doc/lispref/os.texi (Time Parsing):
	* lisp/calendar/iso8601.el (iso8601-parse):
	* lisp/calendar/parse-time.el (parse-time-string): Document that
	these functions don't care about the distinction between local
	time and UTC.  (Bug#72570)

2024-08-13  Dmitry Gutov  <dmitry@gutov.dev>

	(project-find-regexp): Fix the temporary value of
	DEFAULT-DIRECTORY.

	* lisp/progmodes/project.el (project-find-regexp): Make sure the
	assigned value of DEFAULT-DIRECTORY ends with a slash.
	read-directory-name returns the name without it in certain cases.

2024-08-13  Michael Albinus  <michael.albinus@gmx.de>

	Tag test in typescript-ts-mode-tests.el as unstable

	* test/lisp/progmodes/typescript-ts-mode-tests.el
	(typescript-ts-mode-test-indentation): Tag it as :unstable on
	emba.

2024-08-12  Gerd Möllmann  <gerd@gnu.org>

	macOS: Wrong frame rectangle after wake (bug#71912)

	* src/nsterm.m ([EmacsView windowDidBecomeKey]): Call
	adjustEmacsFrameRect.

2024-08-11  Pip Cet  <pipcet@protonmail.com>

	Fix format 2 cmap handling in sfnt.c

	This code is untested as no font with a format 2 cmap could be
	found.

	* src/sfnt.c (sfnt_lookup_glyph_2): Fix typos.  Assume single-byte
	encodings use character codes 0, 1, ..., 255 rather than 0, 256,
	..., 65280.

2024-08-11  Pip Cet  <pipcet@protonmail.com>

	Fix coordinate transformations in sfnt.c

	Backport.

	* src/sfnt.c (sfnt_transform_coordinates):
	(sfnt_transform_f26dot6): Fix calculation of transformed
	coordinates in the very rare case of arbitrary transformation
	matrices.

2024-08-10  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>

	* lisp/epg.el (epg--start): Don't convert EOL on encoding
	(bug#72542).

2024-08-09  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	Add PROBLEMS entry for bug#72517

	* etc/PROBLEMS (X runtime problems): Document ssh -X session
	hang-on-exit after deletion of remote emacsclient -c frame.
	(bug#72517)

	(cherry picked from commit 9f03300c5c626bf6f8f839be4943cc20db89c24d)

2024-08-09  Gerd Möllmann  <gerd@gnu.org>

	NS: Fix scroll-bar setting code (bug#72331)

	* src/nsterm.m (ns_set_vertical_scroll_bar): Use
	WINDOW_SCROLL_AREA_WIDTH instead of NS_SCROLL_BAR_WIDTH.
	(ns_set_horizontal_scroll_bar): Use WINDOW_SCROLL_AREA_HEIGHT
	instead of NS_SCROLL_BAR_HEIGHT. Clear area differently if
	vertical scroll bars are present.
	* src/nsterm.h (NS_SCROLL_BAR_WIDTH, NS_SCROLL_BAR_HEIGHT):
	Remove.

2024-08-09  Po Lu  <luangruo@yahoo.com>

	Register for more Intents actions on Android

	* java/AndroidManifest.xml.in <EmacsOpenActivity>: Register for
	SEND Intents with mailto URIs.

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Use Intent
	constants rather than string literals.

2024-08-08  Paul W. Rankin  <rnkn@rnkn.xyz>

	* lisp/help-macro.el: Add 'help-for-help-use-variable-pitch'
	option.

	This makes 'variable-pitch-mode' optional, by default ON (to
	preserve previous behavior), in Help buffers.  (Bug#72521)

2024-08-08  Ulrich Müller  <ulm@gentoo.org>

	Remove manual entry for string-to-int

	* doc/lispref/strings.texi (String Conversion): Remove mention of
	'string-to-int' which was dropped in Emacs 26.  (Bug#72520)

2024-08-07  Spencer Baugh  <sbaugh@janestreet.com>

	Support minibuffer-visible-completions in completing-read-multiple

	All that's required is to add minibuffer-visible-completions-map
	on top of the completing-read-multiple map; this is the same thing
	that minibuffer-visible-completions does in
	completing-read-default.

	* lisp/emacs-lisp/crm.el (completing-read-multiple): Add
	minibuffer-visible-completions-map.  (bug#69189)

2024-08-07  Juri Linkov  <juri@linkov.net>

	* lisp/imenu.el (imenu-flatten): Fix doc about annotation/group
	limitations.

2024-08-07  Randy Taylor  <dev@rjt.dev>

	Fix cmake-ts-mode number fontification (Bug#72228)

	* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode--constants):
	Remove "1" and "0".
	(cmake-ts-mode--font-lock-settings): Match negative numbers.

2024-08-07  Po Lu  <luangruo@yahoo.com>

	Prevent accesses to /content files without a GUI connection

	* src/androidvfs.c (android_content_name): Hide all subdirectories
	when `android_init_gui' is not set.

2024-08-06  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp-integration.el (shortdoc): Use
	`tramp--with-startup'.

2024-08-06  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes in very large buffers with long lines

	* src/xdisp.c (get_large_narrowing_begv, get_large_narrowing_zv)
	(get_medium_narrowing_begv, get_medium_narrowing_zv): Use
	'ptrdiff_t' instead of 'int', to prevent integer overflow in large
	buffers.  (Bug#72497)

2024-08-06  Ulrich Müller  <ulm@gentoo.org>

	Update description of string comparison functions

	* doc/lispref/strings.texi (Text Comparison): Swap descriptions of
	'string-equal' (the function) and 'string=' (its alias).  Same for
	'string-lessp' and 'string<'.  Document 'string>'.  (Bug#72486)
	* doc/lispref/sequences.texi (Sequence Functions): Update cross
	reference to 'string-lessp'.

2024-08-05  Michael Albinus  <michael.albinus@gmx.de>

	Add sanity check when adding Tramp functions to shortdoc

	* lisp/net/tramp-integration.el (shortdoc): Check, that Tramp
	isn't disabled.

2024-08-05  Damien Cassou  <damien@cassou.me>

	js-ts-mode: Make jsdoc's "description" block a comment (bug#72461)

	* lisp/progmodes/js.el (js-ts-mode): Add "description" to
	`c-ts-common--comment-regexp'.

2024-08-05  Po Lu  <luangruo@yahoo.com>

	Also condition cjk-misc font-spec on Android

	* lisp/international/fontset.el (setup-default-fontset)
	<cjk-misc>: Don't search for matching scripts elsewhere than on
	Android.

2024-08-04  Eli Zaretskii  <eliz@gnu.org>

	Fix ':defer nil' in 'use-package'

	* lisp/use-package/use-package-core.el
	(use-package-normalize-keywords): Use 'plist-get' instead of
	'plist-member'.  (Bug#72414)

2024-08-04  Manuel Giraud  <manuel@ledu-giraud.fr>

	Document unsupported color Emoji on OpenBSD

	* etc/PROBLEMS (Runtime problems related to font handling):
	Document unsupported color Emoji on OpenBSD.  (Bug#72268)

2024-08-04  Stephen Berman  <stephen.berman@gmx.net>

	Fix regressions in Customize caused by 'widget-unselected' face

	* lisp/wid-edit.el (widget-checklist-add-item): Don't call
	'widget-specify-selected'.  (Bug#72404) (Bug#72156)

2024-08-04  David Ponce  <da_vid@orange.fr>

	Avoid inserting extra space in SVG data

	* lisp/svg.el (svg-print): Remove useless extra space from the XML
	representation of child node.  (Bug#72198)

2024-08-04  Damien Cassou  <damien@cassou.me>

	Fix c-ts-common filling function (bug#71760)

	* lisp/progmodes/c-ts-common.el (c-ts-common--fill-block-comment):
	If masking hasn't been done, don't unmask.

2024-08-03  Mattias Engdegård  <mattiase@acm.org>

	Fix missing type checks before specbind

	This fixes bugs that crashed Emacs when the Lisp interpreter was
	fed bad code.

	* src/eval.c (FletX, Flet, internal_lisp_condition_case)
	(funcall_lambda): Hoist symbol-with-pos elimination and type
	checks to a dominating position for efficiency.  This also plugs
	at least two typing holes.  (Mea culpa.)
	* test/src/eval-tests.el (eval-bad-specbind): New regression test.

2024-08-03  Po Lu  <luangruo@yahoo.com>

	Revert "Remove redundant byte-swapping boundary"

	This reverts commit daefd6771a4879bb8e71ea67f69522700155df01.

	* src/sfnt.c (sfnt_read_OS_2_table): Restore realignment after
	s_family_class, as it occupies byte 32, not 34.  Reported by Pip
	Cet <pipcet@protonmail.com>.

2024-08-03  Po Lu  <luangruo@yahoo.com>

	Fix various typos reported by Pip Cet

	* src/ftfont.c (get_adstyle_property):

	* src/sfntfont.c (sfntfont_list_1): Correct typos.  Reported by
	Pip Cet <pipcet@protonmail.com>.

2024-08-03  Gerd Möllmann  <gerd@gnu.org>

	NS: Fix placement of candidate window (bug#72422)

	* src/nsterm.m ([EmacsView firstRectForCharacterRange:actualRange:]):
	Call method of NSTextInput.

2024-08-01  Eli Zaretskii  <eliz@gnu.org>

	Avoid aborts when buffer is modified during its redisplay

	* src/xdisp.c (redisplay_window): Restore point from saved byte
	position only if the buffer was not changed meanwhile.
	(Bug#72165)

2024-08-01  Yuan Fu  <casouri@gmail.com>

	Fix c++-ts-mode indentation for templace (bug#72263)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--indent-styles): Add rule for template.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add test.

2024-08-01  Po Lu  <luangruo@yahoo.com>

	Better resolve bug#72188

	* lisp/international/fontset.el (setup-default-fontset) <han>:
	Don't search for fonts matching the `han' script elsewhere than on
	Android, which restores the status quo existing in Emacs 29.
	(bug#72188)

2024-07-31  Gerd Möllmann  <gerd@gnu.org>

	MacOS: Let EmacsView implement NSTextInputClient

	* src/nsterm.h (@interface EmacsView): Implement NSTextInputClient
	protocol.
	* src/nsterm.m: Implement required NSTextInputClient methods,
	forwarding to existing NSTextInput methods.

2024-07-30  Gerd Möllmann  <gerd@gnu.org>

	NS: Set frame position when entering/exiting fullscreen
	(bug#71912)

	* src/nsterm.h ([EmacsView adjustEmacsRectRect]): Declare.
	* src/nsterm.m ([EmacsView windowDidEnterFullScreen]): New method.
	([EmacsView windowDidEnterFullScreen]): Call it.
	([EmacsView windowDidExitFullScreen]): Call it.

2024-07-29  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-move-tab-to-group): Fix for a new
	group's tab.

	Move tab with a new group to the end of the tab bar (bug#72352)
	Suggested by Ship Mints <shipmints@gmail.com>

2024-07-29  Po Lu  <luangruo@yahoo.com>

	Fix sporadic crashes and `select' failures in dumped images

	* src/process.c (init_process_emacs) [HAVE_UNEXEC]: Clear dumped
	values of child_signal_read_fd and child_signal_write_fd.

2024-07-29  Po Lu  <luangruo@yahoo.com>

	Correct display of Doc View documents after tab switching

	* lisp/doc-view.el (doc-view-new-window-function): Prevent
	creation of duplicate overlays for the same window after a window
	configuration change occasions a call to i-m-r-winprops.

2024-07-27  Jim Porter  <jporterbugs@gmail.com>

	Use 'kill-process' as a fallback when a pipe gets broken in Eshell

	This is better than 'delete-process' since it will ensure that any
	stderr pipe-processes get stopped as well (bug#72117).

	* lisp/eshell/esh-proc.el (eshell-insertion-filter): Use
	'kill-process' instead of 'delete-process'.

2024-07-27  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.7.9

2024-07-26  Philip Kaludercic  <philipk@posteo.net>

	Fix edge-case with 'which-key-dont-use-unicode' setter

	* lisp/which-key.el (which-key-dont-use-unicode): Check if the
	user options have a 'standard-value' before proceeding to
	reevaluate.  This avoids accidentally setting the symbol value to
	nil, before the user option has been declared, overriding the
	actual non-nil, default values.  (Bug#72077)

2024-07-26  Gerd Möllmann  <gerd@gnu.org>

	NS: prevent makeKeyWindow warnings (bug#69525)

	* src/nsterm.m (ns_raise_frame): Don't makeKeyWindow if frame has
	no_accept_focus set.

2024-07-26  Po Lu  <luangruo@yahoo.com>

	Add PROBLEMS entry for bug#72303

	* etc/PROBLEMS (Runtime problems specific to PGTK build): Document
	that text mode sessions cannot be started without `-nw'.
	(bug#72303)

2024-07-26  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of '--init-directory' command-line option.

	* doc/emacs/custom.texi (Find Init):
	* doc/emacs/cmdargs.texi (Initial Options): More accurate and
	detailed description of what '--init-directory' does and how it
	affects the Emacs session.  Add index entries and cross-references
	as needed.  (Bug#72294)

2024-07-25  Andrea Corallo  <acorallo@gnu.org>

	Fix bug in server.el introduced by 0d7d835902df

	0d7d835902df renamed 'server--process-filter' into
	'server--process-filter-1' but updated the corresponding
	'cl-return-from' tag to 'server--process-filter'.

	* lisp/server.el (server--process-filter-1): Fix 'cl-return-from'
	tag.

2024-07-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/minibuffer.el (completion--sifn-requote): Fix bug#72176

2024-07-25  Stefan Kangas  <stefankangas@gmail.com>

	* admin/notes/spelling: Update note.

2024-07-25  Konstantin Kharlamov  <Hi-Angel@yandex.ru>

	Don't produce invalid XML with multi-line commenting style

	Both XML and HTML forbid double hyphens inside comments.  However,
	nxml-mode was using a `!--' as a comment padding if
	`comment-style' was set to any of the styles that supposed to add
	padding.  This infix was auto-derived due to `comment-continue'
	being nil.  To fix that set `comment-continue' explicitly.  It's
	unclear what padding should be used, but from looking at other
	editors it seems they don't typically add padding in XML, so let's
	be simple for now and just set `comment-continue' to empty string.

	* lisp/nxml/nxml-mode.el (nxml-mode): Make 'comment-continue' a
	buffer-local variable set to the empty string.  (Bug#71772)

2024-07-25  Stefan Kangas  <stefankangas@gmail.com>

	Standardize possessive apostrophe usage in manuals, docs, and
	comments.

	See the note in admin/notes/documentation.
	Ref: https://lists.gnu.org/r/emacs-devel/2012-02/msg00649.html

2024-07-24  Stefan Kangas  <stefankangas@gmail.com>

	Don't refer to obsolete finder group "wp"

	* lisp/textmodes/rst.el: Don't refer to obsolete finder group
	"wp".

2024-07-24  Andrea Corallo  <acorallo@gnu.org>

	Fix some function type declaration

	* lisp/window.el (get-lru-window, get-largest-window): Fix
	function type declaration.
	* lisp/subr.el (error): Likewise.

2024-07-24  Po Lu  <luangruo@yahoo.com>

	* src/image.c (gui_put_x_image): Avoid memory leak.

2024-07-24  Po Lu  <luangruo@yahoo.com>

	Adapt last change to non-NS systems

	* src/image.c (xpm_load_image): Also check whether mask_img is
	NULL.

2024-07-24  Po Lu  <luangruo@yahoo.com>

	Fix NULL pointer dereferences in xpm_load_image

	* src/image.c (x_destroy_x_image): Correct test condition.
	(xpm_load_image): Do not release image data if it is still to be
	created.

2024-07-24  Po Lu  <luangruo@yahoo.com>

	* src/image.c (struct image_type): Minor grammatical corrections.
	(image_destroy_x_image): [HAVE_NS]: Do not release
	Emacs_Pix_Containers, which are identical to Emacs_Pixmaps and
	consequently always released with the `struct image'.
	(bug#72255)

2024-07-23  Stefan Kangas  <stefankangas@gmail.com>

	Delete redundant "a.k.a." in use-package.texi

	* doc/misc/use-package.texi (Getting Started): Delete redundant
	acronym "a.k.a.".  (Bug#66350)

2024-07-23  Stefan Kangas  <stefankangas@gmail.com>

	Document (use-package 'emacs) declarations

	* doc/misc/use-package.texi (The @code{emacs} package): New node.
	(Bug#66350)

2024-07-23  Robert Pluim  <rpluim@gmail.com>

	Improve 'emacs-news-view-mode' menus and bindings

	* lisp/textmodes/emacs-news-mode.el (emacs-news-mode-map): Move
	non-editing commands from here...
	(emacs-news-common-map): ... to here.
	(emacs-news-view-mode): Remove hard-coded 'special-mode' bindings.
	(emacs-news-view-mode-map): Inherit from 'special-mode-map' and
	'emacs-news-common-map' here instead.
	(emacs-news-mode--menu-common-1): New defconst for menu items
	common to 'news-mode' and 'news-view-mode'.
	(emacs-news-mode--menu-common-2): Second new defconst for common
	items.
	(emacs-news-mode-menu): Use them.
	(emacs-news-view-mode-menu): New menu, which omits the buffer
	editing commands.

	This builds on the fix for Bug#72080.

2024-07-23  Gerd Möllmann  <gerd@gnu.org>

	Fix disappearing bar cursor on Hebrew text (bug#72230)

	* src/nsterm.m (ns_draw_window_cursor): Compute the correct bar
	cursor rectangle for R2L before setting the clipping.

2024-07-22  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix DocView with DVI files

	* lisp/doc-view.el (doc-view-pdf/ps->png): Use
	`doc-view-pdf->png-converter-function' for DVI files, too, since
	they are converted to PDF earlier.

2024-07-22  Alan Mackenzie  <acm@muc.de>

	Fix spurious fontification of variable in Java Mode

	* lisp/progmodes/cc-engine.el (c-forward-<>-arglist): Remove
	tentative type identifier from c-record-type-identifiers should
	it turn out not to be a type.  (bug#72126)

2024-07-22  Stefan Kangas  <stefankangas@gmail.com>

	Correctly typeset nil and t in texinfo

	* doc/emacs/package.texi (Fetching Package Sources):
	* doc/lispref/display.texi (Image Descriptors):
	* doc/lispref/windows.texi (Buffer Display Action Alists):
	* doc/misc/gnus-faq.texi (FAQ 5-4): Correctly typeset nil and t.

2024-07-22  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp IPv6 handling in tests

	* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
	* lisp/net/tramp-sh.el (tramp-maybe-open-connection): Improve
	message.

	* lisp/net/tramp-integration.el (shortdoc): Add further examples
	of `file-remote-p'.

	* lisp/net/tramp.el (tramp-handle-file-remote-p): Extend
	docstring.

	* test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
	(tramp-test02-file-name-dissect-simplified)
	(tramp-test02-file-name-dissect-separate): Extend tests.
	(tramp-test06-directory-file-name)
	(tramp-test26-file-name-completion)
	(tramp-test26-interactive-file-name-completion): Better handling
	of IPv6 hosts.

2024-07-22  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.7.8-5-gfdf0e0

2024-07-22  Yuan Fu  <casouri@gmail.com>

	Fix Ftreesit_parser_create

	* src/treesit.c (Ftreesit_parser_create): Use the buffer given by
	the caller rather than the current buffer.

2024-07-22  Yuan Fu  <casouri@gmail.com>

	Fix segfault when deleting tree-sitter query (bug#72238)

	* src/treesit.c (treesit_delete_query): Only delete query and
	cursor when they are non-NULL.

2024-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Improve treesit-node-child-by-field-name docstring

	* src/treesit.c (Ftreesit_node_child_by_field_name): Improve
	docstring.

2024-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Minor copyedits in tree-sitter starting guide

	* admin/notes/tree-sitter/starter-guide: Minor copyedits.
	Reflow some paragraphs.

2024-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Update tag for prebuilt tree-sitter grammars

	* admin/notes/tree-sitter/starter-guide: Update tag for prebuilt
	tree-sitter grammars to point to 2.4.

2024-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Fix punctuation and doc style in treesit.c

	* src/treesit.c (Ftreesit_parser_included_ranges)
	(Ftreesit_query_capture, treesit_traverse_sibling_helper)
	(treesit_traverse_match_predicate): Fix punctuation and
	documentation style in comments and docstrings.

2024-07-21  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix DocView with PostScript files

	* lisp/doc-view.el (doc-view-set-up-single-converter): Produce PNG
	from PS in a file with ".png" extension.  (Bug#72193)

2024-07-20  Liu Hui  <liuhui1610@gmail.com>

	Fix bibtex validation for non-file buffers

	* lisp/textmodes/bibtex.el (bibtex-validate): Use buffer name to
	show errors in non-file buffers.  (Bug#71946)

2024-07-20  Eli Zaretskii  <eliz@gnu.org>

	Fix Imenu in 'emacs-news-view-mode'

	* lisp/textmodes/emacs-news-mode.el (emacs-news-view-mode): Make
	it derived from emacs-news-mode.  Add useful key bindings.
	(Bug#72080)

2024-07-20  Eli Zaretskii  <eliz@gnu.org>

	Avoid errors in 'icomplete-vertical-mode'

	* lisp/minibuffer.el (completion--hilit-from-re): Avoid signaling
	an error if STRING does not match REGEXP.  Fix doc string and
	indentation.  (Bug#72176)

2024-07-20  Stefan Kangas  <stefankangas@gmail.com>

	Document GNU ELPA copyright in tips.texi

	* doc/lispref/tips.texi (Library Headers): Document that GNU ELPA
	packages should have their copyright assigned to the FSF.

2024-07-20  Stefan Kangas  <stefankangas@gmail.com>

	Improve register-use-preview docstring

	* lisp/register.el (register-use-preview): Improve docstring.

2024-07-20  Stefan Kangas  <stefankangas@gmail.com>

	Miscellaneous checkdoc fixes

	* lisp/ansi-color.el (ansi-color--ensure-context):
	* lisp/doc-view.el (doc-view-svg-face):
	* lisp/external-completion.el (external-completion-table):
	* lisp/ffap.el (ffap-ro-mode-hook, ffap-gnus-hook):
	* lisp/find-file.el:
	* lisp/flow-ctrl.el (flow-control-c-s-replacement)
	(flow-control-c-q-replacement):
	* lisp/forms.el (forms-multi-line):
	* lisp/help.el (search-forward-help-for-help):
	* lisp/hi-lock.el (hi-lock-use-overlays):
	* lisp/image.el (find-image):
	* lisp/isearch.el (isearch-forward, isearch-forward-regexp)
	(isearch-lazy-count-format):
	* lisp/jsonrpc.el (jsonrpc--continue, initialize-instance):
	* lisp/mouse-copy.el (mouse-kill-preserving-secondary):
	* lisp/pixel-scroll.el (pixel-bob-at-top-p)
	(pixel-scroll-down-and-set-window-vscroll):
	* lisp/printing.el (pr-gv-command, pr-gs-command)
	(pr-gs-switches):
	* lisp/register.el (register-use-preview):
	* lisp/repeat.el (repeat-check-key):
	* lisp/saveplace.el (save-place-abbreviate-file-names):
	* lisp/select.el (gui--clipboard-selection-unchanged-p):
	* lisp/ses.el (ses-header-row):
	* lisp/simple.el (transpose-sexps-default-function)
	(normal-erase-is-backspace, normal-erase-is-backspace-mode):
	* lisp/sqlite-mode.el (sqlite-mode):
	* lisp/tempo.el (tempo-insert-region):
	* lisp/term.el (term-mode-map, term-mode, term-char-mode):
	Checkdoc fixes.

2024-07-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/peg.el (peg-syntax-classes): Typo (bug#72131)

2024-07-19  Jonas Bernoulli  <jonas@bernoul.li>

	* lisp/transient.el (static-if): Remove duplicated definition.
	(Bug#72182)

	This should have been removed when the standalone version was
	merged into Emacs.

2024-07-19  Michael Albinus  <michael.albinus@gmx.de>

	Adapt file-remote-p doc

	* doc/lispref/files.texi (Magic File Names): Adapt file-remote-p.

	* lisp/files.el (file-remote-p): Adapt docstring.

2024-07-18  Stefan Kangas  <stefankangas@gmail.com>

	* etc/TODO: Delete item about merging Magit.

	Change requested by Jonas Bernoulli <jonas@bernoul.li>.

2024-07-18  Stefan Kangas  <stefankangas@gmail.com>

	* doc/man/emacs.1.in: Add "No warranty" notice.

2024-07-18  Stefan Kangas  <stefankangas@gmail.com>

	Improve emacs man page description of --user flag

	* doc/man/emacs.1.in: Improve --user flag description.
	(Bug#72169)

2024-07-18  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in allout-widgets.el

	* lisp/allout-widgets.el (allout-widgets-setup)
	(allout-widgets-tally-string, allout-widgets-mode-inhibit):
	(allout-widgets-hook-error-handler): Checkdoc fixes.

2024-07-18  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in subr.el

	* lisp/subr.el (ctl-x-4-map, ctl-x-map)
	(touch-screen-events-received): Checkdoc fixes.

2024-07-18  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in touch-screen.el

	* lisp/touch-screen.el (touch-screen-handle-touch): Checkdoc
	fixes.

2024-07-18  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in treesit.el

	* lisp/treesit.el (treesit-add-font-lock-rules)
	(treesit--font-lock-mark-ranges-to-fontify): Checkdoc fixes.

2024-07-18  Stefan Kangas  <stefankangas@gmail.com>

	Avoid overflow in pgtk_is_numeric_char

	* src/pgtkfns.c (parse_resource_key): Avoid overflow by making
	array larger, if a key is RESOURCE_KEY_MAX_LEN long.  Do not merge
	to master, since it's fixed in a different way there.

2024-07-18  Po Lu  <luangruo@yahoo.com>

	Port better to Android 3.0

	* java/org/gnu/emacs/EmacsNoninteractive.java (main): Use the old
	getPackageInfo calling convention if it exists rather than on
	Android 2.3.3 and earlier.

2024-07-17  Michael Albinus  <michael.albinus@gmx.de>

	New Tramp tests

	* test/lisp/net/tramp-tests.el
	(tramp-test41-special-characters-direct-async)
	(tramp-test42-utf8-direct-async): New tests.

2024-07-17  Michael Albinus  <michael.albinus@gmx.de>

	Update Tramp manual

	* doc/misc/tramp.texi (Remote processes): Add another reason why a
	direct asynchronous process could fail.

2024-07-17  Robert Pluim  <rpluim@gmail.com>

	Fix 'toggle-window-dedicated' documentation

	* doc/emacs/windows.texi (Displaying Buffers): Fix the cross
	reference to the elisp manual.  Add missing
	'toggle-window-dedicated'.
	* doc/lispref/windows.texi (Dedicated Windows): Mention
	'toggle-window-dedicated'.

2024-07-16  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in transient.el

	* lisp/transient.el (transient-format-description): Checkdoc
	fixes.

2024-07-15  Peter Oliver  <git@mavit.org.uk>

	Fix intermittent failure of dired-test-bug27243-02

	* test/lisp/dired-tests.el (dired-test-bug27243-02): Exclude free
	disk space from dired listing in this test, in case it changes
	while it's running and confuses the result.  (Bug#72120)

2024-07-15  Stefan Kangas  <stefankangas@gmail.com>

	* etc/TODO: Refer to Bug#72127 for Magit assignments.

2024-07-15  Michael Albinus  <michael.albinus@gmx.de>

	Rename treesitter test

	* test/lisp/align-tests.el (align-ts-lua): Rename test in order to
	fit to treesitter tests on EMBA.

2024-07-15  Michael Albinus  <michael.albinus@gmx.de>

	Adapt treesitter tests on EMBA

	* test/infra/Makefile.in (TREE-SITTER-FILES): Simplify.

	* test/infra/test-jobs.yml: Regenerate.

2024-07-15  Jim Porter  <jporterbugs@gmail.com>

	Support passing signals like 'SIGCODE' to 'tramp-signal-process'

	POSIX specifies that "kill" should take signal names without the
	"SIG" prefix.

	* lisp/net/tramp.el (tramp-signal-process): Strip the "SIG" prefix
	when present.

2024-07-15  Jim Porter  <jporterbugs@gmail.com>

	Don't save to history from 'eshell-command' when aborting

	* lisp/eshell/eshell.el (eshell-add-input-to-history)
	(eshell--save-history): Declare.
	(eshell-command-mode-exit): New function...
	(eshell-command-mode): ... use it.

	* lisp/eshell/em-hist.el (eshell-hist-initialize): Don't handle
	minibuffer logic here.  Always read history file (this ensures
	that 'eshell-command' can see the history, too).
	(eshell-add-command-to-history): Remove.

2024-07-14  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.7.7-2-gf308d3

2024-07-14  Eli Zaretskii  <eliz@gnu.org>

	Fix decoding 'display' properties with SVG images in Enriched mode

	* lisp/textmodes/enriched.el (enriched-next-annotation): Reject
	matches of 'enriched-annotation-regexp' inside strings.  Reported
	by Christopher Howard <christopher@librehacker.com> in
	https://lists.gnu.org/archive/html/help-gnu-emacs/2024-06/msg00178.html.

2024-07-14  Pip Cet  <pipcet@protonmail.com>

	* configure.ac (D8): Fix typo.

2024-07-14  Po Lu  <luangruo@yahoo.com>

	Do not set LD_LIBRARY_PATH during Android initialization

	* doc/emacs/android.texi (Android Environment): Adjust
	documentation to match.

	* java/org/gnu/emacs/EmacsNoninteractive.java (main1): New
	function.  Remove initialization of EmacsNative hither.
	(main): Acquire an ApplicationInfo or LoadedApk, as the case may
	be on the host system, derive a ClassLoader from the result, and
	load and call `main1' from within this class loader.

	* src/android-emacs.c (main):

	* src/android.c (setEmacsParams): Do not override LD_LIBRARY_PATH
	or set EMACS_LD_LIBRARY_PATH.  This enables Emacs to execute
	subprocesses in certain "fortified" Android systems, amongst other
	things.

2024-07-13  Eli Zaretskii  <eliz@gnu.org>

	* test/lisp/wdired-tests.el (wdired-test-bug34915): Fix for
	MS-Windows.

2024-07-13  Peter Oliver  <git@mavit.org.uk>

	Fix 'wdired-test-unfinished-edit-01'

	* test/lisp/wdired-tests.el (wdired-test-unfinished-edit-01):
	Don't modify the random directory name if, by chance, it happens
	to contain the substring "foo" anywhere but immediately after the
	slash.  (Bug#72073)

2024-07-13  Vincenzo Pupillo  <vincenzo.pupillo@unimi.it>

	Fontify destructor in c++-ts-mode

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add
	a rule for destructors.  (Bug#71872)

2024-07-12  F. Jason Park  <jp@neverwas.me>

	Fix invalid defcustom type for erc-buffers option

	* lisp/erc/erc.el (erc-ensure-target-buffer-on-privmsg): Change
	invalid inner `choice' to a `const' for the third-state `status'
	variant, which is new in ERC 5.6 and Emacs 30.  Thanks to Mattias
	Engdegård for catching this.

2024-07-12  Eli Zaretskii  <eliz@gnu.org>

	Fix infloop in 'shell-resync-dirs'

	* lisp/shell.el (shell-eval-command): Fix detection of newline
	after last output line.  (Bug#71896)
	(shell-resync-dirs): Make sure the inner loop never infloops.
	Suggested by Troy Hinckley <troyhinckley@dabrev.com>.

2024-07-12  Po Lu  <luangruo@yahoo.com>

	Render more Android functions safe to execute in a batch session

	* src/androidfns.c (Fx_display_mm_width, Fx_display_mm_height)
	(Fandroid_display_monitor_attributes_list)
	(Fandroid_external_storage_available_p)
	(Fandroid_request_storage_access): Verify that a display
	connection or service object is available.

	* src/androidselect.c (Fandroid_get_clipboard)
	(Fandroid_browse_url_internal, Fandroid_get_clipboard_targets)
	(Fandroid_get_clipboard_data, Fandroid_notifications_notify):
	Moderate tone of error messages.

2024-07-12  Po Lu  <luangruo@yahoo.com>

	Document means of executing Emacs from unrelated Android
	applications

	* doc/emacs/android.texi (Android Environment): Document
	significance, effect and purpose of EMACS_CLASS_PATH and
	EMACS_LD_LIBRARY_PATH, and the utility of `pm path org.gnu.emacs'.

2024-07-12  Jim Porter  <jporterbugs@gmail.com>

	Don't emit a prompt in Eshell when a background command is killed

	* lisp/eshell/esh-cmd.el (eshell-resume-command): Check for
	background-ness before resetting the prompt.

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/background/simple-command): Make the regexp a bit
	stricter.
	(esh-cmd-test/background/kill): New test.

2024-07-11  Daniel Martín  <mardani29@yahoo.es>

	Fix reference from buffer-stale-function docstring

	* lisp/files.el (buffer-stale-function): Fix reference to a
	non-existent Info node in doc string.  (Bug#72049)

2024-07-11  Po Lu  <luangruo@yahoo.com>

	Take precautions against ill-formed content URIs

	* java/org/gnu/emacs/EmacsService.java (openContentUri)
	(checkContentUri): Verify that URIs derived from user-provided
	file names can be parsed before attempting to open them.

2024-07-11  Dmitry Gutov  <dmitry@gutov.dev>

	etags-regen-mode: Handle TAGS buffer being killed

	* lisp/progmodes/etags-regen.el (etags-regen--visit-table): Use
	kill-buffer-hook to ensure a refresh if the TAGS buffer is killed
	manually (bug#71727).
	(etags-regen--tags-cleanup): Bind the hook var to nil to avoid an
	infloop.

2024-07-10  Robert Pluim  <rpluim@gmail.com>

	Improve 'put-image' documentation

	* doc/lispref/display.texi (Showing Images): Mention that it
	returns the created overlay.
	* lisp/image.el (put-image): And here.

2024-07-10  Robert Pluim  <rpluim@gmail.com>

	Improve 'set-fontset-font' documentation

	* doc/emacs/mule.texi (Modifying Fontsets): Add an 'emoji'
	example.

2024-07-10  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp's "run0" method

	* doc/misc/tramp.texi (Inline methods):
	* etc/NEWS: Adapt "run0" entry.

	* lisp/net/tramp-sh.el (tramp-enable-run0-method): Adapt "run0"
	arguments.

2024-07-10  Andrea Corallo  <acorallo@gnu.org>

	* test/src/sqlite-tests.el (sqlite-execute-batch): Declare to wave
	warning.

2024-07-10  Stefan Kangas  <stefankangas@gmail.com>

	Capitalize "Dired" and "Lisp" in docstrings

	* lisp/desktop.el (desktop-no-desktop-file-hook):
	* lisp/dired-x.el (dired-mark-sexp):
	* lisp/dired.el (dired-make-directory-clickable)
	(dired-map-over-marks, dired-file-name-at-point)
	(dired-save-positions, dired-buffers-for-dir)
	(dired-buffers-for-dir-or-subdir, dired-fun-in-all-buffers)
	(dired-remove-entry, dired-delete-entry, dired-jump):
	* lisp/files.el (save-buffer):
	* lisp/find-dired.el (find-ls-option):
	* lisp/hilit-chg.el:
	* lisp/locate.el (locate-mode):
	* lisp/msb.el (msb-dired-item-handler, msb-sort-by-directory):
	* lisp/printing.el (pr-ps-printer-alist, pr-ps-utility-alist):
	* lisp/uniquify.el (uniquify-trailing-separator-p):
	* lisp/wdired.el (wdired, wdired-change-to-dired-mode, wdired-exit):
	* lisp/woman.el (woman-dired-define-keys, woman-dired-find-file):
	Capitalize "Dired" and "Lisp" in docstrings.  Found with checkdoc.

2024-07-09  Jim Porter  <jporterbugs@gmail.com>

	Document Eshell entry points

	* doc/misc/eshell.texi (Entry Points): New chapter.
	(Scripts): Move under Entry Points.  Expand documentation.

2024-07-09  Po Lu  <luangruo@yahoo.com>

	* src/image.c (free_image_cache): Unconditionally release image
	cache, as this function is only called with its existence already
	established.

	* src/xfaces.c (free_frame_faces): Clear FRAME_IMAGE_CACHE (f).
	(bug#71929)

2024-07-09  Po Lu  <luangruo@yahoo.com>

	* src/pgtkterm.c (pgtk_draw_fringe_bitmap): Always call
	`fill_background_by_face' for clearing backgrounds of fringe
	bitmaps.  (bug#70697)

2024-07-09  Po Lu  <luangruo@yahoo.com>

	Fix byte-compiler warning in calc.el

	* lisp/calc/calc.el
	(calc-embedded-open-close-new-formula-alist): Remove previously
	introduced quotation marks, as they bring the width of the doc
	string past 80.

2024-07-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	editorconfig-core-handle.el: Fix regressions in fnmatch handling

	* lisp/editorconfig-core-handle.el
	(editorconfig-core-handle-get-properties-hash): Fix computation of
	relative file name.
	(editorconfig-core-handle--fnmatch-p): Handle the case when
	`pattern' doesn't have a `/' but does match the `/' character.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `url/*.el'

	* lisp/url/url-util.el (url-query-key-value-allowed-chars):
	* lisp/url/url.el (url-retrieve-synchronously): Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `term/*.el'

	* lisp/term/android-win.el (android-clear-preedit-text):
	* lisp/term/pgtk-win.el (featurep):
	* lisp/term/x-win.el (x-clear-preedit-text): Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `mh-e/*.el'

	* lisp/mh-e/mh-e.el (mh-tool-bar):
	* lisp/mh-e/mh-folder.el (mh-folder-mode):
	* lisp/mh-e/mh-search.el (mh-pick-menu, mh-search-mode):
	* lisp/mh-e/mh-show.el (mh-show-mode): Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `calc/*.el'

	* lisp/calc/calc.el (calc-embedded-open-close-new-formula-alist):
	Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `textmodes/*.el'

	* lisp/textmodes/ispell.el (ispell-command-loop):
	* lisp/textmodes/mhtml-mode.el (mhtml--construct-submode):
	* lisp/textmodes/page-ext.el (pages-set-delimiter):
	* lisp/textmodes/refbib.el (r2b-get-field, r2b-put-field):
	* lisp/textmodes/refer.el (refer-cache-bib-files):
	* lisp/textmodes/reftex-index.el
	(reftex-index-phrase-selection-or-word):
	(reftex-index-phrases-mode):
	* lisp/textmodes/table.el (table-insert)
	(table--fill-region-strictly): Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `gnus/*.el'

	* lisp/gnus/gnus-agent.el (gnus-agent-enable-expiration)
	(gnus-agent-with-refreshed-group, gnus-agentize)
	(gnus-agent-fetch-headers)
	(gnus-agent-update-files-total-fetched-for)
	(gnus-agent-update-view-total-fetched-for):
	* lisp/gnus/gnus-art.el (gnus-article-address-banner-alist)
	(gnus-default-article-saver, gnus-mime-view-part-as-charset)
	(gnus-block-private-groups, gnus-article-edit-mode):
	* lisp/gnus/gnus-dired.el (gnus-dired-mode, gnus-dired-attach)
	(gnus-dired-find-file-mailcap, gnus-dired-print):
	* lisp/gnus/gnus-msg.el (gnus-summary-attach-article):
	* lisp/gnus/gnus-score.el (gnus-home-score-file):
	* lisp/gnus/gnus-search.el (gnus-search-ignored-newsgroups)
	(gnus-search-mu-switches, gnus-search-mu-remove-prefix)
	(gnus-search-thread):
	* lisp/gnus/gnus-sieve.el (gnus-sieve-string-list):
	* lisp/gnus/message.el (message-beginning-of-line):
	* lisp/gnus/mm-url.el:
	* lisp/gnus/mm-view.el (mm-w3m-setup, mm-setup-w3m):
	* lisp/gnus/mml-sec.el (mml-signencrypt-style):
	* lisp/gnus/nndiary.el:
	* lisp/gnus/nnimap.el (nnimap-server-port, nnimap-use-namespaces)
	(nnimap-expunge):
	* lisp/gnus/nnmail.el (nnmail-incoming-coding-system):
	(nnmail-ignore-broken-references):
	* lisp/gnus/nnmairix.el (nnmairix-default-group):
	* lisp/gnus/nntp.el (nntp-report):
	* lisp/gnus/nnvirtual.el (nnvirtual-update-read-and-marked):
	(nnvirtual-partition-sequence):
	* lisp/gnus/spam-stat.el (spam-stat-process-directory-age)
	(spam-stat-last-saved-at, spam-stat-save):
	* lisp/gnus/spam.el (spam-enter-ham-BBDB, spam-check-BBDB):
	Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `eshell/*.el'

	* lisp/eshell/em-elecslash.el:
	* lisp/eshell/em-extpipe.el:
	* lisp/eshell/em-pred.el (eshell-get-delimited-modifier-argument):
	* lisp/eshell/esh-cmd.el (eshell--unmark-deferrable)
	(eshell-named-command-hook):
	* lisp/eshell/esh-module.el (eshell-module--feature-name):
	* lisp/eshell/esh-util.el (eshell-find-delimiter): Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `emulation/*.el'

	* lisp/emulation/cua-base.el:
	* lisp/emulation/viper-mous.el (viper-parse-mouse-key):
	* lisp/emulation/viper.el (viper-major-mode-modifier-list):
	Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `erc/*.el'

	* lisp/erc/erc-backend.el (erc-server-parameters):
	* lisp/erc/erc-button.el (erc-button--display-error-with-buttons):
	* lisp/erc/erc-dcc.el (erc-dcc-member):
	* lisp/erc/erc-fill.el (erc-fill-wrap-refill-buffer):
	* lisp/erc/erc-speedbar.el (erc-speedbar--last-ran):
	* lisp/erc/erc-stamp.el (erc-stamp--current-time):
	* lisp/erc/erc-track.el (erc-make-mode-line-buffer-name):
	* lisp/erc/erc.el (erc-interactive-display, erc-modules, erc-cmd-CLEAR)
	(erc-update-current-channel-member, erc--format-user-modes)
	(erc-check-text-conversion): Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `vc/*.el'

	* lisp/vc/ediff-init.el (ediff-start-narrowed)
	(ediff-buffer-values-orig-A, ediff-buffer-values-orig-B)
	(ediff-buffer-values-orig-C, ediff-buffer-values-orig-Ancestor):
	* lisp/vc/ediff-mult.el:
	* lisp/vc/ediff-ptch.el (ediff-get-patch-buffer):
	* lisp/vc/emerge.el (emerge-before-flag, emerge-after-flag):
	* lisp/vc/vc-dav.el (vc-dav-checkin):
	* lisp/vc/vc-git.el (vc-git-command):
	* lisp/vc/vc-hg.el (vc-hg-command):
	* lisp/vc/vc-src.el (vc-src-command):
	* lisp/vc/vc-svn.el (vc-svn-command):
	* lisp/vc/vc.el (vc-checkin): Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `emacs-lisp/*.el'

	* lisp/emacs-lisp/bytecomp.el (byte-compile-free-vars-warn)
	(byte-compile-out):
	* lisp/emacs-lisp/eldoc.el (eldoc-documentation-functions):
	* lisp/emacs-lisp/find-func.el (find-ert-deftest-regexp):
	* lisp/emacs-lisp/macroexp.el (byte-compile-form-stack):
	Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `mail/*.el'

	* lisp/mail/feedmail.el (feedmail-mail-send-hook-splitter)
	(feedmail-queue-runner-message-sender):
	* lisp/mail/mail-extr.el (mail-extr-nuke-outside-range):
	* lisp/mail/rmail.el (rmail-automatic-folder-directives)
	(rmail-summary-displayed):
	* lisp/mail/rmailmm.el (rmail-mime-searching):
	* lisp/mail/sendmail.el (mail-mode):
	* lisp/mail/supercite.el (sc-mail-last-header-nuked-p): Checkdoc
	fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in `net/*.el'

	* lisp/net/ange-ftp.el:
	* lisp/net/dictionary.el (dictionary-tool-bar-map):
	* lisp/net/eudc.el (eudc-translate-query)
	(eudc-translate-attribute-list)
	(eudc-format-inline-expansion-result, eudc-bookmark-server):
	* lisp/net/eww.el (eww-check-text-conversion):
	* lisp/net/rcirc.el (rcirc-server-name):
	* lisp/net/tramp-adb.el (tramp-adb-handle-get-remote-uid):
	* lisp/net/tramp-cmds.el
	(tramp-recompile-elpa-command-completion-p):
	* lisp/net/tramp-crypt.el (tramp-crypt-command-completion-p):
	* lisp/net/tramp-message.el
	(tramp-debug-buffer-command-completion-p):
	* lisp/net/tramp-sh.el (tramp-use-connection-share):
	* lisp/net/tramp.el (tramp-command-completion-p): Checkdoc fixes.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Improve `use-package-vc-valid-keywords' docstring format

	* lisp/use-package/use-package-core.el
	(use-package-vc-valid-keywords): Improve docstring format.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Revert "Fix link to major mode variable in docstring"

	This reverts commit 73c1252bb6b7cc61d9f992818568d3c57de4ff67.

	This will sometimes say
	"the variable `(default-value 'global-auto-revert-mode)'".
	Problem reported by Eshel Yaron <me@eshelyaron.com>.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	* etc/TODO: Add item to convert documentation to 'setopt'.

2024-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Prefer 'setopt' in browse-url docs

	* lisp/net/browse-url.el:
	(browse-url-filename-alist): Doc fix; prefer 'setopt'.

2024-07-08  Po Lu  <luangruo@yahoo.com>

	Correct conditions for iconification on Android

	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity)
	<isPaused>: Rename to `isStopped'.
	(attachWindow): Adjust to match.
	(onPause): Delete function.
	(onStop): Deem frames iconified after calls to onStop instead.

2024-07-08  Jim Porter  <jporterbugs@gmail.com>

	Fix execution of MS-Windows app execution aliases in Eshell

	* lisp/eshell/esh-ext.el (eshell-script-interpreter): Check for
	0-size files.  (bug#71655)

2024-07-07  Eval EXEC  <execvy@gmail.com>  (tiny change)

	Improve 'tab-line-tabs-fixed-window-buffers' sorting performance

	* lisp/tab-line.el (tab-line-tabs-fixed-window-buffers): Enhance
	'tab-line-tabs-fixed-window-buffers' performance by optimizing
	buffer sorting mechanism.  Replace inefficient 'seq-position'
	calls with a hash table to cache buffer positions, significantly
	improving speed when handling large buffer lists (bug#71958).

2024-07-07  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp version (don't merge)

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el (tramp-version): Adapt Tramp versions.

2024-07-07  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp parser

	* lisp/net/tramp.el (tramp-host-with-port-regexp): Declare.
	(tramp-set-syntax): Set also `tramp-host-with-port-regexp'.
	(tramp-build-host-with-port-regexp): New defun.
	(tramp-host-with-port-regexp): Make it a defvar.  (Bug#71972)

	* test/lisp/net/tramp-tests.el (tramp-test01-file-name-syntax)
	(tramp-test01-file-name-syntax-simplified)
	(tramp-test01-file-name-syntax-separate): Adapt tests.

2024-07-07  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in progmodes

	* lisp/progmodes/cperl-mode.el (cperl-file-style)
	(cperl-continued-brace-offset, cperl-tips-faces):
	* lisp/progmodes/eglot.el (eglot-confirm-server-edits, eglot)
	(eglot-list-connections-mode)
	(eglot--outstanding-inlay-hints-region)
	(eglot--outstanding-inlay-regions-timer):
	* lisp/progmodes/etags.el (etags-goto-tag-location)
	(etags--xref-apropos-additional):
	* lisp/progmodes/flymake.el (flymake-autoresize-margins):
	* lisp/progmodes/gdb-mi.el (gdb-mouse-until, gdb-mouse-jump):
	* lisp/progmodes/hideif.el (hif-parse-macro-arglist):
	* lisp/progmodes/idlw-help.el (idlwave-html-help-location):
	* lisp/progmodes/idlwave.el (idlwave-reserved-word-upcase):
	* lisp/progmodes/java-ts-mode.el
	(java-ts-mode--string-highlight-helper):
	* lisp/progmodes/js.el (js--chained-expression-p):
	* lisp/progmodes/pascal.el (pascal-mode, pascal-comment-area):
	* lisp/progmodes/python.el (python--treesit-fontify-union-types):
	* lisp/progmodes/ruby-mode.el (ruby-align-chained-calls)
	(ruby-block-indent, ruby-rubocop-use-bundler):
	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--prettify-symbols-compose-p):
	* lisp/progmodes/verilog-mode.el (verilog-cache-has-lisp)
	(verilog-auto-insert-lisp, verilog-highlight-region):
	* lisp/progmodes/xref.el (xref--get-history): Various checkdoc
	fixes.

2024-07-07  Stefan Kangas  <stefankangas@gmail.com>

	Checkdoc fixes in Org Mode

	* lisp/org/ob-core.el:
	* lisp/org/ob-exp.el:
	* lisp/org/ob-lob.el:
	* lisp/org/ob-plantuml.el (org-babel-execute:plantuml):
	* lisp/org/ob-python.el (org-babel-python--command)
	(org-babel-python-initiate-session-by-key)
	(org-babel-python-initiate-session):
	* lisp/org/ob-scheme.el (org-babel-scheme-make-session-name):
	* lisp/org/ob-tangle.el (org-babel-find-file-noselect-refresh)
	(org-babel-interpret-file-mode):
	* lisp/org/ob.el:
	* lisp/org/org-agenda.el (org-agenda-mouse-1-follows-link)
	(org-agenda-start-with-archives-mode)
	(org-agenda-previous-line):
	* lisp/org/org-clock.el (org-clock-save, org-clock-load):
	* lisp/org/org-element-ast.el (org-element-type-p):
	* lisp/org/org-faces.el (org-cycle-level-faces):
	* lisp/org/org-fold-core.el (org-fold-core--isearch-overlays):
	* lisp/org/org-fold.el (org-fold--extend-changed-region):
	* lisp/org/org-goto.el:
	* lisp/org/org-habit.el (org-habit-show-all-today):
	* lisp/org/org-inlinetask.el (org-inlinetask-in-task-p):
	* lisp/org/org-macs.el (org-current-text-column):
	* lisp/org/org-mobile.el (org-mobile-check-setup):
	* lisp/org/org-mouse.el (org-mouse-bolp):
	* lisp/org/org-refile.el (org-refile):
	* lisp/org/org-src.el (org-src-do-key-sequence-at-code-block):
	* lisp/org/org-table.el (orgtbl-after-send-table-hook)
	(orgtbl-self-insert-command, orgtbl-to-orgtbl):
	* lisp/org/org.el (org-read-date-popup-calendar)
	(org-finish-function)
	(org-occur-parameters, org-self-insert-command)
	(org-ctrl-c-ctrl-c-hook)
	(org-ctrl-c-ctrl-c-final-hook, org-submit-bug-report)
	(org--single-lines-list-is-paragraph):
	* lisp/org/ox-icalendar.el (org-icalendar--vtodo):
	* lisp/org/ox-latex.el (org-latex-generate-engraved-preamble):
	(org-latex-src--engrave-code):
	* lisp/org/ox-publish.el (org-publish-project-alist):
	* lisp/org/ox.el (org-export-data): Various checkdoc fixes.

2024-07-07  Stefan Kangas  <stefankangas@gmail.com>

	Clarify `checkdoc-max-keyref-before-warn' docstring

	* lisp/emacs-lisp/checkdoc.el (checkdoc-max-keyref-before-warn):
	Clarify and reflow docstring.  Fix warning about overly long
	docstring.

2024-07-07  Juri Linkov  <juri@linkov.net>

	* lisp/files.el (insert-directory): Quote switches in wildcard
	case.

	Use shell-quote-wildcard-pattern on the switches string split by
	split-string-and-unquote.  This helps to quote such switches as
	"--block-size='1" (bug#71935).

2024-07-07  Juri Linkov  <juri@linkov.net>

	Fix uses of 'dired-omit-mode' (bug#71905)

	* lisp/dired.el (dired-jump): Disable dired-omit-mode with -1.

	* lisp/files.el (recover-session): Disable dired-omit-mode
	explicitly afterwards instead of modifying dired-mode-hook that
	fails when it contains a lambda.

2024-07-07  Po Lu  <luangruo@yahoo.com>

	* src/androidvfs.c (android_saf_check_nonnull): Fix typo.

2024-07-07  Po Lu  <luangruo@yahoo.com>

	Correct JNI string error checking and miscellaneous corrections

	* src/android-emacs.c (main): Do not attempt to load the bootstrap
	class path, which is redundant on all Android releases.

	* src/android.c (initEmacs, android_browse_url): Do not assume
	exceptions will be raised if GetStringUTFChars fails.  Decode
	Android JNI strings as Qandroid_jni.

	* src/androidvfs.c (android_saf_check_nonnull): New function.
	(android_saf_new_mkdir): Likewise.

2024-07-07  Stefan Kangas  <stefankangas@gmail.com>

	Correctly highlight SYMTAB in `awk-mode'

	* lisp/progmodes/cc-awk.el (awk-font-lock-keywords): Fix typo for
	"SYMTAB" (see Info node '(gawk) Auto-set').

2024-07-06  JD Smith  <93749+jdtsmith@users.noreply.github.com>

	Fix formatting of tables with thead/tfoot but no tbody

	Correctly handle formatting of tables containing thead and/or
	tfoot, but without any tbody, to prevent including thead/tfoot
	content twice within the table's derived body.
	* lisp/net/shr.el (shr--fix-tbody): Omit 'thead' and 'tfoot' from
	implicit body.  (Bug#71685)
	* test/lisp/net/shr-resources/table.html:
	* test/lisp/net/shr-resources/table.txt: New tests for table
	rendering.

2024-07-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	(buf_bytepos_to_charpos): Fix mixup introduced in commit
	b300052fb4ef.

	Backport of commit 1b595b4598e7 since it turns out this "minor
	typo" had disastrous consequences in pathological cases and
	explains some of the problems seen in bug#71644 and bug#63040.

	* src/marker.c (buf_bytepos_to_charpos): Don't compare
	byte-positions with char-positions.

2024-07-06  Stefan Kangas  <stefankangas@gmail.com>

	package-buffer-info: Move 'require' earlier

	* lisp/emacs-lisp/package.el (package-buffer-info):
	Move 'require' earlier, before it is needed.

2024-07-06  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Fix treesit range rule for jsdoc

	The parser for jsdoc is local, so it is necessary for the range
	rule to take this into account.
	* lisp/progmodes/js.el (js-ts-mode): Add ':local' keyword.
	(js-ts-language-at-point): Remove 'js-ts-language-at-point'.
	(Bug#71776)

2024-07-06  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of 'balance-windows'

	* lisp/window.el (balance-windows): Doc fix.

	* doc/emacs/windows.texi (Change Window): Make the description of
	'balance-windows' more accurate.  (Bug#71915)

2024-07-06  Daniel Semyonov  <daniel@dsemy.com>

	nnatom: Ensure some parsed values are one line

	* lisp/gnus/nnatom.el (nnatom--dom-line): New function.
	(nnatom--read-title, nnatom--read-description)
	(nnatom--read-article-or-group-authors, nnatom--read-subject)
	(nnatom--read-id, nnatom--read-publish, nnatom--read-update)
	(nnatom--read-links): Read text using `nnatom--dom-line'.
	(Bug#71889)

2024-07-06  Daniel Semyonov  <daniel@dsemy.com>

	nnfeed: (Mostly) fix group descriptions

	* lisp/gnus/nnfeed.el (nnfeed--group-description): New function.
	(nnfeed-request-group-description)
	(nnfeed-request-list-newsgroups): Use `nnfeed--group-description'
	and always return t if group data is found.  (Bug#71888)

2024-07-06  João Távora  <joaotavora@gmail.com>

	Eglot: support deprecated MarkedString (bug#71353)

	* lisp/progmodes/eglot.el: Make a markdown code block if
	MarkedString passed.

2024-07-06  Eli Zaretskii  <eliz@gnu.org>

	Fix returning to original TTY frame after 'rmail-reply'

	* lisp/mail/rmail.el (rmail-start-mail): Record the frame from
	which an Rmail command, such as 'rmail-mail' or 'rmail-reply', was
	invoked.
	(rmail--find-orig-rmail-frame): New function.
	(rmail-mail-return): Use 'rmail--find-orig-rmail-frame' to find
	the original frame, and make it the top frame on its TTY terminal.
	(Bug#69738)

2024-07-05  Eli Zaretskii  <eliz@gnu.org>

	Improve warnings from native compiler

	* src/comp.c (syms_of_comp) <native-compiler>: Rename from 'comp'.

	* src/lread.c (maybe_swap_for_eln):
	* lisp/emacs-lisp/comp.el (comp--fwprop):
	* lisp/emacs-lisp/comp-run.el
	(comp--accept-and-process-async-output, native--compile-async):
	Adjust to the new symbol.

2024-07-05  Stefan Kangas  <stefankangas@gmail.com>

	Document adding package dependency on Emacs version

	* doc/lispref/package.texi (Simple Packages, Multi-file Packages):
	Document how to make a package depend on a specific version of
	Emacs.

2024-07-05  Eli Zaretskii  <eliz@gnu.org>

	Fix file-name detection in Dired under -F

	* lisp/files.el (insert-directory-clean): Support all the symbols
	appended to file names by the -F/--classify option of 'ls'.  See
	https://lists.gnu.org/archive/html/emacs-devel/2024-07/msg00366.html
	for the details.

2024-07-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(edebug--called-interactively-skip): Fix bug#71934

	* lisp/emacs-lisp/edebug.el (edebug--called-interactively-skip):
	Adjust to new interpreted functions.

2024-07-03  Eli Zaretskii  <eliz@gnu.org>

	Fix MS-Windows build with native-compilation

	* src/w32.c (globals_of_w32): Move re-initialization of
	Vlibrary_cache from here...
	* src/emacs.c (main): ...to here, as it must be after load_pdump.
	(Bug#71916)

2024-07-03  Andrea Corallo  <acorallo@gnu.org>

	Tag dbus-test05-register-signal-with-nils as unstable

	* test/lisp/net/dbus-tests.el (dbus-test05-register-signal-with-nils):
	Tag it as unstable.

2024-07-03  Yuan Fu  <casouri@gmail.com>

	* test/src/treesit-tests.el (treesit-node-check): Re-parse buffer
	before checking for node outdated-ness.  (bug#71907)

2024-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Focus more on MS-Windows than MS-DOS in FAQ

	* doc/misc/efaq.texi (Editing Windows files): Rename section from
	"Editing MS-DOS files", and update the text to focus on Windows.
	* doc/misc/efaq.texi (Colors on a TTY)
	(Emacs does not display 8-bit characters): Mention MS-Windows
	before MS-DOS.

2024-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Autoload some string functions

	These functions are documented in both `(elisp) Creating Strings'
	and 'M-x shortdoc RET string RET', so users will expect them to be
	available without having to require 'subr-x'.

	* lisp/emacs-lisp/subr-x.el (string-fill, string-limit, string-pad)
	(string-chop-newline): Autoload.

2024-07-02  Michael Albinus  <michael.albinus@gmx.de>

	* etc/NEWS: Fix typos.

2024-07-01  Alan Mackenzie  <acm@muc.de>

	Remove a reference to a non-existent variable from a docstring

	* lisp/progmodes/cc-langs.el (c-opt-extra-label-key): Remove
	reference to c-nonlabel-decl-prefix-re from the doc string.

2024-07-01  Po Lu  <luangruo@yahoo.com>

	* java/res/mipmap-v26/emacs_icon.xml: Define monospace icon.

2024-07-01  Stefan Kangas  <stefankangas@gmail.com>

	Improve `sentence-end-double-space' docstring

	* lisp/textmodes/paragraphs.el (sentence-end-double-space):
	Improve and expand docstring.

2024-07-01  Stefan Kangas  <stefankangas@gmail.com>

	Backport file backup FAQ item to Emacs <28

	* doc/misc/efaq.texi (Not writing files to the current directory):
	Backport recommendation to Emacs 27 or older.  Problem reported by
	David Hedlund <davidh@gnu.org>.

2024-06-30  Eli Zaretskii  <eliz@gnu.org>

	More updates of documentation for Emacs 30

	* etc/NEWS: Improve wording and move/mark entries.

	* doc/lispref/positions.texi (List Motion): Document
	'forward-sentence-function'.
	* doc/lispref/functions.texi (What Is a Function): Document
	'primitive-function-p' and 'cl-functionp'.
	* doc/emacs/misc.texi (Saving Emacs Sessions): Improve wording and
	indexing.
	* doc/lispref/tips.texi (Documentation Tips): Adapt to the new
	value of 'emacs-lisp-docstring-fill-column'.
	* doc/emacs/fixit.texi (Spelling): Document
	'flyspell-check-changes'.

2024-06-30  Mattias Engdegård  <mattiase@acm.org>

	Revert "; * etc/NEWS: Move items to "Incompatible Lisp Changes"."

	This reverts commit 000ef8876ae9e2098cf98e1b1c468c09be3acd43.
	Most of the moved items weren't actually incompatible changes.

2024-06-30  Po Lu  <luangruo@yahoo.com>

	Improve Android "adaptive icon"

	* java/res/drawable/emacs_background.xml:

	* java/res/drawable/emacs_foreground.xml: Transform borders and
	gradient colors to better align with the original.

2024-06-30  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation for Emacs 30

	* etc/NEWS: Mark entries and improve wording.

	* doc/emacs/dired.texi (Operating on Files): Document
	'dired-do-open'.  Fix indexing.
	* doc/emacs/files.texi (Diff Mode): Document 'diff-apply-buffer'.
	Fix indexing.
	* doc/emacs/maintaining.texi (Project File Commands)
	(Project Buffer Commands): Document 'project-any-command'.
	* doc/emacs/building.texi (Other GDB Buffers): Document the user
	option 'gdb-display-io-buffer'.
	(Grep Searching): Document 'grep-use-headings'.
	* doc/emacs/text.texi (Outline Visibility): Document Outline
	commands that hide/show by heading regexp.
	* doc/emacs/killing.texi (Kill Options): Document
	'kill-ring-deindent-mode'.
	* doc/emacs/basic.texi (Continuation Lines): Improve wording.

2024-06-30  Robert Church  <chrchr@gmail.com>

	Add D-Bus test

	* test/lisp/net/dbus-tests.el (dbus-test05-register-signal-with-nils):
	New test.  (Bug#69926)

2024-06-30  Po Lu  <luangruo@yahoo.com>

	* configure.ac (W32_LIBS): Don't link with -lusp10 on non-Cygwin
	systems.

	* src/emacs.c (main): Call globals_of_w32 before the startup
	directory is initialized.

	* src/w32.c (maybe_load_unicows_dll): Call
	load_unicows_dll_for_w32fns.

	* src/w32.h: Update prototypes.

	* src/w32fns.c (Fx_create_frame, w32_create_tip_frame): Do not
	register the Uniscribe font driver when unavailable.
	(pfnSHFileOperationW): New function pointer.
	(Fsystem_move_file_to_trash): Load UNICOWS.DLL if not yet loaded.
	Call SHFileOperationW through said function pointer.
	(pfnShellExecuteExW): New function pointer.
	(Fw32_shell_execute) [!CYGWIN]: Load UNICOWS.DLL if not yet
	loaded.  Call ShellExecuteExW through said function pointer.
	(pfnShell_NotifyIconW): New function pointer.
	(add_tray_notification, delete_tray_notification): Call
	Shell_NotifyIconW through said function pointer.
	(Fw32_notification_notify): Load UNICOWS.DLL.
	(Fw32_notification_close): Return if Shell_NotifyIconW is
	unavailable, as when UNICOWS.DLL has yet to be loaded.
	(load_unicows_dll_for_w32fns): New function.

	* src/w32notify.c (pfnReadDirectoryChangesW): New function
	pointer.
	(watch_completion, remove_watch, Fw32notify_add_watch)
	(Fw32notify_rm_watch, Fw32notify_valid_p): Call
	ReadDirectoryChangesW through said function pointer, and assert
	its presence.
	(globals_of_w32notify): Load ReadDirectoryChangesW from
	KERNEL32.DLL.

	* src/w32uniscribe.c (pfnScriptItemize, pfnScriptShape)
	(pfnScriptPlace, pfnScriptGetGlyphABCWidth, pfnScriptFreeCache)
	(pfnScriptGetCMap): New function pointers.
	(uniscribe_close, uniscribe_shape, uniscribe_encode_char)
	(uniscribe_check_otf_1): Call Uniscribe functions through the
	same.
	(syms_of_w32uniscribe_for_pdumper): Load Uniscribe library and
	required functions from the same, and if unavailable, return while
	leaving uniscribe_available intact.  On Cygwin, simply assign
	USP10.DLL functions to the said new function pointers.

2024-06-30  Yuan Fu  <casouri@gmail.com>

	Fix treesit crash

	To reproduce the problem:

	0. emacs -Q
	1. eval: (add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode))
	2. C-x v L
	3. in the *vc-change-log* buffer move point to the commit 20af58d3a13
	4. type D
	5. crash caused by diff-font-lock-syntax fontification that uses treesit

	Emacs: 6f2036243f2 (2024-06-23, latest master)
	Tree-sitter: 3da7deed (2024-06-08, version 0.22.6)

	The immediate cause of the crash is that tree-sitter accessed a
	node's tree, but the tree is already deleted.  Commenting out the
	ts_tree_delete line in treesit_ensure_parsed can "fix" the crash.

	What happened, I think, is this:

	1. Buffer modified, parser->need_reparse set to true,
	parser->timestamp incremented.
	2. A node is created from the parser, this node has the old tree
	but the new timestamp (bad!).
	3. Parser re-parses (treesit_ensure_parsed), new tree created, old
	tree deleted.
	4. Ftreesit_query_capture accessed the old node, and the old tree,
	crash.

	We shouldn't bump the parser timestamp when we set
	parser->need_reparse to true; instead, we should bump the
	timestamp when we actually reparsed and created a new tree.

	* src/treesit.c (treesit_record_change): Don't bump parser
	timestamp.
	(treesit_sync_visible_region): Don't bump parser timestamp.
	(Ftreesit_parser_set_included_ranges): Don't bump parser
	timestamp.
	(treesit_ensure_parsed): Bump parser timestamp.
	(Ftreesit_query_capture): Add node check.

2024-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Delete redundant mention of `with-eval-after-load'

	* lisp/progmodes/dcl-mode.el (dcl-mode): Delete redundant mention
	of `with-eval-after-load'.

2024-06-29  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/efaq.texi (New in Emacs 30): Fix typos.

2024-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Document security fixes in FAQ

	* doc/misc/efaq.texi (New in Emacs 29): Recommend using Emacs
	29.4.
	* doc/misc/efaq.texi (Security risks with Emacs): New item with a
	recommendation to upgrade Emacs for improved security.

2024-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Add "New in Emacs 30" to FAQ

	* doc/misc/efaq.texi (New in Emacs 30): New section.

2024-06-29  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>

	Fix non-ASCII filename operatiion on EasyPG (bug#71500)

	* lisp/epg.el (epg--start): Don't encode command-line arguments for
	gpg2 program in raw-text.

2024-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Silence warning with global minor mode :predicate

	* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
	Silence byte-compiler warning when :predicate is used.

2024-06-29  George Huebner  <george@feyor.sh>  (tiny change)

	Fix: make 'xwidget-webkit-scroll-backward' scroll backwards

	* lisp/xwidget.el (xwidget-webkit-scroll-backward): Move hyphen
	out of %-formatter, changing semantics from a padding specifier to
	a negative sign.  (Bug#71792)

2024-06-29  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Add jsdoc support to php-ts-mode in <script> element

	In the <script> element, enable jsdoc embedding in JavaScript.
	* lisp/progmodes/php-ts-mode.el
	(php-ts-mode--language-source-alist): Add jsdoc to parser recipe.
	(php-ts-mode): Add jsdoc parser check and a new rule for
	'treesit-range-settings'.  Update the commentary section.
	(Bug#71771)

2024-06-29  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.7.2-4-gf75bc48d

2024-06-29  Po Lu  <luangruo@yahoo.com>

	Fix typo incurring leaks of face structures

	* src/xfaces.c (free_realized_face): Always free realized face
	structures, and avoid sending X requests when the display is not
	available, not when it is.

2024-06-29  Michael Albinus  <michael.albinus@gmx.de>

	Sync with Tramp 2.7.1

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el (tramp-version): Adapt Tramp versions.
	(customize-package-emacs-version-alist): Add Tramp version
	integrated in Emacs 30.1.

	* lisp/net/tramp-compat.el:
	* lisp/net/tramp-message.el (tramp-warning): Use `lwarn'.

	* test/lisp/net/tramp-tests.el
	(tramp--test-deftest-without-file-attributes): New defmacro.
	(tramp-test18-file-attributes-without-file-attributes)
	(tramp-test19-directory-files-and-attributes-without-file-attributes)
	(tramp-test18-file-attributes-without-file-attributes)
	(tramp-test42-utf8-without-file-attributes): New tests.

2024-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Expand docstring of which-key-mode

	* lisp/which-key.el (which-key-mode): Expand docstring.

2024-06-28  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'remove-overlays' in ELisp manual

	* doc/lispref/display.texi (Managing Overlays): Update
	documentation of 'remove-overlays'.  (Bug#57534) (Bug#13648)

2024-06-28  Stefan Kangas  <stefankangas@gmail.com>

	Fix link to major mode variable in docstring

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Fix
	link to major mode variable in docstring.  (Bug#71815)

2024-06-28  Michael Albinus  <michael.albinus@gmx.de>

	Make `shell-mode' more robust

	* lisp/shell.el (shell-mode): Ensure that
	`comint-input-ring-file-name' is non-nil when calling
	`file-truename'.

2024-06-28  Po Lu  <luangruo@yahoo.com>

	Correct omissions in rmc.el

	* lisp/emacs-lisp/rmc.el (touch-screen-scroll)
	(touch-screen-pinch): Declare functions.
	(read-multiple-choice--short-answers): Call the same functions
	directly and prevent the on-screen keyboard from being deactivated
	immediately before it is reopened.

2024-06-28  Juri Linkov  <juri@linkov.net>

	* lisp/hi-lock.el: More fixes related to revert-buffer.

	(hi-lock-set-pattern): Use the same propertized string for
	'overlay-put' property to allow 'remove-overlays' to remove it
	while using 'eq' on the property value.
	https://lists.gnu.org/archive/html/emacs-devel/2024-06/msg01001.html

2024-06-28  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.7.5-9-ga091ca

2024-06-27  Eli Zaretskii  <eliz@gnu.org>

	Write Antinews for Emacs 30 ELisp Reference

	* doc/lispref/anti.texi (Antinews):
	* doc/lispref/elisp.texi (Top): Rewrite "Antinews" for Emacs 30.

2024-06-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/elisp-mode.el (eval-last-sexp): Set `values' only
	when `eval-expression-debug-on-error' is nil. (bug#71774)

2024-06-27  Juri Linkov  <juri@linkov.net>

	More fixes for `revert-buffer'

	* lisp/hi-lock.el (hi-lock-set-pattern): Put the text property
	'regexp' on the lighter string.
	(hi-lock-revert-buffer-rehighlight): Get the real regexp from the
	text property 'regexp'.  This fixes the case when the original
	regexp gets lost after e.g. 'M-s . M-s h r'.  (bug#71681)

2024-06-27  Juri Linkov  <juri@linkov.net>

	* lisp/hi-lock.el (hi-lock-revert-buffer-rehighlight): Instead of
	detecting invalidated overlays, use the same condition as in
	'hi-lock-set-pattern', and always re-highlight overlays, because
	even when overlays stays on their original positions, there is a
	need to highlight more matches possibly added after revert.
	(bug#57534)

2024-06-27  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-select-restore-windows): Improve the
	docstring.  Suggested by Kévin Le Gouguec
	<kevin.legouguec@gmail.com> in bug#71779.

2024-06-27  Eli Zaretskii  <eliz@gnu.org>

	Write Antinews for Emacs 30 user manual

	* doc/emacs/anti.texi (Antinews):
	* doc/emacs/emacs.texi (Top): Rewrite "Antinews" for Emacs 30.

2024-06-27  F. Jason Park  <jp@neverwas.me>

	Change ERC version for Emacs 30 to 5.6.0.30.1

	* doc/misc/erc.texi: Change ERCVER to 5.6.0.30.1.
	* lisp/erc/erc.el: Change Version package header to 5.6.0.30.1.
	Don't bother updating the `customize-package-emacs-version-alist'
	entry because no user options are yet affected.
	(erc-version): Change version to 5.6.0.30.1.
	Do not merge to master.

2024-06-27  Po Lu  <luangruo@yahoo.com>

	* src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper): Typos.

2024-06-27  Andrea Corallo  <acorallo@gnu.org>

	Fix two tests for --without-all build

	* test/src/image-tests.el
	(image-tests-image-mask-p/error-on-nongraphical-display)
	(image-tests-image-metadata/error-on-nongraphical-display): XPM
	images are not supported in all configurations so use XBM for non
	graphical display tests.

2024-06-27  Eli Zaretskii  <eliz@gnu.org>

	Fix handling of non-nil 'dired-movement-style'

	* lisp/dired.el (dired--move-to-next-line): Treat any non-nil
	value of 'dired-movement-style' except 'cycle' as 'bounded'.
	(dired-movement-style): Mention this in the doc string.
	(Bug#71770)

2024-06-27  James Thomas  <jimjoe@gmx.net>

	Do not prematurely truncate python eldoc string

	'eldoc-echo-area-use-multiline-p' is there for that.
	* lisp/progmodes/python.el (python-eldoc-setup-code):
	Make the change.  (Bug#71720)

	* etc/NEWS: Announce the change in behavior.

2024-06-27  Sebastian Miele  <iota@whxvd.name>

	Add tests for `kill-whole-line' (bug#65734)

	* test/lisp/simple-tests.el (simple-test-point-tag):
	(simple-test-mark-tag):
	(simple-test--set-buffer-text-point-mark):
	(simple-test--get-buffer-text-point-mark): Add helper functions
	used by the tests.
	(kill-whole-line-invisible):
	(kill-whole-line-read-only):
	(kill-whole-line-after-other-kill):
	(kill-whole-line-buffer-boundaries):
	(kill-whole-line-line-boundaries): Add tests for
	`kill-whole-line'.

2024-06-27  Sebastian Miele  <iota@whxvd.name>

	kill-whole-line: Honor visibility; fix kill-ring when read-only
	(bug#65734)

	* lisp/simple.el (kill-whole-line): Use visibility state before
	performing any edits as reference instead of expecting that
	visibility cannot change.  First of the two calls to `kill-region'
	may trigger `after-change-functions' that might alter the
	visibility state.  Make sure that we populate the `kill-ring' with
	the contents of the whole line when buffer is in `read-only-mode'.

2024-06-27  Juri Linkov  <juri@linkov.net>

	* lisp/hi-lock.el (hi-lock-file-patterns-policy): Add value
	'always'.
	(hi-lock-mode): Update docstring.
	(hi-lock-find-patterns): Return t for value 'always'.
	(hi-lock-revert-buffer-rehighlight): Rewrite to correctly handle
	all possible cases.  (bug#57534)

2024-06-27  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/xref.el (xref-revert-buffer-restore-point): New
	function.
	(xref--xref-buffer-mode): Add xref-revert-buffer-restore-point to
	revert-buffer-restore-functions (bug#71466).

2024-06-27  Po Lu  <luangruo@yahoo.com>

	* src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper): Define
	and retrieve handle to USP10.DLL on Cygwin.

2024-06-26  Eshel Yaron  <me@eshelyaron.com>

	Use 'revert-function' in *xref* buffer

	* lisp/progmodes/xref.el (xref--xref-buffer-mode-map): Cease
	binding 'g' to 'xref-revert-buffer'.
	(xref--xref-buffer-mode): Set 'revert-buffer-function' to...
	(xref--revert-buffer): ...this.  New function, renamed from...
	(xref-revert-buffer): ...this.  Make it an alias of
	'revert-buffer'.
	* etc/NEWS: Announce it.
	* doc/emacs/maintaining.texi (Xref Commands): Update docs.

2024-06-27  Po Lu  <luangruo@yahoo.com>

	Prevent crashes and related issues if initial activity is destroyed on Android

	* java/org/gnu/emacs/EmacsWindow.java
	(EmacsWindow) <initialWindowCreated>: New variable.
	(EmacsWindow): If the initial frame has not yet been created, set
	attachmentToken to -1.

	* java/org/gnu/emacs/EmacsWindowManager.java (registerWindow):
	When the window's attachment token is -1 (i.e., it is the default
	window), start EmacsActivity rather than EmacsMultitaskActivity.
	Catch exceptions around startActivity.

2024-06-27  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Doc fix in 'php-ts-mode'

	* lisp/progmodes/php-ts-mode.el
	(php-ts-mode--custom-html-font-lock-settings): Doc fix.
	(Bug#71759)

2024-06-26  Ken Brown  <kbrown@cornell.edu>

	Avoid compiler warnings in the Cygwin-w32 build

	* src/w32fns.c [DEFAULT_IMAGE_BASE]: Don't define on Cygwin.
	* src/cygw32.h (w32_get_resource): Add prototype.  (Bug#71786)

2024-06-26  Stephen Berman  <stephen.berman@gmx.net>

	Add new face 'widget-unselected' to wid-edit.el

	* doc/misc/widget.texi (Customization): Document it.

	* etc/NEWS: Announce 'widget-unselected' face.

	* lisp/wid-edit.el (widget-unselected): New face.
	(widget-specify-unselected, widget-specify-selected): New
	functions.
	(widget-checkbox-action, widget-checklist-add-item)
	(widget-radio-add-item, widget-radio-value-set)
	(widget-radio-action): Use them.

2024-06-26  Jim Porter  <jporterbugs@gmail.com>

	Always perform Eshell process cleanup runs in the Eshell buffer

	Previously, some code executed in a timer, which could execute in
	the wrong buffer, leading to a hang.

	* lisp/eshell/esh-proc.el (eshell-sentinel): Use
	'with-current-buffer' in the timer function.

	* test/lisp/eshell/esh-proc-tests.el (eshell-test-value): New
	variable.
	(esh-proc-test/sentinel/change-buffer): New test.

	(cherry picked from commit da4bc5c9274a6705501e24fb8f2984f5bf5fe099)

2024-06-26  Po Lu  <luangruo@yahoo.com>

	Avert crash in store_mode_line_string on Android 5.0 and earlier

	* src/xdisp.c (store_mode_line_string)
	[__ANDROID_API__ < 22]: Call strlen on STRING if the limit
	would otherwise be SIZE_MAX, or if the address of the string
	is within PRECISION bytes of UINTPTR_MAX, in which case it
	cannot possibly be larger than PRECISION.

2024-06-25  Ken Brown  <kbrown@cornell.edu>

	Use HarfBuzz in Cygwin-w32 build

	* src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper) [CYGWIN]:
	Use cygharfbuzz-0.dll as HarfBuzz DLL name instead of
	libharfbuzz-0.dll. (Bug#71766)

2024-06-25  Stephen Berman  <stephen.berman@gmx.net>

	Fix tabbing between widgets (bug#70594)

	* lisp/wid-edit.el (widget-move): Don't error when tabbing in a
	buffer with only one active widget and 'widget-skip-inactive'
	enabled.  Improve code by handling forward and backward movement
	in a single loop.

2024-06-25  Po Lu  <luangruo@yahoo.com>

	* lisp/touch-screen.el (touch-screen-inhibit-drag): Another typo.

2024-06-25  Jim Porter  <jporterbugs@gmail.com>

	Fix rescaling of images via 'text-scale-mode' in EWW

	* lisp/net/eww.el (eww--rescale-images): Handle a :scale of
	'default'.  (bug#71741)

	(cherry picked from commit 3abcfe013d809a8194f5158877fd43f11d714fd5)

2024-06-25  Po Lu  <luangruo@yahoo.com>

	* lisp/touch-screen.el (touch-screen-inhibit-drag): Fix typo.

2024-06-25  Po Lu  <luangruo@yahoo.com>

	Fix latent side-effects of respecting field boundaries in text
	conversion

	* src/textconv.c (textconv_query, get_extracted_text)
	(get_surrounding_text): Restore selected window in addition to
	excursion.
	(locate_and_save_position_in_field): Restore excursion lest the
	current buffer differ from the selected window's contents, to
	prevent redisplay from clobbering the current buffer when called
	while the current buffer is at variance with the selected window's
	contents, as seen with dired-other-window.

2024-06-24  Jonas Bernoulli  <jonas@bernoul.li>

	Add missing builtin package declarations

	* lisp/editorconfig-conf-mode.el:
	* lisp/editorconfig-core-handle.el:
	* lisp/editorconfig-core.el:
	* lisp/editorconfig-fnmatch.el:
	* lisp/editorconfig-tools.el: Declare library as part of the
	'editorconfig' package.

2024-06-24  Michael Albinus  <michael.albinus@gmx.de>

	Extend treesitter tests on emba

	* test/infra/Dockerfile.emba (emacs-tree-sitter): Install c-ashrp
	grammar.

	* test/infra/Makefile.in (TREE-SITTER-FILES): Add
	csharp-mode-tests.el.
	(tree-sitter-files): Rename from tree-sitter-files-template.
	Generate .tree-sitter-files.

	* test/infra/gitlab-ci.yml (test-tree-sitter): Extend
	.tree-sitter-files.

	* test/infra/test-jobs.yml: Regenerate.

2024-06-24  Robert Pluim  <rpluim@gmail.com>

	Show entries from key-translation-map in which-key mode

	* lisp/which-key.el (which-key-extra-keymaps): New user option.
	(which-key--get-current-bindings): Consult it.  (Bug#71648)

2024-06-24  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-tab-group-face-function): Improve doc.
	(bug#71733)

2024-06-24  Robert Pluim  <rpluim@gmail.com>

	Don't show char name for multi-char translations

	I forgot about shift-translation when implementing this
	originally, so this code was being triggered for things like
	'C-S-<up>'.

	* lisp/help.el (help-key-description): Check if the translation
	result is a single char.  (Bug#71411)

2024-06-24  Robert Pluim  <rpluim@gmail.com>

	Reset ls-lisp-use-string-collate when ls-lisp-emulation changes

	* lisp/ls-lisp.el (ls-lisp-set-options): Add
	ls-lisp-use-string-collate to the list of custom options that are
	reset when ls-lisp-emulation changes.

	https://lists.gnu.org/archive/html/help-gnu-emacs/2024-06/msg00135.html

2024-06-24  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.7.2-1-gf273c0c8

	This fixes two bugs, one of them restoring compatibility with the
	version that ships with Emacs 29, making emoji-insert usable
	again.  The other changes are of cosmetic nature.  The only
	exception is a new command, whose creation lead to the discovery
	of one of the bugs, and remains unused until a package author
	actually binds it in a prefix.  I.e., unless someone actually uses
	this, the risk of a regression is close to zero, and even if it is
	used, it can only affect the prefix that binds it.

2024-06-24  Andreas Schwab  <schwab@suse.de>

	* doc/misc/calc.texi (Musical Notes): Fix typo.

2024-06-24  Philip Kaludercic  <philipk@posteo.net>

	Update options that depend on 'which-key-dont-use-unicode'

	* lisp/which-key.el (which-key-dont-use-unicode): Add a custom
	setter that re-evaluates a manual list of options use
	'which-key-dont-use-unicode' to determine their default value.

	https://lists.gnu.org/archive/html/help-gnu-emacs/2024-06/msg00130.html

2024-06-24  Po Lu  <luangruo@yahoo.com>

	Fix omission of updates to child frames on Android

	* java/org/gnu/emacs/EmacsView.java (onAttachedFromWindow): Force
	a layout cycle rather than report exposure immediately.
	(prepareForLayout): Delete function.

	* java/org/gnu/emacs/EmacsWindow.java (mapWindow): Remove
	redundant calls to prepareForLayout.

	* src/androidterm.c (handle_one_android_event): Do not swap
	buffers when exposure is registered by a frame only partially
	updated.

2024-06-24  Damien Cassou  <damien@cassou.me>

	Add jsdoc support to js-ts-mode

	* lisp/progmodes/js.el (js--treesit-font-lock-settings): Add jsdoc
	font-lock settings.
	(js--treesit-jsdoc-beginning-regexp): New variable to match the
	beginning of a jsdoc block.
	(js-ts-mode): Add jsdoc support.  Save the `javascript' parser to
	`treesit-primary-parser'.  Configure `treesit-range-settings' to
	use a jsdoc parser within a JavaScript file.
	(js-ts-language-at-point): New function to return either 'jsdoc or
	'javascript depending on where the point is.

2024-06-23  Michael Albinus  <michael.albinus@gmx.de>

	Backport: Minor changes in tramp-tests.el

	* test/lisp/net/tramp-tests.el (tramp--test-shell-file-name): Use
	connection-local value.
	(tramp--test-shell-command-switch): New defun.
	(tramp-test28-process-file)
	(tramp-test34-explicit-shell-file-name): Use it.
	(tramp--test-supports-processes-p): Simplify.
	(tramp--test-check-files): Use `tramp-compat-seq-keep'.
	(tramp-test45-asynchronous-requests): Don't let-bind
	`shell-file-name'.
	(tramp-test45-asynchronous-requests): Adjust timer.
	(tramp-test45-asynchronous-requests): Add another test message.

	(cherry picked from commit c95caade15d295fa6cc31d337028faa15142b388)

2024-06-23  Michael Albinus  <michael.albinus@gmx.de>

	Backport: Tramp: Fix bug#71709, and other minor changes

	* lisp/net/tramp-message.el (tramp-backtrace): Print also in batch
	mode.

	* lisp/net/tramp.el (tramp-skeleton-file-exists-p): Check for
	property only.
	(tramp-skeleton-make-process): Don't set `default-directory'.
	(tramp-handle-make-process): Set it.  (Bug#71709)

	(cherry picked from commit 8456cb9b698dfbfc90af82b3ebcd739fc22be4e4)

2024-06-23  Eli Zaretskii  <eliz@gnu.org>

	New branch emacs-30

	* README:
	* configure.ac:
	* nt/README.W32:
	* etc/refcards/ru-refcard.tex:
	* msdos/sed2v2.inp:
	* lisp/cus-edit.el (customize-changed-options-previous-release):
	Cut the emacs-30 release branch.

2024-06-23  Eli Zaretskii  <eliz@gnu.org>

	* admin/admin.el: (set-version): Fix regexp for configure.ac.

2024-06-23  Po Lu  <luangruo@yahoo.com>

	Disable Ffile_system_info for Android special directories

	* src/fileio.c (Ffile_system_info): Return Qnil if FILENAME refers
	to a special directory.

2024-06-23  Po Lu  <luangruo@yahoo.com>

	Restore functionality on Windows 98

	* configure.ac (W32_LIBS): Don't link with -lusp10 on non-Cygwin
	systems.

	* src/emacs.c (main): Call globals_of_w32 before the startup
	directory is initialized.

	* src/w32.c (maybe_load_unicows_dll): Call
	load_unicows_dll_for_w32fns.

	* src/w32.h: Update prototypes.

	* src/w32fns.c (Fx_create_frame, w32_create_tip_frame): Do not
	register the Uniscribe font driver when unavailable.
	(pfnSHFileOperationW): New function pointer.
	(Fsystem_move_file_to_trash): Load UNICOWS.DLL if not yet loaded.
	Call SHFileOperationW through said function pointer.
	(pfnShellExecuteExW): New function pointer.
	(Fw32_shell_execute) [!CYGWIN]: Load UNICOWS.DLL if not yet
	loaded.  Call ShellExecuteExW through said function pointer.
	(pfnShell_NotifyIconW): New function pointer.
	(add_tray_notification, delete_tray_notification): Call
	Shell_NotifyIconW through said function pointer.
	(Fw32_notification_notify): Load UNICOWS.DLL.
	(Fw32_notification_close): Return if Shell_NotifyIconW is
	unavailable, as when UNICOWS.DLL has yet to be loaded.
	(load_unicows_dll_for_w32fns): New function.

	* src/w32notify.c (pfnReadDirectoryChangesW): New function
	pointer.
	(watch_completion, remove_watch, Fw32notify_add_watch)
	(Fw32notify_rm_watch, Fw32notify_valid_p): Call
	ReadDirectoryChangesW through said function pointer, and assert
	its presence.
	(globals_of_w32notify): Load ReadDirectoryChangesW from
	KERNEL32.DLL.

	* src/w32uniscribe.c (pfnScriptItemize, pfnScriptShape)
	(pfnScriptPlace, pfnScriptGetGlyphABCWidth, pfnScriptFreeCache)
	(pfnScriptGetCMap): New function pointers.
	(uniscribe_close, uniscribe_shape, uniscribe_encode_char)
	(uniscribe_check_otf_1): Call Uniscribe functions through the
	same.
	(syms_of_w32uniscribe_for_pdumper): Load Uniscribe library and
	required functions from the same, and if unavailable, return while
	leaving uniscribe_available intact.  On Cygwin, simply assign
	USP10.DLL functions to the said new function pointers.

2024-06-23  Martin Rudalics  <rudalics@gmx.at>

	Fix a bug in 'switch-to-buffer'

	* lisp/window.el (switch-to-buffer): When asked to switch to the
	buffer of the selected window,
	'switch-to-buffer-obey-display-actions' is non-nil and
	'pop-to-buffer' uses the selected window, don't try to restore
	window start and point from 'window-prev-buffers'.  (Bug#71616)

2024-06-23  Jim Porter  <jporterbugs@gmail.com>

	Fix zooming images in SHR

	Previously, for images with no alt-text, the zoomed image wouldn't
	get properly inserted.  For images with alt-text, both the zoomed
	and unzoomed image would be displayed at once (bug#71666).

	* lisp/net/shr.el (shr-sliced-image): New face.
	(shr-zoom-image): Reimplement using
	'next/previous-single-property-change', and don't bother deleting
	any of the text.
	(shr-image-fetched): Clean up any overlays when deleting the old
	region.
	(shr-put-image): Ensure we always have a non-empty string to put
	the image on.  For sliced images, just use "*", since we'll repeat
	it, so we can't preserve the original buffer text exactly anyway.
	Apply an overlay to sliced images to prevent unsightly text
	decorations.
	(shr-tag-img): Move the placeholder space insertion where it
	should be and explain what it's doing.

	* test/lisp/net/shr-tests.el (shr-test--max-wait-time)
	(shr-test-wait-for): New helper functions.
	(shr-test/zoom-image): New test.

2024-06-23  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Colorize CSS property value like `css--fontify-region'

	If the value of a property is text representing a CSS color, it
	will be fontified such that its background is the color itself.
	'php-ts-mode-css-fontify-colors' can be used to disable this
	behavior.
	* lisp/progmodes/php-ts-mode.el (php-ts-mode-css-fontify-colors):
	New custom var.
	* lisp/progmodes/php-ts-mode.el (php-ts-mode--colorize-css-value):
	New function.
	* lisp/progmodes/php-ts-mode.el (php-ts-mode): Use the new
	function.  (Bug#71724)

2024-06-23  Po Lu  <luangruo@yahoo.com>

	* configure.ac: Disable kqueue on Haiku.

2024-06-23  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Fix 'Customize' menu entry for 'php-ts-mode'

	* lisp/progmodes/php-ts-mode.el (php-ts-mode-menu): Replace menu
	entry with 'php-ts-mode' group.  (Bug#71723)

2024-06-23  Po Lu  <luangruo@yahoo.com>

	Fix compilation on prerelease versions of Haiku

	* src/kqueue.c (Fkqueue_add_watch): Don't specify EV_ENABLE unless
	it is defined.

2024-06-23  Paul Eggert  <eggert@cs.ucla.edu>

	Fix FIXME in comment

	* src/timefns.c (decode_float_time): Explain why the code can use
	large precision here, removing a FIXME by updating the containing
	comment.

2024-06-23  Stefan Kangas  <stefankangas@gmail.com>

	Update SKK-JISYO.L from upstream

	* leim/SKK-DIC/SKK-JISYO.L: Update from
	https://raw.githubusercontent.com/skk-dev/dict/master/SKK-JISYO.L.

2024-06-23  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat dated
	2024-06-21 13:05:36 UTC.

2024-06-23  Stefan Kangas  <stefankangas@gmail.com>

	Add assignment form as `etc/copyright-assign.txt'

	This change was discussed in:
	https://lists.gnu.org/r/emacs-devel/2023-12/msg00326.html

	* etc/copyright-assign.txt: New file copied from
	https://www.gnu.org/s/gnulib/Copyright/request-assign.future.
	* doc/emacs/trouble.texi (Copyright Assignment):
	* etc/TODO: Point to above new file.

2024-06-22  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Fix for grammar change of keyword "virtual" in tree-sitter-cpp

	The new rule works with both the new (>= 0.22.1) and the old (<=
	0.22.0) grammar libraries.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Removed the
	keyword "virtual".
	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): New
	font lock rule.  (Bug#71518)

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Revert "; * etc/HISTORY: Delete never-released Emacs 28.3."

	This reverts commit ea057131220bba504d28812dc8be58007017b029.

	Some GNU/Linux distros have offered Emacs 28.3 based on this tag,
	so this entry should be kept.

2024-06-22  Michael Albinus  <michael.albinus@gmx.de>

	Update Tramp version (don't merge to master)

	* lisp/net/trampver.el (customize-package-emacs-version-alist):
	Adapt Tramp version integrated in Emacs 29.4.

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Manually merge NEWS.29 from emacs-29

	* etc/NEWS.29: Manually merge from etc/NEWS on the 'emacs-29'
	branch.

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	fd15d89ec51 Merge remote-tracking branch 'origin/emacs-29' into emacs-29
	6a299b3cace Release Emacs 29.4
	7f7b28a2500 ; Wayland SECONDARY selection problem

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	7cc939bf27e ; * lisp/ldefs-boot.el: Regenerated for Emacs 29.4

	# Conflicts:
	#	lisp/ldefs-boot.el

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	9a02fce714c Update files for Emacs 29.4
	d96c54d3883 * admin/authors.el: Update for Emacs 29.4
	fd207432e50 * etc/NEWS: Update for Emacs 29.4
	c645e1d8205 org-link-expand-abbrev: Do not evaluate arbitrary unsafe ...

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Replace literal whitespace with `\s'

	* test/lisp/vc/log-edit-tests.el (log-edit-fill-entry-confinement)
	(log-edit-fill-entry-space-substitution)
	(log-edit-fill-entry-initial-wrapping): Replace literal space
	character with '\s', to avoid tripping up merge scripts.

2024-06-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix non-existing `editorconfig-set-indentation-python-mode'

	* lisp/editorconfig.el
	(editorconfig--get-indentation-python-mode): New function.
	(editorconfig-indentation-alist): Use it.
	(editorconfig-indent-size-vars): Improve docstring.
	(editorconfig--default-indent-size-function): Add docstring.

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Merge remote-tracking branch 'origin/emacs-29' into emacs-29

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Release Emacs 29.4

	* ChangeLog.4:
	* etc/HISTORY: Update files for Emacs 29.4.

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Add before-save-hook to man page files

	* doc/man/ebrowse.1:
	* doc/man/emacs.1.in:
	* doc/man/emacsclient.1:
	* doc/man/etags.1: Add 'before-save-hook' that runs 'time-stamp'
	to local variables.

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Use UTC when generating man page timestamps

	* doc/man/ebrowse.1:
	* doc/man/emacs.1.in:
	* doc/man/emacsclient.1:
	* doc/man/etags.1: Add 'time-stamp-time-zone' to local variables
	to prefer UTC when generating timestamp.

2024-06-22  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	7f7b28a2500 ; Wayland SECONDARY selection problem

2024-06-22  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	ce85d3811da Fix bug#49289 also for other auth-source backends

2024-06-22  Eli Zaretskii  <eliz@gnu.org>

	Allow to expand truncated long lines in *Compilation* buffers

	* lisp/progmodes/compile.el (compilation-button-map): Bind keys in
	'compilation-button-map' to allow expanding the truncated text.
	(Bug#71683)

2024-06-22  Troy Brown  <brownts@troybrown.dev>  (tiny change)

	Eglot: Fix command execution (bug#71642)

	* lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Add
	ExecuteCommandParams interface.
	(eglot--execute): Fix handling of Command and CodeAction and add
	ExecuteCommandParams.

2024-06-22  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Support for indentation of PHP alternative syntax control structures

	For some control structures, PHP provides an alternative syntax.
	A new rule has been added to handle this syntax.
	* lisp/progmodes/php-ts-mode.el (php-ts-mode--indent-styles): New
	rule for PHP alternative syntax.  (Bug#71710)

2024-06-22  Manuel Giraud  <manuel@ledu-giraud.fr>

	Prevent auto-revert when deleting entry (bug#71264)

	* lisp/dired.el (require): Require "autorevert" for
	`auto-revert-mode' usage.
	(dired-internal-do-deletions): Temporarily prevent auto-revert.

2024-06-22  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Fix font lock regex for user defined constant in PHP

	The old regex also captured functions with two or more
	uppercase characters.  This new regex fixes that issue.
	* lisp/progmodes/php-ts-mode.el (php-ts-mode--font-lock-settings):
	New regex that match only user-defined constants.  (Bug#71593)

2024-06-22  Rudolf Adamkovič  <rudolf@adamkovic.org>

	Make Compilation mode recognize non-legacy Kotlin/Gradle errors

	The Compilation mode recognizes Kotlin/Gradle errors but only in
	the now legacy format.  The current format, which has been in wide
	use for about a year, is not supported.  This change adds support
	for the current format.
	* etc/compilation.txt: (symbols): Add examples of non-legacy
	Kotlin/Gradle warnings and errors.
	* lisp/progmodes/compile.el:
	(compilation-error-regexp-alist-alist): Rename 'gradle-kotlin' to
	'gradle-kotlin-legacy' and add 'grade-kotlin' that matches the
	errors and warnings outputted by the current (non-legacy)
	Kotlin/Gradle.  (Bug#70797)
	* test/lisp/progmodes/compile-tests.el
	(compile-tests--test-regexps-data): Rename 'gradle-kotlin' to
	'gradle-kotlin-legacy' and add two test cases for the newly added,
	non-legacy Kotlin/Gradle warnings and errors.

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	List Andrea Corallo as co-maintainer in ack.texi

	* doc/emacs/ack.texi (Acknowledgments): List Andrea Corallo as
	co-maintainer from 29.3 onwards.

2024-06-22  Andrea Corallo  <acorallo@gnu.org>

	* admin/MAINTAINERS: Add myself in (co-)maintainers.

2024-06-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/emacs/custom.texi (Directory Variables): Add menu

2024-06-21  Stefan Kangas  <stefankangas@gmail.com>

	Fix `emacs --geometry' flag on macOS

	* lisp/startup.el (command-line-ns-option-alist): Fix --geometry
	flag on macOS.  (Bug#71669)

2024-06-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/emacs/custom.texi (EditorConfig support): Add URL

2024-06-21  Po Lu  <luangruo@yahoo.com>

	Fix execution of tool-bar commands read within
	minibuffer-error-handler

	* src/keyboard.c (read_char): Arrange that the original event be
	recorded when a posn is promoted to a prefix key and an END_TIME
	is suppressing additions to this_command_keys.

2024-06-21  Jim Porter  <jporterbugs@gmail.com>

	Ensure navigating by paragraphs in Eshell stops at prompts and
	paragraphs

	The previous implementation in 6ae2b74ed20 only stopped at
	prompts, which isn't the right behavior (bug#61545).

	* lisp/eshell/em-prompt.el (eshell-forward-paragraph)
	(eshell-backward-paragraph): Reimplement to handle prompts and
	paragraphs (the latter by calling the original
	'forward-paragraph').

	* test/lisp/eshell/em-prompt-tests.el
	(em-prompt-test/next-previous-prompt/multiline): Rename.
	(em-prompt-test/forward-backward-paragraph-1): New function.
	(em-prompt-test/forward-backward-paragraph)
	(em-prompt-test/forward-backward-paragraph/multiline): New tests.

2024-06-21  Jim Porter  <jporterbugs@gmail.com>

	Limit the amount of text we examine when looking for password
	prompts

	Both Comint and Eshell do this, and it can significantly slow down
	commands that write a lot of output (bug#71576).

	* lisp/comint.el (comint-password-prompt-max-length): New
	variable...
	(comint-watch-for-password-prompt): ... use it.  Additionally, use
	the matched result for the Emacs-based password prompt.

	* lisp/eshell/esh-mode.el (eshell-password-prompt-max-length): New
	variable...
	(eshell-watch-for-password-prompt): ... use it.

	* etc/NEWS: Announce this change.

2024-06-20  Tomas Fabrizio Orsi  <torsi@fi.uba.ar>  (tiny change)

	Allow giving "ping" flags with `C-u M-x ping'

	* lisp/net/net-utils.el (ping): With a prefix argument, prompt the
	user for flags to pass to the "ping" command.  (Bug#71438)
	* etc/NEWS: Document the above change.

2024-06-20  Juri Linkov  <juri@linkov.net>

	* lisp/hi-lock.el (hi-lock-revert-buffer-rehighlight): Restore
	same faces.  After reverting the buffer apply all previous
	patterns with exactly the same faces as were assigned to patterns
	before.

2024-06-20  Stefan Kangas  <stefankangas@gmail.com>

	Fix misspelled function name in comp.c

	* src/comp.c (retrieve_block): Rename from 'retrive_block'.
	Update all callers.

2024-06-20  Po Lu  <luangruo@yahoo.com>

	Fix NS build

	* src/nsfns.m (Fx_create_frame, ns_create_tip_frame): Remove
	references to deleted variable.  (bug#71638)

2024-06-20  Stefan Kangas  <stefankangas@gmail.com>

	Remove more references to Windows 95

	* doc/lispref/frames.texi (Window System Selections):
	* doc/misc/ediff.texi (Patch and Diff Programs):
	* doc/misc/efaq-w32.texi (Third-party multibyte, Swap Caps NT)
	(Subprocesses and floppy drive):
	* etc/PROBLEMS:
	* lisp/printing.el (pr-path-alist, pr-command):
	* lisp/ps-print.el: Remove more references to Windows 95, which is
	not supported by Emacs.

2024-06-20  Eli Zaretskii  <eliz@gnu.org>

	Fix last change

	* src/xdisp.c (handle_line_prefix): Set the 'align_visually_p'
	only after pushing the iterator.
	(pop_it): Reset the 'align_visually_p' flag.  (Bug#71605)

2024-06-20  Eli Zaretskii  <eliz@gnu.org>

	Fix use of ':align-to' in 'wrap-prefix'

	* src/dispextern.h (struct it): New flag 'align_visually_p'.
	* src/xdisp.c (handle_line_prefix): Set the 'align_visually_p'
	flag for 'wrap-prefix'.
	(produce_stretch_glyph): If 'align_visually_p' flag is set, count
	the :align-to offset from the beginning of the screen line, not
	from BOL.  (Bug#71605)

	* doc/lispref/display.texi (Truncation, Specified Space): Document
	the special handling of ':align-to' in 'wrap-prefix'.

2024-06-20  Po Lu  <luangruo@yahoo.com>

	* src/frame.c (gui_set_font): Reference image cache after
	reassignment.

2024-06-20  Po Lu  <luangruo@yahoo.com>

	Correctly cache images when frames vary in their font metrics

	* src/alloc.c (mark_frame): Mark this frame's image cache, if it
	exist.
	(mark_terminals): Cease marking T->image_cache.

	* src/androidfns.c (unwind_create_frame, Fx_create_frame)
	(android_create_tip_frame):

	* src/haikufns.c (unwind_create_frame, haiku_create_frame)
	(haiku_create_tip_frame):

	* src/nsfns.m (unwind_create_frame):

	* src/pgtkfns.c (unwind_create_frame, Fx_create_frame)
	(x_create_tip_frame):

	* src/xfns.c (unwind_create_frame, Fx_create_frame)
	(x_create_tip_frame):

	* src/w32fns.c (unwind_create_frame, Fx_create_frame)
	(w32_create_tip_frame): Remove adjustments of the frame image
	cache's reference count rendered redundant by the assignment of
	image caches to individual frames rather than terminals.

	* src/dispextern.h (struct image_cache) <scaling_col_width>: New
	field.

	* src/frame.c (gui_set_font): In lieu of clearing F's image cache
	unconditionally, establish whether the column width as considered
	by compute_image_size has changed, and if so, adjust or reassign
	the frame's image cache.
	(make_frame): Clear F->image_cache.

	* src/frame.h (struct frame) <image_cache>: New field.
	(FRAME_IMAGE_CACHE): Return F->image_cache.

	* src/image.c (make_image_cache): Clear C->scaling_col_width.
	(cache_image): Adjust to new means of assigning image caches to
	frames.

	* src/termhooks.h (struct terminal) <image_cache>: Delete field.

	* src/xfaces.c (init_frame_faces): Do image cache assignment with
	all new frames.

2024-06-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/editorconfig.el (editorconfig-version): Delete function

	Better use a generic command like `C-h P' or `M-x list-packages'
	which works uniformly for all packages.

2024-06-19  Rodrigo Kassick  <kassick@gmail.com>  (tiny change)

	Fix display-buffer-override-next-command (bug#71654)

	* lisp/window.el (display-buffer-override-next-command):
	display-buffer-overriding-action's car can be either a function or
	a list of functions.  When a function,
	(push action (car display-buffer-overriding-action)) will create a
	cons-cell (action . function) instead of a list.  In the clear-fun
	callback, trying to
	(delq action (car display-buffer-overriding-action)) causes an
	wrong-type-argument error.

2024-06-19  Stefan Kangas  <stefankangas@gmail.com>

	Update leuven-theme to latest upstream version

	* etc/themes/leuven-dark-theme.el:
	* etc/themes/leuven-theme.el: Update to latest upstream version
	https://github.com/fniessen/emacs-leuven-theme/ commit
	a504c1d20625fe373ad5ea4ff3d94ea3706cbb87 (2024-03-30).

2024-06-19  Philip Kaludercic  <philipk@posteo.net>

	* lisp/which-key.el (which-key-is-verbose): Remove unused option.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	Integrate feedback from Stefan Kangas and Michael Albinus

	* lisp/editorconfig.el, lisp/editorconfig-tools.el:
	* lisp/editorconfig-core.el:
	* lisp/editorconfig-core-handle.el:
	* lisp/editorconfig-conf-mode.el:
	* lisp/editorconfig-fnmatch.el: Fix the reference to CONTRIBUTORS.
	* doc/emacs/custom.texi (EditorConfig support):
	* etc/NEWS: Improve wording and markup.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	(editorconfig-indentation-alist): Sync with upstream

	The upstream version `editorconfig-indentation-alist' is a lot
	more complete than what we got from the copyright-covered commits.
	The changes come from contributors who (may) have not signed
	paperwork.  I have not tracked all of the corresponding commits
	(there are many) but from what I can tell, most of those are the
	sole (and "trivial") contribution of its author, and in any case
	there is very little creativity involved since it just lists the
	variables used by the corresponding mode, so I believe it's
	perfectly OK to include those here.  Many of them would be covered
	by our default heuristic (which looks for vars of the form like
	`<mode>-basic-offset'), but it's preferable to reduce changes with
	upstream.

	* lisp/editorconfig.el (editorconfig-indentation-alist):
	Synchronize with upstream.  Remove obsolete `sh-indentation'.
	(editorconfig--get-indentation-web-mode): Update based on upstream
	changes to `editorconfig-indentation-alist'.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	Add doc for EditorConfig support

	Also, remove the old `editorconfig.texi' since most of it is not
	applicable to the (current) bundled version of the code anyway.

	* etc/NEWS: Add entry for EditorConfig.
	* doc/emacs/custom.texi (EditorConfig support): New node.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	editorconfig-core-handle.el: Reduce allocation in parser

	* lisp/editorconfig-core-handle.el
	(editorconfig-core-handle--parse-file): Return a
	`editorconfig-core-handle'.
	(editorconfig-core-handle): Simplify accordingly.
	(editorconfig-core-handle--parse-file): Push `sections' and
	`props' in reverse order to avoid the usual O(N²) complexity.
	Work directly in the buffer instead of extracting "lines" from it,
	so as to reduce memory allocation.  Similarly, use careful regexps
	so we can extract trimmed strings without an explicit trim
	operation.  Use `eobp'.
	(editorconfig-core-handle--string-trim): Delete function, not used
	any more.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	editorconfig-fnmatch.el: Eliminate O(N^2) complexity

	* lisp/editorconfig-fnmatch.el
	(editorconfig-fnmatch--do-translate): Accumulate partial results
	in reverse order to pay a single O(N) reverse at the end instead
	of N times O(N) concatenations.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	editorconfig-core.el: Remove unneeded defaulting code

	This code risks setting `tab-width' even when it's not requested,
	and these rules are better handled in
	`editorconfig--get-indentation' in any case.

	* lisp/editorconfig-core.el (editorconfig-core-get-properties):
	Delete function, unused.
	(editorconfig-core-get-properties-hash): Comment out defaulting
	code.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	editorconfig-core-handle.el: Don't use file names as glob pattern

	Match relative file names against the glob pattern instead of
	trying to construct a glob pattern that matches the absolute file
	name (where the code failed to escape the possible special chars).

	* lisp/editorconfig-core-handle.el
	(editorconfig-core-handle-section-get-properties): Delete `dir'
	arg.
	(editorconfig-core-handle-get-properties-hash)
	(editorconfig-core-handle-get-properties): Adjust call
	accordingly.  Use `declare' to mark it obsolete.
	(editorconfig-core-handle--fnmatch-p): Delete `dir' arg.

2024-06-19  Stefan Kangas  <stefankangas@gmail.com>

	lisp/editorconfig: Minor cosmetic fixes

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	editorconfig.el: Miscellaneous minor changes

	* lisp/editorconfig.el: Drop redundant `require's of pcase,
	nadvice, rx.  Remove unnecessary (and incorrect) `defvar's in
	`eval-when-compile'.
	(find-library-name, lm-version): Move declarations to right after
	the corresponding `require' so we have a reason to believe they're
	defined.
	(editorconfig-version): Use `package-get-version' when available.

	* lisp/editorconfig-core.el
	(editorconfig-core-get-nearest-editorconfig)
	(editorconfig-core-get-properties)
	(editorconfig-core-get-properties-hash):
	* lisp/editorconfig-fnmatch.el (editorconfig-fnmatch-p): Remove
	autoload cookies.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/editorconfig: Advise `find-auto-coding' i.s.o
	`insert-file-contents'

	In Emacs<30, we can't use `auto-coding-functions', but we can get
	almost the same result by advising `find-auto-coding'.

	* lisp/editorconfig.el (editorconfig-merge-coding-systems): Return
	nil if there's no setting.  Don't merge if there's no need.
	(editorconfig-set-coding-system-revert); Adjust accordingly.
	(editorconfig--filename-codingsystem-hash): Delete var.
	(editorconfig--advice-insert-file-contents): Delete function.
	(editorconfig--advice-find-file-noselect); Simplify.
	(editorconfig--advice-find-auto-coding): New function.
	(editorconfig-mode): Use it.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/editorconfig: Use new Emacs-30 hooks

	* lisp/editorconfig.el (editorconfig--get-coding-system)
	(editorconfig--get-dir-local-variables): New functions.
	(editorconfig-mode): Use them if possible.
	(editorconfig-hack-properties-functions only)
	(editorconfig-after-apply-functions): Define only when the old
	advice is used, since the new hooks don't support them.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	(editorconfig-set-local-variables): Get first, set later

	In preparation for the use of Emacs-30's
	`hack-dir-local-get-variables-functions', split the job of
	`editorconfig-set-local-variables' into getting an alist of
	settings and then applying them.

	Rename the `editorconfig-set-*' functions to `editorconfig--get-*'
	and make them return an alist of settings rather than applying
	them (except for `editorconfig-set-coding-system-revert' which
	arguably belongs in `editorconfig-tools.el' anyway).

	* lisp/editorconfig.el (editorconfig-indentation-alist): Flesh out
	the doc.  Use the new `editorconfig--get-indentation-*-mode'
	functions.
	(editorconfig--get-indentation-web-mode): New function extracted from
	`editorconfig-indentation-alist'.
	(editorconfig--get-indentation-*-mode): Don't `boundp'-test the vars.
	(editorconfig--default-indent-size-function): New function.
	Test `boundp' here.
	(editorconfig-indent-size-vars): New var.
	(editorconfig--get-indentation, editorconfig--get-trailing-nl): Rewrite.
	(editorconfig--add-hook-safe-p): New function.
	Add it to the `safe-local-eval-function' property of `add-hook'.
	(editorconfig-get-local-variables-functions): New hook.
	(editorconfig--get-local-variables): Rewrite using it.
	(editorconfig-set-local-variables): Test `editorconfig--should-set' here.
	Rewrite it using `editorconfig--get-local-variables'.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/editorconfig: Don't hook into `read-only-mode-hook'

	Don't re-set variables just because `read-only-mode' is
	(de)activated, and with Emacs-30's hooks it would be even less
	natural to do.  Also `buffer-read-only' can change without calling
	`read-only-mode', so better test it dynamically when we try to
	trim whitespace.

	* lisp/editorconfig.el (editorconfig--delete-trailing-whitespace):
	New function.
	(editorconfig-set-trailing-ws): Use it.  Use `pcase'.  Also prefer
	`before-save-hook' and use `add/remove-hook' to manipulate hooks,
	like God intended.  Don't test `buffer-read-only' any more.
	(editorconfig-mode): Don't hook into `read-only-mode-hook' any
	more.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	(editorconfig--should-set): Eliminate `lisp-indent-offset' special
	case.

	Instead of treating `lisp-indent-offset' specially in
	`editorconfig--should-set' (to obey
	`editorconfig-lisp-use-default-indent'), use a new function
	`editorconfig-set-indentation-lisp-mode' for Lisp modes.

	* lisp/editorconfig.el (editorconfig--should-set): Remove `size'
	argument.
	(editorconfig-set-indentation): Adjust calls accordingly.
	(editorconfig-set-indentation-lisp-mode): New function.
	(editorconfig-indentation-alist): Use it.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/editorconfig.el (editorconfig-mode): Remove `:lighter'

	We generally don't want to eat up modeline space with lighters
	for global and permanent major modes.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/editorconfig.el: Cosmetic ELisp style changes

	Prefer #' to quote function names.
	Remove redundant :groups.
	Silence compiler warnings.

	* lisp/editorconfig.el: Remove post-trailer.  The var is already
	set via `.dir-locals.el' anyway.
	(editorconfig-call-get-properties-function): Use
	condition-case-unless-debug.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	Remove support for `editorconfig-exclude-*'

	When using the new hook, we can't support
	`editorconfig-exclude-modes' for the `charset' property.  Also
	there are already other ways to get similar effects (e.g. setting
	`auto-coding-alist' or `enable-dir-local-variables'), so it's not
	clear those configurations will be needed in Emacs-30.

	* lisp/editorconfig.el (editorconfig-exclude-modes)
	(editorconfig-exclude-regexps): Remove custom vars.
	(recentf): Remove workaround (presumably not needed thanks to the
	fix to issue #246).
	(editorconfig--disabled-for-filename)
	(editorconfig--disabled-for-majormode): Delete functions.
	(editorconfig--advice-find-file-noselect): Remove call to those
	functions.
	(editorconfig-mode): Adjust docstring accordingly.

	* lisp/editorconfig-tools.el (editorconfig-apply): Adjust
	accordingly.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	Remove support for `editorconfig-override-*-local-variables'

	With the Emacs-30 hooks we can't easily override file-local
	settings and we can't easily control whether we override dir-local
	settings, so we remove support for those config vars.

	* lisp/editorconfig.el
	(editorconfig-override-file-local-variables)
	(editorconfig-override-dir-local-variables): Remove custom vars.
	(editorconfig--should-set): Presume they were nil.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	Remove support for the `editorconfig' executable

	Some of the code lacks copyright paperwork, so let's remove it for
	now, so we don't have to adapt it to the new hooks.  If/when it
	proves useful/necessary it'll be easy enough to re-add.

	* lisp/editorconfig.el (editorconfig-exec-path)
	(edconf-get-properties-function)
	(edconf-exec-path, editorconfig-get-properties-function): Delete
	variables.
	(editorconfig--execute-editorconfig-exec)
	(editorconfig--parse-properties, editorconfig-get-properties)
	(editorconfig-get-properties-from-exec): Delete functions.
	(editorconfig-call-get-properties-function): Call
	`editorconfig-core-get-properties-hash' directly.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix up copyright lines and license blurbs in Editorconfig files.

2024-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	Squashed commit of the following:

	commit a2b7d1129ba03ab7d06618d838cd3abe6852488b
	Author: Stefan Monnier <monnier@iro.umontreal.ca>
	Date:   Tue Jun 18 01:23:21 2024 -0400

	    Move files for inclusion into Emacs

	commit cd4fc6f933e8679eff1754eaaac99e4361f0122f
	Author: Stefan Monnier <monnier@iro.umontreal.ca>
	Date:   Sun Jun 16 13:33:55 2024 -0400

	    Incorporate trivial left-over changes

	    The previous commits are the result of a `git rebase` that removed
	    all the commits by contributors for whom we don't have paperwork.
	    This one "smoothes" over some of the remaining diffs.

	commit 94c0223e888d637ae5d75fcb210fe4bf7898b3da
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Jun 8 00:52:06 2024 +0900

	    Fix text (#342)

	commit d50dfb5c5bf2dc832c9aff8f4b8603c2d504c41a
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Jun 4 15:02:56 2024 +0900

	    Refactor find-file advices (#340)

	    * Add coding-system test

	    * Refactor find-file advices

	    * Fix test

	    * Fix test

	    * Update

	    * Update

	commit f55bb4e691dcb63502035aa3e48f6839ae163b44
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Jun 2 16:42:31 2024 +0900

	    Update CHANGELOG.md (#339)

	    * Update CHANGELOG.md

	    * Update CHANGELOG.md

	commit a85a4cafa6c8a1a80f3671658e5aaaf8faedb923
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri May 31 22:19:15 2024 +0900

	    Add switch not to override local variable values (#338)

	    * Add tests

	    * Define variables

	    * Update --should-set

	    * Add fixes to work

	    * Update test and fix

	    * Fix variables

	    * Use defcustom for switch variables

	    * Remove comment

	commit 4fbfad0591a9851a48b8ead1e4459677d3f64c58
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Sat May 11 22:38:20 2024 -0700

	    feat: Add Svelte support (#333)

	commit d2d942b4cc83fa0ba32dcaaf6c73004e6490bfc8
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat May 11 15:45:42 2024 +0900

	    Prepare v0.11.0 (#332)

	    * Prepare v0.11.0

	    * Update CHANGELOG for v0.11.0

	    * 2024

	commit 9ad3ed0e58bcd719d63d7b64538eff118d094767
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri May 10 00:45:15 2024 +0900

	    Update CHANGELOG (#331)

	commit 3fb9fd274d2435228a6545cd2a7553c9522b32e8
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon May 6 23:01:39 2024 +0900

	    Separate some utility commands to new file (#330)

	    * Remove switch to use legacy version

	    Remove `editorconfig--lagacy-version` variable.

	    * Create editorconfig-tools.el and move some functions into it

	    * Fix merge

	    * Update commentary

	    * Update CHANGELOG

	    * Update text

	commit d73f126ddb44eba628a87df07f8fd7247c8221aa
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun May 5 23:46:58 2024 +0900

	    Remove editorconfig-mode legacy version (#304)

	    * Remove switch to use legacy version

	    Remove `editorconfig--lagacy-version` variable.

	    * Update CHANGELOG

	commit ea19d96a7afcd947ece8490d8d9846519ac53606
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri May 3 18:49:50 2024 +0900

	    Exclude some versions from test target (#329)

	    nix-emacs-ci does not provide them any more.

	commit 641c8cd06abfd0cf99cc56eeca5458a03feec7c6
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Thu Mar 28 13:22:07 2024 -0700

	    ci: Bump Emacs 29.x to 3 (#327)

	commit 0eef782ae0ece28f0c446165febcf02f6207bb5e
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Mon Mar 18 13:49:24 2024 -0700

	    feat: Add Zig support (#326)

	    * feat: Add Zig support

	commit 4c7c96dee9ad7318b4df9414758cd46957cdb495
	Author: USAMI Kenta <tadsan@zonu.me>
	Date:   Tue Jan 9 12:24:11 2024 +0900

	    Add jsonian-mode (#320)

	commit 94f6fa546f85a49fea649d9c479f20613a36b9af
	Author: USAMI Kenta <tadsan@zonu.me>
	Date:   Mon Dec 18 14:01:05 2023 +0900

	    Add php-ts-mode (#318)

	commit f6eba36c09840b3f1952fb8a542347741a4f3de9
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Aug 3 00:05:49 2023 +0900

	    Add support for hcl-mode (#312)

	commit 4f0e71c9f9ae00fd6e90573c5c779da4c5f397ef
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Aug 2 23:45:29 2023 +0900

	    Temporarily remove test with windows-latest, emacs snapshot (#313)

	commit e81368ede389feb28d941c8e135c11e4bdf0160d
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Wed Aug 2 07:25:26 2023 -0700

	    test: Emacs 29.1 (#311)

	commit dc571e9422a1713e252093b4ee0eb290841dc07c
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri May 19 17:51:28 2023 +0900

	    Update CHANGELOG (#308)

	commit 8c1ec23fe6d9fc1d3e2ce24fe76503c88a4ebbc6
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri May 19 17:28:11 2023 +0900

	    Prepare v0.10.1 (#307)

	commit a415057ecfc5e89a903cb2e62a7d9d2596769532
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri May 19 17:07:23 2023 +0900

	    Fix compile warning of python-mode offset (#306)

	commit 94aa31702f7316db63411de8ded371f782d02baa
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri May 19 16:51:48 2023 +0900

	    Fix when-let (again) (#305)

	    * Fix compile of editorconfig-core

	    * Use when-let* instead of when-let

	commit 3b2b213934e6648834f043623bdce2a3b816ece1
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun May 7 17:15:54 2023 +0900

	    Prepare v0.10.0 (#303)

	    * Update CHANGELOG

	    * Update CHANGELOG

	    * Update version string

	commit ea22e6977eb64a38e19250b1fef3933b702d8a16
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun May 7 17:03:30 2023 +0900

	    Revert "Update version string"

	    This reverts commit dfce47f4c5369711524c4da606201f33649bf894.

	commit 8ba886d3a64514ca6b558a19a3df7cf147f528f0
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun May 7 16:46:09 2023 +0900

	    Update version string

	commit c6769a3be9d5447bbf253681e731aa017de49872
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun May 7 16:17:58 2023 +0900

	    Check mode-class property for special modes (#301)

	    In addition to checking parent mode

	commit 02bd633818a2db80b2bf5ebaaf3eaed76a0443ac
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun May 7 15:59:34 2023 +0900

	    Load subr-x when compiling (#302)

	    `when-let` depends on this.

	commit d7da0ea0fe118d88d032e81de65c79593c5181ea
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Thu Apr 27 03:25:18 2023 +0800

	    Add support for gdscript-mode (#300)

	commit 93c418e7d385f55103d94a926b0ec051e51bceeb
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Sun Apr 16 07:12:01 2023 +0800

	    fix: Fix compile warnings (#298)

	commit d21983b235c11f4a1845bd80e9d6ca25c9882f9a
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Sun Apr 16 07:05:26 2023 +0800

	    Update copyright year (#297)

	commit 38f84cca9a68bca0e74bb4f50e178e6a9883c1f4
	Author: Mohsin Kaleem <mohkale@kisara.moe>
	Date:   Mon Apr 10 00:46:35 2023 +0100

	    Add bash-ts-mode to editorconfig-indentation-alist (#296)

	    Co-authored-by: Hong Xu <hong@topbug.net>

	commit 5f112084d762c05a6d31b9bd3c4619789614f842
	Author: Simen Heggestøyl <simenheg@runbox.com>
	Date:   Thu Mar 2 09:31:07 2023 +0100

	    Fix compilation warnings in Emacs 29 (#292)

	    Fix a bunch of compilation warnings in Emacs 29 about wrong usage of
	    unescaped single quotes in docstrings.

	commit 37b142e86513b2477c19defcf6798e362e5ba7bd
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Wed Feb 15 23:12:21 2023 -0800

	    docs(README.md): Update development instructions (#291)

	commit 7f3c344e15e86a54390f4b3428432476b45d6c62
	Author: Mohsin Kaleem <mohkalsin@gmail.com>
	Date:   Sun Feb 12 06:17:01 2023 +0000

	    Add indent variable associations for numerous tree-sitter modes (#290)

	    * Add indent variable associations for numerous tree-sitter modes

	    * build: Correct csharp-ts-mode variable reference

	commit 26bc586c7e19dd00554f732f4313e07a0a18bb97
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Tue Jan 3 19:43:54 2023 +0800

	    Drop Emacs 24.x and 25.x (#286)

	    * Drop Emacs 24.x and 25.x

	    * test(build.yaml): Make fail-fast to false

	    * Update CI test

	    * docs: Update changelog

	    * Revert author information

	commit d96709f3ddb7ce905e2ba1ff615ed875e26d6fdb
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Thu Dec 29 05:46:11 2022 +0800

	    chore: Place emacs dependency to the front (#285)

	    * chore: Place emacs dependency in front

	    * Update copyright year

	commit 00913e8db3a864e7dbf8da7aa6ac355aeef3f999
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Nov 7 12:00:26 2022 +0900

	    Prepare v0.9.1 (#281)

	commit b57c665de578b7510affa426478fadacef80f5d4
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Oct 31 14:47:17 2022 +0900

	    Check `filename` rather than `buffer-file-name` for consistency (#280)

	    Co-authored-by: Wade Zhang <dochang@gmail.com>

	commit 35b360daebc6fc30723b5f361c65345dea0cc7f7
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Oct 23 22:20:37 2022 +0900

	    Prepare v0.9.0 (#275)

	    * Update version number in el file

	    * Update CHANGELOG for 0.9.0

	    * Fix CHANGELOG

	    * Fix release date

	commit 52d089efa733e0add922e07485cf8ac547bf9e3c
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Oct 23 22:13:13 2022 +0900

	    Fix package load for use-package usage (#277)

	commit b9c5af58e5059dad44a79a52790c2d913930d0ef
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Oct 23 20:47:55 2022 +0900

	     Add fixes for Emacs 29 (#276)

	    * Fix warnings reported with Emacs29 snapshot

	    * Disable vc feature for ert testings

	commit cc2fc3d25447dfa6271a9b6434478c2f140b4022
	Author: Jen-Chieh Shen <jcs090218@gmail.com>
	Date:   Fri Sep 30 07:18:09 2022 +0800

	    tests(build.yml): Use latest minor version number (#274)

	commit 7e266d113ed69c487e25260527c3e39fa274662f
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Apr 18 14:41:07 2022 +0900

	    Add emacs 28.1 to test target (#270)

	commit bd35e505585a738cfed09f8d7fbcdac523f648bb
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Jan 26 13:05:00 2022 +0900

	    Add doc about lsp-mode (#266)

	    * WIP Add doc about lsp-mode

	    * Update README

	commit 69582a19e4c40bbf2006c2fac6f61b8eb5c9d4e3
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Sep 2 05:53:42 2021 +0900

	    Update CHANGELOG

	commit 3c47c18a72e98036d9ebf11350c3af9683d86c76
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Aug 30 19:25:20 2021 +0900

	    Use new implementation by default (#263)

	    * Use new implementation by default

	    * Remove old test

	    * Make editorconfig-hack-properties-functions deprecated

	commit 111a668e52f68706650d5624f16fd92c0c113f7b
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Aug 13 22:01:38 2021 +0900

	    Prepare v0.8.2 (#262)

	    * Update CHANGELOG

	    * 2021

	    * Prepare v0.8.2

	commit 4bcd7e2f12800d3a4566130f447533a1955a978a
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Aug 13 21:55:02 2021 +0900

	    Update texi doc

	commit 7e71870e27d2ef23196127640ca3935cbdd4a432
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Aug 13 00:30:01 2021 +0900

	    Update debug message format (#261)

	commit 76fc064ee4ff6ab05db2c5004d7d4cd150b2fac1
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Aug 13 00:19:52 2021 +0900

	    Fix editorconfig-major-mode-hook (#260)

	commit db6ae0703c07568780c71dd92874886208536eaa
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Aug 13 00:07:12 2021 +0900

	    Update README for NonGNU ELPA repository (#259)

	    * Add NonGNU ELPA badge

	    * Update README

	commit f3164820fc06a642bbc0eccadc5386ec98befb5b
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Aug 10 00:23:58 2021 +0900

	    Add some bug fixes to 20210221-testing (#258)

	    * Rename internal function name

	    * Update comment

	    * Update -set-coding-system func name and doc

	    * Add comment

	    * Fix mode-hooks

	    * Fix func name

	    * Update -major-mode-hook function

	commit 5e0f23b64c822e7f2ff1d23c756e89c1c073c23c
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Apr 7 13:07:42 2021 +0900

	    Add fixes for compile warning

	commit b46c5dd667b68bfca204ff7424df8588dae12a56
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Apr 7 12:02:07 2021 +0900

	    Make new impl work when changing major-mode (#255)

	commit 7375e7fdd21be087ffb52bf2917aefcaded3292c
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Feb 22 01:17:49 2021 +0900

	    Return early when expecting coding-system has been already set

	commit 13d8f9bb7bddf7f43091829fa361a336dbf2de61
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Feb 21 22:41:57 2021 +0900

	    Add minor fixes to tests (#252)

	    * Update Makefile targets

	    * Update github actions task

	    * Fix test macros

	    * Update README

	commit ddce92ffcc92b79080949ad72801292fa2bafeb9
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Feb 21 22:25:29 2021 +0900

	    Use flag instead of adding -2-mode for new version testing (#251)

	    * Use flag instead of adding -2-mode

	    * Fix test

	commit f18086a5b97625bcb51a4c8cb790efca80ef6d10
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Feb 21 21:37:45 2021 +0900

	    Add debug message to -set-coding-system

	commit afe9f62ecfcba0ce92255fa18c4a1af0787ff3b0
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Feb 21 21:06:19 2021 +0900

	    Move hack-properties-function run

	commit 2c7790d6eec32e486b448e2e40549d3f139227df
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Feb 21 20:58:40 2021 +0900

	    Update display-warning messages

	commit f8dc92d37b965370a2332e19609cebdddbbac406
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Feb 20 01:56:22 2021 +0900

	    Fix for coding-system set when remote files do not exist (#250)

	commit 28108cc8b456cedbc2e895da1c1151a11571cd4f
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Feb 20 00:44:22 2021 +0900

	    Fix editorconfig execution for remote hosts via tramp (#249)

	commit 8086a8a45982b30a9620f723ce81994ed4ad26e1
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Feb 20 00:14:23 2021 +0900

	    Update docstrings

	commit 69c8e3f766b2d458c5e3461c772cff69434962cd
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Feb 19 20:39:05 2021 +0900

	    Update debug message

	commit da2ede9ef13ae04ba4f1a37236052d9ce4c2e150
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Feb 19 18:11:37 2021 +0900

	    Refactoring & add editorconfig-2-mode for beta test (#248)

	    * Remove file type experimental feature temporarily

	    * Do some refactors

	    * Ignore failures of tests for file type feature

	    * Make editorconfig-get-properties-function accept one argument

	    * Implement editorconfig--advice-find-file-noselect

	    * Define editorconfig-error

	    * Implement advices

	    * Update adviced function body

	    * Update function name

	    * Refactor exclude functions

	    * Add more error handlings

	    * Refactor editorconfig--advice-find-file-noselect

	    * Add editorconfig-2-mode

	    * Add nadvice to dependency list

	    * Use display-warning instead of message for debug log

	    * Update README

	    * Fix editorconfig-2-mode for read-only-mode

	    * Add test for editorconfig-2-mode

	commit d53e3da79f40ec879b1520b6f73c371f8a5cfc03
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Feb 15 00:27:04 2021 +0900

	    Stop excluding remote files by default (#245)

	    To exclude remote files again, add following to the init.el:

	        (add-to-list 'editorconfig-exclude-regexps
	                     (eval-when-compile
	                       (rx string-start "/" (or "http" "https" "ftp" "sftp"
	                                                "rsync" "ssh") ":")))

	commit 968bb5fb871e0076a4779f78526e3ad91777e60c
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Jan 12 18:01:07 2021 +0900

	    Do not run editorconfig-apply on recentf-save-file (#241)

	commit a6c64cc26d5d237f6b3c53e8d637af96c428a5f7
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Jan 8 13:28:50 2021 +0900

	    Use revert-buffer-with-coding-system to set coding system (#236)

	    * Use revert-buffer-with-coding-system to set coding system

	    * Avoid infinite call

	    * Do not ask user for revert when buffer is not modified

	    * Refactor -set-coding-system

	    * Do not use revert when the file does not exist yet

	    * Refactor -set-coding-system

	commit 9605f6bf4408e4a5025dc6862fba96de347b9332
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Dec 24 05:26:25 2020 +0900

	    Remove travis.yml (#238)

	commit c73b0cf3fcc4dd5ff1e268d54d20ab6e88cd6b2e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Dec 23 15:36:45 2020 +0900

	    Update README 2 (#225)

	    * Update README 2

	    * Update README.md

	    * Update README.md

	    * Update README.md

	    * Update README.md

	    * Update README.md

	    * Update README.md

	commit bba5bdaef41895bf528f00923e8f1ce249a93641
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Nov 25 15:31:14 2020 +0900

	    Add github actions badge

	commit ee39cf38f4efda519db947dd850a6522836561c5
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Oct 7 08:00:19 2020 +0900

	    Do not init submodule in Makefile

	commit 4def6c96944c8e704f4424d10fcd1a73076709c6
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Oct 7 07:21:43 2020 +0900

	    Add Github Actions build.yaml

	commit 49cf213f30d027aae34b3d499aa637cb1cca5f38
	Author: Brian Leung <29217594+leungbk@users.noreply.github.com>
	Date:   Sun Nov 22 07:42:16 2020 -0800

	    Silence byte-compiler warnings (#235)

	    Move aliases before their referents

	    Co-authored-by: 10sr <8.slashes@gmail.com>

	commit d4fabc95b8b2af5d7ead1b1e8065c69d5805d6b4
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Oct 7 07:22:32 2020 +0900

	    Add Emacs 27.1 to test target (#228)

	    * Add Emacs 27.1 to travis test target

	    * Add GitHub Actions build.yaml

	    * Fix evm 27.1 version

	    * Remove github actions build.yaml

	commit 1defe4a4cd0fa7f57c0013e6efc535bb02f827cd
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Jul 31 00:31:28 2020 +0900

	    Fix references in CHANGELOG (#226)

	    * Fix issue references in CHANGELOG

	    * Fix commit reference link

	commit 88efaca117ef6abd3bdee39de7b4b64628e59796
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jul 30 22:37:30 2020 +0900

	    Update CHANGELOG

	commit c8c7845c73d08bd21235bc79eafa887651990a6f
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jul 30 22:34:36 2020 +0900

	    Add doc about make sandbox

	commit 8c551d92bacea8d6ea1b73e945ab5600f7608a78
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jul 30 22:32:29 2020 +0900

	    Update README to help bootstrap users (#219)

	    * Update README to help bootstrap users

	    * Update doc

	    * Fix doc

	    * Update

	commit c0789e2d537fb609af72a1edf51e1c5e4673ab2e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri May 22 23:13:55 2020 +0900

	    Keep a CHANGELOG (#221)

	    * Add empty CHANGELOG.md

	    * Generate CHANGELOG template

	    ```python
	    #!/usr/bin/env python3

	    import subprocess

	    def _get_tag_date(tag):
	        git_show = subprocess.run(["git", "show", tag, "--format=%cd", ...
	..."--date=short", "-s"], capture_output=True)
	        return git_show.stdout.decode("utf-8").strip()

	    def main():
	        git_tag = subprocess.run(["git",  "tag"], capture_output=True)
	        versions = list(reversed([e[1:] for e in git_tag.stdout.decode...
	...("utf-8").split("\n") if e]))
	        for version in versions:
	            print(f"## [{version}] - {_get_tag_date('v' + version)}")
	            print()
	            print()

	        print(f"[Unreleased]: https://github.com/editorconfig/...
	...editorconfig-emacs/compare/v{versions[0]}...HEAD")
	        for version, version_prev in zip(versions, versions[1:]):
	            print(f"[{version}]: https://github.com/editorconfig/...
	...editorconfig-emacs/compare/v{version_prev}...v{version}")
	        print(f"[{versions[-1]}]: https://github.com/editorconfig/...
	...editorconfig-emacs/releases/tag/v{versions[-1]}")
	        return

	    main()
	    ```

	    * Paste release notes from github releases

	    * Add release note for unreleased

	    * Fix line

	commit 68e940e0fd312848d18aba93b49285d7a8d74182
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue May 19 20:28:23 2020 +0900

	    Add conf-mode abbrev-table definitions (#220)

	commit dc9dc966f973d9e9f2992004beb462bc5813c01c
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Feb 12 16:39:43 2020 +0900

	    Update hook docstrings (#215)

	    #214

	commit 5aa20f73ddbf5df60a9c66b219846d94c9d12a7d
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Feb 12 15:56:48 2020 +0900

	    Define -mode-apply as an interactive command (#216)

	commit 39175259174ba0eea3529fc4039fbd90c5990ecc
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 16 17:59:07 2020 +0900

	    2020

	commit d29d6f1254f018cdc696cf40614e6799e2673f64
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Dec 20 16:31:15 2019 +0900

	    Update README

	commit d24e05ccd13c44380dbbbc4756eb02ede3882b9e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Oct 23 13:39:46 2019 +0900

	    Use elisp core by default

	    Closes #198

	commit 42d9b6aebd4488d6862ff39238a284408e5e4370
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Dec 20 16:31:40 2019 +0900

	    Remove a trailing whitespace

	commit 347e0171ad3cfcb70c0aca73b7b6fa8a5875dae6
	Author: Damien Cassou <damien@cassou.me>
	Date:   Wed Nov 27 06:29:43 2019 +0100

	    Fix typos (#212)

	    Typos found with codespell.

	commit 7915da05ee67bf5c5356ddd49400e9facc15d004
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Oct 25 16:59:30 2019 +0900

	    Fix that "?" does not match "/"

	commit 480998f061d22444571f05b6c10d190c204c227e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Oct 23 14:32:21 2019 +0900

	    Update core-test

	commit 63fa8f9e4bc2938e7bc02b97da79335db29bf0e0
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Oct 10 13:44:34 2019 +0900

	    Bump version to v0.8.1

	commit b7d3a15f606582d30590fab8bbf0202fd7351c90
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Oct 8 13:55:05 2019 +0900

	    Fix support for Emacs<26

	commit 19bad72db735c032e773b6201a80a5df2597c0f4
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Oct 8 13:40:49 2019 +0900

	    Add editorconfig-file-type-emacs-whitelist value

	commit a179c9876f8f1fd343559aad13a32b96a651e86a
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Oct 7 22:34:03 2019 +0900

	    Disallow setting mode when it is not listed in whitelist

	commit cb218f4b5adc10faa2f89c4ec85bfafa7ad0600a
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Oct 8 14:10:09 2019 +0900

	    Use dist: trusty

	commit ae5fb296026f948103ade4e7e42f3989dda44df7
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Oct 8 14:04:41 2019 +0900

	    Update travis Emacs26 version

	commit 5e9769675fbf76566ca10f30c148f385396796ae
	Author: Jay Kamat <jaygkamat@gmail.com>
	Date:   Mon Jun 17 06:43:54 2019 +0100

	    Add support for bpftrace-mode (#199)

	commit 875088b1c587451916accd2474d57c66d05be1c6
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Jun 3 20:24:18 2019 +0900

	    Add explicit support for rpm-spec-mode

	commit 0faf4dc29c6c504a3026601b6035ff0735a0839b
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Jun 3 19:28:20 2019 +0900

	    Make editorconfig-properties-hash permanetn-local

	commit f511979e3c172932ba51b4b8e1172897f786c834
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Apr 2 15:55:33 2019 +0900

	    Update message format for version info

	    Update message format for version info

	commit efc11ec6fd100b2c19950153b1f6e64d85c36d97
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Mar 26 23:20:10 2019 +0900

	    Make -version print packaging version

	commit c2ea49f01fbdc144e623c30cbb8b6bf4439ac6b5
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Mar 26 20:24:31 2019 +0900

	    Bump version to v0.8.0

	    (#192)

	commit c6e817a36b2d901a837f373748941ff1246081f8
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Mar 23 21:40:49 2019 +0900

	    Use API to get version info (#193)

	commit 0cf6ce9534a35823f534014ec941db2a690f9002
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Feb 25 19:49:56 2019 +0900

	    Use https for melpa badge

	commit 695fce14c0f2cfc72520356cc9d6c46ed3fff33a
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 24 14:49:05 2019 +0900

	    Update plugin-tests submodule

	commit 1651d96aa2909d7f49c7e06a893c464e6f1fa2d9
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 24 14:48:26 2019 +0900

	    Do not update submodule when running tests

	commit ff0ed217461484a45ab8be7a8aa11c8b503f2388
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Jan 22 13:59:50 2019 +0900

	    Use reference link

	commit 5632843e840d0e8dee819d283b8d0a2ae88b8fa8
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Jan 18 13:17:15 2019 +0900

	    Update README

	commit 570502fdbb5e7634a43178805caae16e709ba9d7
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 17 14:10:15 2019 +0900

	    Update docstring

	commit b36f495d1510a53c63e42d6f48513b2fc3fc5b45
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 17 12:38:25 2019 +0900

	    Separate tool functions

	commit f295ca7cb2e64a8312a172b53b5eee7f06f8ac6e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 17 11:23:49 2019 +0900

	    Use -*- lexical-binding: t -*-

	    https://github.com/melpa/melpa/blob/master/...
	...CONTRIBUTING.org#fixing-typical-problems

	commit 2d342a1dc75d800577526bd5b62e2f2e350f2447
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 17 11:16:59 2019 +0900

	    Fix function name

	commit ec5576f7a9ae86649332414995124a3355ae5c13
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 17 11:13:37 2019 +0900

	    Add fixes for package-lint

	commit bd9e60c65cd8dd1fdc0f6fe35b2684bc2c4c2d80
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Jan 16 17:09:18 2019 +0900

	    Update README

	commit 551fcd4dc2556506e95c26898d864743cfb379c8
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Jan 16 17:14:18 2019 +0900

	    Update commentary section

	commit 8352b3f1d06aefcc4f8f6b7da760ced921efe93e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Jan 16 16:52:49 2019 +0900

	    Remove comment

	commit 51d2849fb6aaf195393f37dfbd1573d0b449df9b
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Jan 16 16:44:59 2019 +0900

	    Update year

	commit 9b36c88ce02325e755ce07ebbfd6622b67619d63
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Jan 16 16:43:13 2019 +0900

	    M-x checkdoc

	commit 68d488ee67e6fa06b9b596f178d445b28bab2865
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Jan 16 14:24:46 2019 +0900

	    Add struct docstring

	commit feddcd841a913b8f1a79251bb347a2d3b00a06ae
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 10 14:40:30 2019 +0900

	    Remove useless spaces

	commit f735659b421c5f72bc6c137fd7717a1931ce719d
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 10 14:31:53 2019 +0900

	    Stop using cl-defclass

	    With Emacs<25 cl-defmethod cannot used for structs

	commit 56fa185bcec16e2fb97b71a4e6dee0c5ef2b6256
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 10 14:30:55 2019 +0900

	    Revert "Add support for Emacs24.5"

	    This reverts commit 103081756d5d1de03dfa2d9d42b6e4a8581fca29.

	commit 026b21393284b9328fec956dae28c26dab1903e6
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 10 14:13:21 2019 +0900

	    Add support for Emacs24.5

	commit 2aabf655a964a7a172de66391cfdd1d598e2e8f1
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jan 10 13:48:52 2019 +0900

	    Refactor handle lib

	commit d40048455064be9e090828b4cb28f86f922eae85
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Jan 9 13:29:46 2019 +0900

	    Use 0.8.0 for next version

	commit 7a17d5ea063030313726104a3a1895bb6eb7021f
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Jan 8 16:08:04 2019 +0900

	    Remove unused tests

	commit 4f20ce1e1cbf3de1284f8de988ea12a2dcdfa690
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Jan 8 15:58:29 2019 +0900

	    Get alist result from hash result

	commit 69768d1bd108d93d392b2d8eb5750d8b8ddca169
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Jan 8 11:27:44 2019 +0900

	    Implement --hash-merge

	commit c36d66e3421dfbcdfa9f9221b900f3c8fbde8882
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Jan 7 20:29:20 2019 +0900

	    Update get-properties-hash

	commit 75d0158b6c5c1723a1d21f8c4ebdc37b91aa9d1c
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Jan 7 12:21:09 2019 +0900

	    Add function to get properties from handlers as hash

	commit e8ac4bf5d3d7e70ea815f68d64933330a7ffc1d9
	Author: USAMI Kenta <tadsan@zonu.me>
	Date:   Tue Dec 25 21:05:37 2018 +0900

	    Use Markdown's code spans instead of Emacs style `' (#186)

	commit 77775d90c383c5ddd0c4f9564d022ef971c9f7c3
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Dec 25 11:49:07 2018 +0900

	    Bump version to 0.7.14 (#185)

	commit e25ac0d49ff1e1982d58198efab35f3bd2c368d4
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Dec 17 16:24:27 2018 +0900

	    Add document for editorconfig-trim-whitespaces-mode

	commit 29060e8494a4ee2bccae7114cdf148387bce2f47
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Dec 15 16:46:07 2018 +0900

	    Add variable editorconfig-trim-whitespaces-mode

	commit 1327acab8d855d479d9d087129d05de671da8c76
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Dec 3 19:41:49 2018 +0900

	    Use princ instead of message to write to stdout

	commit d22c30f408fb2447047e8413dc5ca435b062b933
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Dec 3 18:54:25 2018 +0900

	    Update core-test submodule

	commit 88b2303a1f28a1b257fb5c205fa36428219197e7
	Author: Terje Larsen <terlar@gmail.com>
	Date:   Sat Nov 17 23:16:12 2018 +0100

	    Use ws-butler when enabled and available.

	    When having auto-save on and you edit text the cleaning up of
	    white-space is a bit intrusive and removes the space at the end of the
	    line where you are writing. `ws-butler-mode` is an alternative that does
	    take this into account.

	commit 550897776f79f4e5395fe00924bdf620982f5b47
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Nov 15 16:09:02 2018 +0900

	    Fix hack-properties-functions example

	commit 8241f65395cd78b83a59d5cfc1c682ef1ead90cd
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Oct 25 13:21:50 2018 +0900

	    Fix README and texi

	commit dff69487901d0074b1fdad8c91e69b40e5e6543e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Oct 24 13:41:30 2018 +0900

	    Update document

	commit 9ca51506778b486d947cba5dabd318614ebc5628
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Oct 23 14:48:34 2018 +0900

	    Add test for -hack-properties-functions

	commit 07ae870dbb2fdc4ec70c440e355bd126d124dce6
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Oct 23 14:27:56 2018 +0900

	    Call -hack-properties-functions in editorconfig-apply

	commit adfb8c54ba4ea5d52a558bd97221f40a5495e170
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Oct 23 14:18:46 2018 +0900

	    Add variable -hack-properties-functions

	commit 28c4846e9cac199ff4c357033a80054017687b90
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Oct 23 14:04:22 2018 +0900

	    Fix version when -custom-hooks has marked as obsolete

	commit 88824e7be5b7492845d914110e07328a93901e05
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Oct 23 13:56:46 2018 +0900

	    Update texi for hook name change

	commit e11f186800af869897400eb2be72f7ec4c3379d2
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Oct 23 13:51:32 2018 +0900

	    Use derived-mode-p for major-mode check (#180)

	commit 791cb6777301fb22f97538471904188deb4b05ec
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Oct 19 19:13:19 2018 +0900

	    Update README.md for hook name change

	commit 1138109d4b29c2c8e8e360f9d9314d7081e4fbb4
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Oct 19 19:01:42 2018 +0900

	    Change hook name -custom-hooks -> -after-apply-functions

	    With obsolete-variable-alias

	commit ff38e8046be032e0d84a5d326dd68d3f40ea449e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Sep 25 18:26:43 2018 +0900

	    Do not call mode func when current mode is a child mode of target (#179)

	commit 5fff8e44195d91f967b4bacc2562026c7bcfda01
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Sep 25 15:40:52 2018 +0900

	    Use file_type_ext for test fixtures

	commit 20f627f9caf32d65509a8a536743c5960d52a8e0
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Sep 25 14:19:56 2018 +0900

	    Do not call major-mode when already enabled (#178)

	commit 5a71b05195abc14e84970ba66d4ec2987627266d
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Sep 25 11:55:59 2018 +0900

	    Make conf-mode used when a file has .editorconfig extension

	commit 46fff5b32a0a7b014dda9a970ca99ad8c35a05d3
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Sep 25 11:52:16 2018 +0900

	    Add file_type_ext to conf-mode keyword

	commit 1bbbf78990925bfcb426b2752dc09cfd6ae5ba22
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Sep 22 15:25:02 2018 +0900

	    Rename existing function set-major-mode -> set-major-mode-from-name

	commit 780fc5f46ecda16c31c82b03d12ab392576db5f4
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Sep 22 15:19:47 2018 +0900

	    Update doc

	commit 82ba59023e3df7560e24dc4a5797bf92bcbc7656
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Sep 20 16:54:51 2018 +0900

	    Set major-mode from file_type_ext value

	commit 2fbbea8e862c80ee7c3cc463980b1a20835b0346
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Sep 21 13:43:11 2018 +0900

	    Add ert-test for file_type_ext

	commit 7524e641cacbc570a8a4c159fc8d2ef08e753584
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Sep 22 17:44:47 2018 +0900

	    Add ert-test for file_type_emacs (#177)

	commit aeb53c0d1c5dc1bdf854a77ac21d746571b14fa3
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Sep 22 17:40:14 2018 +0900

	    Make `fixtures' a constant (#176)

	commit 0f5926619f0d77b0a32fbe17730a2d04d93f1e4e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue Sep 4 11:12:01 2018 +0900

	    Update texi for HTTPS url

	commit 29cc1456c06d392bff1368c935083a23f4375274
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon Sep 3 16:48:36 2018 +0900

	    Use HTTPS link (#174)

	commit 8a602e176a068bc952a685086157a0caf4025806
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Aug 31 14:11:41 2018 +0900

	    Update doc

	commit b61e4feedb5108e2c555f818251fcb2af3725ba6
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Aug 31 16:40:54 2018 +0900

	    Update header.txt

	commit 8e91d9fe91d39b4984650c487206e138c87f65ca
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Aug 31 16:13:56 2018 +0900

	    Update Makefile for info generation

	commit 75698b1b333992b1ee300c1b82e6409297b539ee
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Aug 23 13:52:57 2018 +0900

	    Bump version 0.7.13

	commit 5a71d819a6104c9ce8ac7f448579d3380113eed5
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Jul 27 15:49:16 2018 +0900

	    Fix brackets tests (#172)

	commit 44ff0c5adcdc6d621967b0861e720c7b16ef3543
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jul 26 12:50:33 2018 +0900

	    Clear translate cache on file reload

	commit ca36030e7e1b3f7feadc8cd1788aae4f46f5adfe
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jul 26 12:30:09 2018 +0900

	    Remove numeric-range related variables

	commit c687ecda080521c00ceaa8aec05a7dd8fb2be48a
	Author: 10sr <8.slashes@gmail.com>
	Date:   Thu Jul 26 12:22:08 2018 +0900

	    Stop checking numeric range separately

	commit 2dd122c2bb9bf6fc09a53f32a27c84753465e747
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Jul 8 18:00:37 2018 +0900

	    Disable delete-trailing-whitespace when buffer-read-only is nil

	commit 898a6d84041d5c7c562e11ca3ccb59b7b3bd62e8
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Jul 8 17:53:50 2018 +0900

	    Check editorconfig configs when read only state changes

	commit e3e54b58970742f3ef40793a7f5e14850f45f00e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Jul 8 18:10:03 2018 +0900

	    Add trim-trailing-ws tests

	    With case where read-only-mode is enabled

	commit 1a760c97803abf8471e33c122dbd29987fddb5a5
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Jun 20 01:26:01 2018 +0900

	    Use emacs 26.1 instead of 26-pretest (#166)

	commit 808922da89517828d6e8eddb614d3919c94b8b56
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed Jun 20 01:08:38 2018 +0900

	    Bump version to 0.7.12

	commit ac553270b14d31d57609de3186b60c6d2b3154e6
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed May 9 13:28:47 2018 +0900

	    Fix info top page (#165)

	    * Fix info top page

	    * Parametrize texi top title

	commit 2a35c763422b59e2e2dcdbd6ca842843672bf155
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed May 9 11:04:46 2018 +0900

	    Add commented allow_failure

	commit 9f4640807fe33a2021c20c0bd3f3dc076f00a54b
	Author: 10sr <8.slashes@gmail.com>
	Date:   Wed May 9 10:53:58 2018 +0900

	    Fix batch command for emacs26-pretest testing

	commit 8c2357c850782b84d5f90d41503c45d6a136df49
	Author: 10sr <8.slashes@gmail.com>
	Date:   Tue May 8 12:21:58 2018 +0900

	    Update travis config file

	commit e7286c67000425551b13cc80e2ede5982a6a4649
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon May 7 14:54:37 2018 +0900

	    Use whitespace class

	commit 09229ed40ef583dc9fd4d8a683d7077ba71e1b09
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon May 7 13:04:51 2018 +0900

	    Add test for various normal whitespace

	    Currently core-handle fails to parse files that contain whitespaces
	    like line breaks, horizontal space, vertical space, etc.

	    #161

	commit 87fbfa3cea902380db512b7890cda07f872b9a07
	Author: 10sr <8.slashes@gmail.com>
	Date:   Mon May 7 11:52:54 2018 +0900

	    Remove unused variable

	commit adabfa6aea82255ea603e0cd13c69c43f50fcba8
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat May 5 02:55:20 2018 +0900

	    Add .gitignore again

	commit 14fbef761792145cc715418de3baae3485d5c386
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat May 5 02:52:36 2018 +0900

	    Update texi

	commit c9aafbcb9baceb5d3e7d5300c12788d21f642da4
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat May 5 02:52:19 2018 +0900

	    Fix make doc command

	commit 61384245f0e0b2185103f2647178cda6ef5586a8
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat May 5 02:31:03 2018 +0900

	    Remove .info and add .texi

	commit f8216577840405d6ddf0649bb9f1a2cca8b18f77
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat May 5 02:30:37 2018 +0900

	    Remove doc/.gitignore

	commit b3fbb8cb2bc75b1d277a38491418704cffd72e6f
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri May 4 23:27:03 2018 +0900

	    Fix Makefile

	commit 427ddeed978c6354f0ec33286da1c0bf70ad3a14
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Apr 29 14:21:47 2018 +0900

	    Add doc/.gitignore

	commit 31709798cace8eae8c4a8bebb9c25f9f50913506
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sun Apr 29 14:21:25 2018 +0900

	    docs -> doc

	commit 0ce9c9839b72edad9b4cab9ef030173f1bcd37e9
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Apr 28 13:46:35 2018 +0900

	    Add generated info file

	commit 5db2fd4c8abce7ca169233dc5cec3c4fdefc017e
	Author: 10sr <8.slashes@gmail.com>
	Date:   Sat Apr 28 13:44:22 2018 +0900

	    Add make info target

	commit 12a79fff988a8385f9762a7db5e51fac334e2135
	Author: Jay Kamat <jaygkamat@gmail.com>
	Date:   Thu Apr 5 19:40:58 2018 -0400

	    Add tests for lisp-indent-offset ignore

	commit 6b92956a84498ace196d58b237602e653e22693c
	Author: Jay Kamat <jaygkamat@gmail.com>
	Date:   Thu Apr 5 19:15:04 2018 -0400

	    Add variable to disable indent_size when conditions are met for lisp

	commit 816bab2d5b6eb7508ce6811e1e116166eca8192c
	Author: 10sr <8.slashes@gmail.com>
	Date:   Fri Mar 30 13:48:30 2018 +0900

	    Add csharp-mode support (#154)

	commit b405ca428e2a67dd286ae1bd8cd75ac3a5dd6179
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Feb 11 00:50:44 2018 +0900

	    Fix fnmatch for new cases

	commit 4336c8bde838ce991fc0f3c70dd3471b6adb268a
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Feb 11 00:50:23 2018 +0900

	    Add two test cases for fnmatch

	commit f56964cd65075198b1173d58802666dedc434535
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sat Feb 10 23:34:10 2018 +0900

	    Update core-test submodule

	commit ffe4396e53939da21aa6c0edbaf33dfe7a1c1d26
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Nov 7 20:01:20 2017 +0900

	    Prepare v0.7.11

	commit 2cc03ae806ae0d89b0cb6812cc009419656a3055
	Author: Jay Kamat <jaygkamat@gmail.com>
	Date:   Fri Oct 6 00:29:13 2017 -0400

	    Change hook editorconfig is applied on (#143)

	    Change from `after-change-major-mode-hook' to
	    `change-major-mode-after-body-hook' to allow dir-local variables to
	    take precedence over editorconfig.

	    Closes #141

	commit 9c67d568df7cf2156c07fce2909484c0c68756ef
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Aug 16 13:06:11 2017 +0900

	    Fix typo

	commit 276097b635687dd7d337de96fd74b07b199dc3b5
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Aug 2 18:38:19 2017 +0900

	    Add apache-mode support (#135)

	commit 2e343c46610b6097d8102cff682e6c6f024ada35
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Jul 24 19:03:40 2017 +0900

	    Add file_type_emacs to editorocnfig-conf-mode keywords

	commit 8dd4394ab9f3bd00467fc70061d6950461cec6bf
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Jul 24 18:48:33 2017 +0900

	    Add file_type_emacs entry for .editorconfig

	commit 489e2e58f19fc07ad0e468c6a444341d9b6ddaa8
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Jul 24 18:48:03 2017 +0900

	    Add file_type_emacs support

	commit 599d3791e45fc1be2c7d96661646a5a2ff16ca14
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Jul 24 18:14:16 2017 +0900

	    Add document about file_type_emacs property

	commit edfd7d9819bbac50bf399713d7c71b3af39866cc
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Jun 7 23:13:31 2017 +0900

	    Prepare v0.7.10

	commit 12af7738a0a9e9c693e41f55a1b536e4f44030fd
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Jun 7 23:12:30 2017 +0900

	    Add function to open nearest .editorconfig file (#131)

	commit 0aeb78198993e803217782b7c8bf6638e5a9fbdc
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Jun 7 22:48:47 2017 +0900

	    Always do submodule update when test-ert

	commit 71fc634a96a237a9aa9e25972885e932b5e40377
	Author: Simen Heggestøyl <simen@e5r.no>
	Date:   Thu May 18 13:54:19 2017 +0200

	    Set `fill-column` directly

	    Set `fill-column` directly instead of using `set-fill-column`. That
	    function is useful when used interactively, but when called from Lisp
	    it’s almost equivalent to just setting `fill-column`
	    directly, and it avoids showing the “Fill column set
	    to…” message.

	commit 4cda53e796b2d972353cc7d3da7d1d1a571aea6e
	Author: Jay Kamat <jaygkamat@gmail.com>
	Date:   Fri May 12 09:07:21 2017 -0700

	    Add support for feature mode. (#128)

	commit a3242c35afcab0df8f3fe0a2fae4e54d157203b8
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Apr 26 13:55:52 2017 +0900

	    Update editorconfig-conf-mode lighter text

	commit 61911bc92d70abd66acf4d6e648945e2a2a6ec39
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Apr 18 13:25:36 2017 +0900

	    Fix assignment to free variable warnings

	    Fixes #127

	commit a3100e700498fcb694948bf26250cfd939031bf7
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Mar 10 13:06:57 2017 +0900

	    Catch error thrown from editorconfig-custom-hooks

	    And show it as warning.

	commit c54fd3abe5b8d4a6997de147afbc645896b0d55c
	Author: Jay Kamat <jaygkamat@gmail.com>
	Date:   Wed Feb 22 21:50:06 2017 -0500

	    Add support for verilog-mode

	commit 75f1f7f934fdbe6801596466f6ab176b80f2c069
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Feb 22 00:37:12 2017 +0900

	    Prepare v0.7.9

	    Closes #122

	commit ed06e323f9953c60d9cb32d42700407ec50c7327
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Feb 22 00:38:08 2017 +0900

	    Update year in copyright

	commit 3e2ec93953f6666bcca3c0b4b5252524cd3d7edd
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Jan 13 13:02:04 2017 +0900

	    Update README for some variables

	commit 399451141873347e974ee1c2cd2f13c1ee070ffc
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Jan 4 14:24:22 2017 +0900

	    By default always use Emacs Lisp Core when accessing remote files (#118)

	commit 426699c7c7944438cfc6481fd06cd4610f5d3881
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Jan 3 15:17:53 2017 +0900

	    Add more plugin tests

	commit dbfe7a208ac799069e723e46b77715436ae18b33
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Jan 3 14:38:22 2017 +0900

	    Add plugin-tests submodule

	commit 0496bfa0e5a74062513e9af106693afefb7d17ae
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Jan 3 14:03:45 2017 +0900

	    Fix indentations of ert-tests/

	    See #111

	commit b6b64127d7f489a48f0761f4446b11b54e5f2f11
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Dec 12 14:44:41 2016 +0900

	    Add php-mode to indentation-alist and add a short note

	    About `php-mode-coding-style'.

	    They basically do this at mode startup: "if php-mode-coding-style is
	    'pear' (which it is by default), add a c-style called 'pear' and
	    switch to it", and that style contains a c-basic-offset value. But
	    since we're hooking later than that, we're welcome to override
	    c-basic-offset without any risk.

	    Also, php-mode suggests manually typing "nxml-mode" and "js2-mode" and
	    "web-mode" and then "php-mode" etc, to switch editing styles if you
	    have a document with multiple types of content (which is common in
	    .php files), and every time you type php-mode, it runs that style
	    injection again and resets c-basic-offset.
	    However, editorconfig runs as a hook when the major mode changes,
	    so it still re-applies the correct offset every time that happens.

	    See #116 for more details.

	commit daa0c0f096b5bf96f4027d4a006a3e6446c4b932
	Author: Hong Xu <hong@topbug.net>
	Date:   Tue Nov 8 00:09:10 2016 -0800

	    Add Usami Kenta to the contributor list.

	commit 005c313b4eaba2372d31d709899a1f2c33310d0c
	Author: Hong Xu <hong@topbug.net>
	Date:   Tue Nov 8 00:06:51 2016 -0800

	    Reidentation for all *.el files.

	commit 98a370e88960298cfbdb527d40fed3747e41da8a
	Author: Hong Xu <hong@topbug.net>
	Date:   Tue Nov 8 00:01:16 2016 -0800

	    Massive reformatting of docstrings.

	commit afadf377f9a82a66519189088cadddda376a1c9d
	Author: Hong Xu <hong@topbug.net>
	Date:   Mon Nov 7 23:51:08 2016 -0800

	    Fix a doc string.

	commit b540d0719fe9b1059781e6cf50b21b333b2c5433
	Author: USAMI Kenta <tadsan@zonu.me>
	Date:   Tue Nov 8 16:13:41 2016 +0900

	    Add editorconfig-exclude-prefixes (#108)

	commit c545c8842a627b1d63c00280d504247ef2658b3d
	Author: Hong Xu <hong@topbug.net>
	Date:   Sat Nov 5 22:12:33 2016 -0700

	    Reindent using Emacs-lisp style.

	commit a0b3e7037f1bb043f281e3b08423698976950b33
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Nov 6 13:37:54 2016 +0900

	    Add one space to editorconfig-mode lighter text

	commit d7bba76ba52fe64840c19bef9938f09ab1f40ca2
	Author: Hong Xu <hong@topbug.net>
	Date:   Sat Nov 5 09:44:41 2016 -0700

	    Add a :lighter "EditorConfig" for editorconfig-mode.

	commit 4e8ed00b9afe73165dc25a222890ceb8fa03ad81
	Author: USAMI Kenta <tadsan@zonu.me>
	Date:   Mon Sep 5 06:31:28 2016 +0900

	    Modify defgroup tag

	commit 79bcc708530a7ed353aafa1e9ca07ff8758e068d
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Aug 9 14:12:21 2016 +0900

	    Revert "Use truename for editorconfig name" (#106)

	    * Revert "Use truename for editorconfig name"

	    This reverts commit f9edfc16bc5d7e3f795025ac6fa3d6608634e18a.

	    Not an important thing, and caused a regression reported in #105.

	    * Bump version to 0.7.8

	commit 1c32816351644dd97f4b3c153eb4394bb7b206e7
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Jul 19 21:59:02 2016 +0900

	    Bump version to 0.7.7

	commit 8a5e621265c4a5cb92876015699793f884876769
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Jul 8 12:12:30 2016 +0900

	    Avoid asking coding system when not specified (#102)

	    Why ?

	    In short: Emacs always asks which charset to use when
	    editorconfig-mode is enabled, .editorconfig does not exist and trying
	    to save files with non-ascii characters.  This is an annoying behavior
	    so stop it.

	    Calling `set-buffer-file-coding-system` sets the "explicit" flag, and
	    it is used just before saving files.
	    When this flag is set but the charset is `undecided`, Emacs asks
	    users what charset to use for saving files with non-ascii
	    characters (when this flag is not set Emacs do not ask and decide
	    to use something automatically, `utf-8` for my environment).

	    This typically happens when editing files in repositories without
	    .editorconfig, and it is a bit annoying behavior.
	    This change makes this plugin not call `set-buffer-file-coding-system`
	    at all when neither `charset` nor `end_of_line` is provided, thus
	    Emacs can decide charset automatically when saving files in
	    repositories without .editorconfig files.

	commit 4e65a21fae2c1a9a72c11dbcb73ecec42bf18af9
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Jul 6 12:38:00 2016 +0900

	    Load only editorconfig.el when using sandbox

	commit 3739d7316ac29fc42e2438a7a7fe9e9fc2a3c672
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Jun 24 15:57:46 2016 +0900

	    Update README.md

	commit 70e85e6153f311d805337302004828e016fa93c0
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Jun 24 12:45:38 2016 +0900

	    Load editorconfig-core explicitly just becore use (#100)

	    Fix for the case where this plugin is installed with `git clone`.
	    Additionally, When the core library is not available, it will emit a
	    more friendly error message like:

	        Cannot open load file" "no such file or directory" "editorconfig-core"

	commit 3dd8b682435e075676a47f2476a5ecb29982e313
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Jun 5 13:51:45 2016 +0900

	    Add editorconfig-conf-mode.el (#97)

	    And moved some functions and definitions from editorconfig.el

	commit d900f27638d5d4340d38a575fc93b9e2f8455fc6
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue May 31 17:40:13 2016 +0900

	    Simplify definition of string-integer-p (#96)

	commit 663019d341fa1ec51be73aa597f378af048bfcf5
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon May 16 23:54:24 2016 +0900

	    Print line number and its content on parse error (#95)

	commit 692503ec109764bcd7990de59dc77c44e7fc8fd6
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Thu May 12 01:24:00 2016 +0900

	    Add a note about deprecating marmalade repository

	commit 55ce0fca59669ef85743879a262bfdde7b498805
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Thu May 12 01:20:50 2016 +0900

	    Add link to Melpa stable

	commit 331edef26d059515fb18df3057202be24d51c639
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed May 11 18:13:40 2016 +0900

	    Remove link to Marmalade package repository

	    Recently we do not update the package in Marmalade repository.

	commit 7505fb780ff08cc62f41cb420723f4646ce3fe20
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Thu May 5 21:43:30 2016 +0900

	    Bump version to 0.7.6

	commit 335e70e23df617a8a2b7fe200a3015369e4b78b4
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Thu May 5 21:41:30 2016 +0900

	    Trivial commentary fix

	    Two spaces are required after period in Emacs documents.

	commit 1c2ce46d3a924c3dd72611799d868be24c8f05d7
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon May 2 21:42:16 2016 +0900

	    Add examples for core-handle members

	commit bf8bfe5f38d33ccfcebf7ee00eae697d90c19f0f
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon May 2 20:47:02 2016 +0900

	    Copy properties alists before using them

	commit d79b9e410aa97292255622236ed2fdcba2b79b03
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon May 2 19:32:28 2016 +0900

	    Use truename for editorconfig name

	commit a4d73a4470b4de57deaafef9fc8988355c95f462
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Apr 22 15:54:40 2016 +0900

	    Bump version to 0.7.5

	commit 19e5f16ab68499a19459c638ecc6c5ed756b7111
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Apr 14 22:41:08 2016 -0700

	    Update README: add information about customize-variable.

	commit 8e744e00e40b956714f22880b5a747ebb61406a7
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Apr 12 11:23:17 2016 +0900

	    Use GFM style code block

	commit b9c1318088e07db324fed70cd8ce6eec8ca6956a
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Apr 12 11:19:56 2016 +0900

	    Update editorconfig group docstring

	commit 787889591816ef12bd78968ae5ce25a147bb8a0e
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Apr 12 10:48:44 2016 +0900

	    Make indentation of sample codes more consistent

	commit eba248e638e83983992f2c02f806f8cb0454f1f1
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Apr 12 10:45:34 2016 +0900

	    Fix english

	commit 24b4910571c042a78c14d57ecd5b1fcb11626ddc
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Apr 11 11:16:10 2016 +0900

	    Add EditorConfig group definition

	commit b93a7964d43cf6da0d2627c41dcf8445e6109d97
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Apr 5 17:54:33 2016 +0900

	    Add a comment for contributors

	commit 5687b5fc35db617704e76ed06a890b5825ccbb7a
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Apr 11 14:42:20 2016 +0900

	    Update instructions about core program

	commit 02ab02413f0e7a91969d3742bc880745402189b5
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Apr 5 17:51:21 2016 +0900

	    Add Customize section to README

	commit 2afc760475be59fe1105f8824fa1fb8ebdf01fc2
	Author: Hong Xu <hong@topbug.net>
	Date:   Wed Apr 6 00:48:17 2016 -0700

	    Only set fill-column if the given integer is positive.

	commit 73b4b61e0bad2c7c74fb46baa040f0c677b94068
	Author: Hong Xu <hong@topbug.net>
	Date:   Sun Apr 3 17:41:26 2016 -0700

	    No need to explicitly highlight the comments via font-lock
	    in editorconfig-conf-mode

	commit d9ae054ccc608289654bea018a099a1e73dace12
	Author: Hong Xu <hong@topbug.net>
	Date:   Sun Apr 3 17:36:43 2016 -0700

	    Create a syntax table for editorconfig-conf-mode.

	    Fix #83.

	commit 3d6df2ae193aea34f6ddd481fc17381f235b3838
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sat Apr 2 23:56:04 2016 +0900

	    Derive editorconfig-conf-mode from conf-unix-mode

	    Should fix #83

	commit cdcc5826d684324701ba446c1648d475ce47d5a6
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Apr 1 15:38:17 2016 +0900

	    Add make sandbox target

	    This commit adds a new Make target `sandbox`.
	    Issue `make sandbox` to start new Emacs that loads *.el files in current
	    directory and does not load the user init file.

	commit e68384d544c14451e12c50b4bad6933b31abde24
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Mar 31 22:50:17 2016 -0700

	    Refactor editorconfig-conf-mode

	commit f2629b0abb5e212a015a10af460569b1dec3de29
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Mar 30 17:27:15 2016 +0900

	    Do not check metadata of files other than editorconfig.el

	commit 998d0e8f766dfdf92080e3f00d78e614ea136ae7
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Mar 30 15:41:38 2016 +0900

	    Bump version to 0.7.4

	    Only Package-Version in editoroconfig.el will be respected so remove
	    from other files.

	commit 64a2a85351db22d76f1dd510469b94cf61a5ba54
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Mar 30 15:40:36 2016 +0900

	    Fix dependencies for one multifile package

	commit 566ab7996e373cf7747f3856b0b4e67d8c26f17d
	Author: Hong Xu <hong@topbug.net>
	Date:   Sat Mar 26 17:04:43 2016 -0700

	    Bump required editorconfi-core version

	    Fix #80

	commit 0791fced08790eceb64e5e9d3e46b444b71e0753
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Mar 20 01:58:51 2016 +0900

	    Add editorconfig-exclude-modes

	commit 33b0716c668685e177ffbe28efb7a95011b405b1
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Mar 18 12:21:40 2016 +0900

	    Add editorocnfig-display-current-properties

	    A function useful for debugging.

	commit 50df3046e5af9c0edde66d4ba2cfe662144a538b
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Mar 18 11:55:30 2016 +0900

	    Add one variable editorconfig-properties-hash

	commit 3480bcd04e3e941d969439ed278fbb2aa7dea8ad
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Thu Feb 18 01:07:31 2016 +0900

	    Add editorconfig-conf-mode

	    A major-mode for editing .editorconfig file.

	commit 914720911131a54989d3b6403a428b397466fe01
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Feb 12 18:06:39 2016 +0900

	    Bump version to v0.7.3

	commit dbc25e04c487aeb7e879f4c8a3f1950e856acd8a
	Author: Hong Xu <hong@topbug.net>
	Date:   Sat Feb 6 21:07:06 2016 -0800

	    Add octave-mode and matlab-mode support

	    Close #66

	commit f34c82709e2873eefa50f0c7568772b546019197
	Author: Hong Xu <hong@topbug.net>
	Date:   Wed Feb 3 22:12:39 2016 -0800

	    Add support for scss-mode

	commit 37d22c075078b32f8d75c2e2f0339d7a9760eeb3
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Jan 27 15:35:49 2016 +0900

	    Bump version to 0.7.2

	commit f907c968c8835a980fbf0896b8e7ca81aca40d65
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Jan 27 15:30:28 2016 +0900

	    Already 2016 :) Happy new year!

	commit 953f4f0ab77bac932eba074cd1aab70059f3a4a1
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Jan 24 21:51:53 2016 +0900

	    Bump version: 0.7.1

	commit d150069fc617a3daad2d698436e51786151c78dd
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Jan 24 18:40:36 2016 +0900

	    Catch error thrown from get-properties-function and display it

	    This commit also fixes `display-warning' usage.

	commit 6fbb3fe14ada3e9dbf84bf29f9223a2857e55c03
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Jan 24 17:41:25 2016 +0900

	    Throw error when editorconfig executable was not found

	commit a7ea6807e5aa2e1bae5bf482adcdfd8f9a46425a
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Jan 24 16:29:32 2016 +0900

	    Add ess-mode indentation support

	commit 5b9a1a38d2b0c45bdd69e6d64cd4273eec95bdd9
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Jan 24 00:23:34 2016 +0900

	    Add ps-mode indentation support

	commit 9e1b9009578934c0ec1c7721ccb0c234c93aa634
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sat Jan 23 19:23:14 2016 +0900

	    Add tcl-mode indentation support

	commit 13956895101c2935dd00aff53e10e067db1272ad
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Jan 22 14:47:51 2016 +0900

	    editorocnfig-core: Throw error when parsing .editorconfig failed

	commit 58b060cf3413b713015b62aec847fb66402b497a
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Thu Jan 21 20:08:31 2016 +0900

	    Remove find-file-hook

	commit 563bebc5663b12589c713fc55080cce3fbbcd164
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Thu Jan 21 02:10:27 2016 +0900

	    I forgot to update editorconfig-core-version const

	commit 466a0e4a720410d2bf13ebacecfd3ef53f8e6041
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Jan 17 14:40:03 2016 +0900

	    Bump version: 0.7.0

	commit adb9ba4a9d7559342934216bc1565e1ddbb4b1a7
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Jan 17 02:49:13 2016 +0900

	    Update README for charset support

	commit d40661e532673d110dce79f40f2c3fcb9ac765a6
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Jan 17 02:48:36 2016 +0900

	    Support charset property

	commit ae2544b55e9c26d5479bfe16886f09a79aaa08b6
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Jan 15 01:38:19 2016 +0900

	    Bump version: 0.6.2

	    Also use stable version in Package-Requires: there should be no
	    problem with this.

	commit fe9ed9b4cbfda2548c3fc3ca0db6e678a83f9ec7
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Jan 11 23:15:18 2016 +0900

	    Fix names of ert test cases

	commit cd91a226fb792b6b3cbf3aaa05951cdd1ffa091c
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Jan 11 23:14:45 2016 +0900

	    Check package metadata using ert framework

	commit 12f18b061a562d2fabea0b4cba1b2726db7a721e
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Jan 11 22:34:52 2016 +0900

	    Use dedicated functions to manipulate hook

	commit ae1254a7aa76f160578446dc5ead478200735b5d
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Thu Jan 7 19:14:51 2016 +0900

	    Use hook type for custom-hooks defcustom

	commit 58f106454036e2248cec7d4dc4ca53c8fddb71ee
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Dec 27 22:35:38 2015 +0900

	    Add MELPA badges

	commit 9c65aa401996dd87fe054a1079885651529bd70f
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Thu Dec 17 19:31:43 2015 +0900

	    Use `require` instead of `load` in usage example

	commit 48f77abd9040f2eb563efd6185b366cacd8b99de
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Dec 9 01:35:23 2015 +0900

	    Bump version: 0.6.1

	    This release is only for melpa stable and has no change since 0.6

	commit ef465f0c5d0cdabbe8ae859d2cbfed018498cc94
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sat Dec 5 02:42:25 2015 +0900

	    Add document about running tests

	commit 2c3488e82410130bf811291ee07c9e208228a7a8
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sat Dec 5 01:52:40 2015 +0900

	    Make `editorconfig-apply' an interactive command

	commit d94e1f29f333bc8e70fda372a0ca906d54eed365
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Dec 4 01:30:24 2015 +0900

	    Fix some warnings reported by flycheck

	    Mainly docstring fix

	commit df4dea58f13173bd1f8a2cf59b897e9429add23b
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Fri Dec 4 16:08:10 2015 +0900

	    Fix editorconfig-core commentary text

	commit 2f297a27107c068b802fc92dbe166d4a8fae9e44
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Thu Dec 3 02:12:59 2015 +0900

	    Add license header to executable

	commit 98a42ef7e85c2af1fa84be91ccfb677449ffe9ec
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Dec 1 02:05:08 2015 +0900

	    Prepare v0.6

	commit 320bfe2fa53175b8854cb81d5b008a4592fe475e
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Nov 29 00:18:38 2015 +0900

	    Fix all indentation according to editorconfig

	commit 220f04ad82d8adae6562c036d42d61eb1a01d50f
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Nov 29 01:18:33 2015 +0900

	    Update README for core elisp

	commit 8beaa3e2fc3a3676c5a22b219e6faf80c0a23489
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Nov 29 00:32:53 2015 +0900

	    Use core in elisp as a fallback

	    editorconfig-core-get-properties-hash will be called when editorconfig
	    executable is not found.

	commit 8555cc5e7181da63c93ab41c1fadc9c8d3ae2224
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sat Nov 28 23:55:19 2015 +0900

	    Update Makefile to run all tests including core

	commit e3fe4530edab8b748415f25df5f173b82dc503f5
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sat Nov 28 23:30:57 2015 +0900

	    Add editorconfig-core el files

	commit 0b236465262048ff9143af337013becf324a3188
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Wed Nov 25 12:08:39 2015 +0900

	    Add files used to test core functions

	commit cc948068c916e854561933a5857a5fbb55aeaa26
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sat Nov 28 23:35:37 2015 +0900

	    Update .editorconfig for Makefile and .gitmodules

	commit 12f49e98fa559b3055be17ab71f4092f1f078386
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Nov 17 16:36:15 2015 +0900

	    Do nothing when current buffer does not visit any file

	commit 1c7857782098192e8aba314bd7925814e3b4fddb
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Nov 5 12:43:57 2015 -0800

	    Add 10sr to the contributor list

	commit d076a16e81db4697be0d8744468906ab110f8b7e
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Nov 5 00:57:40 2015 -0800

	    Apply settings on major mode change

	commit e9da0d685d9d7367bce9dc3c572234b23293f0c3
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Nov 5 00:54:45 2015 -0800

	    Rename editorconfig-find-file-hook to editorconfig-apply

	commit f61c0e31151381d7dd6efc22afcbb9db20c6cf00
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Mon Nov 2 01:40:55 2015 +0900

	    Add aliases for obsolete variables and bump version

	commit cfb329dabf54c1c99da3352481d7d819be9f90d7
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Nov 1 20:10:51 2015 +0900

	    Update README

	commit 241554e8881cdc42e8524c16a4c0a39838c2c337
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Nov 1 18:14:39 2015 +0900

	    Change symbol prefix: edconf -> editorconfig

	commit 0a319fab7845153a91fbd12ff1174f2808e2ed2c
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Sun Nov 1 18:11:03 2015 +0900

	    Add global minor mode

	commit a4b8e55bf4dea4567f165ad5f71694f659610b3d
	Author: 10sr <8slashes+git@gmail.com>
	Date:   Tue Oct 27 22:15:00 2015 -0700

	    Make EditorConfig core function pluggable

	    Close #41

	    Squashed commit of the following:

	    commit e91aca6f38d9c42be19cc49aafc75ac086907b00
	    Author: 10sr <8slashes+git@gmail.com>
	    Date:   Sun Oct 25 03:19:26 2015 +0900

	        Fix typo in docstring

	    commit 76ce139cd0a0ff6bc250615ca7bb94868c85c41d
	    Author: 10sr <8slashes+git@gmail.com>
	    Date:   Tue Oct 13 13:51:13 2015 +0900

	        Implement edconf-get-properties-from-exec

	    commit 23baf520c83a7cb68634cd173ce28f9a6842f593
	    Author: 10sr <8slashes+git@gmail.com>
	    Date:   Mon Oct 12 03:18:54 2015 +0900

	        Add variable edconf-get-properties-function

	commit 46eb2863daa2f391bda9b9f8b0db0db210922b32
	Author: USAMI Kenta <tadsan@zonu.me>
	Date:   Fri Oct 23 01:51:34 2015 +0900

	    Add autoload cookie

	commit d068ec0546938a0d02b05ac5a75c370962205ed2
	Author: USAMI Kenta <tadsan@zonu.me>
	Date:   Fri Oct 23 01:41:55 2015 +0900

	    Use \' instead of $

	commit b45ec732a2b59f8b3404ae40a52de0f08471bcb6
	Author: Hong Xu <hong@topbug.net>
	Date:   Mon Mar 16 15:02:01 2015 -0700

	    Relicense to GPLv3+

	commit 871a69ab908cb00e69fa5be0f7e4deaabcbe8b5d
	Author: Hong Xu <hong@topbug.net>
	Date:   Mon Mar 16 14:39:06 2015 -0700

	    Add Hong Xu to contributor list.

	commit 7a7e1544c961ee4659af40e6f59c2777d12ea297
	Author: Hong Xu <hong@topbug.net>
	Date:   Mon Mar 16 14:38:42 2015 -0700

	    Update a few links in the README

	commit e7a0874591b23885e10dc322211ff9f77b944dae
	Author: Hong Xu <hong@topbug.net>
	Date:   Fri Dec 19 00:33:17 2014 -0800

	    Add hook mechanism.

	commit c36ed4aeb7096abbe455fd91fd4708a413f0c16f
	Author: Hong Xu <hong@topbug.net>
	Date:   Sat Dec 20 18:04:39 2014 -0800

	    Version 0.4

	commit 6c18a40b51e459b44af380aa42e111870ab9334f
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Dec 18 23:17:28 2014 -0800

	    Make edconf-exec-path a customizable variable.

	commit 480a6bba4761fe1074bd70b4dc9cb461e50fa3b4
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Dec 18 22:13:17 2014 -0800

	    Fix some issues caused by the previous commit.

	commit 92519a8c255cfd7d2b730842c7cb00304f992735
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Dec 18 21:58:11 2014 -0800

	    Don't set indent size if the given value makes no sense.

	commit 9d1d2364313086590d0e578aab5dbaabeaf03ec9
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Dec 18 21:11:19 2014 -0800

	    Don't set max_line_length if not specified.

	commit d776cdc5eeedcac6a58fa50ea685275d6fec40e6
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Dec 18 21:02:28 2014 -0800

	    Support max_line_length.

	commit 56722d34df673387597dd68e3dd2c179fb0fcb96
	Author: Hong Xu <hong@topbug.net>
	Date:   Mon Aug 11 09:32:49 2014 -0700

	    Add sh-indentation to the list of indent variable.

	commit 6bdcaf89dff0ec33ccb82cd8c82658ae8a66c4e0
	Author: Hong Xu <hong@topbug.net>
	Date:   Tue Jul 8 14:38:52 2014 -0700

	    Add cmake-mode support.

	commit 5bc887b015d0c192133109448debcb1cd0a7b575
	Author: Hong Xu <hong@topbug.net>
	Date:   Wed Oct 16 18:10:24 2013 -0700

	    Support web-mode.

	    Fix editorconfig/editorconfig#124

	commit 4e2bf3ddd61a87ac30bdfea04d222b8643ffd337
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Jun 6 17:50:32 2013 -0700

	    Add the package manager installation way to README

	commit ac28a9fd1d5b4bd0130fe78d3428cc1e93bbff7a
	Author: Hong Xu <hong@topbug.net>
	Date:   Thu Jun 6 17:41:45 2013 -0700

	    Bump version number

	commit fbe97a082421acf8ea41abee76f6ce223496a628
	Author: Hong Xu <hong@topbug.net>
	Date:   Wed Jun 5 01:06:46 2013 -0700

	    Wrong way to indent html. Fixes it.

	commit d7a7b6af8e7af9982543df76739be3f50e2bfee9
	Author: Hong Xu <hong@topbug.net>
	Date:   Wed Jun 5 01:02:45 2013 -0700

	    Add JS and HTML indent settings.

	commit 5dfbeb541ec9aa652e5728e7108cedb7c12a0a9b
	Author: Hong Xu <hong@topbug.net>
	Date:   Sun Jun 2 11:58:46 2013 -0700

	    Fix indentation problem in the source file.

	commit 9fdbf9ffddc1758019158328eadf293f6ecb7435
	Author: Hong Xu <hong@topbug.net>
	Date:   Sun Jun 2 11:53:48 2013 -0700

	    Set indent value for AucTeX

	commit e69ebeeaa1dd8e4769d5a40e25323db8d8672e59
	Author: Hong Xu <hong@topbug.net>
	Date:   Wed May 29 22:30:39 2013 -0700

	    Reset the indentation rule.

	commit ef90cfda833faeeb8b92cd528bf9523762efa94e
	Author: Hong Xu <hong@topbug.net>
	Date:   Sun May 26 10:32:29 2013 -0700

	    Update package information.

	commit 8ee7d0b5334da68b9147c28465529b07c5010363
	Author: Hong Xu <hong@topbug.net>
	Date:   Sun May 26 00:56:26 2013 -0700

	    Set indent_size for lisp mode and ruby mode.

	commit 45afbe1bc96afb423d42a2f547804f0e11f89f3f
	Author: Hong Xu <hong@topbug.net>
	Date:   Mon Mar 18 10:18:52 2013 -0700

	    Add a link to `editorconfig.el` in README

	commit 10be4fd165d39baa4394e26256f696a39ab01de3
	Author: Jonas Bernoulli <jonas@bernoul.li>
	Date:   Mon Mar 18 05:06:03 2013 +0100

	    provide feature, use symbol prefix, add commentary,

	    remove url from summary

	commit a8ca8c46f75e76565d773c44cc9f36169beaa24c
	Author: Hong Xu <xuhdev@gmail.com>
	Date:   Sun Mar 4 12:37:02 2012 +0800

	    Update EditorConfig Core URL.

	commit c45e871a5d1394e6755fd2202d83cb53ad1b1e04
	Author: Hong Xu <xuhdev@gmail.com>
	Date:   Wed Jan 25 10:57:55 2012 +0800

	    Add properties link.

	commit d744546fc6864c0a2a4b524804982656988526b9
	Author: Hong Xu <xuhdev@gmail.com>
	Date:   Tue Jan 10 09:41:41 2012 +0800

	    Add root=true to the top .editorconfig.

	commit 68ad326706a14a707395501aeb03b579aef83777
	Author: Hong Xu <xuhdev@gmail.com>
	Date:   Sat Nov 26 11:05:37 2011 +0800

	    Update EditorConfig url.

	commit 38ac90325669f2643c3205715d4b76aa3e1891ca
	Author: Stefan Monnier <monnier@iro.umontreal.ca>
	Date:   Thu Jun 13 14:28:14 2024 -0400

	    Erase initial commit content

	commit 6360e7b904fcadb30678bf7fa740c998976eec75
	Author: Trey Hunner <treyhunner@gmail.com>
	Date:   Fri Nov 4 21:12:11 2011 -0700

	    Add initial plugin

2024-06-19  Eli Zaretskii  <eliz@gnu.org>

	Avoid compilation warnings

	* src/xwidget.c (Fxwidget_perform_lispy_event): Avoid compiler
	warnings.  (Bug#71638)

2024-06-19  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2024-06-19  Po Lu  <luangruo@yahoo.com>

	Don't follow symlinks in returning directory attributes of /

	* src/androidvfs.c (struct android_vops) <stat>: New argument for
	flags.
	(android_unix_stat): Implement in terms of fstatat, not stat, and
	provide flags to the same.
	(android_afs_stat, android_content_stat, android_authority_stat)
	(android_saf_root_stat, android_saf_tree_stat)
	(android_saf_new_stat, android_fstatat): Adjust to match.

2024-06-19  Po Lu  <luangruo@yahoo.com>

	Avoid races between the tooltip and compositor on X and Android

	* java/org/gnu/emacs/EmacsView.java (onLayout): Don't send
	exposure events when the window is still to be attached.

	* src/androidfns.c (Fx_show_tip):

	* src/xfns.c (Fx_show_tip): Block async input around initial frame
	update.

2024-06-18  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/org/ob-lua.el: Minor doc fixes.

2024-06-18  Stefan Kangas  <stefankangas@gmail.com>

	Update Coccinelle URL

	* admin/coccinelle/README: Update URL.

2024-06-18  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.7.0-1-g482bc777

2024-06-18  Michael Albinus  <michael.albinus@gmx.de>

	Adapt tramp-use-file-attributes

	* doc/misc/tramp.texi: Fix indentation.
	(Bug Reports): Mention Gmane group gmane.emacs.tramp.
	(Frequently Asked Questions): Precise tramp-use-file-attributes
	entry.

	* lisp/net/tramp-sh.el
	(tramp-open-connection-setup-interactive-shell): Dump os-release
	when `tramp-verbose' is at least 9.

	* lisp/net/tramp.el (tramp-use-file-attributes): Adapt docstring.
	Use connection-local value.

2024-06-18  Philip Kaludercic  <philipk@posteo.net>

	Disable usage of unicode for which-key by default

	* lisp/which-key.el (which-key-dont-use-unicode): Set to t.
	(which-key-separator, which-key-ellipsis): Ensure that these
	options are set after 'which-key-dont-use-unicode', as their
	default value depends on it.

2024-06-18  Philip Kaludercic  <philipk@posteo.net>

	Remove :underline from 'which-key-highlighted-command-face'

	* lisp/which-key.el (which-key-highlighted-command-face): To avoid
	using properties that might not be supported on all displays, we
	instead inherit from the semantic face 'highlight'.

2024-06-18  Philip Kaludercic  <philipk@posteo.net>

	Prevent which-key faces from over-extending during formatting

	* lisp/which-key.el (which-key--pad-column): Instead of injecting
	the description using a left-aligned format-string (%-[n]s), we
	manually add the necessary padding so that the text properties
	don't extend beyond the description.  This allows us to use a face
	with a background without it extending until the end of a column.

	See also 63a6fb2a7a02ca88835c3fd473894d3b7d39ff15 for a similar
	issue with Quick Help.

2024-06-18  Po Lu  <luangruo@yahoo.com>

	Fix window class of Android tooltips

	* java/org/gnu/emacs/EmacsWindow.java (getWindowLayoutParams):
	Declare as a panel, rather than an attached dialog.

2024-06-18  Po Lu  <luangruo@yahoo.com>

	Correct resolution of non-virtual directory names on Android

	* src/androidvfs.c (android_vfs_canonicalize_name): Correct return
	value in cases of underflowing the directory stack.
	(android_unix_name): Reset vnode operations vector of copied
	vnodes to their standard value, and exclude virtual directories
	from subdirectories of the root directory's parent directory.
	(android_root_name): Adjust to match.

2024-06-18  Po Lu  <luangruo@yahoo.com>

	* java/Makefile.in (emacs.apk-in): Don't compress *.gz files on
	SDK 8.

2024-06-17  Dmitry Gutov  <dmitry@gutov.dev>

	diff-mode: Optimize source language syntax highlighting

	* lisp/vc/diff-mode.el (diff--get-revision-properties): Never pass
	FILE to 'diff-syntax-fontify-props'; assume that
	'vc-find-revision-no-save' has called the major mode function
	already (bug#71604).

2024-06-17  Juri Linkov  <juri@linkov.net>

	* lisp/tab-line.el (tab-line-force-update): New function.
	(bug#71601)
	(tab-line-tab-name-function, tab-line-tabs-function)
	(tab-line-tabs-buffer-group-function)
	(tab-line-tabs-buffer-group-sort-function)
	(tab-line-tabs-buffer-groups-sort-function)
	(tab-line-tab-name-format-function): Use 'tab-line-force-update'
	in the :set lambda of defcustom.
	(tab-line-tab-name-function, tab-line-tabs-function)
	(tab-line-cache-key-function): Mention 'tab-line-force-update' in
	the docstring.
	(tab-line-new-button-show, tab-line-close-button-show): In the
	:set lambda of defcustom use 'force-mode-line-update' with the
	non-nil arg ALL.

2024-06-17  Juri Linkov  <juri@linkov.net>

	Make revert-related functions internal in lisp/outline.el.

	* lisp/outline.el (outline--hidden-headings-paths)
	(outline--hidden-headings-restore-paths): Rename with the prefix
	'outline--' to mark them internal to discourage from relying on
	their arguments and return values.

2024-06-17  Eshel Yaron  <me@eshelyaron.com>

	(bookmark--jump-via): Ensure 'window-point' is set correctly

	* lisp/bookmark.el (bookmark--jump-via): Record
	bookmark-prescribed point before calling DISPLAY-FUNCTION, and use
	it to set 'window-point' afterwards.  (Bug#71603)

2024-06-17  Andrea Corallo  <acorallo@gnu.org>

	* lisp/touch-screen.el (touch-screen-inhibit-drag): Fix 'not'
	arity use.

2024-06-17  Mattias Engdegård  <mattiase@acm.org>

	Don't hide `not' and `null' arity errors

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-not): Don't silently
	convert incorrect `not' and `null' applications to nil.

2024-06-17  Po Lu  <luangruo@yahoo.com>

	Reinforce bitmap reconfiguration on Android

	* java/org/gnu/emacs/EmacsView.java (EmacsView) <unswapped>: New
	field in which to record whether the back buffer has received
	contents beyond those present at the last buffer swap.
	<dimensionsLock>: Delete field.
	(onAttachedToWindow, onLayout, handleDirtyBitmap)
	(prepareForLayout): Rather, synchronize window dimensions with the
	view.
	(getCanvas, getBitmap): Do not reconfigure the back buffer bitmap
	if such outstanding data exists.
	(postSwapBuffers): New function.
	(swapBuffers): If such outstanding data exists and the back
	bufferis pending reconfiguration, recreate the back buffer and
	report exposure.

	* src/androidterm.c (handle_one_android_event): Fix indentation.

2024-06-17  Po Lu  <luangruo@yahoo.com>

	Improve treatment of touch screen input by rmc and its callers

	* lisp/emacs-lisp/rmc.el (read-multiple-choice--short-answers):
	Run touch screen event translation on touch screen events
	received, and respond to pinch, tap and scrolling gestures.

	* lisp/net/nsm.el (nsm-query-user): Disable use-dialog-box in the
	details window.

	* lisp/touch-screen.el (touch-screen-translate-touch): Autoload.

2024-06-17  Juri Linkov  <juri@linkov.net>

	Keep point on the same outline after revert

	* lisp/outline.el (outline-hidden-headings-paths): Return the
	current path as well.
	(outline-hidden-headings-restore-paths): Move point to the path
	that was current before reverting the buffer.  (bug#71466)
	(outline-revert-buffer-restore-visibility): Handle both values
	returned from outline-hidden-headings-paths.

2024-06-16  Michael Albinus  <michael.albinus@gmx.de>

	Tramp: handle non-standard file system like GPFS

	* doc/misc/tramp.texi (Frequently Asked Questions): Explain
	tramp-use-file-attributes.

	* lisp/net/tramp.el (tramp-use-file-attributes): New defcustom and
	defsubst.
	(tramp-skeleton-file-exists-p):
	* lisp/net/tramp-adb.el (tramp-adb-handle-file-executable-p)
	(tramp-adb-handle-file-readable-p):
	* lisp/net/tramp-sudoedit.el
	(tramp-sudoedit-handle-file-executable-p)
	(tramp-sudoedit-handle-file-readable-p)
	(tramp-sudoedit-handle-file-writable-p): Use it.
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-executable-p)
	(tramp-sh-handle-file-readable-p)
	(tramp-sh-handle-file-writable-p): Use it.
	(tramp-sh-handle-set-file-acl): Fix property name.

2024-06-16  Robert Pluim  <rpluim@gmail.com>

	Fix clipboard request on macOS for yank-media

	'yank-media' makes a request with 'CLIPBOARD and 'TARGETS, which
	on other platforms returns the type(s) of the current selection,
	but on macOS returned the selection itself.  Make it return the
	types instead.

	* src/nsselect.m (ns_get_local_selection): Return nil when called
	with QCLIPBOARD and QTARGETS, so that 'ns_get_foreign_selection'
	may be called to return the type(s) of the selection.  (Bug#71377)

2024-06-16  Po Lu  <luangruo@yahoo.com>

	Minor adjustments to battery.el on Android

	* src/android.c (android_query_battery):

	* java/org/gnu/emacs/EmacsService.java (queryBattery19)
	(queryBattery): Reorder items in value for consistency with
	Fandroid_query_battery.

	* lisp/battery.el (battery-status-function): Select
	battery-android only when android-query-battery is present.
	(battery-android): Return temperature and correct values of
	power source constants.

2024-06-16  Jim Porter  <jporterbugs@gmail.com>

	Fix Eshell "which" test on MS-Windows

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/which/plain/external-program): Compare the file name
	case-insensitively on case-insensitive file systems.

	* test/lisp/eshell/eshell-tests-helpers.el
	(eshell-command-result--equal): Revert to the previous implementation.

2024-06-16  Po Lu  <luangruo@yahoo.com>

	Simplify bitmap reallocation on Android

	* java/org/gnu/emacs/EmacsView.java: Update outdated commentary.
	(handleDirtyBitmap): Don't copy contents of the previous bitmap to
	the new.
	(onLayout): Unconditionally expose upon layout changes.

2024-06-16  Po Lu  <luangruo@yahoo.com>

	Document unavailability of color fonts on Android

	* doc/emacs/android.texi (Android Fonts): Document absence of
	support for color fonts.

2024-06-16  James Thomas  <jimjoe@gmx.net>

	Account for duplicate removal on restoring eww-history-position

	* lisp/net/eww.el (eww-desktop-misc-data): Add :history-position
	(eww-restore-desktop): Use it.
	(desktop-locals-to-save): Remove the raw variable.

2024-06-15  Philip Kaludercic  <philipk@posteo.net>

	Fix :version tag for 'which-key' custom data

	* lisp/which-key.el (which-key-idle-delay)
	(which-key-idle-secondary-delay, which-key-echo-keystrokes)
	(which-key-max-description-length)
	(which-key-min-column-description-width)
	(which-key-add-column-padding, which-key-unicode-correction)
	(which-key-dont-use-unicode, which-key-separator)
	(which-key-ellipsis, which-key-prefix-prefix)
	(which-key-compute-remaps, which-key-replacement-alist)
	(which-key-allow-multiple-replacements)
	(which-key-show-docstrings, which-key-highlighted-command-list)
	(which-key-special-keys, which-key-buffer-name)
	(which-key-show-prefix, which-key-popup-type)
	(which-key-min-display-lines, which-key-max-display-columns)
	(which-key-side-window-location, which-key-side-window-slot)
	(which-key-side-window-max-width)
	(which-key-side-window-max-height, which-key-frame-max-width)
	(which-key-frame-max-height)
	(which-key-allow-imprecise-window-fit)
	(which-key-show-remaining-keys, which-key-sort-order)
	(which-key-sort-uppercase-first, which-key-paging-prefixes)
	(which-key-paging-key, which-key-use-C-h-commands)
	(which-key-show-early-on-C-h, which-key-is-verbose)
	(which-key-preserve-window-configuration)
	(which-key-hide-alt-key-translations, which-key-delay-functions)
	(which-key-allow-regexps, which-key-inhibit-regexps)
	(which-key-show-transient-maps, which-key-init-buffer-hook)
	(which-key-key-face, which-key-separator-face)
	(which-key-note-face, which-key-command-description-face)
	(which-key-local-map-description-face)
	(which-key-highlighted-command-face)
	(which-key-group-description-face, which-key-special-key-face)
	(which-key-docstring-face)
	(which-key-custom-popup-max-dimensions-function)
	(which-key-custom-hide-popup-function)
	(which-key-custom-show-popup-function, which-key-lighter)
	(which-key-inhibit-display-hook)
	(which-key-this-command-keys-function)
	(which-key-allow-evil-operators)
	(which-key-show-operator-state-maps): Rename :version to
	:package-version and add new :version tags indicating that
	'which-key' was added with Emacs 30.

2024-06-15  Eli Zaretskii  <eliz@gnu.org>

	Fix em-extpipe-tests on MS-Windows

	* test/lisp/eshell/em-extpipe-tests.el (em-extpipe-test-14): Fix
	test on MS-Windows.  (bug#71446)

2024-06-15  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Fix 'wrong-type-argument' in 'php-ts-mode--webserver-read-args'

	Prevents php-ts-mode--webserver-read-args from throwing an error
	if the current buffer is not associated with a file.
	* lisp/progmodes/php-ts-mode.el
	(php-ts-mode--webserver-read-args): Use 'default-directory if' the
	current buffer is not associated with a file.  (Bug#71574)
	(php-ts-mode-run-php-webserver): Fix doc string.

2024-06-15  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.7.4-7-g165319

2024-06-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	59261e6f4fe Fix auth-info-password
	778f8c793d1 ; * lisp/mail/rmail.el (rmail-get-new-mail-hook): Doc fix.
	e6044b29e65 ; Minor fixes in ELisp manual

2024-06-15  Eli Zaretskii  <eliz@gnu.org>

	Avoid byte-compilation warnings in php-ts-mode

	* lisp/progmodes/php-ts-mode.el (treesit-search-forward)
	(treesit-node-prev-sibling, treesit-node-first-child-for-pos):
	Declare.

2024-06-15  Eshel Yaron  <me@eshelyaron.com>

	Honor 'Info-additional-directory-list' in 'C-h R' completion

	* lisp/info.el (info--manual-names): Take into account
	'Info-additional-directory-list', in addition to
	'Info-directory-list'.  (Bug#71368)

2024-06-15  Stefan Kangas  <stefankangas@gmail.com>

	Bump `which-key' minimum Emacs version to 25.1

	* lisp/which-key.el: Bump minimum required Emacs version to 25.1
	since the package depends on `universal-argument--description'.
	This was detected by package-lint.

2024-06-15  Stefan Kangas  <stefankangas@gmail.com>

	Fix checkdoc warnings in which-key.el

	* lisp/which-key.el (which-key, which-key-idle-secondary-delay)
	(which-key-replacement-alist)
	(which-key-allow-multiple-replacements, which-key-show-docstrings)
	(which-key-highlighted-command-list, which-key-show-prefix)
	(which-key-sort-order, which-key-sort-uppercase-first)
	(which-key-use-C-h-commands, which-key-show-early-on-C-h)
	(which-key-preserve-window-configuration, which-key-C-h-map)
	(which-key-delay-functions, which-key-inhibit-regexps)
	(which-key-faces, which-key-key-face, which-key-separator-face)
	(which-key-note-face, which-key-command-description-face)
	(which-key-local-map-description-face, which-key-special-key-face)
	(which-key-inhibit-display-hook)
	(which-key-this-command-keys-function, which-key-mode)
	(which-key--init-buffer, which-key--get-menu-item-binding)
	(which-key--get-keymap-bindings, which-key-reload-key-sequence)
	(which-key-show-major-mode, which-key-show-full-major-mode)
	(which-key-C-h-dispatch): Fix checkdoc warnings.

2024-06-15  Eli Zaretskii  <eliz@gnu.org>

	Fix problem with recently-added defcustom's

	* lisp/progmodes/php-ts-mode.el (php-ts-mode-php-config)
	(php-ts-mode-ws-port, php-ts-mode-ws-document-root)
	(php-ts-mode-ws-workers): Fix :type and :safe attributes.
	(Bug#71566)

2024-06-15  Eli Zaretskii  <eliz@gnu.org>

	Better documentation of 'emacs-internal' encoding

	* doc/lispref/nonascii.texi (Coding System Basics): Recommend
	'emacs-internal' encoding for caching.

2024-06-15  Philip Kaludercic  <philipk@posteo.net>

	* etc/NEWS: Mention the addition of 'which-key'

	* lisp/which-key.el: Clean up file header

2024-06-15  Eli Zaretskii  <eliz@gnu.org>

	Fix doc strings in ispell.el

	* lisp/textmodes/ispell.el (ispell-check-version)
	(ispell-get-casechars, ispell-get-not-casechars)
	(ispell-get-otherchars, ispell-get-many-otherchars-p)
	(ispell-get-ispell-args, ispell-get-extended-character-mode)
	(ispell-get-coding-system, ispell-word, ispell-get-word)
	(ispell-pdict-save, ispell-command-loop, ispell-help)
	(ispell-filter, ispell-highlight-spelling-error)
	(ispell-change-dictionary, ispell-region, ispell-ignore-fcc)
	(ispell-get-line, ispell-message): Doc fixes.  (bug#71532)

2024-06-15  Ashwin Kafle  <ashwin@ashwink.com.np>

	Fix calc-trail-here for first line of trail.

	* lisp/calc/calc.el (calc-trail-here): Change 'or' to 'and' since
	(bobp) can return true even if the buffer is not empty.
	(Bug#71533)

2024-06-15  kobarity  <kobarity@gmail.com>

	Allow escape sequences in Python prompts

	* lisp/progmodes/python.el (python-shell-prompt-detect): Use
	Python's json package if available, and remove escape sequences in
	prompts.
	* test/lisp/progmodes/python-tests.el
	(python-tests-interpreter-2-6-higher-p): New predicate function.
	(python-shell-prompt-detect-7): New test.  (Bug#71440)

2024-06-15  Eli Zaretskii  <eliz@gnu.org>

	Fix 'reindent-then-newline-and-indent' with 'abbrev-mode'

	* lisp/simple.el (reindent-then-newline-and-indent): Use a marker
	for the initial position.  (Bug#71459)

2024-06-15  Eli Zaretskii  <eliz@gnu.org>

	Prevent deletion of separator in *edit string* buffer

	* lisp/textmodes/string-edit.el (string-edit): Make the separator
	line read-only.  (Bug#71405)

2024-06-15  Eli Zaretskii  <eliz@gnu.org>

	Fix electric-pair-mode when characters are bound to non-ASCII keys

	* src/cmds.c (Fself_insert_command): Record the argument C in
	'last-command-event'.  (Bug#71337)

2024-06-15  Po Lu  <luangruo@yahoo.com>

	Send proper substitution character to Android IMEs

	* src/androidterm.c (android_text_to_string): Substitute
	REPLACEMENT CHARACTER for NULL in converting characters not
	representable without surrogate pairs to UTF-16.

2024-06-15  Arsen Arsenović  <arsen@aarsen.me>

	typescript/tsx-ts-mode: Indentation for type parameters

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): Add rule for type_parameters.

2024-06-14  Dmitry Gutov  <dmitry@gutov.dev>

	"Insert before markers" in read_and_insert_process_output properly

	* src/coding.c (setup_coding_system): Initialize it.
	(produce_chars, encode_coding, decode_coding_gap): Obey it in
	insert_from_gap calls.
	(encode_string_utf_8, decode_string_utf_8): Update the other calls
	to insert_from_gap to have one new argument `false'.

	* src/coding.h: New field insert_before_markers.

	* src/decompress.c (Fzlib_decompress_region): Here too.

	* src/insdel.c (insert_from_gap): Accept new argument
	BEFORE_MARKERS and pass it through to adjust_markers_for_insert.
	(bug#71525)

	* src/lisp.h: Update prototype.

	* src/process.c (read_and_insert_process_output): Set
	process_coding->insert_before_markers instead of calling
	adjust_markers_for_insert.

2024-06-14  Dmitry Gutov  <dmitry@gutov.dev>

	* lisp/progmodes/project.el: Bump the version.

2024-06-14  Eli Zaretskii  <eliz@gnu.org>

	Fix generation of org.texi from org.org

	* doc/misc/Makefile.in (org_template): Bind
	'org-id-track-globally' to nil when running
	'org-texinfo-export-to-texinfo-batch', to avoid searching local
	user files when building the Org manual.

2024-06-14  Po Lu  <luangruo@yahoo.com>

	* lisp/term.el (term-generate-db-directory): Don't delete
	DST-DIRECTORY if not yet existent.

2024-06-14  Po Lu  <luangruo@yahoo.com>

	Port term.el's terminfo machinery to Android

	* lisp/term.el (term-generate-db-directory): New function.  Copy
	/assets/etc/e to the cache directory, on Android, and return the
	same.
	(term-exec-1): Call term-generate-db-directory in place of
	data-directory.

2024-06-14  Po Lu  <luangruo@yahoo.com>

	Unconditionally prefer built-in decompression functions on Android

	* lisp/jka-compr.el (jka-compr-insert-file-contents): Prefer
	built-in decompression functions (i.e., zlib) to external agents.

2024-06-14  Po Lu  <luangruo@yahoo.com>

	Restore file's original name after a failed rename_replace on
	Windows 9X

	* src/w32.c (sys_rename_replace): If the rename operation fails
	and an intermediate name was generated and applied to the input
	file, restore the original.

2024-06-14  Po Lu  <luangruo@yahoo.com>

	Enable compiling Emacs with implicit Make rules suppressed

	* lib/Makefile.in (.SUFFIXES):

	* lwlib/Makefile.in (.SUFFIXES):

	* oldXMenu/Makefile.in (.SUFFIXES):

	* src/Makefile.in (.SUFFIXES): Register .c as a default suffix,
	for this list is emptied when `-r' is provided to Make.

2024-06-14  Pär Bohrarper  <par.bohrarper@gmail.com>

	Fix file listing in submodules with project-files-relative-names=t

	* lisp/progmodes/project.el (project--vc-list-files): Prepend
	module names to files when project-files-relative-names is
	non-nil.  (bug#71538)

2024-06-13  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Avoid false positives when parsing new Perl syntax

	* lisp/progmodes/cperl-mode.el (cperl--package-for-imenu-rx)
	(cperl--class-for-imenu-rx): avoid false positives when collecting
	imenu entries
	* lisp/progmodes/cperl-mode.el (cperl-init-faces): avoid false
	positives when detecting package names

	* test/lisp/progmodes/cperl-mode-tests.el
	(cperl-test-imenu-index): Add test verifying that $class_false is
	not shown as a class _false

	* test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add a line
	containing a false positive "$class_false"

2024-06-13  Mattias Engdegård  <mattiase@acm.org>

	php-ts-mode: minor fixes

	* lisp/progmodes/php-ts-mode.el (php-ts-mode-flymake-php): Don't
	use `any' to mean `not-newline'; it's misleading.
	(php-ts-mode--predefined-constant): Remove duplicate
	"E_USER_NOTICE".

2024-06-13  Michael Albinus  <michael.albinus@gmx.de>

	Adapt emacsclient options in doc

	* doc/emacs/misc.texi (emacsclient Options):
	* doc/man/emacsclient.1: Adapt option list.

2024-06-13  Eli Zaretskii  <eliz@gnu.org>

	Fix removal of file locks on MS-Windows 9X

	A new Windows-specific function for validating process ID is
	introduced that does TRT with possibly negative PID values
	returned by 'getpid' on Windows 9X and also with values larger
	than INT_MAX, since PID on Windows is actually an unsigned 32-bit
	value.

	* src/w32proc.c (w32_valid_process_id): New function.
	* src/w32common.h (VALID_PROCESS_ID): Define for WINDOWSNT.
	* src/filelock.c [WINDOWSNT]: Include w32common.h.  (Bug#71477)

2024-06-13  Po Lu  <luangruo@yahoo.com>

	Correctly define `select' binding on Android

	* lisp/term/android-win.el (input-decode-map): Cease binding
	select in the initial frame's input-decode-map.

	* src/androidterm.c (android_term_init): Binding select in the
	freshly created kboard.
	(syms_of_androidterm) <Qselect, Qreturn>: New symbols.

2024-06-12  Dmitry Gutov  <dmitry@gutov.dev>

	Highlight the suffix in *Completions* buffer in 'basic' style too

	* lisp/minibuffer.el (completion-basic-all-completions): Make sure
	to highlight the suffix as well (bug#71419).

2024-06-12  F. Jason Park  <jp@neverwas.me>

	Release ERC 5.6

	* lisp/erc/erc.el: Change Version header from 5.6-git to 5.6.  A
	`customize-package-emacs-version-alist' mapping for ERC 5.6 to
	Emacs 30.1 was already added when moving from 5.5 to 5.6-git.  The
	ERCVER variable in doc/misc/erc.texi was likewise updated at that
	time.  Going forward, such changes will continue to happen
	preemptively, on the flip side of each release.
	(erc-version): Change version from 5.6-git to 5.6.

2024-06-12  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Add php-ts-mode

	* etc/NEWS: Mention the new mode.
	* lisp/progmodes/php-ts-mode.el: New file.  (Bug#71380)

2024-06-12  Paul Eggert  <eggert@cs.ucla.edu>

	Start of a fix for bug#71477

	* src/filelock.c (integer_prefixed): New static function.
	(VALID_PROCESS_ID): New macro.
	(current_lock_owner): Use them to allow negative process IDs on
	some Microsoft platforms.

2024-06-12  Stefan Kangas  <stefankangas@gmail.com>

	Fix misspelled symbols in artist.el

	* lisp/textmodes/artist.el (artist-key-undraw-continuously)
	(artist-key-draw-continuously)
	(artist-key-do-continuously-continuously)
	(artist-key-do-continuously-poly)
	(artist-key-do-continuously-1point)
	(artist-key-do-continuously-2points)
	(artist-key-do-continuously-common)
	(artist-key-set-point-continuously)
	(artist-mouse-draw-continuously): Rename functions to fix
	misspelling of "continuously".  Leave old function names as
	obsolete aliases and update all callers.
	(artist-mt, artist-go-get-undraw-fn, artist-go-get-interval-fn)
	(artist-go-get-fill-pred, artist-go-get-fill-fn)
	(artist-key-undraw-common, artist-key-draw-common)
	(artist-key-do-continously-common, artist-key-set-point-common)
	(artist-down-mouse-1): Rename symbol to 'artist-do-continuously'
	to fix misspelling of "continuously".  Continue supporting the old
	symbol for backwards-compatibility.

2024-06-12  Eli Zaretskii  <eliz@gnu.org>

	Support --no-window-system option in emacsclient

	* lib-src/emacsclient.c (print_help_and_exit, longopts): Add
	'--no-window-system' alias for -t.  (Bug#71509)

2024-06-12  Michael Albinus  <michael.albinus@gmx.de>

	Fix tramp-compat-auth-info-password

	* lisp/net/tramp-compat.el (tramp-compat-auth-info-password): Use
	original function only for Emacs 30+.

2024-06-12  Po Lu  <luangruo@yahoo.com>

	Restore omitted dependency

	* java/Makefile.in (install_temp): Depend on
	$(libsrc)/asset-directory-tool.

2024-06-12  Eli Zaretskii  <eliz@gnu.org>

	Fix info/DIR generation broken by update to Org manual

	* build-aux/make-info-dir: Adapt to latest changes in Org manual's
	markup.

2024-06-12  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2024-06-12  Po Lu  <luangruo@yahoo.com>

	Restore functionality on Android 2.2

	* java/Makefile.in (install_temp): Do not compress directory-tree
	and generate such files in a special format that stores file
	sizes.

	* lib-src/asset-directory-tool.c (struct directory_tree): New
	field st_size.
	(need_file_size): New variable.
	(main_1, main_2, main): Write file sizes before sibling offsets if
	`--api-8' is specified.

	* src/android-asset.h (struct android_asset_manager): New field
	open.
	(struct android_asset): New field name.
	(AAssetManager_fromJava): Load AssetManager#open.
	(AAssetManager_open): If a directory tree has already been loaded,
	search for a matching asset and load its size thence, to avoid the
	requirement of an AssetFileDescriptor.
	(AAsset_close): Don't assume asset->fd exists.  Release
	asset->name.
	(AAsset_getLength): Likewise.
	(android_asset_create_stream): If asset->name exists, call
	AssetManager#open, in order to open compressed files.

	* src/androidvfs.c (OLD_ANDROID_ASSETS): Define to 1 on API 8.
	(android_extract_long, android_scan_directory_tree): Mark
	arguments as const.  Adjust offsets when OLD_ANDROID_ASSETS.
	(android_is_directory, android_init_assets, android_afs_readdir):
	Likewise.

	* src/lread.c (lread_fstat): Define to sys_fstat, not fstat.

2024-06-12  Po Lu  <luangruo@yahoo.com>

	Improve compression of Emacs packages on Android 2.2

	* configure.ac (ZIP): Search for a `zip' executable and substitute
	the same if targeting SDK 8.

	* java/INSTALL: Document new requirement.

	* java/Makefile.in (GZIP_PROG, ZIP): New substitutions.
	(.PHONY): Delete references to directory-tree.
	(install_temp): On SDK 8 and earlier, compress large *.el and Info
	files with gzip, and divide install_temp into three separate
	directories, with one for large files, another for gzipped files,
	and one more for the remainder.
	(install_temp/assets/directory-tree, install_temp/assets/version)
	(install_temp/assets/build_info): Merge these rules into
	install_tmp, that they may execute before the assets directory is
	split.
	(emacs.apk-in): Package each directory separately, accounting for
	their varied compression requirements.

	* lisp/term/android-win.el (input-decode-map): Define select to
	return in input-decode-map.

2024-06-12  Sean Whitton  <spwhitton@spwhitton.name>

	Make C-u 1 C-x v L slightly more discoverable

	* doc/emacs/maintaining.texi (VC Change Log): List C-u 1 C-x v L
	as though it were a separate command.  Give the longer description
	its own paragraph.

2024-06-11  Visuwesh  <visuweshm@gmail.com>

	Fix customization buffer for dired group

	* lisp/dired-aux.el
	(dired-create-destination-dirs-on-trailing-dirsep): Actually
	concat the string.  (Bug#71490)

2024-06-11  Dmitry Gutov  <dmitry@gutov.dev>

	read_and_insert_process_output: Insert before markers

	* src/insdel.c (adjust_markers_for_insert): Make non-static.

	* src/lisp.h: Add declaration for it.

	* src/process.c (read_and_insert_process_output): Use it here.
	And also call insert_1_both with BEFORE_MARKERS=t, for
	compatibility with internal-default-process-filter.  (bug#66020)

2024-06-11  Michael Albinus  <michael.albinus@gmx.de>

	Refactor tramp-*-process-file functions

	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	* lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Don't
	compute process name, this is done in
	`tramp-skeleton-make-process'.

	* lisp/net/tramp-adb.el (tramp-adb-handle-process-file):
	* lisp/net/tramp-sh.el (tramp-sh-handle-process-file):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): Use
	`tramp-skeleton-process-file'.

	* lisp/net/tramp.el (tramp-get-unique-process-name): New defun.
	(tramp-skeleton-make-process): Use it.
	(tramp-skeleton-process-file): New defmacro.

2024-06-11  Robert Pluim  <rpluim@gmail.com>

	Show character names when describing translations

	* lisp/help.el (help-key-description): Use 'char-to-name' to show
	the Unicode name of translated keys.  (Bug#71411)
	(help--describe-command): And here.

	* etc/NEWS: Announce the change.

2024-06-11  Robert Pluim  <rpluim@gmail.com>

	Use 'char-to-name'

	* lisp/international/emoji.el (emoji--name): Lookup name using
	'char-to-name'.
	* lisp/international/textsec.el (textsec-domain-suspicious-p): And
	here.
	* lisp/simple.el (what-cursor-position): And here.

2024-06-11  Robert Pluim  <rpluim@gmail.com>

	Add 'char-to-name' convenience function

	* lisp/international/mule-cmds.el (char-to-name): New function.
	This is the inverse of 'char-from-name'.
	* doc/lispref/nonascii.texi (Character Codes): Document it.
	* etc/NEWS: Announce it.

2024-06-11  Po Lu  <luangruo@yahoo.com>

	Enable support for color fonts in recent releases of Xft

	* etc/PROBLEMS (Some fonts are detected..): Document that Xft
	2.3.6 should have resolved this issue.

	* src/ftfont.c (ftfont_spec_pattern, ftfont_list): Disable
	inhibition of color fonts on Xft 2.3.6 and subsequent versions.

2024-06-11  Po Lu  <luangruo@yahoo.com>

	Eliminate some redundant synchronization on Android

	* java/org/gnu/emacs/EmacsService.java (resetIC): Return on all
	versions of Android if the connection need not be reset.

	* java/org/gnu/emacs/EmacsView.java (getICMode, setICMode): Remove
	needless synchronization.

2024-06-11  Dmitry Gutov  <dmitry@gutov.dev>

	fast-read-process-output: Make safer

	* src/process.c (read_process_output): Move the call to
	'read_and_insert_process_output' from here.
	(read_and_dispose_of_process_output): Here, so that any Lisp code
	invoked through modification hook from the former function may
	also benefit from safety guards like running_asynch_code, saved
	match data, inhibit_quit, etc.  (bug#66020)

2024-06-11  Dmitry Gutov  <dmitry@gutov.dev>

	read_process_output_set_last_coding_system: Extract, reuse

	* src/process.c (read_process_output_set_last_coding_system): New
	function, extracted from read_and_dispose_of_process_output.
	(read_and_dispose_of_process_output): Update accordingly.
	(read_and_insert_process_output): Use it here instead of just
	transferring carryover.  (bug#66020, also mentioned in bug#71452)

2024-06-11  Po Lu  <luangruo@yahoo.com>

	* src/filelock.c (pid_strtoimax) [!WINDOWSNT]: Define correctly.

2024-06-11  Po Lu  <luangruo@yahoo.com>

	Provide for negative PIDs on MS Windows

	* src/filelock.c (pid_t, getpid_for_lock, pidintmax, EPRIdMAX):
	New macros; define to unsigned long or corresponding values if
	WINDOWSNT.
	(lock_file_1, current_lock_owner): Replace intmax_t, getpid, pid_t
	and the like with the aforementioned macros.  (bug#71477)

2024-06-11  Dmitry Gutov  <dmitry@gutov.dev>

	read_and_insert_process_output: Call 'prepare_to_modify_buffer'
	first

	* src/process.c (read_and_insert_process_output): Call
	'prepare_to_modify_buffer' before any insertions (bug#71452).

2024-06-10  Stefan Kangas  <stefankangas@gmail.com>

	Fix recently added eshell test

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/empty-background-command): Fix failing test.

2024-06-10  Eli Zaretskii  <eliz@gnu.org>

	Avoid rare assertion violations when deleting a frame

	* src/dispnew.c (adjust_frame_glyphs): Allow nrows = 0 when
	deleting a frame.  (Bug#71475)

2024-06-10  Eli Zaretskii  <eliz@gnu.org>

	Fix treesit-tests

	* test/src/treesit-tests.el (treesit-node-api): Adapt the test to
	changes in 'treesit_check_node'.  (Bug#71012)

2024-06-10  Eli Zaretskii  <eliz@gnu.org>

	Allow to print treesit objects from GDB

	* src/.gdbinit (xtsparser, xtsnode, xtsquery): New functions.
	(xpr): Call them for treesit objects.

2024-06-10  Mattias Engdegård  <mattiase@acm.org>

	* src/print.c (print_vectorlike_unreadable): Fix merge accident.

	* etc/emacs_lldb.py (Lisp_Object): Add TS types.

2024-06-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/org/ox.el (org-export-filters-alist): Don't define as
	constant since we modify it (set it to nil) in
	`orgtbl-to-generic'.

2024-06-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	(rng-do-some-validation): Fix dangerous use of
	`with-silent-modifications'.

	* lisp/nxml/rng-valid.el (rng-do-some-validation): Don't let-bind
	`inhibit-modification-hooks' around code which can wait.
	(rng-cache-state): Bind it here instead.

2024-06-10  Po Lu  <luangruo@yahoo.com>

	Correct documentation build warnings and errors with Texinfo 4.13

	* doc/emacs/custom.texi (Init Rebinding): Avoid @U command.

	* doc/emacs/dired.texi (Image-Dired): EXIF, PNG and JPEG are
	acronyms.

2024-06-10  Po Lu  <luangruo@yahoo.com>

	Rename new variable in process.c

	* src/process.c (syms_of_process): Rename read_process_output_fast
	to fast_read_process_output.

2024-06-10  Michael Albinus  <michael.albinus@gmx.de>

	Refactor tramp-*-make-process functions

	* lisp/net/tramp.el (tramp-handle-make-process):
	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	* lisp/net/tramp-androidsu.el
	(tramp-androidsu-handle-make-process):
	* lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Use
	`tramp-skeleton-make-process'.

	* lisp/net/tramp-container.el (tramp-actions-before-shell): Don't
	declare.

	* lisp/net/tramp-sh.el (tramp-actions-before-shell): Add
	;;;###tramp-autoload cookie.

	* lisp/net/tramp.el (tramp-file-local-name): Adapt docstring.
	(tramp-skeleton-make-process): New defmacro.

2024-06-10  Mattias Engdegård  <mattiase@acm.org>

	cperl-mode: fix doc string escaping

	* lisp/progmodes/cperl-mode.el (cperl--extra-paired-delimiters):
	Fix broken escaping.

2024-06-10  Mattias Engdegård  <mattiase@acm.org>

	Org: fix mistakes in regexp, skip set and doc string

	All found by Relint.

	* lisp/org/org-element.el (org-element-copy-buffer): Repair
	incorrect escaping.
	* lisp/org/org-macs.el (org--line-empty-p): Fix broken skip-set.
	* lisp/org/org.el (org-setup-yank-dnd-handlers): Fix broken
	regexp.

2024-06-10  Michael Albinus  <michael.albinus@gmx.de>

	Extend auto-revert-test07-auto-revert-several-buffers

	* test/lisp/autorevert-tests.el
	(auto-revert-test05-global-notify): Make cleanup robust.
	(auto-revert-test07-auto-revert-several-buffers): Extend test.
	(Bug#71424)

2024-06-10  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Update for the current Perl version 5.040

	* etc/NEWS: Announce new features of cperl-mode.

	* lisp/progmodes/cperl-mode.el (cperl-menu): Add toggle for extra
	paired delimiters.
	(defconst): New rx expressions `cperl--sub-name-generated-rx' and
	`cperl--field-declaration-rx'
	(cperl--imenu-entries-rx): Use the new expressions
	(cperl--extra-paired-delimiters): New variable holding the paired
	delimiters for Perl 5.36 and newer
	(cperl-imenu-sub-keywords): Add autogenerated methods to imenu
	(cperl-init-faces): Add the __CLASS__ token, builtin constants,
	and attributes for field declarations.
	(cperl-short-docs): Add __CLASS__ to one-line docs.
	(cperl-extra-paired-delimiters-mode): new minor mode to handle
	non-ASCII paired delimiters.

	* test/lisp/progmodes/cperl-mode-tests.el
	(cperl-test-fontify-builtin-constants): New test.
	(cperl-test-fontify-class): New test clauses for attributes.
	(cperl-test-field-declaration-rx): New test.
	(cperl-test-autogenerated-reader-rx): New unit test for the rx
	expression.
	(cperl-test-extra-delimiters): New test.
	(cperl-test-imenu-index): New clauses for imenu capture of
	autogenerated methods.

	* test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add
	examples for Perl 5.40 syntax.

	* test/lisp/progmodes/cperl-mode-resources/extra-delimiters.pl:
	New resource for non-ASCII paired delimiters.

2024-06-10  Po Lu  <luangruo@yahoo.com>

	Minor revisions to Android key bindings

	* etc/PROBLEMS (Runtime problems specific to Android): Document
	inappropriate generation of F3 on certain systems.

	* lisp/bindings.el ([iconify-frame], [make-frame-visible]): Update
	references to long-obsolete ignore-event command.

	* lisp/term/android-win.el ([KEYCODE_NOTIFICATION], [\83]): Ignore
	these two nuisance keys by default.

2024-06-10  Juri Linkov  <juri@linkov.net>

	Improve new feature of preserving outlines after revert.

	* lisp/outline.el (outline-minor-mode): Move adding hook
	'outline-revert-buffer-rehighlight' to the same code branch that
	calls 'outline-minor-mode-highlight-buffer'.
	(outline-revert-buffer-rehighlight): Remove same conditions
	already existing in 'outline-minor-mode'.
	(outline-hidden-headings-regexp): Remove function.
	(outline-hidden-headings-paths)
	(outline-hidden-headings-restore-paths): New functions that save
	and restore complete paths instead of flat regexps.
	(outline-revert-buffer-restore-visibility): Use
	'outline-hidden-headings-paths' and
	'outline-hidden-headings-restore-paths'.

2024-06-10  Po Lu  <luangruo@yahoo.com>

	Re-enable TTY glyph production for batch mode frames on Android

	* lisp/org/ob-core.el (org-babel-execute-src-block): Revert
	previous change.

	* src/term.c (tty_append_glyph, produce_glyphs) [HAVE_ANDROID]:
	Re-enable suppressed code.

2024-06-10  Po Lu  <luangruo@yahoo.com>

	Fix bootstrap of org.texi

	* lisp/org/ob-core.el (org-babel-execute-src-block): Ignore errors
	around code block execution.

2024-06-10  Jim Porter  <jporterbugs@gmail.com>

	Improve correctness of 'eshell-quote-argument'

	* lisp/eshell/esh-arg.el (eshell-quote-argument): Mention that
	this function is for use within Eshell buffers.
	(eshell-quote-backslash): Properly quote newlines.

	* lisp/eshell/em-unix.el (eshell/cat, eshell/du): Throw
	'eshell-external' instead; that's what it's here for.

	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test-quote-argument): Remove.
	(esh-proc-test/emacs-command):
	* test/lisp/eshell/esh-var-tests.el (esh-var-test/path-var/set)
	(esh-var-test/path-var/set-locally): Use 'eshell-quote-argument'.

	* test/lisp/eshell/em-unix-tests.el
	(em-unix-test/compile/interactive): Use 'shell-quote-argument'.
	Note: *not* 'eshell-...'.

2024-06-09  Kyle Meyer  <kyle@kyleam.com>

	* etc/NEWS: Announce Org update.

	Update to Org 9.7.3

2024-06-09  Jim Porter  <jporterbugs@gmail.com>

	Remove empty Eshell commands when parsing

	This improves the logic for copying/stealing handles when
	constructing the command form: now, we should always steal the
	handles for the last real command, even if there were some
	trailing semicolons.

	* lisp/eshell/esh-arg.el (eshell-parse-delimiter): Be stricter
	about parsing so that things like "& &" aren't parsed as a single
	"&&" token.

	* lisp/eshell/esh-cmd.el (eshell-parse-command): Get the commands
	in reverse, and remove any nil commands.
	(eshell-split-commands): Always return the trailing terms (except
	when there were no terms to begin with).

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/empty-background-command): New test.

2024-06-09  Stefan Kangas  <stefankangas@gmail.com>

	Unbreak build with Clang 15 on macOS 14.5

	* src/process.c (read_process_output): Use EQ for comparison.
	(syms_of_process): Properly set a DEFVAR_BOOL to 'true' instead of
	'Qt'.

2024-06-09  Juri Linkov  <juri@linkov.net>

	Support a function value of Buffer-menu-group-by.

	* lisp/buff-menu.el (Buffer-menu-group-by): Add a choice for a
	function that returns names of all levels.
	(list-buffers--refresh): If Buffer-menu-group-by is a function,
	then use it directly.

2024-06-09  Juri Linkov  <juri@linkov.net>

	Text improvements for the documentation of 'some-window'

	* doc/lispref/windows.texi (Buffer Display Action Functions):
	Improve wording.  Suggested by martin rudalics <rudalics@gmx.at>.
	(bug#70949)

2024-06-09  kobarity  <kobarity@gmail.com>

	Specify Python 3 in some ERTs on Mac

	* test/lisp/progmodes/python-tests.el
	(python-tests-with-temp-buffer-with-shell): Remove setting
	'python-shell-interpreter'.
	(python-tests-shell-interpreter): Removed.
	(python-tests-shell-interpreters): New variable.
	(python-tests-with-shell-interpreter)
	(python-tests-with-temp-buffer-with-shell-interpreter): New
	macros.
	(python-tests-get-shell-interpreter): Add an optional PRED
	argument to allow ERTs to specify Python interpreter version.
	(python-tests--get-interpreter-info): New function.
	(python-tests-interpreter-3-p): New function to be used as the
	PRED argument of 'python-tests-get-shell-interpreter'.
	(python-shell-make-comint-1)
	(python-shell-make-comint-2)
	(python-shell-make-comint-4)
	(python-shell-get-process-1)
	(python-shell-internal-get-or-create-process-1)
	(python-shell-prompt-detect-1)
	(python-shell-prompt-detect-2)
	(python-shell-prompt-detect-3)
	(python-shell-prompt-detect-4)
	(python-shell-prompt-detect-5)
	(python-shell-prompt-detect-6)
	(python-shell-prompt-set-calculated-regexps-6)
	(python-shell-completion-at-point-jedi-completer)
	(python-completion-at-point-pdb-1)
	(python-completion-at-point-while-running-1)
	(python-ffap-module-path-1)
	(python-ffap-module-path-while-running-1)
	(python-eldoc--get-doc-at-point-1)
	(python-eldoc--get-doc-at-point-while-running-1)
	(python-tests--run-python-selects-window)
	(python-test--shell-send-block): Use the new macro.
	(python-shell-completion-at-point-ipython): Remove setting
	'python-tests-shell-interpreter'.
	(python-shell-completion-at-point-1)
	(python-completion-at-point-1)
	(python-completion-at-point-2)
	(python-completion-at-point-native-1)
	(python-completion-at-point-native-2)
	(python-completion-at-point-native-with-ffap-1)
	(python-completion-at-point-native-with-eldoc-1): Use the new
	macro and specify Python 3 on Mac to avoid errors.  (Bug#70815)

2024-06-09  kobarity  <kobarity@gmail.com>

	Fix hiding a Python block ending with a comment

	* lisp/progmodes/python.el
	(python-hideshow-forward-sexp-function): Move point to the end of
	the line.
	* test/lisp/progmodes/python-tests.el
	(python-hideshow-hide-block-2): New test.  (Bug#71170)

2024-06-09  Po Lu  <luangruo@yahoo.com>

	Enable accessing tool bar with a touch screen on MS-Windows.

	* src/w32fns.c (w32_createwindow): Reset tool_bar_dwID.

	* src/w32term.c (w32_read_socket): Reserve touch event sequences
	that fall on the tool bar for future tool-bar manipulation.

	* src/w32term.h (struct w32_output) <tool_bar_dwID>: New field.

2024-06-09  Eli Zaretskii  <eliz@gnu.org>

	Fix MS-Windows build broken by recent touch-screen changes

	* src/w32term.c (TOUCHEVENTF_DOWN, TOUCHEVENTF_UP):
	(struct _TOUCHINPUT): Move before first use.
	(TOUCHEVENTF_MOVE, TOUCHEVENTMASKF_CONTACTAREA)
	(TOUCHEVENTMASKF_EXTRAINFO, TOUCHEVENTMASKF_TIMEFROMSYSTEM): Ifdef
	away unused macros.
	(w32_read_socket): Fix typo.

2024-06-09  Eli Zaretskii  <eliz@gnu.org>

	A better fix for esh-proc-tests on MS-Windows

	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test-quote-argument): New function.
	(esh-proc-test/emacs-command): Use it instead of
	'shell-quote-argument', which allows to go back to
	system-independent code.

2024-06-09  Po Lu  <luangruo@yahoo.com>

	* lisp/loadup.el: Load touch-screen.el on MS-Windows.

	* src/w32fns.c (Emacs_GESTURECONFIG): New structure.
	(SetGestureConfig_fn): New variable.
	(w32_createwindow): Disable emulated mouse and gesture events for
	the frame's window.
	(w32_wnd_proc) <WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_LBUTTONUP>
	<WM_RBUTTONUP>: Ignore mouse events which are marked as emulated
	pointer events.
	(globals_of_w32fns): Load SetGestureConfig from user32.dll.

	* src/w32term.c (w32_read_socket): Correct utilization of
	GetTouchInputInfo, coordinate spaces, &c.

2024-06-09  Po Lu  <luangruo@yahoo.com>

	Report touch events on MS-Windows

	* etc/NEWS: Announce change.

	* src/w32fns.c (RegisterTouchWindow_fn): New function.
	(w32_createwindow): Assign a base value for touch event
	identifiers to the frame, and register for touch input.
	(w32_wnd_proc): Forward WM_TOUCH/WM_TOUCHMOVE messages to the main
	thread.
	(globals_of_w32fns): Load RegisterTouchWindow from user32.dll.

	* src/w32term.c (w32_read_socket) <WM_TOUCH>: Detect WM_TOUCH
	events, compare and record their touch points with and into the
	frame's record of their prior state, and report the same to Lisp.
	(pfnCloseTouchInputHandle, pfnGetTouchInputInfo): New variables.
	(w32_initialize): Load the above functions from user32.dll.

	* src/w32term.h (MAX_TOUCH_POINTS): New definition.
	(struct w32_output) <touch_ids, touch_x, touch_y, touch_base>: New
	fields.

2024-06-09  Jared Finder  <jared@finder.org>

	Add documentation for window-tool-bar package

	Also change window-tool-mode to not pay attention to if
	tool-bar-map has a buffer local value or not as that made the
	documentation complicated.  Documentation added in Emacs manual,
	Elisp manual, package commentary, and docstrings.  Also extend
	window-tool-bar support to Emacs 27 and newer.  (bug#68765)

	* doc/emacs/emacs.texi (Top):
	* doc/emacs/frames.texi (Menu Bars):
	* doc/emacs/glossary.texi (Glossary):
	* doc/emacs/modes.texi (Minor Modes):
	* doc/emacs/windows.texi (Windows, Tab Line): Mention Window Tool
	Bar.
	(Window Tool Bar): New documentation.
	* doc/lispref/elisp.texi (Top):
	* doc/lispref/modes.texi (Mode Line Format, Mode Line Basics)
	(Mode Line Data): Mention Tab Lines.
	(Tab Lines): New documentation.
	* etc/NEWS: Mention newly added variable and package.
	* lisp/window-tool-bar.el (window-tool-bar-mode): Don't display
	tool bar when tool-bar-map is nil.
	* lisp/window-tool-bar.el (tool-bar-always-show-default): Define
	variable for older Emacs versions.

2024-06-09  Philip Kaludercic  <philipk@posteo.net>

	Add new command 'package-vc-log-incoming'

	* lisp/emacs-lisp/package-vc.el (package-vc-log-incoming):
	Implement it.
	* etc/NEWS: Mention it.

2024-06-09  Eli Zaretskii  <eliz@gnu.org>

	Fix a recent change in reading from sub-processes

	* src/process.c (make_process): Move to here...
	(create_process): ...from here.

2024-06-09  Eli Zaretskii  <eliz@gnu.org>

	Fix Eshell tests on MS-Windows

	* lisp/eshell/esh-util.el (eshell-get-path): Don't add "." if it
	is already there.

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/path-var/preserve-across-hosts): Skip on MS-Windows.
	(esh-var-test/path-var/set, esh-var-test/path-var/set-locally):
	Quote the PATH value, for MS-Windows.
	* test/lisp/eshell/esh-util-tests.el (esh-util-test/path/get): No
	need to add ".": it is already done by 'eshell-get-path'.
	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test/kill-pipeline): Accept empty string as valid
	output.
	(esh-proc-test/sigpipe-exits-process): Skip on MS-Windows: no
	SIGPIPE.
	(esh-proc-test/emacs-command): Quote correctly for MS-Windows.
	* test/lisp/eshell/em-unix-tests.el
	(em-unix-test/compile/interactive): Fix test on MS-Windows.
	* test/lisp/eshell/em-script-tests.el (em-script-test/batch-file):
	Skip on MS-Windows.
	* test/lisp/eshell/eshell-tests-helpers.el
	(eshell-command-result--equal): Compare strings (file names)
	case-insensitively on MS-Windows.

2024-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	(hack-dir-local-get-variables-functions): New hook

	Make it possible to provide more dir-local variables, such as
	done by the Editorconfig package.

	* lisp/files.el (hack-dir-local--get-variables): Make arg optional.
	(hack-dir-local-get-variables-functions): New hook.
	(hack-dir-local-variables): Run it instead of calling
	`hack-dir-local--get-variables'.

	* doc/lispref/variables.texi (Directory Local Variables):
	Document the new hook.

2024-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	(find-auto-coding): Provide filename to `auto-coding-functions'

	Allow `auto-coding-functions' to know the file name.  Motivated by
	the needs of Editorconfig support.

	* lisp/international/mule.el (auto-coding-file-name): New var.
	(find-auto-coding): Let-bind it for `auto-coding-functions'.
	Document the expectation that the arg be an absolute file name.

	* doc/lispref/nonascii.texi (Default Coding Systems): Mention
	`auto-coding-file-name'.

	* test/lisp/international/mule-util-resources/test.utf-16le: New
	file.
	* test/lisp/international/mule-tests.el (mule-tests--dir): New var.
	(mule-tests--auto-coding): New fun.
	(mule-tests--auto-coding-functions): New test.

2024-06-09  Noah Peart  <noah.v.peart@gmail.com>

	Add typescript-ts-mode indentation for multi-assignment decls

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): Add indentation rules for
	lexical and variable declarations with multiple assignments.
	* test/lisp/progmodes/typescript-ts-mode-resources/indent.erts:
	Add indent test for variable declarations.  (bug#68054)

2024-06-09  Dmitry Gutov  <dmitry@gutov.dev>

	project-list-buffers-ibuffer: Handle the FILES-ONLY argument

	* lisp/progmodes/project.el (project-list-buffers-ibuffer): Handle
	the FILES-ONLY argument.  (bug71290)
	(project-list-buffers-buffer-menu): Expand docstring.

2024-06-09  mikpom  <mikpom@mikpom.ru>

	Support Ibuffer in project-list-buffers

	* lisp/progmodes/project.el (project-buffers-viewer): New option.
	(project-list-buffers): Dispatch using it.
	(project-list-buffers-buffer-menu, project-list-buffers-ibuffer):
	New functions.  (bug#71290)

2024-06-09  Dmitry Gutov  <dmitry@gutov.dev>

	read-process-output-max: Increase the default value

	* src/process.c (read-process-output-max): Increase the default
	value to 65536 (bug#66020).

2024-06-09  Dmitry Gutov  <dmitry@gutov.dev>

	Remember the value of read_process_output_max when process is
	created.

	* src/process.h (Lisp_Process): Add field readmax.

	* src/process.c (read_process_output): Use it.
	(create_process): Save the value of read_process_output_max to it
	when the process is created.  Use for pipe size.  (bug#66020)

2024-06-09  Dmitry Gutov  <dmitry@gutov.dev>

	Go around calling the default process filter (reducing GC churn)

	Instead of allocating strings and passing them to the filter, pass
	the char buffer to a C function implementing the same logic.

	* src/process.c (read_process_output_before_insert)
	(read_process_output_after_insert):
	New functions, extracted from internal-default-process-filter.
	(Finternal_default_process_filter): Use them.
	(read_and_insert_process_output): New function.  Use them.
	(read_process_output_fast): New variable.
	(read_process_output): Use it to choose how to insert.
	(bug#66020)

	* etc/NEWS: Mention the change.

2024-06-08  Dmitry Gutov  <dmitry@gutov.dev>

	url-retrieve-synchronously: Fix timeout when connection hangs

	* lisp/url/url.el (url-retrieve-synchronously): Set
	url-asynchronous to t when TIMEOUT is non-nil.  (bug#71295)

2024-06-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	(pcase--app-subst-match): Try and fix performance regression

	* lisp/emacs-lisp/pcase.el (pcase--app-subst-match): Optimize
	matches against (quote VAL).  (bug#71398)

	* test/lisp/emacs-lisp/pcase-tests.el
	(pcase-tests-quote-optimization): Add new test case.

2024-06-08  Jim Porter  <jporterbugs@gmail.com>

	Improve implementations of some Eshell output filter functions

	* lisp/eshell/esh-mode.el (eshell-postoutput-scroll-to-bottom):
	Use 'get-buffer-window-list' for simplicity.
	(eshell-handle-control-codes): Use 're-search-forward'; this way
	is much faster.

	* test/lisp/eshell/esh-mode-tests.el: New file.

2024-06-08  Jim Porter  <jporterbugs@gmail.com>

	Be more efficient when buffering output in Eshell

	This makes the built-in 'eshell/cat' 5-10x faster on large files
	in my (somewhat limited) tests.  In addition, this change
	periodically redisplays when using the Eshell buffered output so
	that users can see some progress.

	* lisp/eshell/esh-io.el (eshell-print-queue-size)
	(eshell-print-queue)
	(eshell-print-queue-count): Make obsolete in favor of...
	(eshell-buffered-print-size, eshell--buffered-print-queue)
	(eshell--buffered-print-current-size): ... these.
	(eshell-buffered-print-redisplay-throttle): New user option.
	(eshell--buffered-print-next-redisplay): New variable.
	(eshell-init-print-buffer): Make obsolete.
	(eshell-flush): Add new REDISPLAY-NOW argument in favor of CLEAR
	(which only 'eshell-init-print-buffer' should have used).
	(eshell-buffered-print): Compare queued output length to
	'eshell--buffered-print-current-size'.
	(eshell-with-buffered-print): New macro.

	* lisp/eshell/esh-var.el (eshell/env):
	* lisp/eshell/em-dirs.el (eshell/cd):
	* lisp/eshell/em-hist.el (eshell/history):
	* lisp/eshell/em-unix.el (eshell/cat):
	* lisp/eshell/em-ls.el (eshell/ls): Use
	'eshell-with-buffered-print'.
	(flush-func): Remove.
	(eshell-ls--insert-directory, eshell-do-ls): Remove 'flush-func'.

	* test/lisp/eshell/em-unix-tests.el
	(em-unix-test/compile/interactive)
	(em-unix-test/compile/pipeline, em-unix-test/compile/subcommand):
	Fix indentation.
	(em-unix-test/cat/file-output): New test.

	* etc/NEWS: Announce these improvements.

2024-06-08  F. Jason Park  <jp@neverwas.me>

	Restore deferred date-stamp insertions in ERC

	* lisp/erc/erc-stamp.el (erc-stamp--recover-on-reconnect): Treat
	`erc-stamp--deferred-date-stamp' as a permanent-local variable.
	(erc-stamp--date): Document expected possible values for `fn'
	slot.
	(erc-stamp--defer-date-insertion-on-post-modify): Use the function
	`ignore' to mean a new `erc-timer-hook' member has been requested.
	Use nil to mean one has already run.  Deferred date stamps are new
	in ERC 5.6 and Emacs 30.
	(erc-stamp--date-mode): Improve doc string.
	* test/lisp/erc/erc-scenarios-stamp.el
	(erc-scenarios-stamp--date-mode/reconnect): New test.

2024-06-08  Eli Zaretskii  <eliz@gnu.org>

	Fix killing indirect buffers under auto-revert-mode

	* lisp/autorevert.el (auto-revert-mode): Don't add indirect
	buffers to 'auto-revert-buffer-list'.
	(auto-revert-notify-rm-watch): Don't disable file notifications
	when killing an indirect buffer.  (Bug#71424)

2024-06-08  Eli Zaretskii  <eliz@gnu.org>

	Fix 'string-edit' when abort-callback is omitted

	* lisp/textmodes/string-edit.el (string-edit): Set
	'string-edit--abort-callback' even if ABORT-CALLBACK is nil.
	(Bug#71406)

2024-06-08  kobarity  <kobarity@gmail.com>

	Fix Python mode error caused by incorrect indentation

	* lisp/progmodes/python.el (python-indent--calculate-indentation):
	Guard against negative indentation.  (Bug#65870)

	* test/lisp/progmodes/python-tests.el
	(python-indent-badly-indented-block-end): New test.

2024-06-08  James Thomas  <jimjoe@gmx.net>

	Check for doc-spec-function early, in interactive invocation

	* lisp/info-look.el (info-lookup-interactive-arguments): Move
	here.
	(info-lookup): From here.  (Bug#71314)

2024-06-08  Richard Sent  <richard@freakingpenguin.com>

	Make 'clone-indirect-buffer-other-window' use other window

	Previously, depending on the settings in 'display-buffer-alist',
	'clone-indirect-buffer-other-window' would display the cloned
	buffer in the original window, behaving identically to
	'clone-indirect-buffer' with a non-nil display-flag.  This
	behavior was inconsistent with other-window commands which always
	used another window.  Now, 'clone-indirect-buffer-other-window'
	uses 'switch-to-buffer-other-window'.  This means it uses the same
	logic as other-window commands like 'find-file-other-window' and
	'info-other-window'.  display-flag was retained for API stability
	and functional compatibility reasons.

	* lisp/simple.el (clone-indirect-buffer-other-window): Use
	switch-to-buffer-other-window.  (Bug#70819)

2024-06-08  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	53e9caa23ef ; * doc/emacs/help.texi (Help, Apropos): Improve text and...
	00360258cad Fix treesit-parse-string crash (bug#71012)
	20af58d3a13 Check for buffer liveness when accessing tree-sitter node...

2024-06-08  Po Lu  <luangruo@yahoo.com>

	Improve scaling of tab bar items on high-density displays

	* lisp/tab-bar.el (tab-bar-auto-width-max)
	(tab-bar-auto-width-min): Accept values of a new format where the
	pixel width is a list and is subject to scaling.
	(tab-bar-auto-width-1): New function.
	(tab-bar-auto-width): Scale pixel values from t-b-a-w-min and
	t-b-a-w-max.

2024-06-08  Po Lu  <luangruo@yahoo.com>

	* lisp/touch-screen.el (touch-screen-handle-aux-point-update):
	Remove touchscreen pinch event generation threshold.

2024-06-07  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes in half-baked emacsclient frames

	If a client connection comes in while we handle a Lisp error, the
	new frame creation could signal an error before the new frame is
	ready for display.
	* src/xdisp.c (redisplay_internal): Don't redisplay windows on
	frames that were not completely set up.  (Bug#71224)

2024-06-07  Juri Linkov  <juri@linkov.net>

	* lisp/buff-menu.el (Buffer-menu-group-sort-by): New defcustom.
	(list-buffers--refresh): Use Buffer-menu-group-sort-by instead of
	the hard-coded function.  (bug#70150)
	(Buffer-menu-group-sort-alphabetically): New function as an option
	for 'Buffer-menu-group-sort-by'.
	(list-buffers-noselect): Remove setting
	outline-minor-mode-use-buttons to 'in-margins' that it not
	required for this feature to work correctly.

	* lisp/emacs-lisp/tabulated-list.el (tabulated-list-groups-sort):
	Add optional argument 'level'.

2024-06-07  Juri Linkov  <juri@linkov.net>

	Add new alist entry 'some-window' for
	'display-buffer-use-some-window'.

	* doc/lispref/windows.texi (Buffer Display Action Functions): Add
	details of using the alist entry 'some-window' in
	'display-buffer-use-some-window'.
	(Buffer Display Action Alists): Add 'some-window'.

	* lisp/window.el (display-buffer-use-some-window): Handle the
	alist entry 'some-window'.  (bug#70949)
	Extend docstring with its description.

2024-06-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/subr.el (with-silent-modifications): Minor simplification.

2024-06-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2024-06-07  Po Lu  <luangruo@yahoo.com>

	* java/Makefile.in (cf-stamp): Don't separately depend on
	NDK_BUILD_SHARED, as this renders make liable to descend into
	cross/ndk-build twice in different processes.
	(clean): Don't remove nonexistent file.

2024-06-07  Eli Zaretskii  <eliz@gnu.org>

	Unbreak the Cygw32 build

	It was broken by latest changes to w32image.c.
	* src/emacs.c (main): Call 'syms_of_w32image' and
	'globals_of_w32image' only if native image APIs are enabled.
	(Bug#71412)

2024-06-07  Po Lu  <luangruo@yahoo.com>

	Document compilation of librsvg on Android

	* java/INSTALL (LIBRSVG): New section.
	(BUILDING WITH OLD NDK VERSIONS): Update recommended invocation of
	configure in the case of a combined toolchain.

2024-06-07  Arash Esbati  <arash@gnu.org>

	Fix names of TeX-related major-modes

	* lisp/ffap.el (ffap-alist, ffap-string-at-point-mode-alist): Add
	entries for mode names introduced in AUCTeX v14.  Use
	`plain-tex-mode' for built-in mode.  (bug#71376)

2024-06-07  Basil L. Contovounesios  <basil@contovou.net>

	Fix tree-sitter markup in Elisp manual

	* doc/lispref/parsing.texi (Retrieving Nodes, User-defined Things)
	(Multiple Languages): Mark up variable names as @code, not
	metasyntactic @var.

2024-06-07  Basil L. Contovounesios  <basil@contovou.net>

	Fix user-error usage in sgml-mode.el

	* lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler):
	Address recent byte-compiler format string warnings (bug#71379).

2024-06-07  Juri Linkov  <juri@linkov.net>

	* lisp/buff-menu.el (Buffer-menu-mark, Buffer-menu-unmark)
	(Buffer-menu-delete)
	(Buffer-menu-save): Mark all entries in the outline when
	`outline-minor-mode' is enabled and point is on the outline
	heading line.  (bug#70150)
	(Buffer-menu-backup-unmark): Support outline heading lines.

2024-06-07  João Távora  <joaotavora@gmail.com>

	Eglot: better fix for bug#70724

	If the project's root is or destroyed, this may happen for a
	variety of reasons, including reasons affecting non-reconnection
	scenarios, so better to check in eglot--connect.

	An Eglot "reconnection" has always created as accurate a copy of
	the previous server object as possible, down to the 'eq'ness or
	the saved initargs, language ids, etc.  So re-querying for
	projects is not the thing to do here.

	A new different server can be created with `M-x eglot' which will
	ask about shutting down the existing one.

	* lisp/progmodes/eglot.el (eglot-reconnect): Revert previous
	change.
	(eglot--connect): Do sanity check here

2024-06-06  Dmitry Gutov  <dmitry@gutov.dev>

	eglot-reconnect: Re-fetch the current project

	* lisp/progmodes/eglot.el (eglot-reconnect): Retrieve the current
	project just in case something changed.  (bug#70724)

2024-06-06  Eli Zaretskii  <eliz@gnu.org>

	Prevent another abort in 'cmcheckmagic'

	* src/dispnew.c (update_frame_line): Prevent rare aborts when TTY
	frame is resized.  (Bug#71289)

2024-06-06  Po Lu  <luangruo@yahoo.com>

	Minor enhancements to the Android build system

	* build-aux/ndk-build-helper-1.mk:

	* build-aux/ndk-build-helper-2.mk:

	* cross/ndk-build/ndk-build-shared-library.mk:

	* cross/ndk-build/ndk-build-static-library.mk:

	* cross/ndk-build/ndk-resolve.mk
	(NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)):
	(NDK_LOCAL_SO_NAMES_$(LOCAL_MODULE)):
	(NDK_LOCAL_A_NAMES_$(LOCAL_MODULE)): Reinforce tests for string
	prefixes.

	* m4/ndk-build.m4 (ndk_INIT): Guarantee that a module's
	dependencies are recorded.

	* configure.ac (XCONFIGURE): Prepare for building librsvg.

2024-06-06  Kyle Meyer  <kyle@kyleam.com>

	Enable code block evaluation when generating .org manuals

	* doc/misc/Makefile.in ($(1:.org=.texi)): Enable code block
	evaluation in Org mode manual and other .org manuals to produce
	automatically generated parts.  (Bug#71394)

	When testing a scratch sync to the Emacs repo, the build
	failed with

	 make[3]: Leaving directory '/home/kyle/src/savannah/emacs--master/lisp'
	 Evaluate this emacs-lisp code block on your system? (yes or no)
	 Error: end-of-file ("Error reading from stdin")
	   yes-or-no-p("Evaluate this emacs-lisp code block on your system? ")

	That's expected given 715148131 (org-manual: Automatically
	generate export option list, 2023-07-31) and the default
	org-confirm-babel-evaluate value.

2024-06-06  Javier Olaechea  <pirata@gmail.com>

	Add 'sqlite-execute-batch' command

	This command is similar to 'sqlite-execute' except that it
	executes multiple statements in exchange for not accepting any
	arguments.  (Bug#70145)

	* src/sqlite.c (Fsqlite_execute_batch): New function.

	* test/src/sqlite-tests.el (sqlite-multiple-statements): Add smoke
	test for 'sqlite-execute-batch'.

	* etc/NEWS: Mention new command 'sqlite-execute-batch'.
	* doc/lispref/text.texi (Database): Document the new command.

2024-06-06  Mattias Engdegård  <mattiase@acm.org>

	Format string warnings for more functions (bug#71379)

	* lisp/emacs-lisp/bytecomp.el (byte-compile-format-like): Add
	message-box, message-or-box, warn and user-error.

2024-06-06  Eli Zaretskii  <eliz@gnu.org>

	Attempt to fix rare assertion violations in 'mark_terminals'

	* src/terminal.c (delete_terminal): Block input while we modify
	the frame list and 'terminal_list'.  (Bug#71289)

2024-06-06  Po Lu  <luangruo@yahoo.com>

	* java/AndroidManifest.xml.in: Revert portions of last change.

2024-06-05  F. Jason Park  <jp@neverwas.me>

	Select correct frame after enabling erc-nickbar-mode

	* lisp/erc/erc-speedbar.el (erc-speedbar--ensure): Re-select frame
	originally selected when earlier calling `speedbar-frame-mode'.
	Do this because `speedbar-frame' may become the new selected frame
	when multiple visible frames exist.
	(erc-nickbar-disable): Don't expect the mode to have been enabled
	previously.

2024-06-05  F. Jason Park  <jp@neverwas.me>

	Don't recurse in erc-server-delayed-check-reconnect

	* lisp/erc/erc-backend.el (erc-server-delayed-check-reconnect):
	Run `reschedule' function on a timer to avoid growing the stack
	when calling `delete-process'.
	* lisp/erc/erc-common.el
	(erc--favor-changed-reverted-modules-state): Fix `pcase' condition
	so that changing an option to its standard value does not earn a
	"STANDARD" label in Customize if that value differs from the saved
	one.
	* lisp/erc/erc.el (erc-open-socks-tls-stream): Reword doc string.
	* test/lisp/erc/erc-tests.el (erc--with-dependent-type-match)
	(erc--with-dependent-type-match): Remove useless tests.
	(bug#71178)
	* test/lisp/erc/resources/base/reconnect/unexpected-disconnect.eld:
	Await phantom EOFs and PINGs to somewhat account for a race that
	can result in a failure when running the suite in parallel with
	-jN.
	* test/lisp/erc/resources/erc-scenarios-common.el
	(erc-scenarios-common--print-trace): Set `debug-on-error' to t so
	that errors in timers always trigger test failures.
	;; * test/lisp/erc/resources/base/assoc/reconplay/foonet.eld:
	;; Timeouts.
	;; * test/lisp/erc/resources/base/upstream-reconnect/soju-barnet.eld:
	;; Timeouts.
	;; * test/lisp/erc/resources/base/mask-target-routing/foonet.eld:
	;; Timeouts.
	;; * test/lisp/erc/resources/join/network-id/barnet.eld: Timeout.

2024-06-05  Juri Linkov  <juri@linkov.net>

	Allow multi-level outlines in tabulated-list-groups used by
	list-buffers.

	* lisp/emacs-lisp/tabulated-list.el (tabulated-list-groups)
	(tabulated-list-groups-categorize, tabulated-list-groups-sort)
	(tabulated-list-groups-flatten): New functions.  (bug#70150)

	* lisp/buff-menu.el (Buffer-menu-group-by): Change type from a
	function to a list of functions.
	(list-buffers--refresh): Use the function 'tabulated-list-groups'
	where :path-function uses a list of functions from
	'Buffer-menu-group-by', and :sort-function is hard-coded to sort
	groups by name.
	(Buffer-menu-group-by-mode, Buffer-menu-group-by-root): Remove
	prefix "*".

2024-06-05  Eli Zaretskii  <eliz@gnu.org>

	Another attempt to prevent crashes when resizing TTY frames

	* src/dispnew.c (frame_size_change_delayed): Accept frame as
	argument, and check the 'new_size_p' flag of the frame in addition
	to 'delayed_size_change'.  Callers changed.
	(window_to_frame_vpos, build_frame_matrix_from_leaf_window): Call
	'frame_size_change_delayed' instead of looking at
	delayed_size_change alone.  (Bug#71289)

2024-06-05  Eshel Yaron  <me@eshelyaron.com>

	New user option 'completion-preview-idle-delay'

	Support displaying the completion preview shortly after you pause
	typing (on idle) rather than immediately.

	* lisp/completion-preview.el (Commentary): Update.
	(completion-preview--try-update):
	(completion-preview--update-from-timer): New functions.
	(completion-preview--timer): New buffer-local variable.
	(completion-preview-idle-delay): New user option.
	(completion-preview--show): Use it.
	(completion-preview--post-command):
	(completion-preview-mode): Disable idle timer if active.

2024-06-05  Eshel Yaron  <me@eshelyaron.com>

	Allow 'completion-preview-require-minimum-symbol-length' to be nil

	With some completion backends, completion preview is useful not
	only after a partial symbol, but also after punctuation and other
	non-symbol characters.  For example, in C code it's helpful to
	display the completion preview for struct members when point is
	after 'foo->'.  Provide an option to skip the check for minimum
	symbol length at point in order to support this use case.

	* lisp/completion-preview.el
	(completion-preview-minimum-symbol-length): Mention possible nil
	value in type and docstring.
	(completion-preview-require-minimum-symbol-length): Skip check if
	'completion-preview-minimum-symbol-length' is nil.

2024-06-05  Po Lu  <luangruo@yahoo.com>

	Fix Mac OS build

	* src/nsfns.m (ns_make_frame_key_window): Restore, but only when
	NS_IMPL_COCOA.

2024-06-05  Po Lu  <luangruo@yahoo.com>

	Fix the GNUstep build

	* src/Makefile.in (NON_OBJC_CFLAGS): Add
	-Wflex-array-member-not-at-end.

	* src/lisp.h (flush_stack_call_func): "asm" is unavailable in
	Objective C.

	* src/nsfns.m (ns_make_frame_key_window): Delete unused function.

2024-06-05  Juri Linkov  <juri@linkov.net>

	Rehighlight hi-lock patterns after reverting the buffer.

	* lisp/hi-lock.el (hi-lock-revert-buffer-rehighlight): New
	function.
	(hi-lock-mode): Add hi-lock-revert-buffer-rehighlight to
	revert-buffer-restore-functions, and remove after mode is
	disabled.
	https://lists.gnu.org/archive/html/emacs-devel/2024-06/msg00044.html

2024-06-05  Juri Linkov  <juri@linkov.net>

	Use revert-buffer-restore-functions in xref-revert-buffer

	* lisp/progmodes/xref.el (xref-revert-buffer): When
	'revert-buffer-restore-functions' is bound, use it in the same way
	as in 'revert-buffer'.  (bug#49731)

2024-06-05  Ulrich Müller  <ulm@gentoo.org>

	Reorder Calc units table

	* lisp/calc/calc-units.el (math-standard-units): Reorder the
	table, so that all CODATA values are grouped together.

2024-06-05  Paul Eggert  <eggert@cs.ucla.edu>

	Spelling fixes

2024-06-05  Yuan Fu  <casouri@gmail.com>

	Add manual entry for treesit-primary-parser

	* doc/lispref/parsing.texi (Multiple Languages): Add entry.
	* etc/NEWS (Example): Add news.

2024-06-05  Yuan Fu  <casouri@gmail.com>

	Revert "New function treesit-parser-changed-ranges"

	This reverts commit 996b9576713f9d63ea7ff7e9630a15cb0a0214eb.

	For reason see 760b54de080.

2024-06-05  Paul Eggert  <eggert@cs.ucla.edu>

	More-permanent fix for build with Android NDK r10b

	* configure.ac (gl_cv_header_working_endian_h): Remove temporary
	workaround for Android.
	* lib/endian.in.h: Copy latest version from Gnulib.

2024-06-04  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline-revert-buffer-rehighlight): New
	function.
	(outline-minor-mode): Add 'outline-revert-buffer-rehighlight' to
	'revert-buffer-restore-functions'.  When mode is disabled, remove
	hooks from 'revert-buffer-restore-functions' and also from
	'after-change-functions'.

2024-06-04  Eli Zaretskii  <eliz@gnu.org>

	Fix the build with mingw.org's MinGW

	The change in boot-time.c imported from Gnulib broke the MinGW
	build using mingw.org's MinGW.  It is wrong to include
	sysinfoapi.h, MS documentation says to include <windows.h>.
	* lib/boot-time.c: Don't include sysinfoapi.h.

2024-06-04  Ulrich Müller  <ulm@gentoo.org>

	Update Calc units table

	* lisp/calc/calc-units.el (math-standard-units): Update to 2022
	CODATA adjustment.

2024-06-04  Po Lu  <luangruo@yahoo.com>

	Temporarily repair build with Android NDK r10b

	* configure.ac (gl_cv_header_working_endian_h): Unconditionally
	define to yes on Android.

2024-06-04  Po Lu  <luangruo@yahoo.com>

	Correct previous change

	* msdos/sedlibmk.inp (NEXT_AS_FIRST_DIRECTIVE_ENDIAN_H)
	(NEXT_ENDIAN_H): Define to machine/endian.h.

2024-06-04  Po Lu  <luangruo@yahoo.com>

	Fix the DJGPP build

	* config.bat: Update endian.in-h from endian.in.h.

	* msdos/sedlibmk.inp (HAVE_ENDIAN_H)
	(NEXT_AS_FIRST_DIRECTIVE_ENDIAN_H, NEXT_ENDIAN_H, ENDIAN_H)
	(ENDIAN_H_JUST_MISSING_STDINT, GL_GENERATE_ENDIAN_H_CONDITION):
	Define appropriately for DJGPP.

2024-06-04  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline-revert-buffer-restore-visibility): New
	function.
	(outline-minor-mode): Add
	'outline-revert-buffer-restore-visibility' to
	'revert-buffer-restore-functions'.  (bug#69511)

2024-06-04  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

	* lib/endian.c, lib/endian.in.h, m4/endian_h.m4:
	* m4/sys_cdefs_h.m4: New files, copied from Gnulib.

2024-06-04  Paul Eggert  <eggert@cs.ucla.edu>

	lwlib: pacify gcc -Wmissing-variable-declarations

	* lwlib/lwlib.c (lwlib_toolkit_type): Remove unused var.
	* lwlib/xlwmenu.c (submenu_destroyed): Now static.
	* src/xmenu.c (widget_id_tick): Declare extern, as a FIXME.

2024-06-04  Jim Porter  <jporterbugs@gmail.com>

	Check for a real process when trying to find password prompts in
	Eshell

	* lisp/eshell/esh-mode.el (eshell-watch-for-password-prompt): Use
	'eshell-head-process'.

2024-06-04  Jim Porter  <jporterbugs@gmail.com>

	Add an "Interaction" chapter to the Eshell manual

	* doc/misc/eshell.texi (Interaction): New chapter.
	(Completion, History): Move into "Interaction" and add key
	indexing.
	(Key rebinding): Add key indexing.
	(Command Index): Add this index.

2024-06-04  Po Lu  <luangruo@yahoo.com>

	Provide additional Android metadata

	* java/AndroidManifest.xml.in: Enable preserving user data beyond
	uninstallation, restarting activities without persisting state,
	increase maximum number of simultaneously open activities, and
	provide a sensible category.

2024-06-04  Po Lu  <luangruo@yahoo.com>

	Enable downgrading between this and future releases of Emacs

	* java/AndroidManifest.xml.in: Fix `versionCode' at 30.

2024-06-03  Juri Linkov  <juri@linkov.net>

	Move revert-buffer-restore-functions use from buff-menu.el to
	outline.el

	* lisp/buff-menu.el (Buffer-menu-mode): Remove
	revert-buffer-restore-functions with handling of
	outline-minor-mode and move it to outline-minor-mode.

	* lisp/outline.el (outline-minor-mode): Add
	revert-buffer-restore-functions to call
	outline-minor-mode-highlight-buffer after reverting the buffer
	with outline-minor-mode and outline-minor-mode-highlight where
	font-lock can't be used to update highlighting.

2024-06-03  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in 'try_window_id'

	* src/xdisp.c (try_window_id): Avoid assertions in
	'find_first_unchanged_at_end_row' due to 'init_iterator' freeing
	all the realized faces.  (Bug#71274)

2024-06-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	pcase.el (\`): Try and handle large patterns better

	Large backquote patterns tend to lead to very large and deeply
	nested expansions, but they also tend to contain a lot of
	"constant" subpatterns that can be compiled to quote patterns.
	This patch does just that.  See discussion at
	https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg01140.html

	* lisp/emacs-lisp/pcase.el (pcase--split-pred): Improve the
	handling of pred-vs-quote so it also works with quoted objects
	like cons cells, vectors, and strings.  Simplify the
	`pcase--mutually-exclusive-p' branch accordingly.
	(pcase--expand-\`): New function, extracted from the \` pcase
	macro.  Make it recurse internally, and optimize backquote
	patterns to `quote' patterns where possible.
	(\`): Use it.

	* test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-vectors): Add
	tests that were broken by a more naive version of the
	optimization.
	(pcase-tests-quote-optimization): New test.

2024-06-03  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes and assertions while handling SIGWINCH

	* src/dispnew.c (build_frame_matrix_from_leaf_window)
	(window_to_frame_vpos): Avoid assertion violations when we have an
	unhandled SIGWINCH.
	(frame_size_change_delayed): New function.
	* src/dispextern.h (frame_size_change_delayed): Add prototype.
	* src/cm.c (cmcheckmagic): Don't check magicwrap if we have an
	unhandled SIGWINCH.  (Bug#71289)

2024-06-03  Juri Linkov  <juri@linkov.net>

	New commands to show/hide outlines by regexp (bug#49731)

	* lisp/outline.el (outline-mode-prefix-map): Bind "/ s" to
	'outline-show-by-heading-regexp', and "/ h" to
	'outline-hide-by-heading-regexp'.
	(outline-show-by-heading-regexp)
	(outline-hide-by-heading-regexp): New commands.
	(outline-hidden-headings-regexp): New helper function.

2024-06-03  Juri Linkov  <juri@linkov.net>

	New variable 'revert-buffer-restore-functions' (bug#69511)

	* doc/lispref/backups.texi (Reverting): Add documentation for
	'revert-buffer-restore-functions'.

	* lisp/files.el (revert-buffer-restore-functions): New variable.
	(revert-buffer-restore-read-only): New function.
	(revert-buffer): Use 'revert-buffer-restore-functions' with
	the default value 'revert-buffer-restore-read-only' (bug#69511).

	* lisp/buff-menu.el (Buffer-menu-mode): Add hook
	'revert-buffer-restore-functions' to restore outline-minor-mode
	highlighting.

2024-06-03  Troy Brown  <brownts@troybrown.dev>  (tiny change)

	Support ada-ts-mode, gpr-mode and gpr-ts-mode in Eglot

	* lisp/progmodes/eglot.el (eglot-server-programs): Add
	ada-ts-mode, gpr-mode and gpr-ts-mode.

2024-06-03  Andrea Corallo  <acorallo@gnu.org>

	Add 'message' to 'comp-primitive-type-specifiers'

	* lisp/emacs-lisp/comp-common.el (comp-primitive-type-specifiers):
	Add message.

2024-06-03  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp.el (native-compile): Type declare.

2024-06-03  Mattias Engdegård  <mattiase@acm.org>

	Revert "Add support for Rust compilation messages"

	This reverts commit 2e862f81a355435fb7e837ffebee2f657c26ff23.
	It had several problems; see bug#70794.

2024-06-03  Robert Pluim  <rpluim@gmail.com>

	Improve key binding documentation.

	* doc/emacs/custom.texi (Init Rebinding): Explain how to bind a
	key to a string and how to use non-ASCII characters.
	* lisp/keymap.el (keymap-global-set, keymap-local-set): Mention
	'key-description'.

2024-06-03  Robert Pluim  <rpluim@gmail.com>

	Add common pairs to defcustom for electric-quote-chars

	* lisp/electric.el (electric--print-list-of-chars): New function
	to display chars as chars instead of integers in a custom widget.
	(electric-char-pair): New widget for displaying a pair of
	characters.
	(electric-quote-chars-pairs): New widget.  Contains presets for
	common combinations of left/right quotation characters
	(electric-quote-chars): Update to use
	'electric-quote-chars-pairs'.

	* etc/NEWS: Announce the change.

2024-06-03  Po Lu  <luangruo@yahoo.com>

	* lisp/image.el (create-image): Remove supererogatory instances of
	pcase.  Recognize new `lambda' values and refrain from specifying
	a default transform-smoothing when it is returned.
	(image--default-smoothing): Return lambda if scaling is default.

	* lisp/tool-bar.el (tool-bar--image-expression): Revert this
	portion of last change.

2024-06-03  Robert Pluim  <rpluim@gmail.com>

	Add another iso-transl entry for Euro character

	* lisp/international/iso-transl.el (iso-transl-char-map): Add 'C-x 8 E'
	to align with the other currency characters.

	* etc/NEWS: Announce it.

2024-06-03  Robert Pluim  <rpluim@gmail.com>

	Improve support for entering quotation marks

	* lisp/international/iso-transl.el (iso-transl-char-map): Add
	entries for "low" single and double quotation marks.
	(iso-transl-language-alist): Add convenient support for the
	official German quoting style to the German language entry. It
	uses "low" double quotes on the left, and *left* double quotes on
	the right.  Add support for single guillemets to the French
	language entry.
	* lisp/leim/quail/latin-post.el ("latin-postfix"): Add entries for
	single, double and "low" Unicode quotation marks.  Add entries for
	single guillemets.
	* lisp/leim/quail/latin-pre.el ("latin-prefix"): And here.

	* etc/NEWS: Announce the changes.  (Bug#70984)

2024-06-03  Michael Albinus  <michael.albinus@gmx.de>

	Skip immature file notification tests

	* test/lisp/filenotify-tests.el (file-notify--deftest-remote):
	Skip with "gio" library.  It is immature.

2024-06-03  Po Lu  <luangruo@yahoo.com>

	Maintain relationship between tool bar image and default font
	width.

	* doc/lispref/display.texi (Image Descriptors): Document new value
	of QCscale.

	* lisp/cus-start.el (standard) <image-scaling-factor>: New
	definition.

	* lisp/image.el (image-scaling-factor): Move to C.
	(create-image): Provide `default' as the default scaling factor.
	(image--default-smoothing): Accept non-integer scaling factors.
	(image-compute-scaling-factor): Document that this function is no
	longer invoked by Emacs.

	* lisp/tool-bar.el (tool-bar--image-expression): Disable transform
	smoothing for tool-bar icons.

	* src/dispextern.h (clear_image_cache): New definition.

	* src/frame.c (gui_set_font): Clear such image cache entries as
	derive their scales from the default font width.

	* src/image.c (clear_image_cache): Export function.
	(compute_image_size): Implement `default' by reading
	Vimage_scaling_factor and/or computing a scale factor from the
	frame's column width, as the case may be.  New argument F.  All
	callers changed.
	(syms_of_image) <Vimage_scaling_factor>: Move from image.el.

2024-06-03  Yuan Fu  <casouri@gmail.com>

	Use parser notifier to set parser ranges

	This is a continuation from an earlier commit where I added
	treesit-parser-changed-ranges and friends.  Dmitry raised an
	concern about the edge case where the parser re-parses multiple
	times before treesit--pre-redisplay has a chance to run and
	process changed ranges.

	Instead of making treesit-parser-changed-ranges DTRT and become
	more complicated, it's agreed that using parser notifier is a
	better solution (and treesit-parser-changed-ranges can probably be
	removed).

	So, I took out the code that does the work from
	treesit--pre-redisplay and put them into
	treesit--font-lock-mark-ranges-to-fontify.  This function will be
	called on each parser re-parse.  And in treesit--pre-redisplay, to
	ensure that treesit--f-l-m-r-to-f gets called, we force the
	primary parser to re-parse.

	I also added a new variable that major modes need to set,
	treesit-primary-parser.  I also added code that makes Emacs guess
	the primary parser if that variable isn't set.

	Documentation for treesit-primary-parser will come later.

	For further reference, the message id for the message that
	prompted this change is
	<dc94733b-df75-446c-980e-1c8ea65826cf@gutov.dev>.

	* lisp/treesit.el (treesit-primary-parser): New variable.
	(treesit--font-lock-mark-ranges-to-fontify): New function.
	(treesit--guess-primary-parser): New function.
	(treesit--pre-redisplay): Extract out.
	(treesit--pre-syntax-ppss): Add comments.
	(treesit-major-mode-setup): Guess and set treesit-primary-parser;
	add treesit--font-lock-mark-ranges-to-fontify as a notifier to the
	primary parser.

2024-06-02  Michael Albinus  <michael.albinus@gmx.de>

	New user option 'shell-history-file-name'

	* doc/emacs/misc.texi (Shell Ring): Explain
	shell-history-file-name.

	* doc/misc/tramp.texi (Inline methods): Be more specific with
	containers.
	(Remote processes): New subsection "Managing remote shell
	history".  Explain shell-history-file-name.
	(Frequently Asked Questions): Add items to Tramp speedup.  Remove
	entry about history file.

	* etc/NEWS: New user option 'shell-history-file-name'.

	* lisp/shell.el (shell-history-file-name): New defcustom.
	(shell-mode): Use it.  (Bug#71049)

2024-06-02  Michael Albinus  <michael.albinus@gmx.de>

	Fix last change

	* lisp/net/tramp.el (tramp-remote-path): Add "/opt/homebrew/bin"
	and "/opt/homebrew/sbin".

2024-06-02  Michael Albinus  <michael.albinus@gmx.de>

	Fix bug#71235

	* lisp/dired.el (dired-insert-directory): Fix remote case.

	* lisp/net/tramp.el (tramp-remote-path): Add "/opt/homebrew/bin".

2024-06-02  Spencer Baugh  <sbaugh@janestreet.com>

	In rgrep, check matching files before excluding files

	There are a lot of excluding globs, and checking them all is
	expensive.  The files glob (i.e. the glob for files we actually
	want) is usually just one or two entries, so it's quite fast to
	check.

	If find checks the files glob first and then the excluding glob,
	it has to do much less checking (since the files glob will
	substantially narrow down the set of files on its own), and find
	performance is much better.

	In my benchmarking, this takes (rgrep "foo" "*.el"
	"~/src/emacs/trunk/") from ~410ms to ~130ms.

	Further optimizations are possible now that the ignores and
	matched files are in the same <F> argument which can be rearranged
	more easily without compatibility issues; I'll do those
	optimizations in later commits.

	* lisp/progmodes/grep.el (rgrep-find-ignores-in-<f>): Add.
	* lisp/progmodes/grep.el (rgrep-default-command): Check
	rgrep-find-ignores-in-<f> and move the excluded files glob to part
	of the "files" argument.  (Bug#71179)

2024-06-02  Po Lu  <luangruo@yahoo.com>

	Trim redundancies from EmacsTileObject

	* java/org/gnu/emacs/EmacsTileObject.java (EmacsTileObject)
	<colorFilter>: Delete unused field.
	<paint>: Qualify as `static'.

2024-06-02  Po Lu  <luangruo@yahoo.com>

	Document a GDK misdesign interfering with touch screens and menus

	* etc/PROBLEMS (Runtime problems specific to PGTK): Document a
	misdesign preventing menus from being displayed in response to
	touch screen events.

2024-06-02  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Make comment-indent-new-line conform better to CC Mode (bug#71225)

	* lisp/progmodes/c-ts-common.el
	(c-ts-common-comment-indent-new-line): Single line comment and
	block comment now behave more like the c-indent-new-comment-line.

2024-06-02  Elias G. Perez  <eg642616@gmail.com>

	Stipple support for MS Windows (bug#71159)

	* src/w32term.c (w32_fill_stipple_pattern): New function.
	(w32_draw_glyph_string_bg_rect w32_draw_stretch_glyph_string)
	(w32_draw_glyph_string_background): Use new stipple function.
	* src/w32term.h (w32_bitmap_record): Add stipple value.
	* src/image.c (image_create_bitmap_from_data): Create stipple
	bitmap.
	(image_create_bitmap_from_file): Add support for pixmap and create
	stipple bitmap.
	(free_bitmap_record): Release stipple.

	* etc/NEWS: Announce support for stipples in MS-Windows.

2024-06-02  Alex Bochannek  <alex@bochannek.com>

	Add new keyboard macro counter functions (bug#61549)

	Advanced keyboard macro counter commands for register integration
	and conditional macro termination
	* lisp/kmacro.el (kmacro-keymap)
	(kmacro-reg-load-counter, kmacro-reg-save-counter)
	(kmacro-reg-add-counter-equal, kmacro-reg-add-counter-less)
	(kmacro-reg-add-counter-greater, kmacro-reg-add-counter)
	(kmacro-quit-counter-equal, kmacro-quit-counter-less)
	(kmacro-quit-counter-greater, kmacro-quit-counter): Add advanced
	keyboard macro counter commands to kmacro keymap.  Implement
	advanced keyboard macro counter commands.

	* test/lisp/kmacro-tests.el (kmacro-tests-test-reg-load)
	(kmacro-tests-test-reg-save)
	(kmacro-tests-test-reg-add-counter-equal-01)
	(kmacro-tests-test-reg-add-counter-equal-02)
	(kmacro-tests-test-reg-add-counter-equal-03)
	(kmacro-tests-test-reg-add-counter-equal-04)
	(kmacro-tests-test-reg-add-counter-less)
	(kmacro-tests-test-reg-add-counter-greater)
	(kmacro-tests-test-quit-counter-equal-01)
	(kmacro-tests-test-quit-counter-equal-02)
	(kmacro-tests-test-quit-counter-equal-03)
	(kmacro-tests-test-quit-counter-equal-04)
	(kmacro-tests-test-quit-counter-less)
	(kmacro-tests-test-quit-counter-greater): Implement unit tests for
	advanced keyboard macro counter commands.

	* etc/NEWS: Document advanced keyboard macro counter commands.

2024-06-01  Gerd Möllmann  <gerd@gnu.org>

	Fix LLDB frame-format for optional column number info

	* lisp/progmodes/gud.el (gud--lldb-python-init-string): In the
	!gud part, make column number info optional by putting it in a
	scope.

2024-06-01  Eli Zaretskii  <eliz@gnu.org>

	Improve error handling in
	'image-dired-thumbnail-set-image-description'.

	* lisp/image/image-dired-external.el
	(image-dired-thumbnail-set-image-description): Show more detailed
	error messages in case of failure.

2024-06-01  Michael Albinus  <michael.albinus@gmx.de>

	Minor Tramp changes

	* lisp/net/tramp-adb.el:
	* lisp/net/tramp-container.el: Add myself as maintainer.

	* lisp/net/tramp-compat.el (connection-local-default-application):
	Define if not bound.
	(tramp-compat-connection-local-p)
	(tramp-compat-connection-local-value): Use it.

2024-06-01  Dmitry Gutov  <dmitry@gutov.dev>

	shell-command-mode: New major mode for async-shell-command

	* etc/NEWS: Mention the additions.

	* lisp/shell.el (shell-command-mode): New major mode.  (bug#71049)

	* lisp/simple.el (async-shell-command-mode): New variable, with
	default value pointing to that mode.
	(shell-command): Refer to it here.
	(async-shell-command): Update docstring.

	* lisp/net/tramp.el (tramp-handle-shell-command): Use the new
	variable when available.

2024-06-01  Dmitry Gutov  <dmitry@gutov.dev>

	go-ts-mode: Highlight variadic function parameter names

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
	Add matcher for variadic parameter declarations.

2024-06-01  Noah Peart  <noah.v.peart@gmail.com>

	Add font-locking for variables in go-ts-mode range clauses
	(bug#71209)

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
	Add font-locking rule for variable names in range clauses.
	* test/lisp/progmodes/go-ts-mode-tests.el (go-ts-test-font-lock):
	Add font-locking test for go-ts-mode.
	* test/lisp/progmodes/go-ts-mode-resources/font-lock.go: New file
	for go-ts-mode font-locking tests.

2024-06-01  Eli Zaretskii  <eliz@gnu.org>

	Fix misc problems with thumbnails on MS-Windows

	* lisp/image/image-dired-external.el (image-dired-pngcrush-thumb):
	Fix deletion of intermediate file.
	(image-dired-cmd-pngcrush-options)
	(image-dired-cmd-create-standard-thumbnail-options): Use %u for
	file:// URI.
	(image-dired--file-URI): New function.
	(image-dired-create-thumb-1, image-dired-create-thumb-2)
	(image-dired-set-exif-data): Use it to generate correct URI on
	MS-Windows.

	* src/w32image.c (Fw32image_create_thumbnail): Copy the file names
	before mirroring their slashes.

2024-06-01  Po Lu  <luangruo@yahoo.com>

	Improve touch-screen support on PGTK

	* lisp/touch-screen.el (touch-screen-translate-touch): Do not
	prepend posn if the symbol is such that keyboard.c will do so
	immediately after returning.

	* src/pgtkterm.c (pgtk_toolkit_position): Remove mistakenly ported
	code.
	(pgtk_create_terminal): Remove toolkit_position hook.
	(motion_notify_event, button_event): Ignore emulated pointer
	events, and apply an additional test to circumvent a GDK
	oversight.
	(touch_event_cb): Correct return type, and provide touch sequence
	initialization and removal events as `last_click_event's.

2024-06-01  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	bf50aa38f9d Improve documentation of case-conversion commands
	225b426f256 ; Fix typos

2024-06-01  Eli Zaretskii  <eliz@gnu.org>

	Improve thumbnail generation on MS-Windows

	* lisp/image/image-dired-external.el (image-dired-create-thumb-2):
	Optimize PNG thumbnails.
	(image-dired-pngnq-thumb, image-dired-pngcrush-thumb)
	(image-dired-optipng-thumb): On MS-Windows, invoke the PNG
	optimization programs synchronously.
	(image-dired-cmd-create-thumbnail-program)
	(image-dired-cmd-create-thumbnail-options)
	(image-dired-cmd-pngcrush-program)
	(image-dired-cmd-optipng-program)
	(image-dired-cmd-create-standard-thumbnail-options)
	(image-dired-cmd-rotate-original-program)
	(image-dired-temp-rotate-image-file)
	(image-dired-cmd-write-exif-data-program)
	(image-dired-cmd-write-exif-data-options): Doc fixes.
	(image-dired-thumb-queue-run): Don't allow more than 30 concurrent
	thumbnail-creation jobs on MS-Windows.

2024-06-01  Po Lu  <luangruo@yahoo.com>

	Implement touch screen events on PGTK

	* etc/NEWS: Better qualify entry for touch screen events.

	* lisp/loadup.el (featurep 'pgtk): Load touch-screen.el.

	* lisp/touch-screen.el: Revise list of systems where touch screen
	events are reported.

	* src/gtkutil.c (xg_create_frame_widgets): Request GDK_TOUCH_MASK.

	* src/pgtkfns.c (pgtk_frame_parm_handlers, tip_window): Pacify
	compiler warning.

	* src/pgtkterm.c (pgtk_free_frame_resources): Free touch points
	linked to this frame.
	(pgtk_link_touch_point, pgtk_unlink_touch_point)
	(pgtk_unlink_touch_points, pgtk_find_touch_point): New functions,
	ported from X.
	(touch_event_cb): New event callback.
	(pgtk_set_event_handler): Register `touch_event_cb' as handler for
	`touch-event'.
	(pgtk_delete_display): Free residual touch points on this display.

	* src/pgtkterm.h (struct pgtk_touch_point): New structure.
	(struct pgtk_display_info) <touchpoints>: New field.

2024-06-01  Po Lu  <luangruo@yahoo.com>

	On X, avoid reporting unrepresentable touch IDs to Lisp

	* src/xterm.c (xi_link_touch_point): Assign a Lisp-representable
	identifier to the new touch point and return the same.
	(xi_unlink_touch_point): New arg LOCAL_DETAIL.  Return such an
	identifier if there is a matching touch point record.
	(handle_one_xevent): Adjust as is proper.

	* src/xterm.h (struct xi_touch_point_t) <local_detail>: New field.
	Reorder fields for alignment.

2024-05-31  Michael Albinus  <michael.albinus@gmx.de>

	Make Tramp error handling more precise

	* lisp/net/tramp-container.el (tramp-actions-copy-out-of-band)
	(tramp-container-no-container-regexp): Remove.  Do not register
	them.
	(tramp-distrobox-no-container-regexp): New defcustom.
	(tramp-enable-distrobox-method): Add it to
	`tramp-actions-before-shell'.  (Bug#71200)

2024-05-31  Mattias Engdegård  <mattiase@acm.org>

	Remove unused Fget_file_char

	* src/lread.c (Fget_file_char): Remove.  It is unused,
	undocumented and we actively tell users not to call it.

2024-05-31  Juri Linkov  <juri@linkov.net>

	Limit matches of treesit-thing-settings in js-ts-mode (bug#71244)

	* lisp/progmodes/js.el (js-ts-mode): Use 'js--regexp-opt-symbol'
	for 'js--treesit-sexp-nodes', 'js--treesit-sentence-nodes' and
	'text' that wraps the regexp in \_< and \_> delimiters to avoid
	false positives such as "expression" used for
	"expression_statement".
	(js--treesit-sexp-nodes): Add more useful nodes
	"parenthesized_expression", "formal_parameters",
	"statement_block", "object", "object_pattern", "named_imports",
	"class_body".

2024-05-31  Juri Linkov  <juri@linkov.net>

	* lisp/man.el (Man-getpage-in-background): Don't set buffer before
	display.  Call 'Man-notify-when-ready' before switching the
	current buffer.  This will avoid possible messing with the current
	buffer by 'Man-notify-when-ready' where display-buffer functions
	might change the current buffer, thus breaking the subsequent
	setting of buffer-local variables like Man-arguments in the wrong
	buffer.  (bug#71271)

2024-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>

	track-changes.el: Keep a bit more info when logging an error

	* lisp/emacs-lisp/track-changes.el
	(track-changes--recover-from-error): Add arg INFO.
	(track-changes-fetch, track-changes--after): Use it to preserve a
	bit more information about errors.

2024-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>

	ad-activate-advised-definition: Use proper function objects

	* lisp/emacs-lisp/advice.el (ad-activate-advised-definition): Use
	interpreted functions rather than lambda lists.

2024-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>

	server.el: Avoid nested runs of process filters (bug#71223)

	In case we have a "storm" of emacsclient requests coming at the
	same time, our process filters ended up running nested within each
	other, eating up the stack and causing errors.  Try and be more
	careful with our use of `sit-for` in the process filter, and make
	sure our process filters are run one at a time.

	* lisp/server.el (server--message-sit-for): New function.
	(server--process-filter-1): New function, extracted from
	`server-process-filter'.  Use `server--message-sit-for' to display
	the messages and use `run-with-timer' to delay the
	`delete-process'.
	(server--process-filter-pending, server--process-filter-active):
	New vars.
	(server--process-filter-all-pending): New function.
	(server-process-filter): Use them.

2024-05-30  Michael Albinus  <michael.albinus@gmx.de>

	Fix job control in remote shell

	* lisp/net/tramp-sh.el (tramp-methos) <scp, ssh>: Adapt
	`tramp-direct-async' argument.  (Bug#71259)

2024-05-30  Sean Whitton  <spwhitton@spwhitton.name>

	universal-argument--preserve: Preserve last-prefix-arg

	* lisp/simple.el (universal-argument--preserve): Set
	current-prefix-arg to last-prefix-arg in order to preserve
	last-prefix-arg, too.  (bug#71277)

2024-05-30  Eli Zaretskii  <eliz@gnu.org>

	Support built-in thumbnail creation on MS-Windows

	* src/w32image.c (get_encoder_clsid, Fw32image_create_thumbnail)
	(globals_of_w32image, syms_of_w32image): New functions.
	* src/emacs.c (main): Call 'syms_of_w32image' and
	'globals_of_w32image'.
	* src/w32term.h (syms_of_w32image, globals_of_w32image): Add
	prototypes.

	* lisp/image/image-dired.el
	(image-dired-thumbnail-display-external): Add a fallback for
	MS-Windows.
	* lisp/image/image-dired-external.el
	(image-dired--probe-thumbnail-cmd): New function.
	(image-dired--check-executable-exists): Call it to verify that
	"convert" is indeed an Imagemagick program.  New argument FUNC
	specifies a function that can be used as an alternative to running
	EXECUTABLE.
	(image-dired-create-thumb-1): Don't call
	'image-dired--check-executable-exists' here, ...
	(image-dired-thumb-queue-run): ...call it here, with
	'w32image-create-thumbnail' as the alternative function.  If on
	MS-Windows and no "convert" command, call
	'image-dired-create-thumb-2' instead.
	(image-dired-create-thumb-2): New function.

	* etc/NEWS: Announce the thumbnail support.

2024-05-30  Po Lu  <luangruo@yahoo.com>

	Don't set text scale to fractional values in touch-screen-pinch

	* lisp/touch-screen.el (touch-screen-pinch): Take floor of
	computed scale.

2024-05-30  Alan Mackenzie  <acm@muc.de>

	In normal-mode, make c-mode call c-mode when CC Mode is loaded

	As regards which mode normal-mode calls for the symbols c-mode,
	etc., the first of the following which applies holds:
	 (i) If the user has made a pertinent entry in
	major-mode-remap-alist, this is used.
	 (ii) If CC Mode has been loaded, c-mode is called.
	 (iii) If library c-ts-mode has been loaded, c-ts-mode is
	called.
	 (iv) Otherwise c-mode is called.

	* lisp/progmodes/cc-mode.el (top level): Add entries to
	major-mode-remap-defaults to implement the above.

2024-05-30  Jakub Ječmínek  <kuba@kubajecminek.cz>
	    Alex Bochannek  <alex@bochannek.com>

	Show all date options when adding Gnus scores interactively

	* lisp/gnus/gnus-score.el (gnus-summary-increase-score): Rename
	'char-to-type' variable to 'char-to-types' and bind all
	permissible types for date header.

	* lisp/gnus/gnus-score.el (gnus-summary-score-entry): Provide
	better default values for each scoring type and cast 'match' to
	number only if necessary.

2024-05-30  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp error handling

	* lisp/net/tramp-container.el
	(tramp-container-no-container-regexp): New defcustom.
	(tramp-actions-before-shell, tramp-actions-copy-out-of-band):
	Declare.  Add `tramp-container-no-container-regexp'.  (Bug#71200)

2024-05-30  Juri Linkov  <juri@linkov.net>

	* lisp/dired-aux.el (shell-command-guess-xdg): Check nil xdg-mime.
	(bug#71270)

2024-05-30  Jakub Ječmínek  <kuba@kubajecminek.cz>

	Update TUTORIAL.cs and TUTORIAL.translators

	* etc/tutorials/TUTORIAL.cs: Update TUTORIAL.cs according to its
	English counterpart.
	* etc/tutorials/TUTORIAL.translators: Update maintainer of
	TUTORIAL.cs.

2024-05-30  Jim Porter  <jporterbugs@gmail.com>

	Make Eshell's "which" command extensible

	Since 'eshell-named-command-hook' already makes execution of
	commands extensible, "which" should be too.  This makes sure that
	"which" returns the right result for quoted commands like "/:cat".

	* lisp/eshell/em-alias.el (eshell-aliases-file): Allow it to be
	nil.
	(eshell-read-aliases-list, eshell-write-aliases-list): Check if
	'eshell-aliases-file' is nil.
	(eshell-maybe-replace-by-alias--which): New function...
	(eshell-maybe-replace-by-alias): ... use it.

	* lisp/eshell/esh-cmd.el (eshell-named-command-hook): Update
	docstring.
	(eshell/which): Make extensible.
	(eshell--find-plain-lisp-command, eshell-plain-command--which):
	New functions.
	(eshell-plain-command): Use 'eshell--find-plain-lisp-command'.

	* lisp/eshell/esh-ext.el (eshell-explicit-command--which): New
	function...
	(eshell-explicit-command): ... use it.
	(eshell-quoted-file-command--which): New function...
	(eshell-quoted-file-command): ... use it.
	(eshell-external-command--which): New function.

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/which/plain/eshell-builtin)
	(esh-cmd-test/which/plain/external-program)
	(esh-cmd-test/which/plain/not-found, esh-cmd-test/which/alias)
	(esh-cmd-test/which/explicit)
	(esh-cmd-test/which/explicit/not-found)
	(esh-cmd-test/which/quoted-file)
	(esh-cmd-test/which/quoted-file/not-found): New tests.

	* test/lisp/eshell/eshell-tests-helpers.el
	(with-temp-eshell-settings): Don't load or save aliases.
	(eshell-command-result--match,eshell-command-result--match-explainer)
	(eshell-command-result-match): New functions.

2024-05-29  Stefan Kangas  <stefankangas@gmail.com>

	Use `scheme-mode' for the Guile init file

	* lisp/files.el (auto-mode-alist): Use `scheme-mode' for the Guile
	init file (~/.guile).

2024-05-29  Jim Porter  <jporterbugs@gmail.com>

	Fix calling Eshell scripts outside of Eshell

	* lisp/eshell/em-script.el (eshell-source-file): Make obsolete.
	(eshell--source-file): Adapt from 'eshell-source-file'...
	(eshell-script-initialize, eshell/source, eshell/.): ... use it.
	(eshell-princ-target): New struct.
	(eshell-output-object-to-target, eshell-target-line-oriented-p):
	New implementations for 'eshell-princ-target'.
	(eshell-execute-file, eshell-batch-file): New functions.

	* lisp/eshell/esh-mode.el (eshell-mode): Just warn if we can't
	create the Eshell directory.

	* test/lisp/eshell/em-script-tests.el
	(em-script-test/execute-file):
	(em-script-test/execute-file/args), em-script-test/batch-file):
	New tests.

	* test/lisp/eshell/eshell-tests-helpers.el
	(with-temp-eshell-settings): New function...
	(with-temp-eshell): ... use it.

	* doc/misc/eshell.texi (Control Flow): Update documentation.

	* etc/NEWS: Announce this change.  (bug#70847)

2024-05-29  Jim Porter  <jporterbugs@gmail.com>

	Rework how 'eshell-ensure-newline-p' adds newlines

	This allows for other output targets (see the following commit) to
	be "line-oriented".

	* lisp/eshell/esh-io.el (eshell-ensure-newline-p): Move from
	esh-cmd.el.
	(eshell-target-line-oriented-p, eshell--output-maybe-n)
	(eshell-print-maybe-n, eshell-error-maybe-n)
	(eshell-maybe-output-newline): New functions.

	* lisp/eshell/esh-cmd.el (eshell-lisp-command): Don't print a
	newline in this function directly; instead, use
	'eshell-print-maybe-n' and 'eshell-error-maybe-n'.
	(eshell-ensure-newline-p): Move to esh-io.el.

	* lisp/eshell/em-unix.el (eshell/cat): Remove now-unnecessary
	override of 'eshell-ensure-newline-p'.

2024-05-29  Jim Porter  <jporterbugs@gmail.com>

	Add ability for Eshell virtual targets to handle closing the
	target

	This was documented to work by calling the output function with
	'nil', but that was never actually implemented.  Instead, for
	compatibility, we now support a new (optional) close function.

	* lisp/eshell/esh-io.el (eshell-virtual-targets): Update
	docstring.
	(eshell-generic-target): New struct...
	(eshell-function-target): ... inherit from it, and rename from
	'eshell-virtual-target'.
	(eshell-get-target): Handle already-created
	'eshell-generic-target'.
	(eshell-close-target): Call the target's close function if
	present.

	* test/lisp/eshell/esh-io-tests.el
	(esh-io-test/virtual/device-close): New test.

	* doc/misc/eshell.texi (Redirection): Document the new behavior.

2024-05-29  Jim Porter  <jporterbugs@gmail.com>

	Use 'esh-module-autoload' for Eshell modules' defgroups

	This will let modules define their own, regular autoloads,
	independent of the core Eshell machinery for defining modules.

	* lisp/eshell/em-alias.el (em-alias):
	* lisp/eshell/em-banner.el (em-banner):
	* lisp/eshell/em-basic.el (em-basic):
	* lisp/eshell/em-cmpl.el (em-cmpl):
	* lisp/eshell/em-dirs.el (em-dirs):
	* lisp/eshell/em-elecslash.el (em-elecslash):
	* lisp/eshell/em-extpipe.el:
	* lisp/eshell/em-glob.el (em-glob):
	* lisp/eshell/em-hist.el (em-hist):
	* lisp/eshell/em-ls.el (em-ls):
	* lisp/eshell/em-pred.el (em-pred):
	* lisp/eshell/em-prompt.el (em-prompt):
	* lisp/eshell/em-rebind.el (em-rebind):
	* lisp/eshell/em-script.el (em-script):
	* lisp/eshell/em-smart.el (em-smart):
	* lisp/eshell/em-term.el (em-term):
	* lisp/eshell/em-tramp.el (em-tramp):
	* lisp/eshell/em-unix.el (em-unix):
	* lisp/eshell/em-xtra.el (em-xtra): Use 'esh-module-autoload'.

	* lisp/eshell/esh-module.el ("esh-module-loaddefs"): Load this
	instead of "esh-groups".

	* .gitignore: Change esh-groups.el to esh-module-loaddefs.el

2024-05-29  Jim Porter  <jporterbugs@gmail.com>

	Consolidate Eshell module loading/unloading code

	This also adds the ability to suppress module loading/unloading
	messages, which will be necessary to support running Eshell
	scripts as batch scripts.

	* lisp/eshell/esh-mode.el (eshell-mode): Move module
	loading/initialization to...

	* lisp/eshell/esh-module.el (eshell-load-modules)
	(eshell-initialize-modules): ... here.
	(eshell-module-loading-messages): New option.
	(eshell-module--feature-name): Improve docstring.
	(eshell-unload-modules): Display a real warning if unable to
	unload a module.

	* test/lisp/eshell/eshell-tests-helpers.el (with-temp-eshell)
	(eshell-command-result-equal):
	* test/lisp/eshell/eshell-tests-unload.el (load-eshell): Silence
	Eshell loading messages.

2024-05-29  Juri Linkov  <juri@linkov.net>

	* lisp/imenu.el (imenu-flatten): For prefix use the implicit
	symbol 'prefix'.  Add new choice 'group'.  (bug#70846)
	(imenu--completion-buffer): Use :group-function
	if imenu-flatten is 'group'.
	(imenu--flatten-index-alist): Handle the value 'group' of
	imenu-flatten in a way similar to the value 'annotation'.

2024-05-29  Michael Albinus  <michael.albinus@gmx.de>

	Add Tramp distrobox method

	* doc/misc/tramp.texi (Inline methods) <distrobox>: Add.

	* etc/NEWS: Mention Tramp distrobox method.

	* lisp/net/tramp-container.el (tramp-distrobox-program): New
	defcustom.
	(tramp-distrobox-method): New defconst.
	(tramp-distrobox--completion-function)
	(tramp-enable-distrobox-method): New defuns.  (Bug#71200)
	(tramp-docker-method, tramp-dockercp-method)
	(tramp-podman-method, tramp-podmancp-method)
	(tramp-kubernetes-method, tramp-flatpak-method)
	(tramp-apptainer-method, tramp-nspawn-method): Adapt docstring.

	* test/lisp/net/tramp-tests.el (tramp--test-box-p): Rename from
	`tramp--test-toolbox-p'.  Add distrobox.  Adapt callees.

2024-05-29  Davide Pola  <dpo@sdf.com>

	Rename comp-run.el and comp-cstr.el private functions

	* lisp/emacs-lisp/comp-run.el (native-compile-async-skip-p)
	(comp-async-runnings, comp-effective-async-max-jobs)
	(comp-accept-and-process-async-output, comp-run-async-workers)
	(comp-trampoline-search): rename using '--' separator convention
	for private functions.
	* lisp/emacs-lisp/comp-cstr.el
	(comp-cstr-copy, comp-cstrs-homogeneous, comp-split-pos-neg)
	(comp-normalize-valset, comp-union-valsets)
	(comp-intersection-valsets, comp-normalize-typeset)
	(comp-union-typesets, comp-intersect-two-typesets)
	(comp-intersect-typesets, comp-range-union)
	(comp-range-intersection, comp-range-negation, comp-cstr-add-2)
	(comp-cstr-sub-2, comp-cstr-union-homogeneous-no-range)
	(comp-cstr-union-homogeneous, comp-cstr-union-1-no-mem)
	(comp-cstr-union-1, comp-cstr-union-make)
	(comp-cstr-intersection-make): Likewise.

2024-05-29  Michael Albinus  <michael.albinus@gmx.de>

	Obey tramp-histfile-override in remote direct async processes

	* doc/emacs/custom.texi (Connection Variables): Mention
	`permanent-local' symbol property.

	* lisp/net/tramp-sh.el (tramp-histfile-override): Add
	;;;###tramp-autoload cookie and `permanent-local' symbol property.

	* lisp/net/tramp.el (tramp-handle-make-process): Obey
	`tramp-histfile-override'.  (Bug#71049)

2024-05-29  Eli Zaretskii  <eliz@gnu.org>

	Fix error message from 'insert-file-contents'

	* src/fileio.c (Finsert_file_contents): Consider directories to be
	"regular" files.  (Bug#71258)

2024-05-29  Andrea Corallo  <acorallo@gnu.org>

	Add some documentation for 'help-find-source'

	* doc/emacs/help.texi (Name Help): Add 'help-find-source' entry.
	* etc/NEWS: Likewise.

2024-05-29  Andrea Corallo  <acorallo@gnu.org>

	Add 'help-find-source' and bind it to C-h 4 s

	* lisp/help-fns.el (help-find-source): New function.
	* lisp/help.el (help-map): Bind 'help-find-source' to C-h z.
	(help-for-help): Add 'help-find-source'.

2024-05-29  Eshel Yaron  <me@eshelyaron.com>

	Add a couple of minibuffer completion tests

	Add tests for regressions that followed commit ff3f17ca3cd.

	See discussion here:
	https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00701.html

	* test/lisp/minibuffer-tests.el (completion-cycle)
	(minibuffer-next-completion): New tests.

2024-05-29  Po Lu  <luangruo@yahoo.com>

	Fix unsafe usage of string data on Android

	* src/dired.c (open_directory): Reload name after calling
	maybe_quit, which might invoke GC.

2024-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	Rename `SUBR_NATIVE_COMPILED' to `NATIVE_COMP_FUNCTION'

	Keep the name consistent with the naming used in the ELisp world.

	* src/pdumper.c (dump_object_emacs_ptr, dump_do_fixup):
	* src/eval.c (eval_sub, funcall_general, funcall_lambda):
	* src/alloc.c (CHECK_ALLOCATED_AND_LIVE_SYMBOL, survives_gc_p):
	* src/data.c (Fcl_type_of, Ffset, Fnative_comp_function_p)
	(Fsubr_native_lambda_list, Finteractive_form):
	* src/comp.c (check_comp_unit_relocs):
	* src/bytecode.c (exec_byte_code):

	* src/lisp.h (NATIVE_COMP_FUNCTIONP, NATIVE_COMP_FUNCTION_DYNP):
	Rename from `SUBR_NATIVE_COMPILEDP' and
	`SUBR_NATIVE_COMPILED_DYNP'.  (bug#71123)

2024-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	Redirect calls to `subr-native-elisp-p' to
	`native-comp-function-p'.

	* test/src/comp-tests.el (comp-tests-bootstrap, lambda-return)
	(lambda-return2, free-fun, free-fun2, free-fun-silly-name)
	(speed--1)
	(compile-forms, comp-test-defsubst)
	(primitive-redefine-compile-44221)
	(48029-1, 61917-1, tco, fw-prop-1, pure):
	* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun):
	* lisp/subr.el (subr-primitive-p, primitive-function-p)
	(symbol-file):
	* lisp/help-fns.el (find-lisp-object-file-name):
	* lisp/emacs-lisp/disass.el (disassemble-internal):
	* lisp/emacs-lisp/comp.el (comp--call-optim-form-call):
	* lisp/emacs-lisp/comp-run.el (comp-warn-primitives):
	* lisp/emacs-lisp/comp-common.el (comp-function-type-spec):
	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns):
	* lisp/emacs-lisp/bytecomp.el (<trailer>): Rename
	`subr-native-elisp-p' to `native-comp-function-p'.

2024-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	Rename `subr-native-elisp' to `native-comp-function'

	Now that this type name is displayed in *Help*, it is more
	important to use a name that is less weird for the unsuspecting
	user.

	* lisp/emacs-lisp/cl-preloaded.el (cl-functionp): Adjust to new
	name of native function's type.
	(subr-native-elisp-p): Redefine as an obsolete alias.
	(native-comp-function): Rename from `subr-native-elisp'.

	* src/data.c (Fcl_type_of): Return `Qnative_comp_function' i.s.o
	`Qsubr_native_elisp'.
	(Fnative_comp_function_p): Rename from `Fsubr_native_elisp_p'.
	(syms_of_data): Adjust accordingly.

	* src/doc.c (Fsubr_documentation): Use new
	`Fnative_comp_function_p' name.  (bug#71123)

2024-05-29  Stefan Kangas  <stefankangas@gmail.com>

	Mention direction when resizing a window fails

	* lisp/window.el (enlarge-window, shrink-window): When an attempt
	to resize a window fails, also mention the direction of the
	operation (i.e., horizontally or vertically).

2024-05-28  Jim Porter  <jporterbugs@gmail.com>

	Fix adding to history via 'eshell-command'

	* lisp/eshell/eshell.el (eshell-read-command): Don't handle
	history here.

	* lisp/eshell/em-hist.el (eshell-hist-initialize): Properly set up
	history for minibuffer.
	(eshell-add-command-to-history): Immediately save history.

2024-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	esh-mode.el: Refrain from hiding buffer modifications

	We have not been able to discover why these functions let-bound
	`inhibit-modification-hooks', but these let-bindings are undesired
	effects on other modes such as `diff-mode' which need to keep
	track of buffer modifications.  Let's remove those let-bindings
	and hope for the best.

	* lisp/eshell/esh-mode.el (eshell-send-input)
	(eshell-interactive-filter): Don't bind
	`inhibit-modification-hooks'.  (bug#70966)

2024-05-28  Alan Mackenzie  <acm@muc.de>

	Correct and clarify two doc strings in lisp/files.el

	* lisp/files.el (major-mode-remap-alist)
	(major-mode-remap-defaults): Correct and clarify the doc strings.

2024-05-28  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Use the current face foreground for read-passwd icons

	* etc/images/conceal.svg:
	* etc/images/reveal.svg: Remove 'fill' attribute so that the
	current face's background is applied: this helps the icon's SVG
	representation remain legible regardless of how the mode-line is
	themed.  (bug#71213)

2024-05-28  Juri Linkov  <juri@linkov.net>

	* lisp/image-mode.el (image-transform-fill-window): New command.
	(image-mode-menu): Add image-transform-fill-window to the menu.
	(bug#69565)

2024-05-28  Juri Linkov  <juri@linkov.net>

	Provide a list of default values for M-n of project-find-file

	* lisp/progmodes/project.el (project-find-file)
	(project-or-external-find-file): Provide a list of suggested
	filenames for the first arg of project-find-file-in.  Use
	buffer-file-name first to make it more predictable for M-n.
	(project--read-file-cpd-relative): Handle mb-default as a list.
	(bug#70996)

2024-05-28  Eli Zaretskii  <eliz@gnu.org>

	Avoid rare crashes in 'uncache_face'

	* src/xfaces.c (realize_face): Prevent rare crashes in
	'uncache_face' because 'former_face' is NULL (i.e. the face
	corresponding to 'former_face_id' is no longer cached).
	(Bug#71243)

2024-05-28  Mattias Engdegård  <mattiase@acm.org>

	Use same Python binary for test as in python mode (bug#70815)

	* test/lisp/progmodes/python-tests.el
	(python-tests-get-shell-interpreter): Try Python executable names
	in the same order as we do for `python-shell-interpreter', so that
	we run the test with the one is most likely to be used.

2024-05-28  Michael Albinus  <michael.albinus@gmx.de>

	Fix tar-mode-test-tar-extract-zip-and-gz

	* test/lisp/tar-mode-tests.el
	(tar-mode-test-tar-extract-zip-and-gz): Check also for "unzip"
	executable.

2024-05-28  F. Jason Park  <jp@neverwas.me>

	Fix date-stamp regression in erc-fill-wrap

	* lisp/erc/erc-fill.el (erc-fill-wrap, erc-fill-wrap-enable)
	(erc-fill-wrap-disable): Add and remove
	`erc-stamp--insert-date-hook' member.
	(erc-fill--wrap-continued-predicate): Add function-valued variable
	for modules to influence `erc-fill--wrap-continued-message-p',
	which was originally introduced as part of bug#60936.
	(erc-fill--wrap-rejigger-last-message): Move toward beginning of
	file.
	(erc-fill--wrap-unmerge-on-date-stamp): New function.
	(erc-fill-wrap): Use `erc-fill--wrap-continued-predicate'.
	Restore recently deleted hunk that reset the wrap marker upon
	seeing a date stamp.
	* test/lisp/erc/erc-scenarios-fill-wrap.el: New file.
	* test/lisp/erc/resources/fill/wrap/merge-datestamp.eld: New file.

2024-05-28  F. Jason Park  <jp@neverwas.me>

	Add ERC module querypoll as monitor placeholder

	* doc/misc/erc.texi: Add module `querypoll' to list of built-in
	modules'.
	* etc/ERC-NEWS: Mention new module `querypoll', and explain new
	default behavior for deriving query membership from that of
	channels.
	* lisp/erc/erc-goodies.el (erc--querypoll-ring)
	(erc--querypoll-timer): New variables.
	(erc-querypoll-exclude-regexp): New option.
	(erc-querypoll-mode, erc-querypoll-enable, erc-querypoll-disable):
	New module for polling with "WHO" requests for the presence of
	otherwise "untracked" query targets.
	(erc-querypoll-period-params): New variable.
	(erc--querypoll-compute-period)
	(erc--querypoll-target-in-chan-p)
	(erc--querypoll-get-length)
	(erc--querypoll-get-next)
	(erc--querypoll-subscribe)
	(erc--querypoll-on-352)
	(erc--querypoll-send): New functions.
	* lisp/erc/erc-speedbar.el (erc-speedbar-buttons): Dispatch
	queries as if they were channels when `erc--queries-current-p'
	returns non-nil.  That is, show head counts alongside query
	targets as users come and go.
	(erc-speedbar-insert-target): Defer to `erc--queries-current-p' to
	know whether to show a query in the style of a channel.  This
	affects both the plain speedbar integration as well as the
	`nickbar' module added for bug#63595.  Also, use question marks
	rather than the empty string for query bullets, so that query and
	channel items are aligned vertically.
	* lisp/erc/erc.el (erc--queries-current-p): New function.
	* test/lisp/erc/erc-goodies-tests.el
	(erc--querypoll-compute-period)
	(erc--querypoll-target-in-chan-p)
	(erc--querypoll-get-length)
	(erc--querypoll-get-next): New tests.  (Bug#70928)

2024-05-28  F. Jason Park  <jp@neverwas.me>

	Retain client's own user in erc-server-users

	* lisp/erc/erc-backend.el (erc-server-KICK, erc-server-PART): Use new
	function `erc--remove-channel-user-but' instead of
	`erc-remove-channel-users'.  In `erc-server-KICK', remove sender's
	channel membership data after displaying the message so that nicks are
	buttonized.  Return nil.  In `erc-server-PART', don't run
	`erc-remove-channel-member' when the client itself has parted.
	* lisp/erc/erc-common.el (erc--remove-user-from-targets): New
	function.
	* lisp/erc/erc.el (erc-remove-server-user): Redo doc string.
	(erc--forget-server-user-function): New variable.
	(erc--forget-server-user): New function.
	(erc--forget-server-user-ignoring-queries): New function, the default
	value of `erc--forget-server-user-function'.
	(erc-remove-channel-user): Defer to `erc--forget-server-user-function'
	to do the actual removal.
	(erc-remove-user): Defer to `erc--remove-user-from-targets'.
	(erc-remove-channel-users): Redo doc
	(erc--remove-channel-users-but): New function.  The only use case thus
	far is for protecting the client's own `erc-server-users' entry from
	removal when draining `erc-channel-members' tables after the client
	leaves a target buffer or quits.
	(erc-kill-buffer-function): Don't remove own user from
	`erc-server-users'.
	* test/lisp/erc/erc-scenarios-base-renick.el
	(erc-scenarios-base-renick-queries-solo): Assert own client parting
	its only channel doesn't remove own user from server.  Also assert
	that another user parting their only channel removes them from all
	queries.  (Bug#70928)

2024-05-28  F. Jason Park  <jp@neverwas.me>

	Tether query rolls to channel membership in ERC

	* lisp/erc/erc-backend.el (erc-server-JOIN): Update query
	membership via `erc--ensure-query-member' when someone else joins
	a channel.
	(erc-server-NICK): Update query membership via
	`erc--ensure-query-member' after someone else changes their nick.
	(erc-server-PRIVMSG): After printing a query message from some
	other person, remove their nick's data from the query buffer's
	user table if they're "untracked," i.e., not a member of a
	channel.
	(erc-server-263, erc-server-263-functions): New function and
	variable, a default response handler and hook for "RPL_TRYAGAIN",
	which servers send for things like rejecting "WHO" and "WHOX"
	responses due to rate limiting.
	(erc-server-311): Fix call to `erc-update-user-nick' so the
	userhost login component is no longer supplied as the `info'
	parameter but rather, correctly, as the `login'.
	(erc--extract-352-full-name): Factor out trailing hop-count and
	GECOS parsing for use by overriding handlers or those for adjacent
	numerics.
	(erc-server-352): Refactor to handle asterisk as `channel'
	parameter, which indicates a nick rather than a channel target.
	(erc-server-366): Update membership in all query buffers via
	`erc--ensure-query-members' after all names have been received.
	(erc-server-401): Forget a known user completely when the server
	reports them as nonexistent.
	* lisp/erc/erc-common.el (erc--get-server-user): New function, a
	thin wrapper around `erc-get-server-user' for cases were inlining
	would require declaring symbols not defined in erc-common.
	* lisp/erc/erc.el (erc-channel-members): Mention that instances
	are used for query-participant tables as well.
	(erc--decouple-query-and-channel-membership-p): New variable, a
	compatibility flag to access pre-5.6 query bookkeeping behavior.
	(erc--ensure-query-member, erc--ensure-query-members): New
	functions.
	(erc-cmd-QUERY): Ensure parties are present in the query buffer's
	membership table if they're known to be on the server by simple
	virtue of being present in some joined channel.
	(erc-message-english-s352-you): New variable.
	* test/lisp/erc/erc-scenarios-base-query-participants.el
	(erc-scenarios-base-query-participants)
	(erc-scenarios-base-query-participants/legacy): Rename former to
	latter.  Enable compat flag to activate legacy query behavior in
	which channel membership does not impact query membership.
	(erc-scenarios-base-query-participants/coupled): New test
	asserting new behavior in which channel membership dictates query
	membership.  (Bug#70928)

2024-05-28  F. Jason Park  <jp@neverwas.me>

	Reuse old query buffers for reassumed nicks in ERC

	* lisp/erc/erc-backend.el
	(erc--wrangle-query-buffers-on-nick-change): New function for
	handling buffer renaming and message routing triggered by a nick
	change.  Such twiddling used to reside in `erc-server-NICK' but
	has been separated out for use by built-in modules overriding
	`erc-server-NICK'.  The behavior has also changed to favor always
	reusing an existing query buffer whenever possible instead of
	creating a new, <N>-suffixed buffer.  This addresses some arguably
	unfinished business from bug#48598.
	(erc-server-NICK): Fix erroneous call to `erc-update-user-nick'
	that passed the sender's login as the function's INFO argument.
	Move buffer renaming logic to
	`erc--wrangle-query-buffers-on-nick-change' for use by "NICK"
	handlers managed by modules.  Also, print the notice in all query
	buffers when the client changes its own nick.
	(erc-server-QUIT): Show messages in all query buffers when the
	client itself quits, but prevent `track' from updating the mode
	line with redundant noise.
	* lisp/erc/erc.el (erc-generate-new-buffer-name): Fix typo in doc.
	(erc--query-list): New function.
	* test/lisp/erc/erc-scenarios-base-query-participants.el: New
	file.
	* test/lisp/erc/erc-scenarios-base-renick.el
	(erc-scenarios-base-renick-queries-solo): Revise slightly to use
	modern helper API.
	(erc-scenarios-base-renick-queries/reassume): New test.
	(erc-scenarios-base-renick-self/merge-query): New test.
	* test/lisp/erc/resources/base/query-participants/legacy.eld: New
	file.
	* test/lisp/erc/resources/base/reconnect/options-again.eld: Adjust
	timeout.
	* test/lisp/erc/resources/base/renick/queries/reassume.eld: New
	file.
	* test/lisp/erc/resources/base/renick/self/manual.eld: Update
	timeouts.
	* test/lisp/erc/resources/base/renick/self/merge-query-a.eld: New
	file.
	* test/lisp/erc/resources/base/renick/self/merge-query-b.eld: New
	file.  (Bug#70928)

2024-05-28  F. Jason Park  <jp@neverwas.me>

	Mention whether an ERC module is local in its doc string

	* lisp/erc/erc-common.el (erc--assemble-toggle)
	(define-erc-module): Update language of doc string to indicate if
	a module is local.
	* test/lisp/erc/erc-tests.el (define-erc-module--global)
	(define-erc-module--local)
	(define-erc-module--local/permanent-locals): Update expected
	output.

2024-05-28  F. Jason Park  <jp@neverwas.me>

	Delete original speedbar frame in erc-nickbar-mode

	* lisp/erc/erc-speedbar.el (erc-speedbar-buttons): Disable
	`erc-nickbar-mode' when it's not displayed in a window.
	(erc-speedbar--highlight-self-and-ops): Check `status' slot of
	`erc-channel-user' object instead of calling accessors.
	(erc-speedbar--hidden-speedbar-frame)
	(erc-speedbar--emulate-speedbar): Add doc string.
	(erc-speedbar--handle-delete-frame): New function.
	(erc-speedbar--toggle-nicknames-sidebar): Remove function because
	its conditional logic was needlessly complicated and is no longer
	needed.
	(erc-speedbar--ensure): Create `speedbar-buffer' when needed, and
	delete the original frame, but still keep a reference to it in
	`erc-speedbar--hidden-speedbar-frame'.  Set
	`dframe-delete-frame-function' to own handler.
	(erc-speedbar--shutting-down-p): Remove unused variable.
	(erc-speedbar--run-timer-on-post-insert)
	(erc-speedbar--prod-dframe-timer): Rename former to latter.
	Return nil, and accept any number of args.
	(erc-nickbar-mode, erc-nickbar-disable): Tear down completely when
	disabling, regardless of universal argument.  This changes
	user-facing behavior that was originally introduced with this
	module as part of bug#63595.  Run
	`erc-speedbar--prod-dframe-timer' on `erc-server-PONG-functions'
	as well as `erc-insert-post-hook' so that the panel will
	eventually update if no messages are being received.
	(erc-speedbar--dframe-controlled): Don't make frame visible
	because it's been deleted and was never made invisible.
	* test/lisp/erc/erc-scenarios-status-sidebar.el
	(erc-scenarios-status-sidebar--nickbar): Update assertions.

2024-05-28  F. Jason Park  <jp@neverwas.me>

	Return nil from more ERC response handlers

	* etc/ERC-NEWS: Mention that certain aberrant response handlers
	now return nil.
	* lisp/erc/erc-backend.el (define-erc-response-handler): Mention
	that body should explicitly return nil.
	(erc-server-PART)
	(erc-server-PING): Return nil.
	* lisp/erc/erc-sasl.el (erc-sasl--destroy): Return nil.
	* lisp/erc/erc.el (erc-display-message): Mention in doc string
	that the return value is undefined.
	(erc-kill-channel-hook): Fix package-version.
	* test/lisp/erc/erc-networks-tests.el (erc-networks--set-name):
	Ensure `erc--route-insertion' returns nil because this influences
	whether response-handler hooks continue running.
	* test/lisp/erc/erc-sasl-tests.el
	(erc-sasl-create-client-ecdsa): Fix regression that made test
	unusable, although it's still relatively useless and therefore
	skipped by default.
	* test/lisp/erc/erc-services-tests.el
	(erc-services-tests--auth-source-standard)
	(erc-services-tests--auth-source-announced): Clarify annotations.
	* test/lisp/erc/erc-tests.el (erc-message): Don't return non-nil
	in mocked `erc-display-message'.
	(erc-send-modify-hook): Shadow `erc-send-modify-hook' because
	`erc-stamp--date-mode' modifies it locally.

2024-05-27  João Távora  <joaotavora@gmail.com>

	Eglot: run eglot-managed-mode-hook when turning off (bug#70958)

	* lisp/progmodes/eglot.el (eglot--managed-mode): Run
	eglot-managed-mode-hook.

2024-05-27  Andrea Corallo  <acorallo@gnu.org>

	Rework 'comp-normalize-valset'

	* lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset): Rework to
	improve consistency.  (bug#71116)

2024-05-27  Juri Linkov  <juri@linkov.net>

	minibuffer-allow-text-properties can be buffer-local and affects
	completions.

	* doc/lispref/minibuf.texi (Text from Minibuffer): Mention that
	minibuffer-allow-text-properties can be let-bound or buffer-local
	in the minibuffer.  Correct the description of
	minibuffer-allow-text-properties to explain what it did even
	before applying code changes in this patch.  Remove wrong example
	for read-no-blanks-input.

	* lisp/imenu.el (imenu--completion-buffer): Set buffer-local
	minibuffer-allow-text-properties to t.
	(imenu--completion-buffer): Get text property 'imenu-choice'.
	(imenu--flatten-index-alist): Propertize annotation with text
	property 'imenu-choice'.

	* lisp/simple.el (choose-completion): Don't remove text properties
	from the returned completion string since the value of
	minibuffer-allow-text-properties is already respected in
	completion--replace.

	* src/minibuf.c (read_minibuf): Preserve text properties not only
	when allow_props is non-nil but also in case when
	minibuffer_allow_text_properties is non-nil.
	(Fread_from_minibuffer): Mention in the docstring that
	minibuffer-allow-text-properties can be buffer-local in the
	minibuffer.
	(minibuffer-allow-text-properties): Improve docstring to describe
	when text properties are discarded.

	https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00949.html

2024-05-27  Michael Heerdegen  <michael_heerdegen@web.de>

	Don't let pp fall back to prin1 for conses

	* lisp/emacs-lisp/pp.el (pp--insert-lisp): Don't `prin1' non-list
	conses; use our pp function for cons and list printing
	`pp--format-list' instead.

2024-05-27  Michael Heerdegen  <michael_heerdegen@web.de>

	Don't try to pretty-print non-lists as binding list

	* lisp/emacs-lisp/pp.el (pp--format-definition): Ensure that what
	we try to print as a list of bindings has an appropriate format.
	This avoids raising an error for SEXPs like (let X Y) inside
	`pcase' forms where our heuristic expects a binding list in the X
	position.

2024-05-27  Po Lu  <luangruo@yahoo.com>

	Fix minor issues in textconv.c

	* src/textconv.c (really_commit_text): Introduce a few additional
	debugging printouts.
	(locate_and_save_position_in_field): Fix typo.

2024-05-27  Stefan Kangas  <stefankangas@gmail.com>

	Make `idle-update-delay' obsolete

	This user option was introduced in 2003, and was advertised as a
	general variable for a "delay before updating various things on
	the screen".  But this has never been true: it was only used by
	'which-function-mode', and, to make matters worse, users of that
	mode would basically never know that this user option existed
	without reading the code.

	Conversely, users that did find the user option would be surprised
	to see that it only took effect in 'which-func-mode'.

	The lack of other users of 'idle-update-delay' reveals that it has
	not been considered generally useful.  Thus, it makes more sense
	to introduce a new mode specific user option
	`which-func-update-delay', and to mark the old one obsolete.

	* lisp/simple.el (idle-update-delay): Make obsolete.
	* lisp/progmodes/which-func.el (which-func-update-delay): New
	defcustom.
	(which-function-mode): Use above new defcustom instead of
	'idle-update-delay'.

2024-05-27  Dmitry Gutov  <dmitry@gutov.dev>

	* lisp/progmodes/project.el: Up xref dependency and bump the
	version.

	* lisp/progmodes/xref.el: Bump the version to 1.7.0.

2024-05-26  Eli Zaretskii  <eliz@gnu.org>

	Prevent crashes due to redisplay while realizing the default face

	* src/xfaces.c (Finternal_merge_in_global_face)
	(realize_default_face): Prevent redisplay while the default face
	is being realized.  (Bug#71176)

2024-05-26  Stefan Kangas  <stefankangas@gmail.com>

	Remove Emacs 19 compat code in mm-util.el

	* lisp/gnus/mm-util.el (mm-preferred-coding-system): Remove Emacs
	19 compat code.

2024-05-26  Michael Heerdegen  <michael_heerdegen@web.de>

	Further tweak pp code printing

	This fixes an aspect of Bug#70868.

	* lisp/emacs-lisp/pp.el (pp--insert-lisp): Print characters with
	`prin1-char'.  In all other cases consistently print with `prin1'.

2024-05-26  Naofumi Yasufuku  <naofumi@yasufuku.dev>  (tiny change)

	Fix --enable-checking build with macOS clang 15.0.0

	search.c:3428:7: error: call to undeclared library function 'free'
	...

	configure:9131: checking for C compiler version
	configure:9140: gcc --version >&5
	Apple clang version 15.0.0 (clang-1500.3.9.4)
	Target: arm64-apple-darwin23.5.0
	Thread model: posix
	InstalledDir: /Library/Developer/CommandLineTools/usr/bin

	* src/search.c: Include stdlib.h for free, and stdio.h for
	open_memstream and fclose.

2024-05-26  Mattias Engdegård  <mattiase@acm.org>

	Clean up legacy bytecode loading

	Complete some unfinished work from the elimination of lazy
	bytecode loading in 9bcc9690a8: remove code which became
	unreachable by that reform.  This simplifies some of the
	lower-level parts of the reader which helps performance somewhat.

	* src/doc.c (read_bytecode_pointer, read_bytecode_char)
	(read_doc_string): Remove.
	(get_doc_string): Remove last argument, all callers adapted.
	Simplify.
	* src/lread.c (readbyte_for_lambda, readbyte_from_string)
	(readbyte_for_lambda, readbyte_from_string): Remove.
	(readchar, unreadchar): Remove unused code paths for Qlambda and
	cons arguments.
	(bytecode_from_rev_list): Remove last use of a quirky code path,
	decoding force-loaded lazy bytecode explicitly.

2024-05-26  Joost Kremers  <joostkremers@fastmail.com>

	* doc/misc/vtable.texi (Making A Table): Update documentation for
	'width' slot of vtable ':column' object.  (Bug#71167)

2024-05-26  Lin Sun  <sunlin7@hotmail.com>

	Enhance 'python-shell-send-block' for convenience

	* lisp/progmodes/python.el (python-shell-send-block):
	'python-shell-send-block' will now send block without header by
	default.
	* test/lisp/progmodes/python-tests.el
	(python-test--shell-send-block): Update the test case.
	(Bug#71083)

2024-05-26  Po Lu  <luangruo@yahoo.com>

	Address compilation errors and warnings on x86 Solaris 10 systems

	* doc/misc/ede.texi (Extending EDE):

	* doc/misc/flymake.texi (Top, Using Flymake): Insert punctuation
	after xrefs.

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Print
	number of files being scraped.

	* src/dired.c (directory_files_internal):

	* src/eval.c (Fmake_interpreted_closure, Fdefvaralias):

	* src/fns.c (Fassoc): Work around optimizer failures.

2024-05-26  Dmitry Gutov  <dmitry@gutov.dev>

	Improve navigation to cl-defgeneric uses

	* lisp/emacs-lisp/cl-generic.el
	(cl--generic-find-defgeneric-regexp): Use "symbol end" boundary.
	(bug#71068)

2024-05-26  Dmitry Gutov  <dmitry@gutov.dev>

	xref-revert-buffer: Make inhibit-modification-hooks binding a bit
	safer.

	* lisp/progmodes/xref.el (xref-revert-buffer): Make sure that the
	inhibit-modification-hooks binding does not cover xref--fetcher
	funcall.  Only the printing step (issue mentioned in bug#53749).

2024-05-25  Jim Porter  <jporterbugs@gmail.com>

	Fix a race condition when evaluating Eshell commands

	* lisp/eshell/esh-cmd.el (eshell-do-eval): Don't defer when all
	the processes are done.

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/pipeline-wait/nested-pipes): New test.

2024-05-25  Michael Albinus  <michael.albinus@gmx.de>

	Make Tramp's async processes more robust

	* lisp/simple.el (shell-command-sentinel): Check process property
	`remote-command' first.

	* lisp/net/tramp.el (tramp-handle-make-process):
	* lisp/net/tramp-androidsu.el
	(tramp-androidsu-handle-make-process): Set sentinel `ignore'.
	(Bug#71049)

	* test/lisp/net/tramp-tests.el
	(tramp--test-deftest-direct-async-process): Don't suppress
	internal sentinel.
	(tramp-test32-shell-commanddirect-async): Don't tag it :unstable.

2024-05-25  Andrea Corallo  <acorallo@gnu.org>

	* src/Makefile.in (ELN_DESTDIR, BIN_DESTDIR): Give a default
	(bug#70842).

2024-05-25  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	4f0121f8dbe Avoid assertion violations in displaying under 'outline-m...
	1bf65836622 Improve documentation of 'no-special-glyphs' frame parameter
	3647645e948 Fix Python font lock of chained assignment statement
	3291dea441f Fix example in Calc manual
	350ae75f5c1 Avoid crashes on MS-Windows due to invalid UNC file names
	ccf8dba44a3 ; * lisp/face-remap.el (text-scale-adjust): Doc fix.
	5ab144c77cd ; Improve documentation of backing up files

2024-05-25  Mattias Engdegård  <mattiase@acm.org>

	Omit `store-substring' from lisp manual (bug#70784)

	* doc/lispref/strings.texi (Modifying Strings): Remove
	`store-substring' which is not really useful enough to merit a
	mention here.

2024-05-25  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of sending commands to shells

	* doc/lispref/processes.texi (Synchronous Processes):
	* lisp/subr.el (call-shell-region):
	* lisp/simple.el (shell-command-on-region)
	(shell-command-to-string): Document system-dependent aspects of
	sending commands to shells.  (Bug#71081)

2024-05-25  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp's progress-reporter messages

	* lisp/net/tramp-androidsu.el
	(tramp-androidsu-maybe-open-connection):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
	Adapt progress-reporter message.

	* lisp/net/tramp-sh.el (tramp-maybe-open-connection): Divide
	progress-reporter into two parts.  (Bug#70901)

2024-05-25  Eli Zaretskii  <eliz@gnu.org>

	Avoid rare errors in dabbrev.el

	* lisp/dabbrev.el (dabbrev-expand, dabbrev--find-expansion): Make
	sure 'dabbrev--last-buffer' is a live buffer before using its
	value.  (Bug#70824)

2024-05-25  Eli Zaretskii  <eliz@gnu.org>

	Fix encoding of text when saving a gpg-encoded file

	* lisp/epa-file.el (epa-file-write-region): Revert inadvertent
	change from July 15, 2020 which broke selection of a correct
	encoding for stuff sent to 'gpg'.  (Bug#71080)

2024-05-25  Robin Joy  <emacs@robinjoy.net>

	Erase existing duplicates in eshell-history-ring

	Erase all existing duplicates instead of just the last duplicate
	entry when 'eshell-hist-ignoredups' is set to 'erase'.  Multiple
	duplicates can exist in case 'eshell-hist-ignoredups' was set to
	something else than 'erase' in the past or if the history file
	contains duplicates
	(bug#71107).

	* lisp/eshell/em-hist.el (eshell-add-input-to-history): Remove all
	duplicates from history ring.

	* test/lisp/eshell/em-hist-tests.el
	(em-hist-test/add-to-history/erase-existing-dups): New test.

2024-05-24  Spencer Baugh  <sbaugh@janestreet.com>

	Fix usage of cons cells in grep-find-ignored-files

	grep-find-ignored-files is documented to also include cons cells,
	not just globs, but there were two places outside grep.el where we
	were using it as if it was only a string list.

	To fix this, add a helper function named grep-find-ignored-files
	which handles grep-find-ignored-files properly and returns the
	list of globs, and use it everywhere.

	* lisp/progmodes/grep.el (grep--filter-list-by-dir)
	(grep-find-ignored-files): New functions.
	(rgrep-find-ignored-directories): Use grep--filter-list-by-dir.
	(lgrep, rgrep-default-command): Use grep-find-ignored-files
	function.
	* lisp/dired-aux.el (dired-do-find-regexp):
	Use grep-find-ignored-files function.
	* lisp/progmodes/project.el (project-ignores): Use
	grep-find-ignored-files function, if bound.  (bug#71115)

2024-05-24  Tassilo Horn  <tsdh@gnu.org>

	bug-reference: signal fontified bounds back to jit-lock

	* lisp/progmodes/bug-reference.el (bug-reference-fontify): Signal
	fontified bounds back to jit-lock in order to allow for redisplay
	optimizations (bug#70796).

2024-05-24  Juri Linkov  <juri@linkov.net>

	* lisp/dired.el (dired-mode-map): Bind "E" to 'dired-do-open'.
	(bug#18132)

	(dired-mode-immediate-menu): Add menu item "Display Externally"
	for 'dired-do-open'.

	* lisp/dired-aux.el (dired-do-open): Add autoload cookie.

2024-05-24  Juri Linkov  <juri@linkov.net>

	New variable shell-command-guess-dired-optional

	* doc/emacs/dired.texi (Shell Command Guessing): Add
	dired-guess-shell-alist-optional.

	* lisp/dired.el (dired-guess-shell-alist-user):
	* lisp/dired-aux.el (dired-do-shell-command): Add
	dired-guess-shell-alist-optional to docstring.
	(dired-guess-shell-alist-default): Move media commands to
	'dired-guess-shell-alist-optional'.
	(dired-guess-shell-alist-optional): New variable.
	(dired-guess-default): Add 'dired-guess-shell-alist-optional' to
	the end after 'dired-guess-shell-alist-user' and
	'dired-guess-shell-alist-default'.
	(shell-command-guess-functions): Add more options.
	(shell-command-guess-dired): Remove function.
	(shell-command-guess-dired-user)
	(shell-command-guess-dired-default)
	(shell-command-guess-dired-optional): New functions.  (bug#18132)

2024-05-24  Andrea Corallo  <acorallo@gnu.org>

	* src/comp.c (check_comp_unit_relocs): Remove unnecessary double
	access.

2024-05-23  Eshel Yaron  <me@eshelyaron.com>

	Fix argument name highlighting in 'describe-function' output

	This fixes a regression introduced in
	dd38097f0b9458eea882043fa06b27248e505b22, which prevented proper
	argument name highlighting in function docstrings in the output
	buffer of 'describe-function'.

	* lisp/help-fns.el (help-do-arg-highlight): New optional arg that
	says if we're highlighting arguments in the usage string or in the
	docstring.  Tweak generated regex to only expect argument name to
	be preceded by function name in usage string.
	(help-highlight-arguments): Use new argument for usage string.

2024-05-23  Eshel Yaron  <me@eshelyaron.com>

	Fix 'help-view-source' for variables defined in C

	This fixes an issue that Juri Linkov mentioned in Bug#71117.

	* lisp/help-mode.el (help-function-def--button-function): When
	searching for the definition of a variable, make sure to call
	'help-C-file-name' with KIND argument set to 'var'.

2024-05-23  Eli Zaretskii  <eliz@gnu.org>

	Improve Dired context menu

	* lisp/dired.el (dired-context-menu): Add 'w32-shell-execute' menu
	item on MS-Windows.  Improve help-echo.

2024-05-23  Eli Zaretskii  <eliz@gnu.org>

	Documentation followup for last change

	* etc/NEWS: Announce the change in 'key-translate'.

	* doc/lispref/commands.texi (Event Mod): Update documentation of
	'key-translate'.  (Bug#70139)

2024-05-23  Charalampos Mitrodimas  <charmitro@posteo.net>

	Improve 'key-translate' to support removing translations

	This patch enhances the key-translate function to allow removing
	keyboard translations by passing nil as the second argument (TO).
	If TO is nil, any existing translation for the FROM key will be
	removed.  The compiler macro is updated to only check TO when it
	is non-nil.  This change makes key-translate more consistent with
	the behavior of 'keyboard-translate', providing a way to remove
	translations without having to specify the same key for both FROM
	and TO.  The documentation string is updated to reflect the new
	behavior.

	* lisp/keymap.el (key-translate): Support removing translations by
	passing nil as the second argument (TO).  Also signal an error if
	multiple items are passed.  (Bug#70139)

2024-05-23  Lin Sun  <sunlin7@hotmail.com>
	    kobarity  <kobarity@gmail.com>

	Enhance python-tests to adapt different Python interpreters

	* test/lisp/progmodes/python-tests.el
	(python-tests-get-shell-interpreter): New function to get Python
	interpreter for testing; and also introduce new env variable
	EMACS_PYTHON_INTERPRETER to support customer Python interpreter.
	(bug#70815)

2024-05-23  Eli Zaretskii  <eliz@gnu.org>

	Fix uncompressing a .tar.gz archive whose files have no leading
	dir.

	* lisp/dired-aux.el (dired-compress): Handle the case when
	NEW-FILE is not produced in the current directory by uncompressing
	a compressed file.  (Bug#47058)

2024-05-23  Po Lu  <luangruo@yahoo.com>

	Work around one Android bug and document another

	* etc/PROBLEMS (Runtime problems specific to Android): Document
	deficiency of "Android Keyboard (AOSP)."

	* java/org/gnu/emacs/EmacsView.java (showOnScreenKeyboard):
	Revert yesterday's change.

	* java/org/gnu/emacs/EmacsWindow.java (toggleOnScreenKeyboard):
	Sync with the UI thread after displaying the on-screen keyboard.

2024-05-23  Po Lu  <luangruo@yahoo.com>

	Restore specbound keyboard-locals in the correct KBOARD

	* doc/lispref/variables.texi (Intro to Buffer-Local): Fix typo in
	documentation.

	* src/data.c (KBOARD_OBJFWDP): Move to lisp.h.
	(kboard_for_bindings): New variable.
	(do_symval_forwarding, store_symval_forwarding): Call
	kboard_for_bindings rather than retrieving this value directly.
	(set_default_internal): New argument WHERE; if valcontents be a
	Lisp_Kboard_Objfwd and WHERE be specified, save the binding there.
	All callers changed.

	* src/eval.c (specpdl_where): Adjust for changes in structure
	layout.
	(specpdl_kboard): New function.
	(do_specbind): Clear let->where.kbd in ordinary SPECPDL_LETs, and
	set it to the kboard where the binding will be installed if
	binding keyboard forwards.
	(specbind, do_one_unbind, specpdl_unrewind): Provide
	specpdl_kboard in invocation of set_default_internal.

	* src/keyboard.c (delete_kboard): Clean thread specpdls of
	references to kboards.

	* src/keyboard.h (KBOARD_OBJFWDP): Move from data.c.

	* src/lisp.h (union specbinding) <let.where>: Convert into
	union of KBOARD and Lisp_Object.

	* src/thread.c (all_threads): Export.

	* src/thread.h: Adjust correspondingly.

2024-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/pcase.el (pcase--subtype-bitsets): Fix bootstrap
	failure.

	`rm lisp/emacs-lisp/cl-preloaded.elc src/bootstrap-emacs' followed
	by `make' ended up loading right after defining `built-in-class-p'
	but before actually defining the built-in-classes so the
	computation of bitsets failed.

2024-05-22  Po Lu  <luangruo@yahoo.com>

	Improve compatibility with Android's default text editor

	* java/org/gnu/emacs/EmacsView.java (showOnScreenKeyboard):
	Request a selection update if `inputConnection' has been
	established, to more closely emulate the OS text editing widget.
	(onCreateInputConnection) [EmacsService.DEBUG_IC]: Print current
	selection values before reporting them.

2024-05-22  Yuan Fu  <casouri@gmail.com>

	Improve treesit-major-mode-setup indentation setup (bug#71086)

	* lisp/treesit.el (treesit-major-mode-setup): Setup indentation
	when treesit-indent-function is set.
	* doc/lispref/modes.texi (Parser-based Indentation): Fix manual.

2024-05-22  Yuan Fu  <casouri@gmail.com>

	Fontify namespace in constant face in c++-ts-mode (bug#71070)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use
	constant face.

2024-05-22  Yuan Fu  <casouri@gmail.com>

	Address a common pitfall in tree-sitter's manual section

	* doc/lispref/parsing.texi (Multiple Languages): Add example for
	treesit-language-at-point-function.  (bug#71048)

2024-05-22  Dmitry Gutov  <dmitry@gutov.dev>

	etags-regen-program: Use more robust default value

	* lisp/progmodes/etags-regen.el (etags-regen-program): Default to
	the value of the variable etags-program-name.

2024-05-21  Juri Linkov  <juri@linkov.net>

	Use read-from-minibuffer instead of read-string for dired-do-touch

	* lisp/dired-aux.el (dired-mark-read-string): Use
	read-from-minibuffer instead of read-string when op-symbol is
	'touch', since it's more clear when read-from-minibuffer returns
	an empty string for RET, and it was used in dired-mark-read-string
	initially.  (bug#70725)

2024-05-21  Michael Albinus  <michael.albinus@gmx.de>

	Fix some Tramp oddities

	* lisp/net/tramp-container.el: Move connection-local settings
	where they belong to.

	* lisp/net/tramp-sshfs.el (tramp-connection-properties): Do not
	set connection property "direct-async-process".
	(tramp-direct-async-process): Set connection-local value.

	* test/lisp/net/tramp-tests.el (comp-warn-primitives): Declare.
	(tramp-test18-file-attributes): Use it.

2024-05-21  Stephen Berman  <stephen.berman@gmx.net>

	Fix todo-mode item insertion bug (bug#70937)

	* lisp/calendar/todo-mode.el (todo-insert-item--next-param):
	Initially assign each key in todo-mode-map a function identifying
	it as invalid for item insertion, thus preventing mistakenly
	pressing a key from executing an unwanted different todo-mode
	command; the actual item insertion keys are redefined when looping
	over the item insertion parameters.

2024-05-21  Juri Linkov  <juri@linkov.net>

	Use read-string instead of completing-read for dired-do-touch

	* lisp/dired-aux.el (dired-mark-read-string): Use read-string when
	op-symbol is 'touch'.  (bug#70725)

2024-05-21  Juri Linkov  <juri@linkov.net>

	Fix for 'vc-default-patch-addressee' recently added to
	.dir-locals.el.

	* lisp/vc/vc.el: Add autoloaded setting of 'safe-local-variable'
	property for 'vc-default-patch-addressee' exactly like it's
	already done for 'vc-prepare-patches-separately'.

2024-05-21  Jared Finder  <jared@finder.org>

	Do not message for repeated enable/disable of tab-line-mode

	tab-line-mode should not inform the user of an unexpected change
	when enabling the mode if already enabled.  For example, when
	running (tab-line-mode 1) repeatedly (bug#68765).

	* lisp/tab-line.el (tab-line-mode): Modify case when user is
	informed.

2024-05-20  Jim Porter  <jporterbugs@gmail.com>

	Support text overlays for thingatpt provider helpers

	* lisp/thingatpt.el (thing-at-point-for-text-property)
	(forward-thing-for-text-property)
	(bounds-of-thing-at-point-for-text-property): Rename to...
	(thing-at-point-for-char-property)
	(forward-thing-for-char-property)
	(bounds-of-thing-at-point-for-char-property): ... and add overlay
	support.  Update callers.

	* test/lisp/thingatpt-tests.el (thing-at-point-providers)
	(forward-thing-providers, bounds-of-thing-at-point-providers):
	Test overlays too.

	* test/lisp/progmodes/bug-reference-tests.el
	(test-thing-at-point): Test 'bounds-of-thing-at-point' and
	'forward-point'.

	* etc/NEWS: Update function names in announcement.

2024-05-20  Jim Porter  <jporterbugs@gmail.com>

	Improve implementation of 'forward-thing' using custom providers

	Now, call all the custom providers for each step, using the
	provider that moves point the smallest non-zero amount.  This
	allows multiple providers for a given "thing" to work nicely
	together.

	* lisp/thingatpt.el (forward-thing-provider-alist): Update
	docstring.
	(forward-thing): New implementation to call each provider N times.
	(forward-thing-for-text-property): Take BACKWARD instead of N.
	Update callers.

	* test/lisp/thingatpt-tests.el (thing-at-point-providers)
	(forward-thing-providers): Add more checks.
	(consecutive-things-at-point): New test.

2024-05-20  Paul Eggert  <eggert@cs.ucla.edu>

	Sync m4/byteswap.m4 from Gnulib

	* m4/byteswap.m4: Copy from Gnulib.  This fixes a configure glitch
	on macOS reported by Mattias Engdegård.

2024-05-20  Michael Albinus  <michael.albinus@gmx.de>

	Tramp code cleanup

	* lisp/net/tramp-sh.el (tramp-find-shell)
	(tramp-find-inline-compress)
	(tramp-get-remote-path):
	* lisp/net/tramp-smb.el (tramp-smb-handle-process-file): Use
	`tramp-warning'.

	* test/lisp/net/tramp-tests.el (tramp--test-container-p): Add
	"kubernetes", "run0" and "nspawn".
	(tramp--test-toolbox-p): New defun.
	(tramp-test45-asynchronous-requests): Use it.
	(tramp--test-check-files): Adapt regexp.

2024-05-20  Po Lu  <luangruo@yahoo.com>

	Adapt last change to Android

	* src/sfntfont.c (sfnt_parse_style): Replace unrepresentable
	characters in DESC->adstyle with ` '.

2024-05-20  Po Lu  <luangruo@yahoo.com>

	* src/ftfont.c (get_adstyle_property): Substitute a space for
	unrepresentable adstyle characters.  (bug#70989)

2024-05-20  Eli Zaretskii  <eliz@gnu.org>

	Fix visiting zip archives inside tar archives

	* lisp/tar-mode.el (tar-archive-from-tar): New local variable.
	(tar-extract): Set it non-nil for an extracted member that happens
	to be arc-mode archive.
	* lisp/arc-mode.el (tar-archive-from-tar): Defvar it.
	(archive-unique-fname): Make sure FNAME can be created in DIR,
	even if FNAME is provided as an absolute file name (this happens
	if the archive is a member of a Tar archive, for example).
	(archive-extract): Set 'archive-remote' for archives that were
	extracted from Tar archives.  (Bug#70987)

2024-05-20  Juri Linkov  <juri@linkov.net>

	New tests for nested archives (bug#70987)

	* test/lisp/tar-mode-tests.el
	(tar-mode-test-tar-extract-zip-and-gz):
	* test/lisp/arc-mode-tests.el
	(arc-mode-test-zip-extract-tar-and-gz): New tests.
	* test/data/decompress/tzg.tar.gz:
	* test/data/decompress/ztg.zip: New data files to test
	decompressing of different combinations of nested tar and zip
	archives.

2024-05-20  Jim Porter  <jporterbugs@gmail.com>

	Tell direction in prompts for
	'(previous|next)-matching-history-element'.

	Previously, this always said "Previous" for
	'previous-matching-history-element' (likewise "Next").  Now, the
	prompt accounts for a negative prefix argument changing the search
	direction.

	* lisp/simple.el (previous-matching-history-element)
	(next-matching-history-element): Consult numeric prefix argument
	to determine the prompt string.  (bug#70882)

2024-05-20  Jim Porter  <jporterbugs@gmail.com>

	Allow defining custom providers for more "thingatpt" functions

	This also fixes an issue in EWW and bug-reference-mode where
	(thing-at-point 'url) at the end of a URL would return nil.

	See <https://lists.gnu.org/archive/html/emacs-devel/2024-02/msg00200.html>.

	* lisp/thingatpt.el (forward-thing-provider-alist)
	(bounds-of-thing-at-point-provider-alist): New variables...
	(forward-thing, bounds-of-thing-at-point): ... use them.
	(text-property-search-forward, text-property-search-backward)
	(prop-match-beginning, prop-match-end): Declare.
	(thing-at-point-for-text-property)
	(forward-thing-for-text-property)
	(bounds-of-thing-at-point-for-text-property): New functions.

	* lisp/net/eww.el (eww--url-at-point): Use
	'thing-at-point-for-text-property'.
	(eww--bounds-of-url-at-point, eww--forward-url): New functions...
	(eww-mode): ... use them.

	* lisp/progmodes/bug-reference.el (bug-reference--url-at-point):
	Use 'thing-at-point-for-text-property'.
	(bug-reference--bounds-of-url-at-point)
	(bug-reference--forward-url): New functions...
	(bug-reference--init): ... use them.

	* test/lisp/thingatpt-tests.el (thing-at-point-providers)
	(forward-thing-providers, bounds-of-thing-at-point-providers): New
	tests.

	* etc/NEWS: Announce this change.

2024-05-19  Paul Eggert  <eggert@cs.ucla.edu>

	Tweak STORE_NUMBER arg type

	* src/regex-emacs.c (STORE_NUMBER): Make the arg int, not int16_t.
	There’s no need for the caller to convert to int16_t, and using
	int makes the machine code a bit smaller (and presumably a bit
	faster) on x86-64 with GCC 14.

2024-05-19  Paul Eggert  <eggert@cs.ucla.edu>

	Port knuth_hash to odd platforms

	* src/lisp.h (hash_hash_t, knuth_hash): Use unsigned int and
	unsigned long long int rather than uint32_t and uint64_t, as POSIX
	does not guarantee the presence of uint64_t, and uint32_t and
	uint64_t both in theory have problems with undefined behavior on
	integer overflow.  This doesn’t affect behavior (or even machine
	code) on typical platforms.

2024-05-19  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2024-05-19  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify -Wanalyzer-null-dereference in sfnt.c

	* src/sfnt.c (sfnt_map_table, sfnt_read_table)
	(sfnt_read_cvar_table): Pacify GCC -Wanalyzer-null-dereference.
	The change to sfnt_read_cvar_table fixes what appears to be an
	actual null-dereference bug.

2024-05-19  Po Lu  <luangruo@yahoo.com>

	Fix kill-this-buffer's detection of minibuffer frames

	* lisp/menu-bar.el (kill-this-buffer): Don't test against
	menu-updating-frame, because this variable is only meaningful
	during menu bar updates.

2024-05-19  Andrea Corallo  <acorallo@gnu.org>

	Silence 3 warnings for non sqlite builds

	* lisp/emacs-lisp/multisession.el (sqlite-commit)
	(sqlite-transaction, sqlite-rollback): Declare.

2024-05-19  Michael Albinus  <michael.albinus@gmx.de>

	Add connection-local variable `tramp-direct-async-process'

	* doc/misc/tramp.texi (Predefined connection information): Remove
	"direct-async-process".
	(Remote processes): Explain connection-local variable
	tramp-direct-async-process.

	* etc/NEWS: Add connection-local variable
	'tramp-direct-async-process'.

	* lisp/net/tramp-compat.el (tramp-compat-connection-local-p): Sync
	with Emacs source.
	(tramp-compat-connection-local-value): New defalias.

	* lisp/net/tramp-message.el (tramp-warning): New defsubst.

	* lisp/net/tramp.el (tramp-direct-async-process): New defvar.
	(tramp-direct-async-process-p): Use connection-local variable for
	check.  (Bug#70959)

	* test/lisp/net/tramp-tests.el
	(tramp--test-deftest-direct-async-process): Use
	connection-local-variable `tramp-direct-async-process'.

2024-05-19  Stefan Kangas  <stefankangas@gmail.com>

	Add convenience binding for html-paragraph to mhtml-mode

	* lisp/textmodes/sgml-mode.el (html-mode-map): Bind 'C-c C-c p' to
	'html-paragraph'.  (Bug#70533)

2024-05-19  Robert Church  <chrchr@gmail.com>

	Add Oklab color space utility functions in color.el.

	* lisp/color.el (color-oklab-to-xyz, color-oklab-to-srgb)
	(color-srgb-to-oklab): New functions.  (Bug#70963)

	* test/lisp/color-tests.el (color-tests-oklab-to-xyz)
	(color-tests-xyz-to-oklab, color-tests-srgb-to-oklab)
	(color-tests-oklab-to-srgb): New tests.

2024-05-19  Morgan Smith  <Morgan.J.Smith@outlook.com>

	* lisp/window.el (fit-window-to-buffer): Fix width calculation.
	When PIXELWISE is nil, we still calculate width in pixels and then
	convert it to columns.  However, part of the calculation was using
	columns where it should have used pixels.  (Bug#70894)

2024-05-19  Eli Zaretskii  <eliz@gnu.org>

	Fix MinGW build with GCC 14 and later

	* configure.ac [mingw]: Add -Wno-error=implicit-function-declaration
	to GCC_TEST_OPTIONS.  (Bug#70889)

2024-05-19  Jared Finder  <jared@finder.org>

	Fix byte compiler warnings in window-tool-bar.el

	* lisp/window-tool-bar.el (window-tool-bar--static-if)
	(window-tool-bar--ignored-event-types): Avoid byte compiler seeing
	variables obsolete in Emacs 30 and up.  (Bug#68765)

2024-05-19  Po Lu  <luangruo@yahoo.com>

	Fix the DJGPP build

	* config.bat: Generate stdbit.in-h from stdbit.in.h.

	* msdos/sedlibmk.inp (GL_STDC_...): Enable generation of ISO C2x
	features.
	(STDBIT_H): Define to stdbit.h.
	(GL_GENERATE_STDBIT_H_CONDITION): Define to 1.

2024-05-19  Po Lu  <luangruo@yahoo.com>

	Fix Android 2.2 build

	* src/android.h: Include sys/select.h.

2024-05-19  Po Lu  <luangruo@yahoo.com>

	Fix Android build

	* src/androidfns.c: Include stdlib.h.

2024-05-19  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/play/doctor.el: Add a few more word meanings.

2024-05-19  F. Jason Park  <jp@neverwas.me>

	Reconcile erc-stamp--date-stamps when merging buffers

	* etc/ERC-NEWS: Mention new face `erc-information'.
	* lisp/erc/erc-button.el (erc-button-add-buttons): Skip
	buttonization when the "msg prop" `erc--skip' is present and
	contains the symbol `button'.  Set `alist' to nil in the same
	guard condition as a roundabout way of suppressing further
	processing.
	* lisp/erc/erc-networks.el (erc--insert-admin-message): Forward
	declaration.
	(erc-networks--insert-transplanted-content)
	(erc-networks--transplant-buffer-content): Replace former with
	latter.  Change signature to take source and destination buffers
	as parameters.
	(erc-networks--transplant-target-buffer-function): New
	function-valued variable.
	(erc-networks--target-transplant-in-progress-p): New variable, a
	flag for downstream code to detect when a transplant is underway.
	(erc-networks--reclaim-orphaned-target-buffers): Defer to
	`erc-networks--transplant-target-buffer-function' to handle the
	actual transplant business.  Crucially, kill the buffer afterwards
	instead of beforehand.  If new buffer-association bugs emerge
	related to the combining of old or renamed target buffers, this
	reordering may be at fault.
	(erc-networks--copy-over-server-buffer-contents): Pass old and new
	buffers to `erc-networks--insert-transplanted-content'.
	* lisp/erc/erc-stamp.el
	(erc-stamp--defer-date-insertion-on-post-modify): Set `fn' slot of
	`erc-stamp--date' instance to `ignore' when running the actual
	callback in order to conserve a little space.
	(erc-stamp--date-mode): Add and remove hook members for
	`erc-networks--copy-server-buffer-functions' and
	`erc-networks--transplant-target-buffer-function'.
	(erc-insert-timestamp-left-and-right): Always clear
	`erc-timestamp-last-inserted-right' to ensure a right stamp
	accompanies every date stamp.
	(erc-stamp--dedupe-date-stamps)
	(erc-stamp--dedupe-date-stamps-from-buffer)
	(erc-stamp--dedupe-date-stamps-from-target-buffer): New functions.
	Date stamp behavior was revamped as part of bug#60936.
	* lisp/erc/erc.el (erc-informational): New face.
	(erc--insert-admin-message): New function to hide some "msg prop"
	complexity from "upstream" libraries, like `erc-networks', and
	thus avoid more forward-declarations.  A less smelly approach
	would be to devise a general interface owned by such libraries, or
	erc-common, that `erc-mode' could then hook into on init.
	(erc-display-message-highlight): Make face matching more limber to
	accommodate the convention of face names lacking a "-face" suffix.
	(erc-message-english-graft): New variable.
	(erc-kill-channel): Inhibit execution of hook when
	`erc-networks--target-transplant-in-progress-p' is non-nil.
	* test/lisp/erc/erc-networks-tests.el
	(erc-networks--rename-server-buffer--no-existing--orphan)
	(erc-networks--rename-server-buffer--existing--reuse)
	(erc-networks--rename-server-buffer--local-match)
	(erc-networks--rename-server-buffer--local-nomatch): Use helper to
	initialize markers.
	* test/lisp/erc/erc-stamp-tests.el
	(erc-stamp--dedupe-date-stamps): New test.  (Bug#70928)

2024-05-19  F. Jason Park  <jp@neverwas.me>

	Don't kill server buffer with erc-kill-buffer-on-part

	* etc/ERC-NEWS: Mention new flag `erc-killing-buffer-on-part-p'
	and the renaming of `erc-kill-channel'.
	* lisp/erc/erc-backend.el (erc-server-PART): Only kill a buffer on
	behalf of `erc-kill-buffer-on-part' when the buffer hasn't already
	been killed, and bind `erc-killing-buffer-on-part-p' to t when
	doing so.
	* lisp/erc/erc-log.el (erc-conditional-save-buffer): Don't save
	logs when the buffer parameter is nil because that causes the
	server buffer to be saved out.  It's possible that user code
	relying on this longstanding bug will be affected, however, by
	default, the server buffer will also be saved out independently at
	designated junctures.
	* lisp/erc/erc.el (erc-part-hook): Redo doc string.
	(erc-killing-buffer-on-part-p): New variable, a flag to prevent
	redundant execution of `erc-kill-channel-hook' members concerned
	with parted channels.
	(erc-kill-buffer-on-part): Tweak doc string.
	(erc-kill-channel-hook): Use new name for `erc-kill-channel',
	`erc-part-channel-on-kill'.
	(erc-kill-channel, erc-part-channel-on-kill): Rename former to
	latter, and inhibit execution when `erc-killing-buffer-on-part-p'
	is non-nil.
	* test/lisp/erc/erc-scenarios-base-kill-on-part.el: New file.
	(Bug#70840)

2024-05-19  Augusto Stoffel  <arstoffel@gmail.com>

	comint.el: Add applicable modes to 'interactive' forms

	* lisp/comint.el (comint-dynamic-list-input-ring-select)
	(comint-dynamic-list-input-ring, comint-restore-input)
	(comint-previous-input, comint-next-input)
	(comint-previous-matching-input, comint-next-matching-input)
	(comint-previous-matching-input-from-input)
	(comint-next-matching-input-from-input)
	(comint-replace-by-expanded-history, comint-magic-space)
	(comint-history-isearch-backward)
	(comint-history-isearch-backward-regexp, comint-send-input)
	(comint-truncate-buffer, comint-strip-ctrl-m)
	(comint-show-maximum-output, comint-copy-old-input, comint-bol)
	(comint-send-invisible, comint-delete-output, comint-write-output)
	(comint-append-output-to-file, comint-show-output)
	(comint-clear-buffer, comint-interrupt-subjob, comint-kill-subjob)
	(comint-quit-subjob, comint-stop-subjob, comint-continue-subjob)
	(comint-kill-input, comint-delchar-or-maybe-eof, comint-send-eof)
	(comint-backward-matching-input, comint-forward-matching-input)
	(comint-next-prompt, comint-previous-prompt)
	(comint-insert-previous-argument, comint-kill-whole-line)
	(comint-kill-region, comint-dynamic-complete-filename)
	(comint-replace-by-expanded-filename)
	(comint-dynamic-list-filename-completions)
	(comint-get-next-from-history, comint-accumulate)
	(comint-goto-process-mark, comint-bol-or-process-mark)
	(comint-set-process-mark, comint-redirect-cleanup)
	(comint-redirect-send-command)
	(comint-redirect-send-command-to-process)
	(comint-fontify-input-mode): Add mode to interactive form.
	(Bug#70555)

2024-05-18  nibon7  <nibon7@163.com>

	eglot: Add blueprint language server (Bug#70015)

	* lisp/progmodes/eglot.el (eglot-server-programs): Add
	blueprint-compiler.

2024-05-18  kobarity  <kobarity@gmail.com>

	Improve fontification of Python assignments with type hints

	* lisp/progmodes/python.el
	(python-font-lock-keywords-maximum-decoration): Fontify type hints
	of assignment statement.  (Bug#69357)
	* test/lisp/progmodes/python-tests.el
	(python-font-lock-assignment-statement-11)
	(python-font-lock-assignment-statement-12)
	(python-font-lock-assignment-statement-13)
	(python-font-lock-assignment-statement-18): Add fontification of
	type hints.
	(python-font-lock-assignment-statement-19): New test.

2024-05-18  Andrea Corallo  <acorallo@gnu.org>

	* admin/syncdoc-type-hierarchy.el (syncdoc-make-type-table):
	Clean-up quote.

2024-05-18  Jostein Kjønigsen  <jostein@kjonigsen.net>

	nxml-mode: Add schemas for Mono/.NET related files

	* etc/schema/dotnet-appconfig.rnc:
	* etc/schema/dotnet-packages-config.rnc:
	* etc/schema/dotnet-packages-props.rnc:
	* etc/schema/dotnet-resx.rnc:
	* etc/schema/msbuild.rnc:
	* etc/schema/nuget.rnc:
	* etc/schema/nuspec.rnc: New files.
	* etc/schema/README: Document copyright status of above new files.
	* etc/schema/schemas.xml: Use above new files to support Mono/.NET
	development related XML files.

	This change was discussed in:
	https://lists.gnu.org/r/emacs-devel/2024-02/msg00638.html

2024-05-18  Stefan Kangas  <stefankangas@gmail.com>

	Fix double periods in `doctor-symptoms'

	* lisp/play/doctor.el (doctor-symptoms): Don't produce double
	periods.

2024-05-18  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify 32-bit Android bit fiddling

	* src/sfnt.c: Include stdbit.h.
	(sfnt_count_leading_zero_bits) [!INT64_MAX]: Remove this function,
	which was confusingly named as it actually returned 31 minus the
	number of leading zero bits.
	(sfnt_multiply_divide_2) [!INT64_MAX]: Use stdc_leading_zeros instead.

2024-05-18  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer stdbit.h to count-one-bits.h etc

	C23's <stdbit.h> in the long run should be better supported than
	Gnulib's count-one-bits.h and similar headers, so switch to the
	C23 primitives, with a Gnulib fallback for platforms lacking C23.
	* admin/merge-gnulib (GNULIB_MODULES): Remove count-leading-zeros,
	count-one-bits, count-trailing-zeros.  Add stdc_bit_width,
	stdc_count_ones, stdc_trailing_zeros.
	* lib/count-leading-zeros.c, lib/count-leading-zeros.h:
	* lib/count-one-bits.c, lib/count-one-bits.h:
	* lib/count-trailing-zeros.c, lib/count-trailing-zeros.h: Remove.
	* lib/stdbit.c, lib/stdbit.in.h, lib/stdc_bit_width.c:
	* lib/stdc_count_ones.c, lib/stdc_leading_zeros.c:
	* lib/stdc_trailing_zeros.c, m4/stdbit_h.m4:
	New files, copied from Gnulib.
	* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
	* src/data.c: Do not include count-one-bits.h,
	count-trailing-zeros.h.  Instead, rely on lisp.h including
	stdbit.h.
	(Flogcount, Fbool_vector_count_population)
	(Fbool_vector_count_consecutive): Use stdbit.h macros instead of
	count-one-bits.h and count-trailing-zeros.h macros.
	(shift_right_ull, count_one_bits_word, pre_value)
	(count_trailing_zero_bits): Remove; no longer needed.
	* src/lisp.h: Include stdbit.h instead of count-leading-zeros.h.
	(elogb): Use stdbit.h macro instead of count-leading-zeros.h
	macro.

2024-05-18  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2024-05-18  Stefan Kangas  <stefankangas@gmail.com>

	List Andrea Corallo as co-maintainer in ack.texi

	* doc/emacs/ack.texi (Acknowledgments): List Andrea Corallo as
	co-maintainer from 29.3 onwards.

2024-05-18  Eshel Yaron  <me@eshelyaron.com>

	New functions '(set-)window-cursor-type'

	* src/window.h (struct window): Add 'cursor_type' slot.
	(wset_cursor_type): New inline function.
	* src/xdisp.c (get_window_cursor_type): Consult 'cursor_type'.
	* src/window.c (make_window): Initialize 'cursor_type' to t.
	(Fset_window_cursor_type, Fwindow_cursor_type): New functions.
	(syms_of_window): List their symbols.
	* doc/lispref/windows.texi (Window Point): Document them.
	* doc/lispref/frames.texi (Cursor Parameters): Mention new
	'set-window-cursor-type'.
	* etc/NEWS: Announce new functions.  (Bug#70622)

2024-05-18  Dmitry Gutov  <dmitry@gutov.dev>

	minibuffer-completion-help: Fix earlier mistake

	* lisp/minibuffer.el (minibuffer-completion-help): Fix earlier
	mistake.  Instead of altering a variable whose value is immutable
	(and already captured in a saved list), move the reference to said
	list to a lexical binding and alter that list's second element
	instead.

	https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00875.html

2024-05-18  Po Lu  <luangruo@yahoo.com>

	Housekeeping around androidselect.c

	* java/org/gnu/emacs/EmacsClipboard.java (setClipboard)
	(getClipboard):

	* java/org/gnu/emacs/EmacsSdk11Clipboard.java (setClipboard)
	(getClipboard):

	* java/org/gnu/emacs/EmacsSdk8Clipboard.java (setClipboard)
	(getClipboard): Save and return Strings rather than byte arrays.

	* src/androidselect.c (android_init_emacs_clipboard)
	(Fandroid_set_clipboard, Fandroid_get_clipboard): Adjust to match.

2024-05-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	a4828155d8f ; * doc/lispintro/emacs-lisp-intro.texi (nthcdr): Whitesp...
	df1a9e42ba4 Document :box attribute caveats when used on display strings
	ca17bc8dd0b Improve documentation of 'movemail'
	d47aa33bcdb Replace incorrect link in Rmail chapter of Emacs manual
	35138b90dd2 ; * doc/lispref/parsing.texi (Parsing Program Source): Im...
	3dd09516c9a ; Improve documentation of 'set-fontset-font'
	042b58b5ff4 ; * doc/emacs/search.texi (Word Search): Add index entry.
	60b1768dc50 ; * src/window.c (Fwindow_scroll_bars): Doc fix.

2024-05-18  Ergus  <spacibba@aol.com>

	Add support for Rust compilation messages

	* etc/compilation.txt (Rust): Add Rust/cargo examples.

	* lisp/progmodes/compile.el
	(compilation-error-regexp-alist-alist): Add rust/cargo error and
	warning patterns.  (Bug#70794)

2024-05-18  Tony Zorman  <soliditsallgood@mailbox.org>

	use-package: Add ':ignored-files' support to ':vc' keyword

	* lisp/use-package/use-package-core.el (use-package-split-when):
	New utility function to split a list whenever a specified
	predicate returns t.
	(use-package-vc-valid-keywords): A new defconst to gather all
	allowed keywords.
	(use-package-normalize--vc-arg): Properly normalize the
	':ignored-files' keyword, in that the following are all valid ways
	of entering files:
	  :ignored-files "a"
	  :ignored-files ("a")
	  :ignored-files "a" "b" "c"
	  :ignored-files ("a" "b" "c")
	(use-package-normalize/:vc): Adjust normalization, now that we do
	not necessarily receive a valid plist as an input.  (Bug#66567)

	* test/lisp/use-package/use-package-tests.el
	(use-package-test-normalize/:vc): Add tests for ':ignored-files'
	keyword.

2024-05-18  Tony Zorman  <soliditsallgood@mailbox.org>

	use-package: Update list of valid :vc keywords

	* lisp/use-package/use-package-core.el: Add ':shell-command' and
	':make' to valid keywords.  (Bug#66567)

2024-05-18  Eli Zaretskii  <eliz@gnu.org>

	Fix printing the result by 'eval-print-last-sexp'

	* lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp): Record the
	desired output stream before evaluating the expression.
	(Bug#70931)

2024-05-18  Jared Finder  <jared@finder.org>

	Adding window-tool-bar package (bug#68765).

	* lisp/window-tool-bar.el: New file.

2024-05-18  Jared Finder  <jared@finder.org>

	Add user option to only display default tool bar

	This works well with `window-tool-bar-mode', to be added in
	upcoming commit.  Then the default tool bar is displayed
	frame-wide and mode-specific tool bars are displayed in the window
	that mode is active in.

	* lisp/tool-bar.el (tool-bar-always-show-default): New user
	option.
	(tool-bar--cache-key, tool-bar-make-keymap-1): Return default tool
	bar when option is set.

2024-05-18  Jared Finder  <jared@finder.org>

	Inform user when tab-line-mode command makes no change

	* lisp/tab-line.el (tab-line-mode): Display message when command
	is run on already altered tab-line-format.

2024-05-18  Joost Kremers  <joostkremers@fastmail.com>

	Make 'vtable-insert-object' more versatile

	* lisp/emacs-lisp/vtable.el (vtable-insert-object): Rename
	argument AFTER-OBJECT to LOCATION; allow use of index to refer to
	the insertion position; add argument BEFORE.  (Bug#70664).

	* etc/NEWS:
	* doc/misc/vtable.texi (Interface Functions): Document the change.

	* test/lisp/emacs-lisp/vtable-tests.el
	(test-vtable-insert-object): New test.

2024-05-18  Andrea Corallo  <acorallo@gnu.org>

	Work around GCC bug affecting Garbage Collection.

	* src/lisp.h (flush_stack_call_func): Prevent GCC sibling call
	optimization from operating on an asm inline.  (bug#65727)

2024-05-18  Dmitry Gutov  <dmitry@gutov.dev>

	Fix project-find-regexp in remote projects

	* lisp/progmodes/xref.el (xref--hits-file-prefix): New variable.
	Something to prepend to each file name.  (bug#69233)
	(xref--convert-hits): Use it to also store the "default directory"
	part of the filename conditionally on whether it's remote.
	(xref--collect-matches): Use the new variable here.

2024-05-18  Dmitry Gutov  <dmitry@gutov.dev>

	xref--group-name-for-display: Undo most of the latest change

	* lisp/progmodes/xref.el (xref--group-name-for-display): Remove
	the DD-SUFFIX parameter, returning the function more like to how
	it was.  (bug#69233)
	(xref--analyze, xref--add-log-current-defun): Revert the previous
	change accordingly.

	* test/lisp/progmodes/xref-tests.el: Undo the last change.

2024-05-17  Po Lu  <luangruo@yahoo.com>

	Port to certain Android environments with no GUI

	* configure.ac (USER_FULL_NAME): Define to android_user_full_name
	only when a GUI system is being built.  Otherwise, set to
	pw->pw_gecos or NULL consistently with the presence of
	pw->pw_gecos.

	* src/editfns.c (Fuser_full_name): Adjust to match.  Accept NULL
	values from USER_FULL_NAME.

2024-05-17  Jim Porter  <jporterbugs@gmail.com>

	Add new Eshell built-in command 'funcall'

	* lisp/eshell/esh-cmd.el (eshell/funcall): New function...

	* test/lisp/eshell/em-glob-tests.el
	(em-glob-test/expand/splice-results)
	(em-glob-test/expand/no-splice-results)
	(em-glob-test/expand/explicitly-splice-results)
	(em-glob-test/expand/explicitly-listify-results):
	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/quoted-interp-lisp-indices)
	(esh-var-test/quoted-interp-cmd-indices)
	(esh-var-test/interp-convert-quoted-var-number)
	(esh-var-test/quoted-interp-convert-var-number)
	(esh-var-test/quoted-interp-convert-quoted-var-number)
	(esh-var-test/last-status-var-lisp-command)
	(esh-var-test/last-result-var-split-indices)
	(esh-var-test/last-arg-var-split-indices): ... use it in tests.

	* doc/misc/eshell.texi (List of Built-ins): Describe this command.

2024-05-16  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Allow running under Emacs >=27

	I would like to advertise cperl-mode.el from the repository as a
	workaround for bug#70948.  This can be achieved by safeguarding
	the call to derived-mode-add-parents with a version check.

	* lisp/progmodes/cperl-mode.el: Call derived-mode-add-parents only
	if it is available.

2024-05-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	(describe-package-1): Handle (nil . "string") in `:maintainer'

	* lisp/emacs-lisp/package.el (describe-package-1): Refine the
	check to distinguish the old single-maintainer format from the new
	multi-maintainer format.  (bug#69712)

2024-05-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/loadup.el: Add workaround for occasional "bootstrap"
	failure.

2024-05-16  Robert Pluim  <rpluim@gmail.com>

	Add multi/unibyte string tests for key-description

	* test/src/keymap-tests.el (keymap--key-description): Add
	multi/unibyte tests.

	This is to check the fix for Bug#59305.

2024-05-16  Robert Pluim  <rpluim@gmail.com>

	* doc/emacs/mule.texi (Unibyte Mode): Mention
	iso-transl-set-language.

2024-05-16  Andrea Corallo  <acorallo@gnu.org>

	Fix bootstrap with checking enabled

	* lisp/emacs-lisp/comp.el (comp--limplify-top-level): Set function
	safety.

2024-05-16  Jim Porter  <jporterbugs@gmail.com>

	Use "/local:" prefix in Eshell to run local commands when cwd is
	remote.

	* lisp/eshell/esh-ext.el (eshell-explicit-remote-commands)
	(eshell-explicit-command): Update docstrings.
	(eshell--local-prefix): New constant.
	(eshell-handle-remote-command): Remove.
	(eshell-quoted-file-command): New function...
	(eshell-ext-initialize): ... add it as a hook.
	(eshell-remote-command): Support running commands on localhost.
	(eshell-connection-local-command): Rename from
	'eshell-external-command'.
	(eshell-external-command): New implementation calling
	'eshell-remote-command' or 'eshell-connection-local-command' as
	appropriate.

	* test/lisp/eshell/esh-ext-tests.el
	(esh-ext-test/explicitly-local-command): Update test.

	* doc/misc/eshell.texi (Remote Access): Update documentation.

	* etc/NEWS: Update announcement.

2024-05-15  Stefan Monnier <monnier@iro.umontreal.ca>

	(eglot--managed-mode): Avoid calling track-changes unregistered

	* lisp/progmodes/eglot.el (eglot--managed-mode): Unregister from
	track-changes after `eglot-shutdown' since that function may call
	`eglot--signal-textDocument/didChange'.  (bug#70927)

2024-05-15  Sean Whitton  <spwhitton@spwhitton.name>

	vc-git-root-log-format: Explicitly match periods

	* lisp/vc/vc-git.el (vc-git-root-log-format): Explicitly match
	periods, rather than matching them only because '.' matches any
	chars.

2024-05-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	control.texi: Be a bit more explicit about the behavior of
	`pcase-let'.

	* doc/lispref/control.texi (Destructuring with pcase Patterns):
	Clarify the kind of "unspecified" behavior that can occur when the
	destructing pattern does not match the value.

2024-05-15  Andrea Corallo  <acorallo@gnu.org>

	* admin/MAINTAINERS: Add myself in (co-)maintainers.

2024-05-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	(xref--collect-matches): Move inhibit-modification-hooks binding down

	* lisp/progmodes/xref.el (xref--collect-matches): Move the
	inhibit-modification-hooks binding a little down.  (bug#53749)
	(xref--show-common-initialize): Add sharp-quoting.

2024-05-14  Eli Zaretskii  <eliz@gnu.org>

	Avoid another warning.  (bug#70942)

2024-05-14  Eli Zaretskii  <eliz@gnu.org>

	Fix some compilation warnings

	Reported by Jacob Faibussowitsch <jacob.fai@gmail.com>

	* lisp/net/eww.el (imagep): Declare.

	* src/xdisp.c (note_fringe_highlight): Now compiled only if
	HAVE_WINDOW_SYSTEM.

2024-05-14  Andrea Corallo  <acorallo@gnu.org>

	* lisp/gnus/nnatom.el (libxml-parse-xml-region): Declare to
	silence warning.

2024-05-14  Robert Pluim  <rpluim@gmail.com>

	Document 'use-default-font-for-symbols' more

	"why does my set-fontset-font call not work for symbols" is a
	common question, and it's because 'use-default-font-for-symbols'
	is not discoverable enough.

	* doc/emacs/mule.texi (Modifying Fontsets): Mention it here.
	* doc/lispref/display.texi (Fontsets): And here.
	* src/fontset.c (Fset_fontset_font): And most importantly here.

2024-05-14  Illia Ostapyshyn  <illia@yshyn.com>

	Use proper smime-keys entry for S/MIME signatures using OpenSSL

	* doc/misc/emacs-mime.texi (MML Definition):
	* lisp/gnus/mml.el (mml-parse-1): Add chainfile parameter to sign
	tags.
	* lisp/gnus/mml-smime.el (mml-smime-openssl-sign-query): Include
	the additional certificates from smime-keys in MML tag generation
	as chainfile parameters.
	(mml-smime-openssl-sign): Forward chainfile entries from the
	parsed tag alist to smime-sign-buffer.  (bug#67931)

2024-05-14  Andrea Corallo  <acorallo@gnu.org>

	* doc/lispref/functions.texi (Declare Form): Rename and update
	'ftype' entry.

	* etc/NEWS: Rename 'type' -> 'ftype' and tweak it.

2024-05-14  Andrea Corallo  <acorallo@gnu.org>

	Allow for optional function name parameter in 'ftype' declaration

	* lisp/emacs-lisp/byte-run.el (defun-declarations-alist): Allow
	for optional function name parameter in 'ftype' declaration.

2024-05-14  Andrea Corallo  <acorallo@gnu.org>

	Change 'type' declaration to 'ftype'

	* lisp/window.el (get-lru-window, get-largest-window)
	(one-window-p): Update function type declaration.
	* lisp/subr.el (ignore, error, zerop, fixnump, bignump, lsh)
	(last, eventp, mouse-movement-p, log10, memory-limit)
	(internal-pop-keymap): Likewise.
	* lisp/simple.el (count-lines, mark, string-empty-p): Likewise.
	* lisp/files.el (parse-colon-path): Likewise.
	* lisp/env.el (getenv): Likewise.
	* lisp/emacs-lisp/regexp-opt.el (regexp-opt): Likewise.
	* lisp/emacs-lisp/lisp.el (buffer-end): Likewise.
	* lisp/emacs-lisp/comp.el (comp--final): Likewise.
	* lisp/custom.el (custom-variable-p): Likewise.
	* lisp/emacs-lisp/byte-run.el (defun-declarations-alist): Rename
	'type' -> 'ftype'.

2024-05-14  Michael Albinus  <michael.albinus@gmx.de>

	Trace Tramp user error

	* lisp/net/tramp-androidsu.el
	(tramp-androidsu-maybe-open-connection): Use `tramp-user-error'
	for the traces.

2024-05-14  Po Lu  <luangruo@yahoo.com>

	Port tramp-androidsu to a wider variety of systems

	* lisp/net/tramp-androidsu.el
	(tramp-androidsu-maybe-open-connection): Search for `su' when the
	connection is initiated; replace PATH of inferior shell with
	trap-androidsu-remote-path.
	(tramp-androidsu-handle-make-process): Do not provide username if
	root.

2024-05-14  Juri Linkov  <juri@linkov.net>

	Add documentation about sorting Imenu completions (bug#70846)

	* doc/emacs/programs.texi (Imenu): Document how Imenu completions
	can be sorted.

	* lisp/imenu.el (imenu-sort-function): Explain in the docstring
	how to sort Imenu completions.

2024-05-14  Po Lu  <luangruo@yahoo.com>

	Fix failure of `restart-emacs' to restart Emacs on Android

	* src/emacs.c (Fkill_emacs) [HAVE_ANDROID && !ANDROID_STUBIFY]:
	Arrange to terminate Emacs upon receipt of a bus error.

2024-05-13  Andrea Corallo  <acorallo@gnu.org>

	* etc/NEWS (Safety compilation parameter): Add entry.

2024-05-13  Andrea Corallo  <acorallo@gnu.org>

	Add some 'compilation-safety' documentation

	* lisp/emacs-lisp/bytecomp.el (compilation-safety): Better doc.
	* doc/lispref/functions.texi (Declare Form): Add 'safety'.
	* doc/lispref/compile.texi (Native-Compilation Variables): Add
	'compilation-safety'.

2024-05-13  Andrea Corallo  <acorallo@gnu.org>

	Add 'safety' function declaration

	* lisp/emacs-lisp/comp.el (comp-known-predicates): Use
	'comp-func-safety'.
	(comp-ctxt, comp-mvar-type-hint-match-p): New 'safety' slot.
	(comp-c-func-name): New function.
	(comp--spill-lap-function, comp--intern-func-in-ctxt): Update.
	* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Spill
	safety.
	* lisp/emacs-lisp/byte-run.el (byte-run--set-completion): New
	alias.
	(defun-declarations-alist): Update.

2024-05-13  Andrea Corallo  <acorallo@gnu.org>

	Introduce 'compilation-safety' variable

	* lisp/emacs-lisp/bytecomp.el (compilation-safety): New customize.
	* src/comp.c (comp_t): Add func_safety.
	(emit_call_with_type_hint, emit_call2_with_type_hint): Make use
	of.
	(compile_function): Set 'comp.func_safety'.

2024-05-13  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp.el (comp--get-function-cstr): Fix it.

2024-05-13  Mattias Engdegård  <mattiase@acm.org>

	Avoid resizing mutation in subst-char-in-string, take two

	This time we take care to preserve properties, and add a test.

	* lisp/subr.el (subst-char-in-string): Use string-replace to avoid
	resizing mutation and O(n^2) time.
	* test/lisp/subr-tests.el (subr--subst-char-in-string): New test.

2024-05-13  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/tramp.texi: Adapt some markups.

2024-05-13  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-handle-unlock-file): Be quiet if user
	isn't interested in lock files.  (Bug#70900)

2024-05-13  Juri Linkov  <juri@linkov.net>

	Support more values for imenu-flatten

	* lisp/imenu.el (imenu-flatten): Change type boolean to choice of
	more values for prefix/suffix section names.
	(imenu--completion-buffer): Add :annotation-function if
	'imenu-flatten' is 'annotation'.
	(imenu--flatten-index-alist): Put property 'imenu-section' if
	'imenu-flatten' is 'annotation'.  (bug#70846)

2024-05-13  Po Lu  <luangruo@yahoo.com>

	Communicate frame titles to the window manager on Android

	* java/org/gnu/emacs/EmacsActivity.java (detachWindow)
	(attachWindow): Call updateWmName.
	(updateWmName): New function; transfer wm name from the window
	attached to the task's description.

	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow) <wmName>: New
	field.
	(setWmName): New function.

	* src/android.c (android_init_emacs_window): Link to new function.
	(android_set_wm_name): New function.

	* src/android.h (struct android_emacs_service): Delete unused
	entries.

	* src/androidfns.c (android_set_name_internal, android_set_name)
	(android_implicitly_set_name, android_explicitly_set_name)
	(android_set_title): Port from X.

	* src/androidterm.c (android_term_init): Compute default frame
	title.

	* src/androidterm.h (struct android_display_info) <x_id_name>: New
	field.

2024-05-13  Dmitry Gutov  <dmitry@gutov.dev>

	ruby-rubocop-use-bundler: New user option

	* lisp/progmodes/ruby-mode.el (ruby-rubocop-use-bundler): New user
	option.
	(ruby-flymake-rubocop--use-bundler-p): Use it.

	* etc/NEWS: Mention it.

2024-05-13  Po Lu  <luangruo@yahoo.com>

	Complete pacification of build warnings on Android

	* build-aux/makecounter.sh: Introduce extern declaration of
	emacs_shortlisp_counter.

	* src/android.c (android_class_path): Declare static.

	* src/androidfont.c (font_driver_class, font_spec_class)
	(integer_class, font_metrics_class, font_object_class): Declare
	static.

	* src/androidterm.c (android_frame_parm_handlers): Move
	declaration...

	* src/androidterm.h (android_frame_parm_handlers): ... here.

2024-05-12  Dmitry Gutov  <dmitry@gutov.dev>

	Fix 'C-u C-x p g' globally and 'A' in dired-mode

	* lisp/progmodes/project.el (project-find-regexp): Ensure the
	DEFAULT-DIRECTORY is set correctly for the 'C-u' case.
	(bug#70888)

	* lisp/progmodes/project.el (project--files-in-directory): Ensure
	that the DIR argument ends with a slash -- 'dired-do-find-regexp'
	passes it differently, for example.

	* lisp/progmodes/xref.el (xref--group-name-for-display): Ensure
	the project-relative and absolute display modes work well for
	groups with "relative" file names.
	(xref--analyze, xref--add-log-current-defun): Change accordingly.

	* test/lisp/progmodes/project-tests.el
	(project-find-regexp-with-prefix): New test.

2024-05-12  Michael Albinus  <michael.albinus@gmx.de>

	Add Tramp method "nspawn"

	* doc/misc/tramp.texi: Adapt some markups.
	(Inline methods) <nspawn>: Add.
	(Default Host): Mention default host for "nspawn".
	(Customizing Methods): Remove tramp-nspawn.
	(Password handling): Add "nspawn".

	* etc/NEWS: New Tramp method "nspawn".

	* lisp/net/tramp-compat.el (tramp-nspawn): Warn, if that package
	is used.

	* lisp/net/tramp-container.el (tramp-nspawn-program): New
	defcustom.
	(tramp-nspawn-method): New defconst.
	(tramp-nspawn--completion-function, tramp-enable-nspawn-method):
	New defuns.

	* lisp/net/tramp.el (tramp-local-host-regexp): Add OpenSUSE host
	names.

2024-05-12  Dmitry Gutov  <dmitry@gutov.dev>

	completion--replace: Fix completion cycling

	* lisp/minibuffer.el (completion--replace): Don't "insert before
	markers" after all because in some cases
	(https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00701.html)
	- like cycling - BEG can be denoted by a marker as well.
	(minibuffer-completion-help): Make FIELD-END simply a fixnum.  And
	adjust its value manually inside the local
	completion-list-insert-choice-function.  (bug#48356)

2024-05-12  Po Lu  <luangruo@yahoo.com>

	Fix offset of reported conversion regions

	* src/androidterm.c (request_class, text_class): Pacify new
	warning.
	(android_update_selection): Don't redundantly subtract 1 from
	compose region start.

2024-05-12  Mattias Engdegård  <mattiase@acm.org>

	Revert "Avoid resizing mutation in subst-char-in-string"

	This reverts commit 184d6e8c02345583264b053bb59ae031bb1c5a00.

	It wasn't quite correct: the path through `string-replace` would not
	preserve text properties in the input string, which broke Gnus.

2024-05-12  Mattias Engdegård  <mattiase@acm.org>

	Silence some macOS build warnings

	* src/image.c (native_image_type): Declare static.
	* src/keyboard.c (lispy_function_keys): Declare static on NS.
	* src/nsmenu.m (context_menu_value):
	* src/nsterm.m (ns_frame_parm_handlers): Move extern declarations...
	* src/nsterm.h: ...here.
	* test/src/emacs-module-resources/mod-test.c: Add extern declaration.

2024-05-12  Mattias Engdegård  <mattiase@acm.org>

	Safer and faster string sorting

	* lisp/emacs-lisp/cl-seq.el (cl-sort):
	Don't use string mutation when sorting the characters in a string.
	This avoids O(n^2) run time and makes it future-safe.

2024-05-12  Po Lu  <luangruo@yahoo.com>

	Properly deinitialize directory cursors on closedir

	* src/androidvfs.c (android_saf_tree_closedir): Call cursor.close,
	for deleting the local reference to enable its garbage collection
	is not sufficient to release all related resources.

2024-05-12  Po Lu  <luangruo@yahoo.com>

	Additional changes to processing of Num Lock on Android

	* java/org/gnu/emacs/EmacsView.java (onKeyDown, onKeyMultiple)
	(onKeyDown): Disregard Num and Scroll Lock keys, and return value
	of window functions to the system.

	* java/org/gnu/emacs/EmacsWindow.java (eventModifiers): Return
	normalized meta state, not only those bits the system considers
	modifiers.
	(onKeyDown, onKeyUp): Ignore numpad keys to which no base
	characters are assigned, so that the system may generate the
	proper action keys instead.

2024-05-12  Po Lu  <luangruo@yahoo.com>

	Correct earlier changes to processing of Num Lock on Android

	* java/org/gnu/emacs/EmacsWindow.java (onKeyDown, onKeyUp): Cease
	stripping META_NUM_LOCK_ON and META_SCROLL_LOCK_ON from meta masks
	reported to getUnicodeChar.

2024-05-12  Po Lu  <luangruo@yahoo.com>

	Pacify warnings in gmalloc.c

	* src/gmalloc.c (__malloc_initialize_hook): Also declare in
	advance on Glibc 2.24 and later.
	(__after_morecore_hook, __morecore): Likewise on Glibc 2.34 and
	later.

2024-05-12  Po Lu  <luangruo@yahoo.com>

	* oldXMenu/Activate.c (x_menu_grab_keyboard): Declare static.

2024-05-12  Po Lu  <luangruo@yahoo.com>

	Fix the DJGPP build

	* src/fns.c (value_cmp) [MSDOS]: Consider processes unordered on
	DOS.

2024-05-12  Po Lu  <luangruo@yahoo.com>

	* src/keyboard.c (lispy_function_keys): Define as static on
	Android.

2024-05-12  Po Lu  <luangruo@yahoo.com>

	Fix the DJGPP build

	* msdos/sedlibmk.inp (HAVE_STRTOF, NULLPTR_T_NEEDS_STDDEF): Define
	to 1.

2024-05-12  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -Wmissing-variable-declarations

	This is a new warning diagnostic in GCC 14.
	* lib-src/etags.c (mercury_heuristics_ratio):
	* src/pgtkselect.c, src/xselect.c (selection_request_stack):
	* src/xselect.c (outstanding_transfers):
	* src/xterm.c (pending_selection_requests)
	(x_dnd_waiting_for_motif_finish_display): Now static.
	* lib-src/make-docfile.c (close_emacs_globals): Arrange for
	lispsym to be declared with extern first, when compiling lread.c.
	* src/alloc.c (gdb_make_enums_visible) [__GNUC__]:
	* src/emacs.c (RCS_Id):
	* src/keyboard.c (stop_character):
	* src/print.c (print_output_debug_flag): Now declared with extern
	first.
	* src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN) [MAIN_PROGRAM]: Arrange for
	ID to be declared extern first.
	* src/lisp.h (garbage_collection_inhibited):
	* src/xterm.h (x_frame_parm_handlers): Declare here, so that its
	interface is properly checked.  Other decls removed.

2024-05-12  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2024-05-12  Paul Eggert  <eggert@cs.ucla.edu>

	Adjust to recent Gnulib changes

	* admin/merge-gnulib: Also remove the new Gnulib file
	m4/off64_t.m4, as Emacs doesn’t need off64_t.
	* configure.ac (gl_TYPE_OFF64_T): Define a nearly no-op.

2024-05-11  Po Lu  <luangruo@yahoo.com>

	Fix test of whether to insert lexical-binding cookies in custom
	files.

	* lisp/cus-edit.el (custom-save-all): Test whether the buffer is
	empty, not whether point is at EOB.

2024-05-11  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	0ec9a02a0d5 ; Fix doc strings of two scroll-bar functions.
	2f8bccf9d8c ; * doc/emacs/frames.texi (Scroll Bars): Improve formatting.
	f9832e80b89 ; * lisp/textmodes/ispell.el (ispell-message): Add commen...
	a7d247be90c ; * etc/PROBLEMS: Document macOS problems with Emacs.clr ...
	8560ee7b5ca ; * doc/misc/auth.texi (The Unix password store): Fix var...
	74c6b59af15 ; Advertise scroll bars some more
	3d65d4306b9 Avoid errors in 'image-dired-tag-thumbnail'

2024-05-11  kobarity  <kobarity@gmail.com>
	    Lin Sun  <sunlin7@hotmail.com>

	Support Python 3 in 'package-test-update-archives-async'

	* test/lisp/emacs-lisp/package-resources/package-test-server.py:
	Support Python 3.
	* test/lisp/emacs-lisp/package-tests.el
	(package-test-update-archives-async): Search for an executable
	named "python", "python3", or "python2".  (Bug#70722)

2024-05-11  Eli Zaretskii  <eliz@gnu.org>

	Fix Rmail summary by thread

	* lisp/mail/rmailsum.el (rmail-summary-by-thread): Use value of
	'rmail-total-messages' local to 'rmail-buffer'.  Patch by Andrea
	Monaco <andrea.monaco@autistici.org>.

2024-05-11  Michael Albinus  <michael.albinus@gmx.de>

	New Tramp method "run0"

	* doc/misc/tramp.texi (Quick Start Guide, Inline methods)
	(Password handling, Predefined connection information)
	(Ad-hoc multi-hops): Add "run0".
	(Remote processes): Mention tramp-use-connection-share.

	* etc/NEWS: New Tramp method "run0".

	* lisp/net/tramp.el (tramp-completion-dissect-file-name):
	* lisp/net/tramp-cmds.el (tramp-list-remote-buffers):
	* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory): Use
	`tramp-compat-keep-seq'.

	* lisp/net/tramp-cmds.el (tramp-file-name-with-method): Add
	"run0".

	* lisp/net/tramp-sh.el (tramp-enable-run0-method): New defun.
	(tramp-sh-handle-expand-file-name): Add "run0".
	(tramp-maybe-open-connection): Simplify setting timeout.

2024-05-11  Po Lu  <luangruo@yahoo.com>

	Improve documentation of p-s-p-scroll-down-page

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page): Document unit in which
	the height of the window is measured, and what manner of height
	applies.  Reported by Eli Zaretskii <eliz@gnu.org>.

2024-05-11  Po Lu  <luangruo@yahoo.com>

	Delete unused functions

	* java/org/gnu/emacs/EmacsNative.java (dup, close):

	* src/android.c (dup, close): Delete functions no longer
	referenced.

2024-05-10  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Update gnus-draft-check-draft-articles to use find-buffer-visiting

	* lisp/gnus/gnus-draft.el (gnus-draft-check-draft-articles): Don't
	loop through all the buffers; this removes the need for the
	`file-remote-p' check. Also give the user some nicer feedback
	about what's going on.

2024-05-10  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Remove extra message-set-auto-save-file-name call in Gnus drafts

	* lisp/gnus/gnus-draft.el (gnus-draft-setup): This function is
	already being called as part of the message-mail -> message-mode
	call above. Running it twice results in a jump in assigned article
	numbers, and the corresponding active value of the drafts group.
	(Bug#70579)

2024-05-10  Juri Linkov  <juri@linkov.net>

	Support customization of sorting order for Imenu completion candidates

	* lisp/imenu.el (imenu--completion-buffer): Set
	completion-extra-properties to '(:category imenu).
	(imenu--flatten-index-alist): Use imenu--subalist-p to handle
	newer format (INDEX-NAME INDEX-POSITION FUNCTION ARGUMENTS...) as
	well.  (bug#70846)

	* doc/emacs/misc.texi (DocView Navigation): Fix typo.

2024-05-10  Mattias Engdegård  <mattiase@acm.org>

	Avoid resizing mutation in subst-char-in-string

	* lisp/subr.el (subst-char-in-string): Use string-replace to avoid
	resizing mutation and O(n^2) time.

2024-05-10  Eli Zaretskii  <eliz@gnu.org>

	Fix 'dictionary-tooltip-mode'

	* lisp/tooltip.el (tooltip-event-buffer): Make sure 'posn-window'
	returns a window before calling 'window-buffer'.

	* lisp/net/dictionary.el (dictionary-default-dictionary)
	(dictionary-tooltip-dictionary): Doc fixes.
	(dictionary-tooltip-dictionary): Change default value to t, which
	means the same dictionary as 'dictionary-default-dictionary'.
	(dictionary-do-search): If NOMATCHING is non-nil, do not insert
	anything into the current buffer, as that is unexpected when
	showing definitions in tooltips.
	(dictionary-word-at-mouse-event): Be defensive about the values
	returned by 'tooltip-event-buffer' and 'posn-point': they can be
	unexpected when the mouse pointer is on the tool bar or mode line
	etc.
	(dictionary-display-tooltip): Ignore errors in this function.
	(dictionary-tooltip-mode): Ignore mouse-movement events on tool
	bar and tab-bar.
	(dictionary-dictionaries): Decode the server response to present
	dictionaries in human-readable form.  Document in the doc string
	the format of the return value.

2024-05-10  Po Lu  <luangruo@yahoo.com>

	Implement dots and dashes on MS-Windows

	* src/haikuterm.c (haiku_draw_dash): Correct whitespace error.

	* src/w32term.c (w32_draw_dash, w32_fill_underline)
	(w32_draw_glyph_string): Port display of dash and dot underline
	styles from X.

2024-05-10  Juri Linkov  <juri@linkov.net>

	* lisp/imenu.el (imenu-flatten): New defcustom.  (bug#70846)
	(imenu-level-separator): Adjust the docstring.
	(imenu--flatten-index-alist): New function revived
	from the initial implementation of this package.
	(imenu-choose-buffer-index): Use imenu--flatten-index-alist
	when imenu-flatten is non-nil.
	(imenu-buffer-menubar): Remove obsolete variable.

	* doc/emacs/programs.texi (Imenu): Document imenu-flatten.

2024-05-10  Po Lu  <luangruo@yahoo.com>

	Remove redundant encoding of strings in androidvfs.c

	* java/org/gnu/emacs/EmacsService.java (getDocumentTrees): Accept
	PROVIDER as a String.

	* src/android.c (android_init_emacs_service):

	* src/androidvfs.c (android_saf_root_opendir): Adjust to match.

2024-05-10  Po Lu  <luangruo@yahoo.com>

	Document a problem with Microsoft SwiftKey

	* etc/PROBLEMS (Runtime problems specific to Android): Document
	incompatibility with Microsoft Swiftkey.

2024-05-10  Po Lu  <luangruo@yahoo.com>

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down)
	(pixel-scroll-precision-scroll-up): Apply finer threshold for the
	minimum unit of scrolling.
	(pixel-scroll-precision-scroll-down-page): Document true
	restrictions on DELTA.  (bug#70856)

2024-05-10  Po Lu  <luangruo@yahoo.com>

	Fix earlier change to content URI resolution on Android

	* java/org/gnu/emacs/EmacsService.java (openContentUri): Return -1
	if fd be NULL.

	* src/androidvfs.c (android_authority_open): Detect
	SecurityException and suchlike.
	(android_vfs_init): Initialize exception classes on Android 4.4.

2024-05-10  Andrew G Cohen  <cohen@andy.bu.edu>

	Don't limit gnus thread searches to a single message

	* lisp/gnus/gnus-search.el (gnus-search-single-p): Searches for a
	single message id finish after finding this one message; thread
	searches continue until all messages are found.

2024-05-10  Andrew G Cohen  <cohen@andy.bu.edu>

	Improve doc-type determination in doc-view

	* lisp/doc-view.el (doc-view-set-doc-type): If buffer-file-name is
	not set try the buffer-name to identify the doc type.

2024-05-10  Andrew G Cohen  <cohen@andy.bu.edu>

	Find correct parent for articles in gnus

	* lisp/gnus/gnus-sum.el (gnus-summary-refer-parent-article): When
	an article's headers have been altered, use the altered headers to
	find the parent.

2024-05-09  Paul Eggert  <eggert@cs.ucla.edu>

	Improve static checking when using upcoming GCC 13.3

	* src/lisp.h: In GCC 13.3 and later, do not ignore
	-Wanalyzer-allocation-size.
	* src/marker.c: In GCC 13.3 and later, do not ignore
	-Wanalyzer-deref-before-check.

2024-05-09  Michael Albinus  <michael.albinus@gmx.de>

	Tramp code cleanup

	* lisp/net/tramp-compat.el (tramp-compat-seq-keep): New defalias.

	* lisp/net/tramp.el (tramp-enable-method):
	* lisp/net/tramp-adb.el (tramp-adb-parse-device-names):
	* lisp/net/tramp-cache.el (tramp-list-connections):
	* lisp/net/tramp-cmds.el (tramp-bug, tramp-append-tramp-buffers):
	* lisp/net/tramp-container.el
	(tramp-container--completion-function)
	(tramp-toolbox--completion-function)
	(tramp-flatpak--completion-function)
	(tramp-apptainer--completion-function):
	* lisp/net/tramp-rclone.el (tramp-rclone-parse-device-names): Use
	it.

2024-05-09  Charalampos Mitrodimas  <charmitro@posteo.net>  (tiny change)

	Fix 'srecode-all-template-hash' always returning nil

	The issue was that the function always returned nil because the
	closing parentheses were in the wrong position.  This meant that
	the function couldn't give back the data it was supposed to,
	making the whole srecode system not work properly.  By moving the
	parentheses to the correct place, the function now returns a hash
	table with all the templates it finds.
	* lisp/cedet/srecode/find.el (srecode-all-template-hash): Adjusted
	the position of closing parentheses so that the mhash variable is
	returned correctly.  (Bug#70765)

2024-05-09  Noah Peart  <noah.v.peart@gmail.com>

	Add bitwise assignment operators to 'python--treesit-operators'

	* lisp/progmodes/python.el (python--treesit-operators): Add
	bitwise assignment operators.  (Bug#70666)

2024-05-09  Po Lu  <luangruo@yahoo.com>

	Intern additional symbols ahead-of-time

	* src/gnutls.c (Fgnutls_available_p, syms_of_gnutls):

	* src/minibuf.c (Fread_buffer, syms_of_minibuf): Define and intern
	symbols overlooked in the previous change.

2024-05-09  Po Lu  <luangruo@yahoo.com>

	Replace calls to intern with a constant string with DEFSYMs

	* src/alloc.c (display_malloc_warning, syms_of_alloc):

	* src/buffer.c (Fmake_indirect_buffer, Fbuffer_local_variables)
	(Frename_buffer, Fkill_buffer, Fset_buffer_major_mode)
	(Fset_buffer_multibyte, syms_of_buffer):

	* src/callint.c (read_file_name, Fcall_interactively)
	(syms_of_callint):

	* src/callproc.c (call_process, create_temp_file)
	(syms_of_callproc):

	* src/charset.c (Fdefine_charset_internal, syms_of_charset):

	* src/cmds.c (internal_self_insert, syms_of_cmds):

	* src/coding.c (record_conversion_result)
	(Fdefine_coding_system_internal, syms_of_coding):

	* src/dbusbind.c (xd_signature, Fdbus_message_internal)
	(syms_of_dbusbind):

	* src/dispnew.c (init_faces_initial):

	* src/doc.c (Fsnarf_documentation, syms_of_doc):

	* src/dosfns.c (system_process_attributes, syms_of_dosfns):

	* src/emacs.c (init_cmdargs, Fdump_emacs, decode_env_path)
	(syms_of_emacs):

	* src/eval.c (call_debugger, Fdefvaralias, syms_of_eval):

	* src/fileio.c (barf_or_query_if_file_exists)
	(Finsert_file_contents, auto_save_error, Fdo_auto_save)
	(syms_of_fileio):

	* src/filelock.c (lock_file_1, syms_of_filelock):

	* src/fontset.c (fontset_from_font, syms_of_fontset):

	* src/frame.c (make_frame_without_minibuffer, syms_of_frame):

	* src/gnutls.c (emacs_gnutls_certificate_details)
	(Fgnutls_peer_status_warning_describe, Fgnutls_peer_status)
	(gnutls_verify_boot, syms_of_gnutls):

	* src/gtkutil.c (style_changed_cb, find_rtl_image):

	* src/image.c (imagemagick_filename_hint, gs_load)
	(syms_of_image):

	* src/keyboard.c (command_loop_1, read_char, timer_start_idle)
	(read_char_minibuf_menu_prompt, Fsuspend_emacs)
	(syms_of_keyboard):

	* src/keymap.c (Fmap_keymap, Flookup_key, Fdescribe_vector)
	(describe_vector, syms_of_keymap):

	* src/lread.c (Fread, Fread_positioning_symbols, syms_of_lread):

	* src/minibuf.c (Fabort_minibuffers, Fread_buffer)
	(Fcompleting_read, syms_of_minibuf):

	* src/msdos.c (XMenuActivate, run_msdos_command, syms_of_msdos):

	* src/nsfns.m (Fx_display_backing_store, Fx_display_visual_class)
	(Fns_hide_emacs, Fsystem_move_file_to_trash, ns_create_tip_frame)
	(x_hide_tip, Fx_show_tip, syms_of_nsfns):

	* src/nsfont.m (ns_spec_to_descriptor, ns_descriptor_to_entity)
	(syms_of_nsfont):

	* src/pdumper.c (Fdump_emacs_portable):

	* src/pgtkfns.c (Fx_display_visual_class, x_create_tip_frame)
	(Fx_show_tip, syms_of_pgtkfns):

	* src/pgtkterm.c (syms_of_pgtkterm, pgtk_cr_export_frames):

	* src/term.c (term_get_fkeys_1, set_tty_color_mode, Fsuspend_tty)
	(Fresume_tty, tty_menu_activate, syms_of_term):

	* src/terminal.c (create_terminal, syms_of_terminal):

	* src/w32fns.c (Fx_display_backing_store)
	(Fx_display_visual_class, Fset_message_beep, Fx_open_connection)
	(Fx_show_tip, Fx_file_dialog, Fsystem_move_file_to_trash)
	(Fw32_toggle_lock_key, syms_of_w32fns):

	* src/w32font.c (w32_enumfont_pattern_entity, syms_of_w32font):

	* src/w32term.c (w32_bitmap_icon, syms_of_w32term):

	* src/xdisp.c (message_dolog, define_frame_cursor1)
	(syms_of_xdisp):

	* src/xfaces.c (tty_lookup_color, syms_of_xfaces):

	* src/xml.c (make_dom, syms_of_xml):

	* src/xterm.c (syms_of_xterm):

	* src/xwidget.c (store_xwidget_download_callback_event)
	(store_xwidget_js_callback_event, syms_of_xwidget): Define symbols
	for symbols interned with `intern' from a constant string, delete
	duplicate DEFSYM directives, and substitute them for such calls to
	intern.  This excludes only those symbols which are interned and
	referenced only once during Emacs's initialization, the timing of
	whose interning is inconsequential, and symbols in w32.c, which
	would need to be transferred to a new syms_of_w32 function that I
	cannot test.

2024-05-09  Juri Linkov  <juri@linkov.net>

	* lisp/treesit.el (treesit-outline-search): Handle bobp specially.
	At the beginning of the buffer call 'treesit-outline-search'
	recursively with the `looking-at' argument set to t, since
	`treesit-navigate-thing' can't find a thing at bobp (bug#70789).

2024-05-09  Noah Peart  <noah.v.peart@gmail.com>

	Fontify for_statement variable in python-ts-mode (bug#70718)

	* lisp/progmodes/python.el (python--treesit-settings): Add
	font-lock query for for_statement variable in assignment feature.

2024-05-09  Yuan Fu  <casouri@gmail.com>

	Fontify namespace in c++-ts-mode

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add
	a rule for namespace.

2024-05-09  Yuan Fu  <casouri@gmail.com>

	Fix #if defined directive fontification in c-ts-mode

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
	Fontify each part separately so the identifier isn't overridden.

2024-05-09  john muhl  <jm@pub.pink>

	Improve indentation in 'lua-ts-mode' (bug#70785)

	* lisp/progmodes/lua-ts-mode.el (lua-ts--simple-indent-rules):
	Ignore comments when aligning arguments, parameters and fields.
	Apply simpler rules to simpler usage of anonymous functions.
	Better handling of table as a function argument.
	(lua-ts--comment-first-sibling-matcher):
	(lua-ts--first-real-sibling-anchor):
	(lua-ts--last-arg-function-call-matcher):
	(lua-ts--top-level-function-call-matcher): New function.
	(lua-ts--g-parent):
	(lua-ts--g-g-parent): New function.
	(lua-ts--g-g-g-parent): Use it.
	* test/lisp/progmodes/lua-ts-mode-resources/indent.erts: Add
	tests.

2024-05-09  Yuan Fu  <casouri@gmail.com>

	Fontify doc comment in c-ts-mode with doc-face

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add
	rule for /** comments.

2024-05-09  Dmitry Gutov  <dmitry@gutov.dev>

	xref--collect-matches: Fix the application of syntax-propertize

	* lisp/progmodes/xref.el (xref--collect-matches): Add
	syntax-ppss-flush-cache call when needed.  (bug#53749)

2024-05-09  Dmitry Gutov  <dmitry@gutov.dev>

	choose-completion: Retain the suffix after completion boundary

	* lisp/minibuffer.el (completion-base-suffix): Remove as not
	optimal after all.  (bug#48356)
	(completion--replace): Use insert-before-markers-and-inherit.
	(minibuffer-completion-help): Don't set completion-base-affixes,
	implement the same logic more optimally by local search and
	querying for field boundaries.  Also fix the problem with
	completion table, predicate and extra-props being looked up in the
	wrong buffer.
	(minibuffer-next-completion, minibuffer-choose-completion): Don't
	bind completion-use-base-affixes anymore.

	* lisp/simple.el (completion-base-affixes)
	(completion-use-base-affixes): Remove.
	(completion-list-insert-choice-function): Don't pass them through
	anymore.

2024-05-09  Po Lu  <luangruo@yahoo.com>

	Don't report erroneous /content directory on Android 4.3 and
	earlier.

	* src/androidvfs.c (android_content_opendir): Skip two, not one,
	elements on Android <= 4.4.

2024-05-09  F. Jason Park  <jp@neverwas.me>

	Prefer erc--skip property to erc-track--skipped-msgs

	* lisp/erc/erc-stamp.el (erc-add-timestamp): Honor an overriding
	`erc--ts' "msg prop".
	(erc-stamp--defer-date-insertion-on-post-modify): Add `erc--skip'
	for the `track' module.
	* lisp/erc/erc-track.el (erc-track--skipped-msgs): Remove unused
	variable.  Originally added as part of bug#60936.
	(erc-track-modified-channels): Rely on the `erc--skip' "msg prop"
	instead of the now defunct `erc-track--skipped-msgs' variable for
	detecting requests to omit `track' mode-line updates during
	`erc-display-message'.

2024-05-09  F. Jason Park  <jp@neverwas.me>

	Avoid shared-ref read syntax in ERC message catalogs

	* lisp/erc/erc.el (erc--message-speaker-ctcp-action-input)
	(erc--message-speaker-ctcp-action-statusmsg-input): Don't use
	shared/circular references, like #1=foo ... #1#, in literal
	strings because it triggers CI validation failures.  These
	message-format definitions were originally introduced as part of
	bug#67677.

2024-05-09  F. Jason Park  <jp@neverwas.me>

	Add format-catalog entry for unknown chan mode in ERC

	* lisp/erc/erc.el (erc--process-channel-modes): Use format spec
	catalog entry, and convert char to string.
	(erc-message-english-channel-mode-unknown): New variable.
	* test/lisp/erc/erc-scenarios-base-renick.el
	(erc-scenarios-base-renick-queries-solo): Adjust timeout.
	* test/lisp/erc/erc-scenarios-ignore.el
	(erc-scenarios-ignore/basic): Adjust timeouts.
	* test/lisp/erc/erc-scenarios-misc.el (erc-scenarios-base-flood):
	Adjust timeouts.
	* test/lisp/erc/resources/base/assoc/bouncer-history/barnet.eld:
	Adjust timeouts.
	* test/lisp/erc/resources/base/reuse-buffers/channel/barnet.eld:
	Adjust timeouts.
	* test/lisp/erc/resources/erc-d/erc-d-tests.el (erc-d-run-basic):
	Adjust timeouts.
	* test/lisp/erc/resources/sasl/plain.eld: Adjust timeouts.
	* test/lisp/erc/resources/sasl/external.eld: Adjust timeout.
	* test/lisp/erc/resources/base/auth-source/foonet.eld: Adjust
	timeout.

2024-05-08  Eshel Yaron  <me@eshelyaron.com>

	(repeat-echo-message-string): Reuse 'r-m-c' prompt formatting

	Now that 'repeat-mode' supports adding labels ("hints") next to
	available keys, its prompt is very similar in its structure to
	what we have in 'read-multiple-choice' (a list of labeled keys).
	To make the two interfaces more consistent, reuse the prompt
	formatting that 'read-multiple-choice' employs.

	See short discussion at
	https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00467.html

	* lisp/repeat.el (repeat-echo-message-string): Use
	'rmc--add-key-description' to format keys and their labels.

2024-05-08  Mattias Engdegård  <mattiase@acm.org>

	Don't mutate strings in cl-substitute

	This fixes cl-substitute, cl-substitute-if, cl-substitute-if-not,
	cl-nsubstitute, cl-nsubstitute-if and cl-nsubstitute-if-not, when
	called with a string sequence argument.

	* lisp/emacs-lisp/cl-seq.el (cl-nsubstitute): Avoid running in
	O(n^2) time and make future-safe.

2024-05-08  Po Lu  <luangruo@yahoo.com>

	Correct documentation relating to tool-bar-position

	* doc/emacs/android.texi (Android Windowing): Don't claim that
	tool-bar-position is unsupported on Android.

	* lisp/tool-bar.el (tool-bar-position): Update doc string to
	mention that bottom is supported on all systems but Nextstep.

2024-05-08  Po Lu  <luangruo@yahoo.com>

	Correct earlier change to map-ynp

	* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Don't call
	set-text-conversion-style if not bound.

2024-05-08  Michael Albinus  <michael.albinus@gmx.de>

	More Tramp optional methods

	* doc/misc/tramp.texi (Inline methods) <krlogin, ksu>:
	(External methods) <fcp, nc>: These are optional methods.

	* etc/NEWS: Mention more optional Tramp methods.

	* lisp/net/tramp-androidsu.el (tramp-enable-androidsu-method): Use
	proper regexp for `tramp-default-user-alist'.

	* lisp/net/tramp-sh.el (tramp-enable-nc-method)
	(tramp-enable-ksu-method, tramp-enable-krlogin-method)
	(tramp-enable-fcp-method): New defuns.  Move respective
	configurations there.

	* lisp/net/tramp.el (tramp-enable-method): Implement completion
	for interactive use.

	* test/lisp/net/tramp-tests.el (tramp-test03-file-name-defaults)
	(tramp-test03-file-name-host-rules): Extend tests.

2024-05-08  Po Lu  <luangruo@yahoo.com>

	Fix hang after failed yank-media on Android

	* java/org/gnu/emacs/EmacsClipboard.java (getClipboardTargets)
	(getClipboardData):

	* java/org/gnu/emacs/EmacsSdk11Clipboard.java
	(getClipboardTargets, getClipboardData):

	* java/org/gnu/emacs/EmacsSdk8Clipboard.java
	(getClipboardTargets, getClipboardData): Return string data as
	Strings rather than byte arrays.

	* src/androidselect.c (android_init_emacs_clipboard)
	(Fandroid_get_clipboard_targets): Adjust to match.
	(extract_fd_offsets): Remove duplicated semicolon.
	(Fandroid_get_clipboard_data): Call unblock_input before returning
	if extract_fd_offsets fails.

2024-05-07  Michael Albinus  <michael.albinus@gmx.de>

	Fix last change in tramp-androidsu.el

2024-05-07  Arash Esbati  <arash@gnu.org>

	Support biblatex field in `reftex-cite-format'

	* lisp/textmodes/reftex-cite.el (reftex-format-citation):
	Recognize the alternative "journaltitle" field which is preferred
	by biblatex.  (bug#38762)

	* test/lisp/textmodes/reftex-tests.el
	(reftex-format-citation-test): Adjust test.

2024-05-07  Mattias Engdegård  <mattiase@acm.org>

	* etc/NEWS: Elaborate `type' declare entry and regroup.

2024-05-07  Mattias Engdegård  <mattiase@acm.org>

	Use clear-string instead of fillarray to clobber secret strings

	* lisp/net/sasl-cram.el (sasl-cram-md5-response):
	* lisp/net/sasl-digest.el (sasl-digest-md5-response-value):
	* lisp/net/sasl.el (sasl-plain-response): `fillarray' signals an
	error for strings that contain multibyte chars; `clear-string'
	always works for this purpose.

2024-05-07  Po Lu  <luangruo@yahoo.com>

	Do not report text conversion information from tooltip frames

	* src/xdisp.c (mark_window_display_accurate_1): Skip
	report_point_change if FRAME_WINDOW_P (WINDOW_XFRAME (w)).

2024-05-07  Michael Albinus  <michael.albinus@gmx.de>

	Add Tramp method "apptainer"

	* doc/misc/tramp.texi (Top, Configuration): Add "Optional
	methods".
	(Optional methods): New section.
	(Inline methods) <androidsu, toolbox, flatpak>: These are optional
	methods.
	(Inline methods) <apptainer>: Add.

	* etc/NEWS: New Tramp method "apptainer".  Some Tramp methods are
	optional.  Fix typos.

	* lisp/net/tramp-androidsu.el (tramp-enable-androidsu-method): New
	defun.  Call it when `system-type' is `android'.

	* lisp/net/tramp-container.el (tramp-apptainer-program): New
	defcustom.
	(tramp-apptainer-method): New defconst.
	(tramp-apptainer--completion-function)
	(tramp-enable-toolbox-method, tramp-enable-flatpak-method)
	(tramp-enable-apptainer-method): New defuns.

	* lisp/net/tramp.el (tramp-enable-method): New defun.

	* test/lisp/net/tramp-tests.el (tramp--test-container-p): Add
	"apptainer".
	(tramp--test-supports-processes-p): Extend function.

2024-05-07  Po Lu  <luangruo@yahoo.com>

	Simplify Emacs server detection on Android

	* lib-src/emacsclient.c (set_local_socket) [HAVE_ANDROID]: Do not
	consider XDG_RUNTIME_DIR or test the ownership or accessibility of
	TMPDIR.

2024-05-07  Po Lu  <luangruo@yahoo.com>

	Disable text-conversion in map-ynp

	* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Bind
	overriding-text-conversion-style to nil around read-event and
	arrange that the input method be reset.

2024-05-07  Po Lu  <luangruo@yahoo.com>

	* src/fontset.c (free_realized_fontsets): Never call
	recompute_basic_faces on dead frames.  (bug#66151)

2024-05-06  Alan Mackenzie  <acm@muc.de>

	`read': give fuller error message for errors following "#".

	* src/lread.c (READ_AND_BUFFER, INVALID_SYNTAX_WITH_BUFFER):
	New macros.
	(read0): For errors in characters sequences beginning with "#",
	output the entire character sequence rather than just "#".
	(bug#70702)

	* test/src/lread-tests.el (lread-test-bug70702): New test.

2024-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	edebug.el: Fix `edebug-remove-instrumentation'

	* lisp/emacs-lisp/edebug.el (edebug-unwrap*): Traverse interpreted
	functions.  (bug#70791)

2024-05-06  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-mouse-1): Avoid infinite recursion.
	(bug#70086)

2024-05-06  Juri Linkov  <juri@linkov.net>

	* lisp/emacs-lisp/warnings.el (display-warning): Add guardrails
	for window.  Check for non-nil 'window' returned from
	'display-buffer' for the case when users decide to use
	'allow-no-window' in 'display-buffer-alist'.  (bug#70795)

2024-05-06  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-select-restore-windows): Use
	'special-mode'.

2024-05-06  Juri Linkov  <juri@linkov.net>

	Support mouse clicks for multi-item 'global-mode-string' in
	tab-bar.el.

	* lisp/tab-bar.el (tab-bar-format-global): Split elements of
	'global-mode-string' to separate items of the tab bar, so events
	for each item are handled separately.  (bug#70086)

2024-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	(Fkey_description): Fix corner case.

	* src/keymap.c (Fkey_description): Don't mistake latin-1 chars for
	ASCII-chars-with-meta.  (bug#59305)

2024-05-06  Po Lu  <luangruo@yahoo.com>

	Expressly disable large file APIs on Android 4.4 and earlier

	* configure.ac (CFLAGS): Add -D_FILE_OFFSET_BITS=32 on SDK 20 and
	earlier that unserviceable functions may not be selected.  Problem
	reported by Ruth Elburn <ruth@noreply.invalid>.

2024-05-06  Eli Zaretskii  <eliz@gnu.org>

	Revert "Disable text conversion in map-ynp"

	This reverts commit f50a58123a3d386b9bba7c4ba14df62479887bd4.
	Please don't make such changes without discussing them.

2024-05-06  Po Lu  <luangruo@yahoo.com>

	Disable text conversion in map-ynp

	* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Read response with
	read-key, not read-char.

2024-05-06  Po Lu  <luangruo@yahoo.com>

	Optimize stipples on Android

	* java/org/gnu/emacs/EmacsGC.java (EmacsGC) <tileObject>: Change
	type to EmacsTileObject.
	(markDirty): Create an EmacsTileObject rather than a
	BitmapDrawable.

	* java/org/gnu/emacs/EmacsTileObject.java: New file, significantly
	leaner than BitmapDrawable.

2024-05-05  Andrea Corallo  <acorallo@gnu.org>

	Remove unnecessary cons in function-type property

	* lisp/emacs-lisp/comp-common.el (comp-function-type-spec): Remove
	unnecessary car.
	* lisp/emacs-lisp/comp.el (comp--intern-func-in-ctxt): Likewise.
	* lisp/emacs-lisp/byte-run.el (byte-run--set-function-type):
	Update lambda list.

2024-05-05  Andrea Corallo  <acorallo@gnu.org>

	Fix intra compilation unit function type declaration

	* lisp/emacs-lisp/comp.el (comp-func): Add 'slot'.
	(comp--intern-func-in-ctxt): Update.
	(comp--get-function-cstr): Update.

2024-05-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	eglot.el: Require `track-changes' unconditionally

	* lisp/emacs-lisp/track-changes.el: Bump version.

	* lisp/progmodes/eglot.el: Require `track-changes' unconditionally.
	(Package-Requires:): Add `track-changes'.
	(eglot--track-changes-signal, eglot--signal-textDocument/didChange)
	(eglot--managed-mode): Remove non-track-changes alternative code.
	(eglot--before-change, eglot--after-change): Delete functions.

2024-05-05  Jim Porter  <jporterbugs@gmail.com>

	Fix Eshell handling of remote files like "/ssh:remote:~/file.txt"

	* lisp/eshell/em-glob.el (eshell-glob-convert): Use 'concat'
	instead of 'file-name-concat' to avoid extraneous slashes.
	(eshell-extended-glob): Bail out if we didn't find a glob after
	all.

	* test/lisp/eshell/em-glob-tests.el (tramp): Require.
	(em-glob-test/convert/remote-start-directory): Use the mock remote
	connection.
	(em-glob-test/remote-user-directory): New test.

2024-05-05  Gabriel do Nascimento Ribeiro  <gabriel376@hotmail.com>

	Fix tab-line-tabs-buffer-groups (bug#59438)

	* lisp/tab-line.el (tab-line-tabs-buffer-groups): Handle case when
	variable 'tab-line-tabs-buffer-groups-sort-function' is nil.

2024-05-05  Juri Linkov  <juri@linkov.net>

	Use defcustom for group sort variables in tab-line.el.

	* lisp/tab-line.el (tab-line-tabs-buffer-group-sort-function)
	(tab-line-tabs-buffer-groups-sort-function): Turn defvar into
	defcustom.  Suggested by Gabriel do Nascimento Ribeiro
	<gabriel376@hotmail.com>.
	(tab-line-tabs-buffer-group-name): Fall back to
	'tab-line-tabs-buffer-group-by-mode' when
	'tab-line-tabs-buffer-group-function' is nil (its previous default
	value).  (bug#59438)

2024-05-05  Michael Albinus  <michael.albinus@gmx.de>

	Fix lock-file format in Tramp

	* lisp/net/tramp.el (tramp-lock-file-info-regexp): BOOT_TIME can
	be negative.  (Bug#70415)

2024-05-05  Dmitry Gutov  <dmitry@gutov.dev>

	project--vc-list-files: Use vc-git-command for better error
	reporting.

	* lisp/progmodes/project.el (project--vc-list-files): Use
	'vc-git-command' for better error reporting (see
	https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00399.html).

2024-05-05  Dmitry Gutov  <dmitry@gutov.dev>

	project-find-regexp: Fix test

	* test/lisp/progmodes/project-tests.el (project-find-regexp): Add
	binding for project-list-file, to fix the test when running in the
	terminal (reported on the mailing list).

2024-05-05  Eli Zaretskii  <eliz@gnu.org>

	Fix lock files on some versions of Cygwin

	* src/filelock.c (current_lock_owner): Support negative boot-time
	on rare systems.  (Bug#70415)

2024-05-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	(read-passwd-toggle-visibility): Fix some loose ends

	* lisp/auth-source.el (read-passwd-toggle-visibility): Make sure
	we operate on the minibuffer even if some other window was
	selected when the little icon was pressed.  Don't hardcode the
	keymap representation.  Use the `keymap' property rather than the
	`local-map' property so it can't be accidentally shadowed by
	something like a minor-mode map.

2024-05-05  Mattias Engdegård  <mattiase@acm.org>

	Retract lexical cookie source load warning

	On balance it seems likely that the warning would annoy more
	people than it would help, so let them deal with any actual
	problems when the default is changed instead.  See discussion at:
	https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00250.html

	* src/lread.c (string_suffix_p, warn_missing_cookie, Fload)
	(Feval_buffer):
	* lisp/international/mule.el (load-with-code-conversion):
	* lisp/startup.el (command-line--load-script):
	* etc/NEWS: Revert all changes, except for the generalized
	`lisp_file_lexical_cookie' which may prove useful in the future.

2024-05-05  Alan Mackenzie  <acm@muc.de>

	Run c-unmark-<>-around-region in after-change-functions always.

	* lisp/progmodes/cc-engine.el (c-unmark-<>-around-region): Run its
	contents in after-change-functions for a deletion, so that
	c-new-BEG and c-new-END get set.  Add a new test (> end beg) in a
	check for unterminated string handling.  (bug#70435)

2024-05-05  Dmitry Gutov  <dmitry@gutov.dev>

	New variable 'project-files-relative-names'

	* lisp/progmodes/project.el (project-files-relative-names): New
	variable.  (bug#69233)
	(project--files-in-directory): Honor it.
	(project--vc-list-files): Here too.
	(project-find-regexp): Use it to improve performance.
	(project-or-external-find-regexp): Add a TODO.
	(project-find-file): Use it here too.
	(project--read-file-cpd-relative, project--read-file-absolute):
	Try to handle file lists with absolute and relative files names.
	(project-find-file-in): Set default-directory, so relative names
	are interpreted correctly.

	* lisp/progmodes/xref.el (xref-matches-in-files): Consider that
	the first in FILES can be a relative file name.

	* test/lisp/progmodes/project-tests.el (project-find-regexp): New
	test.

	* etc/NEWS: Mention it.

2024-05-05  Po Lu  <luangruo@yahoo.com>

	Don't permit C-x 8 RET &c in isearch.el to contaminate search
	string.

	* lisp/isearch.el (isearch-char-by-name, isearch-emoji-by-name):
	Concatenate new character to the query string saved by
	with-isearch-suspended, not the current string, which might have
	been modified by recursive I-search sessions within
	completing-read.

2024-05-05  Po Lu  <luangruo@yahoo.com>

	Fix cursor misalignment in truncated RTL rows

	* src/xdisp.c (set_cursor_from_row): Begin computing the position
	of the rightmost glyph from row->x, not 0.

2024-05-05  Po Lu  <luangruo@yahoo.com>

	Fix inadvertent removal in EmacsWindow

	* java/org/gnu/emacs/EmacsWindow.java (onKeyUp): Send KeyPress
	events upon deferred KEYCODE_BACK.

2024-05-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(eglot--track-changes-signal): Improve last fix (bug#70541)

	* lisp/progmodes/eglot.el (eglot--add-one-shot-hook): New
	function.
	(eglot--track-changes-signal): Use it.

2024-05-04  Andreas Schwab  <schwab@linux-m68k.org>

	textsec: handle email address without domain part

	* lisp/international/textsec.el
	(textsec-email-address-suspicious-p): Handle missing domain part.
	(textsec-email-address-header-suspicious-p): Likewise.

2024-05-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(ruler-mode-ruler): Minor optimization

	* lisp/ruler-mode.el (ruler-mode-ruler): Don't compute
	`line-number-display-width' redundantly.  Use
	`add-text-properties'.  Remove redundant `local-map' property.

2024-05-04  Mattias Engdegård  <mattiase@acm.org>

	Allow `letrec' binding without init expression

	For example, (letrec (... (x) ...) ...) is now allowed.

	* lisp/subr.el (letrec): Allow omitted init expression.
	* test/lisp/subr-tests.el (subr--tests-letrec): Add test case.

2024-05-04  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	b392169e541 ; * doc/lispref/commands.texi (Event Mod): Add motivation...
	e272fd3da92 ; Update description of 'mail-mode'

2024-05-04  shynur  <one.last.kiss@outlook.com>

	Locate error source of ExceptionGroup in Python shell

	The Python shell recognizes the line containing a file path and a
	line number when an exception is raised up to the top-level, in
	order to locate the source of error.  It's supposed to recognize
	the built-in ExceptionGroup as well.  (Bug#70653)
	* lisp/progmodes/python.el
	(python-shell-compilation-regexp-alist): Take the single leading
	vertical line into account.
	* etc/NEWS: Announce this change.

2024-05-04  Eli Zaretskii  <eliz@gnu.org>

	Fix implementation of the --terminal command-line switch

	It sounds like this has been broken ever since multi-tty was added
	to Emacs.
	* src/keyboard.c (dev_tty): New global variable.
	* src/keyboard.h: Declare 'dev_tty'.
	* src/emacs.c (main): Initialize 'dev_tty'.
	* src/term.c (Fcontrolling_tty_p, Fresume_tty, init_tty):
	* src/process.c (dissociate_controlling_tty):
	* src/keyboard.c (handle_interrupt_signal, handle_interrupt)
	(Fset_quit_char): Use 'dev_tty' instead of 'DEV_TTY'.  (Bug#70519)

2024-05-04  Mattias Engdegård  <mattiase@acm.org>

	Only issue lexical cookie warning for elisp files

	* src/lread.c (string_suffix_p): New.
	(warn_missing_cookie): Suppress warning for files not ending in
	".el", except ".emacs".
	* etc/NEWS: Update accordingly, and mention how the warning can be
	suppressed.

2024-05-04  Po Lu  <luangruo@yahoo.com>

	Simplify handling of command-line arguments on Android

	* java/org/gnu/emacs/EmacsActivity.java
	(EXTRA_STARTUP_ARGUMENTS): New constant.
	(onCreate): Read a string array, not a string extra from the
	intent with this key.

	* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity)
	<fileToOpen>: Delete field.
	(onCreate): Provide file name as a command line argument when
	starting the Emacs service.

	* java/org/gnu/emacs/EmacsPreferencesActivity.java (startEmacsQ)
	(startEmacsDebugInit): In like manner, replace ad-hoc command-line
	argument extra with a proper array.

	* java/org/gnu/emacs/EmacsService.java (EmacsService): Rename
	extraStartupArgument to extraStartupArguments, and change its type
	to a string array.
	(onCreate): Adjust to match.

	* java/org/gnu/emacs/EmacsThread.java (EmacsThread)
	<extraStartupArguments>: Ditto.  <fileToOpen>: Delete field.
	(run): Adjust correspondingly.

2024-05-04  Po Lu  <luangruo@yahoo.com>

	Delete redundant backquotes in android-win.el

	* lisp/term/android-win.el (android-encode-jni)
	(android-decode-jni): Replace redundant backquotes with ordinary
	quotes.

2024-05-04  Po Lu  <luangruo@yahoo.com>

	Simplify management of Android handle IDs

	* java/org/gnu/emacs/EmacsCursor.java (EmacsCursor):

	* java/org/gnu/emacs/EmacsGC.java (EmacsGC):

	* java/org/gnu/emacs/EmacsHandleObject.java (EmacsHandleObject):
	Remove HANDLE argument to constructor.

	* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):

	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow):

	* java/org/gnu/emacs/EmacsInputConnection.java
	(EmacsInputConnection) <windowHandle>: Change type to long.

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative)
	(sendConfigureNotify, sendKeyPress, sendKeyRelease, sendFocusIn)
	(sendFocusOut, sendWindowAction, sendEnterNotify)
	(sendLeaveNotify, sendMotionNotify, sendButtonPress)
	(sendButtonRelease, sendTouchDown, sendTouchUp, sendTouchMove)
	(sendWheel, sendIconified, sendDeiconified, sendContextMenu)
	(sendExpose, sendDndDrag, sendDndUri, sendDndText)
	(beginBatchEdit, commitCompletion, endBatchEdit, commitText)
	(deleteSurroundingText, finishComposingText, replaceText)
	(getSelectedText, getTextAfterCursor, getTextBeforeCursor)
	(setComposingText, setComposingRegion, setSelection)
	(performEditorAction, performContextMenuAction, getExtractedText)
	(requestSelectionUpdate, requestCursorUpdates, clearInputFlags)
	(getSurroundingText, takeSnapshot, getSelection): Accept handles
	as longs, rather than shorts.  All callers changed.

	* java/org/gnu/emacs/EmacsService.java (queryTree): Return handles
	as longs rather than shorts.
	(viewGetSelection): Take long WINDOW, not short.

	* src/android.c (struct android_emacs_handle): New structure.
	(handle_class): New variable.
	(android_init_emacs_service, android_init_emacs_pixmap)
	(android_init_emacs_gc_class, android_init_emacs_cursor): Adjust
	to match signature changes in constructors.
	(android_init_emacs_handle): New function.
	(initEmacs): Initialize the handle class, its fields and methods.
	(sendConfigureNotify, sendKeyPress, sendKeyRelease, sendFocusIn)
	(sendFocusOut, sendWindowAction, sendEnterNotify)
	(sendLeaveNotify, sendMotionNotify, sendButtonPress)
	(sendButtonRelease, sendTouchDown, sendTouchUp, sendTouchMove)
	(sendWheel, sendIconified, sendDeiconified, sendContextMenu)
	(sendExpose, sendDndDrag, sendDndUri, sendDndText): Update for
	changes to handle type.
	(android_alloc_id, android_resolve_handle)
	(android_resolve_handle2): Remove functions; replace the second
	with a macro that accepts one fewer argument.  All callers
	changed.
	(android_destroy_handle): Cease indexing the handle list for the
	handle object.
	(android_globalize_reference): New function.
	(android_create_window, android_create_gc, android_create_pixmap)
	(android_create_font_cursor): Call android_globalize_reference to
	convert global references into handles.
	(android_free_cursor, android_destroy_window): Cease verifying the
	handle type.
	(android_copy_area): Check destination object type rather than
	handle entry.
	(android_query_tree): Adjust for changes to return types.
	(likely): Define __builtin_expect variant unconditionally.

	* src/android.h (android_resolve_handle): New macro.

	* src/androidgui.h (android_handle): Define to intptr_t.

	* src/androidterm.c (deleteSurroundingText, finishComposingText)
	(performEditorAction, performContextMenuAction, getExtractedText)
	(getSelectedText, requestSelectionUpdate, requestCursorUpdates)
	(clearInputFlags, getSurroundingText)
	(android_get_surrounding_text_internal): Accept handles as longs,
	not jshorts.

2024-05-04  Po Lu  <luangruo@yahoo.com>

	* src/lread.c (warn_missing_cookie): Exempt the user init file.

2024-05-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/eglot.el (eglot--track-changes-signal): More typo

	* lisp/emacs-lisp/track-changes.el
	(track-changes-inconsistent-state-p): Typo.

2024-05-03  Philip Kaludercic  <philipk@posteo.net>

	Query Eglot version via package.el

	* lisp/progmodes/eglot.el (eglot--version): Remove constant.
	(eglot--connect): Use 'package-get-version'.

2024-05-03  Mattias Engdegård  <mattiase@acm.org>

	Warn when loading .el files without lexical-binding declaration

	This corresponds to the byte-compiler warning for the same issue,
	here emitted for files that aren't compiled but loaded from
	source.  It should make the planned change to enable lexical
	binding by default in Emacs 31 go smoother.

	* src/lread.c (lexical_cookie_t): New type.
	(lisp_file_lexically_bound_p): Renamed to...
	(lisp_file_lexical_cookie): ...this, with the return value
	retyped.
	* src/lread.c (warn_missing_cookie): New.
	(Fload): Warn when loading source file and cookie missing.
	(Feval_buffer): Add LOADING arg; warn when set and cookie missing.
	* lisp/international/mule.el (load-with-code-conversion):
	* lisp/startup.el (command-line--load-script): Call eval-buffer
	with LOADING arg set.
	* etc/NEWS: Announce.

2024-05-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	track-changes.el: Add a workaround for bug#70541

	* lisp/emacs-lisp/track-changes.el
	(track-changes-inconsistent-state-p): New function.
	* lisp/progmodes/eglot.el (eglot--track-changes-signal): Use it.
	(bug#70541)

2024-05-03  Ihor Radchenko  <yantar92@posteo.net>

	mhtml-mode: Use `run-mode-hook' to run `prog-mode-hook'

	* lisp/textmodes/mhtml-mode.el (mhtml-mode): When running hooks
	simulating inheritance from `prog-mode', use `run-mode-hooks' that
	honors `delay-mode-hooks' macro.  Note that `delay-mode-hooks' is
	bound to non-nil when major mode body is evaluated, so there is no
	chance that any major mode-related hooks are executed twice.
	(bug#70671)

2024-05-03  Juri Linkov  <juri@linkov.net>

	* doc/lispref/keymaps.texi (Creating Keymaps): Add :repeat :hints.
	(bug#70576)

2024-05-03  Elias G. Perez  <eg642616@gmail.com>

	* lisp/progmodes/flymake.el (flymake--indicator-overlay-spec):
	Check if `flymake-fringe-indicator-position' or
	`flymake-margin-indicator-position' are non-nil for allow no
	indicators.  (bug#70711)

2024-05-03  Lin Sun  <sunlin7@hotmail.com>

	Only run 'eshell-first-time-mode-hook' once per Emacs session

	* lisp/eshell/esh-mode.el (eshell-mode): Set 'eshell-first-time-p'
	to nil.  (bug#70610)

2024-05-03  Po Lu  <luangruo@yahoo.com>

	Prevent reporting of crashes when Emacs is restarted on Android

	* src/emacs.c (Fkill_emacs): Ignore SIGBUS and SIGSGEV immediately
	before calling exit.

2024-05-02  Mattias Engdegård  <mattiase@acm.org>

	Eliminate string data mutation in ruler-mode

	* lisp/ruler-mode.el (ruler-mode-ruler): Mutate a vector instead
	of a string.

2024-05-02  Juri Linkov  <juri@linkov.net>

	Support mouse clicks bound in keymap properties on the tab-bar

	* lisp/tab-bar.el (tab-bar--event-to-item): Handle mouse bindings
	for commands bound in keymap properties of global-mode-string.
	(bug#70086)
	(tab-bar-mouse-down-1, tab-bar-mouse-1, tab-bar-touchscreen-begin):
	Add the symbol 'global' to the list of handled items.

2024-05-02  Juri Linkov  <juri@linkov.net>

	Make the buffer displayed by tab-bar-select-restore-windows
	internal.

	* lisp/tab-bar.el (tab-bar-select-restore-windows): Make the
	buffer " *Old buffer %s*" internal with the leading space in its
	name.

2024-05-02  Andrea Corallo  <acorallo@gnu.org>

	Merge branch 'lisp-func-type-decls' into 'master'

	* etc/NEWS (Function type declaration): Mark it +++.

	* doc/lispref/functions.texi (Declare Form): Improve again declare
	type.

	* doc/lispref/functions.texi (Declare Form): Better warn about UB.

2024-05-02  Mattias Engdegård  <mattiase@acm.org>

	Add lexical cookie to new init files

	* lisp/cus-edit.el (custom-save-all): Add lexical cookie if the
	file is empty.

2024-05-02  Lin Sun  <sunlin7@hotmail.com>

	New function 'python-shell-send-block' for python-mode

	* lisp/progmodes/python.el (python-shell-send-block): New
	function.
	* test/lisp/progmodes/python-tests.el
	(python-test--shell-send-block): Test case for the new function.
	* etc/NEWS: Document 'python-shell-send-block'.  (Bug#70609)

2024-05-02  Ihor Radchenko  <yantar92@posteo.net>

	Improve performance of `file-truename' (bug#70036)

	* lisp/files.el (file-truename): Avoid repetitive calls to
	`file-name-nondirectory'.  These calls contribute significantly to
	CPU time.  See the benchmarks in
	https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70036#47.

2024-05-02  kobarity  <kobarity@gmail.com>

	Add ExceptionGroup as a Python keyword

	* lisp/progmodes/python.el
	(python-font-lock-keywords-maximum-decoration)
	(python--treesit-exceptions): Add ExceptionGroup.  (Bug#70653)

2024-05-02  Po Lu  <luangruo@yahoo.com>

	Fix display of stipples on NS with respect to cursor highlight

	* src/nsfont.m (nsfont_draw): Delete redundant code.

	* src/nsterm.m (ns_maybe_dumpglyphs_background): Conform logic to
	X version by always displaying the background if s->stipple_p
	should be set.
	(ns_draw_stretch_glyph_string): Set stipple background as
	appropriate.
	(ns_set_glyph_string_gc): New function.
	(ns_draw_glyph_string): Call it, as on X.  Reported by Arash
	Esbati <arash@gnu.org>.

2024-05-02  Augusto Stoffel  <arstoffel@gmail.com>

	Eglot: Add 'command-modes' property to all suitable commands

	Those are the commands that call 'eglot--current-server-or-lose'.
	* lisp/progmodes/eglot.el (eglot--managed-mode),
	(eglot-list-connections-mode): Make non-interactive.  (Bug#70554)

2024-05-02  Juri Linkov  <juri@linkov.net>

	* lisp/emacs-lisp/warnings.el: Fix 'warning-display-at-bottom'.

	(display-warning): Move point to the beginning of the last line
	instead of its end for 'warning-display-at-bottom' (bug#69983).

2024-05-02  Juri Linkov  <juri@linkov.net>

	Support hints in the :repeat keyword of defvar-keymap for repeat-mode

	* lisp/keymap.el (defvar-keymap): Add :hints to the :repeat
	keyword.  Put the property 'repeat-hint' on the command symbol.

	* lisp/repeat.el (repeat-echo-message-string): Show hint strings
	defined with the property 'repeat-hint' on the command symbol.
	(bug#70576)

2024-05-02  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Add 'text'.  Add
	'text' lambda to 'treesit-thing-settings' that should fall back to
	the default functions for sentence/sexp navigation.  (bug#67036)

2024-05-02  Yuan Fu  <casouri@gmail.com>

	Tighten regexp for rust-ts-mode keyword workaround

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--font-lock-settings): Add bos and eos.

2024-05-02  Yuan Fu  <casouri@gmail.com>

	Fix fontification for else in macro body in rust-ts-mode

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--font-lock-settings): Add a rule for else in macro
	body.  Also added the same rule for "in" and "move" keyword, as
	they seems to have the same problem.

2024-05-02  Noah Peart  <noah.v.peart@gmail.com>

	Add font-locking for typed parameters in python-ts-mode

	* lisp/progmodes/python.el (python--treesit-settings): Add
	tree-sitter font-locking rule for typed parameters.
	* test/lisp/progmodes/python-tests.el
	(python-ts-mode-types-face-1): Test for
	font-lock-variable-name-face in typed parameter.  (bug#70665)

2024-05-02  Po Lu  <luangruo@yahoo.com>

	Port visible bell to Android

	* java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Ignore
	GC_INVERT.

	* java/org/gnu/emacs/EmacsFillRectangle.java
	(EmacsFillRectangle) <invertFilter>: New variable.
	(perform): If the transfer mode is invert, copy the source to
	itself with invertFilter as the color filter.

	* java/org/gnu/emacs/EmacsGC.java (EmacsGC) <xorAlu, srcInAlu>:
	Delete now-redundant ALUs.
	(markDirty): Cease updating the paint's transfermode.

	* java/org/gnu/emacs/EmacsSafThread.java (openDocument1): Fix typo
	in documentation.

	* src/android.c (android_blit_xor): Delete unused function.
	(android_copy_area): Remove calls to unused blit functions.

	* src/androidgui.h (enum android_gc_function): Rename XOR to
	INVERT.

	* src/androidterm.c (android_flash): Replace with GXinvert.

2024-05-02  Po Lu  <luangruo@yahoo.com>

	Switch to GXinvert in XTflash

	* src/xterm.c (XTflash): Move to inverting the regions of the
	display being flashed.  Suggested by Manuel Giraud
	<manuel@ledu-giraud.fr>.

2024-05-01  Andrea Corallo  <acorallo@gnu.org>

	* etc/NEWS (Function type declaration): Add entry.

2024-05-01  Andrea Corallo  <acorallo@gnu.org>

	(disassemble): Fix case of `(byte-code ...)' argument

	* lisp/emacs-lisp/disass.el (disassemble): Handle (byte-code ...)
	here..
	(disassemble-internal): ...instead of here.
	(disassemble-1): Adjust text to reflect the existence of other
	compiled functions.

2024-05-01  Andrea Corallo  <acorallo@gnu.org>

	* doc/lispref/functions.texi (Declare Form): Improve declare type.

2024-05-01  Philip Kaludercic  <philipk@posteo.net>

	Add Compat as an Eglot dependency

	* lisp/progmodes/eglot.el (eglot--format-markup): Remove fboundp
	check for 'text-property-search-forward'.
	(eglot-alternatives): Use Compat's 'executable-find'
	(eglot--executable-find): Remove function.

	Additionally this should make 'package-get-version' available for
	releases of Emacs previous to 27.1.  (bug#62198)

2024-05-01  Po Lu  <luangruo@yahoo.com>

	Fix minor typos in haikuterm.c

	* src/haikuterm.c (haiku_fill_underline)
	(haiku_draw_text_decoration): Don't pass view to unused frame
	parameter.

2024-05-01  Po Lu  <luangruo@yahoo.com>

	Implement dots and dashes on Nextstep

	* src/Makefile.in (NON_OBJC_CFLAGS): Add -Wstrict-flex-arrays.

	* src/nsterm.m (ns_draw_dash, ns_fill_underline): New functions.
	(ns_draw_text_decoration): Port dash and dot display from X.

2024-05-01  Jeremy Bryant  <jb@jeremybryant.net>

	Remove unnecessary (delq nil...).

	This is presumed to be an artifact of an old default.

	* lisp/which-key.el (which-key-replacement-alist): Remove
	unnecessary (delq nil...).

2024-05-01  Jeremy Bryant  <jb@jeremybryant.net>

	Remove old backport version of universal-argument--description

	In preparation for the move to Emacs core, this is no longer
	needed.  Furthermore, the backport was of emacs25 on 2015-12-04 so
	is unlikely to affect most current installations in the meantime.

	* lisp/which-key.el: Remove old backport of 2025-12-04.
	(which-key--full-prefix): Use built-in
	universal-argument--description.

2024-05-01  Basil L. Contovounesios  <basil@contovou.net>

	Assume match before calling help-xref-button

	help-xref-button fails if not preceded by a valid match, so a
	preceding unconditional search should not be allowed to fail
	silently.

	* lisp/emacs-lisp/ert.el (ert-describe-test):
	* lisp/help-fns.el (help-fns--compiler-macro)
	(help-fns-function-description-header, describe-variable)
	(help-fns--customize-variable, describe-face)
	(help-fns--face-attributes, describe-keymap): Let unconditional
	re-search-backward before help-xref-button fail early, as that
	would indicate a logic bug, and the backtrace would more
	accurately point to the actual source of the mistake.

2024-05-01  Po Lu  <luangruo@yahoo.com>

	Disable on-screen keyboard outside fields in Custom buffers

	* lisp/cus-edit.el (Custom-display-on-screen-keyboard-p): New
	function.
	(Custom-mode): Install it as the touch-screen-keyboard-function.

	* lisp/touch-screen.el (touch-screen-keyboard-function): New
	variable.
	(touch-screen-handle-point-up): Don't special-case the splash
	screen with respect to touch-screen-display-keyboard in keeping
	with user feedback.

2024-05-01  Po Lu  <luangruo@yahoo.com>

	Fix compatibility issues with Android clipboards

	* java/org/gnu/emacs/EmacsClipboard.java (getClipboardData):
	Return an AssetFileDescriptor.

	* java/org/gnu/emacs/EmacsContextMenu.java (onMenuItemClick): Typo
	corrections in commentary.

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Raise
	minimum version on which to read file descriptors from
	ParcelFileDescriptor objects to Honeycomb.

	* java/org/gnu/emacs/EmacsSdk11Clipboard.java
	(getClipboardData): Return the asset file descriptor.

	* java/org/gnu/emacs/EmacsSdk8Clipboard.java (getClipboardData):
	Adjust return type to match.

	* src/android.h (struct android_parcel_file_descriptor_class):
	Move from androidselect.c.

	* src/androidselect.c (fd_class): Export function.
	(android_init_emacs_clipboard): Adjust signature of
	getClipboardData.
	(android_init_asset_file_descriptor, close_asset_fd)
	(extract_fd_offsets): New functions.
	(Fandroid_get_clipboard_data): Extract file descriptor and offset
	from the AssetFileDescriptor here, rather than in
	getClipboardData.
	(init_androidselect): Call android_init_asset_file_descriptor.

	* src/androidvfs.c (android_init_fd_class): Export and enable
	calling this function more than once.

2024-04-30  Mattias Engdegård  <mattiase@acm.org>

	Fix first appearance records for some misdated functions

	* etc/NEWS.unknown: Add approximate version records for defsubst,
	mark, nreverse, let*, rassq, >=, transpose-sexps,
	buffer-modified-p, current-column, downcase, previous-line, catch,
	throw, and count-lines, which all were given much more recent
	introduction versions by describe-function.

2024-04-30  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure): Simplify.

2024-04-30  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Simplify.

	Remove the add-lambda argument.  All callers adapted.

2024-04-30  Po Lu  <luangruo@yahoo.com>

	Fix deletion of text holding `inhibit-read-only' properties

	* src/intervals.h (INTERVAL_VISIBLE_P): Split into ...
	(INTERVAL_GENERALLY_WRITABLE_P, INTERVAL_EXPRESSLY_WRITABLE_P):
	... two new macros.

	* src/textprop.c (verify_interval_modification): If the buffer is
	read only, verify not that there is only a single exempting
	interval spanning the area of a multiple-character operation, but
	that every intervening interval in such an operation exempts it
	from write restrictions, either by providing a read-only property
	that appears in Vinhibit_read_only, or by providing an
	inhibit-read-only property.

	* test/src/textprop-tests.el (textprop-interval-immutability): New
	test.

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	Work around bad GCC diagnostic in select_window

	* src/textconv.c (select_window): Add an eassume to work around
	GCC bug 114893.

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 14 -Wanalyzer-out-of-bounds in hbfont.c

	* src/hbfont.c (hbfont_shape): Add an eassume.

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 14 -Wstring-operflow in ftfont.c

	* src/ftfont.c (ftfont_drive_otf): Do not crash if
	spec->features[i] is nonnull but is empty.  Use gfeatures local to
	pacify GCC 14.

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 14 -Wnull-dereference in intervals.c

	* src/intervals.c (set_intervals_multibyte_1): Add an eassume to
	pacify GCC.  Deparenthesisze.

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 14 -Wnull-dereference in tim_sort

	* src/lisp.h (tim_sort): Require array arg to be nonnull.
	* src/sort.c (reverse_slice): Omit no-longer-needed eassert.
	(tim_sort): Avoid undefined behavior when length == 0, since
	reverse_slice would then compute &seq[-1].

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 14 -Wclobbered in eval.c

	* src/eval.c: Ignore -Wclobbered.

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 14 -Wnull-dereference

	* src/xterm.c (x_dpyinfo): New function, which acts like
	x_display_info_for_display except it always returns nonnull.  This
	simplifies callers and pacifies GCC 14.  All callers changed.

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 14 -Walloc-size

	* src/xfns.c (xic_string_conversion_callback): Allocate size 1,
	not 0.

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	etags: work around GCC bug 114882

	* lib-src/etags.c: Ignore -Wanalyzer-use-of-uninitialized-value.
	This applies to the whole source file, not just to areas where GCC
	has bugs, as it was too tricky to ignore more selectively.

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	etags: fix #line parsing (\\", long lines)

	* lib-src/etags.c (readline): Don’t mishandle lines like ‘#line 1
	"a//"’, which has an escaped backslash before ‘"’.  Don’t
	mishandle lines so long that sscanf overflows %n.

2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify etags.c by omitting a macro

	* lib-src/etags.c (xnew): Remove.  All uses removed.  xnew was
	confusing, as sometimes it was used with n=1, sometimes with
	Type=char, and it’s easier just to use xmalloc or xnmalloc.

2024-04-30  Michael Albinus  <michael.albinus@gmx.de>

	Improve treesitter tests on EMBA

	* test/infra/Makefile.in (subdir_template):
	* test/infra/gitlab-ci.yml (.tree-sitter-template): Check also
	textmodes subdirectory for treesitter files.

	* test/infra/test-jobs.yml: Regenerate.

2024-04-30  Michael Albinus  <michael.albinus@gmx.de>

	* test/README (EMACS_EXTRAOPT): Add environment variable.

2024-04-30  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/regexp-opt.el (regexp-opt): Fix type
	declaration.

2024-04-30  Po Lu  <luangruo@yahoo.com>

	Minor adjustments to eww text field change handlers

	* lisp/net/eww.el (eww-check-text-conversion): Fix doc string.
	(eww-mode): Specify face, eww-form and field as nonsticky
	properties by default.
	(eww-tag-textarea, eww-form-text): Render properties front-sticky.
	(eww-process-text-input): Use field functions to compute field
	bounds.

2024-04-29  Mattias Engdegård  <mattiase@acm.org>

	Use the nthcdr byte-op for drop, and raise open-code limit

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-nthcdr): Open-code
	for any integral N<5.  Always use the byte-op otherwise.

2024-04-29  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Add (semi-redundant) fix to nnatom backend declaration

	* lisp/gnus/gnus.el (gnus-valid-select-methods): We need a value
	for post/mail/none in order to conform to the option type.
	* lisp/gnus/nnatom.el: This call to gnus-declare-backend does the
	exact same thing as above, and needs to be adjusted accordingly.

2024-04-29  Andrea Corallo  <acorallo@gnu.org>

	Rename property 'declared-type' to 'function-type'

	* lisp/emacs-lisp/byte-run.el (byte-run--set-function-type):
	Rename.
	(defun-declarations-alist): Update.
	* lisp/emacs-lisp/comp.el (comp--get-function-cstr): Likewise.

2024-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	(disassemble-internal): Handle new function values

	* lisp/emacs-lisp/disass.el (disassemble-internal): Fix the
	`interpreted-function' case.

2024-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	oclosure-tests.el: Adjust to new `interpreted-function' type

	* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-gen):
	Adjust to new `interpreted-function' type.
	(oclosure-test): Tweak accordingly.

2024-04-29  Andrea Corallo  <acorallo@gnu.org>

	Document function type declarations

	* doc/lispref/functions.texi (Declare Form): Document function
	type declaration.

2024-04-29  Andrea Corallo  <acorallo@gnu.org>

	Move lisp function arg type declarations to the functions itself

	* lisp/emacs-lisp/comp-common.el (comp-primitive-type-specifiers):
	Remove type declaration of lisp functions.
	* lisp/window.el (get-lru-window, get-largest-window)
	(one-window-p): Declare type.
	* lisp/subr.el (ignore, error, zerop, fixnump, bignump, lsh)
	(last, eventp, mouse-movement-p, log10, memory-limit)
	(interactive-p): Likewise.
	* lisp/simple.el (count-lines, mark, lax-plist-get): Likewise.
	* lisp/files.el (parse-colon-path): Likewise.
	* lisp/env.el (getenv): Likewise.
	* lisp/emacs-lisp/regexp-opt.el (regexp-opt): Likewise.
	* lisp/emacs-lisp/lisp.el (buffer-end): Likewise.
	* lisp/emacs-lisp/comp.el (comp-hint-fixnum, comp-hint-cons):
	Likewise.
	* lisp/custom.el (custom-variable-p): Likewise.

2024-04-29  Andrea Corallo  <acorallo@gnu.org>

	Make use of Lisp function declarations

	* lisp/emacs-lisp/comp.el (comp-primitive-func-cstr-h): Rename.
	(comp--get-function-cstr): Define new function.
	(comp--add-call-cstr, comp--fwprop-call): Update.
	* lisp/emacs-lisp/comp-common.el (comp-function-type-spec):
	Update.
	* lisp/help-fns.el (help-fns--signature): Mention when a type is
	declared.
	* lisp/emacs-lisp/comp.el (comp-primitive-func-cstr-h): Rename.

2024-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	(byte-compile): Fix interaction with old `advice.el'

	* lisp/emacs-lisp/bytecomp.el (byte-compile): Handle symbols whose
	function "value" is a bare lambda expression.  (bug#70368)

2024-04-29  Andrea Corallo  <acorallo@gnu.org>

	Add function type declarations for Lisp functions

	* lisp/emacs-lisp/byte-run.el (byte-run--set-declared-type): Add
	alias.
	(defun-declarations-alist): Use it for 'type' declaration.

2024-04-29  Mattias Engdegård  <mattiase@acm.org>

	Declare the variable `rx-constituents' obsolete.

	It has been effectively obsolete since Emacs 27, when the modern
	extension mechanism was introduced.

	* lisp/emacs-lisp/rx.el (rx-constituents): Make obsolete.
	* test/lisp/emacs-lisp/rx-tests.el (rx-constituents): Suppress
	warning.
	* etc/NEWS: Announce.

2024-04-29  Mattias Engdegård  <mattiase@acm.org>

	Add NEWS.unknown file to correct versions of introduction

	It is not intended for the human reader, but to give less wrong
	versions of first appearance displayed by `describe-function' or
	`describe-variable' that would otherwise be derived from a notice
	in a more recent NEWS* file.

	It is better to add items to this file than changing historical
	NEWS* files when the actual version of introduction is not known.

	* etc/NEWS.unknown: New file.  Add entry for `nthcdr'.

2024-04-29  Mattias Engdegård  <mattiase@acm.org>

	Add `drop' as alias for `nthcdr'

	It's a common name for this function and symmetric with respect to
	`take'.  It's also a lot less awkward to type and say.

	* lisp/subr.el (drop): New alias.
	* doc/lispref/lists.texi (List Elements): Document.  Mention the
	equation tying `take' and `drop' together.
	* etc/NEWS: Announce.

2024-04-29  Mattias Engdegård  <mattiase@acm.org>

	Fix value< string comparison ungoodthink

	* src/fns.c (string_cmp): Fix bad comparisons for certain strings.
	This only affected `value<' for aggregates, not `string<'.
	* test/src/fns-tests.el (fns-value<-ordered): Add test cases.

2024-04-29  Visuwesh  <visuweshm@gmail.com>

	Fix errors in 'shr-correct-dom-case'

	* lisp/net/shr.el (shr-correct-dom-case): Don't assume each CHILD
	is a cons cell.  (Bug#70626)

2024-04-29  Po Lu  <luangruo@yahoo.com>

	Adapt eww to touch screens, mice and text conversion

	* doc/emacs/input.texi (On-Screen Keyboards): Update conditions
	for displaying the virtual keyboard when t-s-d-k is enabled.

	* etc/NEWS (Announce): Document changes.

	* lisp/net/eww.el (eww-check-text-conversion): New function.
	(eww-mode): Install it as a local post-command-hook.
	(eww-submit-map, eww-submit-file, eww-checkbox-map): Bind suitable
	commands to mouse-2.
	(eww-form-submit, eww-form-checkbox, eww-form-file)
	(eww-tag-select): Disguise inserted forms as buttons, that touch
	event translation may prefer their bindings to mouse-2 over
	mouse-1.
	(eww-form-text, eww-tag-textarea): Insert field properties as
	well.
	(eww-select-file, eww-toggle-checkbox, eww-submit): New argument
	EVENT, to whose position point is set.

	* lisp/touch-screen.el (touch-screen-handle-point-up): Trivial
	adjustments to the criteria for selecting mouse commands and
	displaying the on screen keyboard.

2024-04-29  Po Lu  <luangruo@yahoo.com>

	Take fields into account during text conversion

	* lisp/cus-edit.el (Custom-mode): Enable text conversion, now that
	fields are correctly treated.

	* src/alloc.c (mark_frame): Mark f->conversion.field.

	* src/androidterm.c (android_update_selection): Adjust conversion
	region and selection position by the field start and end.

	* src/editfns.c (find_field): Export function.

	* src/frame.c (make_frame): Clear f->conversion.field.

	* src/frame.h (struct text_conversion_state) <field>: New field.

	* src/lisp.h (find_fields, reset_frame_conversion): Export
	functions.

	* src/minibuf.c (Fread_from_minibuffer): Reset frame conversion if
	Voverriding_text_conversion_style is set.

	* src/textconv.c (textconv_query): Narrow to field.
	(reset_frame_conversion): New function.
	(reset_frame_state): Clear conversion field.
	(really_delete_surrounding_text): Narrow to field.
	(locate_and_save_position_in_field): New function.
	(really_request_point_update, really_set_point_and_mark)
	(complete_edit_check, handle_pending_conversion_events_1)
	(handle_pending_conversion_events, get_conversion_field)
	(set_composing_region, textconv_set_point_and_mark, replace_text)
	(get_extracted_text, get_surrounding_text, report_point_change):
	Compute, narrow to and offset by the currently active field
	whenever point is updated or a command is received.
	(syms_of_textconv): Revise doc strings.

	* src/textconv.h (get_conversion_field): Export function.

2024-04-29  Po Lu  <luangruo@yahoo.com>

	Fix NEWS entries and documentation for underline styles

	* doc/lispref/display.texi (Face Attributes):

	* etc/NEWS: Revise to not mislead users as to where these
	attributes are available.

2024-04-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	Use a dedicated type to represent interpreted-function values

	Change `function' so that when evaluating #'(lambda ...)  we
	return an object of type `interpreted-function' rather than a list
	starting with one of `lambda' or `closure'.  The new type reuses
	the existing PVEC_CLOSURE (nee PVEC_COMPILED) tag and tries to
	align the corresponding elements:

	- the arglist, the docstring, and the interactive-form go in the
	  same slots as for byte-code functions.
	- the body of the function goes in the slot used for the bytecode string.
	- the lexical context goes in the slot used for the constants of
	  bytecoded functions.

	The first point above means that `help-function-arglist',
	`documentation', and `interactive-form's don't need to distinguish
	interpreted and bytecode functions any more.

	Main benefits of the change:

	- We can now reliably distinguish a list from a function value.
	- `cl-defmethod' can dispatch on `interactive-function' and `closure'.
	  Dispatch on `function' also works now for interpreted functions
	  but still won't work for functions represented as lists or as
	  symbols, of course.
	- Function values are now self-evaluating.  That was alrready the case
	  when byte-compiled, but not when interpreted since
	  (eval '(closure ...)) signals a void-function error.
	  That also avoids false-positive warnings about "don't quote your
	  lambdas" when doing things like "(mapcar ',func ...)".

	* src/eval.c (Fmake_interpreted_closure): New function.
	(Ffunction): Use it and change calling convention of
	`Vinternal_make_interpreted_closure_function'.
	(FUNCTIONP, Fcommandp, eval_sub, funcall_general, funcall_lambda)
	(Ffunc_arity, lambda_arity): Simplify.
	(funcall_lambda): Adjust to new representation.
	(syms_of_eval): `defsubr' the new function.  Remove definition of
	`Qclosure'.

	* lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure):
	Change calling convention and use `make-interpreted-closure'.

	* src/data.c (Fcl_type_of): Distinguish `byte-code-function's from
	`interpreted-function's.
	(Fclosurep, finterpreted_function_p): New functions.
	(Fbyte_code_function_p): Don't be confused by
	`interpreted-function's.
	(Finteractive_form, Fcommand_modes): Simplify.
	(syms_of_data): Define new type symbols and `defsubr' the two new
	functions.

	* lisp/emacs-lisp/cl-print.el (cl-print-object)
	<interpreted-function>: New method.

	* lisp/emacs-lisp/oclosure.el (oclosure): Refine the parent to be
	`closure'.
	(oclosure--fix-type, oclosure-type): Simplify.
	(oclosure--copy, oclosure--get, oclosure--set): Adjust to new
	representation.

	* src/callint.c (Fcall_interactively): Adjust to new representation.

	* src/lread.c (bytecode_from_rev_list):

	* lisp/simple.el (function-documentation):
	* lisp/help.el (help-function-arglist): Remove the old `closure'
	case and adjust the byte-code case so it handles
	`interpreted-function's.

	* lisp/emacs-lisp/cl-preloaded.el (closure): New type.
	(byte-code-function): Add it as a parent.
	(interpreted-function): Adjust parent (the type itself was already
	added earlier by accident).

	* lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function):
	Adjust to new representation.
	(byte-compile): Use `interpreted-function-p'.

	* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Adjust to
	new representation.
	(side-effect-free-fns): Add `interpreted-function-p' and
	`closurep'.

	* src/profiler.c (trace_hash, ffunction_equal): Simplify.
	* lisp/profiler.el (profiler-function-equal): Simplify.

	* lisp/emacs-lisp/nadvice.el (advice--interactive-form-1): Use
	`interpreted-function-p'; adjust to new representation; and take
	advantage of the fact that function values are now
	self-evaluating.

	* lisp/emacs-lisp/lisp-mode.el (closure): Remove
	`lisp-indent-function' property.

	* lisp/emacs-lisp/disass.el (disassemble-internal): Adjust to new
	representation.
	* lisp/emacs-lisp/edebug.el (edebug--strip-instrumentation): Use
	`interpreted-function-p'.
	* lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers): Add
	`closurep' and `interpreted-function-p'.

	* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Adjust
	to more precise type info in `describe-function'.
	* test/lisp/erc/resources/erc-d/erc-d-tests.el
	(erc-d--render-entries): Use `interpreted-function-p'.
	* test/lisp/emacs-lisp/macroexp-resources/vk.el (vk-f4, vk-f5):
	Don't hardcode function values.

	* doc/lispref/functions.texi (Anonymous Functions): Don't suggest
	that function values are lists.  Reword "self-quoting" to reflect
	the fact that #' doesn't return the exact same object.  Update
	examples with the new shape of the return value.

	* doc/lispref/variables.texi (Lexical Binding):
	* doc/lispref/lists.texi (Rearrangement):
	* doc/lispref/control.texi (Handling Errors): Update examples to
	reflect new representation of function values.

2024-04-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	(COMPILED): Rename to CLOSURE

	In preparation for the use of `PVEC_COMPILED' objects for
	interpreted functions, rename them to use a more neutral name.

	* src/lisp.h (enum pvec_type): Rename `PVEC_COMPILED' to
	`PVEC_CLOSURE'.
	(enum Lisp_Compiled): Use `CLOSURE_' prefix i.s.o `COMPILED_'.
	Also use `CODE` rather than `BYTECODE`.
	(CLOSUREP): Rename from `COMPILEDP'.
	(enum Lisp_Closure): Rename from `Lisp_Compiled'.

	* src/alloc.c, src/bytecode.c, src/comp.c, src/data.c, src/eval.c,
	* src/fns.c, src/lisp.h, src/lread.c, src/pdumper.c, src/print.c,
	* src/profiler.c: Rename all uses accordingly.
	* src/.gdbinit (xclosure): Rename from `xcompiled'.
	(xcompiled): New obsolete alias.
	(xpr): Adjust accordingly.  Also adjust to new PVEC_CLOSURE tag
	name.

2024-04-28  Mattias Engdegård  <mattiase@acm.org>

	* src/comp.c (comp_hash_string): Count bytes, not chars.

2024-04-28  Po Lu  <luangruo@yahoo.com>

	Implement dots and dashes on PGTK

	* src/image.c (image_create_bitmap_from_file) [HAVE_PGTK]: Remove
	unused variable.

	* src/pgtkterm.c (pgtk_draw_dash, pgtk_fill_underline)
	(pgtk_draw_glyph_string): New functions, ported from X.

2024-04-28  Po Lu  <luangruo@yahoo.com>

	Implement dots and dashes on Haiku

	* src/doc.c (store_function_docstring): Re-enable loading doc
	strings of compiled functions from etc/DOC, which haiku-win,
	ns-win, and the like require.

	* src/haikuterm.c (haiku_draw_dash, haiku_fill_underline)
	(haiku_draw_text_decoration): Port underline code from X.

2024-04-28  Po Lu  <luangruo@yahoo.com>

	* src/haikuterm.c (haiku_draw_text_decoration): Remove stray
	closing parenthesis.

2024-04-28  Po Lu  <luangruo@yahoo.com>

	Implement dots and dashes on Android

	* java/org/gnu/emacs/EmacsDrawLine.java (EmacsDrawLine)
	(measureLine, polyDashPattern): New function.
	(perform): Delegate to polyDashPattern if the line style is not
	LineSolid.  Also simplify now that anti-aliasing need no longer be
	taken into account.

	* java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Mention
	omission in commentary.

	* java/org/gnu/emacs/EmacsGC.java (EmacsGC): Disable anti-aliasing
	in default paint object.
	<line_style, line>: New fields.
	(markDirty): Apply stroke width.

	* src/android.c (android_init_emacs_gc_class): Initialize new
	fields.
	(android_create_gc, android_free_gc, android_change_gc)
	(android_set_dashes, android_get_gc_values):

	* src/androidgui.h (enum android_line_style)
	(enum android_gc_value_mask, struct android_gc): Introduce line
	style, width, dash offset and dash GC attributes.

	* src/androidterm.c (android_draw_dash, android_fill_underline)
	(android_draw_glyph_string): Port from X.

	* src/xterm.c (x_draw_dash): Delete redundant code.

2024-04-28  Eli Zaretskii  <eliz@gnu.org>

	Fix the MS-Windows build broken by a recent commit

	* src/w32term.c (w32_draw_glyph_string): Move 'foreground'
	declaration to where it belongs.

2024-04-28  Po Lu  <luangruo@yahoo.com>

	Fix Android build

	* src/androidterm.c (android_draw_glyph_string): Omit extraneous
	argument to android_fill_rectangle.

2024-04-28  Po Lu  <luangruo@yahoo.com>

	Implement dots and dashes on X

	* src/dispextern.h (enum face_underline_type): Indent and expand
	commentary as to the new dependency on the order of its enumerals.

	* src/xfaces.c (realize_gui_face): Enable dots and dashes on
	window systems.

	* src/xterm.c (x_draw_underwave): Don't define unused variable on
	Cairo builds.
	(x_draw_dash): New function; implement for X and Cairo.
	(x_fill_underline): New function.  Delegate to x_fill_rectangle or
	x_draw_dash as appropriate.
	(x_draw_glyph_string): Call x_fill_underline rather than
	x_fill_rectangle.

2024-04-28  Po Lu  <luangruo@yahoo.com>

	Port double-line underlines to GUI systems

	* src/xterm.c (x_get_scale_factor): Replace display in first
	argument with a pointer to dpyinfo.
	(x_draw_underwave): Adjust to match.
	(x_draw_glyph_string): Implement double-line underlines.

	* src/androidterm.c (android_get_scale_factor)
	(android_draw_glyph_string):

	* src/haikuterm.c (haiku_draw_text_decoration):

	* src/nsterm.m (ns_draw_text_decoration):

	* src/pgtkterm.c (pgtk_draw_glyph_string):

	* src/w32term.c (w32_draw_glyph_string): Synchronize with X.

	* src/xfaces.c (realize_gui_face): Enable `double-line' on window
	systems.

2024-04-27  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	cf839129ce0 Fix last change
	3e68d413c1c ; Skip 'csharp-ts-mode' test if grammar is missing

2024-04-27  Eshel Yaron  <me@eshelyaron.com>

	Refine the Custom type of generated '*-modes' options

	* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
	Refine the Custom type of the '*-modes' option, generated when
	this macro is given a ':predicate' argument.  (Bug#70589)

2024-04-27  Po Lu  <luangruo@yahoo.com>

	Fix omissions in window scrolling commands that ought to clear vscroll

	* src/window.c (Fdelete_other_windows_internal)
	(window_scroll_for_long_lines, Frecenter, Fmove_to_window_line):
	Reset window vscroll, or, if force_start be set, just
	preserve_vscroll_p, after moving window start to a position
	computed from iterators for the window in question, so that
	vscroll may be reliably reset again after the conditions for
	redisplay's doing the same were corrected.  (bug#70386)

2024-04-27  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	f37f01b5046 Fix a typo in Introduction to Emacs Lisp (bug#70571).
	d8687fd6cd8 Fix last change
	494dfd9cf2b Fix indentation of if/else in 'csharp-ts-mode' (bug#70345)
	1cc6322e612 ; * etc/PROBLEMS: Document crashes due to tree-sitter ABI...
	42766f95e5c * build-aux/make-info-dir: Avoid bashism (bug#70484).
	81476fa19e8 Improve documentation of selection and navigation in *xre...
	2a533514929 Fix Widget manual typos, markup and omissions (bug#70502)
	90be3015b4d ; Document bookmark fringe mark in the user manual
	afd0b548fcc Fix python-ts-mode built-in functions and attributes (bug...
	dc720decc3a Fix markup and indexing in the Calendar chapter of user m...
	f593bf79a91 Fix the user manual for `calendar-time-zone-style'
	aed2b7a3d82 Avoid assertion violations in 'push_prefix_prop'
	c929532b469 Remove ert-equal-including-properties from manual
	e3aae5fd385 ; Document 'filtered-frame-list'

2024-04-27  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix `find-grep-dired' with default OpenBSD's Grep

	* lisp/find-dired.el (find-grep-options): Use '-q' on OpenBSD as
	well.  (Bug#70550)

2024-04-27  Daniel Pettersson  <daniel@dpettersson.net>

	Shut down jsonrpc server more gracefully

	* lisp/jsonrpc.el (jsonrpc-running-p): Avoid unnecessarily killing
	the server process.  Suggested by Aaron Zeng
	<azeng@janestreet.com>.  (Bug#70522)

2024-04-27  Eli Zaretskii  <eliz@gnu.org>

	Followup changes for styled underline support

	* src/nsterm.m (ns_draw_text_decoration):
	* src/pgtkterm.c (pgtk_draw_glyph_string):
	* src/haikuterm.c (haiku_draw_text_decoration):
	* src/androidterm.c (android_draw_glyph_string):
	* src/w32term.c (w32_draw_glyph_string): Use new FACE_UNDER*
	constants.  (Bug#62994)

2024-04-27  Mohsin Kaleem  <mohkale@kisara.moe>

	Add support for colored and styled underlines on tty frames

	* src/dispextern.h (face, face_underline_type, syms_of_xfacse)
	(internal-set-lisp-face-attribute)
	(gui_supports_face_attributes_p): Add definitions for new
	underline styles of Double-line, Dots and Dashes.  Rename
	FACE_UNDER_LINE and FACE_UNDER_WAVE to make definitions
	consistent.  Delete tty_underline_p from the face struct and use
	just underline going forward.  Add a flag to check whether styled
	underlines are available.
	* lisp/cus-face.el (custom-face-attributes): Add entries for
	Double-line, Dots and Dashes so they can be set through
	`customize'.
	* src/termchar.h (tty_display_info): Add an entry for the escape
	sequence to set the underline style and color on terminal frames.
	* src/term.c (init_tty, tty_capable_p, turn_on_face): Read and
	save the underline style escape sequence from the Smulx termcap
	(alternatively if the Su flag is set use a default sequence).
	Allow checking for support of styled underlines in the current
	terminal frame.  Output the necessary escape sequences to activate
	a styled underline on turn_on_face; this is currently only used
	for the new special underline styles, a default straight underline
	will still use the "us" termcap.  Output escape sequence to set
	underline color when set in the face and supported by the tty.
	Save a default value for this sequence on init_tty when styled
	underlines are supported.
	* src/xfaces.c (tty_supports_face_attributes_p, realize_tty_face)
	(map_tty_color): Assert whether styled underlines are supported by
	the current terminal on display-supports-face-attributes-p checks.
	Populate the correct underline style and color in the face spec
	when realizing a face.  Allow map_tty_color to map underline
	colors alongside foreground and background.  The interface of
	map_tty_color was amended to allow the caller to supply the
	underline color instead of accessing it through the face
	attributes.  (bug#62994)
	* src/xterm.c (x_draw_glyph_string): Updated to use renamed
	FACE_UNDERLINE_SINGLE and FACE_UNDERLINE_WAVE face_underline_type
	enumerations.

2024-04-27  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'package-enable-at-startup'

	* doc/emacs/package.texi (Package Installation): Clarify how to
	customize 'package-enable-at-startup'.

	* lisp/emacs-lisp/package.el (package-enable-at-startup): Add note
	about customization.  (Bug#70402)

2024-04-27  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-common--fill-paragraph for C

	This should fix the failing filling test for c-ts-mode.

	* lisp/progmodes/c-ts-common.el (c-ts-common--fill-paragraph):
	Don't go back to indentation.

2024-04-27  Po Lu  <luangruo@yahoo.com>

	Enable customization of the quit key on Android

	* doc/emacs/android.texi (Android Windowing):

	* doc/emacs/input.texi (On-Screen Keyboards): Document various
	tidbits related to the quit key.

	* java/org/gnu/emacs/EmacsNative.java (getQuitKeycode): New
	function.

	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow): Rename
	`lastVolumeButtonRelease' to `lastQuitKeyRelease'.
	(onKeyUp): Treat value returned by getQuitKeycode as the quit key
	rather than mandate KEYCODE_VOLUME_DOWN.

	* src/android.c (getQuitKeycode): Implement new function.

	* src/androidterm.c (syms_of_androidterm) <android_quit_keycode>:
	New variable.

2024-04-26  Gerd Möllmann  <gerd@gnu.org>

	Fix gud-lldb-command-name

	* lisp/progmodes/gud.el (gud-gud-lldb-command-name): Change to
	gud-lldb-command-name.
	(lldb): Don't do stuff that is not needed for lldb.

2024-04-26  Philip Kaludercic  <philipk@posteo.net>

	Always update VC packages from a vc-dir buffer

	* lisp/emacs-lisp/package-vc.el (vc-dir-prepare-status-buffer):
	Add a declaration.
	(package-vc-upgrade): Prepare a dummy vc-dir buffer to ensure that
	'vc-pull' (or rather 'vc-deduce-fileset') can correctly infer the
	VC backend to use.  (bug#70526)

2024-04-25  Juri Linkov  <juri@linkov.net>

	Fix tab-line-buffers in window-persistent-parameters

	* lisp/tab-line.el: Replace '(tab-line-buffers . writable)' with
	'(tab-line-buffers . t)' in 'window-persistent-parameters'
	(bug#69993).

2024-04-25  Juri Linkov  <juri@linkov.net>

	Suppress warnings for obsolete display-comint-buffer-action

	* lisp/cmuscheme.el (run-scheme, switch-to-scheme):
	* lisp/shell.el (shell):
	* lisp/eshell/eshell.el (eshell):
	* lisp/progmodes/inf-lisp.el (inferior-lisp):
	* lisp/progmodes/sh-script.el (sh-show-shell):
	* lisp/textmodes/tex-mode.el (tex-display-shell)
	(tex-recenter-output-buffer): Add 'with-suppressed-warnings' to
	suppress warnings for obsolete options
	'display-comint-buffer-action' and
	'display-tex-shell-buffer-action'.  (bug#69983)

2024-04-25  Eli Zaretskii  <eliz@gnu.org>

	Fix 'mode-line-right-align-edge' with asymmetrical margins

	* lisp/bindings.el (mode--line-format-right-align): Fix alignment
	when window-margins are different on each side of the window.
	Suggested by Charles Gonnaud <charles.gonnaud@gmail.com>.
	(Bug#70485)

2024-04-25  john muhl  <jm@pub.pink>

	Fix which-function error in 'lua-ts-mode' (bug#70515)

	* lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Remove incorrect
	usage of 'which-func-functions'.
	* test/lisp/progmodes/lua-ts-mode-tests.el
	(lua-ts-test-which-function): Add test.
	* test/lisp/progmodes/lua-ts-mode-resources/which-function.lua:
	New file.

2024-04-25  Mattias Engdegård  <mattiase@acm.org>

	Better eval-when-compile example in manual

	* doc/lispref/compile.texi (Eval During Compile): `regexp-opt'
	makes for a poor example because as a pure function it doesn't
	need `eval-when-compile' for constant inputs.

2024-04-25  Po Lu  <luangruo@yahoo.com>

	Improve custom button faces on monochrome displays

	* lisp/cus-edit.el (custom-button, custom-button-mouse)
	(custom-button-pressed): Define raised boxes on monochrome
	displays.

2024-04-24  Po Lu  <luangruo@yahoo.com>

	Disable unsuitable XPM color selection mechanism on Android

	* src/image.c (xpm_load_image) [HAVE_ANDROID]: Always select
	XPM_COLOR_KEY_C.

2024-04-24  Gerd Möllmann  <gerd@gnu.org>

	Fix tbreak for LLDB

	* lisp/progmodes/gud.el (lldb): Use _regexp-tbreak command.

2024-04-24  Eli Zaretskii  <eliz@gnu.org>

	Fix handling of glyph codes in whitespace.el

	* lisp/whitespace.el (whitespace-display-vector-p): Support glyph
	codes, not just plain characters.  See
	https://lists.gnu.org/archive/html/help-gnu-emacs/2024-04/msg00248.html
	for the details.

2024-04-24  Yuan Fu  <casouri@gmail.com>

	Make c-ts-common-comment-indent-new-line work for rust doc comment

	* lisp/progmodes/c-ts-common.el
	(c-ts-common-comment-indent-new-line): Support //! comment
	directives.

2024-04-24  Yuan Fu  <casouri@gmail.com>

	Make c-ts-common--fill-paragraph work for rust line comment

	* lisp/progmodes/c-ts-common.el (c-ts-common--fill-paragraph):
	Back to BOL before checking for //.

2024-04-24  Po Lu  <luangruo@yahoo.com>

	More effectually prevent defun list wrapping in C-x C-w

	* lisp/vc/log-edit.el (log-edit-fill-entry): Match and replace
	with NBSPs the opening defun list also.

	* test/lisp/vc/log-edit-tests.el
	(log-edit-fill-entry-no-defun-list-wrapping): New test.

2024-04-24  Po Lu  <luangruo@yahoo.com>

	Miscellaneous fixes for Android port

	* lisp/touch-screen.el (touch-screen-hold, touch-screen-drag):
	Clear deactivate-mark if the mark is activated to prevent undue
	deactivation after completion.

	* lisp/wid-edit.el (widget-field, widget-single-line-field):
	Insert specifications suitable for monochrome displays.

	* src/androidfns.c (Fxw_display_color_p, Fx_display_grayscale_p):
	Report color and/or grayscale properly.

	* src/image.c (image_create_bitmap_from_file)
	[HAVE_ANDROID]: If a file with no extension cannot be located,
	append .xbm and retry.

2024-04-23  Daniel Semyonov  <daniel@dsemy.com>

	Gnus: Add back end for Atom feeds (nnatom)

	* lisp/gnus/gnus.el (gnus-valid-select-methods): Add entry for
	nnatom.
	* lisp/gnus/nnfeed.el: New file implementing an abstract web feed
	back end.
	* lisp/gnus/nnatom.el: New file implementing a back end for Atom
	feeds.
	* doc/misc/gnus.texi (Browsing the Web, Back End Interface):
	* etc/NEWS (Gnus): Document nnatom and nnfeed.

2024-04-23  Michael Albinus  <michael.albinus@gmx.de>

	Revert skip on eglot-tests.el

	* test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink):
	Comment out skip on EMBA.

2024-04-23  João Távora  <joaotavora@gmail.com>

	Eglot: robustify eglot-test-basic-symlink test (bug#70036)

	The previous version of this test was brittle, unstable and didn't
	really fail when supposed to (because we need main.cpp to not be
	visited when visiting mainlink.cpp).  This new version is faster
	and more secure.

	* test/lisp/progmodes/eglot-tests.el (eglot--sniffing): Add to the
	jsonrpc-event-hook at the end.
	(eglot-test-basic-symlink): Robustify test.

2024-04-23  João Távora  <joaotavora@gmail.com>

	Eglot: fix bug#70408 yet another way

	The previous fix based on comparing the Eglot-provided didOpen URI
	to the server-provided textDocument/publishDiagnostics URI didn't
	quite work because the URI differs slightly in escaping
	conventions on certain platforms.

	This elephant-size bug is easily reproducible on Windows with
	clangd, where every file is basically diagnostic-free.

	* lisp/progmodes/eglot.el (eglot-path-to-uri): Rework.
	(eglot--TextDocumentIdentifier-cache): Rename from
	eglot--TextDocumentIdentifier-uri.
	(eglot-handle-notification textDocument/publishDiagnostics):
	Tweak.
	(eglot--TextDocumentIdentifier): Rework.
	(eglot--signal-textDocument/didOpen): Tweak.  (bug#70408)

2024-04-23  Andrea Corallo  <acorallo@gnu.org>

	Run admin/syncdoc-type-hierarchy.el

	* doc/lispref/elisp_type_hierarchy.jpg: Update.
	* doc/lispref/elisp_type_hierarchy.txt: Likewise.

2024-04-23  Andrea Corallo  <acorallo@gnu.org>

	Generate elisp_type_hierarchy.txt with top level types on top of
	it.

	* admin/syncdoc-type-hierarchy.el (syncdoc-make-type-table):
	Prioritize to level types.

2024-04-23  Andrea Corallo  <acorallo@gnu.org>

	* admin/syncdoc-type-hierarchy.el (org): Add missing require.

2024-04-23  Justin Burkett  <justin@burkett.cc>

	Revert "* which-key.el (which-key--partition-list): Replace cl-subseq by take"

	This reverts commit 94a29cda9f75c9901667bf45ff25bd8c892cb416.

2024-04-23  Eshel Yaron  <me@eshelyaron.com>

	(completion-preview-prev-candidate): add numeric prefix argument

	* lisp/completion-preview.el (completion-preview-prev-candidate):
	Add numeric prefix argument N.
	(completion-preview-next-candidate): Update documentation.

2024-04-23  Michael Albinus  <michael.albinus@gmx.de>

	Support remote trash-directory

	* doc/misc/tramp.texi (Frequently Asked Questions): Describe how
	to manipulate trash-directory.  Explain
	tramp-inhibit-errors-if-setting-file-attributes-fail.

	* lisp/files.el (move-file-to-trash): Use connection-local value
	of `trash-directory'.  (Bug#70421)

2024-04-23  Michael Albinus  <michael.albinus@gmx.de>

	* test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink):
	Skip on EMBA.

2024-04-23  Michael Albinus  <michael.albinus@gmx.de>

	Some EMBA integration fixes

	* test/infra/Dockerfile.emba (emacs-native-comp-speed2): Fix typo.

	* test/infra/gitlab-ci.yml (.job-template): Add configure.log to
	artifacts.

2024-04-23  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2024-04-23  Po Lu  <luangruo@yahoo.com>

	Enable configuring Emacs for "pseudo-grayscale" systems on Android

	* doc/emacs/android.texi (Android Windowing): Document how to
	configure Emacs for monochrome displays.

	* src/androidfns.c (Fx_display_visual_class): Return Qstatic_gray
	when n_planes is smaller than 24.
	(Fandroid_get_connection): Set n_planes by the value of
	android_display_planes.
	(syms_of_androidfns) <Qstatic_gray>: New function.

	* src/androidterm.c (android_alloc_nearest_color): Allocate
	monochrome colors similarly to the X server.
	(android_query_colors): Fix typos.
	(android_draw_fringe_bitmap): Create bitmaps of n_image_planes
	depth.
	(android_term_init): Initialize n_image_planes to 24.
	(syms_of_androidterm) <android_display_planes>: New variable.

	* src/androidterm.h (struct android_display_info): New field
	`n_image_planes'.

	* src/image.c (n_planes) [HAVE_ANDROID]: Define to n_image_planes.

2024-04-23  Eli Zaretskii  <eliz@gnu.org>

	Fix dumping signal-handler data

	* src/sysdep.c (init_signals): Don't install signal handlers while
	dumping only with unexec, as pdumper doesn't dump static data of
	signal handlers.  See
	https://lists.gnu.org/archive/html/emacs-devel/2024-04/msg00539.html
	for the details.

2024-04-23  Po Lu  <luangruo@yahoo.com>

	Implement face stipples on Android

	* .gitignore:

	* java/Makefile.in: Fix typos.

	* java/org/gnu/emacs/EmacsFillRectangle.java (perform): Call
	blitOpaqueStipple if filling an unobscured rectangle with an
	opaque stipple.

	* java/org/gnu/emacs/EmacsGC.java (EmacsGC) <tileObject>: New
	field.
	(markDirty): Synchronize the current stipple with tileObject.
	(prepareStipple, blitOpaqueStipple): New functions.

	* java/org/gnu/emacs/EmacsService.java (EmacsService) <resources>:
	New static field.
	(onCreate): Set it.

	* src/android.c (android_create_bitmap_from_data): Correct order
	of arguments to android_create_pixmap_from_bitmap_data.
	(HAS_BUILTIN_TRAP): Delete macro.
	(emacs_abort): Always induce backtraces by means of a NULL pointer
	deference.

	* src/dispextern.h (Emacs_GC, Emacs_Rectangle, GCForeground)
	(GCBackground, GCFillStyle, GCStipple, FillOpaqueStipple)
	[HAVE_ANDROID]: Define to their Android counterparts rather than
	simulating their existence.

	* src/epaths.in: Set bitmap path to /assets/bitmaps on Android.

	* src/image.c (image_bitmap_pixmap): Also enable when
	HAVE_ANDROID.

	* src/sfntfont-android.c (sfntfont_android_put_glyphs): Assert
	that this is never called to draw a stippled background.
	* src/xfaces.c (x_create_gc) [HAVE_ANDROID]: Redefine as wrapper
	around android_create_gc.
	(prepare_face_for_display) [HAVE_ANDROID]: Enable stipples.

2024-04-23  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Cover more c-ts-common-comment-indent-new-line (bug#70520)

	* lisp/progmodes/c-ts-common.el:
	(c-ts-common-comment-indent-new-line): Handles the case of comments in a
	comment block that begin with whitespaces.

2024-04-22  Karl Fogel  <kfogel@red-bean.com>

	Fix two bugs in removing bookmark fringe marks

	This fixes bug#70019 and a separate fringe-mark removal bug that
	also affected bookmarks in certain Info nodes.

	* lisp/bookmark.el (bookmark--remove-fringe-mark): Fix bug#70019
	by temporarily widening in order to ensure we fetch the right
	overlays.  Also, normalize both filenames before comparing, to
	avoid spurious failure to match.

	Thanks to Dani Moncayo for the bug report and for testing.

2024-04-22  Mattias Engdegård  <mattiase@acm.org>

	Better format string compilation warning

	* lisp/emacs-lisp/bytecomp.el (byte-compile-format-warn): Speed up
	by eliminating the temporary buffer.  Detect invalid format
	sequences.  Use plurals properly.
	* test/lisp/emacs-lisp/bytecomp-tests.el: Update test.

2024-04-22  F. Moukayed  <smfadi+emacs@gmail.com>

	Ensure that Gnus inline preview undisplayer removes added newline

	* lisp/gnus/mm-view.el (mm-inline-image): Remove two characters
	("x\n") instead of leaving behind a superfluous newline.
	(bug#69920)

2024-04-22  Michael Albinus  <michael.albinus@gmx.de>

	Rework EMBA integration

	* test/infra/Dockerfile.emba (emacs-inotify, emacs-filenotify-gio)
	(emacs-eglot, emacs-tree-sitter, emacs-gnustep)
	(emacs-native-comp-speed0, emacs-native-comp-speed1)
	(emacs-native-comp-speed2): Use "-j `nproc`".
	(emacs-eglot): Add libxml2-dev and node-typescript.
	(emacs-tree-sitter) Add libxml2-dev and tree-sitter-rust.

	* test/infra/Makefile.in (subdir_template): Simplify make_params.

	* test/infra/gitlab-ci.yml (.job-template): Set environment
	variable NPROC.  Use "-k -j \$NPROC".
	(test-filenotify-gio, test-eglot, test-tree-sitter)
	(test-native-comp-speed2): Simplify make_params.

	* test/infra/test-jobs.yml: Regenerate.

2024-04-22  Po Lu  <luangruo@yahoo.com>

	Generate Android shared library list automatically

	* .gitignore: Ignore new generated files.

	* cross/Makefile.in (src/Makefile): Remove leftover
	specification of the source Gnulib directory.

	* cross/ndk-build/ndk-build.mk.in (NDK_BUILD_READELF): New
	variable.

	* java/Makefile.in (CONFIG_FILE, ALL_DEPENDENCIES, READELF)
	(cf-stamp-1, cf-stamp): New variables and rules; compute the set
	of library files in the order of loading and generate a file with
	this information.
	(ALL_CLASS_FILES): New variable; if builddir is not srcdir,
	$($(CONFIG_FILE), $(CLASS_FILES)): Depend on EmacsConfig.java.
	add generated files in the build directory.
	(classes.dex): Adjust to match.

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative)
	<static initializer>: Load shared libraries from
	EMACS_SHARED_LIBRARIES rather than a hard-coded list.

	* m4/ndk-build.m4 (ndk_INIT): Search for readelf...
	(ndk_CHECK_MODULES): ...and substitute its path as
	NDK_BUILD_READELF.

2024-04-22  Yuan Fu  <casouri@gmail.com>

	Cover more cases in c-ts-common-comment-indent-new-line

	* lisp/progmodes/c-ts-common.el:
	(c-ts-common-comment-indent-new-line): Handle the case for ///,
	which is used by rust.

2024-04-22  Juri Linkov  <juri@linkov.net>

	Small improvements for buffers display in flymake.el

	* lisp/progmodes/flymake.el (flymake-mode-map): Bind mouse-1 click
	on the fringe to 'flymake-show-buffer-diagnostics'.  (bug#70459)
	(flymake-show-buffer-diagnostics): Display buffer diagnostics at
	the bottom.
	(flymake-show-project-diagnostics): Display project diagnostics
	at the bottom.

2024-04-22  Juri Linkov  <juri@linkov.net>

	* lisp/emacs-lisp/warnings.el (warning-display-at-bottom): New
	defcustom.
	(display-warning): Use 'warning-display-at-bottom' to display the
	warning buffer at the bottom of the screen and to scroll to the
	last warning message.  (bug#69983)

2024-04-22  Juri Linkov  <juri@linkov.net>

	* lisp/files.el (find-alternate-file): Fix the order of restoring
	buffer.  Swap the order of restoring original buffer's file names
	and restoring original's buffer name with 'rename-buffer'.
	(bug#68235)

2024-04-22  Po Lu  <luangruo@yahoo.com>

	Fix load order of certain Android shared libraries

	* java/org/gnu/emacs/EmacsNative.java (libraryDeps): Move
	dependencies of selinux and gnutls before their respective
	dependents.

2024-04-22  Noah Peart  <noah.v.peart@gmail.com>

	Add rust-ts-mode font-locking tests (bug#70464)

	* test/lisp/progmodes/rust-ts-mode-tests.el: New file for
	rust-ts-mode tests.
	* test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs: New
	file with rust-ts-mode font-locking tests. New tests added for
	macro font-locking (bug#70464) and function signatures
	(bug#70465).

2024-04-22  Noah Peart  <noah.v.peart@gmail.com>

	Add font-locking for Rust macros (bug#70464)

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--font-lock-settings): Add font-locking for Rust
	macro metavariables, fragment specifiers and repetition patterns.

2024-04-22  Yuan Fu  <casouri@gmail.com>

	Make c-ts-common-comment-indent-new-line work for more cases

	* lisp/progmodes/c-ts-common.el:
	(c-ts-common-comment-indent-new-line): Handle the case where user
	types M-j in the middle of a line; and when the line starts with
	/**.

2024-04-22  Yuan Fu  <casouri@gmail.com>

	Add tree-sitter comment-indent-new-line (bug#70074)

	* lisp/progmodes/c-ts-common.el:
	(c-ts-common-comment-indent-new-line): New function.
	(c-ts-common-comment-setup): Setup comment-line-break-function and
	comment-multi-line.

2024-04-22  Noah Peart  <noah.v.peart@gmail.com>

	Improve function signature font-lock rust-ts-mode (bug#70465)

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--font-lock-settings): Add font-lock rule for Rust
	function signatures and missing function modifier keyword
	'default'.

2024-04-22  Yuan Fu  <casouri@gmail.com>

	Add treesit-add-font-lock-rules

	This function should help users customize font-lock rules.

	* lisp/treesit.el (treesit-add-font-lock-rules): New function.

2024-04-21  Po Lu  <luangruo@yahoo.com>

	Better verify arguments to android-relinquish-directory-access

	* src/androidvfs.c (Fandroid_relinquish_directory_access): Provide
	for NULL values from android_name_file and remote files.

	* src/xdisp.c (decode_mode_spec): Don't intern file-remote-p.
	(syms_of_xdisp) <Qfile_remote_p>: New defsym.

2024-04-21  Michael Albinus  <michael.albinus@gmx.de>

	Fix use of "dired" in Tramp

	* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Do not
	use "--dired" when long format output isn't requested.

2024-04-21  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Re-encode message bodies with externalized attachments during FCC

	* lisp/gnus/message.el (message-do-fcc): If the user has requested
	to externalize attachments, we can't use the cached version of the
	message body from sending.  This mirrors an equivalent check for
	GCC in `gnus-inews-do-gcc'.  (bug#70338)

2024-04-20  Michael Albinus  <michael.albinus@gmx.de>

	gitlab-ci.yml adaptions

	* test/infra/gitlab-ci.yml (test-filenotify-gio, test-eglot): Add
	TEST_HOME.
	(test-tree-sitter): Extend SELECTOR.

2024-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	(backtrace--print-func-and-args): Fix (part of) bug#70436

	The source of bug#70436 is that we print a value into the buffer
	and then we generate its print representation a second time to get
	its length to find the bounds of the thing we just printed.  Not
	only it's wasteful, but it risks bugs because the two "prints" can
	be inconsistent with each other.

	This is not a complete fix because in the non EVALD case we still
	use that same broken way.

	* lisp/emacs-lisp/backtrace.el (backtrace--print-func-and-args):
	Don't re-print things just to get their length.
	(backtrace--print-to-string): Skip a temp-buffer indirection.

2024-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl-print-object): Fix indirect cause of bug#70436

	* lisp/emacs-lisp/cl-print.el (cl-print-object): Fix specializer
	for the byte-code case.  (bug#70436)

2024-04-20  Po Lu  <luangruo@yahoo.com>

	Eliminate minor wart in EmacsService.java

	* java/org/gnu/emacs/EmacsService.java (openContentUri): Replace
	arg BYTES with URI and change its type to String.

	* src/android.c (android_init_emacs_service):

	* src/androidvfs.c (android_authority_name)
	(android_authority_open): Adjust commentary and code to match.

2024-04-20  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	ecb80e0e8aa ; Improve wording in documentation of 'not and 'null'
	5971aa1fd32 * lisp/dnd.el (dnd-handle-movement): Avoid errors (bug#70...
	bbc5204a0f3 * doc/misc/calc.texi: Improve indexing.

2024-04-20  Eshel Yaron  <me@eshelyaron.com>

	New command 'completion-preview-complete'

	This command completes the symbol at point up to the longest
	common prefix of all completions candidates.  We also add an
	indication of the longest common prefix in the completion preview
	by highlighting that part of the preview with the
	'completion-preview-exact' face.  To facilitate these features we
	change the way we store the completion candidates while the
	preview is visible, to explicitly keep the common prefix along
	with a list of its suffixes.

	* lisp/completion-preview.el (completion-preview--try-table):
	Return longest common prefix and list of suffixes instead of list
	of full candidates.  Add illustrative comment.
	(completion-preview--capf-wrapper, completion-preview--update)
	(completion-preview--show, completion-preview-insert)
	(completion-preview-next-candidate): Adjust.
	(completion-preview-common): New face.
	(completion-preview-exact): Tweak to distinguish it from
	'completion-preview-common'.
	(completion-preview-complete): New command.
	(completion-preview-active-mode-map): Bind it.
	(completion-preview-mode): Mention it in docstring.
	(completion-preview-commands): Add 'completion-preview-complete'.
	(completion-preview--make-overlay): Simplify.
	(completion-preview--internal-command-p): Remove.
	(completion-preview-require-certain-commands): Update.
	(completion-preview--inhibit-update): New inline function.
	(completion-preview--inhibit-update-p): New local variable.
	(completion-preview--post-command, completion-preview-hide): Reset
	it to nil.

	* test/lisp/completion-preview-tests.el
	(completion-preview-tests--check-preview): Check the 'face'
	property of both the first and last character.  Update callers.
	(completion-preview-insert-calls-exit-function)
	(completion-preview-complete): New tests.  (Bug#70381)

2024-04-20  Mattias Engdegård  <mattiase@acm.org>

	Kill process in files-tests before exiting

	* test/lisp/files-tests.el
	(files-tests-file-name-non-special-start-file-process): Make sure
	that the subprocess is killed before the test concludes.

2024-04-20  Eli Zaretskii  <eliz@gnu.org>

	Avoid "C-h for help" prompt in "C-h" commands describing keys

	* lisp/info.el (Info-goto-emacs-key-command-node): Call
	'read-key-sequence' instead of using 'interactive' with the "k"
	code, and suppress the "C-h for help" echo.
	* lisp/help.el (help--read-key-sequence): Suppress the "C-h for
	help" prompt in echo-keystrokes.  Give the prompt the
	'minibuffer-prompt' face.  (Bug#70432)

2024-04-20  Mattias Engdegård  <mattiase@acm.org>

	Update gravatar-tests after URL escaping change (bug#70312)

	* test/lisp/image/gravatar-tests.el (gravatar-default-image):
	It seems we now escape less.

2024-04-20  Augusto Stoffel  <arstoffel@gmail.com>

	With glasses-uncapitalize-p, use a display overlay property

	* lisp/progmodes/glasses.el (glasses-make-readable): Use the
	'display' property instead of 'after-string', so that one is able
	to place the cursor on the uncapitalized character.  (Bug#70441)

2024-04-20  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba: Add libxml2-dev.

2024-04-20  Michael Albinus  <michael.albinus@gmx.de>

	Complete fix for eww-tests.el

	* test/lisp/net/eww-tests.el (eww-test/readable/toggle-display)
	(eww-test/readable/default-readable): Check for libxml.
	(Bug#70472)

2024-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	(track-changes--call-signal): Silence late signals

	* lisp/emacs-lisp/track-changes.el (track-changes--call-signal):
	Skip the call if the tracker was unregistered.

2024-04-20  Yuan Fu  <casouri@gmail.com>

	Tree-sitter: only update range and reparse for changed ranges

	In the very beginning, there's bug#66732, to solve that bug, we
	added treesit--pre-redisplay and
	treesit--syntax-propertize-notifier.  However, to fix bug#66732,
	we were updating ranges for the whole buffer which makes Emacs
	extremely slow when there are a lot of local parsers in a large
	buffer.  Then to solve that we introduced a workaround where we
	only update ranges in a fixed range around point.

	This change fixes the original problem (bug#66732) without using
	that workaround.

	* lisp/treesit.el (treesit--font-lock-notifier):
	(treesit--syntax-propertize-notifier): Remove functions
	(treesit--pre-redisplay): Use the new function
	treesit-parser-changed-ranges to get the changed ranges of the
	primary parser, and only update ranges for those ranges.  Plus do
	the work of the removed function.
	(treesit-major-mode-setup): Remove setup for the removed
	functions.

2024-04-20  Yuan Fu  <casouri@gmail.com>

	New function treesit-parser-changed-ranges

	- Add a new field last_changed_ranges to tree-sitter parser
	object.
	- Add a new function treesit-parser-changed-ranges

	* doc/lispref/parsing.texi (Using Parser): Add the function in
	tree-sitter manual.
	* src/treesit.c (treesit_get_changed_ranges): New function,
	refactored out of treesit_call_after_change_functions.
	(treesit_call_after_change_functions): Pull out
	treesit_get_changed_ranges.
	(treesit_ensure_parsed): Save the changed ranges to the parser object.
	(make_treesit_parser): Initialize the new parser field
	last_changed_ranges.
	(Ftreesit_parser_changed_ranges): New function.
	(Qtreesit_unparsed_edits): New error.
	* src/treesit.h (Lisp_TS_Parser): New field.

2024-04-19  João Távora  <joaotavora@gmail.com>

	Eglot: tweak previous change (bug#70036)

	* lisp/progmodes/eglot.el (eglot--TextDocumentIdentifier-uri):
	Rename from eglot--cached-tdi.
	(eglot-handle-notification): Tweak comment.  Use
	eglot--TextDocumentIdentifier-uri.
	(eglot--TextDocumentIdentifier)
	(eglot--signal-textDocument/didOpen): Use
	eglot--TextDocumentIdentifier-uri.

	* test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink):
	Address compilation warning.  Tweak comment slightly.

2024-04-19  F. Jason Park  <jp@neverwas.me>

	Fix regression involving erc-query-buffer-p

	* lisp/erc/erc.el (erc-server-or-unjoined-channel-buffer-p): Doc.
	(erc-query-buffer-p): Don't return non-nil in non-ERC buffers and
	server buffers, and continue to honor string arguments.  The
	regression was introduced by 3d87e343 "Use modern fallback for
	channel name detection in ERC".  Thanks to Libera user mekeor for
	reporting this bug.
	* test/lisp/erc/erc-tests.el (erc-query-buffer-p): New test.
	(Bug#67220)

2024-04-19  F. Jason Park  <jp@neverwas.me>

	Add erc--skip message property

	* lisp/erc/erc-backend.el (erc-server-connect): Add `erc--skip'
	property to `erc--msg-prop-overrides' so that timestamps only show
	up with the first server-sent message.
	(erc-server-PRIVMSG): Move `erc--msg-prop-overrides' declaration
	to top-level.
	* lisp/erc/erc-button.el
	(erc-button--display-error-notice-with-keys): Use `erc--skip' msg
	prop instead of `erc-stamp--skip' variable.
	* lisp/erc/erc-stamp.el (erc-stamp--skip): Remove variable.
	(erc-stamp--allow-unmanaged, erc-stamp--allow-unmanaged-p): Rename
	former to latter to remain consistent with convention used by
	other quasi-internal compatibility-related switches.
	(erc-add-timestamp): Check `erc--skip' property instead of deleted
	variable `erc-stamp--skip'.
	* lisp/erc/erc.el (erc--msg-props): Mention `erc--skip' in doc.
	(erc--check-msg-prop): Doc.
	(erc--memq-msg-prop): New function.
	(erc--ranked-properties): Add `erc--skip'.
	* test/lisp/erc/erc-scenarios-stamp.el
	(erc-scenarios-stamp--legacy-date-stamps): Revise to expect
	"opening connection.." to appear above first stamp.
	* test/lisp/erc/erc-tests.el (erc--memq-msg-prop): New test.
	(Bug#60936)

2024-04-19  F. Jason Park  <jp@neverwas.me>

	Don't nest date stamp insertions in erc-stamp

	* etc/ERC-NEWS: Don't mention certain insertion-adjacent hooks
	being suppressed for date stamps, which is no longer true.
	* lisp/erc/erc-common.el (erc--solo): New utility function.
	* lisp/erc/erc-fill.el (erc-fill-wrap): Don't move last-message
	marker when encountering a date stamp.
	* lisp/erc/erc-stamp.el (erc-stamp--recover-on-reconnect): Restore
	`erc-stamp--date-stamps' on reconnect and rejoin.
	(erc-stamp--insert-date-hook): Fix erroneous doc string.
	(erc-stamp--date): New struct type.
	(erc-stamp--deferred-date-stamp): New internal variable to pass
	state between hook members.
	(erc-stamp--date-stamps): New internal variable to store a
	reference to all inserted timestamps.
	(erc-stamp--propertize-left-date-stamp): Don't hide messages
	because this function runs on `erc-insert-modify-hook'.  Prefer
	doing so later, in `erc-insert-post-hook'.
	(erc-stamp--find-insertion-point): New helper function.
	(erc-stamp--insert-date-stamp-as-phony-message): Remove.
	(erc-stamp--lr-date-on-pre-modify): Remove function.  Portions of
	body now appear in
	`erc-stamp--defer-date-insertion-on-post-modify'.
	(erc-stamp--defer-date-insertion-on-post-modify)
	(erc-stamp--defer-date-insertion-on-post-insert)
	(erc-stamp--defer-date-insertion-on-post-send): New functions,
	although the first incorporates parts of the now defunct
	`erc-stamp--lr-date-on-pre-modify'.
	(erc-stamp--date-mode): Update hook-member functions.
	(erc-stamp-prepend-date-stamps-p): Revise doc.
	(erc-insert-timestamp-left-and-right): Remove code to initialize a
	date stamp in place through a nested call to
	`erc-display-message'.  Instead, "pre-render" date stamp and stash
	it for retrieval by the function
	`erc-stamp--defer-date-insertion-on-post-modify'.
	(erc-stamp--setup): Kill variables
	`erc-stamp--deferred-date-stamp' and `erc-stamp--date-stamps'.
	(erc-stamp--reset-on-clear): Remove trimmed stamps from
	`erc-stamp--date-stamps'.
	* lisp/erc/erc.el (erc--msg-props): Document `erc--hide' in doc
	string.
	(erc--with-inserted-msg): Remove unused macro.
	(erc--insert-line-splice-function): New variable.
	(erc--with-spliced-insertion): New macro.
	(erc--insert-line-function): Expand doc string.
	(erc--remove-from-prop-value-list): Tweak doc string.
	(erc--insert-before-markers-transplanting-hidden): New function.
	(erc--hide-message): Remember managed `invisible' prop value.  Do
	so by recording them in the `erc--hide' "msg prop".
	(erc--delete-inserted-message)
	(erc--delete-inserted-message-naively): Rename former to latter to
	emphasize that it's largely impractical for general use.
	(erc--ranked-properties): Add `erc--hide'.
	* test/lisp/erc/erc-button-tests.el
	(erc-button-tests--erc-button-alist--function-as-form): Use
	`erc-display-message' helper.
	* test/lisp/erc/erc-fill-tests.el (erc-fill-tests--insert-privmsg)
	(erc-fill-tests--wrap-populate, erc-fill-wrap-tests--merge-action)
	(erc-fill-line-spacing): Use `erc-display-message' wrappers to
	intercept `erc-timer-hook' modifications.
	* test/lisp/erc/erc-scenarios-match.el
	(erc-scenarios-match--invisible-stamp): Add convenience commands
	to `extended-command-history' when running interactively.
	* test/lisp/erc/erc-tests.el
	(erc--insert-before-markers-transplanting-hidden): New test.
	(erc--delete-inserted-message)
	(erc--delete-inserted-message-naively): Update test name as well
	as namesake function in body.
	* test/lisp/erc/resources/erc-scenarios-common.el
	(erc-scenarios-common-with-cleanup): Validate
	`erc-stamp--date-stamps' members after every scenario test.
	(erc-scenarios-common--assert-date-stamps): New function.
	* test/lisp/erc/resources/erc-tests-common.el: Require `erc-stamp'
	atop file when compiling.
	(erc-tests--common-display-message)
	(erc-tests-common-display-message)
	(erc-tests-common-with-date-aware-display-message): New functions
	and macro for running `erc-display-message' while intercepting
	additions to `erc-timer-hook' made by date-stamp-related
	post-insertion hooks.
	(erc-tests-common-snapshot-compare): Insert expected output into
	its own buffer for easier review during interactive sessions.
	This change is unrelated to the rest of this commit.  (Bug#60936)

2024-04-19  F. Jason Park  <jp@neverwas.me>

	Improve erc-fill-wrap-merge refilling and movement

	* lisp/erc/erc-fill.el (erc-fill--wrap-escape-hidden-speaker): Add
	parameter to suppress escaping of hidden prefixes.
	(erc-fill--wrap-beginning-of-line): Remember original value of
	point, and pass it to `erc-fill--wrap-escape-hidden-speaker'.
	(erc-fill--wrap-previous-line, erc-fill--wrap-next-line): Guard
	call to `erc-fill--wrap-escape-hidden-speaker' with conditional
	check for `erc-fill-wrap-merge'.
	(erc-fill--wrap-insert-merged-pre): Add additional text property,
	`erc-fill--wrap-merge', to help identify `display' regions
	servicing `erc-fill-wrap-merge'.  This should make resolving
	inconsistencies easier when "splicing" new messages between
	existing ones.
	(erc-fill-wrap): Add `erc-fill--wrap-merge' text property to
	merged speaker region.
	(erc-fill--wrap-rejigger-region): Remove assertion disallowing a
	non-nil `erc-fill--wrap-rejigger-last-message'.  Instead, adopt
	the existing value of that variable when shadowing it for the
	remaining extent of the function's execution.  When removing the
	`display' property, also look for nonempty replacement text, such
	as values specified by the option `erc-fill-wrap-merge-indicator'.
	(erc-fill--wrap-merged-button-p): Look for `erc-fill--wrap-merge'
	property instead of `display'.
	* test/lisp/erc/resources/fill/snapshots/merge-01-start.eld:
	Update.
	* test/lisp/erc/resources/fill/snapshots/merge-02-right.eld:
	Update.
	* test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld:
	Update.
	* test/lisp/erc/resources/fill/snapshots/merge-wrap-indicator-pre-01.eld:
	Update.
	* test/lisp/erc/resources/fill/snapshots/spacing-01-mono.eld:
	Update.
	(Bug#60936)

2024-04-19  F. Jason Park  <jp@neverwas.me>

	Simplify option erc-merge-wrap-merge-indicator

	* lisp/erc/erc-fill.el (erc-fill-wrap-merge-indicator): Reduce
	offering of acceptable values by removing leading symbols and
	ditching the `post' variant entirely.  The justification for the
	latter move hinges on it not being well suited to next-gen
	requirements involving the splicing and deletion of inserted
	messages.  Meeting these would be overly burdensome and involve
	scanning the buffer in both directions for every such operation.
	This option is new in ERC 5.6, which is yet unreleased.
	(erc-fill--wrap-massage-legacy-indicator-type): New function to
	warn of obsolete `erc-fill-wrap-merge-indicator' value and perform
	a migration for the current session.
	(erc-fill-wrap, erc-fill-wrap-enable): Perform preflight compat
	check for obsolete `erc-fill-wrap-merge-indicator' value types.
	(erc-fill-wrap-disable): Don't bother killing nonexistent variable
	`erc-fill--wrap-merge-indicator-post'.
	(erc-fill--wrap-merge-indicator-post): Remove unused variable.
	(erc-fill--wrap-insert-merged-post): Remove unused function.
	(erc-fill--wrap-insert-merged-pre): Adapt to simplified format for
	option `erc-merge-wrap-merge-indicator'.
	(erc-fill-wrap): Remove conditional dispatch because there is only
	one path and only one indicator style.
	(erc-fill--wrap-rejigger-region): Remove reference to nonexistent
	variable `erc-fill--wrap-merge-indicator-post'.
	* test/lisp/erc/erc-fill-tests.el
	(erc-fill-wrap--merge-action/indicator-pre): Update format of
	value for option `erc-fill-wrap-merge-indicator'.
	(erc-fill-wrap--merge-action/indicator-post): Remove test focusing
	on obsolete and unsupported `post' variant of option
	`erc-fill-wrap-merge-indicator'.
	(erc-fill--wrap-massage-legacy-indicator-type): New test.
	* test/lisp/erc/resources/fill/snapshots/merge-wrap-indicator-post-01.eld:
	Delete file.  (Bug#60936)

2024-04-19  Theodor Thornhill  <theo@thornhill.no>

	Make publishDiagnostics faster by using cached variable

	* lisp/progmodes/eglot.el (eglot--cached-tdi): Move variable.
	(eglot-handle-notification): Expose 'server' and search through
	managed buffers for a cached textDocumentIdentifier, which has a
	file-truename resolved path.
	* test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink):
	Add regression test for symlink behavior.

2024-04-19  Michael Albinus  <michael.albinus@gmx.de>

	New user option
	tramp-inhibit-errors-if-setting-file-attributes-fail.

	* doc/misc/tramp.texi (Frequently Asked Questions): Explain
	tramp-inhibit-errors-if-setting-file-attributes-fail.

	* lisp/net/tramp.el
	(tramp-inhibit-errors-if-setting-file-attributes-fail): New
	defcustom.
	(tramp-skeleton-set-file-modes-times-uid-gid): Use it.

2024-04-19  Po Lu  <luangruo@yahoo.com>

	* java/INSTALL: Update instructions.

2024-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	(eglot--signal-textDocument/didChange): Fix tests

	The tests call `eglot--signal-textDocument/didChange' eagerly,
	which means in the case where we use `track-changes' that they
	call it before the tracker's signal has been called.  So make sure
	we fetch pending changes even if we haven't yet been notified of
	them, and make sure `eglot--versioned-identifier' is incremented
	even when the signal is not called.

	* lisp/progmodes/eglot.el (eglot--track-changes-fetch)
	(eglot--after-change): Increment `eglot--versioned-identifier'
	here...
	(eglot--track-changes-signal): ...instead of here.
	(eglot--signal-textDocument/didChange): Try and fetch changes even
	if the tracker's signal wasn't called yet.

	* test/lisp/progmodes/eglot-tests.el (eglot-tests--get): New
	function.
	(eglot-tests--lsp-abiding-column-1): Use it.

2024-04-18  Juri Linkov  <juri@linkov.net>

	Drag tabs to reorder buffers on the tab line.

	* lisp/tab-line.el (tab-line-mouse-move-tab): New command bound to
	[tab-line drag-mouse-1].

2024-04-18  João Távora  <joaotavora@gmail.com>

	Better way to fix bug#70036

	Cache a new eglot--cached-tdi var per buffer, which contains value
	to return from eglot--TextDocumentIdentifier.

	This avoids frequent expensive recomputation of a value that
	requires potentially many 'file-truename' calls.  This technique
	is used in a number of other cases already, like
	eglot--recent-changes or eglot--versioned-identifier.

	* lisp/progmodes/eglot.el (eglot--cached-tdi): New variable.
	(eglot--TextDocumentIdentifier): Tweak.
	(eglot--signal-textDocument/didOpen): Clear eglot--cached-tdi.

2024-04-18  João Távora  <joaotavora@gmail.com>

	Revert "Don't use file-truepath in Eglot (bug#70036)"

	This reverts commit 08c80c45ddea17df87fc768a39dff353ccc13d3b.

	It introduces bugs when a project contains symlinked files.  The
	server will be informed of duplicate documents which are really
	the same and it frequently has no means to deduplicate such
	information.

	This leads to bugs such as excessive textDocument/references to a
	function.

	* lisp/progmodes/eglot.el (eglot-lsp-server): Revert change.
	(eglot-uri-to-path): Revert change.
	(eglot--on-shutdown): Revert change.
	(eglot--managed-mode): Revert change.
	(eglot-handle-notification textDocument/publishDiagnostics):
	Revert change.

2024-04-18  Stephen Berman  <stephen.berman@gmx.net>

	Don't error on tabbing to a widget at BOB (bug#69943)

	* lisp/wid-edit.el (widget-move): Don't move backward when at
	beginning of buffer, and keep point on widget's left side.

	* test/lisp/wid-edit-tests.el (widget-test-widget-move): Test that
	moving to a widget at beginning of buffer does not signal a
	beginning-of-buffer error.

2024-04-18  Mattias Engdegård  <mattiase@acm.org>

	Ensure that specbind arg is always bare symbol, and drop check

	* src/eval.c (FletX, Flet, internal_lisp_condition_case)
	(funcall_lambda): Ensure that the first argument to `specbind' is
	a bare symbol in the few cases where this isn't statically
	guaranteed.
	(specbind): Drop the symbol argument type check on the fast path.

2024-04-18  Mattias Engdegård  <mattiase@acm.org>

	Drop unnecessary type check in varref and varset byte ops

	* src/bytecode.c (exec_byte_code): We can safely assume that the
	immediate argument to varref and varset is a bare symbol; the
	byte-compiler should guarantee that.

2024-04-18  Augusto Stoffel  <arstoffel@gmail.com>

	Obsolete comint-osc symbols moved to ansi-osc.el

	* lisp/comint.el (comint-osc-handlers)
	(comint-osc-directory-tracker, comint-osc-hyperlink-handler)
	(comint-osc-hyperlink, comint-osc-hyperlink-map): Mark as
	obsolete.  (Bug#70375)

2024-04-18  Siddharth Sharma  <siddharth.sharma@ericsson.com>  (tiny change)

	Add YANG LSP support to Eglot

	* lisp/progmodes/eglot.el (eglot-server-programs): Add
	'yang-language-server' and 'json-ts-mode'.  (Bug#70364)

2024-04-18  Noah Peart  <noah.v.peart@gmail.com>

	Add font-locking for Go built-in functions in go-ts-mode

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
	Add font-locking for Go built-in functions to 'go-ts-mode'.
	(Bug#70362)

2024-04-18  Dagfinn Ilmari Mannsåker  <ilmari@ilmari.org>

	Avoid unnecessary escaping in 'url-build-query-string'

	* lisp/url/url-util.el (url-query-key-value-allowed-chars): New
	defconst.
	(url-build-query-string): Use it to escape only those characters
	that need it in keys and values.
	* test/lisp/url/url-util-tests.el (url-util-tests): Add new test
	cases.  (Bug#70312)

2024-04-18  Elias G. B. Perez  <eg642616@gmail.com>

	Flymake support for indicating errors in margin

	Add optional support for display flymake error in margin, this
	allow displaying error indicators in both graphical and terminal
	frames.
	* doc/misc/flymake.texi (Customizable variables)
	(Flymake error types): Document new margin indicator.
	* etc/NEWS: Announce the new Flymake user option for margin
	indicators.
	* lisp/progmodes/flymake.el (flymake-indicator-type)
	(flymake-margin-indicators-string, flymake-autoresize-margins)
	(flymake-margin-indicator-position): New user options.
	(flymake--original-margin-width): Add buffer-local variable for
	store original buffer margin width.
	(flymake-error, flymake-warning, flymake-note): Use new margin
	value.
	(flymake--indicator-overlay-spec): Rework and Rename from
	flymake--fringe-overlay-spec.
	(flymake--resize-margins): Add new function for resize margin
	width.
	(flymake--highlight-line, flymake-mode): Rework.

2024-04-18  Eli Zaretskii  <eliz@gnu.org>

	Fix sending input to SQL when point is not at EOB

	* lisp/progmodes/sql.el (sql-send-string): Move point to EOB
	before sending input to the SQL process.  Suggested by Gary Hollis
	<ghollisjr@gmail.com>.  (Bug#69420)

2024-04-18  Juri Linkov  <juri@linkov.net>

	* lisp/tab-line.el: Use the new keyword :key for 'sort'.

	(tab-line-tabs-fixed-window-buffers): Use :key for 'sort'.  Rename
	the window parameter 'tab-line-fixed-window-buffers' to shorter
	'tab-line-buffers'.  Add '(tab-line-buffers . writable) to
	window-persistent-parameters.

2024-04-18  Po Lu  <luangruo@yahoo.com>

	Correctly verify availability of Android content URIs

	* java/org/gnu/emacs/EmacsService.java (checkContentUri): Call
	checkUriPermission with IPC-effective PID and UID rather than
	checkCallingUriPermission, which never considers permissions of
	Emacs itself, and delete the now-redundant workaround.

2024-04-17  Augusto Stoffel  <arstoffel@gmail.com>

	Propagate 'lexical-binding' value to pp buffers

	* lisp/emacs-lisp/pp.el (pp-display-expression): Set
	lexical-binding to match the value in the calling buffer.
	(bug#70137)

2024-04-17  Theodor Thornhill  <theo@thornhill.no>

	Document earlier change in eglot-report-progress

	* lisp/progmodes/eglot.el (eglot-report-progress): Document the
	changed behavior.
	* etc/EGLOT-NEWS (https): Mention the change.

2024-04-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	(conf-toml-recognize-section): Fix bug#70383

	* lisp/textmodes/conf-mode.el (conf-toml-recognize-section): Move
	point, like font-lock matchers are expected to do.

2024-04-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	eglot.el: Remove accidentally included debugging code

	* lisp/progmodes/eglot.el (eglot--signal-textDocument/didChange):
	Remove leftover debug message.

2024-04-17  Juri Linkov  <juri@linkov.net>

	* lisp/emacs-lisp/icons.el (define-icon): Add 'doc-string' to
	'declare'.

2024-04-17  Juri Linkov  <juri@linkov.net>

	New keymap tab-line-mode-map and new tab order on tab-line

	* lisp/tab-line.el (tab-line-new-button-functions): New variable.
	(tab-line-tabs-function): Change the default value from
	'tab-line-tabs-window-buffers' to the new option
	'tab-line-tabs-fixed-window-buffers'.
	(tab-line-tabs-buffer-group-sort-function): Change the default
	value from nil to 'tab-line-tabs-buffer-group-sort-by-name'.
	(tab-line-tabs-buffer-group-sort-by-name): New function.
	(tab-line-tabs-fixed-window-buffers): New function.
	(tab-line-format-template): Use 'tab-line-new-button-functions'.
	(tab-line-mode-map, tab-line-switch-repeat-map): New keymaps.
	(bug#69993)

2024-04-17  Stephen Berman  <stephen.berman@gmx.net>

	Allow tabbing between widgets to skip inactive widgets (bug#70413)

	* doc/misc/widget.texi (Widgets and the Buffer, Customization):
	Document it.

	* etc/NEWS: Announce it.

	* lisp/wid-edit.el (widget-skip-inactive): New user option.
	(widget-tabable-at): Use it.

2024-04-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/track-changes.el: Fix trailer

2024-04-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	track-changes.el: Fix last change for early use

	* lisp/emacs-lisp/track-changes.el
	(track-changes--recover-from-error): Don't burp if there have been
	fewer than 20 keystrokes since Emacs start.

2024-04-17  Eli Zaretskii  <eliz@gnu.org>

	Another fix for bug#70385

	* src/xdisp.c (note_fringe_highlight): Check value of
	x_y_to_hpos_vpos.

2024-04-17  Juri Linkov  <juri@linkov.net>

	* lisp/emacs-lisp/lisp.el (forward-sexp-function): Set back to
	nil.
	(forward-sexp): Revert back to checking 'forward-sexp-function'
	for nil.  (bug#70426)

2024-04-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	track-changes.el: Minor changes for version 1.0

	Arrange for the library to be usable on older Emacsen, which
	includes reducing the noise when `before/after-change-functions'
	are badly paired or missing.  Also, since the signal function
	receives the distance (for `:disjoint'), we don't need
	`track-changes--disjoint-threshold': the signal function can
	simply do nothing when the distance is smaller than the threshold
	it wants to use.

	* lisp/emacs-lisp/track-changes.el: Prepare header for ELPA.
	(track-changes--tracker, track-changes--state): Don't use
	`:noinline', so as to be compatible with Emacs<27.
	(track-changes-record-errors): New variable.
	(track-changes--recover-from-error): Use it.  Record only the last
	20 keys and the last 50 stack frames in the error log.
	(track-changes--disjoint-threshold): Delete variable.
	(track-changes--before): Don't use it any more.

	* lisp/progmodes/eglot.el (eglot--track-changes-signal): Coalesce
	disjoint changes nearer than what used to be coalesced because of
	`track-changes--disjoint-threshold'.

2024-04-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl-defstruct): Improve handling of unknown options

	Until now `cl-defstruct' signaled an error when encountering an
	unknown option.  It's easy to code and it does the job, but it
	doesn't give good location info in the compiler's output, and it
	makes it more painful to use not-yet-supported options.  So just
	signal a warning instead.

	* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Warn about unknown
	options, instead of signaling an error.

2024-04-16  Eli Zaretskii  <eliz@gnu.org>

	* src/xdisp.c (note_fringe_highlight): Another attempt to fix
	bug#70385.

2024-04-16  Eli Zaretskii  <eliz@gnu.org>

	Minor fix in detecting recursive redisplay invocations

	* src/xdisp.c (redisplay_internal): Detect recursive invocations
	earlier.  (Bug#66416)

2024-04-16  Mattias Engdegård  <mattiase@acm.org>

	Revert "; Improvements to PEG documentation"

	This reverts commit 930c578c1042e6372e5433e31b2ea801315c01c9.
	Looks like an editing mistake ate a large part of the text.

2024-04-16  Michael Albinus  <michael.albinus@gmx.de>

	Adapt tree-sitter job on EMBA

	* test/infra/gitlab-ci.yml (.tree-sitter-template)
	(test-tree-sitter): Adapt tree-sitter job.

2024-04-16  Po Lu  <luangruo@yahoo.com>

	Fix touch screen hscroll when initiated from widgets

	* lisp/wid-edit.el (widget-button--check-and-call-button): Return
	to the position of point during the tracking loop if a touch event
	is canceled.

2024-04-16  Po Lu  <luangruo@yahoo.com>

	Another fix for bug#70385

	* src/xdisp.c (note_fringe_highlight): Test that vpos falls within
	W->current_matrix.  (bug#70385)

2024-04-16  Juri Linkov  <juri@linkov.net>

	Support prefix argument for switching tabs in tab-line-mode

	* lisp/tab-line.el (tab-line-select-tab-buffer): Optimize.
	(tab-line-switch-cycling): Enable by default like in tab-bar-mode.
	(tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab): Add a
	prefix argument ARG and support it for switching tabs.  Improve
	docstring.

2024-04-16  Noah Peart  <noah.v.peart@gmail.com>

	Add font-locking for operators in go-ts-mode (bug#70361)

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
	Add font-locking rule for Go operators.

2024-04-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	(track-changes-fetch): Fix nested use case

	* lisp/emacs-lisp/track-changes.el (track-changes-fetch): Don't
	presume that if there's nothing to do we're on
	`track-changes--clean-trackers`.

2024-04-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	(track-changes--before): Fix bug#70396

	* lisp/emacs-lisp/track-changes.el (track-changes--before): Widen
	the buffer before accessing it with positions potentially outside
	the beg..end region.

2024-04-15  Eli Zaretskii  <eliz@gnu.org>

	Fix resetting the frame's 'frozen_window_starts' flag

	* src/window.c (grow_mini_window, shrink_mini_window): Reimplement
	how the frame's 'frozen_window_starts' flag is set and reset, to
	make sure it is always reset when the mini-window gets to its
	normal one-line height.  Patch by Martin Rudalics
	<rudalics@gmx.at> (Bug#70038)

2024-04-15  Eli Zaretskii  <eliz@gnu.org>

	Fix display of @xref documentation in Info

	* lisp/info.el (Info--dont-hide-references): New variable.
	(Info-fontify-node): Use 'Info--dont-hide-references' to disable
	hiding "*Note" or showing "See" instead of it in select nodes.
	(Bug#70382)

2024-04-15  Po Lu  <luangruo@yahoo.com>

	Rewrite Android description of Android window management

	* doc/emacs/android.texi (Android Environment): Rewrite several
	paragraphs to better reflect recent changes and emphasize behavior
	on modern OS releases.

2024-04-15  Martin Rudalics  <rudalics@gmx.at>

	Make 'buffer-last-name' work better after 'find-alternate-file'

	* lisp/files.el (find-alternate-file): Before killing the previous
	buffer, try to restore its name and filenames.  (Bug#68235)

2024-04-15  Po Lu  <luangruo@yahoo.com>

	* src/xdisp.c (note_fringe_highlight): Don't proceed if
	popup_activated, window is outdated, or when row beneath pointer
	does not display text.  (bug#70385)

2024-04-14  Mattias Engdegård  <mattiase@acm.org>

	GC-mark temporary key values created when sorting (bug#69709)

	Bug reported and fix proposed by Aris Spathis.

	* src/sort.c (merge_markmem): Mark heap-allocated temporary key
	values.
	(tim_sort): Delay key function calls to after marking function has
	been registered.
	* test/src/fns-tests.el (fns-tests-sort-gc): New test.

2024-04-14  Juri Linkov  <juri@linkov.net>

	Add 'forward-sexp-default-function' to be used by 'treesit-forward-sexp'

	* lisp/emacs-lisp/lisp.el (forward-sexp-default-function): New
	function with body from 'forward-sexp'.  (bug#68993)
	(forward-sexp-function): Change the default value from nil to
	'forward-sexp-default-function'.
	(forward-sexp): Use either 'forward-sexp-function' or
	'forward-sexp-default-function'.

	* lisp/treesit.el (treesit-forward-sexp): In nodes of type 'text'
	fall back to 'forward-sexp-default-function'.  Improve docstring.

	* doc/lispref/positions.texi (List Motion): Fix pxref.

2024-04-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	text.texi (Tracking changes): Fix warning

	* doc/lispref/text.texi (Change Hooks): Add a menu to silence
	warnings.
	(Tracking changes): Improve the title.

2024-04-14  Earl Hyatt  <okamsn@protonmail.com>

	Add command 'list-keyboard-macros' that works like 'list-buffers'.

	The command 'list-keyboard-macros' allows editing and re-arranging
	macros using 'tabulated-list-mode'.  Existing keyboard macros can
	be duplicated or deleted.  Macro counters and counter formats can
	take new values read from the minibuffer.  Macro keys can be
	edited using 'edit-kbd-macro'.

	* doc/emacs/kmacro.texi (Kmacro Menu): Document the new command
	and the menu's commands.
	* etc/NEWS (Kmacro Menu Mode): Mention the new mode and command.
	* lisp/kmacro.el (kmacro-menu-mark, kmacro-menu-marked)
	(kmacro-menu-flagged): Add faces for marks and flags.
	* lisp/kmacro.el (kmacro-menu-mode-map, kmacro-menu-mode): Add
	mode and map.
	* lisp/kmacro.el (list-keyboard-macros, kmacro-menu): Add command.
	* lisp/kmacro.el (kmacro-menu--deletion-flags, kmacro-menu--marks)
	(kmacro-menu--id-kmacro, kmacro-menu--id-position)
	(kmacro-menu--kmacros)
	(kmacro-menu--refresh, kmacro-menu--map-ids)
	(kmacro-menu--replace-all)
	(kmacro-menu--replace-at, kmacro-menu--query-revert)
	(kmacro-menu--assert-row)
	(kmacro-menu--propertize-keys, kmacro-menu--do-region)
	(kmacro-menu--marks-exist-p): Add utility functions of mode and
	commands.
	* lisp/kmacro.el (kmacro-menu-mark, kmacro-menu-flag-for-deletion)
	(kmacro-menu-unmark, kmacro-menu-unmark-backward)
	(kmacro-menu-unmark-all): Add commands for marks and flags.
	* lisp/kmacro.el (kmacro-menu-do-flagged-delete)
	(kmacro-menu-do-copy)
	(kmacro-menu-do-delete): Add commands that modify the ring.
	* lisp/kmacro.el (kmacro-menu-edit-position)
	(kmacro-menu-transpose)
	(kmacro-menu-edit-format, kmacro-menu-edit-counter)
	(kmacro-menu-edit-keys, kmacro-menu-edit-column): Add commands
	that modify a keyboard macro.

2024-04-14  Alan Mackenzie  <acm@muc.de>

	CC Mode: Don't start fontifying in the middle of an identifier

	* lisp/progmodes/cc-mode.el (c-fl-decl-start): After searching
	backwards for the end of the previous statement, check whether or
	not we found it.  (bug#70367)

2024-04-14  Po Lu  <luangruo@yahoo.com>

	Remove leftover tasks from previous Emacs sessions on startup

	* java/org/gnu/emacs/EmacsService.java (onCreate): Call
	removeOldTasks.

	* java/org/gnu/emacs/EmacsWindowManager.java (removeOldTasks): New
	function.

	* java/proguard.conf: Optimize optimizer configuration.

2024-04-13  Arash Esbati  <arash@gnu.org>

	Recognize multicite macros from biblatex

	* lisp/textmodes/reftex-cite.el (reftex-all-used-citation-keys):
	Match the citation keys used with multicite macros provided by
	biblatex.  (bug#38249)

	* test/lisp/textmodes/reftex-tests.el
	(reftex-all-used-citation-keys): Adjust test accordingly.

2024-04-13  Justin Burkett  <justin@burkett.cc>

	* lisp/which-key.el (which-key--show-buffer-side-window): Add more
	debugging information.

	* lisp/which-key.el (which-key--create-pages): Add more debugging
	info to which-key--create-pages.

2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	peg-tests.el: Fix test failures

	* lisp/progmodes/peg.el (peg-parse): Refine heuristic since unknown
	terminals are resolved at run-time rather than compile-time now.
	(peg--macroexpand) <stack-action>: Avoid generating a `let' with
	an empty body.
	(peg--translate-rule-body): Adjust to name change of
	`macroexp-warn-and-return' and the fact that it's always
	available.

	* test/lisp/progmodes/peg-tests.el (peg-parse-string): Add
	`indent' declaration.
	(peg-test): Check that the compiler emits the warnings we expect.

2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	(define-globalized-minor-mode): Require the use of `run-mode-hooks'

	When `define-globalized-minor-mode' was introduced (Emacs-22),
	`run-mode-hooks' was brand new, so we could not expect all major
	modes to use it and we had to rely on brittle workarounds to try
	and approximate `after-change-major-mode-hook'.

	These workarounds have undesirable side effects, and (we hope)
	they're not needed any more now that virtually all major modes
	have been changed to use `run-mode-hooks' (or
	`define-derived-mode').

	* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
	Rely only on `after-change-major-mode-hook', remove the "cmhh"
	[typo for the intended "cmmh", BTW] workaround.

	* doc/lispref/modes.texi (Mode Hooks): Clarify the importance of
	`after-change-major-mode-hook' w.r.t
	`define-globalized-minor-mode'.
	(Defining Minor Modes): Rewrite the explanation of which buffers
	are affected, including adjusting it to the fact that
	`fundamental-mode' has run `run-mode-hooks' for the last 10 years.

2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	(define-globalized-minor-mode): Fix bug#58888

	* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode)
	<MODE-cmhh>: Try and detect well-behaved modes so they're not
	affected by those which require the cmhh hack.  (bug#58888)

2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'track-changes'

2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/emacs-lisp/track-changes.el: New file (bug#70077)

	This new package provides an API that is easier to use right than
	our `*-change-functions' hooks.

	The patch includes changes to `diff-mode.el' and `eglot.el' to
	make use of this new package.

	* lisp/emacs-lisp/track-changes.el: New file.
	* test/lisp/emacs-lisp/track-changes-tests.el: New file.
	* doc/lispref/text.texi (Tracking changes): New subsection.

	* lisp/progmodes/eglot.el: Require `track-changes'.
	(eglot--virtual-pos-to-lsp-position): New function.
	(eglot--track-changes): New var.
	(eglot--managed-mode): Use `track-changes-register' i.s.o
	`after/before-change-functions' when available.
	(eglot--track-changes-signal): New function, partly extracted from
	`eglot--after-change'.
	(eglot--after-change): Use it.
	(eglot--track-changes-fetch): New function.
	(eglot--signal-textDocument/didChange): Use it.

	* lisp/vc/diff-mode.el: Require `track-changes'.  Also require
	`easy-mmode' before the `eval-when-compile's.
	(diff-unhandled-changes): Delete variable.
	(diff-after-change-function): Delete function.
	(diff--track-changes-function): Rename from
	`diff-post-command-hook' and adjust to new calling convention.
	(diff--track-changes): New variable.
	(diff--track-changes-signal): New function.
	(diff-mode, diff-minor-mode): Use it with
	`track-changes-register'.

2024-04-13  Po Lu  <luangruo@yahoo.com>

	Fix crash upon call to Fset_fontset_font after X server disconnect

	* src/image.c (free_image):

	* src/xfaces.c (free_realized_face): Handle scenarios where
	free_frame_faces is called with the display connection cut.

	* src/xterm.c (x_free_frame_resources): Call free_frame_faces
	unconditionally, lest fontsets for this dead frame contaminate
	Vfontset_list and produce crashes afterwards.  (bug#66151)

2024-04-13  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	f0300fb0597 ; Tweak "(emacs)Bug Reference" formatting/wording.
	ea62a14ea3b Fix display of vscrolled windows
	4cefa3c0b1f ; * doc/emacs/files.texi (Backup): Clarify "saving" (bug#...
	db7b571aaaf ; Improve documentation of 'world-clock'
	6a0bb7beae3 * doc/emacs/misc.texi (emacsclient Options): Suggest forw...
	859b4227e3d Update go-ts-mode to support latest tree-sitter-go grammar
	407e85ce139 Fix c++-ts-mode defun navigation (bug#65885)
	aca5064f128 ; Fix last change.
	55aab2d4710 ; * etc/PROBLEMS: An entry about focus issues with XFCE (...
	19cee16576e ; * doc/emacs/misc.texi (emacsclient Options): Fix typo. ...
	2a41b6ba514 ; * src/filelock.c (Flock_file): Doc fix (bug#70216).

2024-04-13  Vladimir Kazanov  <vekazanov@gmail.com>

	Support tooltips for fringe indicators

	* src/xdisp.c (note_fringe_highlight): New function.
	(note_mouse_highlight): Call it when the mouse is on the fringes.
	* src/frame.c (syms_of_frame) <left-fringe-help>
	<right-fringe-help>: DEFSYM them.

	* etc/NEWS:
	* doc/lispref/text.texi (Special Properties):
	* doc/lispref/display.texi (Other Display Specs): Document the new
	properties.
	* etc/TODO: Remove the todo item about this.

2024-04-13  Philip Kaludercic  <philipk@posteo.net>

	Allow 'help-quick' to use a non-global keymap

	* lisp/help.el (help-quick-sections): Mention 'help-quick-use-map'
	in docstring.
	(help-quick-use-map): Add new variable, defaulting to the
	global-map.
	(help-quick): Use new variable.

2024-04-13  john muhl  <jm@pub.pink>

	Mark Flymake regions more accurately in 'lua-ts-mode'

	* lisp/progmodes/lua-ts-mode.el (lua-ts-flymake-luacheck): Use the
	end position provided by Luacheck rather than relying on
	'thing-at-point' to guess where the end should be.  (Bug#70167)

2024-04-13  Eli Zaretskii  <eliz@gnu.org>

	Fix Icalendar export with ISO dates

	* lisp/calendar/icalendar.el (icalendar--datestring-to-isodate):
	Accept dashes in ISO-style numeric dates.  Patch by Erwan Hingant
	<erwan.hingant@mailo.com>.  (Bug#69894)

	* test/lisp/calendar/icalendar-tests.el
	(icalendar--datestring-to-isodate): Add a test for dashes in
	ISO-style numeric dates.

2024-04-13  Po Lu  <luangruo@yahoo.com>

	Fix task-switching failures on Android 2.3

	* java/org/gnu/emacs/EmacsWindowManager.java (registerWindow):
	Don't specify F_A_MULTIPLE_TASK on Android 4.4 and earlier.

2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* test/lisp/progmodes/elisp-mode-tests.el
	(elisp-tests-syntax-propertize): New test.  (bug#24542)

2024-04-12  Paul Eggert  <eggert@cs.ucla.edu>

	rcs2log now groks add-log-time-zone rule

	* lib-src/rcs2log (extractTZ): Adjust to renaming of
	change-log-time-zone-rule to add-log-time-zone rule, by allowing
	either spelling.

2024-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-syntax-table):
	Remove `p` from the flags of `@'.  (bug#24542)

2024-04-12  Juri Linkov  <juri@linkov.net>

	Improve 'Buffer-menu-group-by-mode'

	* lisp/buff-menu.el (Buffer-menu-group-by): Replace function-item
	with const better suitable for Customization UI.
	(Buffer-menu-group-by-mode): Use 'mouse-buffer-menu-mode-groups'
	to group buffers by mode.  (bug#70150)

2024-04-12  Juri Linkov  <juri@linkov.net>

	New user option 'tab-line-tabs-buffer-group-function'

	* lisp/tab-line.el (tab-line-tabs-buffer-group-function): Turn
	defvar into defcustom with the default value
	'tab-line-tabs-buffer-group-by-mode'.
	(tab-line-tabs-buffer-group-by-mode): New function with body from
	'tab-line-tabs-buffer-group-name'.
	(tab-line-tabs-buffer-group-by-project): New function.
	(tab-line-tabs-buffer-groups): Use fallback name "No group"
	instead of "All".

2024-04-12  Michael Albinus  <michael.albinus@gmx.de>

	Improve D-Bus byte-array conversion

	* doc/misc/dbus.texi (Type Conversion): Adapt
	dbus-byte-array-to-string.

	* etc/NEWS: D-Bus byte array conversion works over raw UTF-8
	bytes.  Fix typos.

	* lisp/net/dbus.el (dbus-string-to-byte-array)
	(dbus-byte-array-to-string): BYTE-ARRAY must be an UTF-8 raw bytes
	sequence.  Make optional argument MULTIBYTE obsolete.  (Bug#70301)
	(dbus-call-method-handler, dbus-register-signal)
	(dbus-escape-as-identifier): Use `length=' and `length>'.

	* test/lisp/net/dbus-tests.el (dbus--test-method-handler)
	(dbus-test09-get-managed-objects): Use `length='.
	(dbus-test01-type-conversion): Extend test.

	* test/lisp/net/secrets-tests.el (secrets-test03-items): Extend
	test.

2024-04-12  Joseph Turner  <joseph@breatheoutbreathe.in>

	Display Info buffer after ensuring it contains text

	* lisp/info.el (info-pop-to-buffer): Move display of Info buffer
	to a later stage after its text contents is ready to display.
	This helps to use fit-window-to-buffer in display-buffer-alist
	(bug#70213).

2024-04-11  Dmitry Gutov  <dmitry@gutov.dev>

	minibuffer-completion-help: Fix regression when END < EOB

	Which can happen with in-buffer completion (though this scenario
	is preffed off by default).

	* lisp/minibuffer.el (minibuffer-completion-help): Include the
	buffer contents after END into BASE-SUFFIX (bug#48356).

2024-04-11  Eli Zaretskii  <eliz@gnu.org>

	etags-regen--tags-generate: Handle spaces in project root name

	* lisp/progmodes/etags-regen.el (etags-regen--tags-generate):
	Quote the tags file name.  (bug#70329)

2024-04-11  Eli Zaretskii  <eliz@gnu.org>

	Fix file names with embedded whitespace in Ediff

	* lisp/vc/ediff-ptch.el (ediff-patch-file-internal): Quote file
	names that can include special characters.  (Bug#70329)

2024-04-11  Mattias Engdegård  <mattiase@acm.org>

	Don't hide flymake diagnostics on empty first line (bug#70310)

	A diagnostic first in the buffer, typically the lexical cookie
	warning, got lost if that line was empty.

	* lisp/progmodes/elisp-mode.el (elisp-flymake--byte-compile-done):
	Make sure the location interval doesn't go beyond the buffer
	bounds.

2024-04-11  Po Lu  <luangruo@yahoo.com>

	Guarantee presence of emacs-module.h during cross-compilation

	* cross/Makefile.in (src/emacs-module.h): New rule.
	(src/libemacs.so): Depend on the same.

2024-04-11  Po Lu  <luangruo@yahoo.com>

	Guarantee presence of epaths.h during cross-compilation

	* cross/Makefile.in (src/epaths.h): New rule.
	(src/libemacs.so): Depend on the same.

2024-04-11  Po Lu  <luangruo@yahoo.com>

	Optimize R8 configuration

	* java/org/gnu/emacs/EmacsWindowManager.java (WindowConsumer):
	Mark as package-local.

	* java/proguard.conf: List only symbols that must be preserved,
	enabling R8 to optimize the remainder.

2024-04-11  Po Lu  <luangruo@yahoo.com>

	Adjust priority of Emacs background service notification

	* java/org/gnu/emacs/EmacsService.java (onStartCommand): Reword
	lightly and set importance to IMPORTANCE_LOW.

2024-04-11  Dmitry Gutov  <dmitry@gutov.dev>

	Generalize the file-name specific workaround in
	minibuffer-completion-help.

	* lisp/minibuffer.el (completion-base-suffix): New function.
	(bug#48356)
	(minibuffer-completion-help): Use it here.
	(minibuffer-completion-help): Cut off the double completion
	boundary when it occurs inside
	completion-list-insert-choice-function.

2024-04-10  Arash Esbati  <arash@gnu.org>

	Suppress bogus messages in the echo area

	* lisp/textmodes/reftex-dcr.el (reftex-view-crossref-when-idle):
	Check if point inside a mandatory argument where the cite/ref key
	usually resides.  For example, with \cite[45]{emacs:30} and point
	on 4, the following bogus message in the echo area is suppressed:
	"cite: no such database entry: \cite[45]".  (bug#38258) Fix
	docstring.

2024-04-10  Juri Linkov  <juri@linkov.net>

	* doc/lispref/parsing.texi (Parsing Program Source): Fix menu.
	Add the new node "User-defined Things" to the menu.

2024-04-10  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp-cstr.el (comp-cstr-type-p): Improve last
	change.

	* lisp/emacs-lisp/comp-cstr.el (comp-cstr-type-p): New function.

	* lisp/emacs-lisp/comp-cstr.el (comp-cstr-symbol-p): Simplify.

	* lisp/emacs-lisp/comp-cstr.el (comp-cstr-fixnum-p): Fix.

2024-04-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	(en/decode_coding_object): Fix `after-change-functions'

	For `en/decode-coding-string/region', `after-change-functions'
	were either not run at all, or run only after deleting the text
	but not after inserting it.

	* src/coding.c (decode_coding_object, encode_coding_object): Run
	the after-change-functions after inserting the result.

	* test/src/editfns-tests.el
	(sanity-check-change-functions-with-op): New macro.
	(sanity-check-change-functions-errors): New function.
	(editfns-tests--before/after-change-functions): Use them to add
	cases for `en/decode-coding-string/region'.

2024-04-10  Po Lu  <luangruo@yahoo.com>

	* java/Makefile.in (classes.dex): Make proguard.conf relative to
	srcdir.

	* java/proguard.conf: New file.

2024-04-10  Po Lu  <luangruo@yahoo.com>

	Optimize generated Android DEX bytecode

	* configure.ac (D8): Attempt to locate the bundle where d8 is
	installed, detect whether an installation of `r8' is similarly
	present, and use this installation in place of d8 if so.

	* java/Makefile.in (ANDROID_MIN_SDK, IS_D8_R8): New substitutions.
	(classes.dex): Provide --min-api, --debug or --release and
	--pg-conf to d8 or r8.

2024-04-10  Eli Zaretskii  <eliz@gnu.org>

	Fix 'format-seconds' when all values are zero and %z is used

	* lisp/calendar/time-date.el (format-seconds): Fix all-zero time.

	* test/lisp/calendar/time-date-tests.el (test-format-seconds): Add
	two new tests.  (Bug#70322)

2024-04-10  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/cl-macs.el (cl-typep): Add docstring.

2024-04-10  Jeremy Bryant  <jb@jeremybryant.net>

	Add explicit binding to nil in let

	* lisp/which-key.el (which-key--match-replacement)
	(which-key--propertize-key): Add explicit binding of
	case-fold-search to nil.

2024-04-10  Po Lu  <luangruo@yahoo.com>

	Recognize Android TLS certificates by default

	* lisp/net/gnutls.el (gnutls-trustfiles): Append directories
	holding system and user-provided certificates on Android.

2024-04-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl--describe-class-slots): Avoid cryptic `t' type

	* lisp/emacs-lisp/cl-extra.el (cl--describe-class-slots): Use the
	empty string for the trivial `t' type.

	* lisp/emacs-lisp/cl-preloaded.el (cl-structure-class): Fix
	non-existing `bool' => `boolean'.

2024-04-09  Dmitry Gutov  <dmitry@gutov.dev>

	Add Flymake backend to rust-ts-mode using Clippy

	* lisp/progmodes/rust-ts-mode.el (rust-ts-flymake-command): New
	option.  (bug#70260)
	(rust-ts--flymake-proc): New variable.
	(rust-ts-flymake--helper): New function.
	(rust-ts-flymake): New function.
	(rust-ts-mode): Add it to flymake-diagnostic-functions.

2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>

	Use null for clarity

	* lisp/which-key.el (which-key--show-evil-operator-keymap): Use
	null for clarity of zero length.

2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key--show-evil-operator-keymap): let
	not let*.

	* lisp/which-key.el (which-key--create-pages-1): Use cl-decf for
	clarity.

	* lisp/which-key.el (which-key--partition-list): Replace cl-subseq
	by take.

2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>

	Change cl-case to cl-ecase

	* lisp/which-key.el (which-key--popup-max-dimensions): Change
	cl-case to cl-ecase to signal error if needed.

2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key--popup-max-dimensions): Fix
	docstring typo.

2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>

	Replace wholenump by natnump for context readability

	* lisp/which-key.el (which-key--width-or-percentage-to-width)
	(which-key--height-or-percentage-to-height): Use natnump instead
	of wholenump.

2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>

	Simplify code to use null

	* lisp/which-key.el (which-key--create-buffer-and-show): Use null.

2024-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	(test-replace-match-modification-hooks): Delete test

	* test/src/search-tests.el
	(test-replace-match-modification-hooks): Delete, this is testing a
	functionality we can't really support.

2024-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'mouse-wheel-buttons'

2024-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	(mouse-wheel-buttons): Map old-style wheel buttons to actual wheel
	events.

	Change the handling of the old X11 convention that uses
	mouse-4/5/6/7 events to represent wheel events: instead of asking
	downstream packages to use the `mouse-wheel-*-event' variables to
	know which events represent wheel events, use new var
	`mouse-wheel-buttons' to directly convert those events into the
	standard `wheel-up/down/left/right' events used everywhere else.

	This will simplify the work of packages which can thus just bind
	their commands to `wheel-up/down/left/right'.

	* lisp/mouse.el (mouse-wheel-buttons): New custom variable.

	* src/keyboard.c (make_lispy_event): Adjust for "wheel-clicks" on
	the tab-bar.
	* src/xterm.c (x_construct_mouse_click): Add `xi2' argument and
	obey `mouse-wheel-buttons' variable.
	(handle_one_xevent): Adjust calls accordingly.
	(syms_of_xterm): Define the `mouse-wheel-buttons' and the
	`wheel-up/down/left/right'symbols.

	* lisp/xt-mouse.el: Don't require `mwheel' any more.
	(xterm-mouse--same-button-p): Delete function.
	(xterm-mouse--read-event-sequence): Use `mouse-wheel-buttons'.

	* lisp/mwheel.el (mouse-wheel-up-event, mouse-wheel-down-event)
	(mouse-wheel-left-event, mouse-wheel-right-event): Make obsolete.
	(mouse-wheel-obey-old-style-wheel-buttons): Delete variable.

	* lisp/completion-preview.el (completion-preview--mouse-map):
	* lisp/progmodes/flymake.el (flymake--mode-line-counter-map):
	* lisp/edmacro.el (edmacro-fix-menu-commands): Silence warnings.

2024-04-09  Arash Esbati  <arash@gnu.org>

	Move over optional arguments in parentheses correctly

	* lisp/textmodes/reftex-parse.el (reftex-move-to-previous-arg):
	Recognize ')' as closing delimiter for optional argument.  Fix
	docstring.
	(reftex-what-macro): Identify LaTeX macros with optional arguments
	in parentheses correctly.  This is necessary to make
	`reftex-view-crossref' work with biblatex on entries like:
	\parencites(Glob.Pre)(Glob.Post)[Pre][Post]{key1}[Pre][Post]{key2}
	(bug#31132)

2024-04-09  Mattias Engdegård  <mattiase@acm.org>

	Inhibit flymake lexical cookie warning in *scratch* (bug#70068)

	Add a hack to prevent flymake from complaining about a missing
	lexical cookie when enabled in *scratch*.

	* lisp/emacs-lisp/bytecomp.el
	(bytecomp--inhibit-lexical-cookie-warning): New variable.
	(byte-compile-file): Use it to gate the warning.
	* lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile): Set
	the inhibitor when spawning a check in lisp-interaction-mode.

2024-04-09  Po Lu  <luangruo@yahoo.com>

	Fix misalignment of entries created by Dired file operations

	* lisp/dired.el (dired-insert-directory): Insert leading space if
	absent before calling dired-align-file.

2024-04-09  Juri Linkov  <juri@linkov.net>

	Fix window-point-context-set and window-point-context-use

	* lisp/window.el (window-point-context-set)
	(window-point-context-use): Add 'window-buffer' for 'buffer-name'.
	(bug#33871)

2024-04-09  Lin Sun  <sunlin7@hotmail.com>

	Support more long time options in 'ls-lisp'

	* lisp/ls-lisp.el (ls-lisp--sanitize-switches): Support '--time'
	and '--sort=time'.  (Bug#70271)

	* test/lisp/ls-lisp-tests.el (ls-lisp-test-bug70271): New test
	case.

2024-04-09  Po Lu  <luangruo@yahoo.com>

	Improve treatment of aborted touch events in Speedbar and
	elsewhere.

	* lisp/dframe.el (dframe-popup-kludge): Mark as a
	mouse-1-menu-command.

	* lisp/touch-screen.el (touch-screen-handle-point-up): New
	argument CANCELED.  Implement specific responses to cancellation
	for each tool state.
	(touch-screen-handle-touch): Adjust to match.

2024-04-09  Po Lu  <luangruo@yahoo.com>

	Disable tab-bar by default in Speedbar frames

	* lisp/speedbar.el (speedbar-frame-parameters): Set tab-bar-lines
	to 0.

2024-04-09  Daniel Mendler  <mail@daniel-mendler.de>

	(completion-hilit-commonality): Support `completion-lazy-hilit'

	* lisp/minibuffer.el (completion-hilit-commonality): Support lazy
	completion candidate highlighting via `completion-lazy-hilit'.

2024-04-08  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of Text Mode

	* doc/emacs/text.texi (Text Mode): Improve indexing.  Document
	'text-mode-ispell-word-completion'.

2024-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl--describe-class): Improve based on discussion in bug#70077

	* lisp/emacs-lisp/cl-extra.el (cl--describe-class): Move docstring
	after the class' slots.
	(cl--describe-class-slots): Buttonize the types.  (bug#70077)

2024-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	(define-globalized-minor-mode): Fix bug#69431

	* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
	When `after-change-major-mode-hook` runs, enable the mode only in
	the current buffer and not in other pending buffers.

2024-04-08  Stephen Berman  <stephen.berman@gmx.net>

	Update INSTALL for native compilation of Lisp files

	* INSTALL: Add section "Native compilation of Lisp files" under
	ADDITIONAL DISTRIBUTION FILES and correspondingly augment item 6
	of DETAILED BUILDING AND INSTALLATION.  In the latter also note
	differences between in-source-tree and out-of-tree builds for
	running 'src/emacs' uninstalled.

2024-04-08  Andrea Corallo  <acorallo@gnu.org>

	Make comp ignore EIEIO classes

	* lisp/emacs-lisp/comp-cstr.el (comp--all-classes): Ignore EIEIO
	classes.  (bug#70141)

2024-04-08  Andrea Corallo  <acorallo@gnu.org>

	Fix out of date comp pass names in comp-tests.el

	* test/src/comp-tests.el (comp-tests-tco, comp-tests-fw-prop-1)
	(comp-tests-pure): Update out of date pass names.

2024-04-08  Yuan Fu  <casouri@gmail.com>

	Document tree-sitter things feature (bug#70016) (bug#68824)

	* doc/lispref/parsing.texi (Retrieving Nodes): Mention new kinds
	of predicate argument that the tree-traversing functions
	accept (namely, thing symbols and thing definitions).
	(User-defined Things): New node dedicated to thing definition and
	navigation functions.

2024-04-08  Yuan Fu  <casouri@gmail.com>

	Make tree-sitter thing feature public and remove obsolete
	functions.

	* lisp/treesit.el (treesit--things-around): Remove function.
	(treesit-forward-sexp, treesit-beginning-of-thing)
	(treesit-end-of-thing, treesit-navigate-thing)
	(treesit-thing-at-point, treesit-outline-search): Use public
	version of thing-functions.
	(treesit--thing-prev, treesit--thing-next)
	(treesit--thing-at, treesit--navigate-thing): Make public.

	* test/src/treesit-tests.el (treesit--ert-test-defun-navigation):
	Use public version of thing-functions.

2024-04-07  F. Jason Park  <jp@neverwas.me>

	Fix invisible erc-speedbar cursor in text terminals

	* lisp/erc/erc-speedbar.el
	(erc-speedbar--reset-last-ran-on-timer): Use `with-current-buffer'
	instead of `setf' and `buffer-local-value'.
	(erc-nickbar-mode, erc-nickbar-enable, erc-nickbar-disable)
	(erc-speedbar-toggle-nicknames-window-lock): Revise doc string.
	(erc-speedbar-toggle-nicknames-window-lock): Set `cursor-type' in
	speedbar buffer.
	(erc-nickbar-toggle-nicknames-window-lock): New function alias.
	Note that this name flouts traditional library namespacing
	conventions.
	* lisp/erc/erc-status-sidebar.el (erc-status-sidebar-get-window):
	Use `cursor-type' instead of `internal-show-cursor'.  (Bug#63595)

2024-04-07  F. Jason Park  <jp@neverwas.me>

	Allow updating of /IGNORE timeouts in ERC

	* lisp/erc/erc.el (erc--read-time-period)
	(erc--decode-time-period): Move body of former, now a superficial
	wrapper, to latter, a new function.
	(erc--format-time-period): New function.
	(erc--get-ignore-timer-args): New function.
	(erc--find-ignore-timer): New function to search through `timer-list'
	to find matching ignore timer.
	(erc-cmd-IGNORE): Refactor and redo doc string.  Add new optional
	`timespec' parameter, primarily to aid in testing.  Update an
	existing timer instead of always creating one, and display time
	remaining in "ignore list" output.  Pass server buffer instead of
	current buffer to timer callbacks because `erc--unignore-user'
	displays its messages in the `active' buffer, not necessarily the
	issuing one.  Note that doing this does discard potentially useful
	information, so if ever reverting, we can change the `cl-find'
	:test in `erc--find-ignore-timer' to something that compares the
	`erc-server-process' of both buffers.
	;;
	;; Something like:
	;;
	;; (defun erc--ignore-timers-equal-p (a b)
	;;   (and (equal (car a) (car b))
	;;        (eq (buffer-local-value 'erc-server-process (cadr a))
	;;            (buffer-local-value 'erc-server-process (cadr b)))))
	;;
	(erc-cmd-UNIGNORE): Pass `erc-ignore-list' member matching `user'
	parameter to `erc--unignore-user' instead of original, raw
	parameter, along with the server buffer.
	(erc--unignore-user): Cancel existing timer and don't bother
	switching to server buffer since we're already there.
	(erc-message-english-ignore-list): New variable.
	* test/lisp/erc/erc-scenarios-ignore.el: New file.
	* test/lisp/erc/erc-tests.el (erc--read-time-period): New test.
	(erc-cmd-UNIGNORE): New test.  (Bug#70127)

2024-04-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	(Freplace_match): Fix bug#65451

	* src/search.c (Freplace_match): For ordering of
	*-change-functions.

	* test/src/editfns-tests.el
	(editfns-tests--before/after-change-functions): New test.
	(sanity-check--message, sanity-check-change-functions-error)
	(sanity-check-change-functions-check-size)
	(sanity-check-change-functions-before)
	(sanity-check-change-functions-after): New functions.
	(sanity-check--verbose, sanity-check-change-functions-beg)
	(sanity-check-change-functions-end)
	(sanity-check-change-functions-buffer-size)
	(sanity-check-change-functions-errors): New vars.

2024-04-07  Eli Zaretskii  <eliz@gnu.org>

	Fix truncation of long lines in compilation buffers

	* lisp/progmodes/compile.el
	(compilation--insert-abbreviated-line): Handle long lines that end
	in a newline.  (Bug#70236)

2024-04-07  Arash Esbati  <arash@gnu.org>

	Fix tex-tabbing-separator alignment rule

	* lisp/align.el (align-rules-list): Remove the check of
	`latex-mode' with `eq' which doesn't work with newer AUCTeX mode
	names and modes defined by user with `define-derived-mode'.
	(bug#69187)

2024-04-07  Po Lu  <luangruo@yahoo.com>

	Resolve disagreements in accounting of tooltip positions on
	Android.

	* java/org/gnu/emacs/EmacsService.java (getLocationInWindow): New
	function.

	* java/org/gnu/emacs/EmacsWindow.java (translateCoordinates):
	Derive "root window" position from the origin point of the
	containing activity's window rather than that of the screen, the
	two of which differ when "freeform mode" is enabled.

2024-04-07  Lin Sun  <sunlin7@hotmail.com>

	* lisp/master.el (master-says): Check nil argument.  (bug#70230)

2024-04-07  Po Lu  <luangruo@yahoo.com>

	Port new Android window management strategy to Android 5.0

	* doc/emacs/android.texi (Android Windowing): Revise to match.

	* java/org/gnu/emacs/EmacsWindowManager.java (registerWindow)
	(removeWindowConsumer, pruneWindows): Decrease minimum API for
	monitoring of tasks to Android 5.0.
	(getTaskToken): Ignore misleading documentation and access
	baseIntent by way of RecentTaskInfo.

2024-04-06  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	3d87d74a23d ; * etc/PROBLEMS: Entry about slow mouse-wheel with GTK3 ...
	c6899603b9c ; * doc/lispref/tips.texi (Documentation Tips): Improve (...
	bd2c4d825db ; Update admin/make-tarball.txt
	f107dc26e37 ; * etc/PROBLEMS: Add an entry about WebKitGTK (bug#66068).

2024-04-06  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	46b8746b38e Fix warning-suppress for list type "warning type"
	910ea5f1e55 Make object init more robust (bug#69571)

2024-04-06  Jared Finder  <jared@finder.org>

	Add documentation for 'switch-window' event

	* doc/lispref/commands.texi (Focus Events): Add documentation for
	the structure of 'switch-window' events.  Make sure to be clear
	when referring to window system windows vs Emacs windows.
	* doc/lispref/windows.texi (Mouse Window Auto-selection): Adding
	cross-reference to "Focus Events".  (Bug#69915)

2024-04-06  Olaf Rogalsky  <olaf.rogalsky@gmail.com>

	Support 'mouse-autoselect-window' in xterm-mouse

	Generate select-window events, so that 'mouse-autoselect-window'
	takes effect on TTY frames, when 'xterm-mouse-mode' is enabled.
	* lisp/xt-mouse.el (xterm-mouse-translate-1): If
	'mouse-autoselect-window' is non-nil, add select-window events to
	'unread-command-events'.  (Bug#69915)

2024-04-06  Po Lu  <luangruo@yahoo.com>

	Correct typos in and omissions from earlier Android port changes

	* java/AndroidManifest.xml.in: Remove duplicate permissions.

	* java/org/gnu/emacs/EmacsWindowManager.java
	(removeWindowConsumer): Disregard isFinishing for non-initial
	activities.

2024-04-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/help-fns.el (help-fns-function-description-header): Don't
	make a button for the type if it's not a type.  (bug#70209)

2024-04-05  Michael Albinus  <michael.albinus@gmx.de>

	Make sh-script-tests.el more robust

	* test/lisp/progmodes/sh-script-tests.el
	(test-sh-script-indentation)
	(test-basic-sh-indentation, test-indent-after-continuation):
	* test/lisp/progmodes/sh-script-resources/sh-indents.erts (Code):
	Skip if `sh-indent-supported-here' is nil.  (Bug#70196)

2024-04-05  Juri Linkov  <juri@linkov.net>

	Mark display-comint-buffer-action as obsolete after adding a
	category.

	* lisp/window.el (display-comint-buffer-action): Append '(category
	. comint)' to the default value.  Mark as obsolete.
	(display-tex-shell-buffer-action): Append '(category . tex-shell)'
	to the default value.  Mark as obsolete.  (bug#69983)

2024-04-05  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-mode-map): New keymap.  (bug#69578)
	(tab-bar-select-tab-modifiers): Call tab-bar--undefine-keys before
	set-default in :set of defcustom.
	(tab-bar--define-keys, tab-bar--undefine-keys): Change keybindings
	in tab-bar-mode-map instead of the global map.  Move checking of
	global-key-binding to tab-bar-mode--tab-key-bind.
	(tab-bar-mode--tab-key-bind): New internal function.

2024-04-05  Mattias Engdegård  <mattiase@acm.org>

	Only call set-text-conversion-style if it exists

	* lisp/auth-source.el (read-passwd): Guard call, as it was before
	the code was moved here.  `set-text-conversion-style` is not
	present in all configurations.

2024-04-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/help-fns.el (help-fns-function-description-header): Replace
	the whimsical "" default by something actually useful.
	(bug#70209)

2024-04-05  Po Lu  <luangruo@yahoo.com>

	Enable relinquishing access to Android content directories

	* doc/emacs/android.texi (Android Document Providers): Document
	new command.

	* java/org/gnu/emacs/EmacsService.java (relinquishUriRights): New
	function.

	* src/Makefile.in (SOME_MACHINE_OBJECTS): Add androidvfs.c.

	* src/android.c (android_init_emacs_service): Link to new
	function.

	* src/android.h (struct android_emacs_service)
	<relinquish_uri_rights>: New field.

	* src/androidfns.c:

	* src/androidvfs.c (android_saf_tree_name)
	(android_saf_tree_opendir): Minor adjustments to commentary.
	(Fandroid_relinquish_directory_access): New function.
	(syms_of_androidvfs): Define new subr.

2024-04-05  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2024-04-05  Po Lu  <luangruo@yahoo.com>

	Print records inside data-debug

	* lisp/cedet/data-debug.el
	(data-debug-insert-stuff-record-button): New function.
	(data-debug-thing-alist): Register new function.

2024-04-05  Po Lu  <luangruo@yahoo.com>

	Define missing type in semantic/db-find.el

	* lisp/cedet/semantic/db-find.el
	(semanticdb-find-result-with-nil): New deftype.

2024-04-05  Eli Zaretskii  <eliz@gnu.org>

	* lisp/hexl.el (hexl-mode): Fix doc string.  (bug#70163)

2024-04-05  Po Lu  <luangruo@yahoo.com>

	Fix Semantic tag discovery when loading of unloaded files is
	suppressed.

	* lisp/cedet/semantic/db-find.el
	(semanticdb-find-tags-by-name-method)
	(semanticdb-find-tags-by-name-regexp-method)
	(semanticdb-find-tags-for-completion-method)
	(semanticdb-find-tags-by-class-method)
	(semanticdb-find-tags-external-children-of-type-method)
	(semanticdb-find-tags-subclasses-of-type-method)
	(semanticdb-deep-find-tags-by-name-method)
	(semanticdb-deep-find-tags-by-name-regexp-method)
	(semanticdb-deep-find-tags-for-completion-method): Verify that
	tags is bound before accessing it; this slot is unbound in tables
	created for unloaded files when the `unloaded' throttle is
	disabled.

2024-04-05  Spencer Baugh  <sbaugh@janestreet.com>

	* lisp/progmodes/project.el (project-current): Fix the previous
	change.  (bug#69584)

2024-04-04  Michael Albinus  <michael.albinus@gmx.de>

	Adapt treesitter tests for EMBA

	* test/infra/Makefile.in (TREE-SITTER-FILES): Add js-tests.el and
	python-tests.el, which don't follow test file name convention.

	* test/infra/test-jobs.yml: Regenerate.

2024-04-04  Michael Albinus  <michael.albinus@gmx.de>

	Move read-passwd* to auth-source.el, avoiding compilation warnings

	* lisp/simple.el (read-passwd*):
	* lisp/subr.el (read-passwd*): Move definitions ...

	* lisp/auth-source.el: ... here.
	(icons): Require.

2024-04-04  Mattias Engdegård  <mattiase@acm.org>

	* src/json.c (make_symset_table): Fix over-large allocation size.
	We multiplied when we should have added.  Oops.

2024-04-04  Juri Linkov  <juri@linkov.net>

	Disobey display actions while using switch-to-buffer on the
	tab-line

	* lisp/tab-line.el (tab-line-select-tab-buffer)
	(tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab):
	Let-bind switch-to-buffer-obey-display-actions to nil around the
	call to switch-to-buffer to restrain buffer switching in bounds of
	the same window only.  (bug#69993)

2024-04-04  Po Lu  <luangruo@yahoo.com>

	Remove redundant byte-swapping boundary

	* src/sfnt.c (sfnt_read_OS_2_table):

	* src/sfnt.h (struct sfnt_OS_2_table): Don't redundantly realign
	after s_family_class.

2024-04-04  Po Lu  <luangruo@yahoo.com>

	Avoid destroying windows after they are unmapped

	* java/org/gnu/emacs/EmacsActivity.java (destroy): Detach from
	current window before calling finish.

	* java/org/gnu/emacs/EmacsWindow.java (reparentTo): Don't clear
	attachment state here...

	* java/org/gnu/emacs/EmacsWindowManager.java (detachWindow):
	...but do so here instead.

2024-04-04  Tor-björn Claesson  <tclaesson@gmail.com>  (tiny change)
	    Po Lu  <luangruo@yahoo.com>

	New variable haiku-pass-control-tab-to-system

	Allow passing C-TAB on to the Haiku operating system, fixing
	window switching when an Emacs frame has focus.
	* src/haiku_support.cc (DispatchMessage): Conditionally pass
	message to BWindow.
	* src/haiku_support.h:
	* src/haikufns.c (haiku_should_pass_control_tab_to_system): Add
	variable haiku-pass-control-tab-to-system, and C function
	haiku_should_pass_control_tab_to_system.  (Bug#70138)

2024-04-03  Juri Linkov  <juri@linkov.net>

	Simplify tab-line-switch-to-prev-tab and
	tab-line-switch-to-next-tab.

	* lisp/tab-line.el (tab-line-switch-to-prev-tab)
	(tab-line-switch-to-next-tab): Use buffers instead of tabs.

2024-04-03  Theodor Thornhill  <theo@thornhill.no>

	Don't use file-truepath in Eglot (bug#70036)

	`file-truepath' is slow because of recursive calls and being
	implemented in lisp.  It seems to not be needed in eglot, but it
	is used behind the scenes in `find-buffer-visiting', thus
	appearing in profiles.  Moving the implementation to a hash map
	will yield similar performance benefits, but wouldn't require us
	to rewrite `file-truename' in C.

	* lisp/progmodes/eglot.el (eglot-lsp-server): Convert
	'managed-buffers' to a hashmap.
	(eglot-uri-to-path): Don't use file-truepath, as it is too slow to
	be included in the hot path.
	(eglot--on-shutdown): Use buffers from buffer map.
	(eglot--managed-mode): Add buffer to map, rather than list. Also
	remove it from the map on deactivation.
	(eglot-handle-notification): Expose server and get buffer from the
	buffer map.

2024-04-03  Po Lu  <luangruo@yahoo.com>

	Prevent detachWindow from deleting frames

	* java/org/gnu/emacs/EmacsWindowManager.java (detachWindow):
	Remove WINDOW from the window list prior to pruning.

2024-04-03  Po Lu  <luangruo@yahoo.com>

	Revise android.texi to agree with last change

	* doc/emacs/android.texi (Android Windowing): Revise to agree with
	last change

2024-04-03  Po Lu  <luangruo@yahoo.com>

	Better align Emacs window management with Android task lifecycles

	* java/org/gnu/emacs/EmacsActivity.java (onCreate): Permit
	overriding by child classes.
	(onDestroy): Minor stylistic adjustments.
	(getAttachmentToken): New function.

	* java/org/gnu/emacs/EmacsMultitaskActivity.java (onCreate)
	(getAttachmentToken): New functions.

	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow)
	<attachmentToken, preserve, previouslyAttached>: New variables.
	(onActivityDetached): Remove redundant isFinishing argument.
	(reparentTo): Reset the foregoing fields before registering with
	the window manager.

	* java/org/gnu/emacs/EmacsWindowManager.java
	(EmacsWindowManager): Rename from EmacsWindowAttachmentManager.
	(WindowConsumer): New function getAttachmentToken.
	(isWindowEligible): New function.
	(registerWindowConsumer, registerWindow, removeWindowConsumer)
	(detachWindow): Implement a new window management strategy on API
	29 and subsequent releases where both varieties of toplevel window
	are permanently, except when reparented, bound to the activities
	to which they attach, and Emacs establishes at strategic junctures
	whether those activities remain present.
	(getTaskToken, pruneWindows): New functions.

2024-04-03  Mattias Engdegård  <mattiase@acm.org>

	Revert "Check if lexical-binding is enabled before warning"

	This reverts commit 7de192680fdac6938f5704aea0310b85b0da9c5e.
	The logic is wrong (bug#70068).

2024-04-03  Mattias Engdegård  <mattiase@acm.org>

	Make lexical-binding cookie warning test more robust

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--lexical-binding-cookie): Run with lexical-binding
	both on and off.

2024-04-03  Philip Kaludercic  <philipk@posteo.net>

	Check if lexical-binding is enabled before warning

	* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Suppress "file
	has no `lexical-binding' directive" is the variable is non-nil, as
	is the case with 'lisp-interaction-mode'.  (Bug#70068)

2024-04-02  Juri Linkov  <juri@linkov.net>

	New functions to set and use context of window points (bug#33871)

	* lisp/dired.el (dired-mode): Set buffer-local
	'window-point-context-set-function' to remember 'dired-filename'
	or 'position' in the window with the Dired buffer.  Set
	buffer-local 'window-point-context-use-function' to restore the
	remembered position of the window point.

	* lisp/tab-bar.el (tab-bar--tab): Use window-point-context-set.
	(tab-bar-select-restore-context): New user option.
	(tab-bar-select-tab): Use window-point-context-use.

	* lisp/window.el: Add '(context . writable)' to
	'window-persistent-parameters'.
	(window-point-context-set, window-point-context-use): New
	functions.
	(window-point-context-set-default-function)
	(window-point-context-use-default-function): New functions.
	(window-point-context-set-function)
	(window-point-context-use-function): New variables.

2024-04-02  Mattias Engdegård  <mattiase@acm.org>

	Fix json-insert unibyte buffer bug (bug#70007)

	Previously, a unibyte target buffer could be put in an incorrect
	state if json-insert was used to insert non-ASCII characters.

	* src/json.c (Fjson_insert): Simplify.  Don't attempt to decode
	the data being inserted: it is guaranteed to be correct UTF-8 and
	is correct for both unibyte and multibyte buffers.
	* test/src/json-tests.el (json-serialize/roundtrip)
	(json-serialize/roundtrip-scalars): Extend tests.

2024-04-02  Mattias Engdegård  <mattiase@acm.org>

	json-insert doc fixes

	* src/json.c (Fjson_insert): Precise the behavior when the current
	buffer is multibyte and unibyte, respectively.
	* doc/lispref/text.texi (Parsing JSON): Refer to the right
	function.

2024-04-02  Juri Linkov  <juri@linkov.net>

	New condition/action entry 'category' for 'display-buffer'

	* doc/lispref/windows.texi (Choosing Window): Provide an example
	of using '(category . comint)' in the condition of
	'display-buffer-alist' and in the action of 'display-buffer'.
	(Buffer Display Action Alists): Add a new action alist entry
	'category'.

	* lisp/subr.el (buffer-match-p): Add a new condition 'category'.
	(bug#69983)

	* lisp/window.el (display-buffer): Document a new action alist
	entry 'category'.

2024-04-01  Mattias Engdegård  <mattiase@acm.org>

	Update JSON codec doc strings

	* src/json.c (Fjson_serialize, Fjson_insert, Fjson_parse_string)
	(Fjson_parse_buffer): Make the text more readable, fix minor
	errors and avoid terminology confusion.

2024-04-01  Mattias Engdegård  <mattiase@acm.org>

	Update JSON parser test and docs

	* test/src/json-tests.el (json-parse-string/object): Duplicated
	object keys are now retained in alist and plist output.
	* etc/NEWS: Mention it.

2024-04-01  Stefan Monnier <monnier@iro.umontreal.ca>

	(scheme-syntax-propertize-sexp-comment): Allow `#;' in strings

	* lisp/progmodes/scheme.el
	(scheme-syntax-propertize-sexp-comment): Don't get confused by
	`#;' inside strings and (normal) comments.
	(scheme-sexp-comment-syntax-table): Comment-out, unused.

2024-04-01  Po Lu  <luangruo@yahoo.com>

	Correct custom type in tramp-androidsu.el

	* lisp/net/tramp-androidsu.el (tramp-androidsu-remote-path): Set
	type to '(repeat string).

2024-04-01  Zajcev Evgeny  <zevlg@yandex.ru>

	Add support for `ch' and `cw' dimension specifiers for images

	* src/image.c (image_get_dimension, lookup_image): Handle `ch' and
	`cw' dimension specifiers in addition to `em'.
	* src/dispextern.h: Add new members `face_font_height' and
	`face_font_width' to `struct image'.

	* doc/lispref/display.texi (Image Descriptors): Document `ch' and
	`cw'.

2024-04-01  Mattias Engdegård  <mattiase@acm.org>

	* etc/NEWS: Mention a JSON codec improvement.

2024-04-01  Vladimir Kazanov  <vekazanov@gmail.com>

	Fix symbol list matching regexps.

	Fix symbol list matching regexp performance

	Allow empty face lists, improve the face list matching regexp (see
	discussion in Bug#69714) based on relint's comments, add tests:
	* test/lisp/emacs-lisp/ert-font-lock-tests.el: Add tests.
	* lisp/emacs-lisp/ert-font-lock.el: Fix regexps.

2024-04-01  Mattias Engdegård  <mattiase@acm.org>

	Don't signal `json-end-of-file' for short nonempty bad JSON inputs

	* src/json.c (json_parse_value): Generate a plain parse error.
	* test/src/json-tests.el (json-parse-string/short): Adapt test.

2024-04-01  Mattias Engdegård  <mattiase@acm.org>

	Faster JSON parsing

	Speed up JSON parsing substantially by only UTF-8-parsing string
	literals and only exactly once.  Previously, json-parse-string
	always first parsed the entire input and copied it to a new
	string, and then validated each string literal twice.

	We no longer create an extra new string when interning an alist
	key, nor do we garble plist keys with Unicode characters.

	* src/lread.c (intern_c_multibyte): New.
	* src/json.c (json_encode): Remove.
	(utf8_error): New.
	(json_parse_string): Faster and more careful UTF-8 decoding.
	Create and return a new multibyte string or symbol without extra
	decoding.  All callers adapted.
	(Fjson_parse_string): Skip expensive input pre-decoding.
	* test/src/json-tests.el (json-parse-string/object-unicode-keys)
	(json-parse-string/short): New.
	(json-parse-string/string, json-parse-string/invalid-unicode):
	Adapt tests.
	* etc/NEWS: Mentioned change in errors.

2024-04-01  Mattias Engdegård  <mattiase@acm.org>

	Native JSON support is always available

	* lisp/progmodes/sh-script.el (sh--json-read): Remove.
	(sh-shellcheck-flymake): Call json-parse-buffer directly.
	* test/src/json-tests.el: Don't check for function availability.

2024-04-01  Mattias Engdegård  <mattiase@acm.org>

	Fix mutates-arguments warning for `sort`

	* lisp/emacs-lisp/bytecomp.el (bytecomp--sort-call-in-place-p)
	(bytecomp--mutargs-nconc, bytecomp--mutargs-sort): New.
	(byte-compile-form, bytecomp--actually-important-return-value-p)
	(mutating-fns): Use a slightly more extendible scheme for
	specifying what arguments a function mutates.  Give `sort' special
	treatment.

2024-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	Handle nested sexp-comments in scheme.el.

	Well, I'm not completely sure this will work right in all cases,
	because I've been confused about this in the past.  It works in my
	test case, at least.

	* lisp/progmodes/scheme.el
	(scheme-syntax-propertize-sexp-comment): Look for nested `#;' and
	mark them appropriately.

2024-04-01  Po Lu  <luangruo@yahoo.com>

	Fix androidsu's `make-process' file name handler

	* lisp/net/tramp-androidsu.el
	(tramp-androidsu-handle-make-process): Disable exec loader around
	call to setuid su binary.

2024-04-01  niceume  <toshi@niceume.com>

	(scheme-syntax-propertize-sexp-comment): Remove unused argument

	* lisp/progmodes/scheme.el
	(scheme-syntax-propertize-sexp-comment): Remove first arg, unused.
	(scheme-syntax-propertize): Adjust calls accordingly.

2024-04-01  niceume  <toshi@niceume.com>

	scheme.el: Enable dealing with regular expression literal

	* lisp/progmodes/scheme.el (scheme-syntax-propertize-regexp): New
	function.
	(scheme-syntax-propertize): Use it.

2024-04-01  Po Lu  <luangruo@yahoo.com>

	Fix listing of Android root directory when it is accessible

	* src/androidvfs.c (android_root_closedir, android_root_dirfd)
	(android_root_opendir): Allocate an ersatz file descriptor even if
	directory is non-NULL, so that at-funcs may properly return file
	status for virtual files in the root directory.

2024-03-31  Michael Albinus  <michael.albinus@gmx.de>

	Fix wildcard signals in dbusbind.c

	* src/dbusbind.c (xd_read_message_1): Handle registered signals
	with wildcards.  (Bug#69926)

2024-03-31  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp version integrated in Emacs 29.3

	* lisp/net/trampver.el: Adapt Tramp version integrated in Emacs
	29.3.

2024-03-31  Po Lu  <luangruo@yahoo.com>

	List special directories when reading root directory on Android

	* src/androidvfs.c (root_vfs_ops): Substitute android_root_opendir
	for android_root_opendir.
	(struct android_root_vdir): New structure.
	(root_fd, root_fd_references): New variables.
	(android_root_readdir, android_root_closedir, android_root_dirfd)
	(android_root_opendir): New functions.
	(android_fstatat_1): Test provided fd against root_fd, and if they
	match, prefix FILENAME with the name of the root directory.

	* lisp/ls-lisp.el (ls-lisp-insert-directory): If d-f-a-a signals
	an error while retrieving attributes, compile the alist of
	directory contents by hand.

2024-03-31  Eshel Yaron  <me@eshelyaron.com>

	Add global minor mode 'global-completion-preview-mode'

	This is a global variant of 'completion-preview-mode'.

	* lisp/completion-preview.el (global-completion-preview-mode): New
	global minor mode.

	* doc/emacs/programs.texi (Symbol Completion): Document it.

	* etc/NEWS: Announce it.  (Bug#70010)

2024-03-31  Eli Zaretskii  <eliz@gnu.org>

	Fix the new PEG library

	* doc/lispref/peg.texi (Parsing Expression Grammars)
	(PEX Definitions, Parsing Actions, Writing PEG Rules): Fix markup,
	indexing, and wording.

	* etc/NEWS: Fix wording of PEG entry.

	* test/lisp/progmodes/peg-tests.el: Move from test/lisp/, to match
	the directory of peg.el.

2024-03-30  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Add peg.el as a built-in library

	* lisp/progmodes/peg.el: New file, taken from ELPA package.
	* test/lisp/peg-tests.el: Package tests.
	* doc/lispref/peg.texi: Documentation.

2024-03-30  James Thomas  <james.thomas@ahimsa.global>

	* lisp/gnus/gnus-cache.el (gnus-cache-file-name)
	(gnus-cache-update-article):
	* lisp/gnus/nnmail.el (nnmail-group-pathname): Make gnus cache
	work with group names having '/'.  Make `gnus-cache-file-name' use
	the existing `nnmail-group-pathname'.

2024-03-30  Theodor Thornhill  <theo@thornhill.no>

	Disable workDoneProgress if defcustom is nil

	There is no need to receive the $/progress notifications from the
	server if we don't want to render them.  Because they are
	effectively ignored when eglot-report-progress is nil we'd rather
	not waste cycles on serde of the messages.

	* lisp/progmodes/eglot.el (eglot-client-capabilities): Use value
	from defcustom to decide whether or not to advertise to server.

2024-03-30  Theodor Thornhill  <theo@thornhill.no>

	Fix typo in docstring

	* lisp/progmodes/eglot.el (eglot-lsp-server): eglot-current-server
	is now exposed.

2024-03-30  Eli Zaretskii  <eliz@gnu.org>

	Fix the native JSON support code

	* src/Makefile.in (base_obj): Add the missing json.o.  Without
	this, we get link error.
	* src/json.c (json_serialize): Don't use too sophisticated C99
	features, as they confuse make-docfile.  Initialize all the
	members explicitly.

2024-03-30  Mattias Engdegård  <mattiase@acm.org>

	Always enable native JSON support and remove Jansson references

	* src/json.c (Fjson__available_p): Remove.
	* lisp/subr.el (json-available-p): Always return t.
	* admin/nt/dist-build/build-dep-zips.py:
	* configure.ac:
	* doc/lispref/text.texi (Parsing JSON):
	* java/INSTALL:
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative):
	* lisp/term/w32-win.el (dynamic-library-alist):
	* m4/ndk-build.m4 (ndk_INIT):
	* msdos/sed1v2.inp:
	* nt/INSTALL:
	* nt/INSTALL.W64:
	* src/Makefile.in:
	* src/emacs.c (main):
	* src/lisp.h: Remove JSON configuration options and references to
	it and Jansson from documentation and build files.
	* etc/NEWS: Announce.

2024-03-30  Mattias Engdegård  <mattiase@acm.org>

	New JSON encoder (bug#70007)

	It is in general at least 2x faster than the old encoder and does
	not depend on any external library.  Using our own code also gives
	us control over translation details: for example, we now have full
	bignum support and tighter float formatting.

	* src/json.c (json_delete, json_initialized, init_json_functions)
	(json_malloc, json_free, init_json, json_out_of_memory)
	(json_releae_object, check_string_without_embedded_nulls)
	(json_check)
	(json_check_utf8, lisp_to_json_nonscalar_1)
	(lisp_to_json_nonscalar)
	(lisp_to_json, json_available_p, ensure_json_available)
	(json_insert)
	(json_handle_nonlocal_exit, json_insert_callback): Remove.
	Remaining uses updated.
	(json_out_t, symset_t, struct symset_tbl)
	(symset_size, make_symset_table, push_symset, pop_symset)
	(cleanup_symset_tables, symset_hash, symset_expand, symset_add)
	(json_out_grow_buf, cleanup_json_out, json_make_room)
	(JSON_OUT_STR)
	(json_out_str, json_out_byte, json_out_fixnum, string_not_unicode)
	(json_plain_char, json_out_string, json_out_nest, json_out_unnest)
	(json_out_object_cons, json_out_object_hash, json_out_array)
	(json_out_float, json_out_bignum, json_out_something)
	(json_out_to_string, json_serialize): New.
	(Fjson_serialize, Fjson_insert): New JSON encoder implementation.
	* test/src/json-tests.el
	(json-serialize/object-with-duplicate-keys)
	(json-serialize/string): Update tests.

2024-03-30  David Ponce  <da_vid@orange.fr>

	bug#69992: Minor improvement to image map transformation logic

	* lisp/image.el (image--compute-rotation): New function.
	(image--compute-map, image--compute-original-map): Use it.  Ensure
	all transformations are applied or undone according to what Emacs
	does internally.  Call a transformation function only when needed.
	Fix doc string.
	(image--scale-map, image--rotate-map): Assume effective scale
	argument.
	(image--rotate-coord): Improve doc string.
	(image--flip-map): Remove no more used argument FLIP.

	* test/lisp/image-tests.el (image-create-image-with-map): Use a
	valid SVG image otherwise `image-size' will not return a valid
	value and calculation of scale could fail.
	(image-transform-map): Update according to changed signature of
	`image--flip-map'.

2024-03-30  Tony Zorman  <soliditsallgood@mailbox.org>

	Add use-package-vc-prefer-newest user option

	* lisp/use-package/use-package-core.el
	(use-package-vc-prefer-newest): User option to prefer the latest
	commit (as opposed to the latest release) of a package.
	(use-package-normalize--vc-arg): Check for
	use-package-vc-prefer-newest.

	* doc/misc/use-package.texi (Install package): Document
	use-package-vc-prefer-newest.

	* etc/NEWS: Document use-package-vc-prefer-newest.

2024-03-30  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	946d4aad1df Avoid errors in Info-search-case-sensitively in DIR buffers
	fbf68302999 Add test for previous change (bug#70023)
	bcf6dd6e266 Add typescript-ts-mode indentation for interface bodies (...

2024-03-30  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	38faacf353f Improve documentation of <Delete> in user manual
	9d3d77f12da Fix documentation of 'other-window-for-scrolling'

2024-03-30  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	ae8f815613c Update files for Emacs 29.3

2024-03-30  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	7a5d7be52c5 org--confirm-resource-safe: Fix prompt when prompting in ...
	2bc865ace05 org-file-contents: Consider all remote files unsafe
	6f9ea396f49 org-latex-preview: Add protection when `untrusted-content...
	937b9042ad7 * lisp/gnus/mm-view.el (mm-display-inline-fontify): Mark ...
	ccc188fcf98 * lisp/files.el (untrusted-content): New variable.
	befa9fcaae2 org-macro--set-templates: Prevent code evaluation
	3221d8d4611 * admin/authors.el (authors-aliases): Add ignored authors.
	8d8253f8991 * etc/NEWS: Update for Emacs 29.3

2024-03-30  Andreas Schwab  <schwab@linux-m68k.org>

	Fix implicit declaration of bswap_{32,64}

	* src/data.c: Move include of <byteswap.h> ...
	* src/lisp.h: ... here.

2024-03-30  Eli Zaretskii  <eliz@gnu.org>

	Clean up removal of libjansson parser

	* src/json.c (json_has_suffix, json_has_prefix): Remove unused
	functions.
	(json_object_key_to_iter, json_array_get, json_loads)
	(json_load_callback, json_object_iter, json_object_iter_value)
	(json_string_value, json_object_size, json_object_iter_key)
	(json_object_iter_next, json_real_value, json_string_length)
	(json_integer_value) [WINDOWSNT]: Don't DEF_DLL_FN, don't
	LOAD_DLL_FN, and don't define a macro for unused libjansson
	functions.
	(JSON_HAS_ERROR_CODE): Remove: not used.

2024-03-30  Géza Herman  <geza.herman@gmail.com>

	Replace libjansson JSON parser with a custom one

	* src/json.c (json_parse_error, json_to_lisp)
	(json_read_buffer_callback): Remove functions.
	(struct json_parser): New struct.
	(json_signal_error, json_parser_init, json_parser_done)
	(json_make_object_workspace_for_slow_path)
	(json_make_object_workspace_for, json_byte_workspace_reset)
	(json_byte_workspace_put_slow_path, json_byte_workspace_put)
	(json_input_at_eof, json_input_switch_to_secondary)
	(json_input_get_slow_path, json_input_get)
	(json_input_get_if_possible, json_input_put_back)
	(json_skip_whitespace_internal, json_skip_whitespace)
	(json_skip_whitespace_if_possible, json_hex_value)
	(json_parse_unicode, json_handle_utf8_tail_bytes)
	(json_parse_string, json_create_integer, json_create_float)
	(json_parse_number, json_parse_array)
	(json_parse_object_member_value, json_parse_object)
	(json_is_token_char, json_parse_value, json_parse): New functions.
	(Fjson_parse_buffer, Fjson_parse_string): Adjust to changes in the
	parser.
	(syms_of_json): DEFSYM new symbols and define_error new errors.

2024-03-30  Po Lu  <luangruo@yahoo.com>

	Disable VC in special directories on Android

	* lisp/vc/vc-hooks.el (vc-registered, vc-backend): Return nil
	without invoking any backend if FILE or FILE-OR-LIST sits within
	/content or /assets.

2024-03-30  Po Lu  <luangruo@yahoo.com>

	Rationalize java/Makefile.in

	* java/Makefile.in (emacs.apk-in): Bring commentary up to date,
	and package classes.dex at this stage of the process.
	($(APK_NAME)): Adjust to match.

2024-03-30  Po Lu  <luangruo@yahoo.com>

	Fix building the SFNT font driver

	* src/sfntfont.c (sfntfont_list, sfntfont_list_family): Update
	calls to Fsort for the new calling convention.

2024-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/comp.el (comp--add-cond-cstrs): Consolidate 2
	cases.

	* lisp/cedet/semantic/tag.el (semantic-tag): New type

2024-03-29  Mattias Engdegård  <mattiase@acm.org>

	`value<' manual entry adjustments (bug#69709)

	* doc/lispref/sequences.texi (Sequence Functions): Explain
	lexicographical ordering.  Note the dual nature of `nil'.  Mention
	the depth limit.

2024-03-29  Mattias Engdegård  <mattiase@acm.org>

	* src/fns.c (Fvaluelt): More generous depth limit (20 -> 200).

	This gives `value<' the same limit as `equal' which seems about
	right.

2024-03-29  Sam Steingold  <sds@gnu.org>

	Support `shell-resync-dirs' on msys bash (Bug#70012)

	* lisp/shell.el (w32-application-type): Declare.
	(shell-mode): Set `shell-dirstack-query' to `pwd -W' when using
	msys bash.

2024-03-29  Mattias Engdegård  <mattiase@acm.org>

	Better `sort' ignored-return-value warning

	* lisp/emacs-lisp/bytecomp.el (byte-compile-form)
	(bytecomp--actually-important-return-value-p): Special handling of
	`sort' that takes into account that it may return an important
	value depending on the :in-place keyword argument.

2024-03-29  Mattias Engdegård  <mattiase@acm.org>

	Remove `sort-on' (bug#69709)

	* lisp/sort.el (sort-on):
	* doc/lispref/sequences.texi (Sequence Functions):
	* etc/NEWS: Remove the `sort-on' function which is now completely
	superseded by the extended `sort' in features, ease of use, and
	performance.

2024-03-29  Mattias Engdegård  <mattiase@acm.org>

	Use new-style `sort' signature in Lisp manual examples

	* doc/lispref/help.texi (Accessing Documentation):
	* doc/lispref/strings.texi (Text Comparison): Use the new sort
	calling convention.  (bug#69709)

2024-03-29  Mattias Engdegård  <mattiase@acm.org>

	Faster non-destructive list sorting

	Postpone the creation of a new list to after sorting which turns
	out to be a lot faster (1.1x - 1.5x speedup).

	* src/fns.c (sort_list, sort_vector, Fsort): Create the new list
	when moving the data out from the temporary array.

2024-03-29  Mattias Engdegård  <mattiase@acm.org>

	Speed up `sort' by special-casing the `value<' ordering

	This gives a 1.5x-2x speed-up when using the default :lessp value,
	by eliminating the Ffuncall overhead.

	* src/sort.c (order_pred_lisp, order_pred_valuelt): New.
	(merge_state, inorder, binarysort, count_run, gallop_left)
	(gallop_right)
	(merge_init, merge_lo, merge_hi, tim_sort):
	* src/fns.c (Fsort): When using value<, call it directly.

2024-03-29  Mattias Engdegård  <mattiase@acm.org>

	New `sort' keyword arguments (bug#69709)

	Add the :key, :lessp, :reverse and :in-place keyword arguments.
	The old calling style remains available and is unchanged.

	* src/fns.c (sort_list, sort_vector, Fsort):
	* src/sort.c (tim_sort): Add keyword arguments with associated new
	features.  All callers of Fsort adapted.
	* test/src/fns-tests.el (fns-tests--shuffle-vector)
	(fns-tests-sort-kw): New test.
	* doc/lispref/sequences.texi (Sequence Functions): Update manual.
	* etc/NEWS: Announce.

2024-03-29  Mattias Engdegård  <mattiase@acm.org>

	Add back timsort key function handling (bug#69709)

	The original timsort code did provide for a key (accessor)
	function along with the necessary storage management, but we
	dropped it because our `sort' function didn't need it.

	Now it's been put back since it seems that it will come in handy
	after all.

	* src/fns.c (sort_list, sort_vector, Fsort): Pass Qnil as key
	function to tim_sort.
	* src/sort.c (reverse_slice, sortslice_copy)
	(sortslice_copy_incr, sortslice_copy_decr, sortslice_memcpy)
	(sortslice_memmove, sortslice_advance): New functions.
	(sortslice): New type.
	(struct stretch, struct reloc, merge_state)
	(binarysort, merge_init, merge_markmem, cleanup_mem)
	(merge_register_cleanup, merge_getmem, merge_lo, merge_hi)
	(merge_at)
	(found_new_run, reverse_sortslice, resolve_fun, tim_sort): Merge
	back previously discarded parts from the upstreams timsort code
	that dealt with key functions, and adapt them to fit in.

2024-03-29  Mattias Engdegård  <mattiase@acm.org>

	Add `value<' (bug#69709)

	It's a general-purpose polymorphic ordering function, like `<' but
	for any two values of the same type.

	* src/data.c (syms_of_data): Add the `type-mismatch' error.
	(bits_word_to_host_endian): Move...
	* src/lisp.h (bits_word_to_host_endian): ...here, and declare
	inline.
	* src/fns.c (Fstring_lessp): Extract the bulk of this function
	to...
	(string_cmp): ...this 3-way comparison function, for use
	elsewhere.
	(bool_vector_cmp, value_cmp, Fvaluelt): New.
	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns):
	Add `value<', which is pure and side-effect-free.
	* test/src/fns-tests.el (fns-value<-ordered, fns-value<-unordered)
	(fns-value<-type-mismatch, fns-value<-symbol-with-pos)
	(fns-value<-circle, ert-deftest fns-value<-bool-vector): New
	tests.
	* doc/lispref/sequences.texi (Sequence Functions):
	* doc/lispref/numbers.texi (Comparison of Numbers):
	* doc/lispref/strings.texi (Text Comparison): Document the new
	value< function.
	* etc/NEWS: Announce.

2024-03-29  Po Lu  <luangruo@yahoo.com>

	Prevent Android OS task trimming from deleting Emacs frames

	* doc/emacs/android.texi (Android Windowing): Document proviso on
	Android 7.0 and later.

	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity)
	<timeOfLastInteraction>: New field.
	(onStop, onResume): Set and clear timeOfLastInteraction.
	(isReallyFinishing): New function.
	(onDestroy): Don't delete frame even in the event isFinishing
	returns true if more than 4 hours have elapsed since the
	activity last moved into the background.

2024-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	pp.el: Try and fix bug#70039

	* lisp/emacs-lisp/pp.el (pp-fill): Avoid splitting `#N#' or `#['.
	* test/lisp/emacs-lisp/pp-tests.el (pp-tests--sanity): New test.

2024-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el (list): Predefine predicate by hand

2024-03-28  Eli Zaretskii  <eliz@gnu.org>

	Fix a typo in flymake.el

	* lisp/progmodes/flymake.el (flymake--update-eol-overlays): Use
	'save-restriction', not 'save-excursion'.  (Bug#69984)

2024-03-28  Joseph Turner  <joseph@breatheoutbreathe.in>

	copy-tree just image map, not entire image

	* lisp/image.el (image--compute-original-map): Copy only the image
	map.  (Bug#69602)

2024-03-28  Rahguzar  <rahguzar@zohomail.eu>

	Allow for auto updating only visible proced buffers (bug#69784)

	* lisp/proced.el (proced-auto-update-flag): Document 'visible'
	value and add it to the custom type.
	(proced-auto-update-timer, proced-toggle-auto-update): Take
	'visible' value into account.

2024-03-28  Vladimir Kazanov  <vekazanov@gmail.com>

	Improve ert-font-lock assertion parser (Bug#69714)

	Fail on files with no assertions, parser now accepts multiple
	carets per line and face lists:
	* lisp/emacs-lisp/ert-font-lock.el: Assertion parser fix.
	* test/lisp/emacs-lisp/ert-font-lock-resources/no-asserts.js:
	* test/lisp/emacs-lisp/ert-font-lock-tests.el
	(test-parse-comments--no-assertion-error)
	(test-syntax-highlight-inline--caret-negated-wrong-face)
	(test-macro-test--file-no-asserts): New test cases.
	* doc/misc/ert.texi (Syntax Highlighting Tests): More syntax
	examples.

2024-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	(pcase-mutually-exclusive): Use auto-generated table

	The `pcase-mutually-exclusive-predicates' table was not very
	efficient since it grew like O(N²) with the number of predicates.
	Replace it with an O(N) table that's auto-generated from the
	`built-in-class' objects.

	* lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates):
	Delete variable.
	(pcase--subtype-bitsets): New function and constant.
	(pcase--mutually-exclusive-p): Use them.
	* lisp/emacs-lisp/cl-preloaded.el (built-in-class): Don't inline.

2024-03-28  Dmitry Gutov  <dmitry@gutov.dev>

	* lisp/progmodes/project.el (project-current): Add binding for
	'non-essential'.  (bug#69584)

2024-03-28  Spencer Baugh  <sbaugh@janestreet.com>

	Correctly check buffer mtime when displaying xref matches

	This was just a typo: we were checking the modification time of
	current-buffer instead of checking the modification time of the
	passed-in buffer.

	This caused matches to not be shown if they weren't present in the
	current in-Emacs state of the buffer.

	This was easily reproduced by writing a string to a file outside
	Emacs, then searching for that string with
	e.g. project-find-regexp.  The string would seemingly not be
	found, although in reality it was found, just not displayed.

	* lisp/progmodes/xref.el (xref--find-file-buffer): Check buf, not
	current-buffer.  (bug#70008)

2024-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/which-key.el (which-key-this-command-keys-function)
	(which-key-inhibit-display-hook)
	(which-key-enable-god-mode-support)
	(which-key--compute-binding)
	(which-key--get-keymap-bindings-1): Fix labeling of functions in
	which-key popup.  Add a few minor changes.

2024-03-27  Po Lu  <luangruo@yahoo.com>

	Remove IME_FLAG_FORCE_ASCII from password input IME flags

	* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
	Passwords might also be non-ASCII, and this flag apparently
	requests an IME limited to ASCII characters, rather than just
	capable of ASCII input.

2024-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/help.el (help-function-arglist): Don't
	`substitute-command-keys'.

2024-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-preloaded.el: Partly revert last change

	The change caused type-check errors in auth-source where they use
	`:type function' constraints on object slots and expect those to
	be able to hold symbols.

	* lisp/emacs-lisp/cl-preloaded.el (function): Revert last change.

	* test/src/data-tests.el (data-tests--cl-type-of): Use
	`cl-functionp' rather than `functionp' to test `function'.

2024-03-26  Alan Mackenzie  <acm@muc.de>

	CC Mode: Handle C++20's if consteval

	* lisp/progmodes/cc-engine.el (c-after-conditional): Handle the
	new keyword in place of a paren sexp after `if'.

	* lisp/progmodes/cc-langs.el (c-negation-op-re)
	(c-paren-clause-kwds, c-paren-clause-key)
	(c-block-stmt-with-kwds, c-block-stmt-with-key): New
	lang-consts/vars.

	* if-11.cc, if-11.res: New test files.

2024-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-preloaded.el: Fix the type lattice

	We generally want types to form not just a DAG but a lattice.  If
	objects can be both `keyword' and `symbol-with-pos', this means
	there should be a more precise type describing this intersection.
	If we ever find the need for such a refinement, we could add such
	a `keyword-with-pos' type, but here I took the simpler route of
	treating `keyword' not as a proper built-in type but as a
	second-class type like `natnum'.

	While fixing this problem, also fix the problem we had where
	`functionp' was not quite adequate to characterize objects of type
	`function', by introducing a new predicate `cl-functionp' for
	that.

	* lisp/emacs-lisp/cl-preloaded.el (cl-functionp): New function.
	(function): Use it.
	(keyword): Don't declare it as a built-in type.
	(user-ptrp): Remove redundant declaration.

	* lisp/emacs-lisp/cl-generic.el (cl--generic--unreachable-types):
	Delete constant.
	(cl-generic-generalizers): Remove corresponding test.

	* lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Add entry for
	`keyword' type.

	* lisp/emacs-lisp/comp.el (comp-known-predicates): Fix type for
	negative result of `characterp'.  Remove duplicate `numberp'
	entry.  Fix types for `keywordp' now that `keyword' is not a
	built-in type any more.

	* test/src/data-tests.el (data-tests--cl-type-of): Add a few
	cases.  Remove workaround for `function'.

2024-03-26  Andrea Corallo  <acorallo@gnu.org>

	Fix native comp prediction on null functionp tested objects

	* lisp/emacs-lisp/comp.el (comp-known-predicates)
	(comp-known-predicates-h): Update.
	(comp--pred-to-pos-cstr, comp--pred-to-neg-cstr): New functions.
	(comp--add-cond-cstrs): Make use of them.

	* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test.

2024-03-26  Po Lu  <luangruo@yahoo.com>

	Prevent focus "stalemates" on Android

	* java/org/gnu/emacs/EmacsActivity.java (invalidateFocus1): New
	argument resetWhenChildless.
	(invalidateFocus): If a toplevel window has no focus window,
	transfer focus to the toplevel itself.

2024-03-26  Po Lu  <luangruo@yahoo.com>

	Prevent passwords from being recorded during text conversion

	* doc/lispref/commands.texi (Misc Events): Document new value of
	text-conversion-style.

	* java/org/gnu/emacs/EmacsService.java (EmacsService)
	<IC_MODE_PASSWORD>: New constant.

	* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection): Set
	TYPE_TEXT_VARIATION_PASSWORD and IME_FLAG_FORCE_ASII if mode is
	IC_MODE_PASSWORD.

	* lisp/subr.el (read-passwd): Set text-conversion-style to
	`password'.

	* src/androidgui.h (enum android_ic_mode): New value
	ANDROID_IC_MODE_PASSWORD.

	* src/androidterm.c (android_reset_conversion): Handle `password'.

	* src/buffer.c (syms_of_buffer)
	<&BVAR (current_buffer, text_conversion_style)>: Update doc
	string.

	* src/textconv.c (syms_of_textconv) <Qpassword>: New DEFSYM.
	<Vtext_conversion_edits>: Fix typos in doc string.

2024-03-25  Eli Zaretskii  <eliz@gnu.org>

	Fix removal of bookmark's fringe mark in Info and Dired

	* lisp/bookmark.el (bookmark-buffer-file-name): Support Info
	buffers.
	(bookmark--remove-fringe-mark): Call 'bookmark-buffer-file-name'
	instead of using 'buffer-file-name', which could be nil.
	(Bug#69974)

2024-03-25  Eli Zaretskii  <eliz@gnu.org>

	Document the 'I' command in buffer-menu

	* doc/emacs/buffers.texi (Several Buffers): Document 'I'.  Fix
	indexing.
	(List Buffers): Mention 'I'.  (Bug#69987)

	* etc/NEWS: Mark 'I' as documented.

2024-03-25  Juri Linkov  <juri@linkov.net>

	* lisp/vc/diff-mode.el (diff-setup-buffer-type): Remove "\n" from
	regexp.

	Remove extra "\n" from the end of the "diff --git.*" part of
	'diff-outline-regexp' because "\n" is not used in outline-regexp
	and causes problems in such cases like when killing hunks in the
	diff buffer with outline-minor-mode that loses the outline icons
	because outline--fix-buttons-after-change and
	outline--fix-up-all-buttons are limited to the single line and
	can't match an outline line with a regexp that ends with "\n".

2024-03-25  Po Lu  <luangruo@yahoo.com>

	Port restart-emacs to Android 4.3 and earlier

	* java/org/gnu/emacs/EmacsService.java (restartEmacs): Run Emacs
	from an alarm if required.

2024-03-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	(byte-optimize-form-code-walker): Simplify a bit

	Eliminate a case that matches very rarely and where the default
	handling works just as well anyway.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Remove
	redundant case.

2024-03-24  Andrea Corallo  <acorallo@gnu.org>

	Fix native compilation for circular immediates (bug#67883)

	* test/src/comp-resources/comp-test-funcs.el
	(comp-test-67883-1-f): New function.

	* lisp/emacs-lisp/comp.el (comp--collect-rhs)
	(comp--ssa-rename-insn): Handle setimm aside to avoid unnecessary
	immediate manipulation.
	(comp--copy-insn-rec): Rename.
	(comp--copy-insn): New function.
	(comp--dead-assignments-func): Handle setimm aside to avoid
	unnecessary.

2024-03-24  Po Lu  <luangruo@yahoo.com>

	Don't define user-ptr type when user-ptrp is not present

	* lisp/emacs-lisp/cl-preloaded.el (user-ptr): Condition on
	presence of predicate function.

2024-03-24  Po Lu  <luangruo@yahoo.com>

	Improve consistency of content file name handling

	* java/org/gnu/emacs/EmacsService.java (getDisplayNameHash):
	Always encode file names as modified UTF-8, as insurance against
	future changes to undocumented behavior of the JVM.

2024-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-preloaded.el: Improve docstrings of "kinds"

	* lisp/emacs-lisp/cl-preloaded.el (cl--class): Improve the
	docstring.
	(built-in-class): Add a docstring.

2024-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/emacs/help.texi (Name Help): Mention buttons.  (bug#69935)

2024-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	edebug.el: Better strip instrumentation from backtraces

	Rework the code that "cleans" the backtrace for
	`edebug-pop-to-backtrace'.  The main changes are the following:

	- Strip instrumentation from "everywhere" rather than trying to limit the
	  effect to "code" and leave "data" untouched.  This is a worthy
	  goal, but it is quite difficult to do since code contains data
	  (so we ended up touching data anyway) and data can also contain
	  code.
	  The risk of accidentally removing something because it happens
	  to look like instrumentation is very low, whereas it was very
	  common for instrumentation to remain in the backtrace.
	- Use a global hash-table to remember the work done, instead of
	  using separate hash-table for each element.  By using a weak
	  hash-table we avoid the risk of leaks, and save a lot of work
	  since there's often a lot of subexpressions that appear
	  several times in the backtrace.

	* lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper): Tweak code
	layout so the comments are more clear.
	(edebug-unwrap): Remove redundant patterns for `closure' and
	`lambda'.  Add `:closure-dont-trim-context' to the `edebug-enter'
	pattern, so it also gets removed (this should have been done in
	commit 750bc57cbb8d).
	(edebug--unwrap-cache): New var.
	(edebug-unwrap*): Use it.
	(edebug--unwrap1): Delete function.  Merged into `edebug-unwrap*'.
	Also apply unwrapping to the contents of byte-code functions since
	they can refer to lambda expressions captured by the closure.
	(edebug--symbol-prefixed-p): Rename from
	`edebug--symbol-not-prefixed-p' and adjust meaning accordingly.
	(edebug--strip-instrumentation): Adjust accordingly and simplify a
	bit by unifying the "lambda" case and the "everything else" case.
	(edebug--unwrap-frame): Use `cl-callf' and unwrap arguments even
	if they've already been evaluated.

2024-03-23  F. Jason Park  <jp@neverwas.me>

	Reuse command-indicator code for script lines in ERC

	* lisp/erc/erc-goodies.el (erc-load-irc-script-lines): Move here
	from main file and rework to always use `command-indicator'
	instead of only partially, when available.  Also use internal
	"send-action" and "send-message" interfaces to defer
	command-handler output until command lines have been inserted.
	* lisp/erc/erc.el (erc-process-input-line): Redo doc string.
	(erc-process-script-line): Fold exceptionally overlong line.
	(erc-load-irc-script-lines): Move to erc-goodies.el.  (Bug#67032)

2024-03-23  F. Jason Park  <jp@neverwas.me>

	Restore leading space to right-margin stamps in ERC

	* lisp/erc/erc-stamp.el (erc-insert-timestamp-right): Insert a
	single space character immediately before right-side stamps
	managed by `erc-stamp--display-margin-mode'.  Include it as part
	of the `timestamp' field.  This behavior was originally present in
	an earlier draft of the changes for bug#60936, mainly to favor
	symmetry between hard-wrapped fill styles and fill-wrap with
	regard to stamps.  It was subsequently removed to simplify
	management, so that the `field' and `display' intervals aligned.
	* test/lisp/erc/erc-stamp-tests.el
	(erc-stamp--display-margin-mode--right): Update expected output.

2024-03-23  F. Moukayed  <smfadi+emacs@gmail.com>  (tiny change)

	Remove mishandled erc-control-default-{fg,bg} faces

	Partially revert those portions of 7b4ca9e609e "Leverage
	inverse-video for erc-inverse-face" that introduced and managed
	explicit faces for the "default" 99 color code.

	* lisp/erc/erc-goodies.el (erc-control-default-fg)
	(erc-control-default-bg): Remove unused faces originally meant to
	be new in ERC 5.6.
	(erc-get-fg-color-face, erc-get-bg-color-face): Return nil for
	n=99.
	(erc-controls-interpret, erc-controls-highlight): Preserve an
	interval's existing background so "if only the foreground color is
	set, the background color stays the same," as explained by
	https://modern.ircdocs.horse/formatting#color.  (Bug#69860)

2024-03-23  F. Jason Park  <jp@neverwas.me>

	Remove unused faces from various erc-goodies tests

	* test/lisp/erc/erc-goodies-tests.el
	(erc-controls-highlight--spoilers)
	(erc-controls-highlight--inverse): Remove all mention of stricken
	faces `erc-control-default-fg' and `erc-control-default-bg'.
	(erc-controls-highlight/default-foreground)
	(erc-controls-highlight/default-background): New tests.
	(Bug#69860)

2024-03-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/package.el (describe-package-1): Improve the
	test to determine if `maintainers` contains a single cons or a
	list of conses.  (bug#69712)

2024-03-23  Joseph Turner  <joseph@breatheoutbreathe.in>

	Recompute :map when image :scale, :rotation, or :flip changes

	Now, when transforming an image, its :map is recomputed to fit.
	Image map coordinates are integers, so when computing :map,
	coordinates are rounded.  To prevent an image from drifting from
	its map after repeated transformations, 'create-image' now adds a
	new image property :original-map, which is combined with the
	image's transformation parameters to recompute :map.

	* lisp/image.el (image-recompute-map-p): Add user option to
	control whether :map is recomputed when an image is transformed.
	(create-image): Create :map from :original-map and vice versa.
	(image--delayed-change-size): Fix comment.
	(image--change-size, image-rotate, image-flip-horizontally)
	(image-flip-vertically): Recompute image map after transformation
	and mention 'image-recompute-map-p' in docstring.
	(image--compute-map): Add function to compute a map from original
	map.
	(image--compute-original-map): Add function to compute an original
	map from map.
	(image--scale-map): Add function to scale a map based on :scale.
	(image--rotate-map): Add function to rotate a map based on
	:rotation.
	(image--rotate-coord): Add function to rotate a map coordinate
	pair.
	(image--flip-map): Add function to flip a map based on :flip.
	(image-increase-size, image-decrease-size)
	(image-mouse-increase-size)
	(image-mouse-decrease-size): Mention 'image-recompute-map-p' in
	docstrings.
	* etc/NEWS: Add NEWS entry.
	* doc/lispref/display.texi (Image Descriptors): Document
	:original-map and new user option 'image-recompute-map-p'.
	* test/lisp/image-tests.el (image--compute-map-and-original-map):
	Test 'image--compute-map' and 'image--compute-original-map'.
	(image-tests--map-equal): Add equality predicate to compare image
	maps.
	(image-create-image-with-map): Test that 'create-image' adds :map
	and/or :original-map as appropriate.
	(image-transform-map): Test functions related to transforming
	maps.  (Bug#69602)

2024-03-23  Jim Porter  <jporterbugs@gmail.com>

	Add 'eww-readable-urls'

	* lisp/net/eww.el (eww-readable-urls): New option.
	(eww-default-readable-p): New function...
	(eww-display-html): ... use it.

	* test/lisp/net/eww-tests.el (eww-test/readable/default-readable):
	New test.

	* doc/misc/eww.texi (Basics): Document 'eww-readable-urls'.

	* etc/NEWS: Announce this change.  (bug#68254)

2024-03-23  Jim Porter  <jporterbugs@gmail.com>

	Allow toggling "readable" mode in EWW

	Additionally, add an option to prevent adding a new history entry
	for each call of 'eww-readable'.  (bug#68254)

	* lisp/net/eww.el (eww-retrieve):

	* lisp/net/eww.el (eww-readable-adds-to-history): New option.
	(eww-retrieve): Make sure we call CALLBACK in all configurations.
	(eww-render): Simplify how to pass encoding.
	(eww--parse-html-region, eww-display-document): New functions,
	extracted from...
	(eww-display-html): ... here.
	(eww-document-base): New function.
	(eww-readable): Toggle "readable" mode interactively, like with a
	minor mode.  Consult 'eww-readable-adds-to-history'.
	(eww-reload): Use 'eshell-display-document'.

	* test/lisp/net/eww-tests.el (eww-test--with-mock-retrieve): Fix
	indent.
	(eww-test/display/html, eww-test/readable/toggle-display): New
	tests.

	* doc/misc/eww.texi (Basics): Describe the new behavior.

	* etc/NEWS: Announce this change.

2024-03-23  Spencer Baugh  <sbaugh@catern.com>

	Use 'regexp-opt' in 'dired-omit-regexp'

	In my benchmarking, for large dired buffers, using 'regexp-opt'
	provides around a 3x speedup in omitting.

	'regexp-opt' takes around 5 milliseconds, so to avoid slowing down
	omitting in small dired buffers we cache the return value.

	Since omitting is now 3x faster, increase 'dired-omit-size-limit'
	by 3x.  Also, document 'dired-omit-size-limit' better.

	* doc/misc/dired-x.texi (Omitting Variables): Document
	'dired-omit-size-limit'.
	* etc/NEWS: Announce increase of 'dired-omit-size-limit'.
	* lisp/dired-x.el (dired-omit--extension-regexp-cache): Add.
	(dired-omit-regexp): Use 'regexp-opt'.  (Bug#69775)
	(dired-omit-size-limit): Increase and improve docs.

2024-03-23  Eli Zaretskii  <eliz@gnu.org>

	* src/coding.c (produce_chars): Fix a thinko.  (bug#69966)

2024-03-23  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	e95a8622263 ; * lisp/keymap.el (key-parse): Fix processing of "[TAB]"...
	afb7a23e7b9 ; Improve documentation of 'backup-by-copying'

2024-03-23  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	689f04a2ddf Clarify description of format-spec truncation
	759dedfab07 More accurate documentation of 'rmail-mail-new-frame'
	fa79de7c6b8 ; * lisp/calendar/calendar.el: Remove extra space.
	7f6e335f4b4 Fix documentation of M-SPC in user manual
	5bdc2436c64 ; * lisp/emacs-lisp/cl-macs.el (cl-labels): Fix stray dif...
	8014dbb2ad8 * admin/notes/bugtracker: Minor copyedit.
	06a991e7e87 ; * admin/notes/bugtracker: Minor copyedit.
	c890622e1a9 Tweak regexp for object initializers in csharp-mode (bug#...
	f48babb1120 `term-mode': mention the keymap to add keybindings to
	8cf05d9be12 Fix 'shortdoc-copy-function-as-kill'
	d5901f3f05e Improve documentation of 'edebug-print-*' variables

2024-03-23  Po Lu  <luangruo@yahoo.com>

	Enable calling decode_coding_object with both SRC and DST_OBJECT Qnil

	* src/coding.c (growable_destination): A C destination is also
	reallocable.
	(produce_chars): Don't consider source and destination identical
	if they are EQ but Qnil.

2024-03-23  Po Lu  <luangruo@yahoo.com>

	Minor adjustments to last change

	* src/androidvfs.c (android_vfs_convert_name): Simplify.
	(android_saf_tree_readdir, android_root_name): Remove redundant
	statements.

2024-03-23  Eli Zaretskii  <eliz@gnu.org>

	Improve support for preprocessor macros in 'c/c++-ts-mode'

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name)
	(c-ts-base-mode): Support preprocessor macros as defuns.  This
	fixes both navigation by defuns and add-log when cpp macros are at
	point.

2024-03-23  Eli Zaretskii  <eliz@gnu.org>

	Avoid infinite recursion in 'image-mode--display'

	* lisp/image-mode.el (image-mode): Suspend major mode only if it
	is not already 'image-mode'.  (Bug#69785)

2024-03-23  Dionisio E Alonso  <baco@users.noreply.github.com>  (tiny change)

	Add BasedPyright LSP server alternative for Eglot's 'python-mode'

	* lisp/progmodes/eglot.el (eglot-server-programs): Add
	BasedPyright, a new server for python, forked from the
	unmaintained 'pyright' LSP server.  (Bug#69925)

2024-03-23  Po Lu  <luangruo@yahoo.com>

	Correctly handle non-BMP characters in Android content file names

	* lisp/term/android-win.el (android-encode-jni)
	(android-decode-jni, android-jni): New coding system, for Android
	file names and runtime data.

	* src/androidterm.h (syms_of_androidvfs): New function.

	* src/androidvfs.c (struct android_special_vnode): New field
	special_coding_system.
	(android_saf_tree_readdir): Decode the file name using the
	android-jni coding system.
	(special_vnodes) <contents>: Specify a file name coding system.
	(android_vfs_convert_name): New function.
	(android_root_name): If a special coding system be specified for a
	special vnode, convert components to it before invoking its name
	function.
	(syms_of_androidvfs): New symbol Qandroid_jni.

	* src/emacs.c (android_emacs_init): Call syms_of_androidvfs.

2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix recent test regressions

	* lisp/emacs-lisp/pp.el (pp-fill): Don't cut between `#' and `('.

	* test/lisp/help-fns-tests.el (help-fns-test-built-in)
	(help-fns-test-interactive-built-in, help-fns-test-lisp-defun)
	(help-fns-test-lisp-defsubst):
	* test/src/emacs-module-tests.el (module/describe-function-1):
	Adjust tests to new wording in `describe-function'.

2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	* etc/NEWS: Document the new behavior of `describe-function`.

	I pushed commit accd79c93935 by accident.
	Related to bug#69935.

2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	(pp-fill): Cut before parens and dots

	The `pp-fill' code sometimes end up generating things like:

	    (foo .
	         bar)

	instead of

	    (foo
	     .  bar)

	so make sure we cut before rather than after the dot (and open
	parens while we're at it).

	* lisp/emacs-lisp/pp.el (pp-fill): Cut before parens and dots.

	* test/lisp/emacs-lisp/pp-tests.el (pp-tests--dimensions): New
	function.
	(pp-tests--cut-before): New test.

2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	(help-fns-function-description-header): Print functions' type

	Instead of choosing English words to describe the kind of
	function, use the actual type of the function object (from
	`cl-type-of`) directly, and make it a button to display info about
	that type.

	* lisp/help-fns.el (help-fns-function-description-header): Use the
	function's type name in the description instead of "prose".  Use
	`insert' instead of `princ', so as to preserve the text-properties
	of the button.

	* lisp/emacs-lisp/cl-extra.el (cl-help-type): Move to
	`help-mode.el' and rename to `help-type'.
	(cl--describe-class): Adjust accordingly.

	* lisp/help-mode.el (help-type): New type, moved and renamed from
	`cl-extra.el`.

2024-03-22  Po Lu  <luangruo@yahoo.com>

	Fix display of custom menus after putative cosmetic change

	* lisp/wid-edit.el (widget-setup): Restore version from before the
	previous commit.

2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/help.el (help--analyze-key): Use `help-fns-function-name'.

2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	(help-fns-function-name): New function

	Consolidate code used in profiler and help--describe-command, and
	improve it while we're at it.  Also use #' to quote a few function
	names along the way.

	* lisp/help-fns.el (help-fns--function-numbers)
	(help-fns--function-names): New vars.
	(help-fns--display-function): New aux function.
	(help-fns-function-name): New function, inspired from
	`help--describe-command'.

	* lisp/help.el (help--describe-command): Use
	`help-fns-function-name'.
	(help--for-help-make-sections): Remove redundant "" arg to
	`mapconcat'.

	* lisp/profiler.el (profiler-format-entry, profiler-fixup-entry):
	Delete functions.
	(profiler-report-make-entry-part): Use `help-fns-function-name'
	instead.
	(profiler-report-find-entry): Use `push-button'.

	* lisp/transient.el (transient--debug): Use
	`help-fns-function-name' when available.

2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	(make-help-screen): Move most of the code out to a function

	This avoids problems like variable-name capture and lets compiler
	messages point to the actual source code.

	* lisp/help-macro.el (help--help-screen): New function, extracted
	from `make-help-screen'.
	(make-help-screen): Use it.

2024-03-21  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.6.0-1-gcaef3347

2024-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	(describe-symbol-backends): Fix addition of the "type" backend

	That backend was added from `cl-extra.el' with no autoload, so
	(describe-symbol `advice) failed to show the info about the
	`advice' type unless `cl-extra.el' had been loaded beforehand.
	`C-h o RET advice RET' worked by accident because the completion
	table uses `cl-some' which is autoloaded from `cl-extra.el'.

	* lisp/help-mode.el (describe-symbol-backends): Add the "type"
	backend.
	* lisp/emacs-lisp/cl-extra.el (describe-symbol-backends): Don't
	add the "type" backend here.

2024-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	byte-opt.el: Remove test that's not applicable any more

	* lisp/emacs-lisp/byte-opt.el: Remove left-over test for ancient
	byte-compiled representation.

2024-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	Speed up `describe-char' when a property has a large value

	Doing `C-u C-x =' on a buffer position where the overlay/text
	properties hold large values (e.g. inside the profiler report) can
	be surprisingly slow because it pretty prints all those
	properties.  Change the code to do the pretty printing more
	lazily.  While at it, share that duplicated code between
	`descr-text.el' and `wid-browse.el'.

	* lisp/emacs-lisp/pp.el (pp-insert-short-sexp): New function.

	* lisp/descr-text.el (describe-text-sexp): Delete function.
	(describe-property-list): Use `pp-insert-short-sexp' instead.

	* lisp/wid-browse.el (widget-browse-sexp): Use
	`pp-insert-short-sexp' and `widget--allow-insertion'.

2024-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	wid-edit.el: Cosmetic changes

	* lisp/wid-edit.el: Use #' to quote function names.
	(widget--simplify-menu, widget-echo-help): Explicitly specify the
	lexenv to `eval'.
	(widget-choose, widget-get-sibling, widget-setup)
	(widget-field-find)
	(widget-choice-action, widget-checklist-value-get)
	(widget-radio-value-create, widget-radio-value-set)
	(widget-radio-action, widget-editable-list-delete-at)
	(widget-group-value-create, widget-choice-prompt-value): Use
	`dolist'.
	(widget-convert): Hoist `(setq current' out of the ifs.
	(widget-convert): Hoist `(setq keys' out of the if.
	(widget-after-change): Hoist `(setq begin' out of the if.
	(widget-default-completions): Use `cond'.
	(widget-default-value-set): Hoist `goto-char' out of the if.
	(widget-choice-action): Hoist `nth' out of the if.
	(widget-checkbox-action): Hoist `widget-apply' out of the if.
	(widget-editable-list-value-create): Hoist `car' out of the if.
	(widget-editable-list-entry-create): Hoist `(setq child ...' out
	of the if.
	(widget-documentation-link-action): Fold `if' into `cond'.
	(widget-key-sequence-value-to-external): Use `key-parse'.
	(widget-plist-convert-option, widget-alist-convert-option): Hoist
	`(setq key-type' out of the if.

2024-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/wid-edit.el (widget--allow-insertion): New macro.
	(widget-specify-insert, widget-insert, widget-setup)
	(widget-default-delete, widget-editable-list-insert-before)
	(widget-editable-list-delete-at): Use it.

2024-03-21  Adam Porter  <adam@alphapapa.net>

	'vtable-update-object' can now be called with one argument

	It's often necessary to update the representation of a single
	object in a table (e.g a struct, whose identity does not change
	when its slots' values are changed).  To do so, now the function
	may be called like this:

	  (vtable-update-object table object)

	Instead of like this:

	  (vtable-update-object table object object)

	This also documents the behavior of the just-discovered limitation
	filed as bug#69837.
	* lisp/emacs-lisp/vtable.el (vtable-update-object): Make
	'old-object' argument optional.  (Bug#69666)

	* doc/misc/vtable.texi (Interface Functions): Update
	documentation.

	* etc/NEWS: Add news entry.

2024-03-21  Eli Zaretskii  <eliz@gnu.org>

	Speed up display of RTL text with many character compositions

	* src/bidi.c (bidi_level_start): New function.
	* src/dispextern.h (bidi_level_start): Add prototype.
	* src/xdisp.c (compute_stop_pos, set_iterator_to_next)
	(get_visually_first_element, next_element_from_buffer): Call
	'bidi_level_start' when looking for composed characters backwards,
	to set limit of searching back, instead of looking all the way to
	BOB.  (Bug#69385)

2024-03-21  Adam Porter  <adam@alphapapa.net>

	Avoid recomputing the whole table in 'vtable--recompute-numerical'

	Each element of LINE being tested is a list, the first element of
	which is the value actually being represented in the table.
	Previously, the 'numberp' test would always fail, because it was
	being compared with the list rather than the intended value in it;
	that could cause the whole table to be recomputed, sometimes
	unnecessarily.
	* lisp/emacs-lisp/vtable.el (vtable--recompute-numerical): Test
	the car of ELEM, not ELEM itself, which is a list.  (Bug#69927)

2024-03-21  Po Lu  <luangruo@yahoo.com>

	Android compatibility fixes

	* doc/emacs/android.texi (Android Windowing): Document
	restrictions on number of windows under Android 4.4 and earlier.

	* java/AndroidManifest.xml.in
	<EmacsActivity, <EmacsOpenActivity>:
	<EmacsMultitaskActivity>: Assign each class of activity a unique
	task affinity.

	* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
	Remove redundant priority assignment.

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Handle
	file URIs when processing attachments from a mailto URI, and check
	for KitKat before opening content ones.

	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow) <pointerMap>:
	(figureChange): Replace coordinate HashMap with a SparseArray.

	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
	(registerWindow): Don't specify FLAG_ACTIVITY_NEW_DOCUMENT on
	systems where it is absent.

2024-03-20  Andrea Corallo  <acorallo@gnu.org>

	Add native compiler sanitizer

	* src/comp.c (ABI_VERSION): Bump new version.
	(CALL0I): Uncomment.
	(helper_link_table, declare_runtime_imported_funcs): Add
	'helper_sanitizer_assert'.
	(Fcomp__init_ctxt): Register emitter for
	'helper_sanitizer_assert'.
	(helper_sanitizer_assert): New function.
	(syms_of_comp): 'helper_sanitizer_assert' defsym.
	(syms_of_comp): 'comp-sanitizer-error' define error.
	(syms_of_comp): 'comp-sanitizer-active' defvar.

	* lisp/emacs-lisp/comp.el (comp-passes): Add 'comp--sanitizer'.
	(comp-sanitizer-emit): Define var.
	(comp--sanitizer): Define function.

	* lisp/emacs-lisp/comp-run.el (comp-run-async-workers): Forward
	'comp-sanitizer-emit'.

2024-03-20  Po Lu  <luangruo@yahoo.com>

	Respect file display names during Android drag-and-drop

	* java/org/gnu/emacs/EmacsService.java (buildContentName): Remove
	redundant projection argument to resolver.query.

	* java/org/gnu/emacs/EmacsWindow.java (onDragEvent): If a content
	resolver is available, attempt to convert content URIs into file
	names in advance.

	* lisp/term/android-win.el (android-handle-dnd-event): Adjust
	correspondingly.

2024-03-19  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Fix vc-git test when no identities are configured

	Reported by john muhl <jm@pub.pink>.

	* test/lisp/vc/vc-git-tests.el (vc-git-test--with-repo): Set some
	environment variables (lifted from vc-tests.el) to let 'git
	commit' compute dummy author and committer identities.

2024-03-19  Eli Zaretskii  <eliz@gnu.org>

	Unbreak the Cygw32 build broken by resent WTS_SESSION changes

	* src/w32xfns.c (WTS_VIRTUAL_CLASS):
	* src/w32fns.c (WTS_VIRTUAL_CLASS, WM_WTSSESSION_CHANGE)
	(WTS_SESSION_LOCK): Define only for WINDOWSNT.
	* src/w32xfns.c (drain_message_queue): Call
	'reset_w32_kbdhook_state' only for WINDOWSNT.  (Bug#69888)

2024-03-19  Andrea Corallo  <acorallo@gnu.org>

	* test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-93): Add
	test.

2024-03-19  Andrea Corallo  <acorallo@gnu.org>

	Use 'cl-type-of' in comp-cstr.el

	* lisp/emacs-lisp/comp-cstr.el
	(comp-cstr-union-homogeneous-no-range)
	(comp-cstr-union-1-no-mem, comp-cstr-intersection-no-hashcons):
	Make use of 'cl-type-of' in place of 'type-of'.

2024-03-19  Po Lu  <luangruo@yahoo.com>

	Update android.texi

	* doc/emacs/android.texi (Android Startup): Describe
	/content/by-authority-named.

2024-03-19  Po Lu  <luangruo@yahoo.com>

	Respect display names of Android content URIs

	* java/org/gnu/emacs/EmacsNative.java (displayNameHash): New
	function.

	* java/org/gnu/emacs/EmacsService.java (buildContentName): New
	argument RESOLVER.  Generate names holding URI's display name if
	available.  All callers changed.

	* lisp/international/mule-cmds.el (set-default-coding-systems):
	Fix file name coding system as utf-8-unix on Android as on Mac OS.

	* src/androidvfs.c (enum android_vnode_type): New enum
	ANDROID_VNODE_CONTENT_AUTHORITY_NAMED.
	(android_content_name): Register root directories for this new
	type.
	(displayNameHash): New function.
	(android_get_content_name): New argument WITH_CHECKSUM.  If
	present, treat the final two components as a pair of checksum and
	display name, and verify and exclude the two.
	(android_authority_name): Provide new argument as appropriate.
	(android_authority_initial_name): New function.

2024-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-preloaded.el (user-ptr): Add predicate.

	Merge branch 'cl-type-of'.  (bug#69739)

2024-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	Followup changes to `cl-type-of'

	These changes came up while working on `cl-type-of' but are not
	directly related to the new `cl-type-of'.
	The BASE_PURESIZE bump was needed at some point on one of my
	machine, not sure why.

	* src/puresize.h (BASE_PURESIZE): Bump up.
	* src/sqlite.c (bind_value): Don't use `Ftype_of'.
	* lisp/emacs-lisp/seq.el (seq-remove-at-position): Simplify.
	* lisp/emacs-lisp/cl-preloaded.el (finalizer):
	New (previously missing) type.
	* doc/lispref/objects.texi (Type Predicates): Minor tweaks.

2024-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	(primitive-function): New type

	The type hierarchy and `cl-type-of' code assumed that
	`subr-primitive' only applies to functions, but since it also
	accepts special-forms it makes it an unsuitable choice since it
	can't be a subtype of `compiled-function'.  So, use a new type
	`primitive-function' instead.

	* lisp/subr.el (subr-primitive-p): Fix docstring (bug#69832).
	(primitive-function-p): New function.

	* lisp/emacs-lisp/cl-preloaded.el (primitive-function): Rename
	from `subr-primitive' since `subr-primitive-p' means something
	else.

	* src/data.c (Fcl_type_of): Return `primitive-function' instead of
	`subr-primitive' for C functions.
	(syms_of_data): Adjust accordingly.

	* test/src/data-tests.el (data-tests--cl-type-of): Remove
	workaround.

2024-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl-type-of): New function to return more precise types

	* src/data.c (Fcl_type_of): New function, extracted from
	`Ftype_of'.  Make it return more precise types for symbols,
	integers, and subrs.
	(Ftype_of): Use it.
	(syms_of_data): Define the corresponding new symbols and defsubr
	the new function.

	* doc/lispref/objects.texi (Type Predicates): Document it.

	* src/comp.c (emit_limple_insn): Use `Fcl_type_of'.

	* lisp/emacs-lisp/cl-preloaded.el (subr): Demote it to `atom'.
	(subr-native-elisp, subr-primitive): Add `compiled-function' as
	parent instead.
	(special-form): New type.

	* lisp/emacs-lisp/eieio-core.el (cl--generic-struct-tag):
	* lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-generalizer):
	Use `cl-type-of'.  cl--generic--unreachable-types): Update
	accordingly.

	* test/src/data-tests.el (data-tests--cl-type-of): New test.
	(bug#69739)

2024-03-18  Po Lu  <luangruo@yahoo.com>

	Makeshift solution for X server bug

	* src/xterm.c (x_sync_init_fences): Detect errors around
	XSyncCreateFence.  (bug#69762)

2024-03-17  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-select-restore-windows): New defcustom.
	(tab-bar-select-restore-windows): New function.
	(tab-bar-select-tab): Let-bind
	window-restore-killed-buffer-windows to
	tab-bar-select-restore-windows.  (bug#68235)

2024-03-17  Protesilaos Stavrou  <info@protesilaos.com>

	Update source repository of the Modus themes

	* admin/MAINTAINERS: Update URL and remove outdated references.

2024-03-17  Protesilaos Stavrou  <info@protesilaos.com>

	Update modus-themes to their 4.4.0 version

	* doc/misc/modus-themes.org: Update the manual to better document
	existing functionality and cover the new features.

	* etc/themes/modus-operandi-deuteranopia-theme.el:
	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-operandi-tinted-theme.el:
	* etc/themes/modus-operandi-tritanopia-theme.el:
	* etc/themes/modus-vivendi-deuteranopia-theme.el:
	* etc/themes/modus-vivendi-theme.el:
	* etc/themes/modus-vivendi-tinted-theme.el:
	* etc/themes/modus-vivendi-tritanopia-theme.el: Update the palette
	of each theme.

	* etc/themes/modus-themes.el (require): Remove call to cl-lib and
	do not use relevant functions.
	(modus-themes-operandi-colors, modus-themes-vivendi-colors)
	(modus-themes-version, modus-themes-report-bug): Remove old calls
	to 'make-obsolete' and related.

	(modus-themes--annotate-theme): Tweak the completion annotation
	function.

	(modus-themes--org-block): Deprecate the user option
	'modus-themes-org-blocks'.
	(modus-themes-faces): Update faces.
	(modus-themes-custom-variables): Update the list of custom
	variables.

	Detailed release notes are available here:
	<https://protesilaos.com/codelog/2024-03-17-modus-themes-4-4-0/>.

2024-03-17  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Fix vc-dir when "remote" Git branch is local

	While in there, add that "tracking" branch to the vc-dir buffer.

	* lisp/vc/vc-git.el (vc-git-dir-extra-headers): Reduce boilerplate
	with new function 'vc-git--out-ok'; stop calling
	vc-git-repository-url when REMOTE is "." to avoid throwing an
	error; display tracking branch; prefer "none (<details...>)" to
	"not (<details...>)" since that reads more grammatically correct.
	(vc-git--out-ok): Add documentation.
	(vc-git--out-str): New function to easily get the output from a
	Git command.
	* test/lisp/vc/vc-git-tests.el (vc-git-test--with-repo)
	(vc-git-test--run): New helpers, defined to steer clear of
	vc-git-- internal functions.
	(vc-git-test-dir-track-local-branch): Check that vc-dir does not
	crash.  (bug#68183)

2024-03-17  Po Lu  <luangruo@yahoo.com>

	Improve C++ standard library detection on Android

	* configure.ac: Stop relaying --with-ndk-cxx-shared to the nested
	invocation of configure.

	* build-aux/ndk-build-helper-1.mk (SYSTEM_LIBRARIES):

	* build-aux/ndk-build-helper-2.mk (SYSTEM_LIBRARIES): Insert all
	of the C++ libraries available on Android.

	* configure.ac: Call ndk_LATE and ndk_LATE_EARLY within if
	statement at toplevel, averting needless calls to AC_PROG_CXX.

	* cross/ndk-build/Makefile.in (NDK_BUILD_CXX_STL)
	(NDK_BUILD_CXX_LDFLAGS):

	* cross/ndk-build/ndk-build.mk.in (NDK_BUILD_CXX_STL)
	(NDK_BUILD_CXX_LDFLAGS): New variables.

	* cross/ndk-build/ndk-resolve.mk (NDK_SYSTEM_LIBRARIES): Introduce
	several other C++ libraries sometimes present on Android.
	(NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)): Insert NDK_BUILD_CXX_STL
	when any of these new C++ libraries are requested.

	* m4/ndk-build.m4: Completely rewrite C++ compiler and library
	detection.

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Attempt to
	load more libraries from static initializer.

	* java/INSTALL: Remove obsolete information.

2024-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	debug.el: Prevent re-entering the debugger for the same error

	We can have several active `handler-bind's that all want to invoke
	the debugger, in which case we can have the following sequence:

	- The more deeply nested handler calls the debugger.
	- After a while the user invokes `debugger-continue'.
	- `signal_or_quit' propagates the error up the stack to the
	  second handler, which calls the debugger again.
	- The user thus ends up right back at the same place, as if
	  `debugger-continue' had not be processed.

	Fix this by remembering the last processed error and skipping the
	debugger if we bump into it again.

	* lisp/emacs-lisp/debug.el (debugger--last-error): New var.
	(debugger--duplicate-p): New function.
	(debug): Use them.

2024-03-16  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	3b791ebbe17 ; Fix 'usage:' keyword in Ffile_name_concat doc.
	ed48b0d657c ; * CONTRIBUTE: Ask not to use non-ASCII unless necessary.
	b708e639d63 ; * src/lread.c (maybe_swap_for_eln): Clarify warning mes...
	db027a06976 ; Fix bibtex-biblatex-field-alist docstring typo.
	a9be5c7ea92 ; * doc/lispref/control.texi (Conditionals): Add missing ...
	db5915f30ba Fix 'with-sqlite-transaction'
	fe491173e8f ; * doc/emacs/files.texi (Image Mode): Fix typo (bug#69671).

2024-03-16  Martin Rudalics  <rudalics@gmx.at>

	Document and announce 'marker-last-position'

	* doc/lispref/markers.texi (Information from Markers): Document
	'marker-last-position'.
	* etc/NEWS: Announce 'marker-last-position'.
	* src/window.c (window_restore_killed_buffer_windows): Minor
	doc-string fix.
	* doc/lispref/windows.texi (Window Configurations): Minor fix.

2024-03-16  Martin Rudalics  <rudalics@gmx.at>

	In window-related documentation write 'symbol' instead of
	'constant'.

	Suggested by Michael Heerdegen <michael_heerdegen@web.de>.

	* src/window.c (window_restore_killed_buffer_windows): In
	doc-string write 'symbol' instead of 'constant'.
	* lisp/window.el (display-buffer--lru-window)
	(display-buffer-use-least-recent-window): In doc-strings write
	'symbol' instead of 'constant'.
	* doc/lispref/windows.texi (Window Configurations): Write
	'symbol' instead of 'constant'.

2024-03-16  Po Lu  <luangruo@yahoo.com>

	Respond to default action from Gnus notifications

	* lisp/gnus/gnus-notifications.el (gnus-notifications-action):
	Consider default equivalent to read.

2024-03-16  Po Lu  <luangruo@yahoo.com>

	Support x-*-keysym on Android

	* src/androidterm.c (android_android_to_emacs_modifiers)
	(android_emacs_to_android_modifiers, syms_of_androidterm): Port
	x-*-keysym from xterm.c.

2024-03-16  Po Lu  <luangruo@yahoo.com>

	Correct doc strings for x-*-keysym

	* src/xterm.c (syms_of_xterm): Clarify whether x-*-keysym affects
	the modifier key reported for a keysym or the other way around.

2024-03-16  Po Lu  <luangruo@yahoo.com>

	* doc/lispref/frames.texi (Window System Selections): Fix misuse
	of xref.

2024-03-16  Po Lu  <luangruo@yahoo.com>

	Fix calc.texi for Texinfo 4.13

	* doc/misc/calc.texi (Fractions): Replace instances of @U with raw
	Unicode characters and adjust the document encoding suitably.

2024-03-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/bindat.el (sint): Burp in dynbind.  (bug#69749)

2024-03-15  Andrea Corallo  <acorallo@gnu.org>

	Don't install unnecessary trampolines (bug#69573)

	* lisp/emacs-lisp/comp-run.el (comp-subr-trampoline-install):
	Check that subr-name actually matches the target subr.

2024-03-15  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): Don't
	declare.

2024-03-15  Martin Rudalics  <rudalics@gmx.at>

	Fix bug with CHECK_STRUCTS introduced by last buffer.h change

	* src/pdumper.c (dump_buffer): Fix HASH_buffer_.  Assign
	last_name_ field.

2024-03-15  Martin Rudalics  <rudalics@gmx.at>

	Further adjustments for restoring killed buffer windows

	* etc/NEWS: Announce 'window-restore-killed-buffer-windows'.
	* src/buffer.h (struct buffer) : New field last_name_.
	* src/buffer.c (Fbuffer_last_name): New function to return last
	name of buffer before it was killed or renamed.
	(bset_last_name, Fget_buffer_create, Fmake_indirect_buffer)
	(Frename_buffer, Fkill_buffer, init_buffer_once): Set buffer's
	last_name_ field accordingly.
	* src/window.c (window_restore_killed_buffer_windows): New
	variable replacing Vwindow_kept_windows_functions.
	(Fset_window_configuration): Use
	window_restore_killed_buffer_windows instead of
	Vwindow_kept_windows_functions.
	* lisp/window.el (window--state-put-2, window-state-put): Use
	'window-restore-killed-buffer-windows' instead of
	'window-kept-windows-functions'.
	* doc/lispref/windows.texi (Window Configurations): Describe
	'window-restore-killed-buffer-windows' which replaces
	'window-kept-windows-functions'.  (Bug#68235)

2024-03-15  Juri Linkov  <juri@linkov.net>

	* lisp/vc/diff-mode.el (diff-mode-menu): Add menu item "Apply all
	hunks".  It is bound to the recently added command
	'diff-apply-buffer'.

2024-03-15  Spencer Baugh  <sbaugh@janestreet.com>

	With visible-completions, only bind RET when completion is
	selected.

	Previously, if minibuffer-visible-completions was non-nil, we
	bound RET whenever the *Completions* buffer was visible.  This
	meant that RET in completion-in-region would not enter a newline,
	which is a somewhat annoying behavior change from
	minibuffer-visible-completions=nil.

	Now, we only bind RET when a completion is selected.  This means
	RET will newline in completion-in-region.

	So that completion help continues to suggest the correct keys, we
	also add minibuffer-visible-completions--always-bind.  When
	let-bound to a non-nil value, it makes the
	minibuffer-visible-completions binds always active.  We let-bind
	it around substitute-command-keys.

	* lisp/minibuffer.el (minibuffer-visible-completions--always-bind)
	(minibuffer-visible-completions--filter): Add.
	(minibuffer-visible-completions-bind): Use
	minibuffer-visible-completions--filter.  (bug#68801)
	* lisp/simple.el (minibuffer-visible-completions--always-bind)
	(completion-setup-function): Let-bind
	minibuffer-visible-completions--always-bind so the completion help
	is correct.

2024-03-15  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Keep indenting text when 'shr-fill-text' is nil (bug#69555)

	The 'shr-fill-...' functions handle both hard-filling (adding
	newlines to break long lines) and indentation.  Setting
	'shr-fill-text' to nil currently causes these functions to be
	short-circuited completely, so e.g. blockquotes are no longer
	indented, whereas the intent of this user option is only to
	prevent hard-filling to let visual-line-mode reflow text.

	* lisp/net/shr.el (shr-fill-lines): Document that the function
	handles more than just filling; move the 'shr-fill-text' check...
	(shr-fill-line): ... here, after indentation has been taken care
	of.
	* test/lisp/net/shr-resources/blockquote.html:
	* test/lisp/net/shr-resources/blockquote.txt: New test resources.
	* test/lisp/net/shr-tests.el (shr-test--rendering-check): Rename
	from 'shr-test', to make the relationship with the 'rendering'
	testcase clearer; prefer 'file-name-concat' to 'format'; raise
	ERT failure if need be, calling (ert-fail ...) directly instead
	of (should (not (list ...))).
	(shr-test--rendering-extra-configs): New variable to easily check
	that user customizations do not degrade rendering.
	(rendering): Consult that new variable; delegate failure-raising
	to reduce duplication.

2024-03-15  Po Lu  <luangruo@yahoo.com>

	* src/sfntfont-android.c (init_sfntfont_android): Fix SDK check.

2024-03-15  Dmitry Gutov  <dmitry@gutov.dev>

	* lisp/progmodes/project.el (project--value-in-dir): Ensure that
	the global value of the variable is still honored, when the
	variable is not in dir-locals.

2024-03-15  Patrick Bader  <patrick.bader@thingos.io>

	* lisp/progmodes/project.el (project--submodule-p): Fix issue
	where project submodule detection did not work for worktrees.

2024-03-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	(set-auto-mode): Streamline to fix bug#67795

	The old code tested if the mode function is `fboundp' but in an
	inconsistent way and without paying attention to
	`major-mode-remap'.

	* lisp/files.el (set-auto-mode-0): Return `:keep' rather than nil
	if the mode was already set.  And emit a warning when the mode
	function doesn't exist.
	(set-auto-mode): Remove checks that the mode function exists now
	that `set-auto-mode-0' does it for us.  Adjust to the new return
	values of that function, and simplify the code using a big `or'
	instead of a sequence of steps each setting&testing `done'.
	(hack-local-variables--find-variables): Use `major-mode-remap'
	when skipping the "mode:" entries that specify modes we don't
	have.  Also, when (eq handle-mode t), don't bother building a list
	of results only to return a single element in the end.

2024-03-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/cus-edit.el (customize-mode): Use the predicate arg of
	`completing-read' instead of binding `completion-regexp-list'.
	(bug#69501)

2024-03-15  Po Lu  <luangruo@yahoo.com>

	Fix last change

	* src/xwidget.c (Fmake_xwidget): Cast boolean value to gboolean.
	(syms_of_xwidget): Fix coding style and improve doc string.

2024-03-14  Juri Linkov  <juri@linkov.net>

	* lisp/textmodes/flyspell.el (flyspell-check-changes): New user
	option.
	(flyspell--mode-on): Add flyspell-check-changes to
	post-command-hook when flyspell-check-changes is non-nil.
	(flyspell--mode-off): Remove flyspell-check-changes from
	post-command-hook.
	(flyspell-check-changes): New function.  (bug#61874)

2024-03-14  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el: Don't run modes from .dir-locals.el.
	(project--value-in-dir): Use 'alist-get' on
	'file-local-variables-alist' to avoid calling
	'hack-local-variables-apply' via
	'hack-dir-local-variables-non-file-buffer' because it might enable
	undesirable modes such as flyspell-mode in a temporary buffer.
	(bug#69740)

2024-03-14  Juri Linkov  <juri@linkov.net>

	Context menu for project (bug#69566)

	* lisp/menu-bar.el (menu-bar-project-item): New variable from
	'project-menu-entry'.
	(menu-bar-tools-menu): Use 'menu-bar-project-item'.

	* lisp/mouse.el (context-menu-functions): Add
	'context-menu-project' to choice.
	(context-menu-project): New function.

	* lisp/progmodes/project.el (project-menu-entry): Remove variable.
	(project-mode-line-map): Use 'menu-bar-project-item' instead of
	'project-menu-entry'.

2024-03-14  Pankaj Jangid  <pankaj@codeisgreat.org>

	Add language server for Move to eglot

	* lisp/progmodes/eglot.el (eglot-server-programs): Added
	'move-analyzer' language server.  (Bug#69796)

2024-03-14  Liu Hui  <liuhui1610@gmail.com>

	Detect the readline support for Python shell completion

	* lisp/progmodes/python.el
	(python-shell-comint-watch-for-first-prompt-output-filter): Detect
	the readline support.
	(python-shell-readline-completer-delims): Update docstring.
	(python-shell-completion-native-setup): Move the readline
	detection code to ...
	(python-shell-readline-detect): ... new function.
	(python-shell-completion-native-turn-on-maybe): Skip if Python has
	no readline support.
	(python-shell-completion-at-point): Respect the delimiter of
	readline completer in non-native completion.
	* test/lisp/progmodes/python-tests.el
	(python-shell-completion-at-point-1)
	(python-shell-completion-at-point-native-1)
	(python-completion-at-point-1, python-completion-at-point-2)
	(python-completion-at-point-pdb-1)
	(python-completion-at-point-while-running-1)
	(python-completion-at-point-native-1)
	(python-completion-at-point-native-2)
	(python-completion-at-point-native-with-ffap-1)
	(python-completion-at-point-native-with-eldoc-1): Skip tests if
	Python has no readline support.
	(python-shell-completion-at-point-jedi-completer): Add test for
	non-native Python shell completion.  (bug#68559)

2024-03-14  Adam Porter  <adam@alphapapa.net>

	Handle cases where 'vtable-update-object' doesn't find old object.

	* lisp/emacs-lisp/vtable.el (vtable-update-object): If OLD-OBJECT
	is not found, don't call ELT, since SEQ-POSITION may return nil.
	(Bug#69664)

2024-03-14  Phil Hagelberg  <phil@hagelb.org>  (tiny change)

	Add language server for Fennel to eglot

	* lisp/progmodes/eglot.el (eglot-server-programs): Add fennel-ls
	language server.  (bug#69685)

2024-03-14  StrawberryTea  <look@strawberrytea.xyz>  (tiny change)

	ffap.el: Exclude angle brackets from file names in XML

	* lisp/ffap.el (ffap-string-at-point-mode-alist): Add elements for
	XML, to better recognize file names in XML buffers.

2024-03-14  Visuwesh  <visuweshm@gmail.com>

	Add bounds-of-thing-at-point property for 'number'

	* lisp/thingatpt.el (thing-at-point-decimal-regexp)
	(thing-at-point-hexadecimal-regexp): Extract regexps from...
	(number-at-point): ...here.  Use them in 'number-at-point'.
	(number): Add 'bounds-of-thing-at-point' property as
	`forward-word' does not always return the right boundary, e.g., in
	latex-mode buffers.  (Bug#69239)

2024-03-14  Noé Lopez  <noelopez@free.fr>

	Add user option to disable JavaScript in xwidget webview

	* src/xwidget.c: Add the 'xwidget-webkit-disable-javascript'
	variable to disable JavaScript in WebKit sessions.  (Bug#68604)

	* etc/NEWS:
	* doc/emacs/misc.texi (Embedded Webkit Widgets): Document the
	change.

2024-03-14  Adam Porter  <adam@alphapapa.net>

	* lisp/emacs-lisp/vtable.el (vtable-update-object): Fix.  The
	order of the arguments to 'seq-position' was wrong, and it did not
	compare the correct values.  (Bug#69664)

2024-03-14  Raffael Stocker  <r.stocker@mnet-mail.de>

	Fix resetting keyboard hook state on MS-Windows

	Register session notifications so Emacs is notified when the
	computer is being locked, as required to reset the low level
	keyboard hook state.  (Bug#69083).
	* src/w32term.h:
	* src/w32fns.c (setup_w32_kbdhook, remove_w32_kbdhook)
	(w32_wnd_proc, globals_of_w32fns, maybe_pass_notification):
	Register and manage session notifications in GUI Emacs.
	* src/w32console.c (initialize_w32_display, find_ime_window):
	* src/w32xfns.c (drain_message_queue): Register notifications and
	reset keyboard hook state in console Emacs.
	* src/w32.c (term_ntproc): Un-register session notifications when
	terminating.

2024-03-14  Po Lu  <luangruo@yahoo.com>

	* exec/trace.c (rpl_stpcpy): Replace stpcpy if absent.

2024-03-14  Po Lu  <luangruo@yahoo.com>

	Improve /proc/self/exe substitution on Android

	* exec/configure.ac (USER_SWORD): New macro.

	* exec/exec.c (format_pid): Export this function.

	* exec/exec.h:

	* exec/trace.c (canon_path): New function.
	(handle_readlinkat, handle_openat): Test complete file name
	against /proc/self/exe, and further check for /proc/pid/exe.

2024-03-13  Gerd Möllmann  <gerd@gnu.org>

	ns_select fix for macOS terminals (bug#69561)

	* src/nsterm.m (ns_select_1): Return early for terminals.

2024-03-13  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Fix name of gnus-notification(s)-close; ignore argument

	* lisp/gnus/gnus-notifications.el (gnus-notifications-close):
	Original name was probably a typo.

2024-03-13  Po Lu  <luangruo@yahoo.com>

	Fix crash when displaying notifications on Android 3.0

	* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
	Don't call setPriority until Jelly Bean.

2024-03-13  Gerd Möllmann  <gerd@gnu.org>

	Prevent freezes on macOS (bug#69561)

	* src/nsterm.m (ns_select_1): Store pending input_events.  Always
	call [NSApp run].

2024-03-13  Po Lu  <luangruo@yahoo.com>

	Port more notification senders to non-XDG systems

	* doc/lispref/os.texi (Desktop Notifications): Document that
	`:timeout' is now implemented.

	* java/org/gnu/emacs/EmacsDesktopNotification.java
	(EmacsDesktopNotification): New field delay.
	(display1): Set delay on Android 8.0 and up.

	* lisp/erc/erc-desktop-notifications.el
	(erc-notifications-notify): Call Android or Haiku notification
	functions on those systems.

	* lisp/gnus/gnus-notifications.el (gnus-notifications-action)
	(gnus-notification-close): Remove dismissed notifications from the
	notification to message map.
	(gnus-notifications-notify): Call android-notifications-notify if
	possible.

	* src/androidselect.c (android_init_emacs_desktop_notification):
	Update accordingly.
	(android_notifications_notify_1): New argument TIMEOUT.
	(Fandroid_notifications_notify): New argument QCtimeout.
	(syms_of_androidselect) <QCtimeout>: New symbol.

2024-03-12  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key--create-pages)
	(which-key--pad-column): Untabify.

2024-03-12  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key--maybe-get-prefix-title): Use
	string-empty-p for readability.

2024-03-12  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key--replace-in-repl-list-many):
	Don't quote t.

2024-03-12  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key-add-keymap-based-replacements): Use
	declare form instead of put property.

2024-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	Try and avoid hardcoding lists of function types

	* lisp/bind-key.el (bind-key--get-binding-description): Show
	docstrings for compiled functions also.  Don't hardcode knowledge
	about various particular kinds of functions.

	* lisp/emacs-lisp/bytecomp.el (display-call-tree): Remove special
	support for functions with a `byte-code' body since we never
	generate that nowadays.  Don't hardcode knowledge about various
	particular kinds of functions.

2024-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	Cleanup some type predicates

	Use the new `cl--define-built-in-type' to reduce the manually
	maintained list of built-in type predicates.  Also tweak
	docstrings to use "supertype" rather than "super type", since it
	seems to be what we use elsewhere.

	* lisp/subr.el (special-form-p): Remove redundant `fboundp' test.
	(compiled-function-p): Don't return nil for subrs that aren't
	functions.

	* lisp/emacs-lisp/cl-macs.el (type predicates): Trim down the
	list.

	* lisp/emacs-lisp/cl-preloaded.el (cl--define-built-in-type):
	Register the corresponding predicate if applicable.
	(atom, null): Specify the predicate name explicitly.

2024-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-generic: Signal an error when a type specializer won't work

	* lisp/emacs-lisp/cl-generic.el (cl--generic--unreachable-types):
	New var.
	(cl-generic-generalizers :extra "typeof"): Use it to signal an
	error for those types we can't handle.

2024-03-12  Daniel Pettersson  <daniel@dpettersson.net>

	Jsonrpc: improve performance of process filter function

	`run-at-time' keeps `timer-list' list sorted by inserting each
	timer based on the timer value.  This means that
	`timer--time-less-p' needs is executed ~N*N/2 times for each N
	pending messages.  This means that jsonrpc becomes unusable for
	connections that generate a lot messages at the same time.

	* lisp/jsonrpc.el (Version): Bump to 1.0.25.
	(jsonrpc--process-filter): Improve performance by activating
	timers in a different order.  (Bug#69241)

2024-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(comp-known-predicates): Fix overly optimistic `functionp'

	* lisp/emacs-lisp/comp.el (comp-known-predicates): `functionp' can
	also be true for `cons' objects.

2024-03-12  Po Lu  <luangruo@yahoo.com>

	Fix CheckJNI crash on Android 2.2

	* src/androidfns.c (syms_of_androidfns_for_pdumper): Don't free
	local reference to script name if nonexistent.

2024-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(gnus-convert-old-newsrc): Remove ancient converters

	* lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Remove
	converters from 2004 and before.
	* lisp/gnus/legacy-gnus-agent.el: Delete file.

2024-03-12  Po Lu  <luangruo@yahoo.com>

	Resolve inconsistency between Android and XDG notifications

	* doc/lispref/os.texi (Desktop Notifications):

	* src/androidselect.c (android_notifications_notify_1)
	(Fandroid_notifications_notify, android_notification_action)
	(syms_of_androidselect): Rename `:on-cancel' to `:on-close'.

2024-03-12  Po Lu  <luangruo@yahoo.com>

	Implement notification residency on Android

	* doc/lispref/os.texi (Desktop Notifications): Document support
	for `:resident'.

	* java/org/gnu/emacs/EmacsService.java (cancelNotification):

	* src/android.c (android_init_emacs_service):

	* src/android.h (struct android_emacs_service): New function.

	* src/androidselect.c (android_notifications_notify_1)
	(Fandroid_notifications_notify): New parameter QCresident; save it
	within notification lists.
	(android_notification_deleted, android_notification_action):
	Adjust for changes to the format of notification lists and cancel
	non-resident notifications when an action is selected.
	(syms_of_androidselect) <QCresident>: New symbol.

2024-03-12  Po Lu  <luangruo@yahoo.com>

	Fix notification cancellation detection on Android

	* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
	Don't specify FLAG_ONE_SHOT in cancel intents.

2024-03-11  Po Lu  <luangruo@yahoo.com>

	Implement notification callbacks on Android

	* doc/lispref/os.texi (Desktop Notifications): Document that
	:on-cancel, :on-action and :actions are now supported on
	Android.

	* java/org/gnu/emacs/EmacsActivity.java (onNewIntent): New
	function.

	* java/org/gnu/emacs/EmacsDesktopNotification.java
	(NOTIFICATION_ACTION, NOTIFICATION_TAG, NOTIFICATION_DISMISSED):
	New constants.  <actions, titles>: New fields.
	(insertActions): New function.
	(display1, display): Insert actions on Jelly Bean and up, and
	arrange to be notified when the notification is dismissed.
	(CancellationReceiver): New class.

	* java/org/gnu/emacs/EmacsNative.java (sendNotificationDeleted)
	(sendNotificationAction): New functions.

	* src/android.c (sendDndDrag, sendDndUri, sendDndText): Correct
	return types.
	(sendNotificationDeleted, sendNotificationAction)
	(android_exception_check_5, android_exception_check_6): New
	functions.

	* src/android.h:

	* src/androidgui.h (struct android_notification_event): New
	structure.
	(union android_event): New member for notification events.

	* src/androidselect.c (android_init_emacs_desktop_notification):
	Update JNI signatures.
	(android_notifications_notify_1, Fandroid_notifications_notify):
	New arguments ACTIONS, ACTION_CB and CANCEL_CB.  Convert and
	record them as appropriate.
	(android_notification_deleted, android_notification_action): New
	functions.
	(syms_of_androidselect): Prepare a hash table of outstanding
	notifications.
	<QCactions, QCon_action, QCon_cancel> New defsyms.

	* src/androidterm.c (handle_one_android_event)
	<ANDROID_NOTIFICATION_DELETED>
	<ANDROID_NOTIFICATION_ACTION>: Dispatch event contents to
	androidselect.c for processing.

	* src/androidterm.h:

	* src/androidvfs.c (java_string_class): Export.

	* src/keyboard.c (kbd_buffer_get_event) <NOTIFICATION_EVENT>: Call
	callback specified by the event.

	* src/termhooks.h (enum event_kind) [HAVE_ANDROID]: New enum
	NOTIFICATION_EVENT.

2024-03-11  Paul Eggert  <eggert@cs.ucla.edu>

	Change bare-symbol back to match intent

	Also, attempt to document the intent better.  Problem reported by
	Alan Mackenzie.

	* src/data.c (Fbare_symbol): Do not signal if the SYM is a symbol
	with position and symbols-with-pos-enabled is nil.  Instead,
	ignore symbols-with-pos-enabled, as that was the intent.
	* test/src/data-tests.el (data-tests-bare-symbol): New test, to
	help prevent this bug from reoccurring.  (Bug#69684)

2024-03-11  Michael Heerdegen  <michael_heerdegen@web.de>

	Improve pp-emacs-lisp-code backquote form printing

	* lisp/emacs-lisp/pp.el (pp--quoted-or-unquoted-form-p): New
	helper function.
	(pp--insert-lisp): Take care of quoted, backquoted and unquoted
	expressions; print using an recursive call.
	(pp--format-list): Exclude more cases from printing as a function
	call by default.  Print lists whose second-last element is an
	(un)quoting symbol using dotted list syntax; e.g. (a b . ,c)
	instead of (a b \, c).

2024-03-11  Michael Heerdegen  <michael_heerdegen@web.de>

	Fix pp-emacs-lisp-code printing of symbols

	* lisp/emacs-lisp/pp.el (pp--insert-lisp): Print symbols readably.
	(bug#69168)

2024-03-11  Petteri Hintsanen  <petterih@iki.fi>  (tiny change)

	(bindat--unpack-item): Sanitize vector length

	* lisp/emacs-lisp/bindat.el (bindat--unpack-item): Sanitize vector
	length.

2024-03-10  Andreas Schwab  <schwab@linux-m68k.org>

	Avoid dependency on nonexisting target in lispref makefile

	* doc/lispref/Makefile.in (auxfiles): Change target into a
	variable.
	($(buildinfodir)/elisp.info): Adjust dependency.
	(infoclean): Clean $(auxfiles).

2024-03-10  Jim Porter  <jporterbugs@gmail.com>

	Let 'browse-url-interactive-arg' return more values for
	NEW-WINDOW-FLAG.

	Previously it always returned t or nil for NEW-WINDOW-FLAG, but
	now it can return the actual prefix arg when appropriate.  This
	lets functions for 'browse-url-browser-function' consult it and do
	more things than just open a new window or not (for example, you
	could use "C--" as the prefix arg to do something special in a
	custom function).

	* lisp/net/browse-url.el (browse-url-interactive-arg): Use 'xor'
	to adjust the value of 'current-prefix-arg'.
	(browse-url): Update docstring.

2024-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	syncdoc-type-hierarchy.el: Sort and remove `comp' dependency

	* admin/syncdoc-type-hierarchy.el: Delay loading `org-table' so as
	not to "pollute" the table with Org-specific types.
	(syncdoc-all-types): Sort the types topologically from the root.
	(syncdoc-hierarchy): Use `cl--class-parents' instead if
	`comp--direct-supertypes' so we don't depend on `comp-cstr'.
	(syncdoc-make-type-table): Sort the table so supertypes always
	come before their subtypes.
	(syncdoc-make-type-table): Require `org-table' here.

	* doc/lispref/elisp_type_hierarchy.jpg:
	* doc/lispref/elisp_type_hierarchy.txt: Refresh.

2024-03-10  Tim Ruffing  <crypto@timruffing.de>

	* src/keyboard.c (read_key_sequence): Remove MSVC compatibility
	hack.

2024-03-10  Tim Ruffing  <crypto@timruffing.de>
	    Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/calc/calc-prog.el: Switch to new method of detecting end of
	kbd macro.

	'read-char' will no longer return -1 as of
	ac82baea1c41ec974ad49f2861ae6c06bda2b4ed.  This switches to a
	cleaner method of detecting whether the end of a keyboard macro
	has been reached.

	* lisp/calc/calc-prog.el (calc--at-end-of-kmacro-p): New function.
	(calc-kbd-skip-to-else-if): Use the function.

2024-03-10  Tim Ruffing  <crypto@timruffing.de>

	Remove workarounds for solved 'read-event' bug

	* lisp/subr.el (read-char-choice-with-read-key):
	* lisp/net/dbus.el (dbus-call-method): Remove workarounds for the
	bug fixed in the previous commit
	ac82baea1c41ec974ad49f2861ae6c06bda2b4ed, where 'read-event',
	'read-char' and 'read-char-exclusively' could return wrongly -1.
	In the case of lisp/dbus.el, this reverts commit
	7177393826c73c87ffe9b428f0e5edae244d7a98.

2024-03-10  Tim Ruffing  <crypto@timruffing.de>

	Continue reading in 'read-event' etc. at the end of a keyboard
	macro

	This fixes a bug that could make 'read-event', 'read-char', and
	'read-char-exclusive' erroneously return -1, an internal magic
	return value of 'read_char' leaked from C to lisp.  Instead of
	returning -1, the aforementioned lisp functions now transparently
	continue reading available input (e.g., from the keyboard) when
	reaching the end of a keyboard macro.

	* src/keyboard.c (read_char, read_key_sequence): Move handling of
	the end of a keyboard macro from 'read_char' to its caller
	'read_key_sequence', which is the only caller that can
	meaningfully deal with this case.
	* src/macros.c (Fexecute_kbd_macro): Document how the end of
	keyboard macro is processed.
	* etc/NEWS: Announce this change.

2024-03-10  Tim Ruffing  <crypto@timruffing.de>

	* src/keyboard.c (requeued_events_pending_p): New function

	* src/keyboard.c, src/keyboard.h (requeued_events_pending_p): Add
	function 'requeued_events_pending_p' (whose name was made
	available in the previous commit).  As opposed to the previous
	function with the same name, the new function covers both command
	and other events.
	* src/keyboard.c (Finput_pending_p): Use the new function.

2024-03-10  Tim Ruffing  <crypto@timruffing.de>

	* src/keyboard.c (requeued_events_pending_p): Improve name and fix
	comment.

	* src/keyboard.c (requeued_events_pending_p):
	* src/keyboard.h (requeued_events_pending_p): Rename to
	'requeued_command_events_pending_p' to clarify that the function
	covers only command events.  Fix wrong comment that claimed that
	the function was unused.
	* src/process.c (wait_reading_process_output): Update caller to
	use the new name.

2024-03-10  Tim Ruffing  <crypto@timruffing.de>

	Extract check for end of macro to function

	* src/macros.h (at_end_of_macro_p):
	* src/macros.c (at_end_of_macro_p): New function.
	* src/keyboard.c (read_char): Use the new function.

2024-03-10  F. Jason Park  <jp@neverwas.me>

	Fix faulty decoded-time adjustment in erc-stamp

	* lisp/erc/erc-stamp.el (erc-stamp--lr-date-on-pre-modify): Remove
	disruptive assertion for now.
	(erc-stamp--time-as-day): Attempt to fix date being rewound by a
	whole day when daylight saving time is in effect.  Do this by
	forcing the `dst' slot of the `decoded-time' object to -1 and the
	`zone' to nil.

2024-03-10  F. Moukayed  <smfadi+emacs@gmail.com>  (tiny change)

	Redefine erc-spoiler-face to indicate revealed text

	* lisp/erc/erc-goodies.el (erc-spoiler-face): Redefine role and
	redo definition to inherit from `erc-control-default-face'.
	(erc-controls-propertize): Include `cursor-face' in the applied
	hover properties for spoiler text, and ensure they aren't
	clobbered by other built-in modules, like `button'.  (Bug#69597)

2024-03-10  F. Jason Park  <jp@neverwas.me>

	Make important text props more resilient in ERC

	* lisp/erc/erc-button.el (erc-button-remove-old-buttons): Restore
	original `mouse-face' values in areas marked as important after
	clobbering.
	* lisp/erc/erc.el (erc--reserve-important-text-props): New
	function.
	(erc--restore-important-text-props): New function.
	* test/lisp/erc/erc-tests.el (erc--restore-important-text-props):
	New test.  (Bug#69597)

2024-03-10  F. Jason Park  <jp@neverwas.me>

	Leverage inverse-video for erc-inverse-face

	* lisp/erc/erc-goodies.el (erc-inverse-face): Specify face
	attribute `:inverse-video' (née :reverse-video) to swap foreground
	and background colors over affected intervals, as per
	https://modern.ircdocs.horse/formatting#reverse-color.
	(erc-control-default-fg erc-control-default-bg): New faces for IRC
	color-code number 99.  Ignore the ERC convention of prefixing
	control-code-derived faces with "fg:" and "bg:" because it doesn't
	comport with modern sensibilities, which demand identifiers
	normally be namespaced.
	(erc-get-bg-color-face, erc-get-fg-color-face): Return new,
	dedicated faces instead of `default', and don't nest them in a
	list.
	* test/lisp/erc/erc-goodies-tests.el
	(erc-controls-highlight--inverse): Redo completely, asserting
	behavior described in the spec linked to above.
	(erc-controls-highlight--spoilers): New test based on the body of
	the old `erc-controls-highlight--inverse', except without
	shadowing `erc-insert-modify-hook' with an unrealistic, idealized
	value.  Adjust expected buffer state to reflect the new role of
	`erc-spoiler-face'.  (Bug#69597)

2024-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'make-ts-derived-modes'

2024-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/eglot.el (eglot-server-programs): Add comment.
	Make the definition fit into 80 columns.

2024-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	Simplify mode-indexed tables in packages

	Now that we use extra-parents to group alternative major modes,
	some tables can be simplified to mention only the group's leader.

	* lisp/align.el (align-c++-modes, align-rules-list):
	Don't bother listing TS alternatives.
	(align-perl-modes): Don't bother listing CPerl alternative.

	* lisp/info-look.el (perl-mode): Simplify.

	* lisp/cedet/semantic/symref/grep.el
	(semantic-symref-filepattern-alist): Don't bother listing TS
	alternatives.

	* lisp/emulation/viper.el (viper-vi-state-mode-list): Don't bother
	listing CPerl alternative.

	* lisp/progmodes/gud.el
	(gud-tooltip-activate-mouse-motions-if-enabled): Take into account
	the modes hierarchy.
	(gud-tooltip-modes): Don't bother listing TS alternatives.

	* .dir-locals.el (c-ts-mode): Simplify.

2024-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	Add non-TS modes as extra parent of TS modes (bug#68246)

	Record the fact that TS modes are alternatives to the non-TS modes
	using the new `derived-mode-add-parents' functionality.  Do the
	same for long standing similar issues with CPerl-mode.

	* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode):
	* lisp/textmodes/toml-ts-mode.el (toml-ts-mode):
	* lisp/textmodes/html-ts-mode.el (html-ts-mode):
	* lisp/textmodes/css-mode.el (css-ts-mode):
	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode)
	(tsx-ts-mode):
	* lisp/progmodes/sh-script.el (bash-ts-mode):
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode):
	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
	* lisp/progmodes/python.el (python-ts-mode):
	* lisp/progmodes/lua-ts-mode.el (lua-ts-mode):
	* lisp/progmodes/json-ts-mode.el (json-ts-mode):
	* lisp/progmodes/js.el (js-ts-mode):
	* lisp/progmodes/java-ts-mode.el (java-ts-mode):
	* lisp/progmodes/heex-ts-mode.el (heex-ts-mode):
	* lisp/progmodes/go-ts-mode.el (go-ts-mode, go-mod-ts-mode):
	* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode):
	* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode):
	* lisp/progmodes/csharp-mode.el (csharp-ts-mode):
	* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode):
	* lisp/progmodes/c-ts-mode.el (c-ts-mode, c++-ts-mode): Add non-TS
	mode as extra parent.

	* lisp/progmodes/cperl-mode.el (cperl-mode): Add `perl-mode' as
	extra parent.

2024-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	(dir-locals-collect-variables): Avoid spurious safety warnings

	* lisp/files.el (dir-locals-collect-variables): Silence warnings
	for extra parents' variables.

2024-03-09  Andrea Corallo  <acorallo@gnu.org>

	Run 'syncdoc-update-type-hierarchy'.

	* doc/lispref/elisp_type_hierarchy.jpg: Update.
	* doc/lispref/elisp_type_hierarchy.txt: Likewise.

2024-03-09  Andrea Corallo  <acorallo@gnu.org>

	Update 'syncdoc-type-hierarchy.el' after recent changes

	* admin/syncdoc-type-hierarchy.el (syncdoc-all-types): Update.

2024-03-09  Eli Zaretskii  <eliz@gnu.org>

	Auto-commit of loaddefs files.

2024-03-09  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	b9f7a2274f6 ; Improve documentation of 'minibuffer-allow-text-propert...
	5ffcca121bb ; Improve documentation of image properties
	6e801077ae8 ; * src/composite.c (composition_compute_stop_pos): Add c...

2024-03-09  Po Lu  <luangruo@yahoo.com>

	Enable stack overflow recovery on Android

	* src/sysdep.c (handle_sigsegv): Return after restoring the
	original signal handler, which should proceed to call debuggerd to
	generate a tombstone.
	(init_sigsegv): Save the original signal handler on Android, to be
	restored after a signal is received.
	(init_signals): Call init_sigsegv on Android.

2024-03-09  Eli Zaretskii  <eliz@gnu.org>

	Fix case-sensitivity in 'complete-tag'

	* lisp/progmodes/etags.el (complete-tag): Bind
	'completion-ignore-case', so that 'completion-in-region' is
	affected by it.  This fixes a bug made in 30 Apr 2010, when this
	function was refactored to use
	'tags-completion-at-point-function'.  Reported by Morgan Willcock
	<morgan@ice9.digital>.

2024-03-09  Charalampos Mitrodimas  <charmitro@posteo.net>  (tiny change)

	Do interactive mode tagging for locate.el

	* lisp/locate.el (locate-tags, locate-find-directory)
	(locate-find-directory-other-window): Do interactive mode tagging.
	(Bug#69619)

2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	(eieio--generic-subclass-specializers): Autoload class

	* lisp/emacs-lisp/eieio-core.el
	(eieio--generic-subclass-specializers): Don't forget to handle
	autoloaded classes.

2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	EIEIO: Fix regression (bug#69631)

	Not sure why earlier tests did not catch it, but there are more
	places where we bump into problems because
	`eieio--class-precedence-list' now returns also non-EIEIO classes.

	* lisp/obsolete/eieio-compat.el
	(eieio--generic-static-object-generalizer):
	* lisp/emacs-lisp/eieio-core.el (eieio--generic-generalizer)
	(eieio--generic-subclass-specializers): Handle non-EIEIO parents.

	* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
	(eieio-test-method-order-list-7): Adjust test.

2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/eieio-core.el (eieio--class-precedence-c3)
	(eieio--class-precedence-dfs, eieio--class-precedence-bfs): Use
	`cl--class-parents' since some of the parents aren't EIEIO
	classes.  (bug#69631)

2024-03-08  Andrea Corallo  <acorallo@gnu.org>

	Fix `capitalize' entry in `comp-known-type-specifiers'

	* lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers): Fix
	'capitalize' entry.  (bug#69631)

2024-03-08  Po Lu  <luangruo@yahoo.com>

	* src/android.c (android_wc_lookup_string): Don't clear compose
	state upon modifier key depress.

2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	Simplify type hierarchy operations

	Now that built-in types have classes that describe their
	relationships exactly like struct/eieio/oclosure classes, we can
	the code that navigates that DAG.

	* lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): Move to
	`eieio-core.el'.
	(cl--generic-type-specializers): Rename from
	`cl--generic-struct-specializers'.  Make it work for any class.
	(cl--generic-typeof-generalizer)
	(cl--generic-oclosure-generalizer): Use it.
	(cl--generic-struct-generalizer): Delete generalizer.
	(cl-generic-generalizers :extra "cl-struct"): Delete method.
	(prefill 0 cl--generic-generalizer): Move to after the typeof.
	(cl-generic-generalizers :extra "typeof"): Rewrite to use classes
	rather than `cl--all-builtin-types'.
	(cl-generic--oclosure-specializers): Delete function.

	* lisp/emacs-lisp/cl-preloaded.el (cl--direct-supertypes-of-type)
	(cl--typeof-types, cl--all-builtin-types): Delete constants.

	* lisp/emacs-lisp/comp-cstr.el (comp--typeof-builtin-types):
	Delete constant.
	(comp--cl-class-hierarchy): Simplify.
	(comp--compute-typeof-types): Simplify now that
	`comp--cl-class-hierarchy' and `comp--all-classes' work for
	built-in types as well.
	(comp--direct-supertypes): Just use `cl--class-parents'.
	(comp-supertypes): Simplify since typeof-types should now be
	complete.

	* lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload): Use
	`superclasses' argument, so we can find parents before it's
	loaded.
	(eieio--class-precedence-c3, eieio--class-precedence-dfs): Don't
	add a `eieio-default-superclass' parent any more.
	(eieio--class/struct-parents): Delete function.
	(eieio--class-precedence-bfs): Use `eieio--class-parents' instead.
	Don't stop when reaching `eieio-default-superclass'.
	(cl--generic-struct-tag): Move from `cl-generic.el'.

2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	eieio-core.el: Always put a parent in the parents of a class

	* lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Always
	put a parent in the `parents' slot of the class.

	* lisp/emacs-lisp/eieio.el (eieio-class-parents): Remove the
	`eieio-default-superclass' if it's the only parent.
	(child-of-class-p): Handle all classes in the parents.
	(eieio-default-superclass): Adjust docstring.

2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	Make "parentless" structs inherit from their builtin type

	* lisp/emacs-lisp/cl-preloaded.el (cl--struct-register-child):
	Register child only in struct parents.
	(cl-struct-define): Put the "type" as parent of parentless :type
	structs.  Copy slots only from struct parent classes.
	(cl-structure-object): Set (manually) its parent to `record' and
	remove assertion that it has no parents.

2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/oclosure.el (oclosure): Make it a subtype of
	`function'.

2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-preloaded.el (built-in-class): New type

	Add classes describing the built-in types.

	* lisp/emacs-lisp/cl-preloaded.el (built-in-class): New type.
	(cl--define-built-in-type): New aux macro.
	(all built-in types): "Define" them with it.
	(cl--builtin-type-p): New aux function.
	(cl--struct-name-p): Use it.
	(cl--direct-supertypes-of-type, cl--typeof-types)
	(cl--all-builtin-types): Move the definitions to after the
	built-in classes are defined, and rewrite to make use of those
	classes.

	* lisp/emacs-lisp/cl-extra.el (cl-describe-type): Accept two
	(unused) optional args, for use with `describe-symbol-backends'.
	(describe-symbol-backends): Simplify accordingly and add ourselves
	at the end.
	(cl--class-children): New function.
	(cl--describe-class): Use it.  Also don't show a silly empty list
	of slots for the built-in types.

2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	comp-cstr.el: Fix a minor error and prepare for upcoming changes

	* lisp/emacs-lisp/comp-cstr.el (comp--cl-class-hierarchy): Add
	`atom' and `t' only to those types whose "allparents" is clearly
	not complete.
	(comp--compute--pred-type-h): Store the cstr rather than the type
	in the hash-table, as expected by `comp--pred-to-cstr'.

2024-03-08  Po Lu  <luangruo@yahoo.com>

	Declare 124 new Android permissions

	* doc/emacs/android.texi (Android Environment): Document new
	permissions and delete recently introduced permissions from the
	list for Android 5.1 and earlier.

	* java/AndroidManifest.xml.in: Declare 124 new permissions to
	enable invoking features they protect from code running inside
	Emacs.

2024-03-08  Jonas Bernoulli  <jonas@bernoul.li>

	Remove reference to long gone which-key-manual-update

	* lisp/which-key.el (which-key--paging-functions): Remove
	reference to which-key-manual-update.

	This command was removed in
	42a25055163141165aa0269dbca69735e704825c.

2024-03-07  Jim Porter  <jporterbugs@gmail.com>

	Support expanding Eshell globs for remote file names

	* lisp/eshell/em-glob.el (eshell-glob-chars-regexp): New
	function...
	(eshell-glob-regexp): ... use it.
	(eshell-glob-p): New function...
	(eshell-glob-convert): ... use it, and return the deepest start
	directory possible.

	* lisp/eshell/esh-util.el (eshell-split-path): Rename to...
	(eshell-split-path): ... this, and account for remote file names.

	* test/lisp/eshell/em-glob-tests.el
	(em-glob-test/convert/current-start-directory)
	(em-glob-test/convert/relative-start-directory)
	(em-glob-test/convert/absolute-start-directory)
	(em-glob-test/convert/remote-start-directory): New tests.
	(bug#69592)

2024-03-07  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key--ignore-non-evil-keys-regexp):
	Remove unnecessary eval-when-compile in regexp-opt.

2024-03-07  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key-hide-alt-key-translations): Replace
	internet link by Info node.

2024-03-07  Justin Burkett  <justin@burkett.cc>

	* lisp/which-key.el (which-key-sort-order): Sharp quote
	which-key-sort-order default.

2024-03-07  Mattias Engdegård  <mattiase@acm.org>

	Revert "Suppress docstring control char warning in macro-generated function"

	This reverts commit eeb89a5cb292bffe40ba7d0b0cf81f82f8452bf8.
	It is no longer needed now that (lambda (...) "string") does not
	have a doc string (bug#69387).

2024-03-07  Mattias Engdegård  <mattiase@acm.org>

	Single string literal in body is return value only, not doc string

	A function or macro body consisting of a single string literal now
	only uses it as a return value.  Previously, it had the dual uses
	as return value and doc string, which was never what the
	programmer wanted and had some inconvenient consequences
	(bug#69387).

	This change applies to `lambda', `defun', `defsubst' and
	`defmacro' forms; most other defining forms already worked in the
	sensible way.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Don't use a
	lone string literal as doc string.
	* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defun.el
	(foo): Update docstring warning test.
	* doc/lispref/functions.texi (Function Documentation): Update.
	* etc/NEWS: Announce.

2024-03-07  Juri Linkov  <juri@linkov.net>

	* lisp/follow.el: Put property 'isearch-scroll' on
	'follow-recenter'.

2024-03-06  Jim Porter  <jporterbugs@gmail.com>

	When navigating through history in EWW, don't keep adding to
	'eww-history'

	This resolves an issue where navigating back and then forward kept
	adding new history entries so you could never hit the "end".

	* lisp/net/eww.el (eww-before-browse-history-function): New
	option.
	(eww-history-position): Add docstring.
	(eww-mode-map, eww-context-menu): Use correct predicates for when
	to enable back/forward.
	(eww-save-history): Save history entry in its original place when
	viewing a historical page.
	(eww--before-browse): New function...
	(eww, eww-follow-link, eww-readable): ... call it.
	(eww-render): Don't set 'eww-history-position' here...
	(eww--before-browse): ... instead, set it here.
	(eww-back-url): Set 'eww-history-position' based on the result of
	'eww-save-history'.
	(eww-forward-url): Set 'eww-history-position' directly, since
	'eww-save-history' no longer adds a new entry in this case.
	(eww-delete-future-history, eww-clone-previous-history): New
	functions.  (bug#69232)

	* test/lisp/net/eww-tests.el: New file.

	* etc/NEWS: Announce this change.

2024-03-06  Michael Albinus  <michael.albinus@gmx.de>

	Tramp fixes after running regression tests on Android

	* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): Unset
	environment variable PS2.

	* lisp/net/tramp-androidsu.el (tramp-default-host-alist): Don't
	add an entry; `tramp-default-host' is set properly.
	(tramp-androidsu-maybe-open-connection): Don't set connection
	property "remote-namespace" to nil, this is the default anyway.
	Don't set connection property "remote-path", we use
	connection-local values instead.  Unset environment variable PS2.
	Dump shell options after setting all of them.
	(tramp-androidsu-handle-make-process): Don't use hard-coded user
	"root".
	(tramp-androidsu-connection-local-default-variables): New defvar.
	Add it to connection-local profiles.

2024-03-06  Andrea Corallo  <acorallo@gnu.org>

	Rename type_hierarchy.* -> elisp_type_hierarchy.*

	* doc/lispref/elisp_type_hierarchy.txt: Renamed.
	* doc/lispref/elisp_type_hierarchy.jpg: Likewise.
	* doc/lispref/Makefile.in (auxfiles)
	($(buildinfodir)/elisp_type_hierarchy.txt)
	($(buildinfodir)/elisp_type_hierarchy.jpg): Update.
	* admin/syncdoc-type-hierarchy.el
	(syncdoc-update-type-hierarchy0): Likewise.
	* Makefile.in (install-info, uninstall): Likewise.

2024-03-06  Andrea Corallo  <acorallo@gnu.org>

	Re-generate type_hierarchy.*

	* doc/lispref/type_hierarchy.txt: Update.
	* doc/lispref/type_hierarchy.jpg: Likewise.

2024-03-06  Andrea Corallo  <acorallo@gnu.org>

	Update syncdoc to dump all preloaded type hierarchy

	* admin/syncdoc-type-hierarchy.el (syncdoc-file)
	(syncdoc-emacs-repo-dir): New constants.
	(syncdoc-lispref-dir): Make use of.
	(syncdoc-all-types): New function.
	(comp--direct-supertypes): Declare.
	(syncdoc-hierarchy): Update.
	(syncdoc-update-type-hierarchy0): Rename from
	'syncdoc-update-type-hierarchy' and make non interactive.
	(syncdoc-update-type-hierarchy): New function.

2024-03-06  Po Lu  <luangruo@yahoo.com>

	Don't report files from read-only adb partitions as writable

	* lisp/net/tramp-adb.el (tramp-adb-handle-file-writable-p): Ignore
	the file-attributes cache, since file mode is not a reliable
	indicator of writability.

2024-03-05  Vincenzo Pupillo  <v.pupillo@gmail.com>

	* Makefile.in (install-info): Fix target.  (bug#69569)

2024-03-05  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-tab-post-select-functions): New hook.
	(bug#69093)
	(tab-bar-select-tab): Call tab-bar-tab-post-select-functions at
	the end.

2024-03-05  Juri Linkov  <juri@linkov.net>

	New property 'context-menu-functions' (bug#62250)

	* lisp/iimage.el (iimage-mode-buffer): Set context-menu-functions
	text property to '(image-context-menu)'.

	* lisp/image.el (image-context-menu): New function.
	(put-image): Set context-menu-functions overlay property to
	'(image-context-menu)'.
	(insert-image, insert-sliced-image): Set context-menu-functions
	text property to '(image-context-menu)'.

	* lisp/mouse.el (context-menu-map): Use mouse-posn-property
	'context-menu-functions' and call its funs at the end.

2024-03-05  Juri Linkov  <juri@linkov.net>

	More fixes for dictionary-new-matching.

	* lisp/net/dictionary.el (dictionary-new-matching): Change the
	order of standard calls to be the same as in
	'dictionary-new-search'.  Use new function
	'dictionary-new-matching-internal'.
	(dictionary-new-matching-internal): New function based on
	'dictionary-new-search-internal'.  (bug#69312)

2024-03-05  Andrea Corallo  <acorallo@gnu.org>

	* Makefile.in (uninstall): Clean-up type_hierarchy* files.

	* Makefile.in (install-info): Install type_hierarchy* files as
	well.

2024-03-05  Andrea Corallo  <acorallo@gnu.org>

	Copy type hierarchy representation to the info dir

	* doc/lispref/Makefile.in (auxfiles)
	($(buildinfodir)/type_hierarchy.txt)
	($(buildinfodir)/type_hierarchy.jpg): New targets.
	($(buildinfodir)/elisp.info): Add dependency.

2024-03-05  Michael Albinus  <michael.albinus@gmx.de>

	Adapt tramp.texi

	* doc/misc/tramp.texi (Quick Start Guide): Add androidsu.
	(Inline methods): Make androidsu an own item.

2024-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	disass.el (disassemble-1): Minor simplification

	* lisp/emacs-lisp/disass.el (disassemble-1): Remove code for
	functions of the form (lambda ARGS (byte-code ...)) which we don't
	use any more nowadays.

2024-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-preloaded.el: Further fine-tuning

	* lisp/emacs-lisp/cl-preloaded.el (cl--direct-supertypes-of-type):
	Fix some left over issues:
	- Remove redundant `number-or-marker' from `marker's parents.
	- Add `function' to the types, since it was missing.
	(cl--typeof-types): Add a warning for missing type info.

	* admin/syncdoc-type-hierarchy.el (syncdoc-hierarchy): Fix parent
	of `oclosure'.

	* doc/lispref/type_hierarchy.txt:
	* doc/lispref/type_hierarchy.jpg: Update.

2024-03-05  Po Lu  <luangruo@yahoo.com>

	Rearrange Android splash screen messages

	* lisp/startup.el (fancy-startup-tail, fancy-startup-screen)
	(normal-splash-screen): Adjust for function renaming; move the
	storage permissions notice to the top of the splash screen.

	* lisp/term/android-win.el (android-after-splash-screen): Rename
	from android-before-splash-screen and adjust layout lightly.

	* src/android.c (android_wc_lookup_string): Terminate character
	composition after a character is returned, whether it contain a
	Unicode character or not.

2024-03-05  Jeremy Bryant  <jb@jeremybryant.net>

	Remove unnecessary :group attributes

	* lisp/which-key.el (which-key-idle-delay):
	(which-key-idle-secondary-delay):
	(which-key-echo-keystrokes):
	(which-key-max-description-length):
	(which-key-min-column-description-width):
	(which-key-add-column-padding):
	(which-key-unicode-correction):
	(which-key-dont-use-unicode):
	(which-key-separator):
	(which-key-ellipsis):
	(which-key-prefix-prefix):
	(which-key-compute-remaps):
	(which-key-replacement-alist):
	(which-key-allow-multiple-replacements):
	(which-key-show-docstrings):
	(which-key-highlighted-command-list):
	(which-key-special-keys):
	(which-key-buffer-name):
	(which-key-show-prefix):
	(which-key-popup-type):
	(which-key-min-display-lines):
	(which-key-max-display-columns):
	(which-key-side-window-location):
	(which-key-side-window-slot):
	(which-key-side-window-max-width):
	(which-key-side-window-max-height):
	(which-key-frame-max-width):
	(which-key-frame-max-height):
	(which-key-allow-imprecise-window-fit):
	(which-key-show-remaining-keys):
	(which-key-sort-order):
	(which-key-sort-uppercase-first):
	(which-key-paging-prefixes):
	(which-key-paging-key):
	(which-key-use-C-h-commands):
	(which-key-show-early-on-C-h):
	(which-key-is-verbose):
	(which-key-preserve-window-configuration):
	(which-key-hide-alt-key-translations):
	(which-key-delay-functions):
	(which-key-allow-regexps):
	(which-key-inhibit-regexps):
	(which-key-show-transient-maps):
	(which-key-init-buffer-hook): Remove :group 'which-key in
	defcustoms.

2024-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	syncdoc-type-hierarchy.el: Adjust to changes in `cl-preloaded.el'

	* admin/syncdoc-type-hierarchy.el (syncdoc-lispref-dir): Use
	`macroexp-file-name'.
	(syncdoc-hierarchy): New var.
	(syncdoc-insert-dot-content, syncdoc-make-type-table): Use it.
	(syncdoc-update-type-hierarchy): Don't crash if `dot' is absent.

2024-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* admin/syncdoc-type-hierarchy.el: Move from `etc'.  AFAICT
	`admin' is where we keep these kinds of files.

2024-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	Revert "Update some native comp tests"

	This reverts commit 4a0d430bdc3650ca3dfd8bdd14781764fbcbdc7e.

	AFAICT that commit was made to accommodate regressions introduced
	in the new `cl-preloaded.el' code and these have been fixed.

2024-03-04  Michael Albinus  <michael.albinus@gmx.de>

	tramp-androidsu.el code cleanup

	* lisp/net/tramp-androidsu.el (tramp-androidsu-generate-wrapper):
	Prefer #' notation for function names.
	(tramp-androidsu-handle-copy-file)
	(tramp-androidsu-handle-file-local-copy)
	(tramp-androidsu-handle-make-symbolic-link)
	(tramp-androidsu-handle-rename-file)
	(tramp-androidsu-handle-write-region): Don't use a wrapper.
	(tramp-adb-connection-local-default-ps-profile): Don't initialize,
	this happens in tramp-db.el.

2024-03-04  Mattias Engdegård  <mattiase@acm.org>

	Revert "Replace XSETSYMBOL with make_lisp_symbol"

	This reverts commit de6b1e1efb1a36c69e7a6e09297e1de5b1477121.

	While it did simplify code, there aren't much in the way of
	technical benefits the change at this time, and there were protest
	against the unwarranted style change.

2024-03-04  Mattias Engdegård  <mattiase@acm.org>

	Repair miscompilation of single-arg `apply' (bug#69533)

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-apply): Don't
	optimize single-argument `apply'; it's a legacy construct.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--test-cases): Add test case.

2024-03-04  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes due to base-less indirect buffer

	* src/buffer.c (Fkill_buffer): Prevent killing a buffer if its
	indirect buffer refuses to be killed.  (Bug#69529)

2024-03-04  Martin Rudalics  <rudalics@gmx.at>

	Fix 'set-window-configuration' and 'window-state-put'

	Fix some bugs with 'window-state-put' (Bug#69093).  Add new hook
	'window-kept-windows-functions' (Bug#68235).

	* doc/lispref/windows.texi (Window Configurations): Mention
	'window-kept-windows-functions'.
	(Window Hooks): Describe new abnormal hook
	'window-kept-windows-functions'.
	* src/marker.c (Fmarker_last_position): New function to return the
	last position of a marker even if its buffer is now dead.
	* src/window.c (Fset_window_configuration): If
	'window-kept-windows-functions' is non-nil, do not delete any
	window whose buffer is now dead but remember all such windows in a
	list to pass to 'window-kept-windows-functions'.  Run
	'window-kept-windows-functions' if it is non-nil.
	(Vwindow_kept_windows_functions): New abnormal hook run by
	Fset_window_configuration and 'window-state-put' with two
	arguments - the frame whose configuration is restored and a list
	of entries for each window whose buffer was found dead during
	restoration.  Each entry is a list of four elements, the window,
	the dead buffer, and the last know positions of the start and
	point of that window.
	* lisp/window.el (window-state-put-kept-windows)
	(window-state-put-selected-window): New variables.
	(window--state-put-2): Make sure buffer is live before restoring
	its state.  Set 'window-state-put-selected-window' to state's
	selected window.  If 'window-kept-windows-functions' is non-nil,
	do not delete any windows whose buffer is found dead but remember
	all such windows in a list to pass to
	'window-kept-windows-functions'.
	(window-state-put): Run 'window-kept-windows-functions' if it is
	non-nil.  Select window recorded in
	'window-state-put-selected-window'.

2024-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(major-mode-remap(-defaults)): New var and function (bug#69191)

	While `major-mode-remap-alist' provides a way for users to
	indicate the major mode of their choice, we need a similar
	variable for the use of packages.

	This patch adds a new `major-mode-remap-defaults' and changes
	various packages to obey it or make use of it.  I think it nicely
	cleans the regexp duplication between CC-mode and `c-ts-mode.el'
	and also makes it easier/cleaner for users to override the changes
	made by `*-ts-mode.el'.

	* lisp/files.el (major-mode-remap-defaults): New variable.
	(major-mode-remap): New function.
	(set-auto-mode-0): Use it.
	* doc/lispref/modes.texi (Auto Major Mode): Document them.

	* lisp/textmodes/tex-mode.el (tex--redirect-to-submode): Use
	`major-mode-remap'.
	(major-mode-remap-defaults): Set it to remap AUCTeX modes by
	default.
	* lisp/progmodes/ruby-ts-mode.el (auto-mode-alist): Leave it
	alone.
	(major-mode-remap-defaults): Set this one instead.
	* lisp/progmodes/c-ts-mode.el (c-or-c++-ts-mode): Use
	`major-mode-remap'.
	(auto-mode-alist): Leave it alone.
	(major-mode-remap-defaults): Set this one instead.
	* lisp/org/ox.el (org-export-to-buffer): Modernize docstring
	accordingly.
	* lisp/progmodes/cc-mode.el (c-or-c++-mode):
	* lisp/org/ox-latex.el (org-latex-export-as-latex):
	* lisp/org/ox-koma-letter.el (org-koma-letter-export-as-latex):
	* lisp/org/ox-beamer.el (org-beamer-export-as-latex): Use
	`major-mode-remap' when available.

2024-03-04  Po Lu  <luangruo@yahoo.com>

	* doc/misc/tramp.texi (Quick Start Guide): Remove documentation
	pertaining to tramp-androidsu.el.
	(Inline methods): Document it here instead.

	* lisp/net/tramp-androidsu.el
	(tramp-androidsu-mount-global-namespace)
	(tramp-androidsu-remote-path, tramp-androidsu-local-shell-name)
	(tramp-androidsu-local-tmp-directory, add-to-list)
	(tramp-androidsu-maybe-open-connection)
	(tramp-androidsu-handle-access-file)
	(tramp-androidsu-handle-add-name-to-file)
	(tramp-androidsu-handle-copy-directory)
	(tramp-androidsu-sh-handle-copy-file)
	(tramp-androidsu-handle-copy-file)
	(tramp-androidsu-adb-handle-delete-directory)
	(tramp-androidsu-handle-delete-directory)
	(tramp-androidsu-adb-handle-delete-file)
	(tramp-androidsu-handle-delete-file)
	(tramp-androidsu-handle-directory-file-name)
	(tramp-androidsu-handle-directory-files)
	(tramp-androidsu-adb-handle-directory-files-and-attributes)
	(tramp-androidsu-handle-directory-files-and-attributes)
	(tramp-androidsu-handle-dired-uncache)
	(tramp-androidsu-adb-handle-exec-path)
	(tramp-androidsu-handle-exec-path)
	(tramp-androidsu-handle-expand-file-name)
	(tramp-androidsu-handle-file-accessible-directory-p)
	(tramp-androidsu-adb-handle-file-attributes)
	(tramp-androidsu-handle-file-attributes)
	(tramp-androidsu-handle-file-directory-p)
	(tramp-androidsu-handle-file-equal-p)
	(tramp-androidsu-adb-handle-file-executable-p)
	(tramp-androidsu-handle-file-executable-p)
	(tramp-androidsu-adb-handle-file-exists-p)
	(tramp-androidsu-handle-file-exists-p)
	(tramp-androidsu-handle-file-group-gid)
	(tramp-androidsu-handle-file-in-directory-p)
	(tramp-androidsu-sh-handle-file-local-copy)
	(tramp-androidsu-handle-file-local-copy)
	(tramp-androidsu-handle-file-locked-p)
	(tramp-androidsu-handle-file-modes)
	(tramp-androidsu-adb-handle-file-name-all-completions)
	(tramp-androidsu-handle-file-name-all-completions)
	(tramp-androidsu-handle-file-name-as-directory)
	(tramp-androidsu-handle-file-name-case-insensitive-p)
	(tramp-androidsu-handle-file-name-completion)
	(tramp-androidsu-handle-file-name-directory)
	(tramp-androidsu-handle-file-name-nondirectory)
	(tramp-androidsu-handle-file-newer-than-file-p)
	(tramp-androidsu-handle-file-notify-add-watch)
	(tramp-androidsu-handle-file-notify-rm-watch)
	(tramp-androidsu-handle-file-notify-valid-p)
	(tramp-androidsu-adb-handle-file-readable-p)
	(tramp-androidsu-handle-file-readable-p)
	(tramp-androidsu-handle-file-regular-p)
	(tramp-androidsu-handle-file-remote-p)
	(tramp-androidsu-handle-file-selinux-context)
	(tramp-androidsu-handle-file-symlink-p)
	(tramp-androidsu-adb-handle-file-system-info)
	(tramp-androidsu-handle-file-system-info)
	(tramp-androidsu-handle-file-truename)
	(tramp-androidsu-handle-file-user-uid)
	(tramp-androidsu-adb-handle-file-writable-p)
	(tramp-androidsu-handle-file-writable-p)
	(tramp-androidsu-handle-find-backup-file-name)
	(tramp-androidsu-handle-insert-directory)
	(tramp-androidsu-handle-insert-file-contents)
	(tramp-androidsu-handle-list-system-processes)
	(tramp-androidsu-handle-load, tramp-androidsu-handle-lock-file)
	(tramp-androidsu-handle-make-auto-save-file-name)
	(tramp-androidsu-adb-handle-make-directory)
	(tramp-androidsu-handle-make-directory)
	(tramp-androidsu-handle-make-lock-file-name)
	(tramp-androidsu-handle-make-nearby-temp-file)
	(tramp-androidsu-make-process)
	(tramp-androidsu-sh-handle-make-symbolic-link)
	(tramp-androidsu-handle-make-symbolic-link)
	(tramp-androidsu-handle-memory-info)
	(tramp-androidsu-handle-process-attributes)
	(tramp-androidsu-adb-handle-process-file)
	(tramp-androidsu-handle-process-file)
	(tramp-androidsu-sh-handle-rename-file)
	(tramp-androidsu-handle-rename-file)
	(tramp-androidsu-adb-handle-set-file-modes)
	(tramp-androidsu-handle-set-file-modes)
	(tramp-androidsu-adb-handle-set-file-times)
	(tramp-androidsu-handle-set-file-times)
	(tramp-androidsu-handle-set-visited-file-modtime)
	(tramp-androidsu-handle-shell-command)
	(tramp-androidsu-handle-start-file-process)
	(tramp-androidsu-handle-substitute-in-file-name)
	(tramp-androidsu-handle-temporary-file-directory)
	(tramp-androidsu-adb-handle-get-remote-gid)
	(tramp-androidsu-handle-get-remote-gid)
	(tramp-androidsu-adb-handle-get-remote-groups)
	(tramp-androidsu-handle-get-remote-groups)
	(tramp-androidsu-adb-handle-get-remote-uid)
	(tramp-androidsu-handle-get-remote-uid)
	(tramp-androidsu-handle-unlock-file)
	(tramp-androidsu-handle-verify-visited-file-modtime)
	(tramp-androidsu-sh-handle-write-region)
	(tramp-androidsu-handle-write-region)
	(tramp-androidsu-file-name-handler-alist): Make hard-coded
	executable and file names defconsts, remove redundant wrapper
	functions and remove names of wrapped functions from their
	wrappers.

2024-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	Revert "ox-texinfo:: Require only TEXINFO_DIR_CATEGORY"

	This reverts commit 5254c582efb3e7171e955dde653e7530d2d3ffef.

2024-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	Revert "Set org-macro-templates more lazily"

	This reverts commit 99483e214fdafa76e8001c7009dff13a76c33f32.

2024-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl--typeof-types): Rework to fix some regressions

	Initialize the variables directly in their declaration, so there
	no time where they exist but aren't yet initialized.  This also
	allows us to mark `cl--typeof-types' as a `defconst' again.

	More importantly, specify the DAG by direct supertypes rather than
	direct subtypes.  This is slightly less compact, but it's
	necessary to let us specify the *order* of the supertypes, which
	is necessary for example to preserve the desired ordering of
	methods when several methods can be applied.

	Fix a few more regressions, such as removing `atom' from the
	parents of `function' since some lists are considered as
	functions, adding `number-or-marker' as supertype of
	`integer-or-marker', and re-adding `native-comp-unit'.

	I carefully compared all elements of `cl--typeof-types' to make
	sure they are the same as before (with one exception for `null').

	* lisp/emacs-lisp/cl-preloaded.el (cl--type-hierarchy): Delete
	var.
	(cl--direct-supertypes-of-type, cl--typeof-types): Initialize
	directly in the declaration.
	(cl--supertypes-lane, cl--supertypes-lanes-res): Delete vars.
	(cl--supertypes-for-typeof-types-rec)
	(cl--supertypes-for-typeof-types): Delete functions.

2024-03-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	Set org-macro-templates more lazily

2024-03-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	ox-texinfo:: Require only TEXINFO_DIR_CATEGORY

	Until now @dircategory/@direntry entries were added only if both
	TEXINFO_DIR_CATEGORY and TEXINFO_DIR_TITLE were set.  And the
	setting of TEXINFO_DIR_TITLE had to be careful to provide exactly
	the right syntax.

	This patch changes various things in this regard:
	- Only require TEXINFO_DIR_CATEGORY in order to generate
	  `@dircategory' and `@direntry'.
	- Use the document title by default if TEXINFO_DIR_DESC is
	  missing.
	- Use the filename by default when TEXINFO_DIR_TITLE is missing.
	- Try and make it harder to provide a direntry that does not
	  have the right format or refers to a different filename than
	  the one we're outputting to.

	* lisp/org/ox-texinfo.el: Remove redundant `:group' arguments.
	Prefer #' to quote function names.
	(org-texinfo-template): Use sane defaults for `@direntry'.

	* doc/misc/org.org (Texinfo specific export settings): Adjust
	accordingly.

2024-03-03  Juri Linkov  <juri@linkov.net>

	* lisp/net/dictionary.el (dictionary-display-match-result): More
	fixes.  Remove 'dictionary-pre-buffer' that was moved to
	'dictionary-new-matching' in the previous commit.  (bug#69312)

2024-03-03  Juri Linkov  <juri@linkov.net>

	* lisp/net/dictionary.el (dictionary-new-matching): Add
	dictionary-pre-buffer.  This is necessary to prepare the
	dictionary buffer for further processing that also includes
	setting buffer-read-only to nil to be able to insert text.
	(bug#69312)

2024-03-03  Andrea Corallo  <acorallo@gnu.org>

	* test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-62):
	Revert change.

2024-03-03  Andrea Corallo  <acorallo@gnu.org>

	Fix 'cl--typeof-types' computation

	* lisp/emacs-lisp/cl-preloaded.el (cl--supertypes-lane)
	(cl--supertypes-lanes-res): Define vars.
	(cl--supertypes-for-typeof-types-rec): Define function.
	(cl--supertypes-for-typeof-types): Reimplement.

2024-03-03  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Use funcall on function values in gnus-agent.el

	* lisp/gnus/gnus-agent.el (gnus-category-make-function-1): Don't
	just pass function values in to be byte compiled, wrap them in
	funcall first.  (bug#68931)

2024-03-03  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key--side-window-max-dimensions):
	Replace member by memq for clarity.

2024-03-03  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key-add-major-mode-key-based-replacements):
	Use declare form instead of put for clarity.

2024-03-02  Juri Linkov  <juri@linkov.net>

	Better handling of messages and errors in dictionary.el

	* lisp/net/dictionary.el (dictionary-do-search)
	(dictionary-do-matching): Insert formatted messages to the top of
	the output buffer instead of displaying transient messages in the
	echo area.  (bug#69312)
	(dictionary-do-matching, dictionary-lookup-definition)
	(dictionary-popup-matching-words): Use 'user-error' instead of
	'error' for non-technical errors.

2024-03-02  Juri Linkov  <juri@linkov.net>

	* lisp/replace.el (perform-replace): Accept default bindings in
	lookup-key.  Set ACCEPT-DEFAULT arg of lookup-key to t.  This will
	allow the users to ignore unbound keys with ‘(define-key
	query-replace-map [t] 'ignore)’.  (bug#69342)

2024-03-02  Juri Linkov  <juri@linkov.net>

	* lisp/buff-menu.el (Buffer-menu-marked-buffers): Add
	save-excursion.

	* doc/lispref/modes.texi (Tabulated List Mode): Unindent example.

2024-03-02  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	ae80192d97b ; * src/buffer.c (Fmake_indirect_buffer): Doc fix.
	2549eabc97f Fix typos in vnvni.el.
	647cecc853e ; * lisp/vc/vc.el (vc-clone): Fix wording of doc string.
	383ccf6d51f Avoid assertion violations in bidi.c
	b7cef701cb5 * lisp/files.el (hack-one-local-variable): Use `set-auto-...
	05308001759 Fix infinite recursion in gdb-mi.el

2024-03-02  Yoshiku Onu  <yoshiku@zoho.com>  (tiny change)

	Add new input method "english-colemak"

	* lisp/leim/quail/latin-post.el ("english-colemak"): New input
	method.  (Bug#69471)

	* etc/NEWS: Announce it.

2024-03-02  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>

	* lisp/language/japanese.el (map): Fix typo.  (bug#69494)

2024-03-02  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>

	Fix Japanese language environment on Cygwin and MS-Windows

	* lisp/language/japan-util.el
	(setup-japanese-environment-internal): Prefer UTF-8 for Cygwin and
	other Posix hosts; prefer Codepage 932 on DOS/Windows.
	(Bug#69493)

2024-03-02  Po Lu  <luangruo@yahoo.com>

	Implement dead key combination on Android

	* src/android.c (android_init_key_character_map)
	(android_get_dead_char): New functions.
	(android_wc_lookup_string): New argument COMPOSE_STATE.  Ignore
	key events with the COMBINING_ACCENT flag set while recording
	their character values there, and combine such characters with the
	key event when processing a subsequent key event.

	* src/androidgui.h (struct android_compose_status): New structure.

	* src/androidterm.c (handle_one_android_event): Port dead key
	combination code from X.  (bug#69321)

2024-03-01  Andrea Corallo  <andcor03@e132096.arm.com>

	* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Define as
	var.

2024-03-01  Wilson Snyder  <wsnyder@wsnyder.org>

	Verilog-mode update from upstream https://github.com/veripool/verilog-mode

	* lisp/progmodes/verilog-mode.el (verilog-auto-inst)
	(verilog-auto-inst-param): Remove intended formfeeds.  Our ability
	to detect unintended formfeeds elsewhere outweighs their limited
	utility here.  Contributed by Mattias Engdegård.
	(verilog-at-constraint-p)
	(verilog-at-struct-mv-p, verilog-at-struct-p, verilog-calc-1)
	(verilog-in-case-region-p, verilog-in-fork-region-p)
	(verilog-in-generate-region-p, verilog-set-auto-endcomments): Fix
	indentation problem when there is a signal named
	"module_something"
	(#1861).  Cleanup RexEx groupings.
	(verilog-read-sub-decls-expr): Fix apostrophe parser in AUTOWIRE
	(#1854) (#1855).
	(verilog-auto-inst-port): Fix AUTOINST multi-dimensional array []
	substitution.  Reported by Caleb Begly.
	(verilog-property-re, verilog-beg-of-statement, verilog-calc-1):
	Concurrent SVA statement pattern-matching learns 'restrict
	property' and 'cover sequence' expression for proper indentation
	around those constructs. This addresses more patterns in IEEE
	1800-2017's 'concurrent_sasertion_statement' grammar.
	(verilog-read-sub-decls-line): Fix `verilog-auto-ignore-concat'
	with parenthesis signals.  Reported by Dmitri Sorkin.
	(verilog-simplify-range-expression): Fix
	`verilog-auto-inst-param-value' confusing structure selects.
	Reported by Mike Bertone.

2024-03-01  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of last change

	* doc/lispref/objects.texi (Type Hierarchy): Fix wording and
	markup.
	* doc/lispref/elisp.texi (Top): Add new node to @detailmenu.

2024-03-01  Andrea Corallo  <acorallo@gnu.org>

	Merge branch 'feature/type-hierarchy' into 'master'

	* doc/lispref/objects.texi (Type Hierarchy): Small improvements.

2024-03-01  Andrea Corallo  <acorallo@gnu.org>

	Fix compilation warning in 'cl--supertypes-for-typeof-types'

	* lisp/emacs-lisp/cl-preloaded.el
	(cl--supertypes-for-typeof-types): Fix warning.

2024-02-29  Juri Linkov  <juri@linkov.net>

	Add tabulated-list-groups and Buffer-menu-group-by (bug#69305)

	* doc/lispref/modes.texi (Tabulated List Mode): Add defvar
	tabulated-list-groups.

	* lisp/buff-menu.el (Buffer-menu-group-by): New defcustom.
	(Buffer-menu-unmark-all-buffers): Use tabulated-list-get-entry to
	check whether the current line contains an entry.
	(list-buffers-noselect): Enable outline-minor-mode for
	tabulated-list-groups.
	(list-buffers--refresh): When Buffer-menu-group-by is non-nil, set
	tabulated-list-groups.
	(Buffer-menu-group-by-mode, Buffer-menu-group-by-root): New
	functions.

	* lisp/emacs-lisp/tabulated-list.el (tabulated-list-groups): New
	buffer-local variable.
	(tabulated-list-print-fake-header): Add distinct overlay property
	'fake-header'.
	(tabulated-list-header-overlay-p): Filter out overlays that don't
	have the property 'fake-header'.
	(tabulated-list-print): Use the variable 'tabulated-list-groups'
	to sort entries in groups separately.
	(tabulated-list-print-entries): New function factored out from
	'tabulated-list-print'.

	* test/lisp/emacs-lisp/tabulated-list-tests.el
	(tabulated-list-groups): New test.

2024-02-29  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of recent changes in comp-run.el

	* lisp/emacs-lisp/comp-run.el
	(native-comp-async-warnings-errors-kind): Rename from
	'native-comp-async-report-warnings-errors-kind', and rename
	'importants' to 'important'; all users changed.  Doc fix.

	* etc/NEWS: Announce the new option.

2024-02-29  Andrea Corallo  <acorallo@gnu.org>

	* etc/TODO (Native compiler improvements): Remove an entry as
	completed.

2024-02-29  Andrea Corallo  <acorallo@gnu.org>

	Add 'native-comp-async-report-warnings-errors-kind'

	* lisp/emacs-lisp/comp-run.el
	(native-comp-async-report-warnings-errors-kind): Add new
	customize.

2024-02-29  Andrea Corallo  <acorallo@gnu.org>

	Improve 'native-comp-async-report-warnings-errors' tag

	* lisp/emacs-lisp/comp-run.el
	(native-comp-async-report-warnings-errors): Improve tag.

2024-02-29  Robert Pluim  <rpluim@gmail.com>

	Pacify more docstring control char warnings

	* lisp/org/org-macs.el (org-split-string): Escape control chars.
	* lisp/org/ox-latex.el (org-latex-guess-babel-language): And here.

2024-02-29  Po Lu  <luangruo@yahoo.com>

	Fix subprocess creation in directories managed by tramp-androidsu

	* lisp/net/tramp-androidsu.el
	(tramp-androidsu-maybe-open-connection): Set connection property
	remote-namespace to t or nil subject to whether su runs in the
	global mount namespace.
	(tramp-androidsu-adb-handle-make-process): Delete function.
	(tramp-androidsu-make-process): New function.
	(tramp-androidsu-file-name-handler-alist): Switch to
	tramp-androidsu-make-process.

2024-02-29  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el: Remove GitHub reference in preparation for
	integration to Emacs core.

2024-02-29  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el (which-key-add-column-padding): Specify more
	precise customization type, natnum instead of integer.

2024-02-28  Andrea Corallo  <acorallo@gnu.org>

	Run syncdoc-type-hierarchy.el to follow obarray type introduction

	* doc/lispref/type_hierarchy.jpg: Update.
	* doc/lispref/type_hierarchy.txt: Likewise.

2024-02-28  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Add
	'symbol-with-pos'.

	* lisp/emacs-lisp/comp.el (comp-known-predicates): Add
	'symbol-with-pos-p'.

2024-02-28  Basil L. Contovounesios  <basil@contovou.net>

	Pacify some docstring control char warnings

	Other instances are discussed in the following thread:
	https://lists.gnu.org/r/emacs-devel/2024-02/msg00797.html

	* lisp/allout.el (allout-command-prefix): Declare :type as
	key-sequence.  Mark up key sequences in docstring.
	* lisp/auth-source.el (auth-source--decode-octal-string):
	* lisp/ffap.el (ffap-search-backward-file-end):
	* lisp/gnus/gnus-art.el (gnus-page-delimiter):
	* lisp/gnus/nnheader.el (nnheader-strip-cr):
	* lisp/proced.el (proced-log):
	* lisp/progmodes/idlw-shell.el (idlwave-shell-prompt-pattern):
	* lisp/url/url-http.el (url-http-clean-headers):
	* lisp/vcursor.el (vcursor-interpret-input): Quote control
	characters in docstrings.

2024-02-28  Michael Albinus  <michael.albinus@gmx.de>

	Revert change in tramp-adb-send-command

	* lisp/net/tramp-adb.el (tramp-adb-send-command): Revert check for
	`tramp-androidsu-method'.  There is no need to restrict the check.

2024-02-28  Liu Hui  <liuhui1610@gmail.com>

	Fix Python shell completion test failures

	* test/lisp/progmodes/python-tests.el
	(python-tests-with-temp-buffer-with-shell): Set XDG_CACHE_HOME
	to a temporary directory.
	(python-tests--pythonstartup-file): New function.
	(python-shell-completion-at-point-jedi-completer)
	(python-shell-completion-at-point-ipython): Use Jedi as the
	native completion backend when possible.  (bug#68559)

2024-02-28  Po Lu  <luangruo@yahoo.com>

	Lift restrictions on `tramp-androidsu's app data access

	* lisp/net/tramp-adb.el (tramp-adb-handle-copy-file): Remove
	code now unnecessary.

	* lisp/net/tramp-androidsu.el
	(tramp-androidsu-mount-global-namespace): New user option.
	(tramp-androidsu-su-mm-supported): New variable.
	(tramp-androidsu-maybe-open-connection): Detect whether su
	supports the -mm option, and provide it if so.
	(tramp-androidsu-adb-handle-copy-file)
	(tramp-androidsu-adb-handle-rename-file): Delete functions.
	(tramp-androidsu-sh-handle-copy-file)
	(tramp-androidsu-sh-handle-rename-file): New functions.
	(tramp-androidsu-file-name-handler-alist): Switch to tramp-sh's
	copy and rename handlers.

2024-02-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	vhdl-mode.el: Reduce use of `eval`

	* lisp/progmodes/vhdl-mode.el (vhdl--re2-region): New function.
	(vhdl--signal-regions-functions): New constant, extracted from
	`vhdl-update-sensitivity-list`.
	(vhdl-update-sensitivity-list): Use it.

2024-02-27  Philip Kaludercic  <philipk@posteo.net>

	Allow vc-git-clone to check-out arbitrary revisions

	* lisp/vc/vc-git.el (vc-git-clone): If "git clone --branch"
	fails, then clone the repository regularly and checkout the
	requested revision.

2024-02-27  Po Lu  <luangruo@yahoo.com>

	Disable process tracing before launching /system/bin/su

	* lisp/net/tramp-androidsu.el
	(tramp-androidsu-maybe-open-connection): Disable process tracing
	around start-process, that the setuid su binary may be started
	regardless of its status.

2024-02-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	tex-mode.el: Increase depth of braces highlighted in $...$ blocks

	* lisp/textmodes/tex-mode.el (tex-font-lock-keywords-1): Increase depth
	of braces supported in $...$ blocks.
	(tex-font-lock-keywords-2, tex-font-lock-syntactic-face-function):
	Refer directly to font-lock faces.

2024-02-26  Mattias Engdegård  <mattiase@acm.org>

	Make tree-sitter tests work installed in .emacs.d/tree-sitter

	* test/Makefile.in (ert_opts):
	Set treesit-extra-load-path, because HOME is not valid when running
	tests from the Makefile (bug#69405).

2024-02-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	(edebug-tests-trivial-comma): Avoid interaction (bug#69406)

	* test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-trivial-backquote):
	Don't use obsolete `edebug-eval-defun`.
	(edebug-tests-trivial-comma): Use `inhibit-read-only`; don't use
	obsolete `edebug-eval-defun`; and fix bug#69406 by binding
	`eval-expression-debug-on-error`.

2024-02-26  Eli Zaretskii  <eliz@gnu.org>

	Fix display of reordered Arabic text

	* src/xdisp.c (compute_stop_pos): Fix a year-old thinko in
	handling auto-composed characters.  It was introduced as part
	of solving bug#62780, which optimized the search for composable
	characters.  (Bug#69384)

2024-02-26  Po Lu  <luangruo@yahoo.com>

	Introduce a new TRAMP method `androidsu'

	* doc/misc/tramp.texi (Quick Start Guide): Document the new
	method.

	* etc/NEWS (Tramp): Announce new method.

	* lisp/net/tramp-adb.el (tramp-adb-handle-file-attributes)
	(tramp-adb-handle-directory-files-and-attributes)
	(tramp-adb-handle-file-name-all-completions): Properly print
	ls's exit status in the presence of a pipe.
	(tramp-adb-handle-copy-file): If the androidsu backend is in
	use, call cp rather than adb push.
	(tramp-adb-send-command): Disable ADB-specific code under
	androidsu.
	(tramp-adb-send-command-and-check): New argument
	COMMAND-AUGMENTED-P.

	* lisp/net/tramp-androidsu.el (tramp, tramp-adb, tramp-sh)
	(tramp-androidsu-method, add-to-list)
	(tramp-androidsu-maybe-open-connection)
	(tramp-androidsu-generate-wrapper)
	(tramp-androidsu-handle-access-file)
	(tramp-androidsu-handle-add-name-to-file)
	(tramp-androidsu-handle-copy-directory)
	(tramp-androidsu-adb-handle-copy-file)
	(tramp-androidsu-adb-handle-delete-directory)
	(tramp-androidsu-adb-handle-delete-file)
	(tramp-androidsu-handle-directory-file-name)
	(tramp-androidsu-handle-directory-files)
	(tramp-androidsu-adb-handle-directory-files-and-attributes)
	(tramp-androidsu-handle-dired-uncache)
	(tramp-androidsu-adb-handle-exec-path)
	(tramp-androidsu-handle-expand-file-name)
	(tramp-androidsu-handle-file-accessible-directory-p)
	(tramp-androidsu-adb-handle-file-attributes)
	(tramp-androidsu-handle-file-directory-p)
	(tramp-androidsu-handle-file-equal-p)
	(tramp-androidsu-adb-handle-file-executable-p)
	(tramp-androidsu-adb-handle-file-exists-p)
	(tramp-androidsu-handle-file-group-gid)
	(tramp-androidsu-handle-file-in-directory-p)
	(tramp-androidsu-sh-handle-file-local-copy)
	(tramp-androidsu-handle-file-locked-p)
	(tramp-androidsu-handle-file-modes)
	(tramp-androidsu-adb-handle-file-name-all-completions)
	(tramp-androidsu-handle-file-name-as-directory)
	(tramp-androidsu-handle-file-name-case-insensitive-p)
	(tramp-androidsu-handle-file-name-completion)
	(tramp-androidsu-handle-file-name-directory)
	(tramp-androidsu-handle-file-name-nondirectory)
	(tramp-androidsu-handle-file-newer-than-file-p)
	(tramp-androidsu-handle-file-notify-add-watch)
	(tramp-androidsu-handle-file-notify-rm-watch)
	(tramp-androidsu-handle-file-notify-valid-p)
	(tramp-androidsu-adb-handle-file-readable-p)
	(tramp-androidsu-handle-file-regular-p)
	(tramp-androidsu-handle-file-remote-p)
	(tramp-androidsu-handle-file-selinux-context)
	(tramp-androidsu-handle-file-symlink-p)
	(tramp-androidsu-adb-handle-file-system-info)
	(tramp-androidsu-handle-file-truename)
	(tramp-androidsu-handle-file-user-uid)
	(tramp-androidsu-adb-handle-file-writable-p)
	(tramp-androidsu-handle-find-backup-file-name)
	(tramp-androidsu-handle-insert-directory)
	(tramp-androidsu-handle-insert-file-contents)
	(tramp-androidsu-handle-list-system-processes)
	(tramp-androidsu-handle-load, tramp-androidsu-handle-lock-file)
	(tramp-androidsu-handle-make-auto-save-file-name)
	(tramp-androidsu-adb-handle-make-directory)
	(tramp-androidsu-handle-make-lock-file-name)
	(tramp-androidsu-handle-make-nearby-temp-file)
	(tramp-androidsu-adb-handle-make-process)
	(tramp-androidsu-sh-handle-make-symbolic-link)
	(tramp-androidsu-handle-memory-info)
	(tramp-androidsu-handle-process-attributes)
	(tramp-androidsu-adb-handle-process-file)
	(tramp-androidsu-adb-handle-rename-file)
	(tramp-androidsu-adb-handle-set-file-modes)
	(tramp-androidsu-adb-handle-set-file-times)
	(tramp-androidsu-handle-set-visited-file-modtime)
	(tramp-androidsu-handle-shell-command)
	(tramp-androidsu-handle-start-file-process)
	(tramp-androidsu-handle-substitute-in-file-name)
	(tramp-androidsu-handle-temporary-file-directory)
	(tramp-androidsu-adb-handle-get-remote-gid)
	(tramp-androidsu-adb-handle-get-remote-groups)
	(tramp-androidsu-adb-handle-get-remote-uid)
	(tramp-androidsu-handle-unlock-file)
	(tramp-androidsu-handle-verify-visited-file-modtime)
	(tramp-androidsu-handle-write-region)
	(tramp-androidsu-file-name-handler-alist)
	(tramp-androidsu-file-name-p, tramp-androidsu-file-name-handler)
	(tramp-register-foreign-file-name-handler)
	(tramp-adb-connection-local-default-ps-profile, shell)
	(tramp-unload-hook, tramp-androidsu): New file.

2024-02-26  Jeremy Bryant  <jb@jeremybryant.net>

	Remove unnecessary eval-when-compile from definition

	* lisp/which-key.el (which-key--ignore-keys-regexp):  Remove eval-when-compile.

2024-02-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/vc/vc-hooks.el (vc-mode): Give a body to the function (bug#69387)

2024-02-25  Michael Albinus  <michael.albinus@gmx.de>

	Modify last change acc to comments

	* lisp/simple.el (read-passwd-mode): Change `text' entry of icons.
	(read-passwd-toggle-visibility): Rename.
	(read-passwd-mode):
	* lisp/subr.el (read-passwd-map): Adapt callees.

2024-02-25  Michael Albinus  <michael.albinus@gmx.de>

	'read-passwd' can toggle the visibility of passwords

	* doc/lispref/minibuf.texi (Reading a Password):
	* etc/NEWS: 'read-passwd' can toggle the visibility of passwords.

	* etc/images/README: Mention the new images below.
	* etc/images/conceal.pbm:
	* etc/images/conceal.svg:
	* etc/images/reveal.pbm:
	* etc/images/reveal.svg: New images.

	* lisp/simple.el (read-passwd--mode-line-buffer)
	(read-passwd--mode-line-icon): New defvars.
	(read-passwd--toggle-visibility, read-passwd-mode): New defuns.

	* lisp/subr.el (read-passwd-map): Add 'TAB' binding.
	(read-passwd--hide-password): New defvar.
	(read-passwd--hide-password): Rename function from
	`read-password--hide-password'.  Adapt callees.  Implement both
	hiding and showing the password.  (Bug#69237)
	(read-passwd): Call `read-passwd-mode'.

2024-02-25  Michael Heerdegen  <michael_heerdegen@web.de>

	Don't warn about _ not left unused in if-let and alike

	The macro expansions did not leave a variable _ unused; this triggered
	an irritating compiler warning (bug#69108).

	* lisp/subr.el (internal--build-binding): Handle bindings of the form
	(_ EXPR) separately.

2024-02-25  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el (project-any-command): Allow local keymaps.

	Use overriding-terminal-local-map instead of overriding-local-map.
	This allows using keys from local maps (bug#69242).

2024-02-25  Eli Zaretskii  <eliz@gnu.org>

	* nt/cmdproxy.c (_snprintf) [_UCRT]: Redirect to 'snprintf'.

2024-02-25  Po Lu  <luangruo@yahoo.com>

	Arrange for dialog boxes during emacsclient requests on Android

	* lisp/server.el (server-execute): Bind use-dialog-box-override
	if (featurep 'android).

	* lisp/subr.el (use-dialog-box-override): New option.
	(use-dialog-box-p): Always display dialog boxes if variable is
	set.

2024-02-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/elisp-mode.el (eval-last-sexp, eval-defun): Fix thinko

	* etc/NEWS.25: Add 'obarrayp' as well

	* etc/NEWS.25: Add missing announcement of 'obarray' package

2024-02-24  Mattias Engdegård  <mattiase@acm.org>

	Replace XSETSYMBOL with make_lisp_symbol

	* src/lisp.h (XSETSYMBOL): Remove.  All callers changed to use
	make_lisp_symbol.

2024-02-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/editfns.c (Fget_pos_property): Fix thinko (bug#69358)

2024-02-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	(diff-refine-nonmodified): Complete the implementation

	* lisp/vc/diff-mode.el (diff--refine-hunk): Implement
	`diff-refine-nonmodified` for old-style-context and "normal" diffs.

2024-02-24  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	01ebc95114f Fix 'help-quick-toggle'
	afe49c7e2a2 ; * admin/authors.el (authors-aliases): Fix last change.
	8b1f10f8cf4 ; Normalize Morgan Smith's attributions.
	70cf4b694b3 ; * etc/PROBLEMS: Describe input lags due to GTK IM (bug#...
	f28a557c7d4 * doc/lispref/modes.texi (Tabulated List Mode): Update.
	d6131b5902a * lisp/net/tramp.el (tramp-methods): Fix typo in docstrin...
	2eb85a9de1a ; * lisp/emacs-lisp/pcase.el (pcase-let*, pcase-let): Ano...
	4c6653f23ae ; * lisp/emacs-lisp/pcase.el (pcase-let*, pcase-let): Doc...
	5a64d2c7595 java-ts-mode: Indentation for opening brace on a separate...
	9e56bd5ed87 Removed decommissioned PGP keyservers
	e56f0ef51bf org: Fix security prompt for downloading remote resource
	65ba3274652 Revert "Update to Org 9.6.19"
	07a392f445e Update to Org 9.6.19

2024-02-24  Mattias Engdegård  <mattiase@acm.org>

	Suppress docstring control char warning in macro-generated function

	* lisp/progmodes/cc-defs.el (c-lang-defconst):
	Make sure that `val` won't be treated as a docstring.

2024-02-24  Philip Kaludercic  <philipk@posteo.net>

	Add sml-mode entry to 'eglot-server-programs'

	* lisp/progmodes/eglot.el (eglot-server-programs): Use the
	"millet" LSP server (https://github.com/azdavis/millet).

2024-02-24  Spencer Baugh  <sbaugh@janestreet.com>

	Check daemon is initialized before suppressing its init errors

	Previously, the default error handler would correctly suppress
	unhandled errors raised when IS_DAEMON and the initial frame
	was current, since this is the normal state of operation for a
	daemon-mode Emacs.  However, this also incorrectly suppressed
	errors raised while a daemon-mode Emacs was starting up.

	Now, errors raised while a daemon-mode Emacs is starting up will be
	handled just like errors when a non-daemon Emacs is starting up.

	This was previously the case before changes for bug#1310 and
	bug#1836, which added the suppression of errors when IS_DAEMON.
	DAEMON_RUNNING didn't exist at the time of those changes, but now
	it does, so we can do better.

	* src/keyboard.c (Fcommand_error_default_function): Check
	!DAEMON_RUNNING in addition to IS_DAEMON.  (Bug#68799)
	* src/lisp.h (DAEMON_RUNNING): Add a clarifying comment about
	what this #define means.

2024-02-24  Spencer Baugh  <sbaugh@janestreet.com>

	Add context to errors thrown by server-start during startup

	When server-start errors during startup, the error is printed to
	the terminal without context.  To help the user understand
	better what went wrong, that printed error now mentions that the
	error came from starting up the daemon.

	* lisp/startup.el (command-line): Catch and annotate errors
	thrown by server-start.  (bug#68799)

2024-02-24  Po Lu  <luangruo@yahoo.com>

	* configure.ac: Detect renameat2 with gl_CHECK_FUNCS_ANDROID.

2024-02-24  Emanuel Berg  <incal@dataswamp.org>

	Make erc-cmd-AMSG session local; add /GMSG, /AME and /GME

	* etc/ERC-NEWS: Mention new slash commands.
	* lisp/erc/erc.el (erc-cmd-AMSG): Make it consistent with the doc
	string by only affecting the current connection.
	(erc-cmd-GMSG, erc-cmd-AME, erc-cmd-GME): New IRC slash commands.
	* test/lisp/erc/erc-scenarios-misc-commands.el
	(erc-scenarios-misc-commands--AMSG-GMSG-AME-GME): New test.
	* test/lisp/erc/resources/commands/amsg-barnet.eld: New file.
	* test/lisp/erc/resources/commands/amsg-foonet.eld: New file.
	(Bug#68401)

2024-02-24  Po Lu  <luangruo@yahoo.com>

	Fix bug#69321

	* java/org/gnu/emacs/EmacsWindow.java (onKeyDown, onKeyUp):
	Provide Right Alt (Alt Gr) masks to system keymap routines.
	(bug#69321)

2024-02-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	diff-mode.el (diff-refine-nonmodified): New option

	* lisp/vc/diff-mode.el (diff-font-lock-keywords): Refer directly to
	font-lock faces.
	(diff-apply-hunk): Use `user-error` for errors usually not due to bugs.
	(diff--refine-propertize): New function.
	(diff-refine-nonmodified): New custom var (bug#61396).
	(diff--refine-hunk): Use them.

2024-02-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	elisp-mode.el: Use `handler-bind` instead of `debug-on-error`

	* lisp/progmodes/elisp-mode.el (elisp-enable-lexical-binding):
	Don't get fooled by a global binding of `lexical-binding` to t.
	(elisp--eval-last-sexp-fake-value): Delete var.
	(elisp--eval-defun): Don't let-bind `debug-on-error` since it's
	already arranged by the only caller.
	(eval-last-sexp, eval-defun): Use `handler-bind` instead of
	`debug-on-error`.

2024-02-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/mail/rmail.el (rmail-resend): Use `with-syntax-table`

2024-02-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	rmail.el: Prefer #' to quote function names

	* lisp/mail/rmail.el (rmail-pop-to-buffer, rmail-mode-map)
	(rmail-mode-1, rmail-generate-viewer-buffer, rmail-variables)
	(rmail-find-all-files, rmail-insert-inbox-text)
	(rmail-set-message-counters, rmail-only-expunge, rmail-reply)
	(rmail-resend, rmail-fontify-buffer-function)
	(rmail-unfontify-buffer-function, rmail-install-speedbar-variables)
	(after-save-hook): Use #' where applicable.

2024-02-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	(rmail-font-lock-keywords): Avoid old-style `font-lock*-face` variables

	* lisp/mail/rmail.el (rmail-font-lock-keywords): Refer directly to the
	font-lock faces.

2024-02-23  Robert A. Burks  <rburksdev@gmail.com>  (tiny change)

	Fix Flymake lighter tool-tip from generating errors

	Flymake tool-tip was generating errors on mouse over of
	mode-line lighter on inactive windows and on the minor mode
	indicator in the describe-mode Help page.
	* lisp/progmodes/flymake.el (flymake--mode-line-title):
	'help-echo' now uses buffer local state and makes null
	check.  (Bug#69248)

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	Warn about docstrings with control characters

	It is easy to include control chars in doc strings by mistake, and the
	result is often an unreadable mess.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types)
	(byte-compile-warnings, byte-compile--docstring-style-warn):
	Add `docstrings-control-chars` warning.
	* etc/NEWS: Announce.

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	Replace use of obsolete eshell-kill-output in test

	* test/lisp/eshell/eshell-tests.el (eshell-test/flush-output):
	Use eshell-delete-output instead of eshell-kill-output.

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	Update NEWS and manual after obarray changes

	* doc/lispref/abbrevs.texi (Abbrev Tables):
	* doc/lispref/symbols.texi (Creating Symbols):
	* doc/lispref/objects.texi (Type Predicates): Update text for obarray
	now being an opaque type.
	* etc/NEWS: Announce.

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	Use the new obarray type for the initial obarray

	This can improve performance a lot, especially after the obarray has
	been fed many symbols.

	* src/lread.c (OBARRAY_SIZE): Remove.
	(load_path_check): Create an obarray object instead of a vector.

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	Add a proper type for obarrays

	The new opaque type replaces the previous use of vectors for obarrays.
	`obarray-make` now returns objects of this type.  Functions that take
	obarrays continue to accept vectors for compatibility, now just using
	their first slot to store an actual obarray object.

	obarray-size and obarray-default-size now obsolete.

	* lisp/obarray.el (obarray-default-size, obarray-size):
	Declare obsolete.
	(obarray-make, obarrayp, obarray-clear): Remove from here.
	* src/fns.c (reduce_emacs_uint_to_hash_hash): Remove from here.
	* src/lisp.h (struct Lisp_Obarray, OBARRAYP, XOBARRAY, CHECK_OBARRAY)
	(make_lisp_obarray, obarray_size, check_obarray)
	(obarray_iter_t, make_obarray_iter, obarray_iter_at_end)
	(obarray_iter_step, obarray_iter_symbol, DOOBARRAY, knuth_hash): New.
	(reduce_emacs_uint_to_hash_hash): Moved here.
	* src/lread.c (check_obarray): Renamed and reworked as...
	(checked_obarray_slow): ...this.
	(intern_sym, Funintern, oblookup, map_obarray)
	(Finternal__obarray_buckets): Adapt to new type.
	(obarray_index, allocate_obarray, make_obarray, grow_obarray)
	(obarray_default_bits, Fobarray_make, Fobarrayp, Fobarray_clear): New.
	* etc/emacs_lldb.py (Lisp_Object):
	* lisp/emacs-lisp/cl-macs.el (`(,type . ,pred)):
	* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types):
	* lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers):
	* lisp/emacs-lisp/comp.el (comp-known-predicates):
	* src/alloc.c (cleanup_vector, process_mark_stack):
	* src/data.c (Ftype_of, syms_of_data):
	* src/minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
	* src/pdumper.c (dump_obarray_buckets, dump_obarray, dump_vectorlike):
	* src/print.c (print_vectorlike_unreadable):
	* test/lisp/abbrev-tests.el (abbrev-make-abbrev-table-test):
	* test/lisp/obarray-tests.el (obarrayp-test)
	(obarrayp-unchecked-content-test, obarray-make-default-test)
	(obarray-make-with-size-test):
	Adapt to new type.

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	Add obarray-clear and use it

	* lisp/obarray.el (obarray-clear): New.
	* lisp/abbrev.el (clear-abbrev-table):
	* lisp/vc/vc.el (vc-clear-context): Use it instead of assuming the
	obarray is a vector that can be 0-filled.
	* test/lisp/obarray-tests.el (obarray-clear): New test.

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	Use obarrayp, not vectorp, to detect obarrays

	* lisp/abbrev.el (abbrev--active-tables):
	* lisp/mail/mailabbrev.el (mail-abbrevs-setup, build-mail-abbrevs)
	(define-mail-abbrev, mail-resolve-all-aliases)
	(mail-abbrev-insert-alias):
	* lisp/mail/rmail.el (rmail-resend):
	* lisp/minibuffer.el (completion-table-with-context):
	* lisp/progmodes/etags.el (etags-tags-apropos-additional):
	(etags--xref-apropos-additional):
	Use obarrayp as predicate for obarrays.

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	Use obarray-make instead of make-vector to create obarrays

	This prepares for the introduction of an actual obarray type.

	* lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-dynamic-map)
	(semantic-lex-spp-dynamic-map-stack, semantic-lex-make-spp-table):
	* lisp/cedet/semantic/lex.el (semantic-lex-make-keyword-table)
	(semantic-lex-make-type-table):
	* lisp/completion.el (cmpl-prefix-obarray, cmpl-obarray)
	(clear-all-completions):
	* lisp/emacs-lisp/checkdoc.el (checkdoc-defun-info):
	* lisp/emacs-lisp/eldoc.el (eldoc-message-commands)
	(eldoc-edit-message-commands):
	* lisp/mail/mail-extr.el (mail-extr-all-top-level-domains):
	* lisp/mail/rmailkwd.el (rmail-label-obarray):
	* lisp/net/dns.el (dns-cache):
	* lisp/net/eww.el (eww-suggested-uris):
	* lisp/net/imap.el (imap-open, imap-mailbox-select-1)
	(imap-message-copyuid-1, imap-message-appenduid-1):
	* lisp/obsolete/pgg.el (pgg-passphrase-cache, pgg-pending-timers):
	* lisp/play/cookie1.el (cookie-cache):
	* lisp/progmodes/cc-defs.el (c-lang-constants, c-define-lang-constant):
	* lisp/progmodes/cc-langs.el (c-keywords-obarray):
	* lisp/vc/vc-hooks.el (vc-file-prop-obarray):
	* test/lisp/obarray-tests.el (obarrayp-test):
	* test/src/minibuf-tests.el (minibuf-tests--strings-to-obarray):
	Use obarray-make instead of obarray-make.

2024-02-23  Andrea Corallo  <acorallo@gnu.org>

	* src/pdumper.c (dump_subr): Rename 'native_comp' -> 'non_primitive'.

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	* src/fns.c (sxhash_bignum): Include sign bit in hash.

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	* src/fns.c (hash_string): Suppress warning on 32-bit platforms

	Remove a shift-too-wide complaint by GCC in code that is never reached
	on platforms where that shift is too wide.

2024-02-23  Mattias Engdegård  <mattiase@acm.org>

	Tone down python-mode warning to a simple message (bug#68559)

	* lisp/progmodes/python.el
	(python-shell-completion-native-turn-on-maybe):
	There is no need for an alarming warning when using an inferior Python
	without GNU readline; a calm message will do.

2024-02-23  Po Lu  <luangruo@yahoo.com>

	Fix bug#69140

	* src/window.c (grow_mini_window): Don't adjust frame matrices
	or force redisplay if the provided window cannot be
	resized.  (bug#69140)

2024-02-22  Andrea Corallo  <acorallo@gnu.org>

	* Fix 'parse-colon-path' entry in 'comp-known-type-specifiers'

	* lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers): Fix
	'parse-colon-path'.

2024-02-22  Juri Linkov  <juri@linkov.net>

	* lisp/help-fns.el (describe-mode-outline): New user option (bug#64684).

	(describe-mode, describe-mode--minor-modes): Use 'describe-mode-outline'.

	* lisp/help-mode.el (help-setup-xref): After disabling outline-minor-mode
	also kill all outline-related local variables.  So that they won't affect
	the output of other help commands in the same help buffer.

2024-02-22  Jörg Bornemann  <foss@jbornemann.de>

	Recognize functions and macros as defuns in 'cmake-ts-mode'

	* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode--function-name):
	Renamed to 'cmake-ts-mode--defun-name' since the function handles
	now functions and macros.
	(cmake-ts-mode--defun-name): Return text of the first 'argument'
	node below 'function_def' and 'macro_def' nodes.
	(cmake-ts-mode): Set up treesit-defun-type-regexp and
	'treesit-defun-name-function'.  Change the imenu setup to
	recognize macros too.  Since we have set up
	'treesit-defun-name-function', we don't have to
	pass 'cmake-ts-mode--function-name' anymore.  (Bug#69186)

	To make `treesit-defun-at-point' work properly, we have to recognize
	function_def/macro_def nodes, not the lower-level *_command nodes.

2024-02-22  Po Lu  <luangruo@yahoo.com>

	Enable inotify on systems with inotify_init yet no init1 variant

	* configure.ac (HAVE_INOTIFY): Check for the presence of
	inotify_init in addition to inotify_init1.

	* src/inotify.c (Finotify_add_watch): Implement with
	inotify_init if inotify_init1 is absent.

2024-02-21  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp.el (comp--compute-function-types): Fix missing doc.

2024-02-21  Andrea Corallo  <acorallo@gnu.org>

	* Add few missing entries in 'comp-known-predicates'

	* lisp/emacs-lisp/comp.el (comp-known-predicates): Add framep, markerp,
	number-or-marker-p, overlayp, processp, subrp and windowp and sort it
	alphabetically.

2024-02-21  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp-cstr.el (comp-cstr): Rename constructors.

2024-02-21  Andrea Corallo  <acorallo@gnu.org>

	* Make 'comp--compute-function-types' a pass

	* lisp/emacs-lisp/comp.el (comp-passes): Add comp--compute-function-types.
	(comp--compute-function-types): New function.
	(comp--compute-function-type): Move it.
	(comp--final): Update it.

2024-02-21  Eli Zaretskii  <eliz@gnu.org>

	Remove redundant call to 'eln_load_path_final_clean_up'

	* src/emacs.c (shut_down_emacs): Remove redundant call to
	'eln_load_path_final_clean_up'.  We call it from 'kill-emacs'
	right before the call to 'exit'.

2024-02-21  kobarity  <kobarity@gmail.com>

	Set tty mode to raw when setting up Inferior Python

	* lisp/progmodes/python.el (python-shell-setup-code): New constant.
	(python-shell-comint-watch-for-first-prompt-output-filter): Send
	`python-shell-setup-code' to the Inferior Python process.
	* test/lisp/progmodes/python-tests.el (python-ffap-module-path-1):
	Eliminate skipping on Mac. (Bug#68559)

2024-02-21  Po Lu  <luangruo@yahoo.com>

	* java/org/gnu/emacs/EmacsContextMenu.java (display): Reduce timeout.

2024-02-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/map.el (map--make-pcase-bindings): Fix use in Emacs<30

2024-02-21  Po Lu  <luangruo@yahoo.com>

	Work around premature dismissals of submenus under Android

	* java/org/gnu/emacs/EmacsContextMenu.java (display): If between
	HONEYCOMB and N, set wasSubmenuSelected.

2024-02-21  Justin Burkett  <justin@burkett.cc>

	Disentangle third party libraries (but keep support for now)

	Add `which-key-inhibit-display-hook' to allow third-party libraries to prevent
	which-key from displaying in certain circumstances. Add
	`which-key-this-command-keys-function' as a customizable variable to allow
	third-party libraries to teach which-key about custom symbols they insert into
	the key sequence.

	Add `which-key-evil-this-operator-p', `which-key-god-mode-self-insert-p' and
	`which-key--god-mode-this-command-keys' to provide support for god-mode and evil
	using the new mechanisms.

2024-02-21  Justin Burkett  <justin@burkett.cc>

	Remove "Internal" from docstrings of defvars

	The internal status is implied by the double hyphen in the name.

2024-02-21  Jeremy Bryant  <jb@jeremybryant.net>

	Bump year to 2024

	* lisp/which-key.el:  Bump year

2024-02-21  Jeremy Bryant  <jb@jeremybryant.net>

	Simplify test for empty list

	* lisp/which-key.el (which-key--show-keymap):  Use (null)

2024-02-21  Jeremy Bryant  <jb@jeremybryant.net>

	Mention affected settings of which-key-dont-use-unicode

	* lisp/which-key.el (which-key-separator):  Improve docstring

2024-02-20  Jonas Bernoulli  <jonas@bernoul.li>

	Do not attempt to check declarations in lock files

	* lisp/emacs-lisp/check-declare.el (check-declare-directory): Do
	not attempt to check declarations in lock files.  (Bug#69084)

2024-02-20  Jonas Bernoulli  <jonas@bernoul.li>

	Allow trivially autoloading uses of transient's define macros

	Since 49e41991b2f transient-define-prefix itself was autoloaded, but
	that meant that when ever an autoload file was loaded, which contained
	an autoload for a command defined using that macro, transient itself
	had to be loaded.

	That shouldn't be necessary.  For commands using these macros, an
	autoload that is identical to what would have been generated if it
	had been defined using defun, works just fine.

	* lisp/emacs-lisp/loaddefs-gen.el
	(loaddefs-generate--make-autoload): Allow uses of
	transient-define-prefix, transient-define-suffix,
	transient-define-infix and transient-define-argument
	to be autoloaded using just ";;;autoload".

	* lisp/transient.el (transient-define-prefix): No longer autoload.

2024-02-20  Andrea Corallo  <acorallo@gnu.org>

	* Fix missing entry in 'cl--typeof-types'

	* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add
	'native-comp-unit'.

2024-02-20  Jonas Bernoulli  <jonas@bernoul.li>

	Make find-function-regexp also find transient-define-*

	* lisp/emacs-lisp/find-func.el (find-function-regexp): Also find
	transient-define-prefix, transient-define-suffix,
	transient-define-infix and transient-define-argument.

2024-02-20  Jeremy Bryant  <jb@jeremybryant.net>

	Add a :version tag to all defcustom's and defface's

	* lisp/which-key.el: add :version tag to all following
	(which-key-idle-delay):
	(which-key-idle-secondary-delay):
	(which-key-echo-keystrokes):
	(which-key-max-description-length):
	(which-key-min-column-description-width):
	(which-key-add-column-padding):
	(which-key-unicode-correction):
	(which-key-dont-use-unicode):
	(which-key-separator):
	(which-key-ellipsis):
	(which-key-prefix-prefix):
	(which-key-compute-remaps):
	(which-key-replacement-alist):
	(which-key-allow-multiple-replacements):
	(which-key-show-docstrings):
	(which-key-highlighted-command-list):
	(which-key-special-keys):
	(which-key-buffer-name):
	(which-key-show-prefix):
	(which-key-popup-type):
	(which-key-min-display-lines):
	(which-key-max-display-columns):
	(which-key-side-window-location):
	(which-key-side-window-slot):
	(which-key-side-window-max-width):
	(which-key-side-window-max-height):
	(which-key-frame-max-width):
	(which-key-frame-max-height):
	(which-key-allow-imprecise-window-fit):
	(which-key-show-remaining-keys):
	(which-key-sort-order):
	(which-key-sort-uppercase-first):
	(which-key-paging-prefixes):
	(which-key-paging-key):
	(which-key-use-C-h-commands):
	(which-key-show-early-on-C-h):
	(which-key-is-verbose):
	(which-key-preserve-window-configuration):
	(which-key-hide-alt-key-translations):
	(which-key-delay-functions):
	(which-key-allow-regexps):
	(which-key-inhibit-regexps):
	(which-key-show-transient-maps):
	(which-key-init-buffer-hook):
	(which-key-key-face):
	(which-key-separator-face):
	(which-key-note-face):
	(which-key-command-description-face):
	(which-key-local-map-description-face):
	(which-key-highlighted-command-face):
	(which-key-group-description-face):
	(which-key-special-key-face):
	(which-key-docstring-face):
	(which-key-custom-popup-max-dimensions-function):
	(which-key-custom-hide-popup-function):
	(which-key-custom-show-popup-function):
	(which-key-lighter):
	(which-key-allow-evil-operators):
	(which-key-show-operator-state-maps):

2024-02-20  Michael Albinus  <michael.albinus@gmx.de>

	Add Tramp methods dockercp and podmancp

	* doc/misc/tramp.texi (External methods):  Add dockercp and podmancp.

	* etc/NEWS: Add Tramp methods "dockercp" and "podmancp".

	* lisp/net/tramp.el (tramp-handle-make-process):
	* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
	(tramp-maybe-open-connection):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file)
	(tramp-sshfs-maybe-open-connection):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command): Adapt
	`tramp-expand-args' calls.

	* lisp/net/tramp-container.el (tramp-dockercp-method)
	(tramp-podmancp-method): New defconst.
	(tramp-methods) <dockercp, podmancp>: Add new methods.
	(tramp-container--completion-function): Adapt docstring.  Use it
	for "dockercp" and "podmancp" completion.

	* lisp/net/tramp.el (tramp-get-remote-tmpdir):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
	* lisp/net/tramp-sh.el (tramp-maybe-open-connection): Use a default
	value with `tramp-get-method-parameter'.

	* lisp/net/tramp-sh.el (tramp-methods) <nc>: Add `tramp-copy-file-name'.
	(tramp-default-copy-file-name): New defconst.
	(tramp-make-copy-file-name): Rename from
	`tramp-make-copy-program-file-name'.  Use method parameter
	`tramp-copy-file-name'.  (Bug#69085)
	(tramp-do-copy-or-rename-file-out-of-band): Adapt callees.

	* lisp/net/tramp.el (tramp-methods): Adapt docstring.
	(tramp-get-method-parameter, tramp-expand-args): New optional
	argument DEFAULT.

	* test/lisp/net/tramp-tests.el (tramp--test-container-p): Adapt.
	(tramp--test-container-oob-p): New defun.
	(tramp-test17-dired-with-wildcards, tramp-test35-remote-path)
	(tramp-test41-special-characters): Use it.
	(tramp--test-set-ert-test-documentation): Use `split-string'.

2024-02-19  Philip Kaludercic  <philipk@posteo.net>

	Allow attaching files at point using 'gnus-dired-attach'

	* lisp/gnus/gnus-dired.el (gnus-dired-attach-at-end): Add option.
	(gnus-dired-attach): Respect it.
	* doc/misc/gnus.texi (Other modes): Document it.  (Bug#69141)

2024-02-19  Andrea Corallo  <acorallo@gnu.org>

	* etc/syncdoc-type-hierarchy.el (syncdoc-lispref-dir): Clean-up.

	* etc/syncdoc-type-hierarchy.el: Update comment.

2024-02-19  Andrea Corallo  <acorallo@gnu.org>

	Make type hierarchy textual representation a table

	* etc/syncdoc-type-hierarchy.el (syncdoc-make-type-table): New function.
	(syncdoc-update-type-hierarchy): Make use of.
	* doc/lispref/type_hierarchy.txt: Regenerate.

2024-02-19  Mattias Engdegård  <mattiase@acm.org>

	Slight switch byte op speedup

	* src/bytecode.c (exec_byte_code): Hoist symbols_with_pos_enabled check
	from fast loop, and eliminate the initial index check.

2024-02-19  Mattias Engdegård  <mattiase@acm.org>

	Replace XSET_HASH_TABLE with make_lisp_hash_table

	* src/lisp.h (XSET_HASH_TABLE): Remove, replace with...
	(make_lisp_hash_table): ...this.  All callers adapted.

2024-02-19  Mattias Engdegård  <mattiase@acm.org>

	Check shortdoc keywords and fix one mistake

	* lisp/emacs-lisp/shortdoc.el (shortdoc--check)
	(define-short-documentation-group): Check that used keywords exist.
	* lisp/emacs-lisp/shortdoc.el (list): Fix a typo.

2024-02-19  Ihor Radchenko  <yantar92@posteo.net>

	* test/src/eval-tests.el (eval-tests/default-value): Add new test case.

	Bug#66117

2024-02-19  Yuan Fu  <casouri@gmail.com>

	Don't update ranges for the whole buffer in treesit--pre-redisplay

	* lisp/treesit.el (treesit--pre-redisplay): Only update two
	screen-full of text around point.

2024-02-19  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Back out part of commit db5e84af202

	* lisp/gnus/gnus-agent.el (gnus-category-make-function-1): This code is
	untested and was not meant to be part of the earlier commit.

2024-02-18  Andrea Corallo  <acorallo@gnu.org>

	Fix typo in 'cl--type-hierarchy'

	* lisp/emacs-lisp/cl-preloaded.el (cl--type-hierarchy): Fix typo.
	* doc/lispref/type_hierarchy.txt: Regenerate.
	* doc/lispref/type_hierarchy.jpg: Likewise.

2024-02-18  Paul Eggert  <eggert@cs.ucla.edu>

	Use -Wanalyzer-deref-before-check in GCC 14

	* src/marker.c: Work around GCC bug 113253 only if GCC 13.
	The GCC bug reportedly will be fixed in GCC 14.

2024-02-18  Paul Eggert  <eggert@cs.ucla.edu>

	Do not ignore -Wanalyzer-allocation-size in GCC 14

	* src/lisp.h (SAFE_ALLOCA_LISP_EXTRA): Use pragma to ignore the
	warning only in GCC 13, as the GCC developers say GCC bug 109577
	is fixed in GCC 14.

2024-02-18  Paul Eggert  <eggert@cs.ucla.edu>

	Remove no-longer-needed pdumper_load workaround

	* src/pdumper.c (pdumper_load): Revert my commit "Pacify GCC
	12.1.1 in default developer build" dated 2022-06-13 13:21:18 -07,
	as GCC bug 105961 is fixed, and this workaround is not needed for
	unfixed GCC as these builds should not use --enable-gcc-warnings.

2024-02-18  Paul Eggert  <eggert@cs.ucla.edu>

	Ignore fewer GCC -fanalyzer diagnostics in ccl.c

	* src/ccl.c: Do not ignore -Wanalyzer-use-of-uninitialized-value,
	as that bug has been fixed in GCC.  Ignore
	-Wanalyzer-out-of-bounds only if GCC 13, as the bug will
	reportedly be fixed when GCC 14 comes out.

2024-02-18  Eli Zaretskii  <eliz@gnu.org>

	Move translations-related files to do/translations/.

2024-02-18  Jean-Christophe Helary  <jean.christophe.helary@traduction-libre.org>

	Move French translations to the top-level doc/ directory.

2024-02-18  Jean-Christophe Helary  <jean.christophe.helary@traduction-libre.org>

	Add README file about translations of Emacs manuals

	* doc/README: New file.

2024-02-18  Po Lu  <luangruo@yahoo.com>

	Implement tooltip_reuse_hidden_frame for Android

	* java/org/gnu/emacs/EmacsWindow.java
	(findSuitableActivityContext): Return Activity rather than
	Context.
	(mapWindow): Provide window token manually.

	* src/androidfns.c (Fx_show_tip, Fx_hide_tip): Respect
	tooltip_reuse_hidden_frame.

2024-02-18  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2024-02-18  Paul Eggert  <eggert@cs.ucla.edu>

	Adjust to yesterday’s Gnulib nstrftime changes

	Bruno Haible fixed Gnulib so that nstrftime no longer requires
	locking code, which means we no longer need to avoid localename.
	However, nstrftime now requires localename-unsafe-limited which
	pulls in some Gnulib-specific locale code, and it’s likely this
	needs to be replaced with Emacs-specific locale code.  In the
	meantime let’s continue to finesse this by avoiding
	localename-unsafe-limited.
	* admin/merge-gnulib (AVOIDED_MODULES):
	Avoid localename-unsafe-limited instead of localename.

2024-02-17  Jakub Ječmínek  <jecminek.k@gmail.com>

	Provide better default value for date in Gnus scoring

	Bug#61002, thanks to Kamil Jońca for reporting

	* lisp/gnus/gnus-score.el (gnus-summary-score-entry): When scoring on
	Date header, the default value for the prompt should be number of days
	between the date of the article under point, and "now".

2024-02-17  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Alias some gnus-specific do-nothing functions

	Replace with #'always and #'ignore

	* lisp/gnus/gnus-agent.el: `gnus-agent-true' and `gnus-agent-false'
	* lisp/gnus/gnus-util.el: `gnus-not-ignore'

2024-02-17  Jeremy Bryant  <jb@jeremybryant.net>

	Add manual entries for which-key

	* doc/emacs/display.texi (Display Custom):  Briefly introduce which-key.
	* doc/emacs/help.texi (Key Help):  Briefly mention which-key.

2024-02-17  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	45f9af61b8e Remove references to phst@google.com.
	7256690a3ca * BUGS: Note how to report critical security issues.
	1035669b38b Add cross-reference to ELisp manual Caveats
	61a14507627 Improve directory prompt used by package-vc-checkout
	0c7c8210cb6 Minor Tramp doc adaption
	df243f785d4 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
	17a395e04c6 ;; Fix typo in the Tramp documentation
	614b244a7fa * Improve reproducibility of inferred values by native comp
	9f9da26e0dc Handle typescript ts grammar breaking change for function...
	717d8c4285f Don't quote 't' in doc strings

2024-02-17  Aleksandr Vityazev  <avityazev@disroot.org>

	Make key selection method configurable in EPA.

	* lisp/epa.el (epa-keys-select-method): New defcustom.
	(epa--select-keys-in-minibuffer): New function.
	(epa-select-keys): Use new option and function.
	* etc/NEWS: Announce it.
	* doc/misc/epa.texi (Key Management): Document it.
	(Bug#69133)

2024-02-17  john muhl  <jm@pub.pink>

	Eagerly indent first field in tables in 'lua-ts-mode'

	* lisp/progmodes/lua-ts-mode.el (lua-ts--simple-indent-rules):
	Properly indent the first field of a table when it appears on a
	line by itself.  (Bug#69088)

2024-02-17  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Support shebang lines with amended environment

	For bug#64939.

	* lisp/files.el (auto-mode-interpreter-regexp): Account for possible
	VARIABLE=[VALUE] operands.
	* test/lisp/files-tests.el (files-tests-auto-mode-interpreter):
	Add an example from the coreutils manual.

2024-02-17  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Support more complex env invocations in shebang lines

	This is not an exact re-implementation of what env accepts, but
	hopefully it should be "good enough".

	Example of known limitation: we assume that arguments for
	--long-options will be set with '=', but that is not
	necessarily the case.  '--unset' (mandatory argument) can be
	passed as '--unset=VAR' or '--unset VAR', but
	'--default-signal' (optional argument) requires an '=' sign.

	For bug#64939.

	* lisp/files.el (auto-mode-interpreter-regexp): Account for
	supplementary arguments passed beside -S/--split-string.
	* test/lisp/files-tests.el (files-tests-auto-mode-interpreter):
	Test some of these combinations.

2024-02-17  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Refine shebang tests (bug#64939)

	* test/lisp/files-tests.el (files-tests--check-shebang): For
	shell-script modes, verify that the correct shell is set.
	(files-tests-auto-mode-interpreter): Prefer 'sh-base-mode' to
	'sh-mode' to stay tree-sitter-agnostic; re-organize test cases to
	make future ones easier to add.

2024-02-17  F. Jason Park  <jp@neverwas.me>

	Use modern fallback for channel name detection in ERC

	* lisp/erc/erc-backend.el (erc-query-buffer-p): Remove forward declaration.
	* lisp/erc/erc.el (erc-query-buffer-p): Defer to `erc-channel-p'.
	(erc-channel-p): Refactor and use `erc--fallback-channel-prefixes' for
	the default CHANTYPES value.  Honor an empty CHANTYPES value as valid,
	e.g., for servers that only support direct messages.
	(erc--fallback-channel-prefixes): New variable to hold fallback
	CHANTYPES prefixes recommended by RFC1459 and modern authorities on
	the matter.
	* test/lisp/erc/erc-tests.el (erc-channel-p): Revise test.  (Bug#67220)

2024-02-17  F. Jason Park  <jp@neverwas.me>

	Normalize ISUPPORT params with empty values in ERC

	* lisp/erc/erc-backend.el (erc-server-parameters)
	(erc--isupport-params): Mention parsing and storage behavior regarding
	nonstandard "FOO=" tokens.
	(erc--parse-isupport-value): Move comment closer to code.
	(erc--get-isupport-entry): Treat the empty string as truly null, as
	prescribed by the Brocklesby draft cited in the top-level comment.
	* test/lisp/erc/erc-tests.el (erc--get-isupport-entry): Add case for
	the empty string appearing as a value for an `erc-server-parameters'
	item.
	(erc-server-005): Assert compat-related behavior of retaining the
	empty string as a valid value from a raw "FOO=" token.
	(Bug#67220)

2024-02-17  F. Jason Park  <jp@neverwas.me>

	Ignore the TGT-LIST parameter in erc-open

	* etc/ERC-NEWS: Mention `erc-open' now ignores TGT-LIST.
	* lisp/erc/erc.el (erc-open): Set `erc-default-recipients' to a list
	containing only the supplied target.  Other values may cause ERC to
	malfunction.  Also redo doc string.

2024-02-17  F. Jason Park  <jp@neverwas.me>

	Make erc-fill-wrap depend on scrolltobottom

	* lisp/erc/erc-fill.el (erc-fill-mode): Add reference to
	`erc-fill-wrap-mode' in doc string.
	(erc--fill-wrap-scrolltobottom-exempt-p): New variable to allow tests
	involving `fill-wrap' to opt out of having to enable `scrolltobottom'.
	(erc-fill--wrap-ensure-dependencies): Warn and enable
	`erc-scrolltobottom-mode' if necessary.
	(erc-fill-wrap-mode): Mention workaround for automatically enabling
	`scrolltobottom'.
	* test/lisp/erc/erc-fill-tests.el (erc-fill-tests--wrap-populate):
	Exempt tests from `scrolltobottom' dependency.
	* test/lisp/erc/resources/erc-scenarios-common.el: Load `erc-fill'
	when compiling.
	(erc-scenarios-common--print-trace): Exempt tests using `fill-wrap'
	from the `scrolltobottom' dependency by making
	`erc--fill-wrap-scrolltobottom-exempt-p' non-nil during test runs.
	(Bug#60936)

2024-02-17  F. Jason Park  <jp@neverwas.me>

	Autoload custom-loads for new Custom groups in erc.el

	* lisp/erc/erc.el: Add `custom-loads' library features for group
	symbols `erc-spelling' and `erc-imenu' since they aren't defined in
	all supported Emacs versions.  Also add groups `erc-sasl' and
	`erc-nicks', new libraries recently added to ERC.  Note that this is
	unrelated to prefixes generated for the help system.  (Bug#68943)

2024-02-17  F. Jason Park  <jp@neverwas.me>

	Remove "erc-" prefixed Compat definitions

	* lisp/erc/erc-compat.el: Remove NO-ERROR argument from top-level
	`require' for library `compat' because it's guaranteed to be present.
	(erc-compat-function, erc-compat-call): Redefine as obsolete aliases
	for unprefixed namesakes.
	* lisp/erc/erc-fill.el (erc-fill-wrap-nudge): Use `compat-call'
	instead of `erc-compat-call'.

2024-02-17  Po Lu  <luangruo@yahoo.com>

	* java/debug.sh: Print errors correctly if device is ambiguous.

2024-02-17  Po Lu  <luangruo@yahoo.com>

	Properly record mtime after insert-file-contents on Android

	* src/fileio.c (write_region): Do not verify file identity after
	retrieving file status for the second time if st_ino is 0.

2024-02-16  Po Lu  <luangruo@yahoo.com>

	* src/androidvfs.c (android_scan_directory_tree): Get rid of xstrdup.

2024-02-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/loadup.el (lexical-binding): Add a comment

2024-02-16  Tomas Volf  <~@wolfsden.cz>  (tiny change)

	When deleting output in Eshell, optionally add it to the kill ring.

	* lisp/eshell/esh-mode.el (eshell-kill-output): Rename to...
	(eshell-delete-output): ... this, for consistency with 'comint-mode',
	and accept KILL argument.  Update callers.

2024-02-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	(tex-font-lock-keywords-1): Fix bug#68827

	* lisp/textmodes/tex-mode.el (tex-font-lock-keywords-1): Don't
	apply `tex-verbatim` in comments.

2024-02-15  Dmitry Gutov  <dmitry@gutov.dev>

	project-or-external-find-regexp: Fix the docstring

	* lisp/progmodes/project.el (project-or-external-find-regexp):
	Fix the docstring (bug#68958).

2024-02-15  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/cl-preloaded.el (cl--direct-subtypes-of-type): Remove.

2024-02-15  Andrea Corallo  <acorallo@gnu.org>

	Update some native comp tests

	* test/src/comp-tests.el (comp-tests-ret-type-spec-13)
	(comp-tests-ret-type-spec-35): Update.
	* test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-62)
	(comp-cstr-test-75): Likewise.

2024-02-15  Andrea Corallo  <acorallo@gnu.org>

	* make use of 'cl--direct-supertypes-of-type' in the native-compiler

	* lisp/emacs-lisp/comp-cstr.el (comp--direct-supertypes): Use
	cl--direct-supertypes-of-type.

2024-02-15  Andrea Corallo  <acorallo@gnu.org>

	* Add initial "Type Hierarchy" node to the elisp manual

	* doc/lispref/objects.texi (Lisp Data Types, Type Hierarchy): Add
	Type Hierarchy node.

2024-02-15  Andrea Corallo  <acorallo@gnu.org>

	Generate automatically graphical and textual type hierarchy representation

	* etc/syncdoc-type-hierarchy.el: New file.
	* doc/lispref/type_hierarchy.txt: Likewise.
	* doc/lispref/type_hierarchy.jpg: Likewise.

2024-02-15  Andrea Corallo  <acorallo@gnu.org>

	* Define 'cl--type-hierarchy' and compute 'cl--typeof-types' from it

	* lisp/emacs-lisp/cl-preloaded.el (cl--type-hierarchy)
	(cl--direct-supertypes-of-type, cl--direct-subtypes-of-type): Define.
	(cl--typeof-types): Compute automatically.
	(cl--supertypes-for-typeof-types): New function.

2024-02-15  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* configure.ac (REQUIRE_GNUISH_STRFTIME_AM_PM): Move definition
	to...

	* src/conf_post.h (REQUIRE_GNUISH_STRFTIME_AM_PM):
	...conf_post.h.

2024-02-15  Eli Zaretskii  <eliz@gnu.org>

	Allow font-spec in 'face-font-rescale-alist' set at startup

	* lisp/startup.el (startup--rescale-elt-match-p): New function.
	(normal-top-level): Use it, instead of the naive 'string-match-p',
	to match the default font against the elements of
	'face-font-rescale-alist'.  Reported by Rahguzar
	<rahguzar@zohomail.eu>.

2024-02-15  Simen Heggestøyl  <simenheg@runbox.com>

	Add support for reading/writing IELM input history (bug#67000)

	* lisp/ielm.el (inferior-emacs-lisp-mode): Add support for saving input
	history to a file.
	(ielm--history-file-name): New variable indicating IELM input history
	file.
	(ielm--exit): Holds a function to call when Emacs is killed to write
	out the input history.
	(ielm--input-history-writer): Helper function for writing the IELM
	input history out to file.

	* lisp/comint.el (comint-input-ring-file-name): Improve defcustom tag.

2024-02-15  Po Lu  <luangruo@yahoo.com>

	Handle /assets and /content file names in `android-browse-url'

	* lisp/net/browse-url.el (android-browse-url): New function.

	* lisp/term/android-win.el (android-browse-url-internal): Update
	function declaration.

	* src/androidselect.c (Fandroid_browse_url): Rename to...
	(Fandroid_browse_url_internal): ... this.
	(syms_of_androidselect): Adjust to match.

2024-02-15  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

	* lib/strftime.c: New file, copied from Gnulib.

2024-02-15  Paul Eggert  <eggert@cs.ucla.edu>

	Adjust to recent Gnulib nstrftime changes

	* admin/merge-gnulib (AVOIDED_MODULES): Add localename.
	* configure.ac (REQUIRE_GNUISH_STRFTIME_AM_PM): Define.

2024-02-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	titdic-cnv.el: Bring all definitions under the `tit-` namespace

	Add a `tit-` or `tit--` prefix where necessary.  Adjust all callers.
	I kept the old names via obsolete aliases for now, although it's probably not
	worth the trouble.

	* lisp/international/titdic-cnv.el: Bring all definitions under the
	`tit-` namespace.
	(tit-quail-cxterm-package-ext-info): Rename var from
	`quail-cxterm-package-ext-info`.  Adjust value to new names.
	(tit-dic-convert): Rename from `titdic-convert`.
	(batch-tit-dic-convert): Rename from `batch-titdic-convert`.
	(tit-quail-misc-package-ext-info): Rename var from
	`quail-misc-package-ext-info`.  Adjust value to new names.
	(tit--tsang-quick-converter): Rename from `tsang-quick-converter`.
	(tit--tsang-b5-converter): Rename from `tsang-b5-converter`.
	(tit--quick-b5-converter): Rename from `quick-b5-converter`.
	(tit--tsang-cns-converter): Rename from `tsang-cns-converter`.
	(tit--quick-cns-converter): Rename from `quick-cns-converter`.
	(tit--py-converter): Rename from `py-converter`.
	(tit--ziranma-converter): Rename from `ziranma-converter`.
	(tit--ctlau-converter): Rename from `ctlau-converter`.
	(tit--ctlau-gb-converter): Rename from `ctlau-gb-converter`.
	(tit--ctlau-b5-converter): Rename from `ctlau-b5-converter`.
	(tit-miscdic-convert): Rename from `miscdic-convert`.
	(batch-tit-miscdic-convert): Rename from `batch-miscdic-convert`.
	(tit-pinyin-convert): Rename from `pinyin-convert`.

	* leim/Makefile.in (${leimdir}/quail/%.el, misc_convert)
	(${srcdir}/../lisp/language/pinyin.el): Use the new names.

2024-02-14  Mattias Engdegård  <mattiase@acm.org>

	String hashing improvements (spread and performance)

	Fix gaps in hashing coverage in the middle and end of even fairly short
	strings.  E.g., `outline-1`, `outline-2` etc all hashed to the exact
	same value but with the patch, there are no collisions among the ~160000
	symbols in the Emacs tree.

	This change also improves average hashing speed by using fewer mixing
	operations.

	* src/fns.c (hash_string):
	Use unit stride for fairly short strings, while retaining the cap of 8
	samples for long ones.

	Always hash the last word to ensure that the end of the string is
	covered.  For strings shorter than a word, use fewer loads and a single
	reduction step.

2024-02-14  Gerd Möllmann  <gerd@gnu.org>

	Take file-local variables into account in elint-file (bug#69076)

	* lisp/emacs-lisp/elint.el (elint-file): Use hack-local-variables.

2024-02-14  Juri Linkov  <juri@linkov.net>

	Detect DEFUNs as outline-minor-mode headings in Emacs sources in c-ts-mode.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--outline-predicate): When
	c-ts-mode-emacs-sources-support is t, use c-ts-mode--emacs-defun-p
	(bug#68824).

2024-02-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	hideif.el: Minor cleanup

	* lisp/progmodes/hideif.el: Prefer #' to quote function names.
	(hif-eval): Use `lexical-binding`.
	(hif-ifx-regexp): Don't use `defconst` since `bovine/c.el` let-binds it.
	(hif--intern-safe): Rename from `intern-safe` to fix this
	namespace violation.
	(hif-strtok): Adjust accordingly.

2024-02-13  Steven Allen  <steven@stebalien.com>

	Respect :lisp-dir whilst scanning for VC package dependencies

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1):
	Scan 'lisp-dir', if set, for lisp files instead of scanning the root
	package directory.  (Bug#69019)

2024-02-13  Philip Kaludercic  <philipk@posteo.net>

	Add 'custom-variable' command

	* lisp/cus-edit.el (customize-toggle-option): Add command.
	(toggle-option): Add shorter alias for 'customize-toggle-option'.
	* etc/NEWS: Document it.  (Bug#69079)

2024-02-13  Eli Zaretskii  <eliz@gnu.org>

	Fix left-over from renaming 'comp-*' functions

	* lisp/progmodes/elisp-mode.el (comp--write-bytecode-file): Call
	this instead of 'comp-write-bytecode-file', its old name.
	Reported by Arthur Miller <arthur.miller@live.com>.

2024-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify position-symbol

	* src/data.c (Fposition_symbol): Simplify by calling Fbare_symbol
	rather than open-coding it.

2024-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	XSYMBOL eassume speedups

	* src/lisp.h (XSYMBOL_WITH_POS_SYM, XSYMBOL): Help the compiler by using
	eassume instead of eassert for XSYMBOL postconditions likely to be
	useful for optimization later.  With gcc 13.2 -O2 x86-64 this improved
	speed on my usual “compile all .el files” benchmark by 0.7% and shrank
	the text size of Emacs by 0.09%.

2024-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Remove SYMBOL_WITH_POS_{POS,SYM}

	* src/fns.c (internal_equal): Turn comment into eassert
	that !symbols_with_pos_enabled.
	(sxhash_obj): Simplify case of symbol with pos (when enabled).
	* src/lisp.h (XSYMBOL_WITH_POS_SYM, XSYMBOL_WITH_POS_POS)
	(maybe_remove_pos_from_symbol): New inline functions.
	(SYMBOL_WITH_POS_SYM, SYMBOL_WITH_POS_POS): Remove.
	All uses replaced by the new functions.  This avoids some
	double-checking in the source code, simplifies the code overall,
	and avoids the need for "Type checking is done in the following
	macro" comments to explain unusual code.

2024-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Remove lisp_h_XCONS etc

	When configured with --enable-checking and compiled with gcc -O0,
	these macros evaluated arguments multiple times, which made it too
	easy to mistakenly write code that behaves differently when debugging.
	This patch does not affect performance in normal builds.
	In --enable-checking builds with gcc -O0 it slows down my usual
	benchmark (remove all '*.elc’ files and then 'make') by 4.4%.
	I hope that’s good enough; if not I can complicate the macros to
	tune better for debugging builds.
	* src/lisp.h (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_VAL)
	(lisp_h_XCONS): Remove, moving each definiens to the corresponding
	inline function.  All uses removed.

2024-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Remove lisp_h_PSEUDOVECTORP etc

	* src/lisp.h (lisp_h_PSEUDOVECTORP, lisp_h_EQ, lisp_h_SYMBOLP):
	Refactor by removing these macros, moving each definiens to its only
	use.  Now that we have symbols with position so that there is no longer
	a non-lisp_h_* macro counterpart if DEFINE_KEY_OPS_AS_MACROS, there’s
	no need to separate these definiens from their inline function bodies.

2024-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Remove BASE2_EQ

	* src/lisp.h (lisp_h_BASE2_EQ, BASE2_EQ): Remove.  All uses
	removed.  BASE2_EQ was present only for minor optimization and
	with current gcc -O2, BASE2_EQ does not affect performance, so
	it’s not worth the hassle.

2024-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify and speed up EQ again

	* src/lisp.h (lisp_h_BASE2_EQ, lisp_h_EQ): Simplify and refactor.
	On x86-64 with GCC 3.2 this shrinks temacs text by 0.055% and
	after removing all *.elc files speeds up 'make' by 1.0%.

2024-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify and speed up EQ

	* src/lisp.h (lisp_h_BASE2_EQ, lisp_h_EQ):
	Simplify by testing symbols_with_pos_enabled first.
	On x86-64 with GCC 13.2 this shrinks temacs text by 1.5%
	and after removing all *.elc files speeds up 'make' by 1.2%.

2024-02-13  Juri Linkov  <juri@linkov.net>

	More changes for treesitter support of outline-minor-mode (bug#68824)

	* lisp/treesit.el (treesit-outline-level): Set NAMED arg of
	'treesit-node-at' to t.  Don't set IGNORE-MISSING arg of
	'treesit-node-match-p' to t.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
	Add "singleton_method" to 'treesit-thing-settings'.
	Set 'treesit-outline-predicate'.  Kill local variables
	'outline-regexp' and 'outline-level'.

2024-02-13  Michael Albinus  <michael.albinus@gmx.de>

	Add docstring for Tramp test macros

	* test/lisp/net/tramp-tests.el (tramp--test-set-ert-test-documentation):
	New defun.
	(tramp--test-deftest-with-stat, tramp--test-deftest-with-perl)
	(tramp--test-deftest-with-ls): Use it to define docstring.

2024-02-13  Philip Kaludercic  <philipk@posteo.net>

	Reuse commit message when preparing a single patch

	* lisp/vc/vc.el (vc-prepare-patch): Check commit message if only
	a single revision was selected.

2024-02-13  Jim Porter  <jporterbugs@gmail.com>

	Make outline.el ignore field properties in text

	* lisp/outline.el (outline-back-to-heading, outline-on-heading-p)
	(outline-next-visible-heading, outline-mark-subtree)
	(outline-hide-sublevels, outline--insert-button)
	(outline--fix-up-all-buttons): Inhibit field text motion (bug#68881).

2024-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl--generic-describe): Refactor to ease reuse

	* lisp/emacs-lisp/cl-generic.el (cl--map-methods-documentation):
	New function, extracted from `cl--generic-describe`.
	(cl--generic-describe): Use it.

2024-02-12  Juri Linkov  <juri@linkov.net>

	Tree-sitter support for outline-minor-mode (bug#68824)

	* doc/emacs/text.texi (Outline Format): Add 'outline-search-function'.

	* doc/lispref/elisp.texi (Top): Add new menu item "Outline Minor Mode"
	after "Imenu".

	* doc/lispref/modes.texi (Modes): Add new menu item "Outline Minor Mode"
	after "Imenu".
	(Major Mode Conventions): Mention "Outline Minor Mode" with @pxref.
	(Outline Minor Mode): New node.

	* doc/lispref/parsing.texi (Tree-sitter Major Modes): Mention
	'treesit-outline-predicate' with @pxref.

	* lisp/treesit.el (treesit-outline-predicate): New buffer-local variable.
	(treesit-outline-predicate--from-imenu): New internal function.
	(treesit-outline-search, treesit-outline-level): New functions.
	(treesit-major-mode-setup): Set up treesit-outline-predicate,
	outline-search-function and outline-level.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--outline-predicate):
	New internal function.
	(c-ts-base-mode): Set 'treesit-outline-predicate' to
	'c-ts-mode--outline-predicate'.

	* lisp/progmodes/heex-ts-mode.el (heex-ts-mode): Kill inherited
	local variables 'outline-heading-end-regexp', 'outline-regexp',
	'outline-level'.

	* lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Remove 'outline-regexp'.
	Suggested by john muhl <jm@pub.pink>.

	* lisp/textmodes/html-ts-mode.el (html-ts-mode): Kill inherited
	local variables 'outline-heading-end-regexp', 'outline-regexp',
	'outline-level'.

2024-02-12  Mattias Engdegård  <mattiase@acm.org>

	lread.c: Use bare symbol operations

	* src/lread.c (read0, intern_sym, intern_driver, intern_1)
	(intern_c_string_1, Fintern, Fintern_soft, Funintern, oblookup)
	(map_obarray, init_obarray_once, defvar_int, defvar_bool)
	(defvar_lisp_nopro, defvar_kboard, syms_of_lread):
	Use the faster bare-symbol operations where provably correct to do so.

2024-02-12  Mattias Engdegård  <mattiase@acm.org>

	Make minibuf-tests independent of obarray hash order

	* test/src/minibuf-tests.el (minibuf-tests--set-equal): New.
	(minibuf-tests--all-completions)
	(minibuf-tests--all-completions-pred)
	(minibuf-tests--all-completions-regexp): Use it.

2024-02-12  Mattias Engdegård  <mattiase@acm.org>

	Internal function for obarray performance analysis (bug#68244)

	* src/lread.c (Finternal__obarray_buckets): New function.

2024-02-12  Philip Kaludercic  <philipk@posteo.net>

	Allow using 'vc-prepare-patch' in non-VC buffers

	* lisp/vc/vc.el (vc-prepare-patch): Remove
	'vc-ensure-vc-buffer', as it is not necessary to verify this for
	the command to work.

2024-02-12  Po Lu  <luangruo@yahoo.com>

	Disable exec loader when Emacs is running under an existing instance

	* src/androidfns.c (syms_of_androidfns_for_pdumper): Check if
	Emacs is running under process tracing, and if so, disable
	android_use_exec_loader.

2024-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	loaddefs-gen.el: Generate an autoload for `pcase-defmacro`

	Autoload cookies on uses of `pcase-defmacro` used to copy
	the definition wholesale instead of generating the expected autoload.

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload):
	Look inside `eval-and-compile` as well.

2024-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(pcase): New `_` syntax in pred/app functions

	The current syntax for functions in `app` and `pred` patterns
	allows a shorthand (F ARGS) where the object being matched is
	added as an extra last argument.  This is nice for things like
	(pred (< 5)) but sometimes the object needs to be at
	another position.
	Until now you had to use (pred (lambda (x) (memq x my-list)))
	or (pred (pcase--flip memq my-list)) in those cases.
	So, introduce a new shorthand where `_` can be used to indicate
	where the object should be passed: (pred (memq _ my-list))

	* lisp/emacs-lisp/pcase.el (pcase--split-pred): Document new syntax
	for pred/app functions.
	(pcase--funcall): Support new syntax.
	(pcase--flip): Declare obsolete.
	(pcase--u1, \`): Use `_` instead.
	(pcase--split-pred): Adjust accordingly.

	* doc/lispref/control.texi (pcase Macro): Document new syntax
	for pred/app functions.

	* lisp/progmodes/opascal.el (pcase-defmacro):
	* lisp/emacs-lisp/seq.el (seq--make-pcase-bindings):
	* lisp/emacs-lisp/eieio.el (eieio):
	* lisp/emacs-lisp/cl-macs.el (cl-struct, cl-type):
	Use _ instead of `pcase--flip`.
	(cl--pcase-mutually-exclusive-p): Adjust accordingly.

	* lisp/emacs-lisp/map.el (map--pcase-map-elt): Declare obsolete.
	(map--make-pcase-bindings): Use `_` instead.

2024-02-12  Stefan Kangas  <stefankangas@gmail.com>

	Remove redundant `apply` with `derived-mode-p`

	* lisp/cedet/mode-local.el (mode-local-map-mode-buffers):
	* lisp/progmodes/which-func.el (which-func-try-to-enable):
	(which-func-ff-hook): Remove redundant 'apply' with 'derived-mode-p'.
	Suggested by Philip Kaludercic <philipk@posteo.net>.

2024-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl--generic-describe): Fix regression introduced by fix to bug#54628

	Since that fix, we made other changes (put arg names in allcaps)
	which also happen to fix bug#54628, so we can remove the original fix
	which was suboptimal when the type includes quotes.

	* lisp/emacs-lisp/cl-generic.el (cl--generic-describe):
	Don't rebind `print-quoted` to nil.

	* test/lisp/emacs-lisp/cl-generic-tests.el
	(cl-generic-tests--print-quoted): New test.

2024-02-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	(pcase): Add buttons to the macros' defs in the docstring of `pcase`

	* lisp/emacs-lisp/pcase.el (pcase--find-macro-def-regexp): New var.
	(find-function-regexp-alist): Add entry for `pcase-macro`s.
	(help-fns--signature): Move declaration to where we know it is valid.
	(pcase--make-docstring): Add buttons to jump to the definition
	of Pcase macros.

2024-02-11  Philip Kaludercic  <philipk@posteo.net>

	Tolerate errors while recompiling all packages

	* lisp/emacs-lisp/package.el (package-recompile-all): Demote errors
	raised by 'package-recompile'.  (Bug#68678)

2024-02-11  Philip Kaludercic  <philipk@posteo.net>

	Add the public API of Compat to the core

	* lisp/emacs-lisp/compat.el: Add stub file with minimal definitions,
	so that core packages, that haven't been installed from ELPA, can make
	use of the public API and use more recent function signatures.
	* lisp/progmodes/python.el (compat): Remove 'noerror flag, because
	Compat can now be required without the real package being available.
	* doc/lispref/package.texi (Forwards-Compatibility): Mention Compat
	and link to the manual.
	* etc/NEWS: Document change.  (Bug#66554)

2024-02-11  Dmitry Gutov  <dmitry@gutov.dev>

	Make sure the binding shown by echo-keystrokes-help is not shadowed

	And choose just one binding to display rather than two together.
	(https://lists.gnu.org/archive/html/emacs-devel/2024-02/msg00311.html)

	* lisp/help.el (help--append-keystrokes-help): New function.

	* src/keyboard.c (syms_of_keyboard): Add a symbol for it.
	(echo_dash): Use them here.

2024-02-11  Andrea Corallo  <acorallo@gnu.org>

	Rename a number of native compiler functions

	* lisp/emacs-lisp/comp.el (comp-passes): Update.
	(comp-mvar): Update constructor name.
	(comp--loop-insn-in-block, comp--lex-byte-func-p)
	(comp--spill-decl-spec, comp--spill-speed)
	(comp--decrypt-arg-list, comp--byte-frame-size)
	(comp--add-func-to-ctxt, comp--spill-lap-function)
	(comp--intern-func-in-ctxt, comp--spill-lap-function)
	(comp--spill-lap, comp--lap-eob-p, comp--lap-fall-through-p)
	(comp--sp, comp--with-sp, comp--slot-n, comp--slot, comp-slot+1)
	(comp--label-to-addr, comp--mark-curr-bb-closed)
	(comp--bb-maybe-add, comp--call, comp--callref, make-comp-mvar)
	(comp--new-frame, comp--emit, comp--emit-set-call)
	(comp--copy-slot, comp--emit-annotation, comp--emit-setimm)
	(comp--make-curr-block, comp--latch-make-fill)
	(comp--emit-uncond-jump, comp--emit-cond-jump)
	(comp--emit-handler, comp--limplify-listn, comp--new-block-sym)
	(comp--fill-label-h, comp--jump-table-optimizable)
	(comp--emit-switch, comp--emit-set-call-subr, comp--op-to-fun)
	(comp--body-eff, comp--op-case, comp--limplify-lap-inst)
	(comp--emit-narg-prologue, comp--limplify-finalize-function)
	(comp--prepare-args-for-top-level, comp--emit-for-top-level)
	(comp--emit-lambda-for-top-level, comp--limplify-top-level)
	(comp--addr-to-bb-name, comp--limplify-block)
	(comp--limplify-function, comp--limplify, comp--mvar-used-p)
	(comp--collect-mvars, comp--collect-rhs)
	(comp--negate-arithm-cmp-fun, comp--reverse-arithm-fun)
	(comp--emit-assume, comp--maybe-add-vmvar)
	(comp--add-new-block-between, comp--cond-cstrs-target-mvar)
	(comp--add-cond-cstrs-target-block, comp--add-cond-cstrs-simple)
	(comp--add-cond-cstrs, comp--insert-insn, comp--emit-call-cstr)
	(comp--lambda-list-gen, comp--add-call-cstr, comp--add-cstrs)
	(comp--collect-calls, comp--pure-infer-func, comp--ipa-pure)
	(make--comp--ssa-mvar, comp--clean-ssa, comp--compute-edges)
	(comp--collect-rev-post-order, comp--compute-dominator-tree)
	(comp--compute-dominator-frontiers, comp--log-block-info)
	(comp--place-phis, comp--dom-tree-walker, comp--ssa)
	(comp--ssa-rename-insn, comp--ssa-rename, comp--finalize-phis)
	(comp--remove-unreachable-blocks, comp--ssa)
	(comp--fwprop-max-insns-scan, comp--copy-insn)
	(comp--apply-in-env, comp--fwprop-prologue)
	(comp--function-foldable-p, comp--function-call-maybe-fold)
	(comp--fwprop-call, comp--fwprop-insn, comp--fwprop*)
	(comp--rewrite-non-locals, comp--fwprop, comp--func-in-unit)
	(comp--call-optim-form-call, comp--call-optim-func)
	(comp--call-optim, comp--collect-mvar-ids)
	(comp--dead-assignments-func, comp--dead-code)
	(comp--form-tco-call-seq, comp--tco-func, comp--tco)
	(comp--remove-type-hints-func, comp--remove-type-hints)
	(comp--args-to-lambda-list, comp--compute-function-type)
	(comp--finalize-container, comp--finalize-relocs)
	(comp--compile-ctxt-to-file, comp--final1, comp--final)
	(comp--make-lambda-list-from-subr, comp-trampoline-compile)
	(comp--write-bytecode-file): Rename and/or update due to renaming.
	* test/src/comp-resources/comp-test-funcs.el (comp-test-copy-insn-f): Update.
	* src/comp.c (Fcomp__compile_ctxt_to_file0): Rename.
	(syms_of_comp): Update.

2024-02-11  Eli Zaretskii  <eliz@gnu.org>

	Fix 'min-width' display property in 'buffer-text-pixel-size'

	* src/xdisp.c (display_min_width): Don't return without doing
	anything when called from the move_it_* functions.  This is needed
	to have functions that simulate display layout handle the
	min-width display property correctly.  (Bug#68374)

2024-02-11  Mekeor Melire  <mekeor@posteo.de>

	In Info-url-alist, add .html extension to %e format-sequence

	* lisp/info.el (Info-url-for-node): Implement the change. (Bug#68970)
	(Info-url-alist): Document the change.
	* test/lisp/info-tests.el (test-info-urls): Adjust tests to account for
	the change and add a test for the "Top" node.

2024-02-11  Po Lu  <luangruo@yahoo.com>

	Fix signed/unsigned promotion errors involving Emacs_Rectangle

	* src/androidterm.c (android_note_mouse_movement):

	* src/pgtkterm.c (note_mouse_movement):

	* src/xdisp.c (get_glyph_string_clip_rects, remember_mouse_glyph)
	(expose_area, expose_window, gui_intersect_rectangles): Cast
	width or height fields in Emacs_Rectangles to int before summing
	with or subtracting them from their coordinate fields, as they
	are unsigned outside X, and the sign of the coordinates is thus
	not preserved.

2024-02-10  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Fix behavior of gnus-summary-very-wide-reply with prefix arg

	* lisp/gnus/gnus-msg.el (gnus-summary-very-wide-reply): If a prefix
	argument has been given, the value of YANK will be a list containing the
	current article number.  This should not be used to retrieve a number of
	work articles; that should be derived from the value of the
	current-prefix-arg (or marked articles).
	* doc/misc/gnus.texi: The interplay of prefix arg and marked articles is
	complex; attempt to clarify.

2024-02-10  Juri Linkov  <juri@linkov.net>

	* lisp/buff-menu.el: Force other-window commands to use other window.

	(Buffer-menu-other-window, Buffer-menu-switch-other-window):
	Let-bind 'display-buffer-overriding-action' to
	'(nil (inhibit-same-window . t))' that will force the buffer
	to be displayed in another window in any case (bug#68978).

2024-02-10  Juri Linkov  <juri@linkov.net>

	* lisp/menu-bar.el (menu-bar-showhide-menu): Add "Outlines" (bug#68979).

	The menu item "Outlines" toggles 'outline-minor-mode' when one
	of outline-search-function/outline-regexp/outline-level is defined
	in the current buffer.

2024-02-10  Steven Allen  <steven@stebalien.com>

	Record dependencies in packages installed via package-vc

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Record a
	package's declared dependencies in the package's metadata
	file.  (Bug#68761)

2024-02-10  Damien Cassou  <damien@cassou.me>

	Add support for deriving major modes in which-func

	* lisp/progmodes/which-func.el (which-func-try-to-enable)
	(which-func-ff-hook): Use `derived-mode-p' to check if the current major
	mode is within `which-func-modes' or `which-func-non-auto-modes'.
	(Bug#68981)

2024-02-10  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	7d3a1444864 ; Mention defface's and their :version tags in CONTRIBUTE.
	09c53b717d4 * admin/notes/kind-communication: New file.
	31ca4e5501f ; And another fix of CONTRIBUTE.
	d65499e7908 ; Another clarification in CONTRIBUTE.
	571ec583d64 ; Clarify "ChangeLog entries" in CONTRIBUTE.
	e2682316867 Don't skip links to "." and ".." in Dired when marking files
	e25d11314d8 Pass unquoted filename to user-supplied MUSTMATCH predicate
	47496993703 * doc/lispref/parsing.texi (Retrieving Nodes): Improve do...
	d0673ea0d42 ; * etc/PROBLEMS: Workaround for Windows key "stuck" (bug...

	* lisp/emacs-lisp/trace.el:
	* java/org/gnu/emacs/EmacsWindow.java (onDragEvent): Remove
	training whitespace.

2024-02-10  Eli Zaretskii  <eliz@gnu.org>

	Support Info files compressed by 'lzip'

	* lisp/info.el (Info-suffix-list): Support lzip compression of
	Info files.  (Bug#69004)

2024-02-10  Eli Zaretskii  <eliz@gnu.org>

	* lisp/bind-key.el (personal-keybindings): Autoload it (bug#68999).

2024-02-10  Eli Zaretskii  <eliz@gnu.org>

	Avoid errors in winner.el's 'post-command-hook'

	* lisp/winner.el (winner-save-old-configurations): Don't save
	configuration of dead frames.  (Bug#68977)

2024-02-10  Michael Albinus  <michael.albinus@gmx.de>

	Fix warning in tramp-register-archive-autoload-file-name-handler

	* lisp/net/tramp-archive.el
	(tramp-register-archive-autoload-file-name-handler): Do not use
	read syntax #' for `tramp-archive-file-name-handler', it isn't
	autoloaded.

2024-02-10  Eli Zaretskii  <eliz@gnu.org>

	Run 'read-only-mode-hook' when visiting a file that is not writable

	* lisp/files.el (after-find-file): Run 'read-only-mode-hook'
	when the visited file is not writable.  (Bug#68648)

2024-02-10  john muhl  <jm@pub.pink>

	Fix volume refresh bug in mpc

	* lisp/mpc.el (mpc-volume-refresh): Only refresh volume when mpd
	is playing.  When stopped or paused, volume is nil.  (Bug#68785)

2024-02-10  Po Lu  <luangruo@yahoo.com>

	Make miscellaneous improvements to the Android port

	* java/org/gnu/emacs/EmacsActivity.java (onCreate): Deal with
	omitted calls to onWindowFocusChanged after activity recreation.

	* java/org/gnu/emacs/EmacsService.java (clearWindow, clearArea):
	Delete redundant wrapper functions.
	(getUsefulContentResolver, getContentResolverContext): Delete
	functions.
	(openContentUri, checkContentUri): Stop searching for an
	activity content resolver, as that's actually not necessary.

	* src/android.c (android_init_emacs_service)
	(android_init_emacs_window, android_clear_window)
	(android_clear_area): Adjust to match.

2024-02-10  Mekeor Melire  <mekeor@posteo.de>

	Add option gnus-mode-line-logo

	* lisp/gnus/gnus.el (gnus-mode-line-logo): New option specifying
	whether and which logo will be displayed in the mode-line.
	* etc/NEWS: Announce the change.

2024-02-10  Jim Porter  <jporterbugs@gmail.com>

	Add concept indices for some Eshell commands

	* doc/misc/eshell.texi (List of Built-ins): Add indices for some
	directory- and process-related commands.
	(Aliases): Change to concept index.

2024-02-10  Jim Porter  <jporterbugs@gmail.com>

	In Eshell manual, put command index anchors above the item

	This makes sure that when navigating to the command's documentation from
	the index, it shows the item heading (which lists the supported
	arguments).

	* doc/misc/eshell.texi (List of Built-ins, Tramp extensions)
	(Extra built-in commands): Adjust placement of '@cmindex'.

2024-02-10  Jim Porter  <jporterbugs@gmail.com>

	Put the list of built-in Eshell commands in its own manual node

	* doc/misc/eshell.texi (Built-ins): Fix capitalization of node to be
	more consistent with the rest of the manual.  Fix a cross reference.
	List child nodes.
	(List of Built-ins): New section and node.
	(Defining New Built-ins): Make this a node.  Fix capitalization.

2024-02-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	modula2.el: Avoid font-lock-*-face variables

	* lisp/progmodes/modula2.el (m3-font-lock-keywords-1)
	(m3-font-lock-keywords-2): Refer to the font-lock faces directly

2024-02-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/subr.el (with-output-to-temp-buffer): Add `indent` rule

	* lisp/subr.el (read-char-from-minibuffer): Fix bug#68995

2024-02-09  Michael Albinus  <michael.albinus@gmx.de>

	Tramp: Handle PIN requests from security keys

	* doc/misc/tramp.texi (Frequently Asked Questions): Clarify FIDO entry.

	* lisp/net/tramp-sh.el (tramp-actions-before-shell)
	(tramp-actions-copy-out-of-band):
	Use `tramp-security-key-pin-regexp'.

	* lisp/net/tramp.el (tramp-security-key-pin-regexp): New defcustom.
	(tramp-action-otp-password, tramp-read-passwd): Trim password prompt.
	(tramp-action-show-and-confirm-message): Expand for PIN requests.

2024-02-09  Paul Eggert  <eggert@cs.ucla.edu>

	Port to GNU Make 03ecd94488b85adc38746ec3e7c2a297a522598e

	Problem reported by Collin Funk (Bug#68996).
	* GNUmakefile (.): New macro.
	(help): Use ‘$.’ instead of ‘$ ’.
	* cross/verbose.mk.android, src/verbose.mk.in (.): New macro.
	(AM_V_AR, AM_V_CC, AM_V_CXX, AM_V_CCLD, AM_V_CXXLD, AM_V_GEN):
	Use ‘$.’ instead of ‘$ ’.
	* lib-src/Makefile.in (install): Use ‘$.’ instead of ‘$ ’.

2024-02-09  Dominique Quatravaux  <dominique.quatravaux@epfl.ch>  (tiny change)

	Fix treesit_traverse_get_predicate (bug#68954)

	Commit d005e685e1df7692085378633348db39a5190374 should have used
	assq_no_signal, but didn't, this commit fixes that.

	* src/treesit.c (treesit_traverse_get_predicate): Replace assq_no_quit
	with assq_no_signal.

2024-02-09  Po Lu  <luangruo@yahoo.com>

	Set adstyle within sfnt font objects

	* src/sfntfont.c (sfntfont_open): Don't incorrectly clear
	desc->adstyle.

2024-02-09  Po Lu  <luangruo@yahoo.com>

	Don't lose track of adstyles during face merging

	* src/xfaces.c (merge_face_vectors): If an adstyle exists in
	FROM, guarantee that a font spec will exist in TO with the same.

2024-02-09  Justin Burkett  <justin@burkett.cc>

	Format first sentences of docstrings.

	Ensure a complete sentence (at least a phrase with a period at the end) that
	fits on one line.

2024-02-09  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/which-key.el: Add two spaces in docstrings and punctuation

	(which-key-echo-keystrokes):
	(which-key-popup-type):
	(which-key-min-display-lines):
	(which-key-side-window-location):
	(which-key-show-early-on-C-h):
	(which-key-allow-regexps):
	(which-key-group-description-face):
	(which-key-docstring-face):
	(which-key-enable-god-mode-support):
	(which-key-setup-minibuffer):
	(which-key-add-keymap-based-replacements):
	(which-key--maybe-replace):
	(which-key--maybe-add-docstring):
	(which-key--get-keymap-bindings):
	(which-key-reload-key-sequence):

2024-02-09  Po Lu  <luangruo@yahoo.com>

	Replace a few calls to intern with constant strings

	* src/fns.c (do_yes_or_no_p, Fyes_or_no_p): Use symbol globals
	rather than intern.
	(syms_of_fns) <Qyes_or_no_p, Qy_or_n_p>: New symbols.

	* src/lread.c (readevalloop): Use symbol global.
	(syms_of_lread) <Qinternal_macroexpand_for_load>: New symbol.

2024-02-08  Liu Hui  <liuhui1610@gmail.com>

	Respect the delimiter of completer in Python shell completion

	* lisp/progmodes/python.el: (python-shell-completion-setup-code): Fix
	the completion code of IPython.  Change the return value to JSON string
	and ...
	(python-shell-completion-get-completions): ... simplify parsing.
	(inferior-python-mode): Update docstring.
	(python-shell-readline-completer-delims): New variable indicating the
	word delimiters of readline completer.
	(python-shell-completion-native-setup): Set the completer delimiter.
	(python-shell-completion-native-get-completions): Convert output string
	to completions properly.
	(python-shell--get-multiline-input)
	(python-shell--extra-completion-context)
	(python-shell-completion-extra-context): New functions.
	(python-shell-completion-at-point): Send text beginning from the line
	start if the completion backend does not need word splitting.  Remove
	the detection of import statement because it is not needed anymore.
	Create proper completion table based on completions returned from
	different backends.

	* test/lisp/progmodes/python-tests.el (python-tests--completion-module)
	(python-tests--completion-parameters)
	(python-tests--completion-extra-context): New helper functions.
	(python-shell-completion-at-point-jedi-completer)
	(python-shell-completion-at-point-ipython): New tests.  (bug#68559)

2024-02-08  USAMI Kenta  <tadsan@zonu.me>

	Fix 'browse-url-url-at-point' so that scheme does not duplicate

	* lisp/net/browse-url.el (browse-url-url-at-point): Prepend
	the default scheme only if no scheme present.  (Bug#68913)

2024-02-08  Michael Albinus  <michael.albinus@gmx.de>

	`file-remote-p' must not return an error

	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler):
	`file-remote-p' must not return an error.  (Bug#68976)

2024-02-08  Po Lu  <luangruo@yahoo.com>

	* lisp/touch-screen.el (touch-screen): Fix defgroup version.

2024-02-08  Po Lu  <luangruo@yahoo.com>

	Prevent echo area help message from being printed repeatedly

	* src/keyboard.c (echo_dash): Detect echo_keystrokes_help
	messages and return if they be present.

2024-02-08  Po Lu  <luangruo@yahoo.com>

	Fix earlier change to keyboard.c

	* src/keyboard.c (echo_dash): Do not pass automatic string to
	Lisp!
	(syms_of_keyboard) <echo_keystrokes_help>: Improve doc string.

2024-02-07  Paul Eggert  <eggert@cs.ucla.edu>

	Port better to Autoconf 2.72

	* configure.ac: Set ac_cv_type_gid_t=yes to pacify Autoconf 2.72
	AC_TYPE_GETGROUPS.  Problem reported by Nick Bowler in:
	https://lists.gnu.org/r/autoconf-patches/2024-02/msg00001.html

2024-02-07  Dmitry Gutov  <dmitry@gutov.dev>

	Mention 'C-h' in echo for unfinished commands

	* etc/NEWS: Mention it here.

	* lisp/cus-start.el (standard): Add type and version for it.

	* src/keyboard.c (echo-keystrokes-help): New user option
	(https://lists.gnu.org/archive/html/emacs-devel/2024-02/msg00174.html).

	* src/keyboard.c (echo_dash): Use it.

2024-02-07  Eli Zaretskii  <eliz@gnu.org>

	Improve wording of message in buff-menu.el

	* lisp/buff-menu.el (Buffer-menu--selection-message): Improve
	wording of selection messages.

2024-02-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	(file-notify--test-wait-event): Rename from `file-notify--test-read-event`

	* test/lisp/filenotify-tests.el (file-notify--test-wait-event):
	Rename to better reflect its purpose rather than
	its implementation.  Also make it return nil so callers won't be
	tempted to use the return value.

2024-02-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	Prefer \` and \' when matching the beg/end of string

	* test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case)
	(tramp-test01-file-name-syntax): Use more precise regexp

2024-02-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* test/lisp/minibuffer-tests.el (completion-test--pcm-bug38458): New test

2024-02-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	Use `defvar` for variables that are not constant

	* test/lisp/international/mule-tests.el (sgml-html-meta-pre)
	(sgml-html-meta-post):
	* test/lisp/net/tramp-archive-tests.el (tramp-archive-test-file-archive)
	(tramp-archive-test-archive):
	* test/lisp/emacs-lisp/macroexp-resources/vk.el (vk-b):
	Don't use `defconst` if it's not constant.

2024-02-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	Use slot names rather than their :initargs

	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
	(eieio-test-39-clone-instance-inheritor-with-args):

	* test/lisp/auth-source-tests.el (auth-source-ensure-ignored-backend)
	(auth-source-backend-parse-macos-keychain)
	(auth-source-backend-parse-macos-keychain-generic-string)
	(auth-source-backend-parse-macos-keychain-internet-string)
	(auth-source-backend-parse-macos-keychain-internet-symbol)
	(auth-source-backend-parse-macos-keychain-generic-symbol)
	(auth-source-backend-parse-macos-keychain-internet-default-string)
	(auth-source-backend-parse-plstore, auth-source-backend-parse-netrc)
	(auth-source-backend-parse-netrc-string)
	(auth-source-backend-parse-secrets)
	(auth-source-backend-parse-secrets-strings)
	(auth-source-backend-parse-secrets-alias)
	(auth-source-backend-parse-secrets-symbol)
	(auth-source-backend-parse-secrets-no-alias):
	Use slot names rather than their :initargs.

2024-02-07  Eli Zaretskii  <eliz@gnu.org>

	Don't compile lib/copy-file-range.c on MS-Windows

	* nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_copy-file-range): Set to
	true to avoid compiling copy-file-range.c on MS-Windows.  The
	function 'copy_file_range' is not used on MS-Windows, while
	compiling the file triggers warnings because lib/unistd.h, where
	its prototype is declared, is omitted in the MS-Windows build.

2024-02-07  Po Lu  <luangruo@yahoo.com>

	Fix DEBUG_THREADS in the Android port

	* java/org/gnu/emacs/EmacsService.java (EmacsService): New field
	`mainThread'.
	(onCreate): Set `mainThread' to the thread where the service's
	looper executes.
	(checkEmacsThread): Compare against SERVICE.mainThread.

2024-02-07  Michael Albinus  <michael.albinus@gmx.de>

	Declare function properties in Tramp

	* lisp/net/tramp-message.el (tramp-backtrace, tramp-error)
	(tramp-error-with-buffer, tramp-user-error):
	Declare `tramp-suppress-trace' property.

2024-02-07  Wilhelm Kirschbaum  <wkirschbaum@gmail.com>

	elixir-ts-mode: Highlight more method definitions

	* lisp/progmodes/elixir-ts-mode.el (elixir-ts--font-lock-settings):
	Also highlight method definitions where the arguments are literal
	values, not identifiers (bug#67246).

2024-02-07  Dmitry Gutov  <dmitry@gutov.dev>

	elixir-ts-mode: Bring the faces' use closer to other ts modes

	* lisp/progmodes/elixir-ts-mode.el (elixir-ts--font-lock-settings):
	Rename feature 'elixir-function-name' to 'elixir-definition' and
	update all deferences.  Add parameters' highlighting with
	font-lock-variable-name-face.  Change variable references'
	highlighting to use font-lock-variable-use-face.
	Move the feature 'elixir-variable' from feature level 3 to level 4, to
	match other ts modes (bug#67246).

2024-02-07  Wilhelm Kirschbaum  <wkirschbaum@gmail.com>

	Add access_call fontification to elixir-ts-mode

	* lisp/progmodes/elixir-ts-mode.el
	(elixir-ts--font-lock-settings):
	Add access_call queries to the elixir-variable feature (bug#67246).

2024-02-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	(loaddefs-generate--compute-prefixes): Fix thinko in last change

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--compute-prefixes):
	 Fix thinko in last change.  Also,       reduce memory allocation.

2024-02-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	(loaddefs-generate--parse-file): Be a bit more defensive

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
	Don't fail in case of an error while generating the prefixes.
	(loaddefs-generate--compute-prefixes): Don't burp when
	`read-from-string` returns something else than a symbol.

2024-02-06  Juri Linkov  <juri@linkov.net>

	Use new variable Buffer-menu-show-internal in project-list-buffers.

	* lisp/progmodes/project.el (project-list-buffers): Add the new variable
	`Buffer-menu-show-internal' used to toggle internal buffers (bug#68949).

2024-02-06  Mattias Engdegård  <mattiase@acm.org>

	Rearrange and pack hash table fields to reduce space

	* src/lisp.h (struct Lisp_Hash_Table): Move and reduce width of fields
	where possible; this saves an entire word at no apparent cost.

2024-02-06  Mattias Engdegård  <mattiase@acm.org>

	Change hash range reduction from remainder to multiplication

	This makes both lookups and rehashing cheaper.  The index vector size
	is now always a power of 2.  The first table size is reduced to
	6 (from 8), because index vectors would become excessively big
	otherwise.

	* src/lisp.h (struct Lisp_Hash_Table): Replace index_size with
	index_bits.  All references adapted.
	(hash_table_index_size): New accessor; use it where applicable.
	* src/fns.c (hash_index_size): Replace with...
	(compute_hash_index_bits): ...this new function, returning the log2 of the
	index size.  All callers adapted.
	(hash_index_index): Knuth multiplicative hashing instead of remainder.
	(maybe_resize_hash_table): Reduce first table size from 8 to 6.

2024-02-06  Mattias Engdegård  <mattiase@acm.org>

	Optionally show internal buffers in Buffer Menu mode

	Internal buffers were never shown before but they can be of interest
	to Elisp developers, especially since there is no general mechanism to
	remove unused buffers.

	* lisp/buff-menu.el (Buffer-menu-show-internal)
	(Buffer-menu--selection-message, Buffer-menu-toggle-internal): New.
	(Buffer-menu-mode-map): Bind to `I`.
	(Buffer-menu-mode-menu): Add menu entry.
	(list-buffers--refresh): Extend filtering logic.
	* etc/NEWS: Announce.

2024-02-06  Po Lu  <luangruo@yahoo.com>

	Implement Lisp threading on Android

	Much like the NS port, only the main thread receives input from
	the user interface, which is fortunately not a major problem for
	packages such as lsp-mode that create Lisp threads.

	* configure.ac: Enable with_threads under Android.

	* src/android.c (android_init_events): Set `main_thread_id' to
	the ID of the main thread.
	(setEmacsParams): Set new global variable `android_jvm' to the
	JVM object, for the purpose of attaching Lisp threads to the
	JVM.
	(android_select): [THREADS_ENABLED]: If the caller isn't the
	main thread, resort to pselect.  Don't check query before select
	returns.
	(android_check_query): Export.

	* src/android.h (_ANDROID_H_): Define new macro and update
	prototypes.

	* src/process.c (android_select_wrapper): New function.
	(wait_reading_process_output): If THREADS_ENABLED, call
	thread_select through the Android select wrapper.

	* src/thread.c (post_acquire_global_lock): Call
	android_check_query; replace android_java_env with the incoming
	Lisp thread's.
	(run_thread): Attach and detach the thread created to the JVM.
	(init_threads): Set the main thread's JNI environment object.

	* src/thread.h (struct thread_state) <java_env>: New field.

2024-02-06  Po Lu  <luangruo@yahoo.com>

	Don't forcibly display dialogs on Android if a keyboard is present

	* java/org/gnu/emacs/EmacsService.java (detectKeyboard): New
	function.

	* lisp/subr.el (use-dialog-box-p): Don't always return t if a
	keyboard is present on Android.

	* src/android.c (android_init_emacs_service): Link to new
	function.
	(android_detect_keyboard): New function.

	* src/android.h: Update prototypes.

	* src/androidfns.c (Fandroid_detect_keyboard)
	(syms_of_androidfns): New function.

2024-02-06  Yuan Fu  <casouri@gmail.com>

	Use treesit-node-match-p in treesit-parent-while

	The previous commit should've done this, but I missed it.

	* lisp/treesit.el (treesit-parent-while): Use treesit-node-match-p.

2024-02-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	Prefer `ITREE_FOREACH` over `overlays_in`

	Use `ITREE_FOREACH` instead of `overlays_in` if that can save us from
	allocating an array.

	* src/buffer.c (overlays_in): Mark as static.
	(mouse_face_overlay_overlaps): Use `ITREE_FOREACH` instead of `overlays_in`.
	(disable_line_numbers_overlay_at_eob): Same, and also change return
	value to a boolean.
	* src/buffer.h (overlays_in): Don't declare.
	* src/editfns.c (overlays_around): Delete function.
	(Fget_pos_property): Use `ITREE_FOREACH` and keep the "best so far"
	instead of using `overlays_in` and sorting the elements.

	* src/lisp.h (disable_line_numbers_overlay_at_eob): Change return
	type to a boolean.
	* src/xdisp.c (should_produce_line_number): Adjust accordingly.

2024-02-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	(gitmerge-mode-font-lock-keywords): Don't use font-lock-*-face vars

	* admin/gitmerge.el (gitmerge-mode-font-lock-keywords): Refer to the
	faces directly.

2024-02-05  Mattias Engdegård  <mattiase@acm.org>

	Grudgingly accept function values in the function position

	* lisp/emacs-lisp/cconv.el (cconv-convert):
	Warn about (F ...) where F is a non-symbol function value (bytecode
	object etc), but let it pass for compatibility's sake (bug#68931).
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp--fun-value-as-head):
	New test.

2024-02-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	(edebug-signal): Simplify

	Also, prefer #' to quote function names.

	* lisp/emacs-lisp/edebug.el (edebug-signal): Instead of re-signaling
	the error, let `signal_or_quit` continue processing it.

2024-02-05  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-local-host-regexp): Adapt :version.

2024-02-05  Michael Albinus  <michael.albinus@gmx.de>

	Adapt cache handling in Tramp

	* lisp/net/tramp-cache.el (with-tramp-saved-file-property)
	(with-tramp-saved-file-properties)
	(with-tramp-saved-connection-property)
	(with-tramp-saved-connection-properties): Do not change KEY
	destructively.

2024-02-05  Michael Albinus  <michael.albinus@gmx.de>

	Fix stale cache in Tramp

	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band):
	Flush file properties in time.  (Bug#68805)

2024-02-05  Po Lu  <luangruo@yahoo.com>

	Fix frame focus tracking under Android

	* java/org/gnu/emacs/EmacsActivity.java (invalidateFocus): New
	argument WHENCE, a unique number identifying the circumstances
	leading up to the call.  All callers changed.
	(attachWindow): Call `invalidateFocus' from the UI thread.
	(onWindowFocusChanged): Don't remove activity from
	`focusedActivities' if it already exists should `hasWindowFocus'
	return true.

2024-02-05  Po Lu  <luangruo@yahoo.com>

	Don't respect ROUND_XY_TO_GRID when decomposing uninterpreted glyph

	* src/sfnt.c (sfnt_decompose_compound_glyph): Remove useless
	code; don't pretend to round glyph coordinates.

2024-02-05  Xi Lu  <lx@shellcodes.org>

	filesets: Safely invoke `shell-command*' functions

	* lisp/filesets.el:
	(filesets-select-command, filesets-quote): Remove unused functions.
	(filesets-external-viewers): Remove old comments.
	(filesets-which-command, filesets-get-quoted-selection)
	(filesets-spawn-external-viewer): Use `shell-quote-argument'.  (Bug#61709)

2024-02-05  Jim Porter  <jporterbugs@gmail.com>

	Document arguments to Eshell's built-in commands

	* lisp/eshell/em-unix.el (eshell/ln): LINK_NAME is required.

	* lisp/eshell/esh-ext.el (eshell/addpath):
	* lisp/eshell/esh-var.el (eshell/env): Improve help strings slightly.

	* doc/misc/eshell.texi (Scripts): Explain $0, $1, etc.
	(Dollars Expansion): Use "@dots{}" instead of "...".
	(Built-ins, Tramp extensions, Extra built-in commands): Document
	command-line arguments.

2024-02-05  Yuan Fu  <casouri@gmail.com>

	Use treesit-node-match-p in treesit-parent-until/while

	* lisp/treesit.el (treesit-parent-until): Use treesit-node-match-p.
	(treesit-parent-while): Update docstring.
	* doc/lispref/parsing.texi (Retrieving Nodes): Update docstring.

2024-02-05  Yuan Fu  <casouri@gmail.com>

	Improve treesit-forward-sexp behavior for leaf nodes (bug#68899)

	treesit-forward-sexp uses treesit--navigate-thing with 'restricted'
	tactic.  In this tactic we don't move over the parent thing.  However,
	this makes forward-sexp useless for symbols when point is in the
	symbol rather than at the beginning of it: in that case, the symbol is
	considered parent and treesit-forward-sexp won't move to the end of
	it.

	To solve that, we allow to move across the parent even in 'restricted'
	mode if the parent is a leaf thing.

	Here, "leaf thing" is defined as "doesn't have any child 'thing'
	inside it".

	* lisp/treesit.el (treesit--navigate-thing): Move over parent in
	'restricted' tactic if the parent is a leaf thing.

2024-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/comp.el (comp--native-compile): Use `error-message-string`

2024-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/lread.c (bytecode_from_rev_list): Fix assertion failure

	The assertion failure was raised at lread.c:411 during the
	`lread-invalid-bytecodes` test in `test/src/lread-tests.el`.
	I suspect we could remove the assertion instead.

2024-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/lread.c (build_load_history): Be careful with in-place updates

	Don't leave a "broken" value in `Vcurrent_load_list`.

2024-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/window.c (set_window_buffer): Flush the `base_line_number` cache

2024-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(w->base_line_number): Rework the way we flush the cache

	* src/xdisp.c (BASE_LINE_NUMBER_VALID_P): New macro.
	(try_scrolling): Use it.
	(redisplay_window, Fformat_mode_line): Use it to flush the
	base_line_number (if it's stale) once at the beginning.
	(decode_mode_spec): Don't use (or set) `w->start` and
	`w->base_line_number` when operating on another buffer!

2024-02-04  Stefan Kangas  <stefankangas@gmail.com>

	Prefer setq-local in more places

	* lisp/erc/erc-compat.el (erc-set-write-file-functions):
	* lisp/obsolete/iswitchb.el (iswitchb-minibuffer-setup-hook)
	(iswitchb-minibuffer-setup):
	* lisp/obsolete/longlines.el (longlines-mode):
	* lisp/obsolete/rcompile.el (remote-compile):
	* lisp/progmodes/cperl-mode.el (cperl-file-style):
	* test/lisp/erc/erc-tests.el (erc-ring-previous-command):
	Prefer setq-local.

2024-02-04  Mattias Engdegård  <mattiase@acm.org>

	Prevent cache of diff-mode buffers to grow without bounds

	Previously, these " *diff-syntax:..." buffers were never removed.
	Now we discard the least recently used half of them every hour.

	* lisp/vc/diff-mode.el (diff--cached-revision-buffers)
	(diff--cache-clean-interval, diff--cache-clean-timer, diff--cache-clean)
	(diff--cache-schedule-clean, diff--get-revision-properties): New.
	(diff-syntax-fontify-hunk): Use diff--get-revision-properties.

2024-02-04  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/speedbar.el (imenu): Require unconditionally.

2024-02-04  Stefan Kangas  <stefankangas@gmail.com>

	Delete compat code in `url` library

	* lisp/url/url-cid.el (url-cid): Delete compat code for ancient Gnus.
	* lisp/url/url-ldap.el (url-ldap-certificate-formatter): Delete compat
	code; ssl.el has never been in Emacs.
	* lisp/url/url-mailto.el (url-mail): Make into alias for 'message-mail',
	since it is always fboundp.

2024-02-04  Stefan Kangas  <stefankangas@gmail.com>

	Add alias progress-reporter-make

	* lisp/subr.el (progress-reporter-make): New alias for
	'make-progress-reporter'.

2024-02-04  Eli Zaretskii  <eliz@gnu.org>

	Fix display of invisible text with opposite directionality

	* src/xdisp.c (handle_invisible_prop): Skip invisible text
	correctly when it starts at position whose resolved bidi level is
	above the base paragraph level.  (Bug#68446)

2024-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	tramp: Tweak the ls-lisp declarations

	* lisp/net/tramp-sh.el (ls-lisp-use-insert-directory-program): Don't
	declare its existence...
	(tramp-sh-handle-insert-directory): ...test it instead.

	* lisp/net/tramp.el (ls-lisp-dirs-first, ls-lisp-emulation)
	(ls-lisp-ignore-case, ls-lisp-use-insert-directory-program)
	(ls-lisp-verbosity): Move declaration...
	(tramp-handle-insert-directory): ...to the point where we have a good
	reason to think these variables exist.

2024-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): Add comment

	* doc/emacs/buffers.texi (List Buffers): Update example

2024-02-04  Richard M Stallman  <rms@gnu.org>

	bytecomp.el: Warn for `,' not within backquote construct

	(bytecomp--report-comma): New function with `compiler-macro' property.

2024-02-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	textconv.c: Fix warnings with-wide-int

	* src/textconv.c (set_composing_region, textconv_set_point_and_mark):
	Use `min/max`.

2024-02-03  João Távora  <joaotavora@gmail.com>

	Fix prefix discovery for files with read-symbol-shorthands (bug#67325)

	In a previous commit, the local-variable read-symbol-shorthands is
	already read into the temporary buffer used for the autoload parsing
	aerobatics, so all we needed to do in 'l-g--compute-prefixes' is
	use 'read' to give 'read-symbol-shorthands' a chance to kick in.

	* lisp/emacs-lisp/loaddefs-gen.el
	(loaddefs-generate--compute-prefixes):

2024-02-03  João Távora  <joaotavora@gmail.com>

	Also teach loaddefs-gen.el about shorthands (bug#63480)

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
	Make aware of read-symbol-shorthands.

2024-02-03  João Távora  <joaotavora@gmail.com>
	    Jonas Bernoulli  <jonas@bernoul.li>
	    Joseph Turner  <joseph@ushin.org>

	Improve shorthands-font-lock-shorthands (bug#67390)

	Add font locking to the shorthand prefix of a given printed symbol
	name by checking if any of the shorthand prefixes in
	read-symbol-shorthands are a prefix for that print name.  Although
	this does more string comparisons, it didn't prove to be any slower
	than the existing approach, and is more correct.

	This version is more accurate when highlighting files with many
	overlapping shorthands.   Given:

	;; Local Variables:
	;; read-symbol-shorthands: (("bc-" . "breadcrumb-")
	;;                          ("aw-" . "ace-window-")
	;;                          ("zorglub/" . "ace-window-")
	;;                          ("he//" . "hyperdrive-entry--")
	;;                          ("h//"  . "hyperdrive--")
	;;                          ("he/"  . "hyperdrive-entry-")
	;;                          ("h/"   . "hyperdrive-"))
	;; End:

	The following are correct highlights on print names

	'(zorglub/blerh ; hilits "zorglub/" reads to 'ace-window-blerh'
	  he/foo        ; hilits "he/"      reads to 'hyperdrive-entry-foo'
	  he//bar       ; hilits "he//"     reads to 'hyperdrive-entry--bar'
	  h/coiso       ; hilits "h/"       reads to 'hyperdrive-coiso'
	  h//thingy     ; hilits "h//"      reads to 'hyperdrive--thingy'
	  bc-yo         ; hilits "bc-"      reads to 'breadcrumb-yo'
	  aw-thingy     ; hilits "aw-"      reads to 'ace-window-thingy'
	  )


	* lisp/emacs-lisp/shorthands.el (shorthands-font-lock-shorthands):

2024-02-03  João Távora  <joaotavora@gmail.com>

	Consider read-symbol-shorthands in check-declare.el (bug#67523)

	* lisp/emacs-lisp/check-declare.el (check-declare-verify):
	Consider read-symbol-shorthands.

2024-02-03  João Távora  <joaotavora@gmail.com>

	Process read-symbol-shorthands from longest to shortest (bug#67390)

	This ensures that overlapping shorthands are handled correctly and
	consistently even if specified out-of-order by the user.

	* doc/lispref/symbols.texi (Shorthands): Describe shorthand sort
	order.

	* lisp/files.el (hack-local-variables--find-variables): Specially
	handle read-symbol-shorthands.

2024-02-03  João Távora  <joaotavora@gmail.com>

	Make sure read-symbol-shorthands is permanently local

	bug#63480, bug#67390

	* lisp/files.el (permanently-enabled-local-variables): Add
	  read-symbol-shorthands.

2024-02-03  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	b91f0ee2fcc ; Fix last change
	2f69353e4a7 Fix incompatibility with tree-sitter-javascript >= 0.20.2
	d49124fc14b Avoid signaling errors from 'pixel-fill-region'
	a3987127618 eglot: Add nushell language server
	5f56bc1cdfc eglot: Add php-ts-mode to eglot-server-programs
	c14c978e3b1 Support kotlin-ts-mode in Eglot

2024-02-03  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	5ce02c91bc1 Improve `desktop-save-mode` docstring
	2f98b13ed05 ; Fix doc strings of splash-screen data structures
	77f5d4d523a Fix completing-read functional REQUIRE-MATCH behavior

2024-02-03  Eli Zaretskii  <eliz@gnu.org>

	Fix downcasing of mode-name in compile.el

	* lisp/progmodes/compile.el (compilation--downcase-mode-name): New
	function.
	(compilation-start, kill-compilation): Use it instead of calling
	'downcase' on 'mode-name'.  (Bug#68795)

2024-02-03  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -Wpointer-sign

	* src/print.c (print_object): SDATA → SSDATA.

2024-02-03  F. Jason Park  <jp@neverwas.me>

	Reassociate erc-networks--id for orphaned queries

	* lisp/erc/erc-networks.el (erc-networks--examine-targets): Adopt the
	server's network ID in query buffers created before MOTD's end.  Do
	this to avoid a type error in the process filter when renaming
	buffers.
	* lisp/erc/erc-networks.el (erc-networks--examine-targets): New test.
	* test/lisp/erc/erc-scenarios-base-upstream-recon-znc.el
	(erc-scenarios-upstream-recon--znc/severed): New test.
	* test/lisp/erc/erc-scenarios-misc.el
	(erc-scenarios-base-mask-target-routing): Adjust timeout.
	* test/lisp/erc/resources/base/upstream-reconnect/znc-severed.eld:
	New file.
	* test/lisp/erc/resources/erc-tests-common.el
	(erc-tests-common-make-server-buf): Use NAME parameter for creating
	ID.

2024-02-03  F. Jason Park  <jp@neverwas.me>

	Fix local variable persistence in erc-stamp

	* etc/ERC-NEWS: Mention renaming of `erc-munge-invisible-property'.
	* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-disable): Remove
	correct function from `erc-mode-hook'.
	(erc-stamp--recover-on-reconnect): Revise doc string.
	(erc-munge-invisibility-spec, erc-stamp--manage-local-options-state):
	Mark former name as obsolete and rename to latter.  Don't use helper
	macro meant only for local modules.  This bug originated from c68dc778
	"Manage some text props for ERC insertion-hook members", which stemmed
	from bug#60936.
	(erc-stamp--setup, erc-hide-timestamps, erc-show-timestamps)
	(erc-toggle-timestamps): Use new name for
	`erc-munge-invisibility-spec'.
	* lisp/erc/erc.el (erc--restore-initialize-priors): Raise error at
	runtime if mode var doesn't belong to a local module.
	* test/lisp/erc/erc-stamp-tests.el (erc-stamp-tests--insert-right)
	(erc-timestamp-intangible--left): Use new name for
	`erc-munge-invisibility-spec'.
	* test/lisp/erc/erc-tests.el (erc--refresh-prompt): Shadow
	`erc-last-input-time'.
	(erc--restore-initialize-priors): Add error form to expected
	expansion, and skip test on Emacs 27.
	* test/lisp/erc/resources/erc-scenarios-common.el
	(erc-scenarios-common--make-bindings): Shadow `erc-last-input-time'.

2024-02-03  F. Jason Park  <jp@neverwas.me>

	Teach customize-option about erc-modules

	* lisp/erc/erc-goodies.el (erc-scrolltobottom-mode)
	(erc-scrolltobottom-enable): Use `setq' instead of `setopt' because
	the latter isn't defined in Emacs 27 and 28.  This fix is unrelated to
	the main thrust of this commit.
	* lisp/erc/erc.el (erc-modules): Make good on decades old language in
	info node "(erc) Modules" by ensuring `customize-option' can find this
	option before its containing library is loaded.  Like
	`gnus-select-method', this option serves as an entry point for
	configuring the application and is presented that way in tutorials and
	library front matter.  Moreover, it can't be reasonably autoloaded in
	the traditional way because of its many dependencies and large textual
	footprint.
	(erc-display-message): Revise doc string.

2024-02-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	cperl-mode.el: Don't use obsolete `special-display-popup-frame`

	* lisp/progmodes/cperl-mode.el (cperl-info-on-command): Simplify,
	to let `pop-to-buffer` decide whether to create a new frame or not,
	so it can be controlled by `display-buffer-alist`.

2024-02-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	bytecomp.el: Rewrite the way we print dynamic docstrings

	We used to print dynamic docstrings "manually" for two reasons:

	- References should look like `(#$ . POS)` but `prin1` was unable
	  to print just `#$` for an sexp.
	- `make-docfile` needed to find those docstrings and the object
	  to which they belonged.

	The second point is moot now that we don't use `make-docfile` on
	`.elc` files.  So this patch lifts the first restriction,
	using `print-number-table`.

	The rest of the patch then simplifies and regularizes the
	bytecompiler's generation of dynamic docstrings, which can
	now also easily be done for "inner" defvars and other places.

	* src/print.c (print_preprocess, print_object): Handle strings in
	`print-number-table`.
	(Vprint_number_table): Improve docstring.

	* lisp/emacs-lisp/bytecomp.el:
	(byte-compile--list-with-n): New function.
	(byte-compile--docstring-style-warn): Rename from
	`byte-compile-docstring-style-warn` and change calling convention.
	(byte-compile--\#$, byte-compile--docstrings): New vars.
	(byte-compile-close-variables): Bind them.
	(byte-compile--docstring): New function.
	(byte-compile-from-buffer): Set `byte-compile--\#$`.
	(byte-compile-output-file-form): Use `byte-compile--\#$` instead
	of special casing specific forms.
	(byte-compile--output-docform-recurse, byte-compile-output-docform):
	Delete functions.
	(byte-compile-file-form-autoload, byte-compile-file-form-defalias)
	(byte-compile-file-form-defvar-function, byte-compile-lambda):
	Use `byte-compile--docstring` and `byte-compile--list-with-n`.
	(byte-compile--declare-var): Add optional `not-toplevel` arg.
	(byte-compile-defvar): Add `toplevel` arg.  Use `byte-compile--docstring`.
	(byte-compile-file-form-defvar): Delegate to `byte-compile-defvar`.
	(byte-compile--custom-declare-face): New function.  Use it for
	`custom-declare-face`.
	(byte-compile-file-form-defmumble): Use `byte-compile-output-file-form`

	* src/doc.c (Fdocumentation_stringp): New function.
	(syms_of_doc): Defsubr it.
	(store_function_docstring): Remove left-over code from when we
	used DOC for the docstring of some Lisp files.

	* lisp/cus-face.el (custom-declare-face): Accept dynamic docstrings.
	* lisp/faces.el (face-documentation): Handle dynamic docstrings.
	* lisp/help-fns.el (describe-face): Simplify accordingly.

2024-02-02  Eli Zaretskii  <eliz@gnu.org>

	New function 'sort-on'

	* lisp/sort.el (sort-on): New function.  Patch by John Wiegley
	<jwiegley@gmail.com>.

	* etc/NEWS:
	* doc/lispref/sequences.texi (Sequence Functions): Document
	'sort-on'.

2024-02-02  Stefan Kangas  <stefankangas@gmail.com>

	Increase `emacs-lisp-docstring-fill-column` to 72

	Monitors are wider now than when these defaults were first set, and it
	is useful to take better advantage of that, to fit text on fewer lines.
	Yet, it has repeatedly been shown that overly long lines reduce
	readability:
	   "A reasonable guideline would be 55 to 75 characters per line."[1]

	We also don't want to disfavor narrow displays, like mobile phones; a
	more promising direction here might be to automatically word wrap
	docstrings and make their maximum width customizable.  That might
	require a new docstring format, however.

	Bumping it by 7 characters, from 65 to 72, seems a reasonable compromise
	for now.  Consideration was given to increasing it to 70 or 75, but 72
	happens to be a commonly recommended maximum line width elsewhere (see
	Fortran 66, Python docstrings, commit message recommendations, etc.),
	and we might as well do the same.

	This change was discussed in:
	https://lists.gnu.org/r/emacs-devel/2022-07/msg00217.html

	[1] "Optimal Line Length in Reading — A Literature Review", Nanavati and
	    Bias, Visible Language, Vol. 39 No. 2 (2005).
	    https://journals.uc.edu/index.php/vl/article/view/5765

	* lisp/emacs-lisp/lisp-mode.el (emacs-lisp-docstring-fill-column):
	* .dir-locals.el (fill-column, emacs-lisp-docstring-fill-column):
	Bump default to 72.

2024-02-01  Juri Linkov  <juri@linkov.net>

	* lisp/simple.el (read-from-kill-ring): Ignore `read-only' text property.

	Add `read-only' to the list of text properties removed from history items
	(bug#68847).

2024-02-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/lread.c (bytecode_from_rev_list): Fix thinko

2024-02-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/lread.c (bytecode_from_rev_list): Re-group checks

	Bring together all the conditions for well-formedness of the resulting
	bytecode object.

2024-02-01  Thierry Volpiatto  <thievol@posteo.net>

	Fix search error in woman.el

	* lisp/woman.el (woman-if-body): Avoid signaling an error
	if "el }" is not found.  (Bug#68852)

2024-02-01  Graham Marlow  <graham@mgmarlow.com>

	Fix 'fill-paragraph' in 'yaml-ts-mode'

	* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode--fill-paragraph):
	Avoid 'fill-paragraph' when outside of block_scalar or comment
	nodes.  (Bug#68781)

2024-02-01  Stanislav Yaglo  <yaglo@me.com>

	macfont.m: Fix values for font widths and weights on macOS

	* src/macfont.m (mac_font_get_glyphs_for_variants)
	(macfont_variation_glyphs): Fix width values.  (Bug#64013)

2024-02-01  Sacha Chua  <sacha@sachachua.com>

	shr: Correct SVG attribute case

	* lisp/net/shr.el (shr-correct-attribute-case): New constant.
	(shr-correct-dom-case): New function to correct SVG attribute case.
	(shr-tag-svg): Correct SVG attribute cases before using them.

2024-02-01  Po Lu  <luangruo@yahoo.com>

	* src/term.c (produce_glyphs): Synchronize with gui_produce_glyphs.

2024-02-01  Po Lu  <luangruo@yahoo.com>

	Prevent continuation from affecting tab width in/after line prefix

	* src/dispextern.h (struct it) <wrap_prefix_width>: New field,
	synchronized with current_x when producing glyphs for wrap
	prefixes, and subtracted from it->current_x when computing tab
	widths.

	* src/term.c (produce_glyphs): Set wrap_prefix_width.

	* src/xdisp.c (start_display, display_min_width, move_it_to)
	(move_it_vertically_backward, move_it_by_lines)
	(window_text_pixel_size, display_tab_bar_line)
	(display_tool_bar_line, redisplay_internal, redisplay_window)
	(try_window_id, insert_left_trunc_glyphs)
	(extend_face_to_end_of_line, display_line)
	(Fmove_point_visually): Set or clear wrap_prefix_width as
	appropriate.
	(gui_produce_glyphs): Set or clear it->wrap_prefix_width.  When
	computing the base position of a tab character, do not subtract
	the continuation line width if a line prefix is the current
	iterator method.  Subtract the wrap_prefix_width otherwise, in
	order that the width of the tab is computed free of influence
	from the wrap prefix.

2024-02-01  Po Lu  <luangruo@yahoo.com>

	Introduce a global variant of visual-wrap-prefix-mode

	* doc/emacs/basic.texi (Continuation Lines):

	* etc/NEWS:

	* lisp/visual-wrap.el (visual-wrap-prefix-mode): Document this
	new global minor mode.
	(global-visual-wrap-prefix-mode): New global minor mode.

2024-01-31  Mattias Engdegård  <mattiase@acm.org>

	Bytecode engine fast-path streamlining of plain symbols

	* src/bytecode.c (exec_byte_code):
	Only use fast-path optimizations for calls and dynamic variable
	reference and setting where the symbol is plain, which is much faster.

2024-01-31  Mattias Engdegård  <mattiase@acm.org>

	Eliminate lazy bytecode loading

	The obsolete lazy-loaded bytecode feature, enabled by
	`byte-compile-dynamic`, slows down Lisp execution even when not in use
	because every call to a bytecode function has to check that function
	for laziness.

	This change forces up-front loading of all lazy bytecode so that we
	can remove all those checks.  (Dynamically loaded doc strings are not
	affected.)

	There is no point in generating lazy bytecode any more so we stop
	doing that; this simplifies the compiler.  `byte-compile-dynamic` now
	has no effect.

	This is a fully compatible change; the few remaining users of
	`byte-compile-dynamic` should not notice any difference.

	* src/lread.c (bytecode_from_rev_list): Force eager loading of
	lazy bytecode.
	* src/bytecode.c (exec_byte_code): Remove lazy bytecode checks.
	* src/eval.c (fetch_and_exec_byte_code, Ffetch_bytecode): Remove.
	(funcall_lambda): Call exec_byte_code directly, avoiding checks.
	* lisp/subr.el (fetch-bytecode): New definition, obsolete no-op.
	* lisp/emacs-lisp/disass.el (disassemble-1):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-unfold-bcf):
	Remove calls to fetch-bytecode.
	(byte-compile-dynamic): Update doc string.
	(byte-compile-close-variables, byte-compile-from-buffer)
	(byte-compile-insert-header, byte-compile-output-file-form)
	(byte-compile--output-docform-recurse, byte-compile-output-docform)
	(byte-compile-file-form-defmumble):
	Remove effects of byte-compile-dynamic.
	* doc/lispref/compile.texi (Dynamic Loading): Remove node now that
	the entire `byte-compile-dynamic` facility has been rendered inert.
	* etc/NEWS: Announce changes.

2024-01-31  Mattias Engdegård  <mattiase@acm.org>

	Allow equal user-defined hash table tests with different names

	Hash tables using different user-defined tests defined identically
	sometimes ended up using the wrong test (bug#68668).

	* src/fns.c (get_hash_table_user_test): Take test name into account
	when matching the test object.
	* test/src/fns-tests.el (fns--define-hash-table-test): New.

2024-01-31  Po Lu  <luangruo@yahoo.com>

	Don't hang when display objects are displaced by line or wrap-prefixes

	This fixes a hang that would frequently rear its ugly head while
	displaying messages in the `telega.el' instant messenger client,
	which inserts images approaching the width of the window with
	line and wrap prefixes.

	* src/xdisp.c (move_it_in_display_line_to): If a line or wrap
	prefix is set in place, do not generate continuation lines until
	a minimum of one glyph has been produced outside that prefix.
	(move_it_to): Remove the previous workaround that could not
	recover from errors caused by display strings.
	(display_line): Synchronize with move_it_in_display_line_to;
	remove old workaround that only provided for oversized wrap
	prefixes comprising `space' display objects.

2024-01-31  Yuan Fu  <casouri@gmail.com>

	Fix treesit--indent-1 regarding local parsers

	Take this code as an example:

	1 class Foo
	2 {
	3     /**
	4      * Block comment
	5      */
	6     function foo($c) {
	7     }
	8 }

	Suppose the block comment is covered by a local parser.  When we
	indent line 3, treesit--indent-1 will try to get the local parser at
	the BOL, and it'll get the local parser.  But it shouldn't use the
	local parser to indent this line, it should use the host parser of
	that local parser instead.

	So now, if treesit--indent-1 gets a local parser, but the local
	parser's root node's start coincides with BOL, treesit--indent-1 will
	use the host parser to indent this line.

	We also need to make treesit--update-ranges-local to save the host
	parser along with the local parser, and make
	treesit-local-parsers-at/on extract and return the host parser.

	I also switch the two cases in the cond form in treesit--indent-1:
	(null (treesit-parser-list)) and (car local-parsers), (car
	local-parsers) now takes precedence.

	* lisp/treesit.el (treesit-local-parsers-at):
	(treesit-local-parsers-on): Add WITH-HOST parameter.
	(treesit--update-ranges-local): Save the host parser to the local
	overlay.
	(treesit--indent-1): If the root node of the local parser is at BOL,
	use the host parser instead.

2024-01-31  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2024-01-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/inline.el (inline-const-val): Improve docstring

2024-01-30  Jim Porter  <jporterbugs@gmail.com>

	Fix typo in Eshell's "du" command

	This option is supposed to be "--si", for "International System of
	Units", not "--is".

	* lisp/eshell/em-unix.el (eshell/du): Change "is" to "si".

2024-01-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	derived.el: Delete old code (bug#68625)

	* lisp/emacs-lisp/derived.el (derived-mode-setup-function-name)
	(derived-mode-init-mode-variables, derived-mode-set-keymap)
	(derived-mode-set-syntax-table, derived-mode-set-abbrev-table)
	(derived-mode-run-hooks, derived-mode-merge-keymaps)
	(derived-mode-merge-syntax-tables, derived-mode-merge-abbrev-tables):
	Delete functions.

2024-01-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	(byte-compile): Try and make it a bit more readable

	* lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function):
	Use `macroexp-parse-body` and only handle closures.
	(byte-compile): Clarify the control and data flow a bit.

2024-01-29  Andrea Corallo  <acorallo@gnu.org>

	* Better type comparison in comp tests

	* test/src/comp-tests.el (comp-tests--type-lists-equal): New function.
	(comp-tests--types-equal): Handle function types.

2024-01-29  Daniel Brooks  <db48x@db48x.net>  (tiny change)

	Fix 'calc-math-read-preprocess-string' test (bug#66944).

2024-01-29  Po Lu  <luangruo@yahoo.com>

	* src/haiku_select.cc: Include stdckdint.h.

2024-01-29  Po Lu  <luangruo@yahoo.com>

	Don't open a new line for long defuns being inserted at column 0

	* lisp/vc/log-edit.el (log-edit--insert-filled-defuns): Don't
	open a new line for long defuns at column 0.

	* test/lisp/vc/log-edit-tests.el
	(log-edit-fill-entry-space-substitution): Adjust expected
	results to match change.
	(log-edit-fill-entry-initial-wrapping): New test.

2024-01-29  Po Lu  <luangruo@yahoo.com>

	* exec/configure.ac (OPENAT_SYSCALL): Define on MIPS.

2024-01-29  Po Lu  <luangruo@yahoo.com>

	Prevent filling from mangling ChangeLog defun lists

	* lisp/vc/log-edit.el (log-edit-fill-entry): Replace space
	characters within defun lists with NBSPs for the duration of
	`fill-region''s execution, so that they are never considered
	break points.

	* test/lisp/vc/log-edit-tests.el
	(log-edit-fill-entry-space-substitution): New test.

2024-01-29  Jim Porter  <jporterbugs@gmail.com>

	In Eshell, don't expand quoted tildes into a user's home directory

	* lisp/eshell/em-dirs.el (eshell-parse-user-reference): Don't expand
	quoted tildes.

	* test/lisp/eshell/em-dirs-tests.el
	(em-dirs-test/expand-user-reference/local)
	(em-dirs-test/expand-user-reference/quoted): New tests.

2024-01-29  Jim Porter  <jporterbugs@gmail.com>

	In Eshell, allow an escaped newline at the end of a command

	Normally, "echo<RET>" runs the command "echo".  Likewise,
	"echo\<RET><RET>" should too: we escape the first newline, and then
	the second one is unescaped and should send the command input to
	Eshell.  Previously, you had to press RET a third time, but now it
	works as expected.

	* lisp/eshell/esh-arg.el (eshell-looking-at-backslash-return): Make
	obsolete.
	(eshell-parse-backslash): A backslash sequence is only incomplete if
	there's nothing at all after it.

	* test/lisp/eshell/esh-arg-tests.el (esh-arg-test/escape/newline)
	(esh-arg-test/escape-quoted/newline): Remove inaccurate comment;
	escaped newlines are always special.
	(esh-arg-test/escape/trailing-newline): New test.

2024-01-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	xt-mouse.el: Obey `mouse-wheel-*-event` variables (bug#68698)

	* lisp/xt-mouse.el (xterm-mouse--same-button-p): New function.
	(xterm-mouse--read-event-sequence): Use it to obey
	`mouse-wheel-*-event` variables.
	* lisp/mwheel.el (mouse-wheel-obey-old-style-wheel-buttons):
	Update docstring.

2024-01-28  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	e11c9f9c6e8 Handle wrong login program in Tramp

	# Conflicts:
	#	lisp/net/tramp-sh.el

2024-01-28  Po Lu  <luangruo@yahoo.com>

	Improve filling of ChangeLog entries

	* lisp/vc/log-edit.el (log-edit--insert-filled-defuns): Rewrite
	completely.
	(log-edit-fill-entry): Abandon pcase and cl-lib.

2024-01-28  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer C23 ckd_* to Gnulib *_WRAPV and *_OK macros

	* src/alloc.c (android_make_lisp_symbol) [HAVE_ANDROID && !__clang__]:
	* src/android.c (android_blit_copy, android_blit_xor)
	(android_get_image):
	* src/androidmenu.c (android_menu_show):
	* src/androidselect.c (Fandroid_get_clipboard_data)
	(android_notifications_notify_1):
	* src/androidterm.c (android_decode_utf16)
	(android_text_to_string):
	* src/haiku_select.cc (be_display_notification):
	* src/sfnt.c (sfnt_read_cmap_format_8, sfnt_read_cmap_format_12)
	(sfnt_read_cmap_format_14, sfnt_read_cmap_table_1)
	(sfnt_expand_compound_glyph_context, sfnt_poly_edges_exact)
	(sfnt_read_meta_table, sfnt_read_ttc_header)
	(sfnt_read_cvt_table, sfnt_read_fpgm_table)
	(sfnt_read_prep_table, sfnt_make_interpreter)
	(sfnt_interpret_simple_glyph, sfnt_interpret_compound_glyph_2)
	(sfnt_interpret_compound_glyph, sfnt_read_default_uvs_table)
	(sfnt_read_nondefault_uvs_table, sfnt_create_uvs_context)
	(sfnt_read_fvar_table, sfnt_read_gvar_table)
	(sfnt_read_avar_table, sfnt_read_cvar_table):
	* src/sfntfont-android.c (GET_SCANLINE_BUFFER):
	* src/textconv.c (really_commit_text, really_set_composing_text)
	(really_replace_text, get_surrounding_text):
	Prefer C2x stdckdint.h macros to intprops.h macros.

2024-01-28  Paul Eggert  <eggert@cs.ucla.edu>

	Rename TAG_PTR to TAG_PTR_INITIALLY

	* src/lisp.h (TAG_PTR_INITIALLY): Rename from TAG_PTR, since calls
	can be used only as initializers, and the convention elsewhere in
	lisp.c is to give these macros names ending in ‘_INITIALLY’.
	This should help avoid confusion such as we recently experienced
	in make_lisp_symbol_internal.  All uses changed.

2024-01-28  Paul Eggert  <eggert@cs.ucla.edu>

	* src/lisp.h: Improve TAG_PTR comments.

2024-01-28  Paul Eggert  <eggert@cs.ucla.edu>

	Fix C conformance issue in LISPSYM_INITIALLY

	* src/lisp.h (LISPSYM_INITIALLY): Remove unnecessary cast to char *.
	The C standard allows but does not require support for casts to
	pointers in constant expressions in static initializers.

2024-01-28  Eli Zaretskii  <eliz@gnu.org>

	Fix "emacs -nw" on MS-Windows

	* src/w32term.c (w32_flip_buffers_if_dirty): Do nothing if F is
	not a GUI frame.  This avoids rare crashes in "emacs -nw".
	* src/w32console.c (initialize_w32_display): Set the
	ENABLE_EXTENDED_FLAGS bit in 'prev_console_mode'.

2024-01-28  Jim Porter  <jporterbugs@gmail.com>

	Support setting umask symbolically in Eshell

	* lisp/eshell/em-basic.el (eshell/umask): Handle setting umask
	symbolically, and make setting umask take precedence over "-S".

	* test/lisp/eshell/em-basic-tests.el
	(em-basic-test/umask-print-numeric, em-basic-test/umask-read-symbolic,
	em-basic-test/umask-set): Rename to...
	(em-basic-test/umask/print-numeric)
	(em-basic-test/umask/print-symbolic, em-basic-test/umask/set-numeric):
	... these.
	(em-basic-test/umask/set-symbolic, em-basic-test/umask/set-with-S):
	New tests.

	* etc/NEWS: Announce this change.

2024-01-28  Yuan Fu  <casouri@gmail.com>

	Fix treesit-range-rules

	* lisp/treesit.el (treesit-range-rules): Reset :local like other
	keywords.  The other chunk is indentation fix.

2024-01-27  Jim Porter  <jporterbugs@gmail.com>

	* doc/lispref/package.texi (Multi-file Packages): Document ".elpaignore".

2024-01-27  Jim Porter  <jporterbugs@gmail.com>

	Fix command replacement with the Eshell builtin versions of "sudo" and "doas"

	This is particularly important when the inner command to execute is an
	alias.  Aliases throw 'eshell-replace-command' too, so we want to do
	this in two phases: first, replace the "sudo"/"doas" with a
	let-binding of 'default-directory', and then later, let the alias code
	do its own replacement (bug#68074).

	* lisp/eshell/em-tramp.el (eshell/sudo, eshell/doas): Use
	'eshell-replace-command' to wrap the inner command.
	* test/lisp/eshell/em-tramp-tests.el (mock-eshell-named-command):
	Remove.
	(em-tramp-test/sudo-basic, em-tramp-test/sudo-user)
	(em-tramp-test/doas-basic, em-tramp-test/doas-user): Catch
	'eshell-replace-command'.

2024-01-27  Konstantin Kharlamov  <Hi-Angel@yandex.ru>

	Support a local repo as URL in 'treesit-language-source-alist'

	Sometimes people may need to bisect to find specific revision
	in a grammar library's repo.  In this case they'd want to point
	the URL to the local repo to avoid cloning it on every rebuild.
	So add support for a directory instead of URL in
	'treesit-language-source-alist'.
	* lisp/treesit.el (treesit--install-language-grammar-1): Test
	if URL is a local directory.  Then if it is, avoid cloning the
	repo and removing the path on success.
	(treesit--git-clone-repo): Factor out the code for cloning to
	a separate function.
	(treesit--git-checkout-branch): A helper to checkout the
	revision for cases where we didn't clone the repo but want it
	to point the revision.  (Bug#68579)

2024-01-27  Manuel Giraud  <manuel@ledu-giraud.fr>

	Enable marking tagged with ls -F

	Bug#68637

	* lisp/image/image-dired-dired.el (image-dired-mark-tagged-files):
	Enable marking tagged for executable and symlink images when
	'dired-listing-switches' includes -F.

2024-01-27  Eli Zaretskii  <eliz@gnu.org>

	Allow users to opt out of following Windows Dark mode

	* src/w32fns.c (globals_of_w32fns) <w32-follow-system-dark-mode>:
	New variable.
	(w32_applytheme): Disable application of Dark mode if
	'w32-follow-system-dark-mode' is nil.

	* etc/NEWS:
	* doc/emacs/msdos.texi (Windows Misc): Document
	'w32-follow-system-dark-mode'.

2024-01-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/pdumper.c (Fdump_emacs_portable): Simplify commit 16a16645f524

2024-01-27  Daniel Brooks  <db48x@db48x.net>  (tiny change)

	Calc parses fractions written using U+2044 FRACTION SLASH

	Fractions of the form 123⁄456 are handled as if written 123:456. Note
	in particular the difference in behavior from U+2215 DIVISION SLASH
	and U+002F SOLIDUS, which result in division rather than a rational
	fraction.
	* lisp/calc/calc-aent.el (math-read-replacement-list): Substitute a
	colon for any fraction slash.  (Bug#66944)

	* test/lisp/calc/calc-tests.el (calc-frac-input): Test various
	fraction types.

	* etc/NEWS:
	* doc/misc/calc.texi (Fractions): Mention fraction slash, precomposed
	fractions.

2024-01-27  Eshel Yaron  <me@eshelyaron.com>

	Avoid signaling errors in emoji.el

	* lisp/international/emoji.el (emoji--read-emoji): Signal
	user-error on empty input (bug#68671).

2024-01-27  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	53481cc9546 Fix description of when "\xNNN" is considered a unibyte c...
	1ef8b90ae06 Simplify imenu setup for {cmake,dockerfile}-ts-modes
	7338af9c986 ; * etc/PROBLEMS: Document that GnuPG 2.4.4 solves the Ea...
	5483a1df99c Improve documentation of profiler commands
	fb4cf0ab46d ; Fix xref under Output Overrides in Elisp manual.
	aa6c24da61f Fix broken links to Freedesktop notifications spec
	14d68221d26 Fix nasty cut'n'waste error in Tramp
	51ca049608c Fix image-dired-tags-db-file void variable error
	c450eec07ff typescript-ts-mode: Skip test if tsx grammar missing
	9841ced147f ; Fix typos
	557ed9c0463 * admin/README: Document the run-codespell script.
	5701f96335c * admin/README: Fix entry on coccinelle subdirectory.
	1805f4bfd62 Add script admin/run-codespell and supporting files

2024-01-27  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	3a541b25df5 Update Polish translation of tutorial
	6df731431ad * doc/misc/gnus.texi (Summary Mail Commands): Fix command...
	409bb8eb243 ; * doc/misc/gnus.texi (Scoring): Typo (bug#68581).
	25734dd40c1 ; Delete pre-release remainder in NEWS.27

2024-01-27  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	b4baf0f8216 ; Update ChangeLog.4 with latest changes.
	c633c90993f * Update etc/HISTORY and ChangeLog.4 for 29.2 release.

2024-01-27  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	20125ad97b4 ; admin/authors.el (authors-aliases): Update for Emacs 29.2.
	92a7132bd6c ; * etc/NEWS: Clean up for Emacs 29.2.
	314ac2e4317 ; * lisp/mail/rmail.el (rmail-show-message-verbose-min): ...
	2cb1b76696b diff-mode: Support committing diff with file deletions
	b96aa528f64 * lisp/net/eww.el (eww-retrieve): Fix args of eww-render ...

2024-01-27  Mattias Engdegård  <mattiase@acm.org>

	Add DOHASH_SAFE, make DOHASH faster (bug#68690)

	Revert DOHASH to the fast (field-caching) implementation but with
	an assertion to detect misuses.  Add DOHASH_SAFE for use in
	code that must tolerate arbitrary mutation of the table being
	iterated through.

	* src/lisp.h (DOHASH): Go back to fast design that only allows
	restricted mutation, but with a checking assertion.
	(DOHASH_SAFE): New macro that tolerates arbitrary mutation while being
	much simpler (and acceptably fast).
	* src/fns.c (Fmaphash):
	* src/comp.c (compile_function, Fcomp__compile_ctxt_to_file):
	Use DOHASH_SAFE.

2024-01-27  Thierry Volpiatto  <thievol@posteo.net>

	Add new option to 'register-use-preview'

	When set to 'insist', exit minibuffer with same key as
	register name, instead of pressing RET.  E.g., pressing
	"a" selects register "a", then pressing "a" again exits
	the minibuffer.

	* lisp/register.el (register-use-preview): New option 'insist'.
	(register-read-with-preview-fancy): Handle new option.
	* doc/emacs/regs.texi: Document it.
	* etc/NEWS: Mention 'insist'.  (Bug#68654)

2024-01-27  Brad Howes  <bradhowes@mac.com>  (tiny change)

	Downcase host names in ansi-osc.el to match URL parsing behavior

	* lisp/ansi-osc.el (ansi-osc-directory-tracker): Compare
	with 'system-name' case-insensitively.  (Bug#68632)

2024-01-27  Mekeor Melire  <mekeor@posteo.de>

	Add option Info-url-alist

	* lisp/info.el (Info-url-alist): New option mapping manuals
	to URLs.
	(Info-url-for-node): Use it.
	* test/lisp/info-tests.el (test-info-urls): Add more tests.
	In particular, 'Info-url-for-node' should error when
	manual-name is not handled in 'Info-url-alist'.
	* etc/NEWS: Announce the change.  (Bug#67615)

2024-01-27  Jakub Ječmínek  <jecminek.k@gmail.com>  (tiny change)
	    kobarity  <kobarity@gmail.com>

	Fix syntax highlighting after string literal concat in python-mode

	* lisp/progmodes/python.el (python-syntax-stringify): Fix
	incorrect font-lock after string literal concatenation.
	(Bug#45897)

	* test/lisp/progmodes/python-tests.el
	(python-font-lock-string-literal-concatenation): New test.

2024-01-27  Eshel Yaron  <me@eshelyaron.com>

	Optionally avoid extending 'completion-at-point-functions'

	It is now possible to avoid extending
	'completion-at-point-functions' in Text mode and its descendants.
	* lisp/textmodes/text-mode.el
	(text-mode-meta-tab-ispell-complete-word): Rename to...
	(text-mode-ispell-word-completion): ...this.  Extend with another
	option 'completion-at-point'.
	(text-mode): Only extend 'completion-at-point-functions' when
	'text-mode-ispell-word-completion' is 'completion-at-point'.
	(Bug#67527)

	* etc/NEWS: Update the entry about 'M-TAB' in Text mode.

2024-01-27  Eli Zaretskii  <eliz@gnu.org>

	Minor fix in 'describe-language-environment'

	* lisp/international/mule-cmds.el (describe-language-environment):
	Use 'current-language-environment' as DEFAULT in the prompt.
	Patch by Thierry Volpiatto <thievol@posteo.net>.  (Bug#68602)

2024-01-27  Eli Zaretskii  <eliz@gnu.org>

	Improve 'refill-mode' in Org buffers

	* lisp/textmodes/refill.el (refill-fill-paragraph-at): Use
	'fill-forward-paragraph' instead of 'forward/backward-paragraph',
	so that modes could customize the behavior.  (Bug#68418)

2024-01-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	pdumper.c: Minor improvements found while debugging

	* src/pdumper.c (dump_hash_table_list): Remove unused return value;
	and simplify with `vconcat`.
	(dump_charset): Don't copy uninitialized fields.

2024-01-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	pdumder.c: Fix bug#68690

	The problem was that the offset computed for the `charset_table` array
	was a multiple of 4 but the `struct charset` needed an alignment on
	a multiple of 8, so `dump_charset` inserted 4 bytes of padding,
	whereas you can't have padding at the beginning of an array.

	* src/pdumper.c (dump_charset): Don't set alignment here.
	(dump_charset_table): Set it here instead.

2024-01-27  Po Lu  <luangruo@yahoo.com>

	Intercept calls to `openat' under Android

	* exec/configure.ac (OPEN_SYSCALL, OPENAT_SYSCALL): Define new
	macros.

	* exec/exec.h (struct exec_tracee): New field `sp'.

	* exec/trace.c (handle_openat): New function.
	(process_system_call): If handle_openat executes successfully,
	save the unmodified stack pointer within the tracee structure to
	be restored once the system call completes.

2024-01-27  Po Lu  <luangruo@yahoo.com>

	Move Visual Wrap menu to menu-bar.el

	* lisp/menu-bar.el (menu-bar-line-wrapping-menu): Insert new
	menu item controlling visual-wrap-prefix-mode.

	* lisp/visual-wrap.el: Remove menu bar autoload.

2024-01-27  Po Lu  <luangruo@yahoo.com>

	* lisp/visual-wrap.el (visual-wrap-prefix-mode): Improve doc string.

2024-01-27  Po Lu  <luangruo@yahoo.com>

	Import ELPA package adaptive-wrap as visual-wrap

	* doc/emacs/basic.texi (Continuation Lines): Document
	visual-wrap and its applications.

	* etc/NEWS (Editing Changes in Emacs 30.1): Ditto.

	* lisp/visual-wrap.el (visual-wrap-extra-indent)
	(visual-wrap--face-extend-p, visual-wrap--prefix-face)
	(visual-wrap--prefix, visual-wrap-fill-context-prefix)
	(visual-wrap-prefix-function, visual-wrap-prefix-mode, lookup-key)
	(visual-wrap): New file.  Update copyright years and rename to
	`visual-wrap'.

2024-01-27  João Távora  <joaotavora@gmail.com>

	Eglot: fix eglot--dumb-tryc for "only possible completion" case

	* lisp/progmodes/eglot.el (eglot--dumb-tryc): Fix for "only possible
	  completion" case.

2024-01-26  Jim Porter  <jporterbugs@gmail.com>

	Fix detection of directly-invokable commands in Eshell

	I think this regressed partly due to eef32d13da58, so let's add some
	regression tests to make sure that doesn't happen again.

	* lisp/eshell/em-unix.el (eshell-unix-initialize): Add "compile".

	* lisp/eshell/esh-cmd.el (eshell--find-subcommands): Yield the second
	element of the subcommand.
	(eshell--invoke-command-directly-p): Rename and account for
	'eshell-with-copied-handles'.
	(eshell-invoke-directly): Rename to...
	(eshell-invoke-directly-p): ... this, and use 'pcase' to make the
	logic clearer.

	* lisp/eshell/esh-mode.el (eshell-send-input): Always queue input if
	the process is running; rename some locals to be clearer.

	* lisp/eshell/esh-var.el (eshell-var-initialize): Add "env" as a
	complex command.

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test--deftest-invoke-directly): New macro.
	(no-args, with-args, multiple-cmds, subcmd, complex, complex-subcmd):
	New test cases.

2024-01-26  Eli Zaretskii  <eliz@gnu.org>

	Fix crash backtraces on MS-Windows, broken by ASLR

	* src/w32fns.c (DEFAULT_IMAGE_BASE): Define for 64-bit and 32-bit
	MinGW builds.
	(emacs_abort): Correct the callstack addresses for potential
	relocation of the image base due to ASLR.  This makes 'addr2line'
	be able to interpret emacs_backtrace.txt when ASLR is in effect,
	which it is on every modern version of MS-Windows.  (Bug#63365)

	* configure.ac (LD_SWITCH_SYSTEM_TEMACS) [mingw32]: Add comment
	about keeping the image-base values in sync with w32fns.c.

	* etc/DEBUG (How to disable ASLR): New section.

2024-01-26  Jim Porter  <jporterbugs@gmail.com>

	Add support for running commands via Eshell's "env" command

	* (eshell-handle-local-variables): Move most of the code to...
	(eshell-parse-local-variables): ... here.
	(eshell/env): Call 'eshell-parse-local-variables'.

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/local-variables/env): New test.

	* doc/misc/eshell.texi (Built-ins): Describe the new behavior.

	* etc/NEWS: Announce this change.

2024-01-26  Po Lu  <luangruo@yahoo.com>

	Avert race condition between window attachment and buffer swap

	* java/org/gnu/emacs/EmacsView.java (swapBuffers): Synchronize
	such that code cannot execute between the bitmap's being loaded
	and being transferred to surfaceView.
	(onDetachedFromWindow): Recycle bitmap after the surface view is
	reset.

	* java/org/gnu/emacs/EmacsWindow.java (recreateActivity):

	* src/android.c (android_init_emacs_window)
	(android_recreate_activity):

	* src/androidfns.c (Fandroid_recreate_activity)
	(syms_of_androidfns): New functions for debugging window
	attachment.

	* src/androidgui.h: Update prototypes.

2024-01-26  Jim Porter  <jporterbugs@gmail.com>

	Improve handling of local variable settings in Eshell

	This ensures that these commands work the same as normal commands,
	aside from making environment variable settings local to that command.
	Among other things, this means that "VAR=value cd dir/" now changes
	the directory correctly.

	* lisp/eshell/esh-var.el (eshell-in-local-scope-p)
	(eshell-local-variable-bindings): New variables.
	(eshell-var-initialize, eshell-set-variable): Use
	'eshell-local-variable-bindings'.
	(eshell-handle-local-variables): Don't use 'eshell-as-subcommand'.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/local-variables/cd):
	New test.

2024-01-26  Dmitry Gutov  <dmitry@gutov.dev>

	python--treesit-syntax-propertize: Fix edits in the middle

	* lisp/progmodes/python.el (python--treesit-syntax-propertize):
	Process the beginning and the end of the triple-quoted string's
	delimiters separately.  Among other things, that still works when
	the beginning is outside of the propertized region (bug#68445).

2024-01-26  Dmitry Gutov  <dmitry@gutov.dev>

	project--read-project-list: Handle corrupted file contents

	* lisp/progmodes/project.el (project--read-project-list):
	Handle the 'end-of-file' error (bug#68546).

2024-01-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-generic.el (cl--generic-compiler): Clarify the test

	Use `compiled-function-p`.

2024-01-25  Juri Linkov  <juri@linkov.net>

	* lisp/simple.el (next-line-completion): Better handing of group lines.

	Simplify to not compare the result of 'move-to-column'
	with the value 'column'.  Such comparison prevented from moving
	over lines without completion candidates such as group lines (bug#68688).

	* test/lisp/minibuffer-tests.el (completions-group-navigation-test):
	Add more group candidates to create more columns and to test
	moving over group lines and over columns without candidates.

2024-01-25  Juri Linkov  <juri@linkov.net>

	* lisp/dired.el (dired--move-to-next-line): Improve to avoid an infinite loop.

	An infinite loop is possible in a directory without files and subdirectories,
	where even lines with . and .. are omitted, so 'dired-between-files' is true
	for all Dired lines.  For the case of dired-movement-style=cycle
	a guard is triggered when the loop wraps twice while the value 'arg'
	is not changing.  And for the case of dired-movement-style=bounded
	a guard is triggered when point doesn't move while trying to
	go back to the last non-empty line.

2024-01-25  Andrea Corallo  <acorallo@gnu.org>

	* Make comp tests robust against sxhash-equal internal changes

	* test/src/comp-tests.el (cl-seq): Require.
	(comp-tests--types-equal): New function.
	(comp-tests-check-ret-type-spec): Make use of.

2024-01-25  João Távora  <joaotavora@gmail.com>

	Eglot: bump to 1.17

	* etc/EGLOT-NEWS: Update.

	* lisp/progmodes/eglot.el (Version): Bump to 1.17
	(Package-Requires): Bump jsonrpc dependency to 1.24

2024-01-25  João Távora  <joaotavora@gmail.com>

	Eglot: fix bug introduced when "fixing" middle-of-symbol completions

	Culprit:

	    commit a6ef458e3831001b0acad57cf8fa75b77a4aff3f
	    Author: João Távora <joaotavora@gmail.com>
	    Date:   Tue Dec 26 00:31:29 2023 +0000

	        Eglot: partial fix for middle-of-symbol completions

	The decision to restore the buffer state to when the last LSP
	completion set was invoked is rock-solid (because that the state
	those completions' edits apply to).

	However, when caching the LSP completions across multiple
	eglot-completion-at-point calls, we must make sure to also restore the
	values of the local values, such as 'bounds-string'.  This allows us
	to do that restoration.

	* lisp/progmodes/eglot.el (eglot-completion-at-point): Also
	restore bounds-string from capf session cache.

	Github-reference: https://github.com/joaotavora/eglot/issues/1349

2024-01-25  Spencer Baugh  <sbaugh@janestreet.com>

	Update minibuffer-show-help based on minibuffer-visible-completions

	minibuffer-visible-completions makes some more convenient bindings
	available, but the help shown by minibuffer-show-help wasn't
	suggesting them.  Now it is.

	* lisp/simple.el (completion-setup-function): Change help text when
	minibuffer-visible-completions is non-nil. (bug#68689)

2024-01-25  Spencer Baugh  <sbaugh@janestreet.com>

	Fix next-line-completion for multi-line completions

	Previously it would not move out of a multi-line completion, and now it will.

	* lisp/simple.el (next-line-completion): Move to the completion start
	or end before going forward or backward lines.  (bug#68688)

2024-01-25  Corwin Brust  <corwin@bru.st>

	Add more erc-message-type choices

	* lisp/erc/erc.el (erc-message-type): Add more of the possible
	IRC message types to customize widget for `erc-*hide-list'.
	New options have tags informed by these descriptions:
	https://modern.ircdocs.horse/#numerics   (Bug#68601)

2024-01-25  F. Jason Park  <jp@neverwas.me>

	Add replacement-text field to erc-input struct

	* etc/ERC-NEWS: Promote `refoldp' slot from simulated to real.
	Mention new `substxt' slot of `erc-input' struct.
	* lisp/erc/erc-common.el (erc-input): Add `substxt' and `refoldp'
	slots.
	(erc--input-split): Move `refoldp' to "superclass".
	* lisp/erc/erc-goodies.el (erc--command-indicator-permit-insertion):
	Use `substxt' field instead of overloading `insertp'.
	(erc--command-indicator-display): Accept extra lines for
	compatibility.
	* lisp/erc/erc.el (erc-pre-send-functions): Revise doc.
	(erc--input-ensure-hook-context, erc-input-refoldp): Remove unused
	functions, originally meant to be new in ERC 5.6.
	(erc--run-send-hooks): Copy data from additional fields of `erc-input'
	object to `erc--input-split' workspace object.
	(erc--send-input-lines): Handle `substxt' field of `erc-input' object
	when it's non-nil.  (Bug#68265)

2024-01-25  F. Jason Park  <jp@neverwas.me>

	Force erc-speedbar to update on insertion

	* lisp/erc/erc-speedbar.el (erc-speedbar--force-update-interval-secs,
	erc-speedbar--last-ran): New variables.
	(erc-speedbar--reset-last-ran-on-timer,
	erc-speedbar--run-timer-on-post-insert): New functions.
	(erc-nickbar-mode, erc-nickbar-enable, erc-nickbar-disable): Use
	`erc-insert-post-hook' and `speedbar-timer-hook' to update the
	speedbar periodically.  (Bug#63595)

2024-01-25  F. Jason Park  <jp@neverwas.me>

	Actually derive channel membership from PREFIX in ERC

	* lisp/erc/erc-backend.el (erc--with-isupport-data): Add comment for
	possibly superior alternate implementation.
	* lisp/erc/erc-common.el (erc--get-isupport-entry): Use helper to
	initialize traditional prefix slots in overridden well-known
	constructor.
	(erc--parsed-prefix): Reverse order of characters in the `letters'
	and `statuses' slots, in their defaults and also their definitions.
	(erc--strpos): New function, a utility for finding a single character
	in a string.
	* lisp/erc/erc.el (erc--define-channel-user-status-compat-getter):
	Modify to query advertised value for associated mode letter at runtime
	instead of baking it in.
	(erc-channel-user-voice, erc-channel-user-halfop, erc-channel-user-op,
	erc-channel-user-admin, erc-channel-user-owner): Supply second
	argument for fallback mode letter.
	(erc--cusr-status-p, erc--cusr-change-status): New functions for
	querying and modifying `erc-channel-user' statuses.
	(erc-send-input-line): Update speaker time in own nick's
	`erc-channel-member' entry.
	(erc-get-channel-membership-prefix): Adapt code to prefer advertised
	prefix for mode letter.
	(erc--parsed-prefix): Save "reversed" `letters' and `statuses' so that
	they're ordered from lowest to highest semantically.
	(erc--get-prefix-flag, erc--init-cusr-fallback-status,
	erc--compute-cusr-fallback-status): New functions for retrieving
	internal prefix values and massaging hard-coded traditional prefixes
	so they're compatible with existing `erc-channel-member' update code.
	(erc--partition-prefixed-names): New function, separated for testing
	and for conversion to a generic in the future when ERC supports
	extensions that list member rolls in a different format.
	(erc-channel-receive-names): Refactor to use new status-aware update
	and init workhorse functions for updating and initializing a
	`erc-channel-members' entry.
	(erc--create-current-channel-member): New "status-aware" function
	comprising the `addp' path of `erc-update-current-channel-member'.
	(erc--update-current-channel-member): New "status-aware" function
	comprising the "update" path of `erc-update-current-channel-member',
	which ran when an existing `erc-channel-members' entry for the queried
	nick was found.
	(erc-update-current-channel-member): Split code body into two
	constituent functions, both for readability and for usability, so
	callers can more explicitly request the desired operation in a
	"status-aware" manner.
	(erc--update-membership-prefix): Remove unused function, originally
	meant to be new in ERC 5.6.
	(erc--process-channel-modes): Call `erc--cusr-change-status' instead
	of `erc--update-membership-prefix'.
	(erc--shuffle-nuh-nickward): New utility function to ensure code like
	`erc--partition-prefixed-names' can use `erc--parse-nuh' in a
	practical and relatively convenient way in the near future.
	* test/lisp/erc/erc-scenarios-base-chan-modes.el
	(erc-scenarios-base-chan-modes--speaker-status): New test.
	* test/lisp/erc/erc-tests.el (erc--parsed-prefix): Reverse expected
	order of various slot values in `erc--parsed-prefix' objects.
	(erc--get-prefix-flag, erc--init-cusr-fallback-status,
	erc--compute-cusr-fallback-status, erc--cusr-status-p,
	erc--cusr-change-status): New tests.
	(erc--update-channel-modes, erc-process-input-line): Use newly
	available utilities imported from common library.
	* test/lisp/erc/resources/base/modes/speaker-status.eld: New file.
	(Bug#67220)

2024-01-25  F. Jason Park  <jp@neverwas.me>

	Reserve negative depth range for ERC's insert hooks

	* etc/ERC-NEWS: Mention additional reserved depth range of -80 to -20.
	Also mention possibly having to cycle module activation state after
	updating options.
	* lisp/erc/erc-goodies.el (erc-irccontrols-mode,
	erc-irccontrols-enable): Add `erc-controls-highlight' to
	`erc-insert-modify-hook' at depth -50.
	* lisp/erc/erc.el (erc-insert-modify-hook): Mention negative
	hook-depth range in doc string.

2024-01-25  Po Lu  <luangruo@yahoo.com>

	Prevent matrices from remaining invalid post mini-window resize

	* src/androidfns.c (android_create_tip_frame): Enable building
	with GLYPH_DEBUG.

	* src/window.c (resize_mini_window_apply): Garbage the frame if
	F->redisplay is already set to indicate that redisplay_internal
	should nevertheless return to it.

2024-01-25  João Távora  <joaotavora@gmail.com>

	Eglot: try even harder to avoid other completion styles (bug#68699)

	Any completion style except for eglot--dumb-flex spells trouble for
	Eglot, for the well known reason that LSP is geared towards completion
	tooltips and none of Emacs' partial-completion shenanigans.

	This commit puts a "try-completion" function that doesn't return nil
	in the eglot--dumb-flex completion style so that other styles aren't
	tried (partial-completion, in particular, errors out).

	The function often doesn't do anything very useful, but at least it
	doesn't stop the more usual *Completions* buffer from appearing.

	* lisp/progmodes/eglot.el (eglot--dumb-tryc): New helper.
	(completion-styles-alist): Add it to the dumb-flex style.

2024-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/lisp.h (DOHASH): Handle rehashing (bug#68690)

	I gave too much credit to the comment, and didn't realize that macro
	was used in places that didn't obey the comment.
	This macro is getting pretty hideous!

2024-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	Take stock of the wheel-up/down confusion

	While we're hopefully all aware of the usual confusion between
	the scroll operation moving the document or moving the viewport, Emacs
	has its very own instance of that confusion where the
	`mouse-wheel-down-event` variable is the one that (used to) hold
	the value `wheel-up` and vice versa.

	Thanks for Po Lu's commit 957b4f826a4 which not only fixed my change
	but brought that confusion to my attention.
	This patch doesn't fix the problem, but tries to fix the other places
	in the code where we did not take it into account.

	* doc/lispref/commands.texi (Misc Events): Mention the
	wheel-up/down confusion.

	* lisp/progmodes/flymake.el (flymake--mode-line-counter-map):
	* lisp/completion-preview.el (completion-preview--mouse-map):
	Fix wheel-up/down confusion.

	* lisp/mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event):
	Fix docstrings.

2024-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix build  when CHECK_LISP_OBJECT_TYPE is set

	* src/lisp.h (make_lisp_symbol_internal): Fix last commit.

2024-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/pcase.el (Commentary:): Add paper reference

2024-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	(struct composition): Remove dependency on hash-table internals

	`struct composition` kept an index into the internal `key_and_value` array
	of hash tables, which only worked because of details of how
	hash-tables are handled.  Replace it with a reference to the
	key stored at that location in the hash-table, which saves us an
	indirection while at it.

	* src/composite.h (struct composition): Replace `hash_index` with
	the actual `key`.
	(COMPOSITION_KEY): Simplify accordingly.
	(mark_composite): Declare.
	* src/composite.c (get_composition_id): Adjust accordingly.
	(mark_composite): New function.

	* src/charset.c (mark_charset): Uncomment.
	* src/lisp.h (mark_charset): Declare.
	* src/alloc.c (garbage_collect): Call `mark_charset` and `mark_composite`.
	* src/pdumper.c (hash_table_contents): Remove invalid comment, since
	compositions aren't dumped.

2024-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	(DOHASH): Change calling convention

	This leads to simpler code in the users, and more efficient machine
	code because we don't repeatedly need to fetch the `table_size`
	and `key_and_value` fields of the hash table object.

	* src/lisp.h (DOHASH): Rewrite.
	* src/composite.c (composition_gstring_lookup_cache): Simplify.
	(composition_gstring_cache_clear_font):
	* src/print.c (print):
	* src/pdumper.c (hash_table_contents):
	* src/minibuf.c (Ftest_completion):
	* src/json.c (lisp_to_json_nonscalar_1):
	* src/emacs-module.c (module_global_reference_p):
	* src/comp.c (compile_function, Fcomp__compile_ctxt_to_file):
	* src/fns.c (Fmaphash): Adjust to new calling convention.

2024-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>
	    Paul Eggert  <eggert@cs.ucla.edu>

	Remove too-tricky make_lisp_symbol optimization

	Simplify optimization for make_lisp_symbol, so that
	it’s less tricky and works well enough for gcc -Og or -O2.
	* src/lisp.h (lisp_h_builtin_lisp_symbol): Remove.
	(builtin_lisp_symbol) [DEFINE_KEY_OPS_AS_MACROS]: Remove.
	(make_lisp_symbol_nodebug): New internal static function,
	which is like the old make_lisp_symbol but without the eassert.
	(make_lisp_symbol, builtin_lisp_symbol): Use it, so that
	make_lisp_symbol has the eassert but builtin_lisp_symbol doesn’t.

2024-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	(struct charset): Remove dependency on hash-table internals

	`struct charset` kept an index into the internal `key_and_value` array
	of hash tables, which only worked because of details of how
	hash-tables are handled.  Replace it with a reference to the
	value stored at that location in the hash-table, which saves us an
	indirection while at it.

	* src/charset.h (struct charset): Replace `hash_index` field with
	`attributes` field.
	(CHARSET_ATTRIBUTES): Simplify accordingly.
	(CHARSET_HASH_INDEX): Delete unused macro.
	* src/charset.c (Fdefine_charset_internal):
	* src/pdumper.c (dump_charset): Adjust accordingly.
	(dump_charset_table): Set the referrer since that's needed while
	dumping Lisp_Object fields.

2024-01-23  Michael Albinus  <michael.albinus@gmx.de>

	Fix cus-test-deps

	* admin/cus-test.el (cus-test-deps): Add the "quail/" subdirectory
	to default-directory, temporarily.

2024-01-23  Basil L. Contovounesios  <contovob@tcd.ie>

	Further shrink eglot--{}

	Up to and including Emacs 29, :size 0 was an alias for :size 1.
	Emacs 30 gained support for :size 0 hash tables (bug#68244).

	* lisp/progmodes/eglot.el (eglot--{}): Define as truly zero-sized.

2024-01-23  Po Lu  <luangruo@yahoo.com>

	Correct crash when executing IP within twilight zone

	* src/sfnt.c (sfnt_address_zp2, sfnt_address_zp1)
	(sfnt_address_zp0): Don't save into X or Y if the zone is set to
	the twilight zone and they are NULL.

2024-01-23  Po Lu  <luangruo@yahoo.com>

	* src/sfnt.c (sfnt_mul_f26dot6_fixed): Correct typo in last change.

2024-01-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/regex-emacs.c (forall_firstchar_1): Improve corner case

	Fixes a "FORALL_FIRSTCHAR: Broken assumption2!!" warning with:

	    "^\\(# *\\)\\([^ ]+?\\) *: *\\(.*?\\(?:\n\\1[ \t]+.*?\\)*\\)[[:space:]]*$"

2024-01-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/pdumper.c (dump_object_needs_dumping_p): Simplify

	(hash_table_contents): Use DOHASH.

2024-01-22  Andrea Corallo  <acorallo@gnu.org>

	Revert "* Update a comp test (bug#68523)"

	* test/src/comp-tests.el (comp-tests-ret-type-spec-71): Reverts commit
	c5031a52c5c6ad74fab27d3754700e7457717516 to compensate for
	50201e03b9c.

2024-01-22  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/leim/quail/indian.el (tamil-input): Use `quail' as parent group.

2024-01-22  Po Lu  <luangruo@yahoo.com>

	Do not overwrite flags of succeeding points during generic move

	* src/sfnt.c (sfnt_move): Save FLAGS and restore it after X
	axis movement loop.

2024-01-22  Po Lu  <luangruo@yahoo.com>

	Correct values of INSTCTRL flags tested

	* src/sfnt.c (sfnt_mul_f26dot6_round): New function.
	(sfnt_mul_f26dot6_fixed): Replace by call to
	sfnt_mul_fixed_round.
	(MUL): Round result, as the Apple and MS scalers do.
	(sfnt_interpret_control_value_program): The instruction control
	flag which reverts CVT modifications is 2, not 4.

2024-01-22  Paul Eggert  <eggert@cs.ucla.edu>

	Add an eassert back to XSYMBOL

	Problem reported by Alan Mackenzie in:
	https://lists.gnu.org/r/emacs-devel/2024-01/msg00755.html
	* src/lisp.h (XSYMBOL): If the arg is not a bare symbol, then
	eassert (symbols_with_pos_enabled).  This shouldn’t affect code
	generated for regular builds, and could catch caller errors in
	debug builds.  For debug builds although this slows things down
	XSYMBOL should still be faster than it was the day before
	yesterday, as there’s still no need to eassert (SYMBOLP	(a)).

2024-01-22  Paul Eggert  <eggert@cs.ucla.edu>

	Speed up builtin_lisp_symbol when not optimizing

	This should help when building with --enable-checking and
	compiling with gcc -O0.  Problem reorted by Stefan Monnier in:
	https://lists.gnu.org/r/emacs-devel/2024-01/msg00770.html
	* src/lisp.h (lisp_h_builtin_lisp_symbol): New macro,
	with a body equivalent in effect to the old ‘builtin_lisp_symbol’
	but faster when not optimizing.
	(builtin_lisp_symbol): Use it.
	If DEFINE_KEY_OPS_AS_MACROS, also define as macro.

2024-01-22  Po Lu  <luangruo@yahoo.com>

	* configure.ac: Cease suppressing detection of utmp.h.

	Update from Gnulib

2024-01-21  Stefan Kangas  <stefankangas@gmail.com>

	doc: Delete extraneous quotes around keys

	* lisp/allout.el (allout-outlinify-sticky):
	* lisp/auth-source.el (auth-sources):
	* lisp/buff-menu.el (Buffer-menu-delete)
	(Buffer-menu-delete-backwards, Buffer-menu-save)
	(Buffer-menu-execute, Buffer-menu-select):
	* lisp/calendar/todo-mode.el (todo-show)
	(todo-show-categories-table, todo-top-priorities-overrides):
	* lisp/desktop.el (desktop-save-mode):
	* lisp/dired-aux.el (dired-do-kill-lines, dired-do-copy):
	* lisp/edmacro.el (edit-kbd-macro):
	* lisp/emulation/viper-cmd.el (viper-ask-level):
	* lisp/emulation/viper-init.el (viper-expert-level):
	* lisp/filesets.el (filesets-add-buffer):
	* lisp/follow.el (follow-mode):
	* lisp/gnus/gnus-group.el (gnus-group-mode):
	* lisp/gnus/gnus-sum.el (gnus-summary-mode):
	* lisp/ibuffer.el (ibuffer-mode):
	* lisp/international/ogonek.el (ogonek-informacja)
	(ogonek-information):
	* lisp/isearch.el (search-default-mode):
	* lisp/macros.el (apply-macro-to-region-lines):
	* lisp/mail/supercite.el (sc-mail-field-query)
	(sc-insert-reference, sc-insert-citation):
	* lisp/play/decipher.el (decipher-make-checkpoint):
	(decipher-restore-checkpoint):
	* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
	* lisp/progmodes/idlwave.el (idlwave-store-inquired-class):
	* lisp/progmodes/prolog.el (prolog-mode, prolog-inferior-mode):
	* lisp/progmodes/sh-script.el (sh-set-shell):
	* lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist)
	(vhdl-modify-date-prefix-string)
	(vhdl-modify-date-on-saving, vhdl-mode):
	* lisp/server.el (server-start):
	* lisp/subr.el (locate-library):
	* lisp/tempo.el (tempo-marks, tempo-use-tag-list):
	* lisp/time.el (world-clock):
	* lisp/vc/vc-hooks.el (vc-mode):
	* lisp/whitespace.el (whitespace-report-region):
	* lisp/windmove.el (windmove-delete-in-direction): Doc fix: Delete
	extraneous quotes around keys.

2024-01-21  Mattias Engdegård  <mattiase@acm.org>

	Change HASH_UNUSED_ENTRY_KEY from Qunbound to NULL float

	This removes hacks from code that had to be careful not to use
	Qunbound as a hash table key, at the cost of a minor hack in
	the GC marker.

	* src/lisp.h (INVALID_LISP_VALUE, HASH_UNUSED_ENTRY_KEY):
	Define as a null-pointer float.
	* src/alloc.c (process_mark_stack): Add hack to ignore that value.
	* src/pdumper.c (dump_object_needs_dumping_p)
	(pdumper_init_symbol_unbound, pdumper_load):
	* src/print.c (PRINT_CIRCLE_CANDIDATE_P): Remove hacks for Qunbound.

2024-01-21  Mattias Engdegård  <mattiase@acm.org>

	Make better use of fixnum range in sxhash etc

	Recent hash table changes reduced the range of sxhash, sxhash-eq etc
	to [0,2**32) on platforms with 62-bit fixnums.  This change makes them
	use the full fixnum range again.  Hash table hashing is unaffected.

	* src/fns.c (sxhash_eq, sxhash_eql): New.
	(hash_hash_to_fixnum): Replace with...
	(reduce_emacs_uint_to_fixnum): ...this.
	(hashfn_eq, hashfn_eql, Fsxhash_eq, Fsxhash_eql, Fsxhash_equal)
	(Fsxhash_equal_including_properties): Use the new functions.

2024-01-21  Mattias Engdegård  <mattiase@acm.org>

	Clarify permitted mutation in `maphash` documentation

	* doc/lispref/hash.texi (Hash Access):
	* src/fns.c (Fmaphash):
	Make it clear what the function passed as argument can do.  Until now
	these rules were unwritten, and are still unenforced.

2024-01-21  Mattias Engdegård  <mattiase@acm.org>

	Add C macro for hash table iteration

	This removes some boilerplate code and further reduces dependencies on
	hash table implementation internals.

	* src/lisp.h (DOHASH): New.
	* src/comp.c (compile_function, Fcomp__compile_ctxt_to_file):
	* src/composite.c (composition_gstring_cache_clear_font):
	* src/emacs-module.c (module_global_reference_p):
	* src/fns.c (Fmaphash):
	* src/json.c (lisp_to_json_nonscalar_1):
	* src/minibuf.c (Ftest_completion):
	* src/print.c (print):
	Use it instead of a hand-written loop.

2024-01-21  Dmitry Gutov  <dmitry@gutov.dev>

	project-recompile: New command

	* lisp/progmodes/project.el (project-recompile):
	New command (bug#68570).

2024-01-21  Po Lu  <luangruo@yahoo.com>

	Don't invert wheel event directions

	* lisp/mwheel.el (mwheel--is-dir-p): In Emacs, up means down and
	down means up...

2024-01-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/mwheel.el (mouse-wheel-obey-old-style-wheel-buttons): Simplify

2024-01-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	(define-derived-mode): Fix bug#68600

	* lisp/emacs-lisp/derived.el (define-derived-mode): Use a reference
	to the mode symbol instead of the mode's "pretty" name in
	the hook variable's docstring.

2024-01-21  Po Lu  <luangruo@yahoo.com>

	* make-dist (possibly_non_vc_files): Append exec standard files.

2024-01-21  Po Lu  <luangruo@yahoo.com>

	Suppress detection of utmpx.h on Android

	* configure.ac (ac_cv_header_utmpx_h): Predefine to no when
	Android is older than 34.

2024-01-21  Paul Eggert  <eggert@cs.ucla.edu>

	Omit -DHAVE_CONFIG_H

	* configure.ac (CFLAGS): Do not add -DHAVE_CONFIG_H.  It is no
	longer needed now that the Android printf hack has been removed.

2024-01-21  Paul Eggert  <eggert@cs.ucla.edu>

	Speed up make_lisp_symbol when debugging

	* src/lisp.h (make_lisp_symbol): In eassert use XBARE_SYMBOL
	rather than XSYMBOL.  This is safe because the symbol must be
	bare.  The change speeds up make_lisp_symbol when debugging.

2024-01-21  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify and tune XSYMBOL

	* src/lisp.h (XSYMBOL): Simplify and tune.  There is no need to
	examine symbols_with_pos_enabled here, since the arg must be a symbol
	so if it's not a bare symbol then it must be a symbol_with_pos;
	and checking whether a symbol is bare is cheap.

	With Ubuntu 23.10 on a Xeon W-1350, this shrank Emacs’s executable
	text size by 0.1% and sped up a default build of all *.elc files by
	0.4%.

	Remove unnecessary eassert, since XBARE_SYMBOL and XSYMBOL_WITH_POS
	have easserts that suffice.

2024-01-21  Paul Eggert  <eggert@cs.ucla.edu>

	Be more systematic about parens in C source code

	Be more systematic about putting space before paren in calls,
	and in avoiding unnecessary parentheses in macros.
	This was partly inspired by my wading through gcc -E output
	while debugging something else, and seeing too many parens.

	This patch does not change the generated .o files on my platform.

2024-01-21  Paul Eggert  <eggert@cs.ucla.edu>

	Omit some parens

	* src/lisp.h (XBARE_SYMBOL, XSYMBOL): Omit parentheses that are no
	longer needed now that we have symbols with positions and these
	symbols are never macros.

2024-01-21  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -Wsuggest-attribute=malloc

	* src/lisp.h (hash_table_alloc_bytes):
	Declare with ATTRIBUTE_MALLOC_SIZE ((1)).

2024-01-21  Paul Eggert  <eggert@cs.ucla.edu>

	Fix autogen.sh’s spurious ‘git diff’ output

	Problem reported by Gerd Möllmann (Bug#68464).
	* .gitignore: Ignore files in exec that are now copied from build-aux.
	* admin/merge-gnulib (avoided_flags): Instead of clearing
	autom4te.cache here ...
	* autogen.sh (do_git): ... clear it here.
	Use config.guess, config.sub and install-sh from
	the Emacs repository, as they are more likely to be up to date.
	This avoids unnecessary differences among different builders,
	and avoids unnecessary ‘git diff’ output after autogen.sh.
	Also, copy these files from build-aux to exec since there
	should be no difference between the two copies.
	* exec/config.guess, exec/config.sub, exec/install-sh:
	Remove from repository, as autogen.sh now copies them from build-aux.

2024-01-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'mwheel-no-alts'

2024-01-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	mwheel.el: Code clean to reduce duplication

	* lisp/mwheel.el (mouse-wheel-obey-old-style-wheel-buttons): New var,
	extracted from `mouse-wheel-*-event` definitions.
	(mouse-wheel-down-event, mouse-wheel-up-event)
	(mouse-wheel-left-event, mouse-wheel-right-event): Use it.

2024-01-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	mwheel.el: Remove `mouse-wheel-*-alternate-event` vars

	Now that `wheel-DIR` events are hardcoded, we never need more than
	one variable (which we actually never needed anyway, we could have
	let `mouse-wheel-*-event` vars hold lists of events instead), so
	remove the `mouse-wheel-*-alternate-event` vars by merging their
	default value into that of the corresponding `mouse-wheel-*-event`.

	* lisp/mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event)
	(mouse-wheel-left-event, mouse-wheel-right-event): Don't bother holding
	`wheel-DIR` events since these are already handled anyway.
	Hold the event that would have been held in
	`mouse-wheel-DIR-alternate-event` instead.
	(mouse-wheel-down-alternate-event, mouse-wheel-up-alternate-event)
	(mouse-wheel-left-alternate-event, mouse-wheel-right-alternate-event):
	Delete vars.
	(mwheel--is-dir-p, mouse-wheel--setup-bindings):
	* lisp/edmacro.el (edmacro-fix-menu-commands):
	* lisp/completion-preview.el (completion-preview--mouse-map):
	Don't use `mouse-wheel-up/down-alternate-event` any more.
	* lisp/progmodes/flymake.el (flymake--mode-line-counter-map):
	Do nothing, because it already ignored those vars.

2024-01-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	mwheel.el: Unconditionally use the `wheel-up/down/...` events

	The `mouse-wheel-DIR-event` vars were introduced because under X11
	we get different `mouse-N` events depending on the users' mouse and
	those same events can be used for other things for other rodents, so we
	can't unconditionally treat those events as mouse-wheel events.

	But this does not apply to the `wheel-up/down/...` events.
	So hard code them.

	* lisp/mwheel.el (mwheel--is-dir-p): Always consider the `wheel-DIR` events.
	(mouse-wheel--setup-bindings): Always bind the `wheel-DIR` events.

	* lisp/completion-preview.el (completion-preview--mouse-map):
	Unconditionally bind the `wheel-DIR` events.
	* lisp/edmacro.el (edmacro-fix-menu-commands): Hard code the
	`wheel-DIR` events as mouse events regardless of `mouse-wheel-*-event`s.
	* lisp/progmodes/flymake.el (flymake--mode-line-counter-map):
	Do nothing, because it's already been done in commit e5be6c7ae309.

	* doc/lispref/commands.texi (Misc Events): Document the need to use
	`wheel-up/down/left/right` unconditionally.

2024-01-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/completion-preview.el: Fix use in non-GUI session

	Fix loading in non-GUI sessions where `mwheel` is not preloaded.
	Not requiring `mwheel` would be a lot more complex, since it would
	require delaying the construction of `completion-preview--mouse-map`.

	* lisp/completion-preview.el (<toplevel>): Require `mwheel`.
	Remove correspondingly redundant `defvar`s.
	(completion-preview--mouse-map): Use `key-description` rather than mimicking
	it with `format`.

2024-01-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/keymap.el (define-keymap): Demote "duplicate def" to a warning

	* test/src/keymap-tests.el (keymap-test-duplicate-definitions):
	Adjust accordingly.

2024-01-20  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2024-01-20  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid Gnulib ‘access’ module

	* admin/merge-gnulib (AVOIDED_MODULES): Add ‘access’,
	since I don’t think Emacs cares about the Mac OS X 10.5
	bug where faccessat ignores a trailing slash on a symlink
	to a directory.  This will matter the next time we run
	admin/merge-gnulib.

2024-01-20  Eshel Yaron  <me@eshelyaron.com>

	Eldoc: play nice with mode-line-format-right-align (bug#68547)

	* lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message): Avoid nesting
	'mode-line-format', since that breaks 'mode-line-format-right-align'.

2024-01-20  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	5bb5590dec9 Fix blunder in labeled_narrow_to_region
	78ddb32fadb Fix documentation of icon-elements
	725a3f32f8b ; Fix typos in symbol names
	6653ee66ca5 Improve two docstrings in ox-latex
	7d869a04029 Doc fix in auth-source-read-char-choice
	f149de223bf Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	1f97a878795 Fix info-xref-tests
	51f391998b1 Add @kindex in manuals for existing keybindings on 'C-x x...

2024-01-20  Po Lu  <luangruo@yahoo.com>

	Round projs computed executing IP/ISECT instructions and improve IUP

	* src/sfnt.c (sfnt_multiply_divide_rounded): New function.
	(sfnt_multiply_divide_signed): Always round values, as fonts
	which rely on IP to move points in concert with prior motion and
	subsequently round such points with MDAP are sensitive to minor
	deviations in the behavior of the former instruction.
	(load_unscaled): New macro.
	(IUP_SINGLE_PAIR, sfnt_interpret_iup_1): Compute ratio w/
	unscaled points if possible.

2024-01-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	trace.el: Mention the last change in NEWS

2024-01-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	trace.el: Make it usable in batch mode as well

	While at it, this fixes a bug where a traced function was not
	able to set `deactivate-mark`.

	* lisp/emacs-lisp/trace.el (trace--insert): New function, extracted
	from `trace-make-advice`.  Output to stdout in batch mode.
	(trace--entry-message): Rename from `trace-entry-message`.
	Change calling convention.  Do the insertion directly from here.
	(trace--exit-message): Rename from `trace-exit-message`.
	Change calling convention.  Do the insertion directly from here.
	(trace-make-advice, trace-values): Simplify accordingly.

2024-01-19  Po Lu  <luangruo@yahoo.com>

	Fix another cause of superfluous inotify signals on Android

	* src/android.c (android_select): If the event queue isn't
	empty upon the initial check, clear all fdsets.

2024-01-19  F. Jason Park  <jp@neverwas.me>

	Redo doc strings for ERC's entry point commands

	* lisp/erc/erc.el: Bump Compat version in Package-Requires header to
	29.1.4.4.
	(erc-select-read-args): Revise doc string, and update name of internal
	`--interactive-env--' entry-point parameter.
	(erc, erc-tls): Don't use `&interactive-env' as a variable name, in
	case it confuses persons or programs.  Overhaul doc string in response
	to user complaints.  For `erc' specifically, include literal
	`:keyword' symbols to help non-Emacs users understand the required
	syntax, which isn't obvious without an example, like `erc-tls' has,
	and with only "&key" and upcased metasynctatic variables to go by.
	(erc--current-buffer-joined-p): Remove assertion.
	* test/lisp/erc/erc-scenarios-keep-place-indicator.el
	(erc-scenarios-keep-place-indicator--follow): Try waiting for
	intermittently failing condition.
	* test/lisp/erc/erc-tests.el (erc-select-read-args): Update name of
	internal keyword variable.

2024-01-19  F. Jason Park  <jp@neverwas.me>

	Add test for erc-extract-command-from-line

	* lisp/erc/erc.el (erc-extract-command-from-line): Redo doc string.
	* test/lisp/erc/erc-tests.el (erc--parse-isupport-value): Add case for
	commonly seen escaped character ?=.
	(erc-extract-command-from-line): New test.

2024-01-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/international/quail.el (quail-input-method): Fix bug#68338

2024-01-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Fix bug#68514

	Redo the commit 0db2126d7176 to try and avoid selecting more than
	a mere symbol.

2024-01-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* test/lisp/emacs-lisp/comp-cstr-tests.el: Use macros in a simpler way

	(comp-cstr-test-ts): Move out of `cl-eval-when`.
	(comp-cstr-typespec-test): Delete.
	(comp-cstr-synthesize-tests): Make it take the tests as an argument.
	(comp-cstr-typespec-tests-alist): Delete var, pass its value to the
	macro instead.

2024-01-18  Mattias Engdegård  <mattiase@acm.org>

	Don't use Qunbound as hash table key when printing (bug#68244)

	This flaw could cause an assertion failure.

	* src/print.c (PRINT_CIRCLE_CANDIDATE_P): Don't consider Qunbound a
	print-circle candidate; it should never be seen by Lisp anyway.

2024-01-18  Mattias Engdegård  <mattiase@acm.org>

	Only use a hash index size of 1 for tables with size 0 (bug#68244)

	This invariant was intended but insufficiently enforced which could
	lead to an assertion failure.

	* src/fns.c (hash_index_size): Assume size>0, and return a value >1.
	(make_hash_table): Only use hash_index_size for size>0.

2024-01-18  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Avoid font-lock reset in `gnus-message-citation-mode'

	* lisp/gnus/gnus-cite.el (gnus-message-citation-mode): Use
	`font-lock-add-keywords' and `font-lock-remove-keywords' instead of
	modifying font-lock defaults.  Make no font-lock changes until
	`font-lock-mode' is active.

	Thanks to Morgan Willcock

2024-01-17  Andrea Corallo  <acorallo@gnu.org>

	* Update a comp test (bug#68523)

	* test/src/comp-tests.el (comp-tests-ret-type-spec-71): Update a test
	due to new 'sxhash-equal' behavior.

2024-01-17  Po Lu  <luangruo@yahoo.com>

	Increase accuracy of IP instruction

	* src/sfnt.c (sfnt_interpret_ip): Avoid precision loss by
	retrieving original positions from the unscaled outline,
	whenever possible.

2024-01-16  Mattias Engdegård  <mattiase@acm.org>

	Update pdumper hashes for buffer and Lisp_Hash_Table

	* src/pdumper.c (dump_hash_table): Update for changes in recent
	hash-table patch suites (bug#68244).
	(dump_buffer): Update for case-fold-search changes (bug#66117).

2024-01-16  Mattias Engdegård  <mattiase@acm.org>

	More efficient hash table thawing

	* src/fns.c (hash_table_thaw): Don't allocate anything for empty
	tables.  Don't initialize the next vector twice.
	(maybe_resize_hash_table): Factor out min_size constant.

2024-01-16  Juri Linkov  <juri@linkov.net>

	New display action alist entry 'post-command-select-window' (bug#67993)

	* doc/lispref/windows.texi (Buffer Display Action Alists):
	Add 'post-command-select-window'.

	* lisp/window.el (display-buffer): Add 'post-command-select-window'
	to the docstring and handle at the end of function.

2024-01-16  Po Lu  <luangruo@yahoo.com>

	Enable the system's Arabic and Khmer fonts under Android

	* lisp/international/fontset.el (setup-default-fontset): If
	`android', search for Arabic or Khmer fonts with script tags,
	not OTF features.

2024-01-16  Mike Kupfer  <kupfer@rawbw.com>

	Fix folder creation error (Bug#67361)

	* lisp/mh-e/mh-funcs.el (mh-kill-folder), lisp/mh-e/mh-search.el
	  (mh-index-new-folder), lisp/mh-e/mh-utils.el (mh-prompt-for-folder):
	  Check for existence of speedbar-buffer rather than
	  mh-speed-folder-map. The latter can exist if mh-speed has only been
	  loaded but not displayed.

2024-01-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/help-fns.el (help-fns--parent-mode): Mention the extra parents

	As suggested by Stefan Kangas in bug#68246.

2024-01-15  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/info-xref.el (info-xref-subfile-p): Avoid false positives.  (Bug#68428)

2024-01-15  João Távora  <joaotavora@gmail.com>

	Jsonrpc: fix bug in jsonrpc--remove

	* lisp/jsonrpc.el (jsonrpc--remove): Check timer before canceling it.
	(Version): Bump to 1.2.24

	See https://github.com/joaotavora/eglot/issues/1342

2024-01-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	(js-json-mode): Don't derive from `js-mode` (bug#67463)

	* lisp/progmodes/js.el (js--mode-setup): New function, extracted from
	`js-mode`.
	(js-mode): Use it.
	(js-json-mode): Use it instead of inheriting from `js-mode`.

2024-01-14  Mattias Engdegård  <mattiase@acm.org>

	Fix recent ses-tests mistakes (bug#5852)

	* test/lisp/ses-tests.el
	(ses-set-formula-write-cells-with-changed-references):
	Quote constant list.  Remove unused variable.

2024-01-14  Mattias Engdegård  <mattiase@acm.org>

	Use forward-line instead of next-line in noninteractive test

	* test/lisp/textmodes/page-tests.el (page-tests-what-page):
	Silence byte-compiler warning; forward-line works nicely here.

2024-01-14  Mattias Engdegård  <mattiase@acm.org>

	Make object-intervals linear instead of quadratic

	* src/fns.c (collect_interval, Fobject_intervals):
	Build the returned list in reverse instead of appending single
	elements.

2024-01-14  Mattias Engdegård  <mattiase@acm.org>

	Speed up sxhash-equal-including-properties

	This function now no longer conses at all.  Previously, it constructed
	a list structure of all string intervals for the sole purpose of
	hashing.

	* src/fns.c (hash_interval): New.
	(Fsxhash_equal_including_properties):
	Use it instead of collect_interval.

2024-01-14  Mattias Engdegård  <mattiase@acm.org>

	Retype traverse_interval arg type from Lisp_Object to void *

	This is a refactoring.  It eliminates a few unnecessary conses and
	allows for further improvements.

	* src/intervals.c (traverse_intervals):
	Change argument type.  All callers adapted.
	* src/fns.c (collect_interval, Fsxhash_equal_including_properties)
	(Fobject_intervals):
	* src/print.c (print_check_string_charset_prop)
	(print_prune_string_charset, print_object, print_interval):
	Pass a pointer to a Lisp_Object instead of a Lisp_Object.

2024-01-14  Po Lu  <luangruo@yahoo.com>

	Correct implementations of FLIPRGON and FLIPRGOFF

	* src/sfnt.c (sfnt_interpret_fliprgoff)
	(sfnt_interpret_fliprgon): Reorder arguments to match
	the order in which arguments are popped by macro wrappers.
	Fix sundry typos.

2024-01-14  Po Lu  <luangruo@yahoo.com>

	Fix bug#65116

	* src/xterm.c (xi_focus_handle_for_device): Correct typo.
	(x_focus_frame): Don't focus frames Emacs believes to be
	focused if they are frames with independent minibuffer
	frames.  (bug#65116)

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Hash-table documentation updates (bug#68244)

	* doc/lispref/hash.texi (Creating Hash, Other Hash):
	Manual updates for make-hash-table, hash-table-rehash-size and
	hash-table-rehash-threshold.
	* doc/lispref/objects.texi (Hash Table Type): Update example.
	* src/fns.c (Fhash_table_rehash_size, Fhash_table_rehash_threshold):
	Update doc strings.
	* etc/NEWS: Announce changes.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Don't pretend that hash-table-size is useful

	* lisp/emacs-lisp/shortdoc.el (hash-table): Remove hash-table-size entry.
	* doc/lispref/hash.texi (Other Hash):
	* src/fns.c (Fhash_table_size): Make it clear that hash-table-size is
	probably not worth using.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Change hash_hash_t to uint32_t

	This saves a lot of memory and is quite sufficient.  Hash functions
	are adapted to produce a hash_hash_t eventually, which eliminates some
	useless and information-destroying intermediate hash reduction steps.

	We still use EMACS_UINT for most of the actual hashing steps before
	producing the final value; this may be slightly wasteful on 32-bit
	platforms with 64-bit EMACS_UINT.

	* src/lisp.h (hash_hash_t): Change to uint32_t.
	* src/fns.c (reduce_emacs_uint_to_hash_hash): New.
	(hashfn_eq, hashfn_equal, hashfn_user_defined): Reduce return values
	to hash_hash_t.
	(sxhash_string): Remove.  Caller changed to hash_string.
	(sxhash_float, sxhash_list, sxhash_vector, sxhash_bool_vector)
	(sxhash_bignum): Remove wasteful calls to SXHASH_REDUCE.
	(hash_hash_to_fixnum): New.
	(Fsxhash_eq, Fsxhash_eql, Fsxhash_equal)
	(Fsxhash_equal_including_properties): Convert return values to fixnum.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Use key Qunbound instead of hash value hash_unused for free entries

	Previously, free hash table entries were indicated by both hash value
	hash_unused and key Qunbound; we now rely on the latter only.
	This allows us to change the hash representation to one that does not
	have an unused value.

	* src/lisp.h (hash_unused): Remove.
	All uses adapted to calling hash_unused_entry_key_p on the key instead.
	The hash values for unused hash table entries are now undefined; all
	initialization and assignment to hash_unused has been removed.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Don't dump Qunbound

	The dumper uses a hash table to keep track of dumped objects but as
	this clashes with the use of Qunbound for marking unused hash table
	entries, don't dump that value at all.  The symbol name is fixed up
	after loading.

	An alternative solution would be to use a different unique value for
	unused entries.

	* src/pdumper.c (dump_object_needs_dumping_p): Skip Qunbound.
	(dump_vectorlike_generic): New function.
	(pdumper_load): Call it.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Change hash_idx_t to int32_t on all platforms

	* src/lisp.h (hash_idx_t): Change to int32_t.
	* src/fns.c (hash_index_size): Adapt to new index type.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Faster hash table growth, starting at zero size

	The algorithms no longer use the rehash_threshold and rehash_size
	float constants, but vary depending on size.  In particular, the table
	now grows faster, especially from smaller sizes.

	The default size is now 0, starting empty, which effectively postpones
	allocation until the first insertion (unless make-hash-table was
	called with a positive :size); this is a clear gain as long as the
	table remains empty.  The first inserted item will use an initial size
	of 8 because most tables are small.

	* src/fns.c (std_rehash_size, std_rehash_threshold): Remove.
	(hash_index_size): Integer-only computation.
	(maybe_resize_hash_table): Grow more aggressively.
	(Fhash_table_rehash_size, Fhash_table_rehash_threshold):
	Use the constants directly.
	* src/lisp.h (DEFAULT_HASH_SIZE): New value.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Share hash table test structs

	This saves several words in the hash table object at the cost of an
	indirection at runtime.  This seems to be a gain in overall
	performance.

	FIXME: We cache hash test objects in a rather clumsy way. A better
	solution is sought.

	* src/lisp.h (struct Lisp_Hash_Table): Use a pointer to the test
	struct.  All references adapted.
	* src/alloc.c (garbage_collect):
	* src/fns.c (struct hash_table_user_test, hash_table_user_tests)
	(mark_fns, get_hash_table_user_test): New state for caching test
	structs, and functions managing it.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Use hash_idx_t for storing hash indices

	Now hash_idx_t is a typedef for ptrdiff_t so there is no actual code
	change, but this allows us to decouple the index width from the Lisp
	word size.

	* src/lisp.h (hash_idx_t): New typedef for ptrdiff_t.
	(struct Lisp_Hash_Table): Use it for indices and sizes:
	index, next, table_size, index_size, count and next_free.
	All uses adapted.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Inlined and specialized hash table look-up

	This improves performance in several ways.  Separate functions are
	used depending on whether the caller has a hash value computed or not.

	* src/fns.c (hash_lookup_with_hash, hash_lookup_get_hash): New.
	(hash_lookup): Remove hash return argument.
	All callers adapted.

	hash_lookup_with_hash hash_hash_t arg

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Store hash values as integers instead of Lisp_Object

	This improves typing, saves pointless tagging and untagging, and
	prepares for further changes. The new typedef hash_hash_t is an alias
	for EMACS_UINT, and hash values are still limited to the fixnum range.
	We now use hash_unused instead of Qnil to mark unused entries.

	* src/lisp.h (hash_hash_t): New typedef for EMACS_UINT.
	(hash_unused): New constant.
	(struct hash_table_test): `hashfn` now returns
	hash_hash_t.  All callers and implementations changed.
	(struct Lisp_Hash_Table): Retype hash vector to an array of
	hash_hash_t.  All code using it changed accordingly.
	(HASH_HASH, hash_from_key):
	* src/fns.c (set_hash_index_slot, hash_index_index)
	(hash_lookup_with_hash, hash_lookup_get_hash, hash_put):
	(hash_lookup, hash_put): Retype hash value arguments
	and return values.  All callers adapted.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Use non-Lisp allocation for internal hash-table vectors

	Using xmalloc for allocating these arrays is much cheaper than using
	Lisp vectors since they are no longer marked or swept by the GC, and
	deallocated much sooner.  This makes GC faster and less frequent, and
	improves temporal locality.

	Zero-sized tables use NULL for their (0-length) vectors except the
	index vector which has size 1 and uses a shared constant static vector
	since it cannot be modified anyway.  This makes creation and
	destruction of zero-sized hash tables very fast; they consume no
	memory outside the base object.

	* src/lisp.h (struct Lisp_Hash_Table): Retype the index, next, hash
	and key_and_value vectors from Lisp_Object to appropriately typed
	arrays (although hash values are still stored as Lisp fixnums).  Add
	explicit table_size and index_size members.  All users updated.
	* src/alloc.c (gcstat): Add total_hash_table_bytes.
	(hash_table_allocated_bytes): New.
	(cleanup_vector): Free hash table vectors when sweeping
	the object.
	(hash_table_alloc_bytes, hash_table_free_bytes): New.
	(sweep_vectors): Update gcstat.total_hash_table_bytes.
	(total_bytes_of_live_objects): Use it.
	(purecopy_hash_table): Adapt allocation of hash table vectors.
	(process_mark_stack): No more Lisp slots in the struct to trace.
	* src/fns.c (empty_hash_index_vector): New.
	(allocate_hash_table): Allocate without automatically GCed slots.
	(alloc_larger_vector): Remove.
	(make_hash_table, copy_hash_table, maybe_resize_hash_table):
	Adapt vector allocation and initialization.
	* src/pdumper.c (hash_table_freeze, hash_table_thaw, dump_hash_table)
	(dump_hash_table_contents):
	Adapt dumping and loading to field changes.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Allow zero hash table size

	This avoids any extra allocation for such vectors, including empty
	tables read by the Lisp reader, and provides extra safety essentially
	for free.

	* src/fns.c (make_hash_table): Allow tables to be 0-sized.  The index
	will always have at least one entry, to avoid extra look-up costs.
	* src/alloc.c (process_mark_stack): Don't mark pure objects,
	because empty vectors are pure.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Leaner hash table dumping and thawing

	Only dump the actual data, and the test encoded as an enum.  This
	simplifies dumping, makes dump files smaller and saves space at run
	time.

	* src/lisp.h (hash_table_std_test_t): New enum.
	(struct Lisp_Hash_Table): Add frozen_test member, consuming no extra space.
	* src/fns.c (hashfn_user_defined): Now static.
	(hash_table_test_from_std): New.
	(hash_table_rehash): Rename to...
	(hash_table_thaw): ...this and rewrite.
	* src/pdumper.c (hash_table_contents): Only include actual data, not
	unused space.
	(hash_table_std_test): New.
	(hash_table_freeze): Set frozen_test from test.
	(dump_hash_table): Dump frozen_test, not the whole test struct.
	Don't bother other dumping fields that can be derived.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Remove rehash-threshold and rehash-size struct members

	These parameters have no visible semantics and are hardly ever used,
	so just use the default values for all hash tables.  This saves
	memory, shrinks the external representation, and will improve
	performance.

	* src/fns.c (std_rehash_size, std_rehash_threshold): New.
	(hash_index_size): Use std_rehash_threshold.  Remove table argument.
	All callers updated.
	(make_hash_table): Remove rehash_size and rehash_threshold args.
	All callers updated.
	(maybe_resize_hash_table)
	(Fhash_table_rehash_size, Fhash_table_rehash_threshold):
	Use std_rehash_size and std_rehash_threshold.
	(Fmake_hash_table): Ignore :rehash-size and :rehash-threshold args.
	* src/lisp.h (struct Lisp_Hash_Table):
	Remove rehash_size and rehash_threshold fields.
	(DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE): Remove.
	* src/lread.c (hash_table_from_plist): Don't read rehash-size or
	rehash-threshold.
	(syms_of_lread): Remove unused symbols.
	* src/print.c (print_object): Don't print rehash-size or rehash-threshold.
	* src/pdumper.c (dump_hash_table): Don't dump removed fields.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Represent hash table weakness as an enum internally

	This takes less space (saves an entire word) and is more type-safe.
	No change in behavior.

	* src/lisp.h (hash_table_weakness_t): New.
	(struct Lisp_Hash_Table): Replace Lisp object `weak` with enum
	`weakness`.
	* src/fns.c
	(keep_entry_p, hash_table_weakness_symbol): New.
	(make_hash_table): Retype argument.  All callers updated.
	(sweep_weak_table, Fmake_hash_table, Fhash_table_weakness):
	* src/alloc.c (purecopy_hash_table, purecopy, process_mark_stack):
	* src/pdumper.c (dump_hash_table):
	* src/print.c (print_object): Use retyped field.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	Don't print or read the hash table size parameter

	It's not a meaningful part of the external representation.
	This allows for faster printing and reading, smaller
	external representation, and less memory consumption.

	* src/print.c (print_object): Omit size.
	* src/lread.c (hash_table_from_plist): Take size from the data.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	* src/print.c (print_object): Don't print empty hash-table data

	Since no data is the default, this preserves bidirectional compatibility.

2024-01-13  Mattias Engdegård  <mattiase@acm.org>

	* src/print.c (print_object): Don't print hash table test if `eql`.

	Since `eql` is the default, this ensures bidirectional compatibility
	while reducing the size of the external representation.

2024-01-13  Juri Linkov  <juri@linkov.net>

	* lisp/window.el (window-prefix-map): Bind C-x w q to quit-window (bug#13167)

2024-01-13  Xiyue Deng  <manphiz@gmail.com>

	Fix typo in lispref "Creating Strings" section

	* doc/lispref/strings.texi (String Basics): Fix typo (bug#68375).

2024-01-13  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	c494a6e879d Improve documentation of 'emacs_function' in modules
	a08e6423ccc ; * doc/emacs/fixit.texi (Spelling): Fix last change.
	418547162d5 Improve documentation of Ispell commands
	c4b49488455 Don't recommend inverse-video for debugging

2024-01-13  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	99efe5c80f9 Fix count of no-op functions (bug#68375)
	0c01f97b73c Wrap @pxref of Abbrevs in parentheses (bug#68375)
	70a09325d65 ; Fix last change in widget.texi
	63411709a8d ; Fix typos
	824cf54951c ; * etc/TODO: Add item to make play-sound non-blocking.
	4fadbfe300a Add examples to the Widget manual
	1bbb610821e Implement missing functions for custom-icon widget
	29af214a75a Fix fontification of cgroup2 in fstab (bug#68367)

2024-01-13  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	d58d0fa52ff Introduce 'let' using lexical binding in the Lisp Introdu...
	1b123972636 ; Don't record multiple versions of use-package
	8729a2a10d9 Fix 'rmail-summary-by-thread'
	2a8c00bfc07 * doc/emacs/back.texi: Fix a typo.

2024-01-13  Lars Brinkhoff  <lars@nocrew.org>

	Fix 'what-page'

	* lisp/textmodes/page.el (page--what-page): Adjust for 1st
	line on page, and use 'count-lines' again.  (Bug#68215)

	* test/lisp/textmodes/page-tests.el (page-tests-what-page):
	Update test.

2024-01-13  Steven Allen  <steven@stebalien.com>

	Set the 'name' prop in 'define-advice'

	In addition to naming the advice function `symbol@name', set
	the 'name' property to NAME.
	* lisp/emacs-lisp/nadvice.el (define-advice): set the 'name'
	property to NAME (requested in Bug#68114).  Fixes Bug#68294.

	* doc/lispref/functions.texi (Advising Named Functions): Document
	that 'define-advice' installs the advice with the specified name.

2024-01-13  kobarity  <kobarity@gmail.com>

	Fix 'python-info-docstring-p' bug in the 2nd line of a buffer

	* lisp/progmodes/python.el (python-info-docstring-p): Add
	'looking-at-p' check when bobp.
	* test/lisp/progmodes/python-tests.el (python-font-lock-operator-1)
	(python-font-lock-operator-2): Restoration of ERTs deleted by
	mistake.
	(python-font-lock-escape-sequence-bytes-newline)
	(python-font-lock-escape-sequence-hex-octal)
	(python-font-lock-escape-sequence-unicode)
	(python-font-lock-raw-escape-sequence): Change 'font-lock-doc-face'
	to 'font-lock-string-face' and remove :expected-result :failed.
	(python-info-docstring-p-8): New test.  (Bug#68284)

2024-01-13  Stefan Kangas  <stefankangas@gmail.com>

	Fix NULL dereference in w32notify.c

	* src/w32notify.c (start_watching): Return NULL instead of freed
	pointer.
	(add_watch): Fix NULL dereference.

2024-01-13  Stefan Kangas  <stefankangas@gmail.com>

	Prefer AREF in GET_TRANSLATION_TABLE

	* src/ccl.c (GET_TRANSLATION_TABLE): Prefer using AREF to depending on
	vector internals.

2024-01-13  Eli Zaretskii  <eliz@gnu.org>

	* src/fns.c (maybe_resize_hash_table): Fix EMACS_INT format specifier.

2024-01-13  Po Lu  <luangruo@yahoo.com>

	Properly sort results for partial font specs

	* src/sfntfont.c (sfntfont_compare_font_entities): New function.
	(sfntfont_list): Sort matching font entities by the number of
	fields set, and mention why.

2024-01-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(mwheel--is-dir-p): New macro to reduce code duplication

	It also slightly reduces memory allocation.

	* lisp/mwheel.el (mwheel--is-dir-p): New macro.
	(mwheel-scroll, mouse-wheel-text-scale)
	(mouse-wheel-global-text-scale): Use it.

2024-01-12  Mattias Engdegård  <mattiase@acm.org>

	Abstract predicate and constant for unused hash keys

	Qunbound is used for many things; using a predicate and constant for
	the specific purpose of unused hash entry keys allows us to locate
	them and make changes much more easily.

	* src/lisp.h (HASH_UNUSED_ENTRY_KEY, hash_unused_entry_key_p):
	New constant and function.
	* src/comp.c (compile_function, Fcomp__compile_ctxt_to_file):
	* src/composite.c (composition_gstring_cache_clear_font):
	* src/emacs-module.c (module_global_reference_p):
	* src/fns.c (make_hash_table, maybe_resize_hash_table, hash_put)
	(hash_remove_from_table, hash_clear, sweep_weak_table, Fmaphash):
	* src/json.c (lisp_to_json_nonscalar_1):
	* src/minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
	* src/print.c (print, print_object):
	Use them.

2024-01-12  Mattias Engdegård  <mattiase@acm.org>

	Refactor hash table vector reallocation

	* src/fns.c (larger_vecalloc): Remove.
	(larger_vector): Simplify.
	(alloc_larger_vector): New.
	(maybe_resize_hash_table): Use alloc_larger_vector as a simpler and
	faster replacement for larger_vecalloc.

2024-01-12  Mattias Engdegård  <mattiase@acm.org>

	Refactor: extract hash and index computations to functions

	* src/lisp.h (hash_from_key):
	* src/fns.c (hash_index_index): New.
	(hash_table_rehash, hash_lookup, hash_remove_from_table):
	(maybe_resize_hash_table, hash_put):
	* src/composite.c (composition_gstring_put_cache): Use them.

2024-01-12  Mattias Engdegård  <mattiase@acm.org>

	Refactor: less layering violation in composite.h

	Avoid using hash table internals directly.

	* src/composite.h (COMPOSITION_KEY): New.
	(COMPOSITION_GLYPH, COMPOSITION_RULE): Use COMPOSITION_KEY.

2024-01-12  Mattias Engdegård  <mattiase@acm.org>

	Decouple profiler from Lisp hash table internals

	The profiler stored data being collected in Lisp hash tables but
	relied heavily on their exact internal representation, which made it
	difficult and error-prone to change the hash table implementation.

	In particular, the profiler has special run-time requirements that are
	not easily met using standard Lisp data structures: accesses and
	updates are made from async signal handlers in almost any messy
	context you can think of and are therefore very constrained in what
	they can do.

	The new profiler tables are designed specifically for their purpose
	and are more efficient and, by not being coupled to Lisp hash tables,
	easier to keep safe.

	The old profiler morphed internal hash tables to ones usable from Lisp
	and thereby made them impossible to use internally; now export_log
	just makes new hash table objects for Lisp.  The Lisp part of the
	profiler remains entirely unchanged.

	* src/alloc.c (garbage_collect): Mark profiler tables.
	* src/eval.c (get_backtrace): Fill an array of Lisp values instead of
	a Lisp vector.
	* src/profiler.c (log_t): No longer a Lisp hash table but a custom
	data structure: a fully associative fixed-sized cache that maps
	fixed-size arrays of Lisp objects to counts.
	(make_log): Build new struct.
	(mark_log, free_log, get_log_count, set_log_count, get_key_vector)
	(log_hash_index, remove_log_entry, trace_equal, trace_hash)
	(make_profiler_log, free_profiler_log, mark_profiler): New.
	(cmpfn_profiler, hashtest_profiler, hashfn_profiler)
	(syms_of_profiler_for_pdumper): Remove.
	(approximate_median, evict_lower_half, record_backtrace, export_log)
	(Fprofiler_cpu_log, Fprofiler_memory_log, syms_of_profiler):
	Adapt to the new data structure.

2024-01-12  Mattias Engdegård  <mattiase@acm.org>

	Add internal hash-table debug functions

	These are useful for measuring hashing and collisions.

	* src/fns.c (Finternal__hash_table_histogram)
	(Finternal__hash_table_buckets, Finternal__hash_table_index_size):
	New.

2024-01-12  Michael Albinus  <michael.albinus@gmx.de>

	* src/nsfont.m (nsfont_open): Fix Ffont_xlfd_name args.

2024-01-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	sh-script.el: Add support for `case FOO {...}` (bug#55764)

	* lisp/progmodes/sh-script.el (sh-font-lock-paren): Also recognize
	`FOO)` after `{`.
	(sh-smie-sh-rules): Make `for` rule apply to `case FOO { ...}` as well.

	* test/manual/indent/shell.sh: Add new test case.

2024-01-11  Slava Akhmechet  <coffeemug@gmail.com>  (tiny change)

	Eglot: Simplify overlay handling in manual example

	* doc/misc/eglot.texi (Extending Eglot): Simplify.

2024-01-11  Alyssa Ross  <hi@alyssa.is>

	Add autoload cookie to vc-git-grep

	* lisp/vc/vc-git.el (vc-git-grep): Add autoload cookie.  (Bug#67018)

2024-01-11  john muhl  <jm@pub.pink>

	Support indented continuation lines in lua-ts-mode

	* lisp/progmodes/lua-ts-mode.el (lua-ts--simple-indent-rules):
	Add a rule to indent multi-line assignments and if statements.
	(lua-ts-indent-continuation-lines): New user option.
	* test/lisp/progmodes/lua-ts-mode-resources/indent.erts: Add
	tests.  (Bug#68279)

2024-01-11  Alan Mackenzie  <acm@muc.de>

	Bind cross-buffer buffer-local variable correctly.

	This fixes bug#68200.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform):
	Note that let-binding a buffer local variable leaves it buffer
	local, hence to transfer the binding of
	byte-compile-dynamic-docstrings to the output buffer, an
	intermediate variable is needed.  Implement this.

2024-01-11  Eli Zaretskii  <eliz@gnu.org>

	Fix man-tests.el

	* test/lisp/man-tests.el (man-tests-Man-translate-references): Fix
	test for MS-Windows and MS-DOS.

2024-01-11  Stephen Berman  <stephen.berman@gmx.net>

	Revert "Fix typo in lispref 'Creating Strings' section"

	This reverts commit b825962ea840348bbde0c834ca398458a06fbb8b
	which was mistakenly installed in master instead of emacs-29.

2024-01-11  Xiyue Deng  <manphiz@gmail.com>

	Fix typo in lispref "Creating Strings" section

	* doc/lispref/strings.texi (String Basics): Fix typo.

2024-01-11  Michael Albinus  <michael.albinus@gmx.de>

	Adapt test names in auth-source-tests.el

	* test/lisp/auth-source-tests.el (auth-source-test-netrc-credentials)
	(auth-source-test-netrc-credentials-2)
	(auth-source-test-macos-keychain-search): Adapt test names.

2024-01-11  Michael Albinus  <michael.albinus@gmx.de>

	Support numeric port numbers in auth-source-macos-keychain

	* lisp/auth-source.el (auth-source-macos-keychain-search):
	Support numeric port numbers (bug#68376).
	(auth-source-macos-keychain-search-items): Make regexp more robust.

	* test/lisp/auth-source-tests.el (test-macos-keychain-search):
	Extend test.

2024-01-11  Jared Finder  <jared@finder.org>

	Populate tool-bar bindings on text terminals

	* lisp/tool-bar.el (tool-bar-make-keymap-1): Populate on text
	terminals.  (Bug#68334)

2024-01-11  Gabriel do Nascimento Ribeiro  <gabriel376@hotmail.com>

	Consider outline-heading-end-regexp in outline-font-lock-keywords

	* lisp/outline.el (outline-font-lock-keywords): Add
	outline-heading-end-regexp to regexp (bug#66166).

2024-01-11  Dmitry Gutov  <dmitry@gutov.dev>

	vc-log-mergebase: Fix the printing of buttons at the bottom

	* lisp/vc/vc.el (vc-print-log-setup-buttons):
	Fix when LIMIT is a string (bug#68364).
	(vc-print-log-internal): Update docstring.

2024-01-10  Eshel Yaron  <me@eshelyaron.com>

	Handle anonymous commands in C-h K

	* lisp/info.el (Info-goto-emacs-key-command-node): Don't call
	Info-goto-emacs-command-node for anonymous commands.  (Bug#61505)

2024-01-10  Augusto Stoffel  <arstoffel@gmail.com>

	Use auth-info-mode for non-hidden authinfo and netrc files

	* files.el (auto-mode-alist): Match non-hidden authinfo and netrc
	files, since it is reasonable to store passwords in
	~/.emacs.d/authinfo.gpg or a similarly named file.  (Bug#66241)

2024-01-10  john muhl  <jm@pub.pink>

	Add Ruby to the tree-sitter build-module script

	* admin/notes/tree-sitter/build-module/batch.sh (languages): Add
	Ruby.  (Bug#65739)

2024-01-10  Xi Lu  <lx@shellcodes.org>

	Fix man.el shell injection vulnerability

	* lisp/man.el (Man-translate-references): Fix shell injection
	vulnerability.  (Bug#66390)
	* test/lisp/man-tests.el (man-tests-Man-translate-references): New
	test.

2024-01-10  Richard M. Stallman  <rms@gnu.org>

	Esplain how to turn off GDB display of inferior-events

2024-01-10  Mattias Engdegård  <mattiase@acm.org>

	Lua compilation-mode rules adjustments (bug#60830)

	* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
	Translate `lua' and `lua-stack' to rx, and change two unnecessary
	non-greedy operators to greedy.

2024-01-10  Thierry Volpiatto  <thievol@posteo.net>

	Fix window setting in register preview (bug#67882)

	and allow configuring it if needed.

	* lisp/register.el (register-preview-display-buffer-alist): New user
	  var.
	(register-preview,register-preview-1): Use it.

2024-01-10  Rudolf Adamkovič  <salutis@me.com>

	Make Compilation mode recognize Lua errors

	Emacs comes with built-in support for the Lua programming language in
	the form of the Lua mode and now also the Lua Tree-sitter mode.  This
	patch further improves Lua support in Emacs by making the Compilation
	mode recognize Lua errors and stack traces.

	* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
	Add regexps to aid Lua development, namely the 'lua' regexp that
	matches Lua errors and the 'lua-stack' regexp that matches Lua stack
	frames.  (Bug#60830)
	* etc/compilation.txt (Lua): Add an example of a Lua error message
	with a stack trace.
	* test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data):
	(compile-test-error-regexps): Test the new 'lua' and 'lua-stack'
	regexps added to the 'compilation-error-regexp-alist-alist'.

2024-01-10  Stefan Kangas  <stefankangas@gmail.com>

	Fix use after free in androidvfs.c

	* src/androidvfs.c (android_afs_opendir, android_saf_tree_opendir):
	Fix use after free.

2024-01-10  Stefan Kangas  <stefankangas@gmail.com>

	Remove redundant casts from void* with malloc functions

	* src/msdos.c (IT_menu_make_room):
	* src/pgtkterm.c (pgtk_define_fringe_bitmap):
	* src/w16select.c (set_clipboard_data):
	* src/w32term.c (w32_define_fringe_bitmap):
	* src/w32uniscribe.c (uniscribe_shape): Remove redundant cast from
	void* with xrealloc.
	* admin/coccinelle/alloc_cast.cocci: New semantic patch.

2024-01-10  Michael Albinus  <michael.albinus@gmx.de>

	Fix file name completion with Tramp on MS Windows

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el (tramp-version): Adapt Tramp versions.

	* lisp/net/tramp.el (tramp-build-completion-file-name-regexp):
	Do not use `tramp-volume-letter-regexp'.  (Bug#68320)
	(tramp-completion-handle-expand-file-name): Simplify regexp.

	* test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion)
	(tramp-test26-interactive-file-name-completion): Run also on MS Windows.

2024-01-10  Philip Kaludercic  <philipk@posteo.net>

	Handle package versions that are not version strings

	* lisp/emacs-lisp/package.el (package-menu--version-predicate): Ignore
	any errors raised by 'version-to-list', thus falling back to the
	default version list.  (Bug#68317)

2024-01-10  Juri Linkov  <juri@linkov.net>

	Support :category in completion-extra-properties (bug#68214)

	* doc/lispref/minibuf.texi (Completion Variables): Add :category
	to the table of completion-extra-properties.

	* lisp/minibuffer.el (completion--metadata-get-1): New internal function.
	(completion-metadata-get): Use 'completion--metadata-get-1'.
	Thanks to Daniel Mendler <mail@daniel-mendler.de>.
	(completion-extra-properties): Mention :category in the docstring.

	* lisp/calendar/calendar.el (calendar-read-date): Use more
	user-friendly let-binding of completion-extra-properties
	with :category.

2024-01-09  Juri Linkov  <juri@linkov.net>

	Support more metadata properties in completion-extra-properties (bug#68214)

	* doc/lispref/minibuf.texi (Completion Variables): Add
	to the table of completion-extra-properties new items:
	`group-function', `display-sort-function', `cycle-sort-function'.

	* lisp/icomplete.el (icomplete--augment): Remove unnecessary
	plist-get from completion-extra-properties since now
	completion-metadata-get does this.

	* lisp/minibuffer.el (completion-metadata-get): Use plist-get to
	get prop from completion-extra-properties and cache the keyword.
	Thanks to Daniel Mendler <mail@daniel-mendler.de>.
	(completion-extra-properties): Mention new properties in docstring.
	(minibuffer-completion-help): Remove unnecessary
	plist-get from completion-extra-properties since now
	completion-metadata-get does this.

	* lisp/net/eww.el (eww-switch-to-buffer):
	* test/lisp/minibuffer-tests.el (completions-affixation-navigation-test):
	Unquote lambda in completion-extra-properties.

2024-01-09  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Fixes for point in window configuration (bug#68235)

	(tab-bar--tab): Instead of 'point-marker', use 'copy-marker' with the TYPE
	argument set to 'window-point-insertion-type'.  This will allow point to
	follow the output after switching tabs when point is at the end of
	a comint/compilation buffer.
	(tab-bar-select-tab): Remove ad-hoc rule for the reverted dired buffer.

2024-01-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	(mouse-wheel-*-event): Minor cleanups

	* lisp/mwheel.el (mwheel-event-button): Mark as obsolete alias.
	Change all callers.

	* lisp/edmacro.el (mouse-wheel-*-event): Move declarations to ...
	(edmacro-fix-menu-commands): ... where we do know that they should
	be defined.  Obey `mouse-wheel-*-alternate-event`s as well.

2024-01-09  Stefan Kangas  <stefankangas@gmail.com>

	Use `min`/`max` macros in a few more places

	* src/bidi.c (bidi_set_sos_type):
	* src/coding.c (consume_chars):
	* src/dosfns.c (dos_memory_info):
	* src/emacs.c (sort_args):
	* src/insdel.c (count_combining_before)
	(count_combining_after, replace_range, del_range_2):
	* src/sort.c (tim_sort):
	* src/w32.c (sys_write):
	* src/xfaces.c (face_at_buffer_position)
	(face_for_overlay_string): Prefer using 'min' and 'max' macros.

2024-01-08  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Make sure cperl-file-style is set buffer-local

	* lisp/progmodes/cperl-mode.el (cperl-file-style): Add description
	what the options actually do.
	(cperl-menu): Split the menu entry "Indent styles" into "Default
	indent styles" and "Indent styles for current buffer"
	(cperl--set-file-style): call `cperl-file-style' instead of
	`cperl-set-style'.  This completes the fix for Bug#17948.
	(cperl-set-style): Explain when to use `cperl-file-style'.
	Use `set-default-toplevel-value' instead of `set'.
	(cperl-set-style-back): Use `set-default-toplevel-value' instead
	of `set'.
	(cperl-file-style): New command to set the file style for the
	current buffer.

	* etc/NEWS: Announce the new command cperl-file-style.

2024-01-08  Michael Albinus  <michael.albinus@gmx.de>

	Make Tramp more robust

	* lisp/net/tramp-sh.el (tramp-bundle-read-file-names): Check, that
	the command finishes successfully.

2024-01-08  Po Lu  <luangruo@yahoo.com>

	Properly instruct Italic Arial or BS Mono at small PPEM sizes

	* src/sfnt.c (sfnt_read_simple_glyph): Correct alignment errors.
	(PUSH2_UNCHECKED): Don't shift negative signed value to the
	left.
	(SLOOP): Permit LOOP to be set to 0, which inhibits the
	execution of instructions it affects.
	(sfnt_address_zp2, sfnt_address_zp1, sfnt_address_zp0): Permit X
	and Y to be NULL.
	(sfnt_dot_fix_14): Guarantee that the final value is rounded to
	negative infinity, not zero.
	(sfnt_project_zp1_zp0_org): New function.
	(sfnt_interpret_mdrp): Avoid rounding issues by computing
	original distance from unscaled coordinates, if at all possible.
	(sfnt_interpret_simple_glyph, sfnt_interpret_compound_glyph_2):
	Set zone->simple.
	(all_tests) <LOOP>: Update test.
	(sfnt_identify_instruction, main): Adjust tests.

	* src/sfnt.h (struct sfnt_interpreter_zone): New field simple.

2024-01-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove redundant conversion from bool to bool

	* src/xdisp.c (maybe_produce_line_number): Remove redundant conversion
	of the value of an expression from bool to bool.

2024-01-08  Stefan Kangas  <stefankangas@gmail.com>

	Support string literals in build_string.cocci

	* admin/coccinelle/build_string.cocci: Support string literals.

2024-01-08  F. Jason Park  <jp@neverwas.me>

	Clarify purpose of module aliases in ERC

	* doc/misc/erc.texi: Mention that aliases should not be defined for
	new modules.
	* lisp/erc/erc-common.el (define-erc-module): Refactor slightly for
	readability.
	(erc-with-all-buffers-of-server): Redo doc string.
	* lisp/erc/erc-pcomplete.el: Declare `completion' module's feature and
	group as being `erc-pcomplete'.
	* test/lisp/erc/erc-tests.el (erc--find-group--real): Assert group
	lookup works for "normalized" module name `completion' of
	`erc-pcomplete-mode'.

2024-01-08  F. Jason Park  <jp@neverwas.me>

	Make ERC's format catalogs more extensible

	* lisp/erc/erc-common.el (erc--define-catalog): Accept a `:parent'
	keyword to allow for extending an existing catalog by overriding some
	subset of defined entries.
	(erc-define-message-format-catalog): Add edebug spec.
	* lisp/erc/erc.el (erc-retrieve-catalog-entry): Check parent for
	definition before looking to `default-toplevel-value'.
	* test/lisp/erc/erc-tests.el (erc-retrieve-catalog-entry): Add test
	case for inheritance.
	* test/lisp/erc/resources/erc-tests-common.el
	(erc-tests-common-pp-propertized-parts): Fix bug in convenience
	command.  (Bug#67677)

2024-01-08  F. Jason Park  <jp@neverwas.me>

	Allow setting `erc-split-line-length' to zero

	* etc/ERC-NEWS: Mention that `erc-flood-protect' no longer affects
	line splitting.
	* lisp/erc/erc-backend.el (erc-split-line-length): Mention ways for
	modules to suppress line splitting entirely.
	(erc--split-line): Exit loop instead of asserting progress has been
	made.
	* lisp/erc/erc.el (erc--split-lines): Don't split input when
	option `erc-split-line-length' is zero.
	* test/lisp/erc/erc-tests.el (erc--split-line): Assert behavior when
	`erc-split-line-length' is 0.  (Bug#62947)

2024-01-08  F. Jason Park  <jp@neverwas.me>

	Use global window hook for erc-keep-place-indicator

	* lisp/erc/erc-goodies.el
	(erc--keep-place-indicator-on-window-buffer-change): Expect a frame
	instead of a window argument for the only parameter, which is now
	ignored, and exit early when entering a minibuffer.
	(erc--keep-place-indicator-setup): Remove function because local
	modules don't need a separate setup function.
	(erc-keep-place-indicator-mode): Add autoload cookie even though this
	is a local module, since this particular one is intended for more
	granular, interactive activation.  This is mostly a formality because
	it only matters in the unlikely event `erc-modules' is missing all
	other modules defined in `erc-goodies'.
	(erc-keep-place-indicator-mode, erc-keep-place-indicator-enable,
	erc-keep-place-indicator-disable): Move functionality from
	`erc--keep-place-indicator-setup' into enable body.  Use global
	instead of local members for `erc-keep-place-mode-hook' and
	`window-buffer-change-functions'.
	(erc--keep-place-indicator-on-global-module): Perform necessary action
	in all ERC buffers, not just the current one, where the user has
	ostensibly disabled `erc-keep-place-mode'.
	* test/lisp/erc/erc-goodies-tests.el
	(erc-goodies-tests--assert-kp-indicator-on,
	erc-goodies-tests--assert-kp-indicator-off): Change expected hook
	membership for dependencies from global to local.
	(erc-goodies-tests--keep-place-indicator): Use new helpers from
	the `erc-tests-common' library.  (Bug#59943)

2024-01-07  Juri Linkov  <juri@linkov.net>

	Support more metadata properties in completion-category-overrides (bug#68214)

	* doc/lispref/minibuf.texi (Completion Variables): Add
	to the table of completion-category-overrides new items:
	`cycle-sort-function', `group-function', `annotation-function',
	`affixation-function'.

	* lisp/minibuffer.el (completion-metadata-get): Try also to get
	the property from completion-category-overrides by category.
	Suggested by Daniel Mendler <mail@daniel-mendler.de>.
	(completion-category-defaults): Add new properties to docstring.
	(completion-category-overrides): Add customization for new
	properties: `cycle-sort-function', `group-function',
	`annotation-function', `affixation-function'.
	(completion-metadata-override-get): Remove function.
	(minibuffer-completion-help): Replace 'completion-metadata-override-get'
	with 'completion-metadata-get' for 'display-sort-function'.

2024-01-07  Michael Albinus  <michael.albinus@gmx.de>

	Handle local default directory in connection-local-value

	* lisp/files-x.el (connection-local-p, connection-local-value):
	Handle local `default-directory'.

	* test/lisp/files-x-tests.el (files-x-test-connection-local-value):
	Extend test.

2024-01-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	(jsonrpc--log-event): Try and fix bug#68072

	* lisp/jsonrpc.el (jsonrpc--log-event): Force the use of
	`lisp-indent-function` in `pp-to-string`.

2024-01-07  João Távora  <joaotavora@gmail.com>

	Eglot: careful when invoking code actions on no symbol at all

	Invoking code actions without a marked region or over a symbol
	will trip certain servers up since BEG and END in eglot-code-actions
	will be nil, causing 'eglot--pos-to-lsp-position' to assume point (which
	is OK) but the 'flymake-diagnostics' call to return all diagnostics.

	This causes an absolutely undecipherable JavaScript backtrace to be
	sent back to Eglot from typescript-language-server.

	Github-reference: https://github.com/joaotavora/eglot/issues/847

	* lisp/progmodes/eglot.el (eglot--code-action-bounds): Avoid returning
	  (list nil nil)

2024-01-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	(describe-package-1): Fix bug#68288

	Fix support for multiple maintainers in `describe-package` and
	in `package-report-bug`.

	* lisp/emacs-lisp/package.el (describe-package-1): There's no
	`:maintainers:`, instead `:maintainer` can hold a list of maintainers.
	(package-maintainers): Adapt to the possibility of having
	multiple maintainers.
	(package-report-bug): Don't burp if the package is not installed.

2024-01-06  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify Ubuntu GCC 13.2 in x_get_local_selection

	* src/xselect.c: Ignore -Wanalyzer-null-dereference,
	to work around GCC bug 102671.

2024-01-06  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify Ubuntu GCC 13.2 in set_marker_internal

	* src/marker.c (set_marker_internal): Ignore
	-Wanalyzer-deref-before-check, to work around GCC bug 113253.

2024-01-06  Michael Albinus  <michael.albinus@gmx.de>

	Complete change of ert-remote-temporary-file-directory

	* lisp/emacs-lisp/ert-x.el: Adapt comment.

	* test/lisp/net/tramp-tests.el (ert-remote-temporary-file-directory):
	Make it a defvar.

2024-01-06  Michael Albinus  <michael.albinus@gmx.de>

	Minor change in tramp.texi

	* doc/misc/tramp.texi (Obtaining @value{tramp}): Mention the ELPA
	Tramp manual.

2024-01-06  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp version

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el (tramp-version): Adapt Tramp versions.

2024-01-06  Steven Allen  <steven@stebalien.com>

	Make 'advice-remove' interactive

	`ad-advice-remove' is already interactive, but it doesn't work with
	new-style advice.

	* lisp/emacs-lisp/nadvice.el (advice-remove): Make it
	interactive (Bug#67926).

	* doc/lispref/functions.texi (Advising Named Functions): Document that
	'advice-remove' is now an interactive command.

2024-01-06  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	bf7034048c1 ; * doc/emacs/custom.texi (Changing a Variable): Update e...
	466d1c98a9e Fix icons.el when icon does not exist as a file
	2a861124e89 ; Improve documentation of 'buffer-match-p'
	dc9d02f8a01 * lisp/isearch.el (isearch-search-and-update): Let-bind '...
	9308d9a74ab * src/comp.c (Fcomp__compile_ctxt_to_file): Fix hash table...
	a2a6619b282 Provide decent documentation for 'help-quick'
	ab66b749a27 ; * src/window.c (Fset_window_margins): Doc fix.
	1a677d1429d treesit--pre-syntax-ppss: Fix args-out-of-range in intern...

2024-01-06  Eli Zaretskii  <eliz@gnu.org>

	Fix last change (bug#67930)

	* lisp/progmodes/compile.el (compilation--expand-fn): Renamed from
	'safe-expand-file-name'; all callers changed.  Doc fix.

2024-01-06  Jurgen De Backer  <jurgen.de-backer.ext@eurocontrol.int>

	Fix file-name resolution in *compilation* and *grep* buffers

	Resolving symlinks in file names could lead to non-existent files
	if some leading directory is a symlink to its parent.
	In emacs 28 'expand-file-name' was replaced by 'file-truename' to
	solve bug #8035.

	* lisp/progmodes/compile.el (safe-expand-file-name): New function.
	(compilation-find-file-1): Call 'safe-expand-file-name'.  (Bug#67930)

2024-01-06  Martin Rudalics  <rudalics@gmx.at>

	Fix use of 'display-buffer-alist' for Info buffers

	* lisp/info.el (info-pop-to-buffer): New function.
	(info-other-window, info, Info-find-node, Info-revert-find-node)
	(Info-next, Info-prev, Info-up, info-display-manual): Call
	'info-pop-to-buffer'.  (Bug#68081)

2024-01-06  Po Lu  <luangruo@yahoo.com>

	Revert "Add new `swap` macro and use it"

	typeof is an extension which does not exist in Standard C, so macros
	using it are unsuitable for inclusion in Emacs.

	This reverts commit 37889523278fe65733938fb11c3701898309961c.

2024-01-06  Po Lu  <luangruo@yahoo.com>

	Properly parse TTC tables with digital signatures

	* src/sfnt.c (sfnt_read_ttc_header): Don't inadvertently
	overwrite first two offsets while reading the digital signature.

2024-01-06  Stefan Kangas  <stefankangas@gmail.com>

	Add new `swap` macro and use it

	A `swap` macro prevents programming errors and is more concise.
	It is a natural addition to our existing `min` and `max` macros.

	* src/lisp.h (swap): New macro.
	* lwlib/xlwmenu.c (draw_shadow_rectangle, draw_shadow_rhombus):
	* src/androidterm.c (android_get_surrounding_text):
	* src/buffer.c (Fmake_overlay, modify_overlay, Fmove_overlay):
	* src/dispnew.c (swap_glyphs_in_rows, reverse_rows):
	* src/editfns.c (Finsert_buffer_substring)
	(Fcompare_buffer_substrings):
	* src/eval.c (run_hook_wrapped_funcall):
	* src/fns.c (extract_data_from_object):
	* src/regex-emacs.c (forall_firstchar_1):
	* src/textconv.c (textconv_query, get_extracted_text)
	(get_surrounding_text):
	* src/textprop.c (validate_interval_range)
	(verify_interval_modification):
	* src/w32uniscribe.c (OTF_INT16_VAL):
	* src/xfaces.c (load_face_colors):
	* src/xterm.c (SWAPCARD32): Prefer using above macro to open-coding.

2024-01-05  Nicholas Vollmer  <iarchivedmywholelife@gmail.com>

	Use special-mode in checkdoc status buffer

	* lisp/emacs-lisp/checkdoc.el (checkdoc-display-status-buffer): Use
	`special-mode'.  (Bug#68268)

2024-01-05  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/mail/rmail.el (rmail-epa-decrypt): Fix typo (bug#68248).

2024-01-05  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of derived modes and their parents

	* doc/lispref/modes.texi (Derived Modes): Expand documentation of
	functions that manipulate parent modes of a derived mode.
	Document 'provided-mode-derived-p'.  Improve indexing.

	* lisp/subr.el (derived-mode-all-parents)
	(derived-mode-add-parents, provided-mode-derived-p)
	(derived-mode-p): Doc fixes.

2024-01-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/startup.el (startup--load-user-init-file): Fix last change

	Use `condition-case-unless-debug` only in the branch when
	`--debug-init` is not in use, otherwise it prevents `handler-bind`
	from triggering the debugger.

2024-01-05  Graham Marlow  <graham@mgmarlow.com>

	Improve yaml-ts-mode fill-paragraph (bug#68226)

	When using fill-paragraph on a block_scalar (the element within a
	block_node) fill the paragraph such that the contents remain
	within the block_node. This fixes the previous behavior that would
	clobber a block_node.

	* lisp/textmodes/yaml-ts-mode.el: Add yaml-ts-mode--fill-paragraph

2024-01-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'handler-bind'

2024-01-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	Avoid `defconst` for vars which we modify

	If we `setq` or let-bind a var, then presumably it's not a const.

	* lisp/bookmark.el (bookmark-bmenu-buffer):
	* lisp/char-fold.el (char-fold-table):
	* lisp/pcmpl-linux.el (pcmpl-linux-fs-modules-path-format)
	(pcmpl-linux-mtab-file):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-log-buffer):
	* lisp/emacs-lisp/check-declare.el (check-declare-warning-buffer):
	* lisp/emacs-lisp/ert-x.el (ert-remote-temporary-file-directory):
	* lisp/erc/erc.el (erc-default-port):
	* lisp/net/tramp.el (tramp-unknown-id-string)
	(tramp-unknown-id-integer):
	* lisp/url/url-util.el (url-unreserved-chars):

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	Improve `handler-bind` doc

	* doc/lispref/control.texi (Handling Errors) <handler-bind>: Expand.
	* doc/lispref/variables.texi (Variable Scoping): Mention static scoping.

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(backtrace-on-redisplay-error): Use `handler-bind`

	Reimplement `backtrace-on-redisplay-error` using `push_handler_bind`.
	This moves the code from `signal_or_quit` to `xdisp.c` and
	`debug-early.el`.

	* lisp/emacs-lisp/debug-early.el (debug-early-backtrace):
	Add `base` arg to strip "internal" frames.
	(debug--early): New function, extracted from `debug-early`.
	(debug-early, debug-early--handler): Use it.
	(debug-early--muted): New function, extracted (translated) from
	`signal_or_quit`; trim the buffer to a max of 10 backtraces.

	* src/xdisp.c (funcall_with_backtraces): New function.
	(dsafe_calln): Use it.
	(syms_of_xdisp): Defsym `Qdebug_early__muted`.

	* src/eval.c (redisplay_deep_handler): Delete var.
	(init_eval, internal_condition_case_n): Don't set it any more.
	(backtrace_yet): Delete var.
	(signal_or_quit): Remove special case for `backtrace_on_redisplay_error`.
	* src/keyboard.c (command_loop_1): Don't set `backtrace_yet` any more.
	* src/lisp.h (backtrace_yet): Don't declare.

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(signal_or_quit): Preserve error object identity

	Make sure we build the (ERROR-SYMBOL . ERROR-DATA) object only once
	when signaling an error, so that its `eq` identity can be used.
	It also gets us a tiny bit closer to having real "error objects"
	like in most other current programming languages.

	* src/eval.c (maybe_call_debugger): Change arglist to receive the error
	object instead of receiving the signal and the data separately.
	(signal_or_quit): Build the error object right at the beginning so it
	stays `eq` to itself.
	Rename the `keyboard_quit` arg to `continuable` so say what it does
	rather than what it's used for.
	(signal_quit_p): Change arg to be the error object rather than just the
	error-symbol.

	* src/keyboard.c (cmd_error_internal, menu_item_eval_property_1):
	Adjust calls to `signal_quit_p` accordingly.

	* test/src/eval-tests.el (eval-tests--error-id): New test.

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	eval.c: Add new var `lisp-eval-depth-reserve`

	Rather than blindly increase `max-lisp-eval-depth` when entering the
	debugger or running `signal-hook-function`, use this new "reserve"
	to keep track of how much we have grown the stack for "debugger"
	purposes so that for example recursive calls to `signal-hook-function`
	can't eat up the whole C stack.

	* src/eval.c (max_ensure_room): Rewrite.
	(restore_stack_limits): Move before `max_ensure_room`.  Rewrite.
	(call_debugger, signal_or_quit): Adjust calls accordingly.
	Also grow `max-lisp-eval-depth` for `hander-bind` handlers.
	(init_eval_once): Don't initialize `max_lisp_eval_depth` here.
	(syms_of_eval): Initialize it here instead.
	Add new var `lisp-eval-depth-reserve`.

	* doc/lispref/eval.texi (Eval): Add `lisp-eval-depth-reserve`.

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(macroexp--with-extended-form-stack): Use plain `let`

	`macroexp--with-extended-form-stack` used manual push/pop so that upon
	non-local exits the "deeper" value is kept, so the error handler gets
	to know what was the deeper value, so as to be able to compute more
	precise error locations.
	Replace this with a `handler-bind` which catches that "deeper" value
	more explicitly.

	* lisp/emacs-lisp/bytecomp.el (bytecomp--displaying-warnings):
	Use `handler-bind` to catch the value of `byte-compile-form-stack`
	at the time of the error.  Also consolidate the duplicated code.

	* lisp/emacs-lisp/macroexp.el (macroexp--with-extended-form-stack):
	Use a plain dynbound let-rebinding.

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	Move batch backtrace code to `top_level_2`

	Move ad-hoc code meant to ease debugging of bootstrap (and batch mode)
	to `top_level_2` so it doesn't pollute `signal_or_quit`.

	* src/lisp.h (pop_handler, push_handler_bind): Declare.
	* src/keyboard.c (top_level_2): Setup an error handler to call
	`debug-early` when noninteractive.
	* src/eval.c (pop_handler): Not static any more.
	(signal_or_quit): Remove special case for noninteractive use.
	(push_handler_bind): New function, extracted from `Fhandler_bind_1`.
	(Fhandler_bind_1): Use it.
	(syms_of_eval): Declare `Qdebug_early__handler`.
	* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Weed out
	frames below `debug-early`.
	(debug-early--handler): New function.

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	startup.el: Use `handler-bind` to implement `--debug-init`

	This provides a more reliable fix for bug#65267 since we don't
	touch `debug-on-error` nor `debug-ignore-errors` any more.

	* lisp/startup.el (startup--debug): New function.
	(startup--load-user-init-file): Use it and `handler-bind` instead of
	let-binding `debug-on-error`.

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	emacs-module-tests.el (mod-test-non-local-exit-signal-test): Repair test

	That test relied on `debugger` and `debug-on-signal` in a way that
	doesn't work with the new ERT code.

	* test/src/emacs-module-tests.el (mod-test-non-local-exit-signal-test):
	Use `handler-bind` rather than the debugger.

2024-01-04  Mattias Engdegård  <mattiase@acm.org>

	Use handler-bind to repair bytecomp-tests

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--error-frame, bytecomp--byte-op-error-backtrace):
	Make test pass again and simplify, using handler-bind instead
	of the previous debugger hack.

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix ert-tests.el for the new `handler-bind` code

	Now that `ert.el` uses `handler-bind` instead of `debugger`, some
	details of the behavior have changed.  More specifically,
	three tests are now broken, but these basically tested the failure
	of ERT's machinery to record errors when ERT was run within
	a `condition-case`.
	AFAICT, these tests do not check for a behavior that we want,
	so rather than "fix" them, I deleted them (bug#67862).

	* test/lisp/emacs-lisp/ert-tests.el (ert-test-error-debug)
	(ert-test-fail-debug-with-condition-case): Delete.
	(ert-test-should-failure-debugging): Don't use `ert-debug-on-error`.
	(ert-test-with-demoted-errors): It now passes.  Bug#11218 is fixed!

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	ert.el: Use `handler-bind` to record backtraces

	* lisp/emacs-lisp/ert.el (ert--should-signal-hook): Delete function.
	(ert--expand-should-1): Don't bind `signal-hook-function`.
	(ert--test-execution-info): Remove `next-debugger` slot.
	(ert--run-test-debugger): Adjust to new calling convention.
	Pass the `:backtrace-base` info to the debugger.
	(ert--run-test-internal): Use `handler-bind` rather than let-binding
	`debugger` and `debug-on-error`.

	* lisp/emacs-lisp/ert-x.el (ert-remote-temporary-file-directory): Don't
	use `defconst` if it's not meant to stay constant (e.g. we let-bind it
	in tramp-tests.el).

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(eval-expression): Fix bug#67196

	* lisp/simple.el (eval-expression--debug): New function.
	(eval-expression): Use it together with `handler-bind` instead of
	let-binding `debug-on-error`.

2024-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	New special form `handler-bind`

	AFAIK, this provides the same semantics as Common Lisp's `handler-bind`,
	modulo the differences about how error objects and conditions are
	represented.

	* lisp/subr.el (handler-bind): New macro.

	* src/eval.c (pop_handler): New function.
	(Fhandler_Bind_1): New function.
	(signal_or_quit): Handle new handlertypes `HANDLER` and `SKIP_CONDITIONS`.
	(find_handler_clause): Simplify.
	(syms_of_eval): Defsubr `Fhandler_bind_1`.

	* doc/lispref/control.texi (Handling Errors): Add `handler-bind`.

	* test/src/eval-tests.el (eval-tests--handler-bind): New test.

	* lisp/emacs-lisp/lisp-mode.el (lisp-font-lock-keywords):
	Move 'handler-bind' from CL-only to generic Lisp.
	(handler-bind): Remove indentation setting, it now lives in the macro
	definition.

2024-01-04  Antero Mejr  <antero@mailbox.org>

	Add file completion for "git blame" to pcomplete

	* lisp/pcmpl-git.el (pcomplete/git): Add "blame" to the tracked files
	clause.  (Bug#68245)

2024-01-04  Juri Linkov  <juri@linkov.net>

	Support display-sort-function in completion-category-overrides (bug#68214)

	* doc/lispref/minibuf.texi (Completion Variables):
	Add 'display-sort-function' to the table of
	'completion-category-overrides'.

	* lisp/calendar/calendar.el (calendar-read-date): Add metadata
	category 'calendar-month' for completing-read reading a month name.

	* lisp/minibuffer.el (completion-category-defaults):
	Add 'display-sort-function' with identity for the category 'calendar-month'.
	(completion-category-overrides): Add customization for completion sorting
	with 'display-sort-function' and a choice like in 'completions-sort'.
	(completion-metadata-override-get): New function.
	(minibuffer-completion-help): Use 'completion-metadata-override-get'
	instead of 'completion-metadata-get' to get sort-fun from
	'display-sort-function'.

2024-01-04  Morgan Willcock  <morgan@ice9.digital>

	Fix last change in tempo.el

	* lisp/tempo.el: Set marker type for tempo-region-start to
	move when text is inserted at its position.  This prevents
	the template from inserting text into the region.  (Bug#68185)

2024-01-04  Morgan Willcock  <morgan@ice9.digital>

	Ensure indent-region argument order in tempo.el is correct

	* lisp/tempo.el (tempo-insert): Call 'indent-region' with the
	stored region markers to ensure that the start and end arguments
	are used in the correct order.  (Bug#68185)

2024-01-04  Eli Zaretskii  <eliz@gnu.org>

	Document 'etags-regen-mode' in the Emacs user manual

	* doc/emacs/maintaining.texi (Create Tags Table): Document
	'etags-regen-mode'.

2024-01-04  Stefan Kangas  <stefankangas@gmail.com>

	Remove semantic patch for adjusting `XSAVE_*`

	* admin/coccinelle/xsave.cocci: Delete file.  The corresponding macros
	were removed in 4139c98eb5f 2018-06-14 "Remove Lisp_Misc_Save_Value".

2024-01-04  Stefan Kangas  <stefankangas@gmail.com>

	Prefer build_unibyte_string where applicable

	* src/fns.c (syms_of_fns):
	* src/image.c (slurp_image): Prefer build_unibyte_string (str) to
	make_unibyte_string (str, strlen (str)).
	* admin/coccinelle/unibyte_string.cocci: Support string literals.

2024-01-04  Stefan Kangas  <stefankangas@gmail.com>

	Prefer NILP (x) to EQ (x, Qnil)

	* src/image.c (anim_prune_animation_cache):
	Prefer NILP (x) to EQ (x, Qnil).
	* admin/coccinelle/nilp.cocci: Semantic patch for above change.

2024-01-04  Dmitry Gutov  <dmitry@gutov.dev>

	New feature: etags-regen-mode

	* lisp/progmodes/etags-regen.el: New file (bug#67687).

	* etc/NEWS: Mention the addition.

	* .dir-locals.el: Add this project's settings for
	etags-regen-regexp-alist and etags-regen-ignores.

2024-01-03  Po Lu  <luangruo@yahoo.com>

	Don't magnify extent of shifts by variable glyph interpolation

	* src/sfnt.c (sfnt_infer_deltas_2): Correctly index
	x_coordinates and y_coordinates computing deltas for plain
	shift.
	(sfnt_vary_simple_glyph): Copy glyph contents to original_x and
	original_y not the first time is create, but before each tuple
	is applied.

2024-01-03  Stefan Kangas  <stefankangas@gmail.com>

	Don't include sheap.h in sysdep.c

	The symbol we used from sheap.h (bss_sbrk_did_unexec) was removed with
	the introduction of the portable dumper.

	* src/sysdep.c: Don't include "sheap.h".

2024-01-03  Stefan Kangas  <stefankangas@gmail.com>

	Delete obsolete GC debugging code

	This code was introduced in 2014 to catch a GC bug that, according to
	Paul Eggert in 2019, "seems to have been fixed" (see 2b552f34892
	2019-08-21 "Don’t debug fset by default").  It has been marked
	obsolete since that time, and no one has mentioned it on our mailing
	lists since.  Let's just get rid of it.

	* src/alloc.c
	(SUSPICIOUS_OBJECT_CHECKING) [ENABLE_CHECKING]: Don't define.
	(suspicious_free_record, suspicious_objects, suspicious_object_index)
	(suspicious_free_history, suspicious_free_history_index)
	(note_suspicious_free) [SUSPICIOUS_OBJECT_CHECKING]: Delete.
	(find_suspicious_object_in_range)
	(detect_suspicious_free): Delete functions.
	(cleanup_vector)
	(allocate_vectorlike): Don't call above deleted functions.
	(Fsuspicious_object): Delete DEFUN.
	(syms_of_alloc) <Ssuspicious_object>: Delete defsubr.

2024-01-03  Dmitry Gutov  <dmitry@gutov.dev>

	(vc-deduce-fileset): Handle log-view-mode derivatives specially

	* lisp/vc/vc.el (vc-deduce-fileset):
	Handle log-view-mode derivatives specially, that helps after
	switching projects (bug#68174).

2024-01-02  Richard Stallman  <rms@gnu.org>

	Fix non-permenent decryption to show up temporarily.

	In a decrypted mime part, replace CRLF with newline,

	* lisp/mail/rmail.el (rmail-epa-decrypt-1): If NOT descrypting permanently,
	put the decrypts into the view buffer.
	(rmail-epa-decrypt, rmail-epa-decrypt-1):
	In a decrypted mime part, replace CRLF with newline,

2024-01-02  Stefan Kangas  <stefankangas@gmail.com>

	Don't include sheap.h from alloc.c

	The symbol we used from sheap.h (bss_sbrk_did_unexec) was removed with
	the introduction of the portable dumper.

	* src/alloc.c: Don't include sheap.h.

2024-01-02  Po Lu  <luangruo@yahoo.com>

	Improve rounding of projection vector versors

	* src/sfnt.c (sfnt_short_frac_dot): New function.
	(sfnt_validate_gs): Guarantee dot product of freedom and
	projection vectors are properly rounded.  If the final product
	is short of 1/16th of a vector, reset it to an entire vector.

2024-01-02  Po Lu  <luangruo@yahoo.com>

	Merge from savannah/emacs-29

	dc4e6b13296 ; Update copyright years in more files
	64b37776318 ; Run set-copyright from admin.el
	8e1c56ae467 ; Add 2024 to copyright years

	# Conflicts:
	#	doc/misc/modus-themes.org
	#	doc/misc/texinfo.tex
	#	etc/NEWS
	#	etc/refcards/ru-refcard.tex
	#	etc/themes/modus-operandi-theme.el
	#	etc/themes/modus-themes.el
	#	etc/themes/modus-vivendi-theme.el
	#	lib/alloca.in.h
	#	lib/binary-io.h
	#	lib/c-ctype.h
	#	lib/c-strcasecmp.c
	#	lib/c-strncasecmp.c
	#	lib/careadlinkat.c
	#	lib/cloexec.c
	#	lib/close-stream.c
	#	lib/diffseq.h
	#	lib/dup2.c
	#	lib/filemode.h
	#	lib/fpending.c
	#	lib/fpending.h
	#	lib/fsusage.c
	#	lib/getgroups.c
	#	lib/getloadavg.c
	#	lib/gettext.h
	#	lib/gettime.c
	#	lib/gettimeofday.c
	#	lib/group-member.c
	#	lib/malloc.c
	#	lib/md5-stream.c
	#	lib/md5.c
	#	lib/md5.h
	#	lib/memmem.c
	#	lib/memrchr.c
	#	lib/nanosleep.c
	#	lib/save-cwd.h
	#	lib/sha1.c
	#	lib/sig2str.c
	#	lib/stdlib.in.h
	#	lib/strtoimax.c
	#	lib/strtol.c
	#	lib/strtoll.c
	#	lib/time_r.c
	#	lib/xalloc-oversized.h
	#	lisp/auth-source-pass.el
	#	lisp/emacs-lisp/lisp-mnt.el
	#	lisp/emacs-lisp/timer.el
	#	lisp/info-look.el
	#	lisp/jit-lock.el
	#	lisp/loadhist.el
	#	lisp/mail/rmail.el
	#	lisp/net/ntlm.el
	#	lisp/net/webjump.el
	#	lisp/progmodes/asm-mode.el
	#	lisp/progmodes/project.el
	#	lisp/progmodes/sh-script.el
	#	lisp/textmodes/flyspell.el
	#	lisp/textmodes/reftex-toc.el
	#	lisp/textmodes/reftex.el
	#	lisp/textmodes/tex-mode.el
	#	lisp/url/url-gw.el
	#	m4/alloca.m4
	#	m4/clock_time.m4
	#	m4/d-type.m4
	#	m4/dirent_h.m4
	#	m4/dup2.m4
	#	m4/euidaccess.m4
	#	m4/fchmodat.m4
	#	m4/filemode.m4
	#	m4/fsusage.m4
	#	m4/getgroups.m4
	#	m4/getloadavg.m4
	#	m4/getrandom.m4
	#	m4/gettime.m4
	#	m4/gettimeofday.m4
	#	m4/gnulib-common.m4
	#	m4/group-member.m4
	#	m4/inttypes.m4
	#	m4/malloc.m4
	#	m4/manywarnings.m4
	#	m4/mempcpy.m4
	#	m4/memrchr.m4
	#	m4/mkostemp.m4
	#	m4/mktime.m4
	#	m4/nproc.m4
	#	m4/nstrftime.m4
	#	m4/pathmax.m4
	#	m4/pipe2.m4
	#	m4/pselect.m4
	#	m4/pthread_sigmask.m4
	#	m4/readlink.m4
	#	m4/realloc.m4
	#	m4/sig2str.m4
	#	m4/ssize_t.m4
	#	m4/stat-time.m4
	#	m4/stddef_h.m4
	#	m4/stdint.m4
	#	m4/stdio_h.m4
	#	m4/stdlib_h.m4
	#	m4/stpcpy.m4
	#	m4/strnlen.m4
	#	m4/strtoimax.m4
	#	m4/strtoll.m4
	#	m4/time_h.m4
	#	m4/timegm.m4
	#	m4/timer_time.m4
	#	m4/timespec.m4
	#	m4/unistd_h.m4
	#	m4/warnings.m4
	#	nt/configure.bat
	#	nt/preprep.c
	#	test/lisp/register-tests.el

2024-01-02  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	3204825f560 Fix mangled Subject header field when forwarding (Bug#67360)
	7591acfe38e Update to Org 9.6.15
	240b4594f11 ; * etc/TODO: Add an item about 'Info-hide-note-references'.
	01be4fe39d7 * doc/emacs/custom.texi (Modifier Keys): Fix markup (bug#...
	55555a6a0d1 org-protocol: Minor copy-edits to Commentary
	4696869d3d5 Improve syntax highlighting for python-ts-mode

2024-01-01  João Távora  <joaotavora@gmail.com>

	Eglot: filter by prefix in narrow-scope eglot-code-actions

	Github-reference: https://github.com/joaotavora/eglot/issues/847

	Servers like typescript-language-server, when asked for {"only" :
	"source.organizeImports"}, return actions with the
	"source.organizeImports.ts" kind.  Eglot rejected these actions, but
	according to the spec:

	  Kinds are a hierarchical list of identifiers separated by `.` [...]
	  The set of kinds is open.

	So I guess we can use string-prefix-p

	* lisp/progmodes/eglot.el (eglot-code-actions): Use string-prefix-p.

2024-01-01  Aaron Jensen  <aaronjensen@gmail.com>

	Avoid race condition in parallel native-compilation

	* lisp/emacs-lisp/comp.el (comp-delete-or-replace-file): Avoid
	race condition by relying on 'rename-file' being an atomic
	operation on Posix filesystems.  (Bug#68083)

2024-01-01  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	SES manual clean-up any « ignore »'d text to be translated

	Remove from the English version any ignore'd chunk of text that has
	been contributed yet only in the French version, and let only the
	comment indicating re-alignment is needed.

2024-01-01  Kjetil Orbekk  <kj@orbekk.com>  (tiny change)

	Fix vg-hg-annotate-time bug

	* lisp/vc/vc-hg.el (vc-hg-annotate-time): Fix extraction of timestamp
	from string.
	* test/lisp/vc/vc-hg-tests.el (vc-hg-annotate-time): Test that the
	correct timestamp is found.

2024-01-01  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	SES manual: fix explanation why B1 remains displayed empty

	* doc/lang/fr/misc/ses-fr.texi (Quick Tutorial): Fix explanation
	why B1 remains empty

	* doc/misc/ses.texi (Quick Tutorial):
	* doc/lang/fr/misc/ses-fr.texi (Quick Tutorial): @samp{...} cell
	references.

2024-01-01  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	Typos in SES manual.

	Also @samp{...}-ify cell/row/column reference given as in-line examples.

2024-01-01  Po Lu  <luangruo@yahoo.com>

	Bring GX point interpolation further into standards compliance

	* src/sfnt.c (sfnt_infer_deltas_2): New function; factor much of
	sfnt_infer_deltas_1 into this function, then modify its
	treatment of untouched points positioned at their reference
	points to align with standard GX treatment.
	(sfnt_infer_deltas_1): Remove all code not concerning anchor
	point discovery.
	(main): Adjust tests.

2024-01-01  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	Translate SES manual to French

2023-12-31  F. Jason Park  <jp@neverwas.me>

	Use advertised PREFIX when formatting nicks in ERC

	* lisp/erc/erc-speedbar.el (erc-speedbar-insert-user): Run
	`erc-get-channel-membership-prefix' in associated buffer if possible.
	* lisp/erc/erc.el (erc-get-channel-membership-prefix): Use known
	prefix mappings when determining status chars.
	* test/lisp/erc/erc-tests.el (erc--parsed-prefix): Use common helpers
	for initializing buffers, and use a more realistic example for PREFIX
	value.
	(erc--update-channel-modes): Add current buffer to `erc-server-user'
	object to maintain essential invariant, even though this doesn't
	affect the test's outcome.
	(erc-tests--equal-including-properties): Move to `erc-tests-common'
	and rename `erc-tests-common-equal-with-props'.
	(erc--merge-prop, erc--remove-from-prop-value-list,
	erc--remove-from-prop-value-list/many): Use new name for
	`erc-tests-common-equal-with-props'.
	(erc-get-channel-membership-prefix): New test.
	(erc--determine-speaker-message-format-args,
	erc--determine-speaker-message-format-args/queries-as-channel,
	erc--determine-speaker-message-format-args/queries): Use new name
	for `erc-tests-common-equal-with-props'.
	* test/lisp/erc/resources/erc-tests-common.el
	(erc-tests-common-equal-with-props): New macro, originally
	`erc-tests--equal-including-properties' from erc-tests.el.
	(erc-tests-common-make-server-buf): Initialize tables and make NAME
	argument optional.  (Bug#67677)

2023-12-31  F. Jason Park  <jp@neverwas.me>

	Fix regression in erc-button-add-button

	* lisp/erc/erc-button.el (erc-button--nick): Abide by recommended
	internal naming convention and use "cusr" instead of "cuser" for
	referring to an `erc-channel-user' object.
	(erc-button--fallback-cmem-function,
	erc-button--get-user-from-spkr-prop): Use new, preferred name
	`erc-channel-members' for `erc-channel-users' table.
	(erc-button-add-nickname-buttons): Use "cmem" instead of "cuser" to
	refer to values of the `erc-channel-members' table, which are cons
	cells, not `erc-channel-user' objects.  Use updated slot name `cusr'
	when initializing `erc-button--nick' object.
	(erc-button-add-button): Honor wishes of
	`erc-button--modify-nick-function' advice members when they set the
	`nickname-face' slot of the passed-around `erc-button--nick' object to
	nil to indicate a desire to forgo adding a face while still
	buttonizing the inserted nick with `erc-data', etc.  (Bug#67767)

2023-12-31  F. Jason Park  <jp@neverwas.me>

	Make erc-update-channel-current-member stricter

	* lisp/erc/erc.el (erc--update-cusr-status-if-changed): Remove unused
	macro.
	(erc-update-current-channel-member): Redo doc string and abide by its
	original language to the letter by not honoring a value of t for the
	five channel-membership status parameters, even though this may break
	user code that accidentally passes t instead of `on'.  Avoid double
	lookup for nick in `erc-server-users'.  Rename some variables as per
	recommended conventions for `erc-channel-user' objects.  Stash
	downcased nick for further reuse.  Don't bother factoring in `addp' to
	return value because `cusr-changed-p' is always non-nil when `addp'
	is.

2023-12-31  F. Jason Park  <jp@neverwas.me>

	Don't discard trimmed args in erc-cmd-MODE

	* lisp/erc/erc.el (erc-cmd-MODE): Use matched non-whitespace portion
	of input line instead of the original line.  Otherwise, when the user
	types "/MODE #chan", the server sees "MODE  #chan", with twos spaces.
	(erc--parse-nuh): Improve doc.

2023-12-31  F. Jason Park  <jp@neverwas.me>

	Use format-prompt in erc-select-read-args

	* lisp/erc/erc-button.el (erc-button-cmd-KICK, erc-button-cmd-MSG):
	Use `read-string' instead of `read-from-minibuffer'.
	* lisp/erc/erc.el (erc-select-read-args): Use `format-prompt', which
	isn't normally available in Emacs 27 without Compat.

2023-12-31  F. Jason Park  <jp@neverwas.me>

	Restore predicate for detecting date stamps in ERC

	* etc/ERC-NEWS: Mention function `erc-stamp-inserting-date-stamp-p'.
	* lisp/erc/erc-stamp.el (erc-stamp-inserting-date-stamp-p): New
	function for third parties to detect whether the message being
	inserted is a date stamp.  Date stamps as independent messages were
	originally introduced as part of bug#60936.

2023-12-31  F. Jason Park  <jp@neverwas.me>

	Fix regression in erc-keep-place-indicator-mode

	* lisp/erc/erc-goodies.el (erc-keep-place): Revert portion of
	65735efdca0 "Improve multi-window erc-keep-place-indicator-mode" that
	skipped modifying `window-prev-buffers' when the indicator's minor
	mode was enabled.
	* test/lisp/erc/erc-scenarios-keep-place-indicator.el: Modify test to
	assert that point's place is preserved after switching away from a
	buffer with the indicator enabled.
	* test/lisp/erc/resources/keep-place/follow.eld: Update.
	This feature was originally introduced by bug#59943.

2023-12-31  Alan Mackenzie  <acm@muc.de>

	CC Mode.  Preserve space syntax-table props in open strings

	This fixes bug#68111, allowing, e.g., backward-kill-word to
	work properly.

	* lisp/progmodes/cc-mode.el (c-clear-string-fences): On an open
	string which isn't followed by another string, remove the
	syntax-table properties just from template delimiters rather
	than setting the syntax-table properties of all the string to
	punctuation.

2023-12-31  Alan Third  <alan@idiocy.org>

	Revert "Get NS screen resolution from system"

	This reverts commit f3dec3439fd5aee885a76622f384f6c7ca67d128.

2023-12-31  Po Lu  <luangruo@yahoo.com>

	Prevent overlapping sections of glyphs from being misaligned

	* src/xdisp.c (gui_fix_overlapping_area): Offset all glyphs by
	ROW->x.

2023-12-31  Bill Wohler  <wohler@newt.com>

	Delete unused macros (SF#494)

	* lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs, mh-do-in-xemacs,
	mh-funcall-if-exists, defun-mh, defmacro-mh, mh-make-local-hook,
	mh-mark-active-p): Delete unused macros.

2023-12-30  Stefan Kangas  <stefankangas@gmail.com>

	Slightly clarify "Start Emacs maximized" in FAQ

	* doc/misc/efaq.texi (Start Emacs maximized): Clarify why the early init
	file is used.

2023-12-30  Stefan Kangas  <stefankangas@gmail.com>

	Document `wp` defgroup as obsolete instead of deprecated

	This opens up for its removal at some point in the future.  It has
	been deprecated for the better part of a decade by now.

	* lisp/cus-edit.el (wp): Document group "wp" as obsolete.
	* lisp/finder.el (finder-known-keywords): Document keyword "wp" as obsolete.

2023-12-30  Stefan Kangas  <stefankangas@gmail.com>

	Add `text` to `finder-known-keywords`

	`finder-known-keywords` is "supposed to correspond to top-level
	customization groups".  However, the customize group "wp" is now
	deprecated in favor of "text".

	* lisp/finder.el (finder-known-keywords): Add new "text" keyword.
	Deprecate the "wp" keyword.

2023-12-30  Alan Third  <alan@idiocy.org>

	Simplify Objective C autorelease pool handling

	* src/emacs.c: Remove ns_pool.
	(main): Replace ns_pool stuff with call to ns_init_pool.
	(Fkill_emacs): The pools are drained automatically when the
	application exits, so it's probably not worth draining the pool here.
	(decode_env_path): No longer required as this is handled by
	`outerpool' defined in nsterm.m.
	* src/nsterm.h:
	* src/nsterm.m (ns_init_pool): New function.

2023-12-30  Alan Third  <alan@idiocy.org>

	Get NS screen resolution from system

	* src/nsterm.m (ns_initialize_display_info): Query the screen
	deviceDescription for the resolution instead of hard-coding it.

2023-12-30  Alan Third  <alan@idiocy.org>

	Remove redundant pdmp file copy (bug#66022)

	* nextstep/Makefile.in (${ns_applibexecdir}/Emacs.pdmp): The pdmp file
	is not required in the app bundle for a non-self-contained install.

2023-12-30  Ihor Radchenko  <yantar92@posteo.net>

	find-buffer-visiting: Fix test breakage introduced in b7a737ef49

	* lisp/files.el (find-buffer-visiting): Fix code branch checking for
	buffers referring to the same file number.  We should check the found
	buffer with the file number, not current.

	Link: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66117#412

2023-12-30  Sean Whitton  <spwhitton@spwhitton.name>

	Document icomplete-in-buffer incompatible changes

	* etc/NEWS: Document icomplete-in-buffer incompatible
	changes (bug#67661).

2023-12-30  Sean Whitton  <spwhitton@spwhitton.name>

	* doc/emacs/buffers.texi (Icomplete): Document icomplete-in-buffer.

2023-12-30  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	53031528725 Revert "Fix treesit-node-field-name and friends (bug#66674)"
	fa0bb88302b ; * src/buffer.c (syms_of_buffer) <default-directory>: Do...
	44517037aed ; Fix typo
	ccf46acefd2 ; Fix last change.
	c86b039dffc ; * etc/DEBUG: Improve advice for debugging native-compil...
	9afba605bbc Explain status "r" in `epa-list-keys`
	62714221968 ; * lisp/dired.el (dired--make-directory-clickable): Refo...
	fcbb0044899 Fix mouse clicks on directory line in Dired
	be8a7155b48 Fix 'split-root-window-right' and 'split-root-window-below'
	eb19984c4db Mark icalendar.el as maintained by emacs-devel
	03dc914fd37 ; Fix footnotes in ELisp Intro manual
	ceacf753958 Fix usage of `setq-default' and offer more suggestions
	2701da0eee5 Fix python-ts-mode triple quote syntax (bug#67262)
	683c7c96871 Increment parser timestamp when narrowing changes (bug#67...
	8ae42c825e1 ruby-ts-mode: Fix indentation for string_array closer
	9cfa498e0ab treesit-major-mode-setup: Use 'treesit--syntax-propertize...
	da2e440462b ruby-ts-mode: Fix an out-of-bounds error with heredoc at eob
	6ea507296a7 Correctly refontify changed region in tree-sitter modes (...

2023-12-30  Ihor Radchenko  <yantar92@posteo.net>

	Improve performance let-binding `case-fold-search' (bug#66117)

	* src/buffer.h: Remove case_fold_search_ buffer object slot.
	* src/buffer.c (bset_case_fold_search): Remove - no longer needed.
	(init_buffer_once): Remove removed buffer slot init.
	(syms_of_buffer): Use DEFVAR_LISP to define `case-fold-search' and
	declare it buffer-local.
	* src/minibuf.c (syms_of_minibuf): Remove DEFSYM call for
	`case-fold-search' symbol.  It now lives in `syms_of_buffer'.
	* src/editfns.c (Fcompare_buffer_substrings):
	(Fchar_equal):
	* src/search.c (looking_at_1):
	(string_match_1):
	(search_command):
	(Fre__describe_compiled): Adjust C queries to `case-fold-search' value
	to use C globals instead of BVAR macro.
	* doc/lispref/internals.texi (Buffer Internals): Do not list
	`case_fold_search' slot.

	See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66117#259

	When used as buffer slot, let-binding `case-fold-search' would scale
	with the number of live buffers and can be slow.  This change makes
	let-binding much faster at the cost of slightly slower `set-buffer'.

2023-12-30  Ihor Radchenko  <yantar92@posteo.net>

	Improve performance of `find-buffer-visiting' (bug#66117)

	* src/buffer.c (Fget_truename_buffer): Expose `get_truename_buffer' to
	Elisp.
	(Ffind_buffer): New subr searching for a live buffer with a given
	value of buffer-local variable.
	(syms_of_buffer): Register the new added subroutines.
	* src/filelock.c (lock_file): Use the new `Fget_truename_buffer' name.
	* src/lisp.h:
	* test/manual/etags/c-src/emacs/src/lisp.h: Remove no-longer-necessary
	extern declarations for `get_truename_buffer'.
	* lisp/files.el (find-buffer-visiting): Refactor, using subroutines to
	search for buffers instead of slow manual Elisp iterations.

2023-12-30  Ihor Radchenko  <yantar92@posteo.net>

	* lisp/textmodes/remember.el: Remove org-remember support.

	org-remember has been removed from Org mode proper and then from
	org-contrib 10 years ago in
	https://git.sr.ht/~bzg/org-contrib/commit/be8736195e
	(Bug#68076)

2023-12-30  Daniel Martín  <dmartin@Daniels-MacBook-Pro.local>

	Fix previous page and next page tooltips in doc-view.el

	* lisp/doc-view.el (doc-view-tool-bar-map): Fix toolbar items to go to
	next and previous pages in a document.  (Bug#68018)

2023-12-30  Ihor Radchenko  <yantar92@posteo.net>

	Add tests for `let' (bug#66117)

	* test/src/eval-tests.el (eval-tests/default-value): New test.

2023-12-30  Po Lu  <luangruo@yahoo.com>

	Simplify code relating to UI thread synchronization

	* java/org/gnu/emacs/EmacsContextMenu.java (display):

	* java/org/gnu/emacs/EmacsDialog.java (display):

	* java/org/gnu/emacs/EmacsService.java (getEmacsView)
	(getLocationOnScreen, getClipboardManager)
	(requestDirectoryAccess): Replace manual synchronization within
	Runnable objects by usage of FutureTask.
	(syncRunnable): Accept FutureTask<V> in place of Runnables, and
	obtain and return results from calls to its get method.

2023-12-30  Stefan Kangas  <stefankangas@gmail.com>

	Revert "Silence warning when requiring ruby-ts-mode"

	This reverts commit bf81706988f6b1b9d6e8033c8227f0129e04ef03.

	We deliberately don't silence these warnings, so that a user who loads
	the mode without having the grammar installed sees the warning and
	realizes the problem in time to fix it.

2023-12-29  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'require-with-check'

	* doc/lispref/loading.texi (Named Features): Document
	'require-with-check'.

	* etc/NEWS: Fix wording of entry about 'require-with-check'.

2023-12-29  Sean Whitton  <spwhitton@spwhitton.name>

	pcomplete--entries: In predicate, check file exists

	* lisp/pcomplete.el (pcomplete--entries): In the predicate passed to
	completion-table-with-predicate, when PREDICATE is nil, take ourselves
	to be responsible for calling file-exists-p (bug#67661).

2023-12-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/eglot.el (toplevel): Fix usual last minute typo

2023-12-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	(require-with-check): New function (bug#67696)

	* lisp/files.el (require-with-check): New function.
	* lisp/progmodes/eglot.el: Use it (and prefer #' to quote function names).

2023-12-29  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	Fix 13 years old bug#5852 !

	Sometimes recalculating a cell does not change its value, however it
	still have to be written to the data area when the reference list is
	changed

	* lisp/ses.el (ses-cell-set-formula): Fix bug#5852, at last !

	* test/lisp/ses-tests.el
	(ses-set-formula-write-cells-with-changed-references): Rename test
	from ses-bug5852, do not expect failure, and update description.

2023-12-29  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	Simplify test ses-bug5852

	* test/lisp/ses-tests.el (ses-bug5852): Siumplify test to
	demonstrate that the bug is not connected to yanking, but has to
	do with ses-cell-set-formula.

2023-12-29  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	Add test reproducting bug #5852

2023-12-29  Stefan Kangas  <stefankangas@gmail.com>

	Don't recommend using `cperl-hairy`

	Enabling `cperl-hairy` makes cperl-mode break many Emacs conventions
	and can be confusing to new users.  Let's not say that this is the
	"recommended mode of use", instead leaving it up to the user.

	* lisp/progmodes/cperl-mode.el (cperl-mode): Don't recommend using
	`cperl-hairy'.

2023-12-29  Po Lu  <luangruo@yahoo.com>

	Obey USE_MY_METRICS in compound glyphs

	* src/sfnt.c (struct sfnt_compound_glyph_context): New fields
	holding the positions of both phantom points.
	(sfnt_decompose_compound_glyph): New argument METRICS_RETURN;
	return the metrics of components with USE_MY_METRICS within this
	field.
	(sfnt_decompose_glyph): New argument METRICS_RETURN, which
	serves the same purpose.
	(sfnt_build_glyph_outline): Apply glyph advance and origin
	distortion to METRICS, and return the metrics as altered by
	compound glyphs in there.
	(sfnt_lookup_glyph_metrics): Trim away two unused parameters,
	PIXEL_SIZE and HEAD, whose functionality has been superseded by
	sfnt_scale_metrics and the implicit scaling the interpreter
	performs.
	(sfnt_interpret_compound_glyph_2): Save phantom points within
	fields provided to that end in CONTEXT.
	(sfnt_interpret_compound_glyph_1): Save and source phantom
	points for each glyph to and from the context.
	(sfnt_test_get_metrics, main): Adjust tests correspondingly.

	* src/sfnt.h: Update prototypes.

	* src/sfntfont.c (sfntfont_get_metrics): Remove obsolete
	parameters.
	(sfntfont_get_glyph_outline): Don't change temp by the metrics
	distortions, which is now the task of sfnt_decompose_glyph.

2023-12-28  Eli Zaretskii  <eliz@gnu.org>

	Fix extraction of files with wildcards in names from zip archives

	* lisp/arc-mode.el (archive-zip-extract): Quote wildcard
	characters in file names as [C].  (Bug#67926)

2023-12-28  Eli Zaretskii  <eliz@gnu.org>

	Fix rectangle commands when 'indent-tabs-mode' is non-nil

	* lisp/rect.el (delete-rectangle, kill-rectangle): Temporarily
	bind 'indent-tabs-mode' to nil.  (Bug#67925)

2023-12-28  Eli Zaretskii  <eliz@gnu.org>

	Fix 'delete-rectangle' with multi-column characters

	* lisp/rect.el (delete-rectangle-line): Support multi-column
	characters, when STARTCOL is in the middle of such a character.
	(Bug#67925)

2023-12-28  F. Jason Park  <jp@neverwas.me>

	Sideline implied invisible-intangible coupling in ERC

	* etc/ERC-NEWS: Add entry explaining removal of automatic `intangible'
	propertizing of t-valued `invisible' messages.
	* lisp/erc/erc.el (erc--insert-invisible-as-intangible-p): New flag
	variable, a temporary escape hatch to regain pre-5.6 behavior
	involving the modification of certain `invisible' messages.
	(erc--insert-line): Gate unfavorable behavior behind
	`erc--insert-invisible-as-intangible-p' flag.  Add comment clarifying
	deferred initialization of `insert-position', which was part of the
	many changes introduced as part of bug#60936.

2023-12-28  F. Jason Park  <jp@neverwas.me>

	Move ERC test utilities to common file

	* lisp/erc/erc-common.el (erc--define-catalog): Update name of
	reference to convenience command now located in `erc-tests-common'.
	* test/lisp/erc/erc-button-tests.el: Require common test-util library
	`erc-tests-common', located under test/lisp/erc/resources.
	* test/lisp/erc/erc-fill-tests.el: Require `erc-tests-common'.
	(erc-fill-tests--wrap-populate): Use helper
	`erc-tests-common-init-server-proc'.
	(erc-fill-tests--save-p): Remove.  See replacement
	`erc-tests-common-snapshot-save-p' in erc-tests-common.
	(erc-fill-tests--graphic-dir): Add trailing slash.
	(erc-fill-tests--compare): Move body to generalized utility
	`erc-tests-common-snapshot-compare' in erc-tests-common.
	* test/lisp/erc/erc-goodies-tests.el: Require `erc-tests-common'.
	(erc--get-inserted-msg-beg/readonly,
	erc--get-inserted-msg-end/readonly,
	erc--get-inserted-msg-bounds/readonly): Move here from erc-tests.el.
	* test/lisp/erc/erc-networks-tests.el: Load `erc-tests-common'.
	(erc-networks-tests--create-live-proc): Defer to
	`erc-tests-common-init-server-proc' and drop optional buffer param.
	(erc-networks-tests--clean-bufs): Defer to
	`erc-tests-common-kill-buffers'.
	(erc-networks--rename-server-buffer--existing--live): Call
	`erc-networks-tests--create-live-proc' in server buffer.
	* test/lisp/erc/erc-scenarios-internal.el: Load `erc-tests-common'.
	(erc-scenarios-internal--run-graphical-all): Use
	`erc-tests-common-create-subprocess' to create process.
	* test/lisp/erc/erc-scenarios-sasl.el
	(erc-scenarios-sasl--plain-fail): Silence error message.
	* test/lisp/erc/erc-stamp-tests.el: Require `erc-tests-common'.
	(erc-stamp-tests--insert-right, erc-timestamp-intangible--left): Use
	`erc-tests-common-init-server-proc'.
	(erc-tests--assert-get-inserted-msg/stamp,
	erc-stamp-tests--assert-get-inserted-msg/stamp): Move from
	erc-tests.el, renaming to latter.
	(erc--get-inserted-msg-beg/stamp,
	erc--get-inserted-msg-beg/readonly/stamp,
	erc--get-inserted-msg-end/stamp,
	erc--get-inserted-msg-end/readonly/stamp,
	erc--get-inserted-msg-bounds/stamp,
	erc--get-inserted-msg-bounds/readonly/stamp): Move here from
	erc-tests.el.
	* test/lisp/erc/erc-tests.el: Require `erc-tests-common'.
	(erc-with-server-buffer): Use renamed test-helper utility
	`erc-tests-common-init-server-proc'.
	(erc-tests--send-prep, erc-tests--set-fake-server-process): Move to
	`erc-tests-common' library and rename to
	`erc-tests-common-prep-for-insertion' and
	`erc-tests-common-init-server-proc', respectively.
	(erc-tests--with-process-input-spy): Move to `erc-tests-common' and
	rename `erc-tests-common-with-process-input-spy'.
	(erc-tests--get-inserted-msg-setup,
	erc-tests--assert-get-inserted-msg,
	erc-tests--assert-get-inserted-msg/basic,
	erc-tests--assert-get-inserted-msg-readonly-with): Move to
	`erc-tests-common' and rename with "common" prefix, using single
	instead of double hyphen.
	(erc-tests--assert-get-inserted-msg/stamp): Move to `erc-stamp-tests'
	and rename with "stamp" prefix.
	(erc--get-inserted-msg-beg/stamp,
	erc--get-inserted-msg-beg/readonly/stamp,
	erc--get-inserted-msg-end/stamp,
	erc--get-inserted-msg-end/readonly/stamp,
	erc--get-inserted-msg-bounds/stamp,
	erc--get-inserted-msg-bounds/readonly/stamp): Move to
	`erc-stamp-tests'.
	(erc--get-inserted-msg-beg/readonly,
	erc--get-inserted-msg-end/readonly,
	erc--get-inserted-msg-bounds/readonly): Move to `erc-goodies-tests'.
	(erc-tests--make-server-buf): Move to `erc-common-tests' and rename
	with "common" prefix.
	(erc-tests--make-client-buf): Remove unused function without supplying
	replacement.
	(erc-tests--string-to-propertized-parts,
	erc-tests-pp-propertized-parts): Move to `erc-tests-common' and rename
	with "common" prefix.
	* test/lisp/erc/resources/erc-tests-common.el: New file containing
	helper utilities and fixtures used by multiple files in test/lisp/erc.

2023-12-28  F. Jason Park  <jp@neverwas.me>

	Allow selecting graphical ERC tests manually

	* test/lisp/erc/erc-fill-tests.el
	(erc-fill-wrap--monospace, erc-fill-wrap--merge,
	erc-fill-wrap-tests--merge-action,
	erc-fill-wrap-tests--merge-action/indicator-pre,
	erc-fill-wrap-tests--merge-action/indicator-post,
	erc-fill-line-spacing, erc-fill-wrap-visual-keys--body,
	erc-fill-wrap-visual-keys--prompt, erc-fill--left-hand-stamps): Tag as
	:erc--graphcial.
	* test/lisp/erc/erc-scenarios-internal.el
	(erc-scenarios-internal--run-interactive-all): New test to assist ERC
	contributors in -jN parallel runs.
	* test/lisp/erc/erc-scenarios-scrolltobottom-relaxed.el
	(erc-scenarios-scrolltobottom--relaxed): Tag as :erc--graphical.
	* test/lisp/erc/erc-scenarios-scrolltobottom.el
	(erc-scenarios-scrolltobottom--normal,
	erc-scenarios-scrolltobottom--all): Tag as :erc--graphical.
	* test/lisp/erc/erc-scenarios-status-sidebar.el
	(erc-scenarios-status-sidebar--nickbar): Tag as :erc--graphical.
	* test/lisp/erc/erc-tests.el (erc--channel-modes/graphic-p): Tag as
	:erc--graphical.
	* test/lisp/erc/resources/base/local-modules/first.eld: Timeouts.
	* test/lisp/erc/resources/erc-scenarios-common.el
	(erc-scenarios-common--graphical-p): New variable.
	(erc-scenarios-common--make-bindings): Don't enable
	`inhibit-interaction' when interactive.  Set
	`erc-scenarios-common--graphical-p' flag when
	`:erc--graphical' tag present and running interactively.
	(erc-scenarios-common-with-cleanup): Account for variable
	`erc-scenarios-common--graphical-p'.
	(erc-scenarios-common-scrolltobottom--normal): Turn off
	`erc-scrolltobottom-mode' when test finishes so as not to pollute when
	running multiple interactive tests.

2023-12-28  F. Jason Park  <jp@neverwas.me>

	Replace erc--get-inserted-msg-bounds with functions

	* lisp/erc/erc-fill.el (erc-fill--wrap-rejigger-region): Call
	`erc--get-inserted-msg-end' instead of `erc--get-inserted-msg-bounds'
	with `end' arg.
	* lisp/erc/erc-truncate.el (erc-truncate-buffer-to-size): Call
	`erc--get-inserted-msg-beg' with `point' instead of
	`erc--get-inserted-msg-bounds' with `beg' arg.
	* lisp/erc/erc.el (erc--get-inserted-msg-beg-at,
	erc--get-inserted-msg-end-at): New macros.
	(erc--get-inserted-msg-beg, erc--get-inserted-msg-end): New functions.
	(erc--get-inserted-msg-bounds): Convert to function with different
	signature, and refactor.  This was introduced for the yet unreleased
	5.6 (Emacs 30) by bug#60936.
	(erc--get-inserted-msg-prop): Use `erc--get-inserted-msg-beg' instead
	of `erc--get-inserted-msg-bounds' with `beg' arg.
	(erc--delete-inserted-message): Update call site of
	`erc--get-inserted-msg-bounds' to match new signature.
	(erc-cmd-CLEAR): Use `erc--get-inserted-msg-beg' instead of
	`erc--get-inserted-msg-bounds' with `beg' arg.
	* test/lisp/erc/erc-scenarios-match.el
	(erc-scenarios-match--stamp-right-fools-invisible): Call
	`erc--get-inserted-msg-end' instead of `erc--get-inserted-msg-bounds'.
	* test/lisp/erc/erc-tests.el (erc-tests--get-inserted-msg-setup,
	erc-tests--assert-get-inserted-msg,
	erc-tests--assert-get-inserted-msg/basic,
	erc-tests--assert-get-inserted-msg/stamp,
	erc-tests--assert-get-inserted-msg-readonly-with): New helper
	functions.
	(erc--get-inserted-msg-beg/basic, erc--get-inserted-msg-beg/readonly,
	erc--get-inserted-msg-beg/stamp,
	erc--get-inserted-msg-beg/readonly/stamp,
	erc--get-inserted-msg-end/basic, erc--get-inserted-msg-end/stamp,
	erc--get-inserted-msg-end/readonly,
	erc--get-inserted-msg-end/readonly/stamp,
	erc--get-inserted-msg-bounds/readonly,
	erc--get-inserted-msg-bounds/stamp,
	erc--get-inserted-msg-bounds/readonly/stamp): New tests.
	(erc--get-inserted-msg-bounds, erc--get-inserted-msg-bounds/basic):
	Move `beg' and `end' cases to separate test variants and rename former
	to latter.

2023-12-28  F. Jason Park  <jp@neverwas.me>

	Improve multi-window erc-keep-place-indicator-mode

	* lisp/erc/erc-goodies.el (erc-keep-place-indicator-follow): Describe
	condition causing an indicator update.
	(erc--keep-place-indicator-on-window-configuration-change,
	erc--keep-place-indicator-on-window-buffer-change): Rename former to
	latter, add required WINDOW parameter, and don't move indicator if
	buffer appears in multiple windows.  Also, don't bother checking
	whether either buffer is a mini because the manual says window change
	functions don't run for minibuffer replacements.
	(erc--keep-place-indicator-setup): Hook on
	`window-buffer-change-functions' instead of
	`window-configuration-change-hook'.
	(erc-keep-place-mode, erc-keep-place-disable): Remove member from
	`window-buffer-change-functions' instead of
	`window-configuration-change-hook'.
	(erc-keep-place): Use `visible' FRAME arg of `get-buffer-window'.
	Don't twiddle `window-prev-buffers' when
	`erc-keep-place-indicator-mode' is non-nil.  This feature was
	originally introduced by bug#59943.
	* test/lisp/erc/erc-goodies-tests.el
	(erc-goodies-tests--assert-kp-indicator-on,
	erc-goodies-tests--assert-kp-indicator-off): Update hook name.
	* test/lisp/erc/erc-scenarios-keep-place-indicator.el: New file.
	* test/lisp/erc/resources/keep-place/follow.eld: New file.

2023-12-27  Jim Porter  <jporterbugs@gmail.com>

	Abbreviate the VC revision in vc-annotate's buffer name

	* lisp/vc/vc-hooks.el (vc-use-short-revision): New variable.
	(vc-short-revision): New function.

	* lisp/vc/vc-annotate.el (vc-annotate-use-short-revision): New
	option...
	(vc-annotate): ... use it.

	* lisp/vc/vc-git.el (vc-git--rev-parse): Consult
	'vc-use-short-revision'.

	* etc/NEWS: Announce this change (bug#67062).

2023-12-27  João Távora  <joaotavora@gmail.com>

	Eglot: experimental support for Eglot-only subprojects

	* lisp/progmodes/eglot.el
	(eglot-alternatives)
	(eglot-server-programs): : Rework docstring.
	(eglot--guess-contact): Pass project to eglot-server-programs function.
	(project-root): Define for new experimental Eglot project type.

	Github-reference: https://github.com/joaotavora/eglot/discussions/1337

2023-12-27  João Távora  <joaotavora@gmail.com>

	Eglot: bump to 1.16

	* etc/EGLOT-NEWS: Update.

	* lisp/progmodes/eglot.el (Version): Bump to 1.15
	(Package-Requires): Bump jsonrpc dependency to 1.23

2023-12-27  João Távora  <joaotavora@gmail.com>

	Eglot: fix typo

	* lisp/progmodes/eglot.el (eglot--guess-contact): Fix typo.

2023-12-27  João Távora  <joaotavora@gmail.com>

	Eglot: introduce eglot-events-buffer-config

	* doc/misc/eglot.texi (Eglot Variables): Reword.
	(Performance): Reword.

	* lisp/progmodes/eglot.el (eglot-events-buffer-size): Obsolete.
	(eglot-events-buffer-config): New customization variable.
	(eglot--connect): Use eglot-events-buffer-config.

2023-12-27  João Távora  <joaotavora@gmail.com>

	Jsonrpc: bump to 1.0.23

	* lisp/jsonrpc.el (Version): Bump to 1.0.23

2023-12-27  Yuan Fu  <casouri@gmail.com>

	Revert e8df6c311fcf59bf23d31b9db2bb8fec9d78fbe7

2023-12-27  Dmitry Gutov  <dmitry@gutov.dev>

	Fix Tramp error in project-find-file

	* lisp/progmodes/project.el (project--read-file-cpd-relative):
	Avoid new Tramp connections (bug#68041).

2023-12-26  João Távora  <joaotavora@gmail.com>

	Revert "Eglot: Make 'try-completion' less broken"

	This reverts commit 4dcbf61c1518dc53061707aeff8887517e050003.

	It's not correct, breaks tests.  I declare it impossible to make C-M-i
	use of 'try-completion' behave sanely with LSP in its current state.
	YMMV.  Use a completion tooltip, like Company.

2023-12-26  João Távora  <joaotavora@gmail.com>

	Eglot: Make 'try-completion' less broken

	The 'try-completion' completion operation, used mostly in vanilla
	'completion-at-point' invoked with C-M-i is close to impossible to get
	right in LSP because of the arbitrary edits handled in
	':exit-function'.

	When this operation is invoked on the table, returning the pattern
	argument unchanged somehow (TM) makes a sole completion show the
	*Completions* buffer, where selecting it will recover context
	necessary for `:exit-function' and call that function.  It doesn't
	break any other cases I know, and that's good enough for now.

	https://github.com/joaotavora/eglot/issues/1339

	* lisp/progmodes/eglot.el (eglot-completion-at-point): Return pattern
	when 'try-completion' is invoked.

2023-12-26  Po Lu  <luangruo@yahoo.com>

	Consistently round glyph advances in the SFNT font backend

	* src/sfnt.h (SFNT_ROUND_FIXED): New macro.

	* src/sfntfont.c (sfntfont_get_glyph_outline): Don't apply
	advance width distortion before the glyph is instructed or
	decomposed.  Round advance width as measured between both
	phantom points subsequent to instruction code execution.
	(sfntfont_draw): Don't take the advance's ceiling when advancing
	origin point.

2023-12-26  João Távora  <joaotavora@gmail.com>

	Eglot: partial fix for middle-of-symbol completions

	* lisp/progmodes/eglot.el (eglot-completion-at-point): Fix
	completion reversion in :exit-function.

	In a rust-ts-mode buffer such as this main.rs file

	  fn main() {
	    let v: usize = 1;
	    v.c<cursor-here>1234.1234567890
	  }

	the server wants to edit the line to read, after C-M-i and selecting
	"count_ones"

	    v.count_ones<cursor-here>.1234567890

	But it couldn't apply the edit to the correct initial state because
	that state wasn't correctly restored.  This commit fixes that.

	However, if the initial state is

	    v.count_on1234.1234567890

	then completion still fails, because the 'try-completion' call in
	eglot-completion-at-point will just return complete to "count_ones"
	and Emacs doesn't consider this a completion "exit", so it'll
	completely ignore the exit function.

	I think 'try-completion' (and 'test-completion') simply can't be used
	here (for one, they obey styles, and styles are off-limits in LSP),
	but I'll leave that for another commit.

	Github-reference: https://github.com/joaotavora/eglot/issues/1339

2023-12-25  Stefan Kangas  <stefankangas@gmail.com>

	Add Python to `recentf-arrange-rules`

	* lisp/recentf.el (recentf-arrange-rules): Add rule for Python.

2023-12-25  Po Lu  <luangruo@yahoo.com>

	Apply TTF advance width rounding to uninstructed glyphs

	* src/sfnt.c (sfnt_scale_metrics):

	* src/sfntfont.c (sfntfont_get_glyph_outline): Round advance and
	floor lbearing scaling glyph metrics.
	(sfntfont_measure_pcm): Don't round or truncate metrics which
	have already been.

2023-12-25  Po Lu  <luangruo@yahoo.com>

	Optimize font edge filling loop

	* src/sfnt.c (sfnt_fedge_sort): Delete function.
	(sfnt_poly_edges_exact): Don't sort edges, iterate through each
	instead.
	(main): Adjust tests.

2023-12-24  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	Fix ses-formula-record

	* lisp/ses.el (ses-is-cell-sym-p): Tighten test with checking
	argument is a local variable.
	(ses-formula-record): Fix definition.
	(ses-rename-cell): Loosen test on new-name, conversely to
	'ses-is-cell-sym-p' tightening.

2023-12-24  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	Fix test about need for explicit printing inserted lines

	* lisp/ses.el (ses--blank-line-needs-printing-p): New
	function. Does not consider that printer `nil' produces a non
	empty string, as `ses-print-cell' removes nil printer by oring to
	fallback.
	(ses-insert-row): Replace the complex and erroneous test about
	blank newline needing printing by a call to
	'ses--blank-line-needs-printing-p'.

2023-12-24  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	More doc on ses+ and argument order

	* doc/misc/ses.texi (Standard formula functions): Indicate that
	'ses+' reverses argument order.

2023-12-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/eval.c (signal_or_quit): Fix naming inconsistency with docs

	The var's docstring and etc/NEWS refer to "*Redisplay-trace*",
	so better use that (which is also more in line with usual practice
	of Emacs buffer names).

2023-12-24  Stefan Kangas  <stefankangas@gmail.com>

	checkdoc: Avoid false positive for keybinding in docstring

	* lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
	Avoid false positive when a variable contains a keybinding (for
	example, "C-g").  (Bug#68002)
	* test/lisp/emacs-lisp/checkdoc-tests.el
	(checkdoc-docstring-avoid-false-positive-ok): New test.

2023-12-24  Michael Albinus  <michael.albinus@gmx.de>

	Make stty settings configurable in Tramp's make-process

	* lisp/net/tramp-sh.el (tramp-pipe-stty-settings): New defcustom.
	(tramp-sh-handle-make-process): Use it.  (Bug#62093)

2023-12-24  Eli Zaretskii  <eliz@gnu.org>

	Fix toolbar for Log Edit mode

	* lisp/vc/log-edit.el (log-edit-tool-bar-map): Fix buttons and
	help messages.

	* etc/images/README (Files): Fix whitespace.

2023-12-24  Po Lu  <luangruo@yahoo.com>

	Introduce a toolbar for Log Edit mode

	* etc/NEWS: Announce new change.

	* etc/images/README: List the sources of the new image files.

	* etc/images/commit.xpm:
	* etc/images/commit.pbm:
	* etc/images/gen-changelog.xpm:
	* etc/images/gen-changelog.pbm:
	* etc/images/ins-changelog.xpm:
	* etc/images/ins-changelog.pbm:
	* etc/images/load-changelog.xpm:
	* etc/images/load-changelog.pbm:
	* etc/images/view-diff.xpm: New files.

	* lisp/vc/log-edit.el (log-edit-menu): Insert a menu item for
	"Generate ChangeLog".
	(log-edit-tool-bar-map): New keymap.
	(log-edit-mode): Install this keymap as the tool bar map.

2023-12-23  Dmitry Gutov  <dmitry@gutov.dev>

	jit-lock-force-redisplay: Make it work

	* lisp/jit-lock.el (jit-lock-force-redisplay):
	Make sure the buffer change is really performed (bug#66732).

2023-12-23  F. Jason Park  <jp@neverwas.me>

	Optionally continue on error in erc-auth-source-search

	* doc/misc/erc.texi (auth-source): Add new "Troubleshooting"
	subsection.
	* lisp/erc/erc.el (erc-open): Initialize markers before determining
	session parameters.  Otherwise, functions that rely on
	`erc-inset-marker' being non-nil, like `erc-check-text-conversion',
	may fail during auth-source lookups.
	(erc-auth-source-search): When non-interactive, ask the user whether
	to continue connecting anyway.  (Bug#67978)

2023-12-23  F. Jason Park  <jp@neverwas.me>

	Fix overlapping logs from erc-truncate-buffer-on-save

	* lisp/erc/erc-button.el (erc-button--display-error-notice-with-keys):
	Currently, internal "error notices" do not have timestamps.  However,
	this causes alignment issues for non-`fill-wrap' users of left-sided
	stamps.  The heuristic used by this change for detecting such stamps
	is weak and prone to false negatives.
	* lisp/erc/erc-log.el (erc-log-mode, erc-log-enable): Set explicit
	depth for `erc--pre-clear-functions' to 50.
	(erc-save-buffer-in-logs): Fix partial regression in which redundant
	text would appear in logs that have undergone truncation via an
	interactive call to this command when the deprecated option
	`erc-truncate-on-save' is non-nil.
	* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-enable): Set
	depth for `erc--pre-clear-functions' to 40.
	(erc-stamp--reset-on-clear): Only add `erc-stamp--insert-date-hook'
	when `erc-stamp--date-mode' is active.
	* lisp/erc/erc.el (erc-cmd-CLEAR): Rework to honor but improve upon
	the old behavior when called from lisp.  Do this by attempting to find
	the beginning of the current message and excluding it from the
	truncated portion of the buffer.  A NEWS entry describing this
	behavior already exists for 5.6.
	* test/lisp/erc/erc-scenarios-log.el
	(erc-scenarios-log--save-buffer-in-logs/truncate-on-save): New test.
	These changes originate from bug#60936.

2023-12-23  F. Jason Park  <jp@neverwas.me>

	Replace some uses of erc-error

	* lisp/erc/erc-button.el
	(erc-button--display-error-notice-with-keys-and-warn): Use
	`erc--lwarn' so the warnings buffer is overridable for testing.
	* lisp/erc/erc-sasl.el (erc-sasl-mode, erc-sasl-enable): Signal an
	`error' instead of calling `erc-error', which continues execution.  In
	this special case, the session cannot continue initializing, since
	connection registration can't reasonably be expected to complete
	successfully.
	(erc-sasl--destroy): Don't run `erc-quit-hook', and issue a warning of
	level `:error' to get users' attention instead of calling `ding'.
	* lisp/erc/erc-speedbar.el
	(erc-speedbar--emulate-sidebar-set-window-preserve-size): Don't set
	window parameters.  Doing this basically made
	`erc-speedbar-toggle-nicknames-window-lock' unusable.
	(erc-speedbar--toggle-nicknames-sidebar): Manually unlock the window
	after toggling.
	(erc-nickbar-mode, erc-nickbar-enable, erc-nickbar-disable): Don't
	`ding' when called in a non-ERC buffer, and make sure to call
	`erc-speedbar--ensure' from an ERC buffer.  Also, don't disable
	minor-mode var when speedbar buffer doesn't exist because that doesn't
	ensure it'll be created the next time around, and users may count on
	the activation state remaining consistent.
	(erc-speedbar-toggle-nicknames-window-lock): Make usable from lisp
	with explicit numeric arg.
	* lisp/erc/erc-status-sidebar.el (erc-bufbar-mode, erc-bufbar-enable):
	Only create the side window from an erc-mode buffer to ensure the
	ratio is preserved when burying the current buffer, e.g., with
	`custom-buffer-done'.
	* lisp/erc/erc.el (erc--warnings-buffer-name, erc--lwarn): New
	function, an analog of `lwarn', that allows for overriding the
	warnings buffer with the new variable `erc--warnings-buffer-name'.
	(erc-cmd-SERVER): Add comment.
	* test/lisp/erc/erc-scenarios-sasl.el
	(erc-scenarios-sasl--plain-fail): Expect warning instead of error.
	* test/lisp/erc/erc-scenarios-status-sidebar.el
	(erc-scenarios-status-sidebar--bufbar): Refresh when interactive as
	well.
	* test/lisp/erc/resources/sasl/plain-failed.eld: Expect EOF instead of
	"CAP END".  (Bug#63595)

2023-12-23  F. Jason Park  <jp@neverwas.me>

	Populate erc--msg-prop-overrides for CTCP replies

	* lisp/erc/erc-backend.el (erc-server-PRIVMSG): Don't set string
	intended for insertion to the undefined return value of
	`erc-process-ctcp-reply' and `erc-process-ctcp-query'.  Rework control
	flow slightly for clarity.
	* lisp/erc/erc.el (erc-process-ctcp-reply): Bind
	`erc--msg-prop-overrides' and populate with `erc--ctcp' and `erc--cmd'
	"msg props" for the benefit of `erc-display-message' calls made by
	the various CTCP reply handlers.  (Bug#67677)

2023-12-23  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	a4751657389 * doc/man/emacsclient.1: Fix --tramp option.
	1e5357d3d1f * doc/man/emacsclient.1: Add missing sections (bug#66598)
	fba7b9db397 Add explanation for extra parentheses in ELisp Introduction
	77232826821 Add sample code to the "let*" section in "forward-paragraph"
	7a00ca92c19 Fix treesit test (bug#67117)
	d220893216c Fix c++-ts-mode indentation (bug#67975)
	d386a8aa43f Recommend customizing eglot for python-base-mode
	bd0c7589715 Improve documentation of new native-compilation commands
	1ad126c0f28 ; Fix typo
	77678244b83 doc/lispintro: Don't mention `set` (bug#67734)
	cb3684e9dfa Fix script for some characters
	2922d683b78 ; * src/treesit.c (treesit_traverse_child_helper): Fix co...
	7b315e8a5c9 Fix an issue when searching subtree backward (bug#67117)
	03625c2fefa Fix passive mode for tnftp client in ange-ftp.el.
	b6429b1c1c7 ; Improve documentation of ispell.el's dictionary database
	75cc1593412 ; * etc/PROBLEMS: Update the "GnuPG hangs" entry.
	67d9af1c074 Fix using disabled command without a docstring
	f68f3500236 Improve documentation of text properties handling when ya...
	06c399914fa Eglot: Add Uiua language server

2023-12-23  Eli Zaretskii  <eliz@gnu.org>

	Fix alignment of columns in Dired display with ls-lisp

	* lisp/dired.el (dired-align-file): Don't realign the first column
	of file's data.  (Bug#67953)

2023-12-23  Manuel Giraud  <manuel@ledu-giraud.fr>

	Respect mouse-face on SVG image glyphs (bug#67794)

	* src/dispextern.h:
	* src/image.c (image_spec_value): Export 'image_spec_value'.
	* src/xdisp.c (draw_glyphs): Maybe update SVG image glyphs with
	mouse face features before drawing.

2023-12-23  Visuwesh  <visuweshm@gmail.com>

	Make ffap correctly guess remote file names at point

	* lisp/ffap.el (ffap-lax-url): Set it to nil so that remote file
	names may be matched.
	(ffap-fixup-email): New function.
	(ffap-guesser): Specially handle email addresses now that
	'ffap-lax-url' is nil, as user@host fails to be matched as an
	email address with that setting.  (Bug#67688)

	* etc/NEWS: Announce the new value of the defcustom.

2023-12-23  Gerd Möllmann  <gerd@gnu.org>

	Use new safe_calln on NS

	* src/nsterm.m (ns_in_echo_area_1): Use safe_calln.
	([EmacsView draggingUpdated:]): Use safe_calln.

2023-12-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	Split safe_call between redisplay and non-redisplay versions

	The `safe_call/eval` family of functions started its life in `xdisp.c`
	for the needs of redisplay but quickly became popular outside of it.
	This is not ideal because despite their name, they are somewhat
	specific to the needs of redisplay.

	So we split them into `safe_call/eval` (in `eval.c`) and `dsafe_call/eval`
	(in `xdisp.c`).  We took this opportunity to slightly change their
	calling convention to be friendly to the CALLN-style macros.
	While at it, we introduce a new `calln` macro as well which does
	all that `call[1-8]` used to do.

	* src/eval.c (safe_eval_handler, safe_funcall, safe_eval): New functions,
	Copied from `xdisp.c`.  Don't obey `inhibit_eval_during_redisplay` any more.
	Adjust error message to not claim it happened during redisplay.

	* src/lisp.h (calln): New macro.
	(call1, call2, call3, call4, call5, call6, call7, call8): Turn them
	into aliases of `calln`.
	(safe_funcall): Declare.
	(safe_calln): New macro.
	(safe_call1, safe_call2): Redefine as compatibility macros.
	(safe_call, safe_call1, safe_call2): Delete.
	Replace all callers with calls to `safe_calln`.

	* src/xdisp.c (dsafe_eval_handler): Rename from `safe_eval_handler`.
	Adjust all users.
	(dsafe__call): Rename from `safe_call` and change calling convention to
	work with something like CALLMANY.  Adjust all users.
	(safe_call, safe__call1, safe_call2): Delete functions.
	(SAFE_CALLMANY, dsafe_calln): New macros.
	(dsafe_call1, dsafe_eval): Rename from `safe_call1` and `safe_eval`,
	and rewrite using them.  Adjust all users.
	(clear_message, prepare_menu_bars, redisplay_window): Use `dsafe_calln`.
	(run_window_scroll_functions): Don't let-bind `Qinhibit_quit`
	since `safe_run_hooks_2` does it for us.

2023-12-23  Po Lu  <luangruo@yahoo.com>

	Respect glyph metrics modified by instruction code

	* src/sfnt.c (sfnt_read_glyph): Clear advance and origin
	distortion returning an empty glyph.
	(sfnt_build_instructed_outline): New parameter *ADVANCE_WIDTH,
	in which the glyph's advance width is saved.
	(sfnt_interpret_compound_glyph_1): Refine commentary.
	(sfnt_verbose, main): Adjust tests.

	* src/sfnt.h: Update prototypes correspondingly.

	* src/sfntfont.c (sfntfont_get_glyph_outline): If an instructed
	outline is available, derive the advance and lbearing from the
	measurements within.
	(sfntfont_probe_widths): Call sfntfont_measure_pcm to establish
	average widths.
	(sfntfont_open): Do so after instruction code initialization
	completes.
	(sfntfont_measure_pcm): Revise commentary.

2023-12-23  Stefan Kangas  <stefankangas@gmail.com>

	Drop footer line warning for packages requiring Emacs 30.1

	The reason for warning about a missing footer line (";;; foo.el ends
	here") is that package.el up until version 27.1 would refuse to
	install a package without it.  Emacs 27.1 or later will install such
	packages, but will issue a warning, the purpose of which is to
	encourage package authors not to break backwards-compatibility.

	However, if the minimum required Emacs version for a package is 30.1,
	we do not need to worry about compatibility with earlier versions of
	Emacs -- the package author has already explicitly said that the
	package will not work on earlier versions.  For such packages, there
	is no need to warn about a missing footer line.

	In the future, this warning could be removed, but it is premature to
	do that now.  (See Bug#26490.)  Thus, for packages that does not
	specify a minimum version of Emacs, we continue to issue the warning.
	We will also continue to warn for packages requiring Emacs 27 to 29,
	since those versions will themselves warn if the footer is missing.

	* lisp/emacs-lisp/package.el (package-buffer-info): Don't warn if the
	footer line is missing for packages requiring Emacs 30.1 or later.

2023-12-23  Stefan Kangas  <stefankangas@gmail.com>

	Introduce new function lm-package-requires

	* lisp/emacs-lisp/package.el (package--prepare-dependencies): Move
	from here...
	* lisp/emacs-lisp/lisp-mnt.el (lm--prepare-package-dependencies):
	...to here.
	(lm-package-requires): New function.
	(package-buffer-info): Use above new function.
	* test/lisp/emacs-lisp/lisp-mnt-tests.el
	(lm--tests-lm-package-requires): New test.

2023-12-23  João Távora  <joaotavora@gmail.com>

	Eglot: declare eglot-lsp-context bound to non-nil

	Otherwise, it'll be really hard to use it in the recommended fashion:

	  (defun my/project-find-function (dir)
	    (when-let ((match
	                (and (bound-and-true-p eglot-lsp-context)
	                     (locate-dominating-file dir "some-marker-file"))))
	      `(transient . ,match)))

	  (add-hook 'project-find-functions #'my/project-find-function)

	because 'bound-and-true-p' will never return t even when the hook is called
	from eglot--current-project.

	Github-reference: https://github.com/joaotavora/eglot/discussions/1336
	Github-reference: https://github.com/joaotavora/eglot/discussions/1337

	* lisp/progmodes/eglot.el (eglot-lsp-context): Declare normally.

2023-12-22  Michael Albinus  <michael.albinus@gmx.de>

	Tramp's direct asynchronous processes use 'tramp-remote-path'

	* doc/misc/tramp.texi (Remote processes): Remove item about
	tramp-remote-path.

	* etc/NEWS: Direct asynchronous processes use 'tramp-remote-path'.

	* lisp/net/tramp-sh.el (tramp-get-remote-pipe-buf): New defun.
	(tramp-set-remote-path): Use it.
	(tramp-get-remote-path): Add ;;;###tramp-autoload cookie.

	* lisp/net/tramp.el (tramp-handle-make-process):
	Use `tramp-remote-path' for setting PATH environment.

	* test/lisp/net/tramp-tests.el (tramp-test35-exec-path-direct-async)
	(tramp-test35-remote-path-direct-async): New tests.

2023-12-22  João Távora  <joaotavora@gmail.com>

	Jsonrpc: clean up previous change

	* lisp/jsonrpc.el (jsonrpc-connection): Rework slot names.
	(jsonrpc-connection-receive): Rework.
	(jsonrpc--call-deferred): Fix typo.
	(jsonrpc--process-sentinel)
	(jsonrpc--remove): Use new slot names.
	(jsonrpc--continue): Rework.
	(jsonrpc--async-request-1): Rework.
	(jsonrpc--event): Remember to remove :jsonrpc-json from
	foreign-message
	(jsonrpc--connection-receive): Revamp.
	(jsonrpc--connection-send)
	(jsonrpc--connection-reply): Rework.
	(jsonrpc--log-event): Revamp.
	(jsonrpc-continuation-count): Use new slot name.

2023-12-22  Mattias Engdegård  <mattiase@acm.org>

	Remove byte-compile-form-stack backstop

	* lisp/emacs-lisp/cconv.el (cconv-closure-convert):
	Eliminate a binding that probably isn't useful after all.

2023-12-22  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/byte-opt.el (byte-compile-nilconstp): Extend list.

2023-12-22  Mattias Engdegård  <mattiase@acm.org>

	Slight funcall_subr optimization

	* src/eval.c (funcall_subr): Help the compiler by reducing aliasing
	problems, and compensate for a missed-optimization bug in LLVM where
	switches sometimes forget to use variable range information (reported
	in https://github.com/llvm/llvm-project/issues/76085).

2023-12-22  Mattias Engdegård  <mattiase@acm.org>

	Ensure proper mode of *Compile-Log* buffer (bug#67920)

	Reported by OGAWA Hirofumi.

	* lisp/emacs-lisp/bytecomp.el (displaying-byte-compile-warnings):
	Move most of the innards to...
	(bytecomp--displaying-warnings): ...this new function, for ease
	of maintenance.
	* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
	Wrap early warning about missing lexbind declaration in
	`displaying-byte-compile-warnings` so that it doesn't cause the
	creation of a compile-log buffer with the wrong mode.

2023-12-22  Mattias Engdegård  <mattiase@acm.org>

	Encapsulate byte-compile-form-stack maintenance

	* lisp/emacs-lisp/bytecomp.el (byte-compile-toplevel-file-form)
	(byte-compile-form):
	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
	Use `macroexp--with-extended-form-stack` instead of explicit
	push and pop.

2023-12-22  Po Lu  <luangruo@yahoo.com>

	Properly instruct compound glyphs with compound components

	* src/sfnt.c (sfnt_interpret_compound_glyph_2): Don't grow the
	compound decomposition context for saving compound points into,
	since the space for them already exists.

2023-12-22  João Távora  <joaotavora@gmail.com>

	Jsonrpc: overhaul logging mechanics

	* lisp/jsonrpc.el (jsonrpc-connection): Rework.
	(initialize-instance :after jsonrpc-connection): New method.
	(slot-missing jsonrpc-connection :events-buffer-scrollback-size oset):
	New hack.
	(jsonrpc-connection-receive): Rework.
	(initialize-instance :after jsonrpc-process-connection): Rework
	from non-after version.
	(jsonrpc-connection-send)
	(jsonrpc--call-deferred)
	(jsonrpc--process-sentinel)
	(jsonrpc--async-request-1, jsonrpc--debug, jsonrpc--log-event)
	(jsonrpc--forwarding-buffer): Rework.
	(jsonrpc--run-event-hook): New helper.
	(jsonrpc-event-hook): New hook.

	* lisp/progmodes/eglot.el (eglot-lsp-server): Fix project slot
	initform.
	(eglot--connect): Use new jsonrpc-connection initarg.

	* test/lisp/progmodes/eglot-tests.el (eglot--sniffing): Use
	jsonrpc-event-hook.
	(eglot-test-basic-completions): Fix test.

2023-12-21  João Távora  <joaotavora@gmail.com>

	Jsonrpc: fix destructuring bug

	* lisp/jsonrpc.el (jsonrpc--process-sentinel): Fix destructuring bug.
	(Version): Bump to 1.0.22

2023-12-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'no-ls-lisp-advice'

2023-12-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* test/lisp/ls-lisp-tests.el (ls-lisp-unload): Delete test

	We don't use such advice any more.

2023-12-21  Mattias Engdegård  <mattiase@acm.org>

	Maintain byte-compile-form-stack in cconv-convert (bug#67483)

	* lisp/emacs-lisp/macroexp.el (macroexp--with-extended-form-stack):
	New.
	* lisp/emacs-lisp/cconv.el (cconv-closure-convert, cconv-convert):
	Push forms onto byte-compile-form-stack.

2023-12-21  Mattias Engdegård  <mattiase@acm.org>

	Non-delayed warning for malformed function (bug#67483)

	* lisp/emacs-lisp/cconv.el (cconv-convert): Use an immediate warning;
	a delayed one made little sense as it's a matter of well-formedness.

2023-12-21  Manuel Giraud  <manuel@ledu-giraud.fr>

	Function to load GDB history

	* lisp/progmodes/gdb-mi.el (gud-gdb-load-history): New function to
	load GDB history, code factored out of 'gdb'.
	(gdb): Call it.  (Bug#67928)

2023-12-21  Eli Zaretskii  <eliz@gnu.org>

	Improve and update documentation of registers

	* lisp/register.el (register-use-preview)
	(register--read-with-preview-function)
	(register-preview-function, register-preview-default-1)
	(register-preview-default, register--preview-function)
	(register-preview-info, register-command-info)
	(register-preview-forward-line, register-preview-next)
	(register-preview-previous, set-register, register-type)
	(register--type, register-preview, register-preview-1)
	(register-preview-get-defaults, register-read-with-preview)
	(register-read-with-preview-traditional)
	(register-read-with-preview-fancy, register-preview-delay): Doc
	fixes.

	* doc/emacs/regs.texi (Registers): Describe the new preview modes.

	* etc/NEWS: Move the registers entry to its correct place, and
	document the modified behavior.

	(Bug#66394)

2023-12-21  Po Lu  <luangruo@yahoo.com>

	Implement an undocumented TrueType "feature"

	* src/sfnt.c (sfnt_move): Correct commentary.
	(sfnt_interpret_control_value_program): Reset dual projection,
	freedom and projection vectors, in addition to the reference
	points, zone pointers and loop counter.

2023-12-21  Po Lu  <luangruo@yahoo.com>

	* src/sfnt.c (GETINFO): Implement undocumented selector bit 5.

2023-12-21  Po Lu  <luangruo@yahoo.com>

	Accept empty contours in glyphs

	* src/sfnt.c (sfnt_decompose_glyph_1, sfnt_decompose_glyph_2):
	Accept empty contours, for they are not invalid, just redundant.

2023-12-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/register.el (register-read-with-preview-fancy): Fit in 80 columns

2023-12-21  Po Lu  <luangruo@yahoo.com>

	Correct defcustoms in register.el

	* lisp/register.el (register-preview-default-keys)
	(register-use-preview): Render :version tags strings.

2023-12-21  João Távora  <joaotavora@gmail.com>

	Jsonrpc: deal with nested synchronous jsonrpc-request

	See bug#67945

	* lisp/jsonrpc.el (jsonrpc-connection): Add -sync-request-alist
	(jsonrpc-connection-receive): Rework.
	(jsonrpc-request): Rework.  Pass SYNC-REQUEST to
	jsonrpc-async-request-1.
	(jsonrpc--process-sentinel): Simplify.
	(jsonrpc--schedule): New helper.
	(jsonrpc--continue): New helper.
	(jsonrpc--async-request-1): Rework.
	(jsonrpc--process-sentinel): Also cancel deferred action timers.
	(Version): Bump to 1.0.21

2023-12-21  João Távora  <joaotavora@gmail.com>

	Jsonrpc: rework implementation of continuations

	Preparatory work for fix of bug#67945

	* lisp/jsonrpc.el (jsonrpc-connection): Change slots.
	(jsonrpc--remove): New helper
	(jsonrpc-forget-pending-continuations)
	(jsonrpc-connection-receive)
	(jsonrpc-request)
	(jsonrpc--process-sentinel)
	(jsonrpc--async-request-1)
	(jsonrpc--async-request-1): Rework.
	(jsonrpc-continuation-count): New convenience helper.

	* lisp/progmodes/eglot.el (eglot--mode-line-format): Stop using
	jsonrpc--request-continuations.

2023-12-21  João Távora  <joaotavora@gmail.com>

	trace.el: use cl-print

	Any non-trivial EIEO object in particular is impossible to read in the
	*trace-output* buffer without this.  Functions, hash-tables, etc now
	print as they do in backtrace buffers.

	* lisp/emacs-lisp/trace.el (cl-print): Require it
	(trace-entry-message, trace-exit-message): Use cl-prin1-to-string

2023-12-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge commit 'new-fix-for-bug-60819'

2023-12-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/cedet/semantic/db.el (semanticdb-create-database): Remove obsolete arg

	* lisp/org/org-src.el (org-src-font-lock-fontify-block): Fix point-min /= 1

2023-12-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	(bibtex-font-lock-keywords): Expose a lambda to the compiler

	Also use #' to quote function names.

	* lisp/textmodes/bibtex.el (bibtex-font-lock-keywords): Expose a
	lambda to the compiler.

2023-12-20  Matto Fransen  <mattofransen@gmail.com>  (tiny change)

	Specific rcirc log file time stamp format

	The time stamp format in the chat buffer may now
	differ from the format in the log files.
	* doc/misc/rcirc.texi: Document new variable
	* lisp/net/rcirc.el (rcirc-log-time-format):
	Custom variable for the format.  (bug#67597)

2023-12-20  Thierry Volpiatto  <thievol@posteo.net>

	Rename *basic symbols and words to traditional in register

	* lisp/register.el (register-use-preview): Do it.
	(register-read-with-preview-traditional): Renamed from
	register-read-with-preview-basic.

2023-12-20  Thierry Volpiatto  <thievol@posteo.net>

	Fix condition in register-read-with-preview-fancy

	Now with have :noconfirm no need to check for '(set modify) otherwise
	we fail as well in kmacros when register-use-preview is t.
	The conditions should not be hard coded in
	register-read-with-preview-fancy but in the cl-defmethod
	register-command-info for each command.

	* lisp/register.el (register-read-with-preview-fancy): Remove now
	unneeded condition.

2023-12-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix issue with register commands in kmacro

	Using post-command-hook in minibuffer-setup-hook instead of a timer
	allow running exit-minibuffer without delay and ensure the series of
	commands used in a kmacro run synchronously.

	* lisp/register.el (register-read-with-preview-fancy): Do it.

2023-12-20  Thierry Volpiatto  <thievol@posteo.net>

	Provide emacs-29 behavior for register-preview

	It is now the default with a value of register-use-preview eq to
	basic.
	To change this one have now to customize register-use-preview to
	another value.

	* lisp/register.el (register-preview-delay): Remove obsolescence.
	(register--read-with-preview-function): New.
	(register-use-preview): New option basic, it is now the default.
	(register-preview-default-1): New the register-preview-default used by
	`register-read-with-preview-fancy`.
	(register-preview-default): Restored (same as Emacs-29).
	(register--preview-function): Generic fn that return the right
	function for register--preview-function.
	(register-preview): Restored (same behavior as Emacs-29).
	(register-preview-1): Used by `register-read-with-preview-fancy'.
	(register-read-with-preview-basic): The old
	register-read-with-preview.
	(register-read-with-preview-fancy): The new
	register-read-with-preview.

2023-12-20  Thierry Volpiatto  <thievol@posteo.net>

	Don't confirm with RET even when overwriting in register commands

	This happen when register-use-preview is nil or never.
	This reproduce what we had previously in 29.1 but with filtering in
	the preview and default registers are provided for the commands of
	type 'set'.

	This is implemented with cl-defmethod to keep the code as much as
	possible configurable.

	* lisp/register.el (register-preview-info): New slot.
	(register-command-info): Add new methods for copy-to-register,
	point-to-register, number-to-register,
	window-configuration-to-register, frameset-to-register and
	copy-rectangle-to-register.
	(register-read-with-preview): Bind noconfirm.

2023-12-20  Dmitry Gutov  <dmitry@gutov.dev>

	project--read-file-cpd-relative: Don't abbreviate at all

	* lisp/progmodes/project.el (project--read-file-cpd-relative):
	Don't abbreviate at all, only suffixes are shown anyway.
	And expand-file-name is slightly faster.

2023-12-20  Dmitry Gutov  <dmitry@gutov.dev>

	Fix project-find-file history (with project--read-file-cpd-relative)

	* lisp/progmodes/project.el (project--transplant-file-name):
	Don't abbreviate here (bug#67901, bug#63829).
	(project--read-file-cpd-relative): Do it here instead.  The reader
	functions should decide on the preferred format themselves.

2023-12-19  Dmitry Gutov  <dmitry@gutov.dev>

	Add "back" button on top of the pre-rename vc-print-log buffer

	* lisp/vc/vc.el (log-view-vc-prev-revision)
	(log-view-vc-prev-fileset): New dynamic variables (bug#55871).
	(vc-print-log-renamed-add-button): Extract from
	'vc-print-log-setup-buttons'.  Bind the above variables to convey
	the current revision and fileset to 'vc-print-log-internal'.
	(vc-print-log-internal): Use it also here, to print a "back"
	button above the log when 'log-view-vc-prev-fileset' is set.

2023-12-19  Mattias Engdegård  <mattiase@acm.org>

	Calc: speed up math-read-preprocess-string (bug#67536)

	`math-read-preprocess-string` is one of the bottlenecks of `calc-eval`
	and was unnecessarily slow even with no substitutions made.
	This affected org-mode in particular, where `calc-eval` is called
	repeatedly to recalculate tables.

	Reported by Raffael Stocker who also wrote the unit tests here.

	* lisp/calc/calc-aent.el (math--read-preprocess-re-cache): New.
	(math-read-preprocess-string):
	Use math--read-preprocess-re-cache, first computing it if necessary.
	* test/lisp/calc/calc-tests.el (calc-math-read-preprocess-string):
	New test.

2023-12-19  João Távora  <joaotavora@gmail.com>

	Fido-mode: don't error if case-fold-search is globally nil

	bug#67884

	To prevent errors, the same case-fold-search setting used for
	originally selecting the candidate should be used when scoring it.

	* lisp/minibuffer.el (completion--flex-score): Fix

2023-12-19  Po Lu  <luangruo@yahoo.com>

	Improve efficiency of operations involving font interpreter scale

	* src/sfnt.c (sfnt_mul_f26dot6_fixed): Correct rounding
	constant.
	(sfnt_make_interpreter, SSW, WCVTF, sfnt_compute_phantom_points)
	(sfnt_interpret_simple_glyph, sfnt_interpret_compound_glyph_1)
	(sfnt_vary_interpreter, sfnt_check_ssw): Account for the
	fractional bits in a f26dot6 when computing the interpreter
	scale factor.

2023-12-19  Po Lu  <luangruo@yahoo.com>

	Properly sign-extend freedom and projection vector values

	* src/sfnt.c (GPV, GFV): Cast versors to int32_t.

2023-12-19  Po Lu  <luangruo@yahoo.com>

	Further corrections to font scaling

	* src/sfnt.c (sfnt_dot_fix_14): Correct typo in final division.
	(sfnt_compute_phantom_points): New parameters S1 and S2, into
	which unrounded phantom point coordinates are saved.
	(sfnt_interpret_simple_glyph, sfnt_interpret_compound_glyph_2)
	(sfnt_interpret_compound_glyph_1): Adjust correspondingly.

	* src/sfntfont.c (sfntfont_get_glyph_outline): Delete redundant
	branch.

2023-12-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	debug.el: Straighten the code that find the "base" of the backtrace

	Let the caller tell us clearly where is the base of the backtrace,
	if it's not `debug`.  This is done by passing a new `:backtrace-base`
	keyword argument to `debug`.

	Then use this info systematically in all the places where we access
	the real C-level backtrace, to try and avoid inconsistencies and brittle
	code that tries to enumerate the expected frames we're in.

	* src/eval.c (get_backtrace_starting_at): Add support for offsets in the
	`base` argument.
	(Fbacktrace_debug): Add optional `base` argument.

	* lisp/emacs-lisp/debug.el (debug, debugger-frame, debugger-frame-clear):
	Use `debugger--backtrace-base` when calling `backtrace-debug`.
	(debugger-setup-buffer): Use `debugger--backtrace-base`
	when calling `backtrace-get-frames`.
	(debugger-frame-number): Drop `skip-base` arg, assume it's never nil.
	Add sanity check.
	(debugger--backtrace-base): Use the `:backtrace-base` info
	in `debugger-args`.
	(debugger-eval-expression): Adjust call to `debugger-frame-number`.
	(debug--implement-debug-on-entry): Pass appropriate `:backtrace-base`.

2023-12-18  Po Lu  <luangruo@yahoo.com>

	Further fixes for problems uncovered by the previous fix

	* src/sfnt.c (sfnt_deltap): Enable deltap instructions again,
	since they now serve a purpose.
	(sfnt_compute_phantom_points): Round phantom points to match the
	behavior of other TrueType scalers.

2023-12-18  Po Lu  <luangruo@yahoo.com>

	* src/sfnt.c (sfnt_interpret_mdap): Correct MDAP opcode.

2023-12-18  Po Lu  <luangruo@yahoo.com>

	Fix typo in earlier changes

	* src/sfnt.c (sfnt_poly_edges_exact): Don't overwrite the
	remainder of an ascending edge with its covered height.
	(main): Adjust tests.

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Add erc-track integration to erc-nicks

	* lisp/erc/erc-button.el (erc-button--nick): Add `face-cache' slot.
	(erc-button-add-nickname-buttons): Pass `erc-button--nick' object, if
	created', as the boolean NICK-P parameter when calling
	`erc-button-add-button'.  Keeping the latter function ignorant of
	`erc-button--nick' is of course preferable, but some coordination is
	now required to convey and use the "face cache".  We can introduce an
	abstraction, like a local variable, if this becomes an issue.
	(erc-button-add-button): Use `erc--merge-prop' instead of
	`erc-button-add-face' to apply button faces.  Hold off on deprecating
	the latter because it provides unique functionality for nesting faces.
	Also, consult NICK-P if it's an `erc-button--nick' object for the
	various overriding faces it knows about.
	* lisp/erc/erc-nicks.el (erc-nicks-track-faces): New option.
	(erc-nicks--get-face): Make generated face `:inherit' from
	`erc-nicks-backing-face'.
	(erc-nicks--highlight): Just return the generated face instead of
	combining it with `erc-nicks-backing-face'.
	(erc-nicks--highlight-button): Set the `face-cache' slot of the
	`erc-button--nick' object when `track' is loaded and initialized.
	(erc-nicks-mode, erc-nicks-enable, erc-nicks-disable): Add and remove
	`track' integration.
	(erc-nicks--reject-uninterned-faces): New function to remove faces
	created by `nicks' from buttonized speakers and mentions.  Conform
	to `erc-track--face-reject-function' interface.
	(erc-nicks--ourps, erc-nicks--check-normals): New function and helper
	for `erc-track--alt-normals-function' interface.
	(erc-nicks--setup-track-integration): New function.
	(erc-nicks--remember-face-for-track): New function to cache
	nick faces owned by this module.
	* lisp/erc/erc.el (erc--merge-prop): Add new optional parameter
	`cache-fn', and when non-nil, call it, assigning the returned value to
	that of the merged property.
	* test/lisp/erc/erc-nicks-tests.el (erc-nicks-list-faces): Skip
	the "Inherit: " button.  (Bug#67767)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Cache shortened channel names in erc-track

	* lisp/erc/erc-track.el (erc-track--shortened-names): New variable to
	stash both the latest inputs and most recent result of
	`erc-track-shorten-function'.
	(erc-track--shortened-names-current-hash,
	erc-track--shortened-names-set, erc-track--shortened-names-get): New
	pair of generalized-variable functions and helper variable for
	accessing and mutating `erc-track--shorten-prefixes'.
	(erc-modified-channels-display): Avoid redundant calls to
	`erc-track-shorten-function'.  Mainly for use during batch processing.
	* test/lisp/erc/erc-track-tests.el (erc-track--shortened-names): New
	test.  (Bug#67767)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Promote "normal" faces in erc-track

	* etc/ERC-NEWS: Add entry for new behavior involving the option
	`erc-track-faces-normal-list'.
	* lisp/erc/erc-button.el (erc-button-nick-default-face): New face to
	serve as default for `erc-button-nickname-face'.
	(erc-button-nickname-face): Change default value to
	`erc-button-nick-default-face'.
	* lisp/erc/erc-track.el (erc-track--massage-nick-button-faces): New
	function to serve as Custom :set function for priority and "normal"
	face-list options.
	(erc-track-faces-normal-list): Fix Custom :type by loading
	`erc-button' during validation so Customize chooses the correct UI
	instead of a generic form field with "(mismatch)" printed alongside
	the "STATE" button.
	(erc-track-faces-priority-list, erc-track-faces-normal-list): Remove
	values for "buttonized" `match' module faces that, if retained, would
	need updating to feature `erc-button-nick-default-face' instead of
	`erc-nick-default-face'.  However, as noted in the NEWS entry, this
	ordering of button face atop match face is not possible.  Use :set
	function to massage saved user values.
	(erc-track-ignore-normal-contenders-p): New compatibility switch to
	access pre-5.6 behavior, in which faces in
	`erc-track-faces-normal-list' were only considered for promotion to
	the mode line if the current face occupying that pole position wasn't
	present.
	(erc-track-mode, erc-track-enable, erc-track-disable): Add comments
	regarding perceived futility of hooking on `erc-server-001-functions'
	and likely unneeded hook removal.  Run common buffer-local setup and
	teardown.
	(erc-track--normal-faces): New local variable, a snapshot of
	`erc-track-faces-normal-list'.
	(erc-track--setup): New function to stash
	`erc-track-faces-normal-list' on init.
	(erc-track-select-mode-line-face): Offer alternate explanation of
	certain particulars in doc string.
	(erc-track--alt-normals-function): New function-valued variable to
	allow other modules to intervene in deciding whether to pursue and
	promote a "normal" contending face.
	(erc-track--select-mode-line-face): New function similar to its public
	namesake except that it considers other viable candidates among the
	"normal" alternatives.
	(erc-track-modified-channels): Only run face selection portion when
	faces are actually found.  Use `erc-track--select-mode-line-face'
	instead of `erc-track-select-mode-line-face'.
	* test/lisp/erc/erc-track-tests.el
	(erc-track-select-mode-line-face): New test.
	(erc-track-tests--select-mode-line-face): New fixture function.
	(erc-track--select-mode-line-face): New test.  (Bug#67767)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Forgo excess nick buttonizing on JOINs and QUITs

	* etc/ERC-NEWS: Mention nick-button deduping.
	* lisp/erc/erc-button.el (erc-button-highlight-nick-once): New
	variable to specify commands and numerics for messages that ERC should
	forgo redundant buttonizing atop, assuming the presence of a
	"userhost".
	(erc-button--fallback-cmem-function): Change default value to
	`erc-button--get-user-from-spkr-prop'.
	(erc-button--get-user-from-spkr-prop): New function to derive user
	object from `erc--spkr' "msg prop".  The point is to allow
	`erc-speaker-from-channel-member-function' to return a display name
	that differs from the speaker's actual nick as recorded by its
	`erc-server-user' object.
	(erc-button--get-phantom-cmem): Add `count' parameter.
	(erc-button-add-nickname-buttons): Stop after first turn if the
	current command appears in `erc-button-highlight-nick-once'.  Pass
	iteration count to `erc-button--fallback-cmem-function'.  (Bug#67677)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Rename erc-channel-users to erc-channel-members

	* etc/ERC-NEWS: Mention name change.
	* lisp/erc/erc-backend.el (erc-process-sentinel): Don't create an
	empty `erc-channel-users' hash table in server buffers.  This is
	arguably a bug fix as well as a minor breaking change.
	* lisp/erc/erc-common.el (erc-get-channel-user,
	erc-get-channel-member): Rename and alias former to latter.
	* lisp/erc/erc.el (erc-channel-users, erc-channel-members): Rename
	former to latter.  The old name invited much confusion because the
	table's values are not mere `erc-channel-user' instances but cons
	cells that include them and their corresponding server users.

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Consolidate status-prefix slots of erc-channel-user

	* etc/ERC-NEWS: Mention change even though the API remains
	undisturbed.
	* lisp/erc/erc-common.el (erc-channel-user): "Encode" status prefix
	slots `voice', `halfop', `op', `admin', and `owner' as single `status'
	slot.  Add backward-compatible constructor.  Although the old layout
	was overly sparse, since the vast majority of users have no membership
	status at all, the point here is not to trade time for space but
	rather to improve human readability of ERC buffer substrings
	containing text props that reference `erc-channel-user' objects.
	* lisp/erc/erc.el (erc--define-channel-user-status-compat-getter):
	Helper macro for declaring compat-oriented "getters" for status-prefix
	slots of `erc-channel-user'.
	(erc-channel-user-voice, erc-channel-user-halfop, erc-channel-user-op,
	erc-channel-user-admin, erc-channel-user-owner): Add compat getters.
	These are not new functions.  They were previously defined by the
	`erc-channel-user' `cl-defstruct' in erc-common.el.
	(erc--update-cusr-status-if-changed): New helper macro to make
	`erc-update-current-channel-member' more readable.
	(erc-update-current-channel-member): Collapse some overly verbose
	"unrolled" forms using helper macro and more compact expressions.
	* test/lisp/erc/erc-tests.el (erc-channel-user): New test.

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Demote erc-fill-line-spacing to a normal variable

	* etc/ERC-NEWS: Remove section from 5.6 announcing user option
	`erc-fill-line-spacing'.
	* lisp/erc/erc-fill.el (erc-fill-line-spacing): Change from an option
	to a variable and note unfortunate UX hiccups.
	(erc-fill-wrap-merge, erc-fill-wrap-merge-indicator, fill-wrap):
	Remove mention of the option, now variable, `erc-fill-line-spacing'.
	(Bug#60936)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Use templates for formatting chat messages in ERC

	* doc/misc/erc.texi: Replace option `erc-format-nick-function' with
	`erc-show-speaker-membership-status'.
	* etc/ERC-NEWS: Mention shift to template-based speaker formatting.
	Also mention in-buffer STATUSMSG support and various name changes and
	new formatting-related options.
	* lisp/erc/erc-backend.el (erc-format-privmessage): Remove forward
	declaration.
	(erc--determine-speaker-message-format-args): Add forward declaration.
	(erc--statusmsg-target): New utility function for detecting whether
	the current target is status-prefixed.
	(erc-current-message-catalog): Move here from lisp/erc/erc.el.
	(erc--message-speaker-catalog): New variable.
	(erc--speaker-status-prefix-wanted-p): New variable specifically for
	the function `erc-format-@nick' to signal it wants status-prefixes
	prepended to the displayed nick.
	(erc-server-PRIVMSG): Initialize `let'-bound value of
	`erc--msg-prop-overrides' to a dummy `erc--tmp' property with a null
	value that `erc-display-message' will "strip" before calling its
	hooks.  Move away from the rather blunt symbol `msg' as a useful value
	for `erc--msg'.  Instead, allow `erc-display-message' to assign the
	most appropriate value based on context.  Also, bind the variable
	`erc-current-message-catalog' to whatever the buffer's
	`erc--message-speaker-catalog' happens to be.  Future internal modules
	can set this to alternative catalogs as needed.  Additionally, detect
	STATUSMSG prefixes on targets and inform the formatting logic of the
	verdict.  Lastly, and most importantly, use the function
	`erc--determine-speaker-message-format-args' instead of
	`erc-format-privmessage' for message formatting.  Pass along the
	returned "catalog key" and spec parameters to `erc-display-message'.
	However, for NOTICEs, continue to render the string, as before, for
	the two "echo notice" hooks.
	* lisp/erc/erc-common.el (erc--ctcp-response): New "subsclass" of
	`erc-response' for smuggling extra information to CTCP query handlers
	in a mostly backwards-compatible way.  The same approach could be
	taken with the "echo notice" hooks mentioned above.
	* lisp/erc/erc-dcc.el (erc-dcc-chat-filter): Add `erc--spkr' and
	`erc--speaker' properties even though these chat buffers are not
	`erc-mode' buffers.
	* lisp/erc/erc-fill.el (erc-fill--wrap-last-msg,
	erc-fill--wrap-max-lull): Add doc strings.
	(erc-fill--wrap-continued-message-p): Rework to look for `erc--spkr'-
	`erc--msg' combinations as indicators of speaker continuity.
	(erc-fill--wrap-rejigger-region): Remove reference to the no longer
	relevant `erc-stamp-type'.  Instead, use the `erc--msg' property
	combined with the `erc-timestamp' field to detect date stamps because
	all are currently left-sided.
	* lisp/erc/erc-stamp.el (erc-stamp--propertize-left-date-stamp): Don't
	add superfluous `erc-stamp-type' property.
	* lisp/erc/erc.el (erc--msg-props): Revise purpose and meaning of
	`erc--msg' by removing possible value `msg', which was previously
	meant to indicate that a message had a "speaker".  Instead, rely on
	the separate `erc--spkr' property to convey this information, with
	`erc--msg' now expressing a "type" or "role".
	(erc--use-language-catalog-for-ctcp-action-p): New variable, a
	compatibility switch to help transition from the `ACTION' entry of the
	language catalog to the `ctcp-action' family of entries in the new
	`-speaker' catalog.
	(erc--ensure-spkr-prop): Update to include any passed-in environmental
	overrides.
	(erc--send-action-display): Restore pre-5.6 behavior when
	compatibility flag enabled.  Otherwise, use new `-speaker' catalog for
	formatting inserted message.
	(erc--send-message-external): Overhaul to behave more faithfully in
	mimicking a line submitted at the prompt of the current target buffer.
	(erc--own-property-names): Remove `erc-stamp-type'.
	(erc-ensure-target-buffer-on-privmsg): Add new choice variant for old
	default behavior and change meaning of default to mean "except for
	STATUSMSGs".  This option is newly revived for ERC 5.6.
	(erc--message-speaker-statusmsg, erc--message-speaker-statusmsg-input,
	erc--message-speaker-input, erc--message-speaker-input-chan-privmsg,
	erc--message-speaker-input-chan-notice,
	erc--message-speaker-input-query-privmsg,
	erc--message-speaker-input-query-notice,
	erc--message-speaker-chan-privmsg, erc--message-speaker-query-privmsg,
	erc--message-speaker-chan-notice, erc--message-speaker-query-notice,
	erc--message-speaker-ctcp-action,
	erc--message-speaker-ctcp-action-input,
	erc--message-speaker-ctcp-action-statusmsg,
	erc--message-speaker-ctcp-action-statusmsg-input): New variables for
	new `speaker' format-template catalog.
	(erc--speakerize-nick): New helper function.
	(erc--determine-speaker-message-format-args): New function to find the
	appropriate format key from various contextual parameters.  Could
	become the default of a function-valued variable for internal use.
	(erc-show-speaker-membership-status): New option.
	(erc-format-nick-function, erc-speaker-from-channel-member-function):
	Declare former as an obsolete alias for the latter, and redefine
	purpose slightly.
	(erc-format-nick-function, erc-determine-speaker-from-user): Rename
	former to latter and obsolete the old name.
	(erc-format-nick, erc-determine-speaker-from-user): Rename former to
	latter and obsolete old name.
	(erc-format-@nick): Deprecate and adapt for use with new
	template-based formatting paradigm.
	(erc-format-my-nick): Move `erc-speaker' text prop toward head of
	list, meaning it will end up beneath `font-lock-face' in the final
	output.
	(erc--format-speaker-input-message): New function to replace
	`erc-format-my-nick' in-tree.
	(erc-process-ctcp-query): Don't bind `erc--msg' to `msg'.  Instead,
	rely on `erc-display-message' to set it to the current template key.
	(erc-ctcp-query-ACTION): Prefer using formatting template, but attempt
	to simulate pre-5.6 behavior when compatibility flag enabled.
	(erc-display-msg): Use `erc--format-speaker-input-message' instead of
	`erc-format-my-nick'.  Ignore `erc--msg-prop-overrides' with null
	values.
	(erc-current-message-catalog): Move to erc-backend.el.
	* test/lisp/erc/erc-scenarios-base-statusmsg.el: New file.
	* test/lisp/erc/erc-scenarios-stamp.el
	(erc-scenarios-stamp--left/display-margin-mode): Expect format catalog
	key instead of unhelpful `msg' as value of `erc--msg' prop.
	* test/lisp/erc/erc-tests.el (erc-message): Render format template in
	mock function and expect string in assertions.
	(erc-tests--format-privmessage): New function, a helper for the
	following test.
	(erc-format-privmessage, erc--determine-speaker-message-format-args):
	Rename former to latter and suppress deprecation warning.
	(erc--determine-speaker-message-format-args/queries,
	erc--determine-speaker-message-format-args/queries-as-channel): New
	tests.
	(erc-tests--format-my-nick): New helper function for the following
	test.
	(erc--format-speaker-input-message): New test.
	* test/lisp/erc/resources/base/display-message/statusmsg.eld: New
	file.  (Bug#67677)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Add erc--spkr text property to chat messages

	* etc/ERC-NEWS: Mention combined face ordering for "/me" messages.
	* lisp/erc/erc-backend.el (erc-server-PRIVMSG): Bind
	`erc--msg-prop-overrides' for the extent of this function's execution,
	which means a large amount of code will see this variable as being
	non-nil.  However, no calls to `erc-display-message' or
	`erc-display-msg' should occur other than the one handling the final
	insertion.  Code needing to influence the current message's "msg
	props" can push new pairs onto this value, which will override any
	existing collisions.
	* lisp/erc/erc-fill.el (erc-fill): Switch to `erc--spkr' as sentinel
	property.
	(erc-fill--wrap-continued-message-p): Look for `erc--spkr' property
	instead of `erc-speaker'.
	* lisp/erc/erc.el (erc--msg-props): Mention `erc--spkr' in doc.
	(erc--send-action-perform-ctcp): Add `erc--spkr' property.  Fix bug in
	which `erc-my-nick-face' appeared below `erc-input-face' in the
	speaker portion.
	(erc--ensure-spkr-prop): New helper function to propagate speaker
	metadata.
	(erc--ranked-properties): Add `erc--spkr', `erc--ctcp', and
	`erc--ephemeral'.
	(erc-display-message): Use default hash table size when initializing.
	Remove unnecessary assignment of `msg' to `erc--msg' for PRIVMSG and
	NOTICE commands.  Bind `string' below `erc--msg-props' so that
	implementers of the function form of the `erc-format-message'
	templating interface can read and write the current context's "msg
	props".
	(erc--own-property-names): Add all `erc--msg-props' props by
	subsumation.
	(erc--get-speaker-bounds): Use `erc--spkr' instead of `erc--msg' as a
	sentinel to detect a chat message guaranteed to have an `erc--speaker'
	text-property interval.
	(erc-format-privmessage, erc-format-my-nick, erc-ctcp-query-ACTION):
	Add `erc--spkr' to `erc--msg-prop-overrides' when available.
	* test/lisp/erc/erc-fill-tests.el: (erc-fill-tests--insert-privmsg):
	Bind `erc--msg-prop-overrides'.
	(erc-fill-tests--compare): Require environment variable value to match
	current test name exactly when saving snapshots.  Add `erc--msg-props'
	individually to white list.
	* test/lisp/erc/erc-tests.el (erc--order-text-properties-from-hash):
	Include `erc--spkr'.  (Bug#60936)  (Bug#67677)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Skip erc-ignored-user-p when erc-ignore-list is empty

	* lisp/erc/erc-backend.el (erc-server-PRIVMSG): Don't bother running
	`erc-ignored-user-p' and `erc-ignored-reply-p' when their associated
	options are null.  The option `erc-ignore-list' is buffer-local when
	set, and `erc-ignored-user-p' looks for it in the server buffer.
	Moreover, all functions that set it, like `erc-cmd-IGNORE' and
	`erc-cmd-UNIGNORE', do so in the server buffer.  And the response
	handler in question only runs in server buffers, so this shouldn't
	break anything.  Also, remove stray call to reassign trailing response
	contents.
	* lisp/erc/erc-common.el (erc-get-server-user): Rearrange so
	`erc-with-server-buffer' doesn't have to switch to the server buffer
	because `erc-downcase' can run in channels as well.
	* lisp/erc/erc.el (erc-ignored-user-p): Add comment.  (Bug#67677)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Make erc-get-user-mode-prefix more flexible

	* etc/ERC-NEWS: Mention renaming of `erc-get-user-mode-prefix'.
	* lisp/erc/erc-speedbar.el (erc-speedbar-insert-user): Use
	`erc-get-channel-membership-prefix' so that nicks in the nickbar can
	have prefixes beyond just those for "voice" and "op".
	* lisp/erc/erc.el (erc-get-user-mode-prefix,
	erc-get-channel-membership-prefix): Rename former to latter because
	"user mode" suggests the function somehow involves user modes, but it
	exclusively concerns channel modes.  Also, overload the only parameter
	in order to avoid redundantly looking up `erc-channel-user' object
	with every predicate call.  In the near future, ERC will likely need
	to offer an alternate version of this function that returns multiple
	prefixes instead of just one.
	(erc-format-@nick): Actually use the `channel-data' parameter.
	(erc-format-my-nick, erc--format-channel-status-prefix): Use new name
	for function `erc-get-user-mode-prefix'.  (Bug#63595)  (Bug#67677)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Clarify warning for process-dependent input in ERC

	* lisp/erc/erc.el (erc--check-prompt-input-for-running-process):
	Resolve dissonance between content of ancient `user-error' message and
	condition that triggered it by favoring the former because it's
	supported by the underlying mechanism, which revolves around the
	`process-not-needed' symbol property.
	* test/lisp/erc/erc-tests.el (erc--check-prompt-input-functions):
	Revise expected output for error assertion.  (Bug#66073, originally
	from bug#54536, and included for discussion in bug#67677)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Add erc-server-396 response handler

	* lisp/erc/erc-backend.el (erc-server-396, erc-server-396-functions):
	Define response handler for 396 numeric.  For now, always display the
	message in the active buffer rather than bother with something like
	`erc-once-with-server-event' to try and suss out when this is a
	response to something client-initiated, like a /VHOST.  Do this
	despite most users probably wanting the message to appear in the
	server buffer alone when the response is server-initiated.  The
	`labeled-response' extension will hopefully make dealing with such
	matters less of a crapshoot.
	* lisp/erc/erc.el (erc--parse-user-regexp-pedantic): Tweak slightly to
	allow null groups and favor host.
	(erc--parse-user-regexp-legacy, erc--parse-user-regexp): Remove the
	first variable but preserve its value as that of the second.
	(erc--parse-nuh): New function.  The behavior is nuanced and complex
	and so not easily described in a doc string.
	(erc-message-english-396): Define format template for 396 response.
	* test/lisp/erc/erc-scenarios-misc-commands.el
	(erc-scenarios-misc-commands--VHOST): New test.
	* test/lisp/erc/erc-tests.el (erc-parse-user): Move "pedantic" section
	to new test.
	(erc--parse-nuh): New test.
	* test/lisp/erc/resources/commands/vhost.eld: New test data file.
	(Bug#67677)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Make erc-input's refoldp slot conditionally available

	* etc/ERC-NEWS: Fix entry regarding `erc-input-refoldp'.
	* lisp/erc/erc-common.el (erc-input): Remove `refoldp' slot, which was
	to be new in 5.6, in order to reduce churn in the extremely unlikely
	event that third-party code uses the read-syntax of these objects or
	ones subclassed from it for some other purpose, outside of
	`erc-pre-send-functions'.
	(erc--input-split) Add `refoldp' slot here instead.
	* lisp/erc/erc.el (erc-pre-send-functions): Amend doc string to stress
	that `refoldp' is not a real slot.
	(erc--input-ensure-hook-context, erc-input-refoldp): New function, an
	impostor accessor for the nonexistent `refoldp' slot of `erc-input',
	and a helper function for asserting a valid context at runtime.
	(erc--run-send-hooks): Don't copy over `refoldp' from the
	`erc--input-lines' object to the working `erc-insert' object.  Check
	the insertion context's `erc--input-split' object instead of the
	hook's `erc-insert' object when deciding whether to resplit.
	* test/lisp/erc/erc-tests.el: Adjust test environment to satisfy
	assertion.  (Bug#62947)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Add utility for iterating over arrays in ERC

	* lisp/erc/erc-common.el (erc--doarray): Add macro for mapping over
	arrays.  ERC has the uncommon requirement of having to repeatedly
	traverse strings that contain flags for advertised server features.
	It doesn't make sense to translate these meanings into enums or
	dynamically generate variables for each flag.  Hash tables and lists
	require additional setup and aren't as compact to inspect.
	* lisp/erc/erc-dcc.el (erc-dcc-handle-ctcp-send): Use `string-search'
	instead of `seq-contains-p' even though performance doesn't matter
	here.
	* lisp/erc/erc.el (erc--channel-mode-types): Use `erc--doarray'
	instead of `dolist'.
	(erc--process-channel-modes): Use `erc--doarray' instead of `dolist',
	and don't create a string from current char until needed.
	(erc--parse-user-modes): Use `erc--doarray' instead of `dolist'.
	* test/lisp/erc/erc-tests.el (erc--doarray): New test.  (Bug#67677)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Double hyphenate internal ERC 5.6 text props

	* lisp/erc/erc-fill.el (erc-fill, erc-fill-static,
	erc-fill--wrap-continued-message-p, erc-fill-wrap,
	erc-fill--wrap-rejigger-region): Add second hyphen to "msg prop" text
	properties.  Rename `erc-speaker' to `erc--speaker'.
	* lisp/erc/erc-goodies.el (erc--command-indicator-display): Rename
	`erc-msg' to `erc--msg'.
	* lisp/erc/erc-stamp.el (erc-stamp--current-time, erc-add-timestamp,
	erc-stamp-prefix-log-filter, erc-stamp--lr-date-on-pre-modify,
	erc-munge-invisibility-spec, erc-stamp--add-csf-on-post-modify,
	erc-stamp--on-clear-message, erc-echo-timestamp, erc--echo-ts-csf):
	Rename "msg props" with second hyphen.
	* lisp/erc/erc-track.el (erc-track--skipped-msgs,
	erc-track-modified-channels): Rename "msg prop" text properties with
	second hyphen.
	* lisp/erc/erc.el (erc--msg-props): Update doc with double-hyphenated
	"msg prop" names.
	(erc--send-action-display erc--get-inserted-msg-bounds,
	erc--traverse-inserted, erc-insert-line, erc-display-line,
	erc--ranked-properties, erc-display-message, erc--get-speaker-bounds,
	erc-process-ctcp-query, erc-display-msg): Update all "msg prop" names
	to have two hyphens.
	(erc--send-action-display, erc--own-property-names,
	erc--get-speaker-bounds, erc-format-privmessage, erc-format-my-nick,
	erc-ctcp-query-ACTION): Rename `erc-speaker' to `erc--speaker'.
	* test/lisp/erc/erc-scenarios-display-message.el
	(erc-scenarios-display-message--multibuf): Double hyphenate "msg prop"
	text properties.
	* test/lisp/erc/erc-scenarios-match.el
	(erc-scenarios-match--hide-fools/stamp-both/fill-wrap,
	erc-scenarios-match--hide-fools/stamp-both/fill-wrap/speak,
	erc-scenarios-match--stamp-both-invisible-fill-static): Update "msg
	prop" names.
	* test/lisp/erc/erc-scenarios-stamp.el
	(erc-scenarios-stamp--on-post-modify,
	erc-scenarios-stamp--left/display-margin-mode,
	erc-scenarios-stamp--legacy-date-stamps,
	erc-scenarios-stamp--on-insert-modify,
	erc-scenarios-stamp--date-mode/left-and-right): Add second hyphen to
	all "msg props". Rename `erc-speaker' to `erc--speaker'.
	* test/lisp/erc/erc-stamp-tests.el (erc-echo-timestamp): Rename "msg
	prop".
	* test/lisp/erc/erc-tests.el (erc--get-inserted-msg-bounds,
	erc--delete-inserted-message, erc--order-text-properties-from-hash,
	erc--route-insertion): Rename "msg props" with second hyphen.
	(erc-format-privmessage): Rename `erc-speaker' to `erc--speaker'.
	(Bug#60936)  (Bug#67677)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Sequester some special-variable declarations in ERC

	* lisp/erc/erc-backend.el (erc-log-p): Remove declaration entirely.
	(erc-server-reconnect): Move declaration for `erc-reuse-buffers' here.
	(erc-process-sentinel-1): Move `erc-kill-server-buffer-on-quit'
	declaration here.
	(erc--conceal-prompt): Move `erc-prompt-hidden' declaration here.
	(erc-server-INVITE): Move `erc-invitation' declaration here.
	(erc-server-PART): Move `erc-kill-buffer-on-part' declaration here.
	(erc-server-PRIVMSG): Move declarations for `erc-minibuffer-ignored',
	`erc-receive-query-display', `erc-receive-query-display-defer',
	`erc--cmem-from-nick-function', `erc-format-nick-function', and
	`erc-format-query-as-channel-p' here.
	(erc-server-401): Move `erc-whowas-on-nosuchnick' declaration here.
	(erc-server-475): Move `erc--called-as-input-p' and
	`erc-prompt-for-channel-key' declarations here.
	* lisp/erc/erc-common.el (erc-log-p): Remove declaration for
	`erc-log-p' and replace with actual definition.
	(erc-log-aux): Move `erc-dbuf' declaration from top level into
	function body.
	* lisp/erc/erc-fill.el (erc-fill--wrap-continued-message-p): Note in
	the doc string that this function produces side effects.
	* lisp/erc/erc-networks.el (erc-determine-network,
	erc-networks--copy-server-buffer-functions): Move some variable
	declarations to function body.
	(erc-settings, erc-get): Deprecate for now and explain why in doc
	strings.  We could deprecate them unconditionally, but they never
	provided usable code, and their names are short and valuable.
	* lisp/erc/erc.el (tabbar--local-hlf, motif-version-string,
	gtk-version-string): Prefer moving these single-serving declarations
	to function bodies, if only to make closures from this library less
	cluttered when debugging.  This should also help avoid stray
	declarations.
	(erc-hooks, erc-timer-hook): Revise doc strings.
	(erc-log-p): Move definition to erc-common.el.
	(erc-cmd-SV): Mimic `emacs-version' and stick with `featurep', here in
	combination with special-variable declarations, instead of `boundp' or
	similar.
	(erc-header-line-uses-tabbar-p): Explain that this has nothing to do
	with `tab-bar'.
	(erc-update-mode-line-buffer): Only assign when bound.  This has been
	verified to work with version 2.0 on EmacsWiki.
	* test/lisp/erc/erc-scenarios-base-reconnect.el: Timeouts.
	* test/lisp/erc/erc-scenarios-base-renick.el: Timeouts.
	* test/lisp/erc/resources/join/network-id/foonet-again.eld: Timeouts.

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Define ERC message-formatting templates with defvar

	* etc/ERC-NEWS: Mention convenience macro being preferred means of
	defining message templates.  Mention renaming of `notify' formatting
	templates.
	* lisp/erc/erc-common.el (erc--define-catalog,
	erc-define-message-format-catalog): New macro and internal variant to
	replace `erc-define-catalog-entry'.  The internal variant allows us to
	defer reindenting existing definitions until meaningfully edited.
	* lisp/erc/erc-dcc.el (erc-message-english-dcc-chat-discarded,
	erc-message-english-dcc-chat-ended,
	erc-message-english-dcc-chat-no-request,
	erc-message-english-dcc-chat-offered,
	erc-message-english-dcc-chat-offer,
	erc-message-english-dcc-chat-accept,
	erc-message-english-dcc-chat-privmsg, erc-message-english-dcc-closed,
	erc-message-english-dcc-command-undefined,
	erc-message-english-dcc-ctcp-errmsg,
	erc-message-english-dcc-ctcp-unknown,
	erc-message-english-dcc-get-bytes-received,
	erc-message-english-dcc-get-complete,
	erc-message-english-dcc-get-failed,
	erc-message-english-dcc-get-cmd-aborted,
	erc-message-english-dcc-get-file-too-long,
	erc-message-english-dcc-get-notfound,
	erc-message-english-dcc-list-head, erc-message-english-dcc-list-line,
	erc-message-english-dcc-list-item, erc-message-english-dcc-list-end,
	erc-message-english-dcc-malformed,
	erc-message-english-dcc-privileged-port,
	erc-message-english-dcc-request-bogus,
	erc-message-english-dcc-send-finished,
	erc-message-english-dcc-send-offered,
	erc-message-english-dcc-send-offer): Define at top level using
	`defvar'.
	* lisp/erc/erc-netsplit.el (erc-netsplit-mode, erc-netsplit-enable):
	Don't call `erc-netsplit-install-message-catalogs'.
	(erc-netsplit-install-message-catalogs): Deprecate function.
	(erc-message-english-netsplit, erc-message-english-netjoin,
	erc-message-english-netjoin-done, erc-message-english-netsplit-none,
	erc-message-english-netsplit-wholeft): Define at top level using
	`defvar'.
	* lisp/erc/erc-notify.el (erc-notify-install-message-catalogs):
	Deprecate, and rename all format templates with hyphens instead of
	underscores.
	(erc-notify-timer, erc-notify-JOIN, erc-notify-NICK, erc-notify-QUIT):
	Use hyphenated template names.
	(erc-cmd-NOTIFY): Use hyphenated template names.  Load the module when
	necessary and emit a warning.  Otherwise, people who discover this
	autoloaded command without being aware of the module's existence may
	think it's "broken".
	(pcomplete/erc-mode/NOTIFY): Replace top-level autoload with `require'
	in function body.  Include `erc-notify-list' in list of completions,
	which makes removal easier if you don't share any channels with a
	person, and they're not in `erc-server-users'.  A better long-term
	solution might be to WHOIS folks we're unsure about when they're
	listed in a 303.
	(erc-message-english-notify_current, erc-message-english-notify_list,
	erc-message-english-notify_on, erc-message-english-notify_off): Define
	at top level using `defvar'.  Replace nonstandard underscores with
	hyphens.  Alias obsolete names.
	* lisp/erc/erc-page.el (erc-message-english-CTCP-PAGE): Define at top
	level using `defvar'.
	* lisp/erc/erc-sasl.el (erc-message-english-s902,
	erc-message-english-s904, erc-message-english-s905,
	erc-message-english-s906, erc-message-english-s907,
	erc-message-english-s908): Define at top level using `defvar'.
	* lisp/erc/erc-sound.el (erc-message-english-CTCP-SOUND): Define using
	`defvar'.
	* lisp/erc/erc.el (erc--make-message-variable-name): New function to
	replace `erc-make-message-variable-name' internally, where most uses
	previously checked whether the returned variable was bound.  This
	helper now does that conditionally, when asked.
	(erc-make-message-variable-name): Defer to internal variant,
	`erc--make-message-variable-name'.
	(erc-define-catalog-entry, erc-define-catalog): Deprecate.
	(erc-retrieve-catalog-entry): Refactor to favor
	`default-toplevel-value' of `erc-current-message-catalog' before
	falling back to `english'.  Not doing this was arguably a bug.
	(erc-message-english-bad-ping-response,
	erc-message-english-bad-syntax, erc-message-english-incorrect-args,
	erc-message-english-cannot-find-file,
	erc-message-english-cannot-read-file, erc-message-english-connect,
	erc-message-english-country, erc-message-english-country-unknown,
	erc-message-english-ctcp-empty, erc-message-english-ctcp-request,
	erc-message-english-ctcp-request-to,
	erc-message-english-ctcp-too-many, erc-message-english-flood-ctcp-off,
	erc-message-english-flood-strict-mode,
	erc-message-english-disconnected,
	erc-message-english-disconnected-noreconnect,
	erc-message-english-reconnecting,
	erc-message-english-reconnect-canceled, erc-message-english-finished,
	erc-message-english-terminated, erc-message-english-login,
	erc-message-english-nick-in-use, erc-message-english-nick-too-long,
	erc-message-english-no-default-channel,
	erc-message-english-no-invitation, erc-message-english-no-target,
	erc-message-english-ops, erc-message-english-ops-none,
	erc-message-english-undefined-ctcp,
	erc-message-english-user-mode-redundant-add,
	erc-message-english-user-mode-redundant-drop,
	erc-message-english-variable-not-bound, erc-message-english-ACTION,
	erc-message-english-CTCP-CLIENTINFO, erc-message-english-CTCP-ECHO,
	erc-message-english-CTCP-FINGER, erc-message-english-CTCP-PING,
	erc-message-english-CTCP-TIME, erc-message-english-CTCP-UNKNOWN,
	erc-message-english-CTCP-VERSION, erc-message-english-ERROR,
	erc-message-english-INVITE, erc-message-english-JOIN,
	erc-message-english-JOIN-you, erc-message-english-KICK,
	erc-message-english-KICK-you, erc-message-english-KICK-by-you,
	erc-message-english-MODE, erc-message-english-MODE-nick,
	erc-message-english-NICK, erc-message-english-NICK-you,
	erc-message-english-PART, erc-message-english-PING,
	erc-message-english-PONG, erc-message-english-QUIT,
	erc-message-english-TOPIC, erc-message-english-WALLOPS,
	erc-message-english-s004, erc-message-english-s221,
	erc-message-english-s252, erc-message-english-s253,
	erc-message-english-s254, erc-message-english-s275,
	erc-message-english-s301, erc-message-english-s303,
	erc-message-english-s305, erc-message-english-s306,
	erc-message-english-s307, erc-message-english-s311,
	erc-message-english-s312, erc-message-english-s313,
	erc-message-english-s314, erc-message-english-s317,
	erc-message-english-s317-on-since, erc-message-english-s319,
	erc-message-english-s320, erc-message-english-s321,
	erc-message-english-s322, erc-message-english-s324,
	erc-message-english-s328, erc-message-english-s329,
	erc-message-english-s330, erc-message-english-s331,
	erc-message-english-s332, erc-message-english-s333,
	erc-message-english-s341, erc-message-english-s352,
	erc-message-english-s353, erc-message-english-s367,
	erc-message-english-s367-set-by, erc-message-english-s368,
	erc-message-english-s379, erc-message-english-s391,
	erc-message-english-s396, erc-message-english-s401,
	erc-message-english-s402, erc-message-english-s403,
	erc-message-english-s404, erc-message-english-s405,
	erc-message-english-s406, erc-message-english-s412,
	erc-message-english-s421, erc-message-english-s431,
	erc-message-english-s432, erc-message-english-s442,
	erc-message-english-s445, erc-message-english-s446,
	erc-message-english-s451, erc-message-english-s461,
	erc-message-english-s462, erc-message-english-s463,
	erc-message-english-s464, erc-message-english-s465,
	erc-message-english-s471, erc-message-english-s473,
	erc-message-english-s474, erc-message-english-s475,
	erc-message-english-s481, erc-message-english-s482,
	erc-message-english-s483, erc-message-english-s484,
	erc-message-english-s485, erc-message-english-s491,
	erc-message-english-s501, erc-message-english-s502,
	erc-message-english-s671): Define at top level using `defvar'.
	* test/lisp/erc/erc-tests.el (erc-tests--string-to-propertized-parts,
	erc-tests-pp-propertized-parts, erc--make-message-variable-name,
	erc-retrieve-catalog-entry): New tests along with utility functions
	and a convenience command for manipulating catalogs.  (Bug#67677)

2023-12-18  F. Jason Park  <jp@neverwas.me>

	Remove module from suggested lineup in ERC's manual

	* doc/misc/erc.texi (Sample Configuration): Remove `irccontrols' from
	`erc-modules' because it's already enabled by default.  Add
	`erc-scrolltobottom-all'.

2023-12-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2023-12-18  Po Lu  <luangruo@yahoo.com>

	Enable the new font scaler

	* src/sfnt.c (sfnt_curve_is_flat): Tighten threshold for flat
	curves.
	(sfnt_insert_raster_step): Rewrite loop for clarity.
	(sfnt_poly_set_steps): New function; fill small spans with a
	plain unexceptional loop rather than memset.
	(sfnt_poly_steps): Call that function.
	(sfnt_verbose, main): Adjust tests such that the scaler can be
	selected at runtime.

	* src/sfnt.h: Update prototypes.

	* src/sfntfont.c (sfntfont_get_glyph_raster)
	(syms_of_sfntfont) <sfnt_raster_glyphs_exactly>: New variable.

2023-12-17  Po Lu  <luangruo@yahoo.com>

	* src/sfnt.h (sfnt_coerce_fixed): New macro.

2023-12-17  Po Lu  <luangruo@yahoo.com>

	Introduce the rudiments of a new font rasterizer

	* src/sfnt.c (xzalloc): New function.
	(sfnt_poly_edges): Remove redundant statement.
	(sfnt_add, sfnt_sub, sfnt_mul): Move macro definitions above the
	new scaler.
	(sfnt_build_outline_fedges, sfnt_insert_raster_step)
	(sfnt_fedge_sort, sfnt_poly_edges_exact, sfnt_compute_fill)
	(sfnt_poly_steps, sfnt_raster_steps, sfnt_raster_edges_exact)
	(sfnt_raster_glyph_outline_exact): New functions, presently
	disabled.
	(sfnt_x_raster, main): Introduce new tests.

2023-12-17  Philip Kaludercic  <philipk@posteo.net>

	Add slashes to 'thing-at-point-email-regexp'

	* lisp/thingatpt.el (thing-at-point-email-regexp): Allow for
	a (thing-at-point 'email) query to match addresses with slashes, as
	used by Sourcehut.  (Bug#67600)

2023-12-17  Stefan Kangas  <stefankangas@gmail.com>

	Silence warning in print.c

	* src/print.c (print_bool_vector): Silence warning.

2023-12-17  Stefan Kangas  <stefankangas@gmail.com>

	Never send user email address in HTTP requests

	It used to be possible to customize 'url-privacy-level' so that the
	user's email address was sent along in HTTP requests.  Since
	'url-privacy-level' is also a blocklist, rather than an allowlist,
	this meant that a mere misconfiguration of Emacs risked exposing the
	user's email address.  This is a serious privacy risk, and it is thus
	better if we remove this dangerous feature altogether.

	* lisp/url/url-http.el (url-http-create-request): Never send the
	user email address.
	* lisp/url/url-vars.el (url-personal-mail-address): Make obsolete.
	* lisp/url/url-privacy.el (url-setup-privacy-info): Don't set
	above obsolete variable.
	* doc/misc/url.texi (Customization):
	* lisp/url/url-vars.el (url-privacy-level): Update documentation
	to reflect the above changes.

2023-12-16  Jared Finder  <jared@finder.org>

	Using remap for binding of log-edit-beginning-of-line.

	* lisp/vc/log-edit.el (log-edit-mode-map): Change binding.

2023-12-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'same-frame'

2023-12-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	(display-buffer): New `pop-up-frames` action alist entry

	Allow overriding the `pop-up-frames` variable from `display-buffer-alist`
	so as to provide a worthy replacement for the old `same-frame`
	parameter of `special-display-*` (bug#67249).

	* lisp/window.el (special-display-popup-frame): Declare obsolete;
	that was apparently forgotten back when `special-display-*` variables
	were declared obsolete.
	Use the new `pop-up-frames` action alist entry instead of the variable.
	(display-buffer): Document new alist entry.
	(window--pop-up-frames): New function.
	(display-buffer--maybe-pop-up-frame, display-buffer-in-previous-window)
	(display-buffer-reuse-window, display-buffer-reuse-mode-window): Use it.

	* doc/lispref/windows.texi (Choosing Window Options): Mention that
	`pop-up-frames` is also an action alist entry.
	(Buffer Display Action Alists): Add `pop-up-frames` entry.

2023-12-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/subr.el (derived-mode-p): Disable warnings for old convention

2023-12-16  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	bf4ccb0be07 ; * lisp/term.el (term--xterm-paste): Fix last change.
	0d9e2e448d9 ; * doc/lispref/functions.texi (Function Documentation): ...
	791cc5065da Fix shaping of Sinhala text
	efcbf0b5abf Add use cases of (fn) documentation facility.
	c3331cb3659 Fix pasting into terminal-mode on term.el
	5be94e2bce5 Fix opening directory trees from Filesets menu
	6b6e770a1f5 Eglot: Add ruff-lsp as an alternative Python server
	ed8a8a5ba16 Fix symbol name in Multisession Variables examples
	400ef15bdc3 js-ts-mode: Fix font-lock rules conflict
	c165247c300 Add indentation rules for bracketless statements in js-ts...
	7f1bd69cd19 Fix c-ts-mode bracketless indentation for BSD style (bug#...
	e23068cb9a1 Add missing indent rules in c-ts-mode (bug#66152)
	d2c4b926ac2 Fix treesit-default-defun-skipper (bug#66711)
	9874561f39e Fix treesit-node-field-name and friends (bug#66674)
	eace9e11226 python-ts-mode: Highlight default parameters
	23c06c7c308 Update to Org 9.6.13

2023-12-16  Visuwesh  <visuweshm@gmail.com>

	Fix 'shr-put-image' with nil value for ALT

	* lisp/net/shr.el (shr-put-image): Account for nil value for ALT.
	(Bug#67764)

2023-12-16  Visuwesh  <visuweshm@gmail.com>

	Offer to show diff against auto-save in recover-file

	* lisp/files.el (recover-file): Show diff against the selected auto
	save file.  (Bug#52242)

	* doc/emacs/files.texi (Recover): Document the new feature.

	* etc/NEWS: Announce the new feature.

2023-12-16  john muhl  <jm@pub.pink>

	Fix comint-next/previous-prompt in lua-ts-mode

	* lisp/progmodes/lua-ts-mode.el (lua-ts-inferior-lua): Don't set
	'comint-use-prompt-regexp'.  (Bug#67616)

2023-12-16  nverno  <noah.v.peart@gmail.com>

	Fix: add comint hook locally in lua-ts-inferior-lua

	* lisp/progmodes/lua-ts-mode.el (lua-ts-inferior-lua): Add
	'comint-preoutput-filter-functions' hook locally.  (Bug#67616)

2023-12-16  Dmitry Gutov  <dmitry@gutov.dev>

	ruby-syntax-methods-before-regexp: Drop this whitelist

	* lisp/progmodes/ruby-mode.el (ruby-syntax-before-regexp-re):
	Match only based on keywords and operators.
	(ruby-syntax-methods-before-regexp): Delete.
	(ruby-syntax-propertize): Use the new heuristic based on spaces
	instead of checking for method names before (bug#67569).

	* test/lisp/progmodes/ruby-mode-tests.el
	(ruby-regexp-not-division-when-only-space-before):
	Use non-whitelisted method name.

	* test/lisp/progmodes/ruby-mode-resources/ruby.rb:
	Adjust two examples.

2023-12-16  Po Lu  <luangruo@yahoo.com>

	Provide for Num Lock and Scroll Lock on Android

	* java/org/gnu/emacs/EmacsWindow.java (onKeyDown, onKeyUp):
	Retain META_NUM_LOCK_ON and META_SCROLL_LOCK_ON while filtering
	meta state.

2023-12-16  Dmitry Gutov  <dmitry@gutov.dev>

	(vc-print-log-setup-buttons): Start "previous" history with specified revision

	* lisp/vc/vc-git.el (vc-git-file-name-changes-switches): Remove
	the comment above the option.  Seems unnecessary now.

	* lisp/vc/vc.el (vc-print-log-setup-buttons): Start the "previous"
	change history buffer with the specified revision, rather than
	have the sentinel jump to it.  Apparently in some cases the
	history of the old name can't be found.  In others, the log just
	shows faster.  But note the caveat described in the second new
	comment (bug#55871).

2023-12-16  Dmitry Gutov  <dmitry@gutov.dev>

	Show buttons below vc-log even when REVISION is specified

	E.g. in the vc-print-branch-log which specifies start revision.

	* lisp/vc/vc.el (vc-print-log-internal): Remove outdated comment.
	(vc-print-log-setup-buttons): Only special-case non-nil
	IS-START-REVISION when LIMIT=1.  We often do need buttons for logs
	that start with a particular revision, because those are still limited
	by vc-log-show-limit.

2023-12-15  Dmitry Gutov  <dmitry@gutov.dev>

	Support viewing VC change history across renames (Git, Hg)

	* lisp/vc/vc.el (vc-print-log-setup-buttons):
	When the log ends at a rename, add a button to jump to the
	previous names.  Use the new backend action 'file-name-changes'.

	* lisp/vc/vc-git.el (vc-git-print-log-follow): New option.
	(vc-git-file-name-changes): Implementation (bug#55871, bug#39044).
	(vc-git-print-log-follow): Update docstring.

	* lisp/vc/log-view.el (log-view-find-revision)
	(log-view-annotate-version): Pass the log's VC backend explicitly.

	* lisp/vc/vc-hg.el (vc-hg-file-name-changes):
	Add Hg implementation (bug#13004).

	* etc/NEWS: Mention the changes.

2023-12-15  Eli Zaretskii  <eliz@gnu.org>

	Support case-sensitive register names

	* lisp/register.el (register-read-with-preview): Make register
	names case-sensitive.  (Bug#66394)

2023-12-15  João Távora  <joaotavora@gmail.com>

	Eglot: use new jsonrpc-autoport-bootstrap

	* lisp/progmodes/eglot.el (eglot-lsp-server): Delete slot
	inferior-process.
	(eglot--on-shutdown): Simplify.
	(eglot--inferior-bootstrap): Delete.
	(eglot--connect): Call jsonrpc-autoport-bootstrap.

2023-12-15  João Távora  <joaotavora@gmail.com>

	Jsonrpc: add new jsonrpc-autoport-bootstrap helper

	This will help Eglot and some other extensions connect to network
	servers that are started with a call to a local program.

	* lisp/jsonrpc.el (jsonrpc--process-sentinel): Also delete inferior.
	(jsonrpc-process-connection): Add -autoport-inferior slot.
	(initialize-instance jsonrpc-process-connection): Check
	process-creating function arity.  Use jsonrpc-forwarding-buffer
	(jsonrpc-autoport-bootstrap): New helper.
	(Version): Bump to 1.0.20.

2023-12-14  João Távora  <joaotavora@gmail.com>

	Eglot: beware activation in fundamental-mode

	In the specific situation of visiting a buffer via M-. with
	eglot-extend-to-xref set to t, it was found that buffer was first
	visited in fundamental mode, running after-change-major-mode-hook, and
	then again in the proper major mode for the file.  The call to
	eglot-current-server of the first visit returned non-nil which cause
	two didOpen notifications to be issued for the same file.

	Furthermore, in the first call, eglot--languageId to returned nil,
	prompting an error from servers such as rust-analyzer.

	See also: https://github.com/joaotavora/eglot/discussions/1330

	* lisp/progmodes/eglot.el (eglot-current-server): Watch out for
	fundamental-mode.

2023-12-14  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2023-12-14  Po Lu  <luangruo@yahoo.com>

	Respect Language & Input preferences under Android

	* doc/emacs/android.texi (Android Environment):

	* doc/emacs/cmdargs.texi (General Variables): Mention the manner
	in which the default language environment is selected on
	Android.

	* lisp/startup.el (normal-top-level): If android and
	initial-window-system, call android-locale-for-system-language
	for the default locale name.

	* lisp/term/android-win.el (android-locale-for-system-language):
	New function.

	* src/androidfns.c (syms_of_androidfns_for_pdumper): New
	function.
	(syms_of_androidfns) <Vandroid_os_language>: New variable.
	Call syms_of_androidfns_for_pdumper both now and after
	loading the dump image.

2023-12-14  João Távora  <joaotavora@gmail.com>

	Jsonrpc: support some JSONesque non-JSONRPC protocols, like DAP

	* lisp/jsonrpc.el (jsonrpc-convert-to-endpoint)
	(jsonrpc-convert-from-endpoint): New generics.
	(jsonrpc-connection-send): Call jsonrpc-convert-to-endpoint.
	Rework logging.
	(jsonrpc-connection-receive): Call jsonrpc-convert-from-endpoint.
	Rework logging. jsonrpc--reply with METHOD.
	(jsonrpc--log-event): Take subtype.
	(Version): Bump to 1.0.19

	* test/lisp/progmodes/eglot-tests.el (eglot--sniffing): Adapt
	to new protocol of jsonrpc--log-event.

	* doc/lispref/text.texi (JSONRPC Overview): Rework.

2023-12-14  João Távora  <joaotavora@gmail.com>

	Jsonrpc: rework fix for bug#60088

	Try to decouple receiving text and processing messages in the event
	loop.  This should allow for requests within requests in both Eglot
	and the Dape extension (https://github.com/svaante/dape).

	jsonrpc-connection-receive is now called from timers after the process
	filter finished.  Because of this, a detail is that any serialization
	errors are now thrown from timers instead of the synchronous process
	filter, and there's no good way to test this in ert, so a test has
	been deleted.

	* lisp/jsonrpc.el (jsonrpc--process-filter): Rework.

	* test/lisp/jsonrpc-tests.el (json-el-cant-serialize-this): Delete test.

2023-12-14  João Távora  <joaotavora@gmail.com>

	Jsonrpc: better initforms in jsonrpc-connection

	* lisp/jsonrpc.el (jsonrpc-connection): Better initforms

2023-12-14  João Távora  <joaotavora@gmail.com>

	Jsonrpc: allow method identifiers to be simply strings

	* lisp/jsonrpc.el (jsonrpc-connection-send): Support string methods.

2023-12-13  Michael Albinus  <michael.albinus@gmx.de>

	Improve tramp-compat-connection-local-p

	* lisp/net/tramp-compat.el (tramp-compat-connection-local-p):
	Make it compatible with Emacs 27.

2023-12-13  Andrea Corallo  <acorallo@gnu.org>

	* configure.ac: Fix '--without-all' if libgccjit installed (bug#67799)

2023-12-12  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Provide option to forward Gnus messages with all (most) headers

	Bug#67520

	* lisp/gnus/gnus-msg.el (gnus-summary-mail-forward): Accept symbolic
	prefix to let-bind message-forward-included-headers to nil, which will
	include most original message headers in the forwarded copy.
	(gnus-summary-post-forward): Corresponding arglist update.

2023-12-12  Michael Albinus  <michael.albinus@gmx.de>

	New macro connection-local-p

	* doc/lispref/variables.texi (Applying Connection Local Variables):
	Add macro 'connection-local-p'.

	* etc/NEWS: Add macro `connection-local-p'.

	* lisp/files-x.el (connection-local-p): New macro.
	(connection-local-value): Add debug declaration.

	* lisp/net/tramp-compat.el (tramp-compat-connection-local-p): New macro.

	* lisp/net/tramp-crypt.el (tramp-crypt-cleanup-connection):
	Bind `tramp-crypt-enabled'.

	* test/lisp/files-x-tests.el (files-x-test-connection-local-value):
	* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes)
	(tramp-test35-remote-path): Adapt tests.

2023-12-11  Juri Linkov  <juri@linkov.net>

	Fix typo in commit 3c093148958d56e0ed8e12a8e00ced1ef052259a

	* lisp/minibuffer.el (minibuffer-completion-help):
	Set t to LOCAL arg of add-hook for after-change-functions.

2023-12-11  Po Lu  <luangruo@yahoo.com>

	Introduce menus beneath new chapters in the Transient menu

	* doc/misc/transient.texi (Usage)
	(Modifying Existing Transients): Insert menus from which Texinfo
	4.13 can infer Prev and Next nodes.

2023-12-11  Po Lu  <luangruo@yahoo.com>

	Correct implementation of UTP

	* src/sfnt.c (sfnt_interpret_utp): Derive which flags to reset
	from the freedom vector.

2023-12-11  Dmitry Gutov  <dmitry@gutov.dev>

	project-any-command: Use 'project-aware'

	* lisp/progmodes/project.el (project-any-command): Change the
	symbol it's looking for to 'project-aware'.  Seems to convey the
	semantics best.

2023-12-10  Stefan Kangas  <stefankangas@gmail.com>

	Mark `;#@` as :safe for asm-comment-char

	* lisp/progmodes/asm-mode.el (asm--safe-comment-char-p): New function
	that returns true for characters #, @, and ;.
	(asm-comment-char): Use new function as :safe predicate.

2023-12-10  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	2773cf9e013 ; Fix typos
	020aff95fa3 ; Fix typos in ChangeLog files
	5e03a621efc ; * lisp/progmodes/c-ts-mode.el (c-ts-mode--else-heuristi...
	f0734e1c0d1 Fix c-ts-mode indent heuristic (bug#67417)
	08fc6bace20 Fix c-ts-mode indentation (bug#67357)
	71bc2815ccd Add font-locking for hash-bang lines in typescript-ts-mode.
	db8347c8c87 Add font-locking for hash-bang lines in js-ts-mode
	91f2ade57bb ruby-mode: Better detect regexp vs division (bug#67569)

2023-12-10  Po Lu  <luangruo@yahoo.com>

	* lisp/files-x.el (connection-local-value): Fix Dired crash.

2023-12-10  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2023-12-06 20:17:45 UTC.

2023-12-10  Michael Albinus  <michael.albinus@gmx.de>

	dired-listing-switches handles connection-local values if exist

	* doc/emacs/dired.texi (Dired Enter):
	* doc/misc/tramp.texi (Frequently Asked Questions):
	* etc/NEWS: 'dired-listing-switches' handles connection-local
	values if exist.

	* doc/lispref/variables.texi (Applying Connection Local Variables):
	Fix description of connection-local-default-application.

	* lisp/dired.el (dired-listing-switches): Adapt docstring.
	(dired-internal-noselect, dired-mode):
	* lisp/dired-x.el (dired-virtual):
	* lisp/files.el (recover-file, recover-session):
	* lisp/net/ange-ftp.el (ange-ftp-get-files): Use connection-local
	value of `dired-listing-switches'.

	* lisp/files-x.el (connection-local-value): Adapt docstring.

	* lisp/man.el (Man-shell-file-name): Use `connection-local-value'.

2023-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	(dired): Remove `ls-lisp` advice

	`ls-lisp` used to advise `dired` because `dired-insert-directory`
	blindly used `insert-directory-program` (together with a shell)
	in order to implement the "directory wildcard" expansion.

	* lisp/dired.el (dired-insert-directory): Make the "directory wildcard"
	code obey `files--use-insert-directory-program-p`, using
	`file-expand-wildcards`.

	* lisp/ls-lisp.el (ls-lisp--dired, ls-lisp-unload-function): Delete funs.
	(dired): Don't advise any more.

2023-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	(insert-directory): Remove `ls-lisp` advice

	Rather than have `ls-lisp` advise `insert-directory`, make
	`insert-directory` call `ls-lisp.el` code directly when needed.

	* lisp/files.el (files--use-insert-directory-program-p): New function.
	(insert-directory): Use it to delegate to `ls-lisp--insert-directory`
	when applicable.

	* lisp/ls-lisp.el (ls-lisp--insert-directory): Remove `orig-fun` arg.
	Don't test `ls-lisp-use-insert-directory-program` or check for a magic
	file name handler; it is now the caller's responsibility.
	(insert-directory): Don't add advice any more.

	* lisp/dired.el (ls-lisp-use-insert-directory-program): Don't declare it.
	(dired-insert-directory): Use `files--use-insert-directory-program-p` instead.
	(dired-use-ls-dired): Adjust docstring to refer to
	`insert-directory-program` rather than "ls".

2023-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	(dired-insert-directory): Obey `file-list` and `wildcard`

	Commit 6f6639d6ed6c's support for wildcards in directories failed
	to obey `file-list` and `wildcard` arguments.  Fix it.

	* lisp/dired.el (dired-insert-directory): Expand directory wildcards
	only if `file-list` is nil and `wildcard` is non-nil.
	Also, refer back to `dir-wildcard` instead of recomputing it.
	(dired-readin-insert): Pass a non-nil `wildcard` when wildcard
	expansion might be needed to preserve former behavior.

2023-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	(file-expand-wildcards): Handle patterns ending in "/"

	The bug was encountered via the ls-lisp advice on Dired but
	it actually affects all uses of `file-expand-wildcards`,
	so better fix it there.

	* lisp/files.el (file-expand-wildcards): Fix bug#60819.
	* lisp/ls-lisp.el (ls-lisp--dired): Undo commit b365a7cc32e2.
	* test/lisp/files-tests.el (files-tests--expand-wildcards): New test.

2023-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/files.el (file-expand-wildcards): Fix sorting of subdirs

	E.g. (file-expand-wildcards "/u*/*m*")
	returned ("/usr/games" "/u/dummy" "/u/monnier" "/u/omnibook-disk")
	instead of ("/u/dummy" "/u/monnier" "/u/omnibook-disk" "/usr/games").

2023-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	Tweak doc of `analyze-text-conversion` vs `post-self-insert-hook`

	* lisp/simple.el (analyze-text-conversion): Fix typo.

	* lisp/progmodes/cc-mode.el (c-initialize-cc-mode): Add comment about
	`post-text-conversion-hook`.

2023-12-09  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix desktop-save for dired buffers (bug#66697)

	* lisp/dired.el (dired-desktop-save-p): Move all logic here.  Carry on
	when 'desktop-files-not-to-save' is nil.
	(dired-desktop-buffer-misc-data): Use it.

2023-12-09  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	0f361cc985d ; Minor copyedits in description of ':box' face property
	46fe7a17f53 Fix dragging mode line on text terminals with a mouse (bu...
	12daf386f37 ; * doc/lispref/processes.texi (Network): Fix wording and...
	037d858dc1a (rust-ts-mode): Set electric-indent-chars
	dc9b733ab88 js-ts-mode: Highlight function parameters inside destruct...
	4a72f13bdfb js-ts-mode: Highlight property shorthands in assignments
	83ed9018ede (js--treesit-font-lock-settings): Highlight parameters in...
	ad0f87bb4c3 (js--treesit-font-lock-settings): Remove some duplicates
	71c5f3694fd ; Another fix of doc string of 'message-mail-user-agent' ...
	04a39353bae ; * lisp/gnus/message.el (message-mail-user-agent): Doc f...
	82ddcf37ec6 ; * doc/lispref/files.texi (Changing Files): Fix last cha...
	89068516b3e Don't claim to signal an error when deleting a nonexistin...
	4fd254e1830 * lisp/indent.el (indent-rigidly): Improve prompt (bug#67...
	5f923ff1a6a ; Fix typos
	a1f88963f5d rust-ts-mode--comment-docstring: Handle block doc comments
	a547b0e2e83 rust-ts-mode--comment-docstring: Fix/improve the previous...

2023-12-09  Vladimir Kazanov  <vekazanov@gmail.com>

	Document ert-font-lock

	* doc/misc/ert.texi: Expand the manual.

	* etc/NEWS: Mention ert-font-lock.

2023-12-09  Michael Albinus  <michael.albinus@gmx.de>

	New macro connection-local-value

	* doc/lispref/variables.texi (Applying Connection Local Variables):
	Add macro 'connection-local-value'.

	* etc/NEWS: Add macro 'connection-local-value'.

	* lisp/files-x.el (connection-local-value): New macro.
	(path-separator, null-device): Use it.

	* test/lisp/files-x-tests.el
	(files-x-test-connection-local-value): New test.

2023-12-09  Philip Kaludercic  <philipk@posteo.net>

	Remove old VC packages from 'package-alist' after installing

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Wait for all
	system operations to have been completed, before proceeding to remove
	old package descriptors from 'package-alist'.  This avoids losing a
	package if an error occurs during upgrades.

2023-12-09  john muhl  <jm@pub.pink>

	Add font-lock tests for lua-ts-mode (bug#67605)

	* test/lisp/progmodes/lua-ts-mode-tests.el (lua-ts-test-font-lock):
	Add ert-font-lock tests.
	(lua-ts-mode-test-indentation):
	(lua-ts-test-indentation):
	(lua-ts-mode-test-movement):
	(lua-ts-test-movement): Rename for consistency.
	* test/lisp/progmodes/lua-ts-mode-resources/font-lock.lua: New
	file.

2023-12-09  Po Lu  <luangruo@yahoo.com>

	Correct phantom point generation and MDAP

	* src/sfnt.c (sfnt_interpret_mdrp): Cease applying cvt
	cut in, as this is contrary to the specification.
	(sfnt_interpret_simple_glyph): Correct typo.
	(main): Revise tests.

2023-12-08  Dmitry Gutov  <dmitry@gutov.dev>

	project-any-command: Change the method for passing project root

	* lisp/progmodes/project.el (project-any-command): Change the
	check which decides whether 'project-current-directory-override'
	should be used.  Instead of looking in project-prefix-map, see
	whether the command's name starts with 'project-', or the symbol
	has the property 'project-command' (bug#67171).

2023-12-08  João Távora  <joaotavora@gmail.com>

	Eglot: unbreak <host>:<port> spec in C-u M-x eglot (bug#67682)

	* lisp/progmodes/eglot.el (eglot--guess-contact): Fix.

2023-12-08  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Ensure CID filenames are unique when browsing Gnus article HTML

	Bug#67002

	* lisp/gnus/gnus-art.el (gnus-article-browse-html-save-cid-content):
	It's possible that multiple CID parts will have the same filename,
	leading to temporary files clobbering one another during browsing.
	This ensures that the temporary filenames are unique.

2023-12-08  Thierry Volpiatto  <thievol@posteo.net>

	Add more options to register-use-preview

	This allow showing a basic preview buffer or no preview buffer at all.

	* lisp/register.el (register-use-preview): Use choice with three
	  options.
	(register-read-with-preview): Use a basic buffer without navigation,
	  highlighting etc... when register-use-preview is nil, and no buffer
	  at all when set to 'never.

2023-12-08  Thierry Volpiatto  <thievol@posteo.net>

	Allow inserting registers in minibuffer (bug#67702)

	* lisp/register.el (register-read-with-preview): Bind
	`enable-recursive-minibuffers`.

2023-12-08  Thierry Volpiatto  <thievol@posteo.net>

	Exit with no confirmation (RET) when register-use-preview

	is non nil and .

	This is done by exiting minibuffer when selected register is empty or
	when just jumping or inserting.

	* lisp/register.el (register-read-with-preview): Do it.

2023-12-08  Po Lu  <luangruo@yahoo.com>

	Display glyphs whose first contours commence at origin

	* src/sfnt.c (sfnt_build_append): Don't disregard redundant
	motion if outline is empty.  Problem encountered in the "M"
	glyph within Source Code Pro VF Italic.

2023-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/loadup.el: Check advice after `rmc.el`; turn error into warning

	* lisp/mail/emacsbug.el (report-emacs-bug): Insert empty X-Debbugs-Cc

2023-12-07  Michael Albinus  <michael.albinus@gmx.de>

	Tramp cleanup

	* doc/misc/tramp.texi (Remote processes): Adapt index.

	* lisp/net/tramp.el (tramp-skeleton-directory-files)
	(tramp-skeleton-make-symbolic-link):
	* lisp/net/tramp-cache.el (with-tramp-saved-file-property)
	(with-tramp-saved-file-properties)
	(with-tramp-saved-connection-property)
	(with-tramp-saved-connection-properties): Use `setf' but `setq' in macro.

	* lisp/net/tramp-compat.el (tramp-compat-funcall): Declare debug.

	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-p): Exclude lock files.
	(tramp-crypt-file-name-handler-alist): Use `identity' for
	`abbreviate-file-name'.
	(tramp-crypt-add-directory, tramp-crypt-remove-directory):
	Adapt docstrings.
	(tramp-crypt-cleanup-connection): New defun.  Add it to
	`tramp-cleanup-connection-hook'

	* lisp/net/tramp-sh.el (tramp-sh-extra-args): Extend regexp.

2023-12-07  Liu Hui  <liuhui1610@gmail.com>

	Add option eshell-history-append

	* lisp/eshell/em-hist.el (eshell-history-append): New option.
	(eshell--save-history): New function.
	(eshell-hist-initialize):
	(eshell-save-some-history): Replace eshell-write-history with
	eshell--save-history, which respects the new option.
	* doc/misc/eshell.texi (History): Document the change.
	* etc/NEWS: Announce the change.  (Bug#66700)

2023-12-07  Po Lu  <luangruo@yahoo.com>

	Set a default locale on Android

	* doc/emacs/android.texi (Android Environment): Revise for
	change.

	* src/android.c (initEmacs): Set LANG to either en_US.utf8 or C,
	subject to whether the system is newer than Android
	5.0 (inclusive).

2023-12-07  Po Lu  <luangruo@yahoo.com>

	Prevent closing Emacs frames upon locale changes

	* java/AndroidManifest.xml.in: Express that Emacs can respond
	to locale and fontScale changes.

2023-12-06  Yuan Fu  <casouri@gmail.com>

	Tweak plus and minus svg icons

	Shrink them a tiny bit so they look the same size as cross.

	* etc/images/symbols/minus_16.svg:
	* etc/images/symbols/plus_16.svg: Shrink a bit.

2023-12-06  Juri Linkov  <juri@linkov.net>

	* lisp/dired-aux.el (dired-do-open): New command (bug#18132).

	* lisp/dired.el (dired-context-menu): Bind 'dired-do-open' to "Open".

	* lisp/dired-aux.el (shell-command-guess-xdg): Use 'shell-quote-argument'.

2023-12-06  Po Lu  <luangruo@yahoo.com>

	Cease preloading touch-screen.el outside X and Android

	* lisp/calc/calc.el (touch-screen-display-keyboard):

	* lisp/minibuffer.el (clear-minibuffer-message):

	* lisp/term.el (touch-screen-display-keyboard): Declare
	touch-screen-display-keyboard before binding or setting it.

	* lisp/loadup.el: Don't autoload touch-screen.el outside X and
	Android.

	* lisp/touch-screen.el: Autoload functions called from commands
	responding to touch screen events.

2023-12-05  João Távora  <joaotavora@gmail.com>

	ElDoc: make eldoc-display-in-echo-are useful from M-x eldoc

	M-x eldoc is ElDoc's interactive entry point for on-demand
	documentation for users that don't want the behind-the-scenes idle
	timer behavior.

	However, eldoc-display-in-echo-area, a member of
	eldoc-display-functions, refused to do anything because it thought it
	didn't have permission to use the echo area, which isn't true
	in interactive use cases.  Fix that.

	See also: https://github.com/joaotavora/eglot/discussions/1328

	* lisp/emacs-lisp/eldoc.el (eldoc-display-in-echo-area): Use
	INTERACTIVE argument.  Rework comments.
	(Version): Bump to 1.15.0

2023-12-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/package.el (package-activate-all): Fix second-order warning

2023-12-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	(package-activate-all): Be more robust when quickstart fails

	Quickstart can fail in all kinds of ways, for example if a package
	was removed without updating the quickstart file.

	* lisp/emacs-lisp/package.el (package-activate-all): Revert to the slow
	path if the quickstart signals an error.
	(package--activate-all): Fix compilation warning without an autoload.

2023-12-05  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.5.2

2023-12-04  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Update handling of advices during preload

	* lisp/emacs-lisp/comp-common.el
	(native-comp-never-optimize-functions): Remove macroexpand and
	rename-buffer from default value.
	* lisp/emacs-lisp/comp.el (comp-call-optim-form-call): Document call
	optimization for advised primitives.
	* lisp/emacs-lisp/nadvice.el (advice-add): Remove references to TODOs
	that were completed already earlier.
	* lisp/loadup.el: Disallow advices during preload.  (Bug#67005)

2023-12-04  Andrea Corallo  <acorallo@gnu.org>

	comp: Fix mvar dependency chain (bug#67239)

	* lisp/emacs-lisp/comp.el (comp-add-cond-cstrs): Emit assume with
	the original mvar as explicit rhs.
	(comp-fwprop-insn): Add note.
	* test/src/comp-tests.el (67239-1): Add new test.
	* test/src/comp-resources/comp-test-funcs.el (comp-test-time)
	(comp-test-67239-00-f, comp-test-67239-0-f, comp-test-67239-1-f):
	Define.

2023-12-04  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp.el (comp--native-compile): Better log.

2023-12-04  Andrea Corallo  <acorallo@gnu.org>

	comp: Rename some functions

	* lisp/emacs-lisp/comp.el (comp--known-predicate-p)
	(comp--pred-to-cstr, comp-edge, comp--edge-make)
	(comp--block-preds, comp--gen-counter, comp-func)
	(comp--equality-fun-p, comp--arithm-cmp-fun-p, comp--set-op-p)
	(comp--assign-op-p, comp--call-op-p, comp--branch-op-p)
	(comp--limple-insn-call-p, comp--type-hint-p)
	(comp--func-unique-in-cu-p, comp--symbol-func-to-fun)
	(comp--function-pure-p, comp--alloc-class-to-container)
	(comp--add-const-to-relocs, comp--prettyformat-insn)
	(comp--log-func, comp--log-edges, comp-emit-setimm)
	(comp-emit-lambda-for-top-level, comp-add-cond-cstrs)
	(comp-collect-calls, comp-compute-dominator-tree)
	(comp-function-foldable-p, comp-function-call-maybe-fold)
	(comp-func-in-unit, comp-call-optim-form-call)
	(comp-dead-assignments-func, comp-tco)
	(comp-remove-type-hints-func, comp-remove-type-hints)
	(comp-compute-function-type, comp-finalize-relocs)
	(comp-compile-ctxt-to-file): Rename and update.

2023-12-04  Eli Zaretskii  <eliz@gnu.org>

	Avoid infloop with wide images

	* src/xdisp.c (produce_image_glyph): Avoid inflooping under
	visual-line-mode when wide images are displayed.  (Bug#67533)

2023-12-03  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp-run.el (bytecomp): Require it (bug#67590)

2023-12-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/macroexp.el (macroexp-parse-body): Fix bug#67568

	This fixes a regression introduced in commit f616edb4ccce.

2023-12-03  Spencer Baugh  <sbaugh@catern.com>

	Add historical option to completions-sort

	Support sorting candidates in *Completions* by the order they show up
	in the minibuffer history.

	Also add minibuffer-sort-alphabetically and
	minibuffer-sort-by-history, which are usable for both completions-sort
	and display-sort-function.

	* lisp/minibuffer.el (completions-sort): Document 'historical option.
	(minibuffer-completion-help): Support 'historical option.
	(minibuffer-sort-alphabetically)
	(minibuffer-completion-base, minibuffer-sort-by-history): Add.
	* etc/NEWS: Announce it.

2023-12-03  Spencer Baugh  <sbaugh@catern.com>

	Deselect the selected completion candidate when typing

	minibuffer-choose-completion-or-exit submits the selected completion
	candidate, if any, ignoring the contents of the minibuffer.  But a
	user might select a completion candidate and then want to type
	something else in the minibuffer and submit what they typed.

	Now typing will automatically deselect the selected completion
	candidate so that minibuffer-choose-completion-or-exit will not choose
	it.

	minibuffer-choose-completion has the same behavior as before, and is
	not affected by the deselection.

	* lisp/minibuffer.el (completion-auto-deselect, completions--deselect)
	(completions--after-change): Add.
	(minibuffer-completion-help): Add completions--after-change hook.
	(minibuffer-next-completion): Bind completion-auto-deselect to nil to
	avoid immediately deselecting the completion.
	(minibuffer-choose-completion-or-exit): Bind
	choose-completion-deselect-if-after so deselection takes effect.
	(display-completion-list): Guarantee a newline at the beginning of
	*Completions* to avoid ambiguity about candidate selection.
	* lisp/simple.el (choose-completion-deselect-if-after): Add.
	(choose-completion): Check choose-completion-deselect-if-after.
	* etc/NEWS: Announce.

2023-12-03  Eli Zaretskii  <eliz@gnu.org>

	Improve 'window-text-pixel-size' when buffer includes images

	* src/xdisp.c (window_text_pixel_size): Fix computation of Y when
	IGNORE_LINE_AT_END is non-nil and there's a 'display' property at
	TO.  Improve movement to beginning of screen line at start.  Fix
	computation of Y when lines are truncated and a line begins with a
	'display' property at TO.
	(produce_image_glyph): Don't crop image glyph when word-wrap is in
	effect.  (Bug#67533)

2023-12-03  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Fix to "Simplify gnus-group-search-forward"

	This updates commit 7304cc8a9ca8a7d19baaa24f0a72c7ad9a6a9716.

2023-12-03  Vladimir Kazanov  <vekazanov@gmail.com>

	Add ert-font-lock

	Add ert-font-lock as well as unit tests and testing resources.
	* lisp/emacs-lisp/ert-font-lock.el: New library.
	* test/lisp/emacs-lisp/ert-font-lock-resources/broken.js:
	* test/lisp/emacs-lisp/ert-font-lock-resources/correct.js:
	* test/lisp/emacs-lisp/ert-font-lock-tests.el: Unit tests.
	(Bug#67460)

2023-12-02  Eli Zaretskii  <eliz@gnu.org>

	Revert "Ensure that directory is expanded in package-vc-checkout"

	This reverts commit bf0b0c9c73d4793beb11e6125496d0e72d4dd67a.
	It is only needed in Emacs 29.

2023-12-02  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	5f882f4ee97 ; Fix doc string punctuation in ruby-ts-mode.el.
	546a68925c9 Fix 'Info-goto-node-web' when NODE is given in various forms
	7ff943044e9 Fix setting cursor when the window's op line has 'line-pr...
	7f0bef47ddd Drop extra parenthesis in example code in Emacs Lisp Intr...
	fbaf113bf38 rust-ts-mode: appropriately fontify doc strings
	bd62bdbc680 Fix example code in Emacs Lisp Introduction manual
	c7e459132a9 Fix example in Emacs Lisp Intro manual
	a6e9c26c8f4 ; * doc/emacs/files.texi (Save Commands): Fix last change.
	f6a06ed6c5d Elisp manual: Mention 'write-region' for saving the buffer
	4774a3abb4b Document, that PROCESS of signal-process can be a string
	ab126284081 Fix typescript-ts-mode indentation for switch statements

2023-12-02  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	cd477bf07d8 Fix behavior of 'split-root-window-*' with 'C-u'
	2e5d47f578a ; * doc/lispintro/emacs-lisp-intro.texi (copy-to-buffer):...
	c46700deb0a Add more text to clarify the behavior of 'with-current-bu...
	687c416ce9b Fix example in Emacs user manual
	835902179cd ; Fix recent change in 'c-ts-mode'
	169a5ff7524 ; Fix typo in Gnus manual (bug#67469).
	30841c71a5d Mention Titankey in Tramp, which has passed the tests
	dab7cc241f4 Fix c-ts-mode indentation after if/else (bug#67417)
	f8d9dc26c78 Fix indentation for else clause in c-ts-mode (bug#67417)
	bf0b0c9c73d Ensure that directory is expanded in package-vc-checkout
	e551dd72f79 * etc/PROBLEMS: Add entry about pinentry with gpgsm.  (Bu...

2023-12-02  john muhl  <jm@pub.pink>

	Improve font-locking in lua-ts-mode (bug#67554)

	* lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Move property
	highlighting to level 4.
	(lua-ts--keywords): Remove `true', `false' and `nil' from
	keywords.
	(lua-ts--font-lock-settings): Highlight assignments, functions
	and labels in more places. Distinguish comment delimiters.
	(lua-ts--comment-font-lock): New function.

2023-12-02  Eshel Yaron  <me@eshelyaron.com>

	Facilitate using Completion Preview with the mouse (bug#67479)

	Allow users to accept the completion suggestion by clicking on it, and
	to cycle between completion suggestions by scrolling (with a mouse
	wheel or a trackpad) over the preview.

	Also display a message by default when cycling to inform the user
	about the index of the current suggestion out of the available total.

	* lisp/completion-preview.el (completion-preview-highlight): New face.
	(completion-preview-message-format): New user option.
	(completion-preview--mouse-map): New keymap.
	(completion-preview--try-table, completion-preview--show)
	(completion-preview-next-candidate): Apply 'keymap' and 'mouse-face'
	properties to completion preview string.
	(completion-preview--internal-commands): Add 'mwheel-scroll'.  This
	prevents incidental scrolls outside of the preview from dismissing the
	preview when you actually want to cycle it.
	(completion-preview--active-p): New function.  Use it as a
	'completion-predicate' symbol property for commands that should only
	be used when the preview is shown to otherwise exclude these commands
	from M-x completion candidates.

2023-12-02  Thierry Volpiatto  <thievol@posteo.net>

	Merge branch 'register_preview'

2023-12-02  Thierry Volpiatto  <thievol@posteo.net>

	Delete register-tests.el now no more needed

	* register-tests.el: Deleted file.

2023-12-02  Thierry Volpiatto  <thievol@posteo.net>

	Update register manual

	doc/emacs/regs.texi: Do it.

2023-12-02  Thierry Volpiatto  <thievol@posteo.net>

	Fix register-preview-default

	We need to print the string representation (one char) of an eventual
	key description e.g. "^X" instead of "C-x".
	However the key description is still displayed in a display property.

	* lisp/register.el (register-preview-default): Use `string' to print register.

2023-12-01  Michael Albinus  <michael.albinus@gmx.de>

	* test/lisp/net/tramp-tests.el (tramp-test31-signal-process): Extend.

2023-12-01  Eli Zaretskii  <eliz@gnu.org>

	Fix mode-line-inactive face

	* src/xfaces.c (Finternal_set_lisp_face_attribute): Fix validation
	of the :style attribute of :box.  Previously, nil for :style was not
	accepted, which causes 'mode-line-inactive' face to be rejected.
	(Bug#67567)

2023-12-01  Juri Linkov  <juri@linkov.net>

	* lisp/simple.el (minibuffer-default-add-shell-commands): Require 'dired-aux'.

	This is necessary for 'shell-command-guess' after removing autoload cookie
	since declare-function doesn't autoload it.

2023-11-30  Juri Linkov  <juri@linkov.net>

	* lisp/simple.el: Add declare-function for shell-command-guess.

	* lisp/dired-aux.el (shell-command-guess): Remove unneeded autoload cookie.

2023-11-30  Juri Linkov  <juri@linkov.net>

	* lisp/dired-aux.el (shell-command-guess-open): New defcustom (bug#18132).

	(shell-command-guess-open): New function.
	(shell-command-guess-functions): Add 'shell-command-guess-open' to choice.

2023-11-30  Eli Zaretskii  <eliz@gnu.org>

	Fix validation of :box face attribute

	* src/xfaces.c (Finternal_set_lisp_face_attribute): Fix the logic
	of validating the :box attribute.  The previous code would always
	allow invalid attributes of :box as long as the invalid attribute
	was the last in the list.  (Bug#67404)

2023-11-30  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-signal-process): PROCESS can also be a string.

	* test/lisp/net/tramp-tests.el (tramp-test31-signal-process): Extend.

2023-11-30  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-local-host-regexp): Extend.

2023-11-30  Mattias Engdegård  <mattiase@acm.org>

	Move malformed-function warning from byte-opt to cconv (bug#67483)

	We shouldn't be warning inside the optimizer in the first place.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form):
	Remove byte-compile-form-stack manipulation.
	(byte-optimize-form-code-walker): Move malformed function warning
	from here...
	* lisp/emacs-lisp/cconv.el: ...to here.

2023-11-30  Thierry Volpiatto  <thievol@posteo.net>

	Make register-preview-delay obsolete

	* etc/NEWS: Update.
	* lisp/register.el (register-preview-delay): Make it obsolete.

2023-11-29  Ulrich Müller  <ulm@gentoo.org>

	Update Calc units table

	* lisp/calc/calc-units.el (math-standard-units): Update to 2018
	CODATA adjustment. Use exact value for V0. Update some spellings,
	e.g. "Planck constant" instead of "Planck's constant".

2023-11-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/eieio-core.el (eieio-set-defaults): Silence errors

	See bug#66938

2023-11-29  Thierry Volpiatto  <thievol@posteo.net>

	Improve register-preview (Fix bug#66394)

	A minibuffer is used now instead of read-key.
	Registers in preview buffer are now filtered according to type of
	registers the current command requires.
	Navigation with C-n/p or up/down is now provided and update
	minibuffer.
	Current register is highlighted in preview buffer.

	* lisp/register.el: (register-preview-default-keys)
	(register-use-preview): New user variables.
	(register-preview-info): New structure to store various info for
	 preview.
	(register-command-info): New generic.
	(register-preview-forward-line): New, provide navigation in preview
	buffer.
	(register-preview-next, register-preview-previous): New, navigation.
	(register-type): New, returns register type.
	(register--type): Generic fn, new, returns register type according
	to value.
	(register-of-type-alist): New, filter register-alist according to
	type.
	(register-preview): Signature changed, use TYPES now.
	(register-preview-get-defaults): New generic, compute defaults
	according to action.
	(register-read-with-preview): Now use read-from-minibuffer and
	minibuffer-setup-hook.

	* lisp/emacs-lisp/cl-generic.el: Add a call to
	'cl--generic-prefill-dispatchers' to fix a build error.

2023-11-29  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Various improvements to font-lock-settings for elixir-ts-mode

	Changes and made from conversations from the Elixir slack channel,
	the github issue
	https://github.com/wkirschbaum/elixir-ts-mode/issues/35 and bug#67246.

	* lisp/progmodes/elixir-ts-mode.el
	(elixir-ts--font-lock-settings): Update features.
	(elixir-ts-mode): Update treesit-font-lock-feature-list.
	(elixir-ts-font-comment-doc-identifier-face): Rename to
	elixir-ts-comment-doc-identifier.
	(elixir-ts-font-comment-doc-attribute-face): Rename to
	elixir-ts-comment-doc-attribute.
	(elixir-ts-font-sigil-name-face): Rename to elixir-ts-sigil-name.
	(elixir-ts-atom-key-face)
	(elixir-ts-keyword-key-face)
	(elixir-ts-attribute-face): Add new custom face.

2023-11-29  Po Lu  <luangruo@yahoo.com>

	Clean up some redundant or otherwise suspect code

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate):
	Don't check if URI is non-NULL, for instanceof checks this
	also.

	* java/org/gnu/emacs/EmacsSafThread.java (accessDocument1):
	Don't check !writable twice.

	* java/org/gnu/emacs/EmacsService.java (documentIdFromName):
	Designate this function as public, since it is called
	through JNI.

2023-11-29  João Távora  <joaotavora@gmail.com>

	Jsonrpc: prevent while-no-input messing with jsonrpc-request

	'jsonrpc-request' already has its "interrupt on user input" mechanism
	base on 'sit-for'.  If called from a situation that uses
	while-no-input to do basically the same, that mechanism may become
	confused, so it's important to prevent that interfence.

	This was confirmed to be a problem when using the Corfu completion
	front-end.

	See also
	https://github.com/joaotavora/eglot/discussions/1127#discussioncomment-7277567

	Many thanks to JD Smith <jdtsmith@gmail.com> for helping me debug this
	and pointing in the right direction.

	* lisp/jsonrpc.el (Version): Bump to 1.0.18
	(jsonrpc-request): Bind throw-on-input to nil

2023-11-29  João Távora  <joaotavora@gmail.com>

	Unbreak Eglot, Jsonrpc as EIEIO inches closer to CLOS (bug#67480)

	EIEIO is an inaccurate emulation of CLOS in many aspects and one of
	them in accessor definition.  Before this commit

	commit 6c47931a1ad4de4af3f147b9604169c2441100fe
	Author: Brandon <brandon.irizarry@gmail.com>
	Date:   Sat Nov 4 17:11:32 2023 -0400

	    Make EIEIO ':accessor' behave like ':reader' when reading (bug#66938)

	An :initform-less, non-:initarg'ed slot with be read using an
	:accessor which would just return nil.  This is EIEIO specific of
	course, but it made for (my) sloppy programming in jsonrpc.el and
	eglot.el.

	Tightening up the rules a bit meant these things broke and now I'm
	fixing them.

	* lisp/jsonrpc.el (jsonrpc-connection): Add a bunch of :initform nil
	(jsonrpc-process-connection): Add a bunch of :initform nil

	* lisp/progmodes/eglot.el (eglot-lsp-server): Add a bunch of :initform nil

2023-11-27  Juri Linkov  <juri@linkov.net>

	* lisp/dired.el (dired-context-menu): Add menu item "Open With" (bug#63911).

	Populate the menu item "Open With" with commands returned
	by 'shell-command-guess' on the current file name.

2023-11-27  Juri Linkov  <juri@linkov.net>

	New user option 'shell-command-guess-functions' (bug#18132)

	* lisp/dired-aux.el (dired-minibuffer-default-add-shell-commands):
	Remove function since now mailcap commands are available
	by shell-command-guess-mailcap for shell-command-guess
	used by dired-guess-shell-command.
	(dired-read-shell-command): Don't set minibuffer-default-add-function
	to dired-minibuffer-default-add-shell-commands.
	(dired-guess-shell-command): Replace dired-guess-default
	with shell-command-guess.
	(shell-command-guess-functions): New defcustom.
	(shell-command-guess, shell-command-guess-dired)
	(shell-command-guess-mailcap, shell-command-guess-xdg):
	New functions.

	* lisp/simple.el (minibuffer-default-add-shell-commands):
	Use 'shell-command-guess' instead of requiring 'mailcap'
	with 'mailcap-file-default-commands'.  Remove 'interactive'.

2023-11-27  Juri Linkov  <juri@linkov.net>

	* lisp/dired.el (dired-insert-set-properties): Fix 'isearch-open-invisible'.

	Set overlay property 'isearch-open-invisible' to 'delete-overlay'
	for 'dired-filename-display-length' (bug#67161).

2023-11-27  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el (project-prompt-project-name): Add 'reverse'.

	Reverse ret that should restore order for 'C-x p p M-n M-n ...' (bug#67310).

2023-11-27  Alan Mackenzie  <acm@muc.de>

	Compiler optimizer: push forms onto byte-compile-form-stack

	This fixes bug#67483.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form): Push and
	pop FORM onto/off byte-compile-form-stack so that warning
	messages get a position near to the erroneous source.

2023-11-27  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc.el (vc-deduce-backend-nonvc-modes): Use defcustom (bug#67171).

	(vc-deduce-backend): Check for t value of vc-deduce-backend-nonvc-modes.

2023-11-26  F. Jason Park  <jp@neverwas.me>

	Restore prompt correctly when reconnecting in ERC

	* lisp/erc/erc.el (erc--initialize-markers): Commit 0d6c8d41ab7 "Use
	overlay instead of text prop to hide ERC's prompt" introduced a bug
	that caused the prompt to remain hidden upon reconnecting because the
	stashed overlay would get clobbered by ERC's major-mode setup.
	Binding its old value while unhiding fixes the issue.
	* test/lisp/erc/erc-tests.el (erc-hide-prompt): Don't permanently set
	the default value of `erc-hide-prompt'.
	* test/lisp/erc/resources/erc-scenarios-common.el
	(erc-scenarios-common--join-network-id): Add assertions for prompt
	hiding and unhiding on reconnect.  (Bug#51082)

2023-11-26  João Távora  <joaotavora@gmail.com>

	Font-lock shorthands with arbitrary punctuation (bug#67390)

	* lisp/emacs-lisp/shorthands.el
	(shorthands--mismatch-from-end): Rework and document.  Works like
	CL's mismatch now.
	(shorthands-font-lock-shorthands): Allow arbitrary punctuation
	as separator for font-locking logic.

2023-11-26  João Távora  <joaotavora@gmail.com>

	Add autoload cookie to autoload-compute-prefixes (bug#67325)

	* lisp/emacs-lisp/loaddefs-gen.el (autoload-compute-prefixes): Add
	autoload cookie.

2023-11-26  Dmitry Gutov  <dmitry@gutov.dev>

	(ruby-ts-mode): Extend treesit-thing-settings more

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
	Add 'while', 'until' and 'for'.

2023-11-26  Dmitry Gutov  <dmitry@gutov.dev>

	(ruby-ts-mode): Also add 'self' and 'super' to things

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
	(ruby-ts-mode): Also add 'self' and 'super'.

2023-11-26  Dmitry Gutov  <dmitry@gutov.dev>

	(ruby-ts-mode): Extend treesit-thing-settings (bug#67036)

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Add to
	'treesit-thing-settings': 'singleton_class', 'else' and 'then'.
	The latter two help with navigation across elseif's a little, but
	not quite perfectly.

2023-11-26  Brandon  <brandon.irizarry@gmail.com>  (tiny change)

	Make EIEIO ':accessor' behave like ':reader' when reading (bug#66938)

	Clones of instances of subclasses of 'eieio-instance-inheritor' didn't
	delegate to their ':parent-instance' field when reading object fields
	using ':accessor'.

	* lisp/emacs-lisp/eieio.el (defclass): Remove 'slot-boundp' check for
	:accessor's getter
	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
	(eieio-test-use-accessor-function-with-cloned-object): New test.

2023-11-26  Alan Mackenzie  <acm@muc.de>

	.elc format: Record lambdas' doc strings lazily, not inline

	Also refactor the pertinent part of bytecomp.el.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-output-file-form):
	Use byte-compile-output-docform for all forms, not just those
	with doc strings.
	(byte-compile--output-docform-recurse): New function extracted
	from byte-compile-output-docform.  This function recurses on
	functions contained in the constants vector.
	(byte-compile-output-docform): Extract parameter DOCINDEX from
	the INFO list.  Add parameter CVECINDEX, the index of the
	constants vector in FORM.
	(byte-compile-file-form-defmumble): Several detailed
	refactorings.  Call byte-compile-output-docform with the new
	interface.
	(byte-compile-output-as-comment): On exit, leave point after
	the inserted text.  No longer assume that the output is being
	inserted at the end of the buffer.

2023-11-26  Eli Zaretskii  <eliz@gnu.org>

	Fix 'dired--get-ellipsis-length'

	* lisp/dired.el (dired--get-ellipsis-length): Handle glyphs with
	faces.  (Bug#67161)

2023-11-26  Eshel Yaron  <me@eshelyaron.com>

	Unbind 'C-M-i' in Text mode

	Remove the binding of 'C-M-i' to 'ispell-complete-word' in Text mode.
	Define a new 'ispell-completion-at-point' function and add that to
	'completion-at-point-functions' in Text mode, such that
	'completion-at-point' provides the same word completions as
	'ispell-complete-word' does OOTB.

	* lisp/textmodes/ispell.el (ispell-completion-at-point): New function.
	* lisp/textmodes/text-mode.el (text-mode): Add it to 'c-a-p-functions'.
	(text-mode-map): Remove 'C-M-i' binding.
	(text-mode-meta-tab-ispell-complete-word): New user option.
	* etc/NEWS: Announce it.
	* doc/emacs/fixit.texi (Spelling)
	* doc/emacs/text.texi (Text Mode)
	* doc/lispref/modes.texi (Basic Major Modes)
	(Example Major Modes): Update.
	* lisp/mail/sendmail.el (mail-abbrevs-loaded)
	* lisp/nxml/nxml-mode.el (nxml-mode-map): Remove superfluous binding.

2023-11-26  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Simplify gnus-group-search-forward

	Bug#67445

	* lisp/gnus/gnus-group.el (gnus-group-search-forward): The
	special-case check for backwards-and-bobp is odd and unnecessary, just
	perform an equivalent search from point depending on direction.

2023-11-26  Po Lu  <luangruo@yahoo.com>

	* src/pdumper.c (dump_vectorlike): Avert compiler warning.

2023-11-26  F. Jason Park  <jp@neverwas.me>

	Simplify option erc-fill-wrap-merge-indicator

	* lisp/erc/erc-fill.el (erc-fill-function): Add hyperlink to
	`erc-fill-wrap-mode' in doc string.
	(erc-fill-wrap-merge-indicator-face): New face.  The rationale for
	adding this is that hard-coding `erc-fill-wrap-merge-indicator' to use
	specific non-ERC faces forces folks to customize the option by
	specifying a value manually, which may not be easy for new users,
	seeing as its :type is relatively complex.
	(erc-fill-wrap-merge-indicator): Add new preset without leading
	space, for narrow windows, and replace `shadow' with
	`erc-fill-wrap-merge-indicator-face' everywhere.
	(erc-fill-wrap-mode): Add configuration hint to doc string for related
	options when facing narrow windows.
	(erc-fill--wrap-insert-merged-post, erc-fill--wrap-insert-merged-pre):
	Fix sloppy thinko in which "-pre" and "-post" stash variables for
	precomputed values were swapped.  Also accommodate :type string
	variant for option `erc-fill-wrap-merge-indicator'.
	(erc-fill--wrap-rejigger-region): Clear pre-computed merge-indicator
	value.  (Bug#60936)

2023-11-25  Mattias Engdegård  <mattiase@acm.org>

	Refactor pseudovector printing

	* src/print.c (print_vectorlike): Split into...
	(print_bignum, print_bool_vector, print_vectorlike_unreadable):
	...these functions.  Exhaustive switch on pseudovector type.
	Remove unused return value.
	(print_object): Use new functions and simplify.

2023-11-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	regex-emacs.c (forall_firstchar): Fix regression bug#67226

	All zero-width operations need to be taken into account when reaching
	`succeed` in `mutually_exclusive_one`!

	* src/regex-emacs.c (forall_firstchar_1): Call `f` for all zero-width
	matching operators.
	(analyze_first_fastmap, analyze_first_null, mutually_exclusive_one):
	Adjust accordingly.

2023-11-25  Aymeric Agon-Rambosson  <aymeric.agon@yandex.com>  (tiny change)

	Repair `tab-first-completion` (bug#67158)


	* lisp/indent.el (indent-for-tab-command): Use `syntax-class` to fix
	longstanding thinko introduced back in 2020 in commit 64c851166442.
	Rework the check for `syn` because TAB always completed when
	`tab-first-completion` had value `word-or-paren` or `word-or-paren-or-punct`.

2023-11-25  Dmitry Gutov  <dmitry@gutov.dev>

	(project-prompt-project-name): Simplify a bit

	* lisp/progmodes/project.el (project-prompt-project-name):
	Fold the inner 'let' into 'when-let'.

2023-11-25  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	77ab00207d6 ; * admin/authors.el (authors-aliases): Add Noah Peart.
	6f843f03dc2 typescript-ts-mode: Add missing 'operator' to treesit-fon...
	0676a029310 Extend D-Bus doc and test
	df094dd4bc1 Do not unregister a D-Bus service which is a unique name
	e6ad97a3338 Fix byte-compilation warnings about 'sqlite-rollback'

2023-11-25  Rahguzar  <rahguzar@zohomail.eu>

	Don't insert subscript on a newline

	* lisp/net/shr.el (shr-tag-sub): Don't insert subscript on a
	newline.  (Bug#66676)

2023-11-25  Rahguzar  <rahguzar@zohomail.eu>

	Optionally turn on visual-line-mode + outline support

	* lisp/net/eww.el (eww-render): Turn on 'visual-line-mode'
	in absence of filling.
	(eww-mode): Set 'outline-regexp' and 'outline-level'.
	(Bug#66676)

2023-11-25  Rahguzar  <rahguzar@zohomail.eu>

	Outline support for shr rendered documents

	* lisp/net/shr.el
	(shr-heading): Propertize heading with level.
	(shr-outline-search):  An 'outline-search-function' that finds
	headings using text property search.
	(shr-outline-level): Outline level for 'shr-outline-search'.
	(Bug#66676)

2023-11-25  Rahguzar  <rahguzar@zohomail.eu>

	Allow displaying images inline

	* lisp/net/shr.el
	(shr-max-inline-image-size): New custom variable.
	(shr--inline-image-p): New helper function to decide if an
	image should be inserted inline.
	(shr-insert, shr-put-image, shr-tag-img): Use
	'shr-max-inline-image-size' to insert some images inline.
	(Bug#66676)

2023-11-25  Rahguzar  <rahguzar@zohomail.eu>

	Make some aspects of shr rendering customizable

	* lisp/net/shr.el (shr-fill-text, shr-sup-raise-factor)
	(shr-sub-raise-factor, shr-image-ascent): New custom variables.
	(shr-fill-lines): Only fill if 'shr-fill-text' is non-nil.
	(shr-put-image): Use 'shr-image-ascent' as value of :ascent.
	(shr-rescale-image, shr-make-placeholder-image): Use
	'shr-image-ascent'.
	(shr-tag-sup, shr-tag-sub): Use 'shr-sup/sub-raise-factor'.
	(Bug#66676)

2023-11-25  Ulrich Müller  <ulm@gentoo.org>

	Don't enable pinentry loopback mode for gpgsm

	* lisp/epg.el (epg--start): Passphrase entry through the
	minibuffer is currently not supported with gpgsm, therefore don't
	pass "--pinentry-mode loopback" as an argument when the protocol
	is CMS.  (Bug#67012)
	* doc/misc/epa.texi (GnuPG Pinentry): Document it.

2023-11-25  Liu Hui  <liuhui1610@gmail.com>

	Add option `dired-filename-display-length'

	* lisp/dired.el (dired-filename-display-length): New option.
	(dired-insert-set-properties): Set invisible property for long
	filenames.
	(dired--get-ellipsis-length, dired--get-filename-display-length)
	(dired-filename-update-invisibility-spec): New functions.
	(dired-mode): Add filename invisibility spec.
	(dired-make-directory-clickable)
	(dired-kill-when-opening-new-dired-buffer)
	(dired-hide-details-preserved-columns): Add missing :group.
	* lisp/wdired.el (wdired-change-to-wdired-mode)
	(wdired-change-to-dired-mode): Update filename invisibility spec.
	* etc/NEWS: Announce the change.  (Bug#67161)

2023-11-25  Eli Zaretskii  <eliz@gnu.org>

	Fix merging italic and underline faces with other fonts

	* lisp/faces.el (italic, underline): Leave the 'slant'
	resp. 'underline' attributes even when they are not supported by
	the default font.  (Bug#67269)

2023-11-25  nverno  <noah.v.peart@gmail.com>

	Fix test name with erts-run-test with Point-Char

	* lisp/progmodes/erts-mode.el (erts-run-test): Fix finding
	the test name when Point-Char is defined,  (Bug#67235)

2023-11-25  Po Lu  <luangruo@yahoo.com>

	Dismiss Android Back key events that are canceled

	* java/org/gnu/emacs/EmacsWindow.java (onKeyDown): Disregard
	KEYCODE_BACK events.
	(onKeyUp): If the event is KEYCODE_BACK, deliver the disregarded
	key press event, unless FLAG_CANCELED is set.

2023-11-25  Spencer Baugh  <sbaugh@janestreet.com>

	Use the project--list as history when prompting for a project

	The project--list is already ordered such that the most recently used
	projects are at the front.  Now we use it as the minibuffer history
	when prompting for a project.

	To avoid savehist from picking up project--list as a minibuffer
	history variable and overriding our own persistence mechanism, we
	don't pass project--list directly as a history variable, but instead
	pass project--dir-history or project--name-history, dynamically-bound
	to an appropriate value.  project--dir-history and
	project--name-history won't be persisted since they're always unbound
	at the top level; but if they are persisted anyway somehow, it won't
	affect us.

	If we later find a way to rely on savehist for persistence instead of
	having our own mechanism, we can change the in-memory format of
	project--list to be just a list of directories, and our explicit calls
	to project--add-dir can be replaced by let-binding
	history-delete-duplicates=t, history-length=t.

	* lisp/progmodes/project.el (project--remember-dir): Add.
	(project-remember-project): Use project--remember-dir.
	(project--name-history, project-prompt-project-name)
	(project--dir-history, project-prompt-project-dir): Pass a
	preprocessed project--list as HIST to completing-read.  (bug#67310)
	(project-switch-project): Call project--remember-dir.

2023-11-24  F. Jason Park  <jp@neverwas.me>
	    Stefan Kangas  <stefankangas@gmail.com>

	Optionally allow substitution patterns in erc-prompt

	* etc/ERC-NEWS: Add entry for `erc-prompt-format'.
	* lisp/erc/erc-compat.el (erc-compat--defer-format-spec-in-buffer):
	New macro to wrap `format-spec' specification values in functions that
	run in the current buffer and fall back to the empty string.
	* lisp/erc/erc.el (erc-prompt): Add predefined Custom choice for
	function type in `erc-prompt-format'.
	(erc--prompt-format-face-example): New "pre-propertized" value for
	option `erc-prompt-format'.
	(erc-prompt-format): New companion option for `erc-prompt' choice
	`erc-prompt-format'.  New function of the same name to perform format
	substitutions and serve as a Custom choice value for `erc-prompt'.
	Based on work and ideas originally proposed by Stefan Kangas.
	(erc--away-indicator, erc-away-status-indicator,
	erc--format-away-indicator): New formatting function and helper
	variables for displaying short away status.
	(erc--user-modes-indicator): New variable.
	(erc--format-user-modes): New function.
	(erc--format-channel-status-prefix): New function.
	(erc--format-modes): New function.
	* test/lisp/erc/erc-scenarios-prompt-format.el: New file.  (Bug#51082)

2023-11-24  F. Jason Park  <jp@neverwas.me>

	Add merged-message indicator option for erc-fill-wrap

	* lisp/erc/erc-fill.el (erc-fill): Use `when-let' instead of
	`when-let*'.
	(erc-fill-wrap-merge): Mention companion options in doc string.
	(erc-fill-wrap-merge-indicator): New option to display a
	distinguishing "indicator" in the form of a one-character string
	between messages from the same speaker.
	(erc-fill-wrap-mode, erc-fill-wrap-disable): Mention
	`erc-fill-wrap-merge-indicator' in doc string and kill related local
	variables.
	(erc-fill--wrap-merge-indicator-pre,
	erc-fill--wrap-merge-indicator-post): New internal variables for
	caching merge indicator.
	(erc-fill--wrap-insert-merged-post, erc-fill--wrap-insert-merged-pre):
	New functions for adding merge indicators either before or after a
	message.
	(erc-fill-wrap): Add logic for deferring to merge-indicator helpers
	when needed.
	* test/lisp/erc/erc-fill-tests.el (erc-fill-wrap-tests--merge-action,
	erc-fill-wrap--merge-action): Move body of latter test into former, a
	new fixture function.
	(erc-fill-wrap--merge-action/indicator-pre,
	erc-fill-wrap--merge-action/indicator-post): New tests.
	* test/lisp/erc/resources/fill/snapshots/merge-wrap-indicator-post-01.eld:
	New test data file.
	* test/lisp/erc/resources/fill/snapshots/merge-wrap-indicator-pre-01.eld:
	New test data file.  (Bug#60936)

2023-11-24  F. Jason Park  <jp@neverwas.me>

	Optionally align prompt to prefix in erc-fill-wrap

	* lisp/erc/erc-fill.el (erc-fill-wrap-align-prompt): New option for
	aligning prompt with leading portion of messages at the common "static
	center" pivot-column barrier, so it appears "dedented" along with all
	speaker name tags.  Tests for this functionality appear in the
	subsequent patch of this same change set.
	(erc-fill-wrap-use-pixels): Demote from user option to normal variable
	because it has no practical use other than for testing.  Don't rename
	as internal variable to spare the improbable user of ERC on HEAD who's
	already customized this.
	(erc-fill-wrap-mode, erc-fill-wrap-enable, erc-fill-wrap-disable):
	Take care to disable prompt-in-left-margin behavior when option
	`erc-fill-wrap-align-prompt' is non-nil.
	(erc-fill--wrap-measure): Improve doc string and always attempt to
	leverage `buffer-text-pixel-size', even when the variable
	`erc-fill-wrap-use-pixels' is nil.
	(erc-fill--wrap-indent-prompt): New function to massage prompt
	`line-prefix' after updates, such as changes to away status.
	(Bug#51082)

2023-11-24  F. Jason Park  <jp@neverwas.me>

	Use overlay instead of text prop to hide ERC's prompt

	* lisp/erc/erc-backend.el (erc--hidden-prompt-overlay):
	New variable, a buffer-local handle for the prompt overlay.
	(erc--reveal-prompt): Delete overlay instead of text prop.
	(erc--conceal-prompt): Add overlay instead of text prop.
	(erc--unhide-prompt): Run `erc--refresh-prompt-hook' after revealing.
	(erc--hide-prompt): Run `erc--refresh-prompt-hook' after hiding.
	* lisp/erc/erc-stamp.el (erc-stamp--adjust-margin): Attempt a more
	accurate estimate of the prompt's width in columns when initially
	setting left-margin.
	(erc-stamp--skip-left-margin-prompt-p): New variable to inhibit normal
	behavior of displaying prompt in left margin.
	(erc-stamp--display-margin-mode): Allow opting out of
	prompt-in-left-margin behavior.
	(erc--reveal-prompt): Delete unneeded method implementation.
	(erc--conceal-prompt): Put overlay in margin.
	* test/lisp/erc/erc-tests.el (erc-hide-prompt): Use
	`get-char-property' instead of `get-text-property' in order to
	accommodate overlay-based prompt hiding.  (Bug#51082)

2023-11-24  F. Jason Park  <jp@neverwas.me>

	Don't inherit properties when refreshing ERC's prompt

	* lisp/erc/erc.el (erc--merge-prop-behind-p): New variable to be
	dynamically bound around rare calls to `erc--merge-props' when the
	latter should append to the end of existing list-valued text
	properties.
	(erc--inhibit-prompt-display-property-p): New variable to be non-nil
	in buffers where an active module needs to reserve all uses of the
	`display' text property in the prompt region for itself.
	(erc--prompt-properties): Collect all common prompt properties in one
	place for code reuse and maintenance purposes.
	(erc--refresh-prompt-continue, erc--refresh-prompt-continue-request):
	New function and state variable for custom `erc-prompt' functions to
	indicate to ERC that they need the prompt to be refreshed in all
	buffers and not just the current one.
	(erc--refresh-prompt): Merge `erc-prompt-face' behind any applied by a
	customized `erc-prompt' function value.  Crucially, don't inherit
	properties at the beginning of the prompt because doing so may clobber
	any added by a custom `erc-prompt' function.  Instead, apply known
	properties from `erc-display-prompt' manually.  Integrate
	`erc--refresh-prompt-continue' logic.
	(erc--merge-prop): Recognize flag to activate `append' behavior in
	which new prop values are appended to the tail of existing ones rather
	than consed in front.  This functionality could be extended to
	arbitrary splices as well.
	(erc-display-prompt): Use common text properties defined elsewhere.
	* test/lisp/erc/erc-tests.el (erc--merge-prop): Add assertion for
	`erc--merge-prop-behind-p' non-nil behavior.  (Bug#51082)

2023-11-24  F. Jason Park  <jp@neverwas.me>

	Fix speedbar help-echo in erc-nickbar-mode

	* lisp/erc/erc-speedbar.el (erc-speedbar-buttons): "Spoof"
	`dframe-help-echo-function' in channel buffers to get around the fact
	that we're not using the real speedbar frame.
	(erc-speedbar--fmt-sentinel): New variable.
	(erc-speedbar-expand-channel): Use cached channel-mode string for mode
	item.  Use button chars to mark mode and topic items and move verbose
	labels into mouse-hover text.  Also set face for mode and topic.
	(erc-speedbar-item-info): Look for `speedbar-token' as a fallback even
	when the primary pattern doesn't match.  If the value's contents are
	structured like a `format' function call, use them.
	(erc-speedbar--emulate-sidebar): Add comment about speedbar setting
	everything globally in older Emacsen.  (Bug#63595)

2023-11-24  F. Jason Park  <jp@neverwas.me>

	Cache UI string for channel modes in ERC

	* etc/ERC-NEWS: Add entry for more expansive "%m" in header line.
	* lisp/erc/erc-common.el (erc--channel-mode-types): New slot
	`shortargs' for caching truncated mode args.
	* lisp/erc/erc.el (erc--mode-line-chanmodes-arg-len): New internal
	variable for adjusting the truncation length of channel-mode arguments
	as they appear in the header line.
	(erc--mode-line-mode-string): New variable for caching the relevant
	"modestring", if any, in ERC buffers.
	(erc--process-channel-modes): Don't associate args with group 4/D,
	which are all nullary modes.  This fixes a bug in which arguments were
	associated with the wrong letters.  Also, set cached mode string for
	channel.
	(erc--user-modes): Simplify slightly by removing likely useless
	variant for overloaded arg AS-TYPE.  This function is new in ERC 5.6.
	(erc--channel-modes):  New function.  A higher-level getter for
	current channel mode representation to complement `erc--user-modes'.
	(erc--parse-user-modes): Set `erc--mode-line-mode-string in server
	buffers.
	(erc--handle-channel-mode): Change model to associate modes of type A
	with a running plus/minus tally of state changes since joining the
	channel.
	(erc-update-mode-line-buffer): Use cached verbose representation of
	channel or user modes instead of calling `erc-format-channel-modes'.
	* test/lisp/erc/erc-tests.el (erc--update-channel-modes): Update to
	reflect new running tally associations for type A modes.
	(erc--channel-modes): New test.
	(erc--user-modes): Update to reflect parameter simplification.
	(Bug#67220)

2023-11-24  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fontify int unsigned Foo;

	This fixes bug#59953.  Foo now gets fontified when unsigned
	comes after int.

	* lisp/progmodes/cc-engine.el (c-forward-type): Refactor nested
	`if' forms into a cond form.  Loop around matches for
	c-opt-type-component-key, advancing over them.

2023-11-24  Alan Mackenzie  <acm@muc.de>

	CC Mode: Add second anchor point to class-open and class-close

	This fixes the second (last) part of bug#66911.  The new second
	anchor points allow the indentation of braces in template
	classes to be anchored on the keyword 'class' rather than the
	`template' at the beginning of the statement.

	* lisp/progmodes/cc-engine.el (c-add-class-syntax): Add &rest
	args parameter for additional anchor points.  Pass these to
	c-add-syntax.
	(c-guess-continued-construct): CASE B.1: Note return value from
	c-looking-at-decl-block and pass this to c-add-syntax for a
	class-open construct.
	(c-guess-basic-syntax): CASE 4: Duplicate anchor position for
	class-open.
	(c-guess-basic-syntax): CASE 5A.2: Note return value of
	c-looking-at-decl-block and pass it as extra argument to
	c-add-syntax for a class-open construct.
	(c-guess-basic-syntax): CASE 5G: Call c-looking-at-decl-block
	to determine the second anchor point for a class-close, and
	pass it to c-add-class-syntax.

	* doc/misc/cc-mode.texi (Class Symbols): Document the anchor
	points for class-open and class-close.

2023-11-24  Po Lu  <luangruo@yahoo.com>

	Prevent touch screen translation from entering invalid state

	* lisp/subr.el (touch-screen-events-received): New variable.
	(read--potential-mouse-event): If a touch screen event's been
	registered thus far, continue as though xterm-mouse-mode is
	enabled.

	* lisp/touch-screen.el (touch-screen-handle-touch): Set that
	variable.  If t-s-c-t already exists but the new touch point was
	assigned the same number by the system, replace the current tool
	with it rather than installing it as the anciliary tool.

2023-11-24  Po Lu  <luangruo@yahoo.com>

	Merge from savannah/emacs-29

	1978b603bc3 Make python-ts-mode's syntax-highlighting more standardized
	99658346d1e ; Improve documentation of desktop.el in user manual
	f7dc0202127 Fix "Text is read-only" on backspacing initial Calc input
	662d54775d5 Add a doc string to simple.el (bug#67355)
	5a5e36d2aad ; Improve function documentation tips
	86016d8ecdb Mention "visual line" in user manual
	4bb65ed77a8 ; * doc/lispref/minibuf.texi (Programmed Completion): Imp...
	dfb3dcb404c Allow listing Emoji from a read-only buffer

	# Conflicts:
	#	lisp/calc/calc.el
	#	lisp/international/emoji.el

2023-11-24  Po Lu  <luangruo@yahoo.com>

	Merge from savannah/emacs-29

	9af03e0e189 typescript-ts-mode: Support indentation for conditionals ...

2023-11-24  Po Lu  <luangruo@yahoo.com>

	Merge from savannah/emacs-29

	d72a4ed65ce Fix 'with-sqlite-transaction' when BODY fails
	a7b3c923733 ; * doc/emacs/cmdargs.texi (Initial Options): Fix last ch...
	fd76a80864d ; Mention that -x and --script ignore file-locals
	e0469ddb9d4 ; * doc/emacs/search.texi (Special Isearch): More accurat...
	e521669fb3f Fix wording in ELisp Intro manual
	da946ca6924 Add missing python-ts-mode keyword (bug#67015)
	0128495afde Fix string-pixel-width with global setting of display-lin...

	# Conflicts:
	#	etc/NEWS

2023-11-23  Juri Linkov  <juri@linkov.net>

	Support dired-movement-style in dired-next-dirline and dired-prev-dirline

	* lisp/dired.el (dired-movement-style): Mention dired-next-dirline
	and dired-prev-dirline in the docstring (bug#67303).
	(dired-next-line): Refactor most code to dired--move-to-next-line.
	(dired--move-to-next-line): New function with code from dired-next-line.
	(dired--trivial-next-dirline): Rename from dired-next-dirline.
	(dired-next-dirline): New function body that uses dired-movement-style,
	dired--move-to-next-line and dired--trivial-next-dirline.
	(dired-prev-dirline): Mention dired-movement-style in the docstring.

2023-11-23  Manuel Giraud  <manuel@ledu-giraud.fr>

	Remove spurious "nil" from Gnus mode line

	Bug#67322

	* lisp/gnus/gnus.el (gnus-mode-line-buffer-identification): Handle a
	nil return value from `gnus-emacs-version'.

2023-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	Adjust affected callers of derived-mode-p` to use the new convention

	* lisp/align.el (align-rules-list): Prefer `derived-mode-p` over
	`provided-mode-derived-p`.
	(align--rule-should-run):
	* lisp/window.el (display-buffer-reuse-mode-window):
	* lisp/whitespace.el (whitespace-enable-predicate):
	* lisp/transient.el (transient--do-suffix-p):
	* lisp/so-long.el (so-long--set-auto-mode):
	* lisp/simple.el (command-completion-with-modes-p):
	* lisp/progmodes/tcl.el (tcl-current-word):
	* lisp/progmodes/idlwave.el (idlwave-fix-keywords):
	* lisp/progmodes/gdb-mi.el (gdb, gdb-locals-mode-map)
	(gdb-registers-mode-map, gdb-function-buffer-p):
	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-style-setter)
	(c-ts-mode-set-style):
	* lisp/progmodes/bug-reference.el (bug-reference--try-setup-gnus-article):
	* lisp/help-fns.el (help-fns--list-local-commands):
	* lisp/emulation/viper.el (viper-mode)
	(viper-this-major-mode-requires-vi-state):
	* lisp/emacs-lisp/easy-mmode.el (easy-mmode--globalized-predicate-p):
	* lisp/dired.el (dired-hide-details-mode, dired-click-to-select-mode):
	* lisp/calendar/todo-mode.el (todo-reset-nondiary-marker)
	(todo-reset-done-string, todo-reset-comment-string):
	* lisp/vc/vc.el (vc-deduce-backend): Use new calling convention for
	`derived-mode-p` and `provided-mode-derived-p`.

2023-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	(derived-mode-p): Take MODES as a single argument

	Looking at uses of `derived-mode-p` and `provide-mode-derived-p`,
	I can't find a single use case where it wouldn't be preferable for
	it to take a single argument instead of `&rest`: all the calls are
	either passing a single argument anyway, or passing a fixed list of modes.
	The use of `&rest` just makes the code less efficient and sometimes
	more clunky (because of the need for `apply`).
	So let's change that (while preserving backward compatibility, of course).

	* doc/lispref/modes.texi (Derived Modes): Adjust accordingly.

	* lisp/subr.el (provided-mode-derived-p, derived-mode-p): Take the
	`modes` as a single argument.

2023-11-23  Alan Mackenzie  <acm@muc.de>

	CC Mode: Handle noise clauses, template arglists in any order

	This fixes the first part of bug#66911.

	* lisp/progmodes/cc-engine.el (c-looking-at-decl-block): Skip
	back over template arglists and noise clauses in any order, no
	longer assuming the noise clauses are before the template
	arglist in the buffer.  When scanning forward, take noise
	clauses into account.  Refactor a collection of nested `if'
	forms as a cond form.

2023-11-23  Po Lu  <luangruo@yahoo.com>

	Prevent tab bar from vanishing on Android

	* src/androidfns.c (android_change_tab_bar_height): Amend with
	code absent when the function was first transcribed.

	* src/haikufns.c (haiku_change_tab_bar_height):

	* src/nsfns.m (ns_change_tab_bar_height):

	* src/pgtkfns.c (pgtk_change_tab_bar_height):

	* src/w32fns.c (w32_change_tab_bar_height):

	* src/xfns.c (x_change_tab_bar_height): Revise commentary.

2023-11-22  Andrea Corallo  <acorallo@gnu.org>

	(package-quickstart-refresh): Generate marginally more efficient code

	* lisp/emacs-lisp/package.el (package-quickstart-refresh): Include
	only one copy of the file names.

2023-11-22  Andrea Corallo  <acorallo@gnu.org>

	* Update 'native-comp-never-optimize-functions' version

	* lisp/emacs-lisp/comp-common.el (native-comp-never-optimize-functions):
	Update version.

2023-11-22  Andrea Corallo  <acorallo@gnu.org>

	* configure.ac: Fix non posix (bash only) eq operator

2023-11-22  Michael Albinus  <michael.albinus@gmx.de>

	Unify ".""  and ".." handling in tramp-*-file-name-all-completions

	* lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions):
	* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
	Remove special handling of "." an "..".

	* lisp/net/tramp.el (tramp-skeleton-file-name-all-completions):
	Handle ".""  and "..".

2023-11-22  Michael Albinus  <michael.albinus@gmx.de>

	Fix CRLF handling in Tramp

	* lisp/net/tramp-sh.el (tramp-send-command-and-read): Use 'space'
	instead of 'blank' in rx expression, in order to handle also CR
	and alike.  Reported by Dominique Quatravaux
	<dominique@quatravaux.org>.

2023-11-22  Po Lu  <luangruo@yahoo.com>

	Update touch-screen.el

	* lisp/touch-screen.el (touch-screen-handle-aux-point-update):
	Wrap exceptionally wide form.
	(touch-screen-handle-touch): Guarantee that only tools from the
	same frame as the current tool will be considered ancillary
	tools.  Further guarantee that normal gesture translation can
	resume even if a touchscreen-end event is omitted or overlooked.

2023-11-22  Po Lu  <luangruo@yahoo.com>

	Insert NEWS entry for native compilation changes

	* etc/NEWS (Installation Changes in 30.1): Mention that native
	compilation has been enabled by default.

2023-11-22  Po Lu  <luangruo@yahoo.com>

	Disable native compilation in build machine Android binaries

	* configure.ac (XCONFIGURE): Set with_native_compilation to no.

2023-11-21  Andrea Corallo  <acorallo@gnu.org>

	* Enable native compiler by default when libgccjit is available

	* configure.ac: Enable native compiler by default when libgccjit available.
	(with_native_compilation): Change default to 'default'.
	(libgccjit_not_found_err, libgccjit_dev_not_found_err)
	(libgccjit_broken_err): Renamed.
	(libgccjit_not_found, libgccjit_dev_not_found, libgccjit_broken):
	New functions.

2023-11-21  Po Lu  <luangruo@yahoo.com>

	Save more information into Android font names

	* src/sfntfont.c (sfntfont_open): Besides just the font file
	name, also store the interpreter state, UPEM, charset and
	instance number in FONT_FULLNAME_INDEX.

2023-11-20  Manuel Giraud  <manuel@ledu-giraud.fr>

	Add Gnus mode line logo in SVG format

	Bug#67174

	* etc/images/gnus/gnus-pointer.svg: New Gnus mode line logo in SVG format.
	* lisp/gnus/gnus.el (gnus-mode-line-buffer-identification): Use it.

2023-11-20  Juri Linkov  <juri@linkov.net>

	Improve invisibility handling in isearch-lazy-highlight (bug#40808)

	* lisp/isearch.el (isearch-lazy-highlight-invisible): New variable.
	(isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search)
	(isearch-lazy-highlight-match, isearch-lazy-highlight-buffer-update): Use it.

	* lisp/replace.el (replace-highlight): Let-bind isearch-invisible
	to search-invisible.

	* test/lisp/isearch-tests.el (isearch--test-invisible): New test.

2023-11-20  Andrea Corallo  <acorallo@gnu.org>

	* etc/TODO (Native compiler improvements): Add 'Diagnostic' section.

	* etc/TODO (Native compiler improvements): Move old entry here.

	* etc/TODO (Native compiler improvements): Add section.

2023-11-20  Andrea Corallo  <acorallo@gnu.org>

	* Add 'eval' to 'native-comp-never-optimize-functions' (bug#67141)

	* lisp/emacs-lisp/comp-common.el (native-comp-never-optimize-functions):
	Add 'eval'.

2023-11-20  Jim Porter  <jporterbugs@gmail.com>

	Forward completion text properties in 'completion-table-with-quoting'

	This fixes an issue with 'pcomplete-here-using-help', which passes
	annotation strings along as text properties.  Previously, those got
	clobbered when the completions got requoted (bug#67112).

	* lisp/minibuffer.el (completion--twq-all): Apply text properties from
	the first character of the unquoted completion to the quoted
	completion.

2023-11-19  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Recognize shebang lines that pass '-S/--split-string' to 'env'

	* etc/NEWS: announce the change.

	* lisp/files.el (auto-mode-interpreter-regexp): Add optional '-S'
	switch to the ignored group capturing the env invocation.
	Allow multiple spaces between #!, interpreter and first argument:
	empirically, Linux's 'execve' accepts that.  (Bug#66902)

	* test/lisp/files-tests.el (files-tests--check-shebang): New helper to
	generate a temporary file with a given interpreter line, and assert
	that the mode picked by 'set-auto-mode' is derived from an expected
	mode.  Write the 'should' form so that failure reports include useful
	context; for example:

	    (ert-test-failed
	     ((should
	       (equal (list shebang actual-mode) (list shebang expected-mode)))
	      :form
	      (equal ("#!/usr/bin/env -S make -f" fundamental-mode)
		     ("#!/usr/bin/env -S make -f" makefile-mode))
	      :value nil :explanation
	      (list-elt 1 (different-atoms fundamental-mode makefile-mode))))

	* test/lisp/files-tests.el (files-tests-auto-mode-interpreter): New
	test; exercise some aspects of 'interpreter-mode-alist'.

2023-11-19  Po Lu  <luangruo@yahoo.com>

	Properly avoid displaying the OSK for calls to read-key-sequence

	* lisp/touch-screen.el (touch-screen-handle-point-up): If prompt
	is set, throw the input event rather than execute its command.

2023-11-19  Po Lu  <luangruo@yahoo.com>

	Reorganize documentation relating to touch screens

	Chiefly, elevate it from an appendix to a node in the User Input
	chapter.  I have been approached time and again with questions
	from people who have not searched the appendices for such
	documentation.

	* doc/emacs/emacs.texi: Move Other Input below Commands in the
	menu.

	* doc/emacs/input.texi (Other Input Devices): Rename to Other
	Input.  All callers changed.
	(Touchscreens, On-Screen Keyboards): Revise and reword
	documentation.  Homogenize nomenclature for on screen keyboards,
	preferring "virtual keyboards" after it has been mentioned once
	by the other name.

2023-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	(update_search_regs): Install better fix for bug#67124

	The recent fix for the bug in `replace-match-maybe-edit`
	was basically a refinement of a previously installed workaround,
	whereas the bug was really in `update_search_regs`.

	* src/search.c (update_search_regs): Improve handling of `start` positions.
	* lisp/replace.el (replace-match-maybe-edit): Remove workaround.
	* test/src/search-tests.el (search-test--replace-match-update-data): New test.

2023-11-18  F. Jason Park  <jp@neverwas.me>

	Favor ISUPPORT params for MODE processing in ERC

	* etc/ERC-NEWS: Mention shift toward CHANMODES ISUPPORT parameter for
	dictating MODE parsing behavior.
	* lisp/erc/erc-backend.el (erc--init-channel-modes, erc--update-modes,
	erc-set-modes, erc-update-modes): Forward declarations, the last two
	being removals.
	(erc-server-MODE, erc-server-221): Use `erc--update-modes' instead of
	`erc-update-modes'.
	(erc-server-324): Use `erc--init-channel-modes' instead of
	`erc-set-modes'.
	* lisp/erc/erc-common.el (erc--channel-mode-types): New struct for
	stashing processed \"CHANMODES\" data for the current server.
	* lisp/erc/erc.el (erc-channel-modes): Fix doc string.
	(erc-set-initial-user-mode): Display a local notice when requesting
	redundant user MODE operations.
	(erc-set-modes, erc-parse-modes, erc-update-modes): Deprecate for
	reasons explained in associated ERC-NEWS entry.
	(erc--update-membership-prefix): New function, a helper for specifying
	arguments to the rather unruly `erc-update-current-channel-member'.
	(erc--channel-modes): New variable to record channel-mode state in a
	hash table.
	(erc--channel-mode-types): New variable and getter to stash
	and retrieve server-local instance of the struct of the same name.
	(erc--process-channel-modes): New function to parse channel-mode
	changes, dispatch handlers for unary modes, and update the local
	variables `erc-channel-modes' and `erc--channel-modes'.
	(erc--user-modes): New local variable for remembering user modes per
	server.  New function of the same name, a "getter" for the variable.
	(erc--parse-user-modes): New function to parse user modes only.
	(erc--update-user-modes): New function to update and sort
	`erc--user-modes'.
	(erc--update-channel-modes): New function to replace much of
	`erc-update-modes', currently a thin wrapper around
	`erc--process-channel-modes' to ensure it updates status prefixes.
	(erc--update-modes): New function to call appropriate mode-updating
	function for the current buffer.
	(erc--init-channel-modes): New function to update channel mode letters
	without status prefixes.
	(erc--handle-channel-mode): New generic function, a placeholder for an
	eventual API to handle specific "unary" mode letters, meaning those
	that specify a single parameter for setting or unsetting.
	(erc-update-channel-limit): Update doc string and answer question
	posed by ancient comment.
	(erc-message-english-user-mode-redundant-add,
	erc-message-english-user-mode-redundant-drop): New English catalog
	messages.
	* test/lisp/erc/erc-scenarios-base-chan-modes.el: New file.
	* test/lisp/erc/erc-tests.el (erc-parse-modes,
	erc--update-channel-modes, erc--update-user-modes, erc--user-modes,
	erc--parse-user-modes): New tests.
	* test/lisp/erc/resources/base/modes/chan-changed.eld: New test data
	file.  (Bug#67220)

2023-11-18  F. Jason Park  <jp@neverwas.me>

	Use caching variant of erc-parse-prefix internally

	* lisp/erc/erc-common.el (erc--parsed-prefix): New struct to help with
	tasks that depends on the advertised "PREFIX" parameter.
	* lisp/erc/erc.el (erc-parse-prefix): Rework slightly for readability.
	(erc--parsed-prefix): New variable and function of the same name for
	caching the reversed result of `erc-parse-prefix' locally per server.
	(erc-channel-receive-names): Use value stored in `erc--parsed-prefix'.
	* test/lisp/erc/erc-tests.el (erc-with-server-buffer): Only activate
	spy around actual test case forms.
	(erc--parse-prefix): New test.  (Bug#67220)

2023-11-18  F. Jason Park  <jp@neverwas.me>

	Simplify ISUPPORT-derived data wrangling in ERC

	* lisp/erc/erc-backend.el (erc--get-isupport-entry): Check server
	buffer for `erc-server-parameters' when (re)initializing value.  This
	function was previously unreliable from a target buffer on cache
	misses.
	(erc--with-isupport-data): New macro for accessing and caching data
	derived from an ISUPPORT parameter.  Late-arriving params break the
	cache.
	(erc-server-005): Rewrite pattern as `rx' form, factoring out bol/eol.
	* lisp/erc/erc-common.el (erc--isupport-data): New struct to be
	subclassed for storing cached ISUPPORT-derived data.
	* test/lisp/erc/erc-scenarios-display-message.el: Remove stray
	`require'.  (Bug#67220)

2023-11-18  F. Jason Park  <jp@neverwas.me>

	Add test for erc-cmd-SQUERY

	* lisp/erc/erc-backend.el (erc-message): Revise doc string.
	* test/lisp/erc/erc-scenarios-base-misc-regressions.el (erc-cmd-MOTD):
	Move test to another file specifically for slash commands.
	* test/lisp/erc/erc-scenarios-misc-commands.el: New file.
	* test/lisp/erc/resources/commands/motd.eld: "New" file, moved here
	reusing the same Git blob from now deleted subdir base/commands.
	* test/lisp/erc/resources/commands/squery.eld: New file.  (Bug#67209)

2023-11-18  Osmo Karppinen  <osmkarp@gmail.com>  (tiny change)

	Fix command-line parsing for erc-cmd-SQUERY

	* lisp/erc/erc.el (erc-cmd-SQUERY): Set symbol property
	`do-not-parse-args' to t so additional command-line arguments aren't
	parsed but rather included as part of the function's lone (raw) LINE
	parameter.  (Bug#67209)

2023-11-18  Michael Albinus  <michael.albinus@gmx.de>

	Minor Tramp optimization

	* lisp/net/tramp.el (tramp-skeleton-file-truename)
	(tramp-skeleton-write-region, tramp-handle-file-truename):
	* lisp/net/tramp-integration.el (tramp-eshell-directory-change)
	(tramp-recentf-exclude-predicate):
	* lisp/net/tramp-smb.el (tramp-smb-handle-copy-file):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
	Use `tramp-tramp-file-p' instead of `file-remote-p'.

2023-11-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	d9e43f2197f Document changes in 'edmacro-parse-keys'
	3327f36ad95 Add 2 SQLite extensions to allow-list.
	8d2012024de * test/lisp/net/tramp-tests.el (tramp--test-timeout-handl...

2023-11-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	232a57a3e32 ; * doc/lispref/debugging.texi (Debugging): Add cross-ref...
	c65ddf26a33 ; doc/lispref/debugging.texi: Add reference to Profiler d...
	6f884d3aed9 Add 5 docstrings to abbrev.el (bug#67153)
	b4d990bd637 ; Clarify wording about arguments in doc strings
	c20ae7a30fb ; Improve cross-references in description of 'pcase'
	42181b65df1 ; * src/editfns.c (Fline_beginning_position): Doc fix.
	5f3309f6b0f ; Improve indexing in ELisp manual
	4e406bb4208 Fix CBZ file detection in doc-view-mode

2023-11-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	5a1808da5f3 ; * doc/misc/eglot.texi (Eglot Commands): Fix typos (bug#...

2023-11-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	32a32853ce9 Typofix in the doc/lispref/modes.texi
	f98637b51b5 ; Fix 'add-face-text-property' shortdoc
	3fff22eb20c Fix spell-checking email message with citations

2023-11-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	5612fd21a05 Add two doc strings to cl-extra.el

2023-11-18  Rudi Schlatte  <rudi@constantly.at>

	Add key translations 'C-x 8 a e' and 'C-x 8 A E'.

	* lisp/international/iso-transl.el (iso-transl-char-map): Add
	new entries for ae and AE.  (Bug#67225)

2023-11-18  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Add elixir-ts-mode-hook to elixir-ts-mode

	* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode-hook):
	Make hook available to customize.  (Bug#67207)

2023-11-18  Po Lu  <luangruo@yahoo.com>

	Document Battery Optimization challenges on Android

	* etc/PROBLEMS (Runtime problems specific to Android): Mention
	battery optimization, the way it impacts background execution,
	and how it might be disabled.

2023-11-18  Rahguzar  <rahguzar@zohomail.eu>

	Add input methods for Urdu, Pashto and Sindhi (bug#66470)

	* lisp/leim/quail/pakistan.el ("urdu-keyboard")
	("urdu-phonetic-keyboard", "urdu-custom", "sindhi-keyboard")
	("pashto-keyboard"): New input methods.
	(pakistan--define-quail-rules, pakistan--make-setter)
	(pakistan--regenerate-translations, pakistan--set-prefixes)
	(pakistan--define-numeral-translations)
	(pakistan--set-numeral-translations):
	Internal helper functions.
	(pakistan-urdu-input): New customization group.
	(pakistan-urdu-prefixes, pakistan-urdu-translations)
	(pakistan-urdu-diacritics-and-other-symbols)
	(pakistan-urdu-poetic-symbols, pakistan-urdu-religious-symbols)
	(pakistan-extra-balochi-brahui-translations)
	(pakistan-extra-pashto-translations)
	(pakistan-extra-sindhi-translations)
	(pakistan-extra-saraiki-hindko-translations)
	(pakistan-urdu-use-roman-digits): New custom variables.
	(pakistan): New package.

2023-11-18  Visuwesh  <visuweshm@gmail.com>

	Do interactive tagging for dired commands

	* lisp/dired-aux.el (dired-diff, dired-backup-diff)
	(dired-compare-directories, dired-do-chmod, dired-do-chgrp)
	(dired-do-chown, dired-do-touch, dired-do-print, dired-clean-directory)
	(dired-do-async-shell-command, dired-do-shell-command, dired-kill-line)
	(dired-do-kill-lines, dired-do-compress-to, dired-do-compress)
	(dired-do-byte-compile, dired-do-load, dired-do-redisplay)
	(dired-reset-subdir-switches, dired-create-directory)
	(dired-create-empty-file, dired-do-copy, dired-do-symlink)
	(dired-do-relsymlink, dired-do-hardlink, dired-do-rename)
	(dired-do-rename-regexp, dired-do-copy-regexp, dired-do-hardlink-regexp)
	(dired-do-symlink-regexp, dired-do-relsymlink-regexp, dired-upcase)
	(dired-downcase, dired-maybe-insert-subdir, dired-insert-subdir)
	(dired-kill-tree, dired-prev-subdir, dired-mark-subdir-files)
	(dired-kill-subdir, dired-tree-up, dired-tree-down, dired-hide-subdir)
	(dired-hide-all, dired-isearch-filenames, dired-isearch-filenames-regexp)
	(dired-do-isearch, dired-do-isearch-regexp, dired-do-search)
	(dired-do-query-replace-regexp, dired-do-find-regexp)
	(dired-do-find-regexp-and-replace, dired-show-file-type)
	(dired-vc-next-action):
	* lisp/dired-x.el (dired-mark-extension, dired-mark-suffix)
	(dired-flag-extension, dired-clean-patch, dired-clean-tex)
	(dired-very-clean-tex, dired-mark-omitted, dired-omit-expunge)
	(dired-mark-unmarked-files, dired-do-find-marked-files, dired-vm)
	(dired-rmail, dired-do-run-mail, dired-mark-sexp,
	dired-x-bind-find-file):
	* lisp/dired.el (dired-mouse-drag, dired-undo, dired-toggle-read-only)
	(dired-next-line, dired-previous-line, dired-next-dirline)
	(dired-prev-dirline, dired-up-directory, dired-get-file-for-visit)
	(dired-find-file, dired-find-alternate-file, dired-mouse-find-file)
	(dired-mouse-find-file-other-window, dired-mouse-find-file-other-frame)
	(dired-view-file, dired-find-file-other-window, dired-display-file)
	(dired-copy-filename-as-kill, dired-next-subdir)
	(dired-build-subdir-alist, dired-goto-file, dired-do-flagged-delete)
	(dired-do-delete, dired-next-marked-file, dired-prev-marked-file)
	(dired-mark, dired-unmark, dired-flag-file-deletion)
	(dired-unmark-backward, dired-toggle-marks, dired-mark-files-regexp)
	(dired-number-of-marked-files, dired-mark-files-containing-regexp)
	(dired-flag-files-regexp, dired-mark-symlinks, dired-mark-directories)
	(dired-mark-executables, dired-flag-auto-save-files)
	(dired-flag-garbage-files, dired-flag-backup-files, dired-change-marks)
	(dired-unmark-all-marks, dired-unmark-all-files)
	(dired-sort-toggle-or-edit, dired-mark-for-click)
	(dired-enable-click-to-select-mode): Tag commands as applicable only
	for dired-mode.

2023-11-18  Eli Zaretskii  <eliz@gnu.org>

	Avoid loading cl-lib as result of invoking 'load-library'

	* lisp/emacs-lisp/find-func.el (find-function--any-subform-p):
	Don't use 'cl-destructuring-bind'.
	(find-library--from-load-history): Don't use 'cl-loop'.
	* lisp/thingatpt.el (thing-at-point): Don't use 'cl-loop'.  This
	avoids loading cl-lib whenever thingatpt.el is loaded, for
	example, as result of "M-x load-library".

2023-11-18  Po Lu  <luangruo@yahoo.com>

	Offer to grant storage permissions if absent

	* java/org/gnu/emacs/EmacsService.java (externalStorageAvailable)
	(requestStorageAccess23, requestStorageAccess30)
	(requestStorageAccess): New functions.

	* lisp/startup.el (fancy-startup-tail, normal-splash-screen):
	Call android-win functions for inserting the new storage
	permission notice.

	* lisp/term/android-win.el
	(android-display-storage-permission-popup)
	(android-after-splash-screen): New functions.

	* src/android.c (android_init_emacs_service): Link to new Java
	functions.
	(android_external_storage_available_p)
	(android_request_storage_access): New functions.

	* src/android.h: Update prototypes.

	* src/androidfns.c (Fandroid_external_storage_available_p)
	(Fandroid_request_storage_access): New functions.
	(syms_of_androidfns): Register new subrs.

2023-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates): Add `null`

2023-11-17  Spencer Baugh  <sbaugh@janestreet.com>

	Return t from completion-emacs22-try-completion only for completions

	The emacs22 completion style ignores the text after point when
	computing completions.  However, it still needs to take into account
	the entire string it's given, to avoid returning incorrect values.

	Previously, completion-emacs22-try-completion would return t if the
	text before point was an exact completion.  But this is effectively
	saying that the entire input string was an exact completion, which may
	not be correct.  This would cause completing-read with REQUIRE-MATCH=t
	to return a non-completion.

	Now, completion-emacs22-try-completion only returns t if the entire
	input string is an exact completion.

	* lisp/minibuffer.el (completion-emacs22-try-completion): Return t
	only if the entire input string is an exact completion.  (Bug#67210)

2023-11-17  Michael Albinus  <michael.albinus@gmx.de>

	Make Tramp aware of completion-regexp-list

	* lisp/net/tramp.el (tramp-skeleton-file-name-all-completions):
	New defmacro.
	(tramp-completion-handle-file-name-all-completions):
	* lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions):
	* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-name-all-completions):
	* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions):
	* lisp/net/tramp-smb.el (tramp-smb-handle-file-name-all-completions):
	* lisp/net/tramp-sudoedit.el
	(tramp-sudoedit-handle-file-name-all-completions): Use it.

2023-11-17  Po Lu  <luangruo@yahoo.com>

	Correct initial scale calculation when pinching nonselected window

	* lisp/touch-screen.el (touch-screen-pinch): Retrieve present
	scale within the window pinched.
	(touch-screen-handle-point-update): Expunge inefficacious code
	meant to disregard events sent during gesture navigation.

2023-11-17  Po Lu  <luangruo@yahoo.com>

	Correct generation of touchscreen-pinch events

	* lisp/touch-screen.el (touch-screen-pinch): Check that posn-x-y
	is available before scrolling to it.
	(touch-screen-handle-aux-point-update): Don't provide posns for
	windows besides the window where the touch sequence started in
	touchscreen-pinch events.

2023-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* etc/NEWS: Mention incompatible change in `pp` (bug#67180)

	Merge branch 'derived-mode-add-parents'

2023-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	(merge-ordered-lists): Dot a few more `i`s

	Suggested by Mattias Engdegård.

	* lisp/subr.el (merge-ordered-lists): Don't mutate the arg.

	* test/lisp/subr-tests.el (subr-tests--merge-ordered-lists): Make the
	test a bit more precise.

2023-11-16  Po Lu  <luangruo@yahoo.com>

	Disable generation of mouse-1 events after ancillary tool presses

	* lisp/touch-screen.el (touch-screen-handle-scroll): Correct
	typo in comment.
	(touch-screen-handle-point-update): Attempt to detect scroll
	gestures and the like also when what is ancillary-tool.
	(touch-screen-handle-point-up): Don't needlessly compute
	relative xy when transforming aux tool into current tool.
	(touch-screen-handle-touch): Set what field to ancillary-tool
	rather than clear it when initializing the ancillary tool,
	indicating to t-s-h-p-u that it must not generate mouse up
	events.

2023-11-16  Po Lu  <luangruo@yahoo.com>

	Don't pan horizontally when a pinch gesture represents a shrink

	* lisp/touch-screen.el (touch-screen-pinch): Don't pan left if
	the event represents a shrink.

2023-11-16  Andrea Corallo  <acorallo@gnu.org>

	Clean-up some native-comp advice special handling.

	* lisp/emacs-lisp/nadvice.el (advice--add-function): Clean-up
	nativecomp special handling.
	* lisp/emacs-lisp/advice.el (ad-add-advice): Likewise.

2023-11-16  Eli Zaretskii  <eliz@gnu.org>

	Fix scrolling when continuation line starts with a display string

	* src/xdisp.c (start_display): Compute continuation_lines_width
	for starting display in strings and images as well.  (Bug#67201)

2023-11-16  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/nadvice.el (advice--add-function): Move func decl.

2023-11-16  Juri Linkov  <juri@linkov.net>

	* lisp/mail/emacsbug.el (submit-emacs-patch): Use pop-to-buffer-same-window.

	This allows customization with 'display-buffer-alist' (bug#65387).

2023-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	todo-mode.el: Don't let-bind `buffer-read-only`

	Prefer let-binding `inhibit-read-only` so the code can freely change
	`buffer-read-only`.  While at it, prefer #' to quote function names.

	* lisp/calendar/todo-mode.el (todo-rename-category)
	(todo-delete-category, todo-delete-item)
	(todo-edit-item--diary-inclusion, todo-edit-category-diary-inclusion)
	(todo-edit-category-diary-nonmarking, todo-archive-done-item)
	(todo-unarchive-items, todo-display-categories)
	(todo-update-categories-display, todo-filter-items-1)
	(todo-reset-nondiary-marker, todo-reset-done-separator-string)
	(todo-reset-done-string, todo-reset-comment-string):
	Bind `inhibit-read-only` instead of `buffer-read-only`.
	(todo-mode, todo-archive-mode, todo-edit-mode, todo-categories-mode)
	(todo-filtered-items-mode): Let `define-derived-mode` take care of
	adding the keymap to the docstring.
	(todo-mode, todo-archive-mode, todo-categories-mode)
	(todo-filtered-items-mode): Let `define-derived-mode` set
	`mode-class`.

2023-11-16  Po Lu  <luangruo@yahoo.com>

	Pan during touch screen pinch gestures

	* doc/lispref/commands.texi (Touchscreen Events): Document new
	ratio-diff parameter to touchscreen-pinch events.

	* lisp/completion-preview.el (completion-preview-commands):
	Account text-conversion events preview commands as well.

	* lisp/touch-screen.el (touch-screen-aux-tool): Introduce two
	new elements.
	(touch-screen-pinch): Scroll window in accord with event deltas.
	(touch-screen-handle-aux-point-update): Supply the ratio
	difference in generated events.
	(touch-screen-handle-touch): Create a vector with those two new
	elements.

2023-11-15  Juri Linkov  <juri@linkov.net>

	* lisp/simple.el (minibuffer-default-add-completions): Improve (bug#64656).

	Return nil for some popular completions with undefined order that include
	obarray.  Extend the docstring to explain how to disable this feature.

2023-11-15  Juri Linkov  <juri@linkov.net>

	Enable completion-in-region-mode in minibuffer-complete-history/defaults

	* lisp/minibuffer.el (minibuffer-complete-history)
	(minibuffer-complete-defaults): Let-bind completion-in-region-mode-predicate
	to lambda that checks if the "*Completions*" buffer window is visible.
	This enables completion-in-region-mode that supports arrows
	with minibuffer-visible-completions.

2023-11-15  Juri Linkov  <juri@linkov.net>

	* lisp/minibuffer.el (minibuffer-completion-help): Fix base-suffix for region.

	When used with completion-in-region where completion-in-region-mode-predicate
	is non-nil, start base-suffix from point (bug#62700).

2023-11-15  Eshel Yaron  <me@eshelyaron.com>

	Add Completion Preview mode

	This adds a new minor mode, 'completion-preview-mode', that displays
	in-buffer completion suggestions with an inline "preview" overlay.
	(Bug#66948)

	* lisp/completion-preview.el: New file.
	* doc/emacs/programs.texi (Symbol Completion): Document it.
	* etc/NEWS: Announce it.

2023-11-15  Spencer Baugh  <sbaugh@janestreet.com>

	Don't infinite loop in map-y-or-n-p if at the end of kmacro

	Previously, if map-y-or-n-p got -1 from read-event (indicating no
	input due to the end of a keyboard macro), it would just infinite
	loop.

	Now it behaves like other commands which use read-event/read-char/etc,
	and just errors when we try to look up -1 in our keymap and find
	nothing.

	Also, just for the sake of users, print a slightly prettier message
	when this happens.

	* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Don't loop if we reach
	the end of a keyboard macro.  (Bug#67046)

2023-11-15  Eli Zaretskii  <eliz@gnu.org>

	Fix 'tex-compile-commands'

	* lisp/textmodes/tex-mode.el (tex-compile-commands): Respect
	'tex-start-options' better.  (Bug#67030)

2023-11-15  Spencer Baugh  <sbaugh@catern.com>

	Signal file-locked on lock conflict with noninteractive=t

	Previously we would signal a generic error on lock conflict when
	noninteractive=t.  That meant that non-interactively handling a lock
	conflict would require catching all errors and checking the string in
	DATA.

	Now we just signal file-locked instead, which matches the interactive
	behavior when the user says "q" at the prompt.

	Also, when noninteractive, we signal before we write the prompt about
	the lock conflict.  That prompt usually gets in the way of
	noninteractively handling and suppress lock conflict errors.  The
	signal data contains all the necessary information, we don't need to
	write a separate message for noninteractive.

	* lisp/userlock.el (ask-user-about-lock): Signal file-locked on
	noninteractive lock conflict.  (bug#66993)

2023-11-15  Eli Zaretskii  <eliz@gnu.org>

	Fix query-replace at EOB

	* lisp/replace.el (replace-match-maybe-edit): Avoid clobbering
	match-data with outdated buffer position.  (Bug#67124)

2023-11-15  Po Lu  <luangruo@yahoo.com>

	Register ``pinch to zoom'' touch screen gestures

	* doc/emacs/input.texi (Touchscreens): Address pinch gestures.

	* doc/lispref/commands.texi (Touchscreen Events): Address touch
	screen pinch events and the process by which they are produced.

	* java/org/gnu/emacs/EmacsWindow.java (figureChange)
	<ACTION_POINTER_DOWN>: Supply pointer index to getX and getY,
	correcting a mistake where the first touch point's coordinate
	was saved here in lieu of the pointer that was pressed's.

	* lisp/touch-screen.el (touch-screen-current-tool): Revise doc
	string.
	(touch-screen-aux-tool): New variable.
	(touch-screen-scroll-point-to-y, touch-screen-pinch): New
	functions.
	(global-map): Bind [touchscreen-pinch] to touch-screen-pinch.
	(touch-screen-handle-point-update): Revise doc string; set new
	tenth field of t-s-c-t to POINT relative to its window, without
	regard to whether an event has been sent.
	(touch-screen-distance, touch-screen-centrum): New functions.
	(touch-screen-handle-aux-point-update): New function; generate
	and send touchscreen-pinch if need be.
	(touch-screen-handle-point-up): If an ancillary tool exists,
	transfer the information there into touch-screen-current-tool
	and clear t-s-a-t.
	(touch-screen-handle-touch): Call t-s-a-p-u as is proper; set
	t-s-a-t if a touchscreen-down event arrives and t-s-c-t is set.

	* src/androidterm.c (handle_one_android_event): Properly save
	the event's X and Y when a new touch point is registered.

2023-11-15  nverno  <noah.v.peart@gmail.com>

	Fix font-lock for string escapes in lua-ts-mode

	* lisp/progmodes/lua-ts-mode.el (lua-ts--font-lock-settings):
	Apply font-lock to the entire string containing an escape
	sequence. (Bug#67135)

2023-11-15  john muhl  <jm@pub.pink>

	Fix flymake integration in lua-ts-mode (Bug#67152)

	* lisp/progmodes/lua-ts-mode.el (lua-ts-flymake-luacheck): Use
	'flymake-diag-region' to mark highlighted region.

2023-11-15  João Távora  <joaotavora@gmail.com>

	* lisp/progmodes/eglot.el (eglot-server-programs): Fix previous commit.

2023-11-14  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc.el (vc-deduce-backend-nonvc-modes): New variable (bug#67145).

	(vc-deduce-backend): Use it.

2023-11-14  Po Lu  <luangruo@yahoo.com>

	Properly merge EXTRA_EMAIL content with mailto URIs

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate):
	EXTRA_EMAIL is an array rather than a string, so insert
	its first element into an empty mailto URI.

2023-11-14  João Távora  <joaotavora@gmail.com>

	Eglot: Send standard :language-id for typescript-language-server

	bug#67150

	* lisp/progmodes/eglot.el (eglot-server-programs): Update
	language-id for languages handled by typescript-language-server.

2023-11-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	(wisent-python-lex-beginning-of-line): Fix compiler warning

	* lisp/cedet/semantic/wisent/python.el
	(wisent-python-lex-beginning-of-line): Comment out unused test.

2023-11-13  Mattias Engdegård  <mattiase@acm.org>

	Fix variable aliasing bytecode miscompilation (bug#67116)

	The compiler didn't cancel aliasing if the aliased variable was
	modified in a variable binding in the same `let` that created
	the alias.  For example,

	 (let ((x A))
	   (let ((y x)
	         (z (setq x B)))
	     y))

	would incorrectly substitute y->x in the body form despite x being
	already modified at that point, which normally should have canceled
	the aliasing.

	Bug reported by Alan Mackenzie.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize--aliased-vars):
	Now an alist that also contains the aliases; update the doc string.
	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
	* lisp/emacs-lisp/byte-opt.el (byte-optimize-let-form):
	Detect aliasing early for `let`-bound variables as well.
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
	Add test cases.

2023-11-13  João Távora  <joaotavora@gmail.com>

	Fix hanful-insert-character (bug#66970)

	* lisp/leim/quail/hangul.el (hangul-insert-character): Rework.

2023-11-13  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc-hooks.el (vc-display-status): New value 'no-backend' (bug#66464).

	* lisp/vc/vc-hooks.el (vc-default-mode-line-string): Use it.
	* lisp/vc/vc-git.el (vc-git-mode-line-string): Use it.
	* lisp/vc/vc-hg.el (vc-hg-mode-line-string): Use it.

2023-11-13  F. Jason Park  <jp@neverwas.me>

	Revive erc-command-indicator as new module

	* doc/misc/erc.texi: Add entry for `command-indicator' to Modules
	chapter.
	* etc/ERC-NEWS: Mention new module `command-indicator'.
	* lisp/erc/erc-goodies.el (erc-noncommands-list): Replace the
	nonexistent `erc-cmd-SMV' with function `erc-cmd-SAY'.
	(erc-noncommands-mode, erc-noncommands-enable,
	erc-noncommands-disable): Deprecate this module because it's a no-op.
	(erc-command-indicator-face, erc-command-indicator): Migrate from main
	library.
	(erc-command-indicator-mode, erc-command-indicator-enable,
	erc-command-indicator-disable): New module to take the spiritual place
	of `noncommands'.
	(erc-command-indicator): Move function here from main library, along
	with option namesake mentioned above.
	(erc-command-indicator-toggle-hidden): New command to toggle echoed
	command-line visibility.
	(erc--command-indicator-permit-insertion): New function.
	(erc--command-indicator-display): New function, a slightly revised
	version of the old `erc-display-command' from the main library.  Its
	only call site was removed back in d1036d288de "backport: erc
	bugfixes".  However, references were left behind to associated assets,
	like `erc-command-indicator', etc.  The function was later commented
	out in 0c599ee2e2c "* lisp/erc/erc.el: Use `run-hook-with-args` for
	`erc-pre-send-functions`", and then removed by a63ed6f78a6 "Remove
	duplicate ERC prompt on reconnect".
	* lisp/erc/erc-match.el (erc-match-toggle-hidden-fools): Use new
	non-module-specific name for `erc-match--toggle-hidden'.
	(erc-match--toggle-hidden): Move to main library for shared use by
	other modules.
	* lisp/erc/erc.el (erc-hide-prompt): Leave note explaining updated
	role.
	(erc-command-indicator): Move option and function of same name to
	erc-goodies.
	(erc-command-indicator-face): Move to erc-goodies.
	(erc-modules): Remove module `noncommands' from standard value and
	Custom set.  Add `command-indicator' to set.
	(erc--toggle-hidden): "New" function, a rebranded version of the
	utility `erc-match--toggle-hidden' from erc-match.
	(erc--send-input-lines): Accommodate modules wanting alternate
	insertion functions.
	(erc-load-irc-script-lines): Account for `erc-command-indicator' no
	longer being defined in this library.
	* test/lisp/erc/erc-scenarios-base-send-message.el
	(erc-scenarios-base-send-message--command-indicator): New test.
	* test/lisp/erc/erc-tests.el (erc-tests--modules): Remove
	deprecated module `noncommands' from manifest.  (Bug#67031)

2023-11-13  F. Jason Park  <jp@neverwas.me>

	Simplify default text props for ERC input

	* lisp/erc/erc.el (erc--msg-props): Reformat doc string to improve
	readability.
	(erc-send-current-line): Don't bind `erc--msg-prop-overrides' because
	doing so affects all scoped calls to `erc-display-message' made by
	slash commands, etc. and makes handling overly complex and error
	prone.
	(erc-display-msg): Set `erc-msg' property to `msg' instead of `self'
	because the only legitimate use of this function is for inserting
	"echoed" prompt input.  (Bug#60936 and Bug#67031)

2023-11-13  F. Jason Park  <jp@neverwas.me>

	Allow opting out of empty message padding in ERC

	* lisp/erc/erc.el (erc--allow-empty-outgoing-lines-p): New internal
	variable.
	(erc-send-input-line, erc--run-send-hooks): Don't pad output when
	`erc--allow-empty-outgoing-lines-p' is non-nil.  (Bug#67031)

2023-11-13  F. Jason Park  <jp@neverwas.me>

	Make nested input handling more robust in ERC

	* lisp/erc/erc.el (erc--send-action-function): New function-valued
	variable for locally advising `erc-send-action' so that built-in
	modules can elect to handle insertion and sending themselves.
	(erc-send-action): Defer to `erc--send-action-function'.
	(erc--send-action-perform-ctcp): Isolate the message-sending business
	for CTCP ACTIONs that used to reside in `erc-send-action'.
	(erc--send-action-display): Isolate the message-insertion business
	formerly residing in `erc-send-action' for more granular use.  Fix a
	minor bug involving inserted representations of CTCP ACTIONs not
	having `erc-my-nick-face' applied to the speaker.
	(erc--send-action): Perform the same displaying and sending of CTCP
	ACTION messages formerly handled by `erc-send-action', but display
	messages before sending them.
	(erc--current-line-input-split): New variable bound to the post-review
	`erc--input-split' object for the extent of display processing.  This
	mainly benefits slash-command handlers and the utility functions they
	employ, such as `erc-send-message'.
	(erc-cmd-SAY): Defer to `erc--send-message'.
	(erc--send-message-nested-function): New function-valued variable
	supporting an internal interface for influencing how
	`erc-send-message' inserts and sends prompt input.  Some handlers for
	slash commands, like /SV, use `erc-send-message' to perform their own
	insertion and sending, which is normally the domain of
	`erc-send-current-line'.  When this happens, modules can't easily
	leverage the normal hook-based API to do things like suppress
	insertion but allow sending or vice-versa.  This variable provides an
	internal seam for modules to exert such influence.
	(erc-send-message): Behave specially when called by the default
	interactive client via `erc-send-current-line' and friends.
	(erc--send-message-external): New function to house the former body of
	`erc-send-message', for third-party code needing to apply the
	traditional behavior.
	(erc--send-message-nested): New function for turning arbitrary text,
	such as replacement prompt input, into outgoing message text by doing
	things like ensuring "send" hooks run and invariants for prompt
	markers are preserved.
	(erc--make-input-split): New helper function for creating a standard
	`erc--input-split' object from a string.  This is arguably less
	confusing than adding another constructor to the struct definition.
	(erc-send-current-line): Bind `erc--current-line-input-split' when
	dispatching prompt-input handlers.  Use helper `erc--make-input-split'
	to initialize working `erc--input-split' state object.
	(erc--run-send-hooks): Honor existing `refoldp' slot from
	`erc--input-split' object.
	(erc--send-input-lines): Convert to generic function to allow modules
	control over fundamental insertion and sending operations, which is
	necessary for next-generation features, like multiline messages.
	(erc-modes): Don't output non-modules.  That is, only list actual
	modules created via `define-erc-module', and `quote' members of the
	resulting list.
	* test/lisp/erc/erc-scenarios-base-send-message.el: New test file.
	* test/lisp/erc/resources/base/send-message/noncommands.eld: New data
	file.  (Bug#67031)

2023-11-13  F. Jason Park  <jp@neverwas.me>

	Always run erc-server-send-queue via timer

	* lisp/erc/erc-backend.el (erc--server-send, erc-server-send): Convert
	the latter into a wrapper that calls the former, a "new" internal
	generic function, so that built-in modules can do things like prepend
	tags to outgoing messages and send messages over other transports or
	proxy protocols.  Extend the `no-penalty' parameter to mean ERC will
	schedule an imminent send via a timer.  And always run the function
	`erc-server-send-queue' on a timer.  (Bug#67031)

2023-11-13  F. Jason Park  <jp@neverwas.me>

	Make ERC's error-notice formatting more consistent

	* lisp/erc/erc-backend.el (erc--server-propagate-failed-connection):
	Include leading three-asterisk notice prefix when reporting process
	exit status, and set the `erc-msg' text property to `notice-error'.
	(erc-schedule-reconnect): Include leading notice prefix when inserting
	`reconnecting' message.
	* lisp/erc/erc.el (erc-process-input-line, erc-cmd-PART,
	erc-cmd-TOPIC): Display `no-target' messages as "error notices".
	(erc-message-english-disconnected,
	erc-message-english-disconnected-noreconnect): Hard-code standard
	value of `erc-notice-prefix' into message text for consistency during
	formatting and insertion.
	* test/lisp/erc/erc-tests.el (erc--refresh-prompt): Expect notice
	prefix before `no-target' message.  (Bug#67031)

2023-11-13  F. Jason Park  <jp@neverwas.me>

	Offer alternate pool-creation strategies in erc-nicks

	* lisp/erc/erc-nicks.el (erc-nicks-bg-color): Expand doc string.
	(erc-nicks-colors): Add new choices `font-lock' and `ansi-color'.
	(erc-nicks--adjust-contrast): Add assertion to prevent dependency bug
	from resurfacing when hacking on module activation code.
	(erc-nicks--create-pool-function): New function-valued variable to
	specify a pool creation strategy.  Note in doc string that this could
	form the basis for a possible user option should the need arise.
	(erc-nicks--create-coerced-pool): New function for filtering
	user-provided `erc-nicks-color' values.
	(erc-nicks--create-pool, erc-nicks--create-culled-pool): Rename former
	to latter.
	(erc-nicks--init-pool): Call `erc-nicks--create-pool-function' to
	actually create pool.  Account for new `erc-nicks-colors' values.
	(erc-nicks-enable, erc-nicks-mode): Set `erc-nicks--fg-rgb' before
	`erc-nicks--init-pool' to prevent type error in filters that depend on
	that variable being initialized.  This is a bug fix.
	(erc-nicks-refresh): Provide helpful user error instead of letting
	`arith-error' propagate due to an empty pool.
	(erc-nicks--colors-from-faces): New helper function.
	* test/lisp/erc/erc-nicks-tests.el (erc-nicks--create-pool,
	erc-nicks--create-culled-pool): Rename test from former to latter and
	update function invocations to reflect that.
	(erc-nicks--create-coerced-pool): New test.  (Bug#63569)

2023-11-13  F. Jason Park  <jp@neverwas.me>

	Don't use func-arity to trigger API warning in url-irc

	* lisp/url/url-irc.el (url-irc): Use more robust `condition-case'
	pattern instead, which will still fail when met with various edge
	cases.  The old way was only useful for non-variadic lambda lists
	consisting entirely of named positional parameters.  (Bug#56514)

2023-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	Subject: (derived-mode-add-parents): Add documentation and one more test

	* doc/lispref/modes.texi (Derived Modes): Document new derived-modes API.
	* test/lisp/subr-tests.el (subt-tests--merge-ordered-lists): New test.

2023-11-12  Xiaoyue Chen  <xchen@vvvu.org>  (tiny change)

	Pass only the local parts of Eshell's $PATH to 'tramp-remote-path'

	* lisp/eshell/esh-proc.el (eshell-gather-process-output): Get the
	local part of the $PATH (bug#67126).

2023-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(derived-mode-all-parents): Fix handling of cycles

	* lisp/subr.el (derived-mode-all-parents): Fix the handling of cycles
	so that it doesn't fill the cache with incorrect results.
	(merge-ordered-lists): Improve docstring.
	(provided-mode-derived-p): Swap the loops since `modes` is usually
	shorter than `ps`.

	* test/lisp/subr-tests.el (subr-tests--parent-mode): Simplify.
	(subr-tests--mode-A, subr-tests--mode-B, subr-tests--mode-C): New funs.
	(subt-tests--derived-mode-add-parents): New test.

2023-11-12  Stephen Berman  <stephen.berman@gmx.net>

	Add support in todo-mode.el for ISO date format

	* lisp/calendar/todo-mode.el (todo--date-pattern-groups): New defconst.
	(todo-date-pattern): Use it to extend pattern matching of
	`calendar-date-display-form' to support the ISO date format in
	todo item date headers (bug#66395, bug#55284).
	(todo-edit-item--header): Make it work with ISO date strings.

2023-11-12  Jim Porter  <jporterbugs@gmail.com>

	Hook 'bug-reference-mode' up to 'thing-at-point'

	* lisp/progmodes/bug-reference.el (bug-reference--url-at-point): New
	function.
	(bug-reference-mode, bug-reference-prog-mode): Factor initialization
	code out to...
	(bug-reference--init): ... here.

	* test/lisp/progmodes/bug-reference-tests.el (test-thing-at-point):
	New test.

	* etc/NEWS: Announce this change (bug#66752).

2023-11-12  Po Lu  <luangruo@yahoo.com>

	Adjust dump file location under Android

	* java/org/gnu/emacs/EmacsApplication.java (EmacsApplication)
	<apkFileName>: New field.
	(getApkFile): Move from EmacsService.java.
	(findDumpFile): If the dump file is older than the APK, delete
	it irrespective of whether the checksums agree.
	(onCreate): Initialize apkFileName.

	* java/org/gnu/emacs/EmacsService.java (onCreate): Use
	EmacsApplication.apkFileName.

	* src/android.c (android_on_low_memory): Correct arguments to
	Fclear_image_cache.

	* src/image.c (Fclear_image_cache): Check that animation_cache
	is always a cons.

2023-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	Move EIEIO's C3 linearization code to `subr.el`

	The code was used to linearize the EIEIO class hierarchy, since
	it results in saner results than things like BFS or DFS.
	By moving it to `subr.el` we get to benefit from that same
	advantage both in `cl--class-allparents` and
	in `derived-mode-all-parents`.

	* lisp/subr.el (merge-ordered-lists): New function.
	(derived-mode-all-parents): Use it to improve parent ordering.

	* lisp/emacs-lisp/eieio-core.el (eieio--c3-candidate)
	(eieio--c3-merge-lists): Delete functions, replaced by
	`merge-ordered-lists`.
	(eieio--class-precedence-c3): Use `merge-ordered-lists`.

	* lisp/emacs-lisp/cl-preloaded.el (cl--class-allparents):
	Use `merge-ordered-lists` to improve parent ordering.
	* lisp/emacs-lisp/cl-macs.el (cl--struct-all-parents): Delete function.
	(cl--pcase-mutually-exclusive-p): Use `cl--class-allparents` instead.

2023-11-11  João Távora  <joaotavora@gmail.com>

	Fix test failures in test/lisp/minibuffer-tests.el

	bug#48841, bug#47711

	In some instances the test code needed to be updated to make different
	assumptions about implementation details.

	In others, like the ones about the completions-first-difference face,
	minor parts of the actual user-visible behavior were broken.

	* test/lisp/minibuffer-tests.el (completion-test1): Robustify test.
	(completion--pcm-score): Don't assume completion-score is stored
	in string as a property.

	* lisp/minibuffer.el (completion--hilit-from-re): Take new parameter.
	(completion-pcm--hilit-commonality): Use it.

2023-11-11  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	ce0ebb91f25 Improve documentation of read syntax and printed represen...
	81f84b00a5d ; * doc/lispref/modes.texi (Other Font Lock Variables): A...
	434592b0746 ; * lisp/dired.el (dired-use-ls-dired): Doc fix (bug#67053).
	fe000236cf2 Improve documentation of signaling errors in batch mode
	103ca678ac1 Fix treesit-simple-indent-presets docstring (bug#67007)
	b7871cefe7b Prevent an infinite loop in todo-mode (bug#66994)
	fa8cc4c9ee2 Fix cmake-ts-mode indentation (Bug#66845)
	5bdc61bc0ef Update to Org 9.6.11
	18e2de1bec9 ; * lisp/bindings.el (right-word, left-word): Doc fix.
	4f0fc3bfda3 ; Document core input events problems with XInput2

2023-11-11  Po Lu  <luangruo@yahoo.com>

	Enable canceling tap gestures

	* doc/lispref/commands.texi (Touchscreen Events): Relate new
	THRESHOLD argument to touch-screen-track-tap.

	* lisp/button.el (push-button):

	* lisp/wid-edit.el (widget-button--check-and-call-button):
	Provide a threshold to enable canceling button presses.

	* lisp/touch-screen.el (touch-screen-track-tap): Enable
	canceling tap gestures and resuming touch sequence translation
	if the touch point exceeds a set threshold.

2023-11-11  Jim Porter  <jporterbugs@gmail.com>

	Add some more Eshell history tests

	* test/lisp/eshell/em-hist-tests.el (em-hist-test/check-history-file):
	New function.  Use it throughout this file.
	(em-hist-test/history-append): Rename to...
	(em-hist-test/write-history/append): ... this.
	(em-hist-test/history-read): Rename to...
	(em-hist-test/write-history/overwrite): ... this.
	(em-hist-test/write-history/append-multiple-eshells)
	(em-hist-test/write-history/overwrite-multiple-shells): New tests.
	(em-hist-test/write-history/read-only): Check the resulting history.

2023-11-11  Liu Hui  <liuhui1610@gmail.com>

	Improve read/append behavior of eshell history command

	* lisp/eshell/em-hist.el (eshell-hist--new-items): New variable.
	(eshell-hist-initialize): Initialize 'eshell-hist--new-items' to 0.
	(eshell/history): Change the behavior of 'history -a' to "append new
	history in current buffer to history file".  Clarify the help text of
	'history -r'.
	(eshell-add-input-to-history): Increase counter of new history items.
	(eshell-read-history): Respect 'eshell-hist-ignoredups' option.
	(eshell-write-history): If the optional argument APPEND is non-nil,
	appending new history items rather than the whole history.

	* test/lisp/eshell/em-hist-tests.el (em-hist-test/history-append)
	(em-hist-test/history-read): New tests (bug#66768).

2023-11-10  Eli Zaretskii  <eliz@gnu.org>

	Fix mode-line after switching from WDired back to Dired

	* lisp/wdired.el (wdired-change-to-dired-mode): Call
	'dired-sort-set-mode-line' to set the mode name in the mode line,
	so as to restore the display before switching to WDired.
	(Bug#67028)

2023-11-10  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Add some headers to message-ignored-bounced-headers

	* lisp/gnus/message.el (message-ignored-bounced-headers): These are
	headers that a) are derived from the exact text of the message and
	thus are now invalid and b) either will be automatically regenerated
	when the message is sent or shouldn't be present on the message copy
	at all.

2023-11-10  Mattias Engdegård  <mattiase@acm.org>

	Use BASE_EQ instead of EQ for some uninterned symbols

	* src/editfns.c (labeled_restrictions_pop, Fwiden):
	* src/eval.c (lexbound_p, Fbacktrace__locals):
	* src/fileio.c (Finsert_file_contents):
	* src/fns.c (Fyes_or_no_p):
	* src/keyboard.c (command_loop_1):
	Use BASE_EQ for comparing with Qoutermost_restriction,
	Qinternal_interpreter_environment and Qunbound as uninterned
	symbols won't be EQ to a symbol-with-pos.

2023-11-10  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/gitlab-ci.yml (.native-comp-template): Adapt "changes".

2023-11-10  Michael Albinus  <michael.albinus@gmx.de>

	Don't expand file names for non-existing remote connections

	* lisp/saveplace.el (save-place-abbreviate-file-names) [:set]:
	* lisp/bookmark.el (bookmark--remove-fringe-mark): Don't expand
	file names for non-existing remote connections.  (Bug#66982)

2023-11-10  Po Lu  <luangruo@yahoo.com>

	Clear image caches in reaction to system VM warnings

	* java/org/gnu/emacs/EmacsNative.java (onLowMemory):

	* java/org/gnu/emacs/EmacsService.java (onLowMemory): New
	function.

	* src/android.c (android_on_low_memory, onLowMemory): New
	functions called when a VM caution is registered.  Clear
	the image cache and run garbage collection.

2023-11-10  Yuan Fu  <casouri@gmail.com>

	Mark treesit--things-around obsolete

	* lisp/treesit.el (treesit--things-around): Mark obsolete.

2023-11-10  Yuan Fu  <casouri@gmail.com>

	Replace treesit--things-around with new functions (bug#66989)

	* lisp/treesit.el (treesit-forward-sexp):
	Replace things-around with thing-at.
	(treesit--navigate-thing): Replace things-around with
	thing-prev/next/at.  Also this should fix the problem described in
	bug#66989.
	(treesit-thing-at-point): Replace things-around with thing-at.

2023-11-10  Yuan Fu  <casouri@gmail.com>

	Add treesit thing-at-point functions

	* lisp/treesit.el (treesit--thing-sibling):
	(treesit--thing-prev):
	(treesit--thing-next):
	(treesit--thing-at): New functions.

2023-11-10  Yuan Fu  <casouri@gmail.com>

	Add treesit-node-enclosed-p

	* doc/lispref/parsing.texi (Accessing Node Information):
	Add manual entry.
	* lisp/treesit.el (treesit-node-enclosed-p): New function.
	(treesit): Add shortdoc entry.
	* test/src/treesit-tests.el (treesit-node-api): Add tests.

2023-11-10  Yuan Fu  <casouri@gmail.com>

	Add shortdoc for treesit-node-get

2023-11-09  Andrea Corallo  <acorallo@gnu.org>

	Clean-up warnings for non native builds (this time for real)

	* lisp/emacs-lisp/comp.el (comp-native-version-dir)
	(comp-subr-arities-h, native-comp-eln-load-path)
	(native-comp-enable-subr-trampolines): Remove warning.
	(comp--compile-ctxt-to-file, comp--init-ctxt, comp--release-ctxt)
	(comp-el-to-eln-filename)
	(comp-el-to-eln-rel-filename, native-elisp-load): Declare.
	* lisp/emacs-lisp/comp-run.el (comp--no-native-compile)
	(comp-deferred-pending-h, comp-installed-trampolines-h)
	(native-comp-enable-subr-trampolines): Remove warning.
	(comp--install-trampoline, comp-el-to-eln-filename)
	(native-elisp-load): Declare.
	* lisp/emacs-lisp/comp-common.el: Update.

2023-11-09  Juri Linkov  <juri@linkov.net>

	* lisp/minibuffer.el (minibuffer-choose-completion-or-exit): Improve.

	Use minibuffer-complete-and-exit instead of exit-minibuffer
	since this is what it's used in the completion minibuffer.

2023-11-09  Juri Linkov  <juri@linkov.net>

	Improve 'next-line-completion' and add more tests

	* lisp/simple.el (next-line-completion): Improve (bug#59486).
	Better handle the case when completion-auto-wrap is nil.

	* test/lisp/minibuffer-tests.el (completion-auto-wrap-test)
	(completions-header-format-test)
	(completions-affixation-navigation-test): Add calls to
	'next-line-completion' and 'previous-line-completion'.
	(completions-group-navigation-test): New test.

2023-11-09  Andrea Corallo  <acorallo@gnu.org>

	Clean-up warnings for non native builds

	* lisp/emacs-lisp/comp-common.el (native-comp-enable-subr-trampolines)
	(comp-installed-trampolines-h, comp-subr-arities-h)
	(native-comp-eln-load-path, comp-native-version-dir)
	(comp-deferred-pending-h, comp--no-native-compile): Silence
	warning.
	(comp-el-to-eln-rel-filename, native-elisp-load)
	(comp--release-ctxt, comp--init-ctxt)
	(comp--compile-ctxt-to-file, comp-el-to-eln-filename)
	(comp--install-trampoline): Declare function.
	* lisp/emacs-lisp/comp.el : Update.

2023-11-09  Andrea Corallo  <acorallo@gnu.org>

	comp: Don't load.el comp when C-h f

	* lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers)
	(comp-function-type-spec): Move here.

2023-11-09  Andrea Corallo  <acorallo@gnu.org>

	comp: Add comp-common.el

	* lisp/emacs-lisp/comp-common.el: New file.
	(comp-common): New group.
	(native-comp-verbose, native-comp-never-optimize-functions)
	(native-comp-async-env-modifier-form, comp-limple-calls)
	(comp-limple-sets, comp-limple-assignments)
	(comp-limple-branches, comp-limple-ops)
	(comp-limple-lock-keywords, comp-log-buffer-name, comp-log)
	(native-comp-limple-mode, comp-log-to-buffer)
	(comp-ensure-native-compiler, comp-trampoline-filename)
	(comp-eln-load-path-eff): Move here
	* lisp/emacs-lisp/comp-run.el (comp-common): Require.
	* lisp/emacs-lisp/comp.el (comp-common): Require.
	* admin/MAINTAINERS: Add comp-common.el
	* lisp/Makefile.in (COMPILE_FIRST): Likewise.
	* src/Makefile.in (elnlisp): Likewise.

2023-11-09  Andrea Corallo  <acorallo@gnu.org>

	Don't load comp when installing an existing trampoline

		* lisp/emacs-lisp/nadvice.el (advice--add-function): Update.
		(comp-subr-trampoline-install): Update src file.
		* lisp/emacs-lisp/comp.el (comp-trampoline-compile): Autoload.
		* lisp/emacs-lisp/comp-run.el (comp-log-buffer-name)
		(native--compile-async, comp-warn-primitives)
		(comp-trampoline-filename, comp-eln-load-path-eff)
		(comp-trampoline-search, comp-trampoline-compile): Move here.
		* lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): Update
		src file.

2023-11-09  Andrea Corallo  <acorallo@gnu.org>

	comp: don't require 'warnings' in comp-run

	* lisp/emacs-lisp/comp-run.el (warnings): Don't require.
	(warning-suppress-types): Wave warning.
	* lisp/emacs-lisp/warnings.el (warning-suppress-types): Autoload it.

2023-11-09  Andrea Corallo  <acorallo@gnu.org>

	comp: make comp-run don't require cl-lib at runtime

	* lisp/emacs-lisp/comp-run.el (cl-lib): Require it only at compile
	time.
	(native-compile-async-skip-p): Use 'seq-some'.
	(native--compile-async): Don't use 'cl-substitute'.

2023-11-09  Andrea Corallo  <acorallo@gnu.org>

	comp: split code in comp-run.el

	* lisp/emacs-lisp/comp-run.el : New file.
	(comp-run)
	(native-comp-jit-compilation-deny-list)
	(native-comp-async-jobs-number)
	(native-comp-async-report-warnings-errors)
	(native-comp-always-compile)
	(native-comp-async-cu-done-functions)
	(native-comp-async-all-done-hook)
	(native-comp-async-env-modifier-form)
	(native-comp-async-query-on-exit, native-comp-verbose)
	(comp-log-buffer-name, comp-async-buffer-name, comp-no-spawn)
	(comp-async-compilations, native-comp-limple-mode)
	(comp-ensure-native-compiler, native-compile-async-skip-p)
	(comp-files-queue, comp-async-compilations, comp-async-runnings)
	(comp-num-cpus, comp-effective-async-max-jobs)
	(comp-last-scanned-async-output)
	(comp-accept-and-process-async-output, comp-valid-source-re)
	(comp-run-async-workers, native--compile-async)
	(native-compile-async): Move these definitions here.
	* lisp/Makefile.in (COMPILE_FIRST): Update.
	* src/Makefile.in (elnlisp): Likewise.
	* admin/MAINTAINERS: Likewise.

2023-11-09  Eshel Yaron  <me@eshelyaron.com>

	Promptly disable 'completion-in-region-mode' (bug#67001)

	Avoid keeping 'completion-in-region-mode' on when exiting
	'completion--in-region-1' if the *Completions* buffer isn't shown.
	Otherwise, the bindings from 'completion-in-region-mode-map' linger,
	notable shadowing other bindings for TAB.

	* lisp/minibuffer.el (completion--in-region-1): Disable
	'completion-in-region-mode' if the *Completions* buffer isn't visible.

2023-11-09  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/elisp-mode.el (elisp--local-variables): Remove `debug'.

	Remove symbol `debug' from the condition-case handler of `error'
	that was added in commit f931cebce76d911dfc61274e0a8c1de3627b9179
	since it interferes on completing in an incomplete elisp form (bug#66979).

2023-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	Use `derived-mode-add-parents` in remaining uses of `derived-mode-parent`

	Until now multiple inheritance wasn't really used, but some ad-hoc
	code went a bit beyond the normal uses of the mode hierarchy.
	Use the new multiple inheritance code to replace that ad-hoc code,
	thereby eliminating basically all remaining direct uses of the
	`derived-mode-parent` property.

	CEDET had its own notion of mode hierrchy using `derived-mode-parent`
	as well as its own `mode-local-parent` property set via
	`define-child-mode`.
	`derived-mode-add-parents` lets us reimplement `define-child-mode`
	such that CEDET can now use the normal API functions.

	* lisp/locate.el (locate-mode): Use `derived-mode-add-parents`.

	* lisp/cedet/mode-local.el (get-mode-local-parent): Declare obsolete.
	(mode-local-equivalent-mode-p, mode-local-use-bindings-p): Make them
	obsolete aliases.
	(mode-local--set-parent): Rewrite to use `derived-mode-add-parents`.
	Declare as obsolete.
	(mode-local-map-mode-buffers): Use `derived-mode-p`.
	(mode-local-symbol, mode-local--activate-bindings)
	(mode-local--deactivate-bindings, mode-local-describe-bindings-2):
	Use `derived-mode-all-parents`.

	* lisp/cedet/srecode/table.el (srecode-get-mode-table):
	* lisp/cedet/srecode/find.el (srecode-table, srecode-load-tables-for-mode)
	(srecode-all-template-hash): Use `derived-mode-all-parents`.

	* lisp/cedet/srecode/map.el (srecode-map-entries-for-mode):
	* lisp/cedet/semantic/db.el (semanticdb-equivalent-mode):
	Use `provided-mode-derived-p` now that it obeys `define-child-mode`.

2023-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	subr.el: Add multiple inheritance to `derived-mode-p`

	Add the ability for a major mode to declare "extra parents" in
	addition to the one from which it inherits.

	* lisp/subr.el (derived-mode-add-parents): New function.
	(derived-mode-all-parents): Adjust accordingly.

2023-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	Use new `derived-mode-all/set-parents` functions.

	Try and avoid using the `derived-mode-parent` property directly
	and use the new API functions instead.

	* lisp/emacs-lisp/derived.el (define-derived-mode):
	Use `derived-mode-set-parent`.

	* lisp/loadhist.el (unload--set-major-mode):
	* lisp/info-look.el (info-lookup-select-mode):
	* lisp/ibuf-ext.el (ibuffer-list-buffer-modes):
	* lisp/files.el (dir-locals--get-sort-score):
	* lisp/emacs-lisp/cl-generic.el (cl--generic-derived-specializers):
	Use `derived-mode-all-parents`.

2023-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	(derived-mode-all-parents): Speed up with a cache

	Most uses of the mode hierarchy don't really need to construct the
	list, they just need to iterate over it.  With single inheritance
	we could do it just by jumping up from a mode to its parent,
	but to support the upcoming multiple inheritance we'd need a more
	complex and costly iterator.
	Luckily, the inheritance graph is mostly static so we can cache
	the list of all parents, making `derived-mode-all-parents` cheap
	enough to be the basis of iteration and keeping the API very simple.

	* lisp/subr.el (derived-mode-all-parents): Cache the result.
	(derived-mode--flush): New function.
	(derived-mode-set-parent): Use it.

2023-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	subr.el: Provide a functional API around `derived-mode-parent`

	The `derived-mode-parent` property should be an implementation detail,
	so we can change it more easily.  To that end, add functions to set and
	query it.

	* lisp/subr.el (derived-mode-all-parents): New function.
	(provided-mode-derived-p): Use it.
	(derived-mode-set-parent): New function.

2023-11-09  Po Lu  <luangruo@yahoo.com>

	Guarantee files are auto-saved when Emacs is terminated by Android

	* java/org/gnu/emacs/EmacsNative.java (shutDownEmacs):

	* java/org/gnu/emacs/EmacsService.java (onDestroy): New
	function.  When invoked, call shut_down_emacs and await its
	completion.

	* src/android.c (android_shut_down_emacs, shutDownEmacs): New
	functions.

2023-11-08  Alan Mackenzie  <acm@muc.de>

	With `native-compile', compile lambdas in a defun or lambda too

	This fixes bug#64646.  Also refactor two functions to reduce
	code duplication.

	* lisp/emacs-lisp/comp.el (comp-spill-lap-function/symbol)
	(comp-spill-lap-function/list): Add all functions found by the
	byte compiler (including lambdas) to the native compiler's
	context, thus making them be native compiled.  Refactor to use
	comp-intern-func-in-ctxt.  Make comp-spill-lap-function/list
	also compile closures.

	* test/src/comp-resources/comp-test-funcs.el
	(comp-tests-lambda-return-f2): New function

	* test/src/comp-tests.el (comp-test-lambda-return2)
	(comp-tests-free-fun-f2): New functions to test that internal
	lambdas get native compiled.

2023-11-08  Philip Kaludercic  <philipk@posteo.net>

	Simplify 'project-remember-projects-under'

	* lisp/progmodes/project.el (project-remember-projects-under): Instead
	of traversing the directories manually, reuse
	`directory-files-recursively' to reduce complexity.  (Bug#66649)

2023-11-08  Juri Linkov  <juri@linkov.net>

	* lisp/minibuffer.el (minibuffer-choose-completion-or-exit): New command.

	(minibuffer-visible-completions-map): Bind it to "RET".
	https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg00246.html

2023-11-08  Po Lu  <luangruo@yahoo.com>

	Don't leave point amid text conversion edits if auto-fill transpires

	* lisp/simple.el (analyze-text-conversion): Save point in
	old-point after auto-fill completes, so that point-moved is not
	set if point remains intact subsequent to the execution of both
	hooks.

2023-11-07  João Távora  <joaotavora@gmail.com>

	Eglot: Demote errors to warnings in eglot-ensure

	Github-reference: https://github.com/joaotavora/eglot/discussions/1318

	* doc/misc/eglot.texi (Quick Start): Reword.
	(Starting Eglot): Reword.

	* lisp/progmodes/eglot.el (eglot-ensure): Demote errors to warnings.

2023-11-06  Juri Linkov  <juri@linkov.net>

	* lisp/simple.el (next-line-completion): Improve (bug#59486).

	Handle the case when lines with completion candidates are
	interspersed with lines that contain group headings.

2023-11-06  João Távora  <joaotavora@gmail.com>

	Allow completion frontends to fontify candidates just-in-time

	bug#48841, bug#47711

	The variable may be bound by the frontend to a non-nil around
	completion-producing calls like completion-all-completions.  See
	completion-lazy-hilit docstring for more info.

	* lisp/icomplete.el (icomplete-minibuffer-setup): Set completion-lazy-hilit.
	(icomplete--render-vertical): Call completion-lazy-hilit.
	(icomplete-completions): Call completion-lazy-hilit.

	* lisp/minibuffer.el (completion-lazy-hilit): New variable.
	(completion-lazy-hilit): New function.
	(completion-lazy-hilit-fn): New variable.
	(completion-pcm--regexp)
	(completion--flex-score-last-md): New helper variables.
	(completion--flex-score-1): New helper.
	(completion-pcm--hilit-commonality): Use completion-lazy-hilit.
	(completion--flex-adjust-metadata): Rework sorting code.

	* etc/NEWS: Mention completion-lazy-hilit

2023-11-06  Stefan Kangas  <stefankangas@gmail.com>

	Silence warning when requiring ruby-ts-mode

	* lisp/progmodes/ruby-ts-mode.el: Silence warning when requiring
	file without a treesitter grammar.

2023-11-06  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc-git.el (vc-git-revision-table): Reverse the table (bug#64656).

2023-11-06  Po Lu  <luangruo@yahoo.com>

	Emulate secondary selections on Android

	* doc/lispref/frames.texi (Other Selections): Revise
	documentation to match.

	* lisp/term/android-win.el (android-secondary-selection): New
	variable.
	(android-primary-selection, android-get-clipboard-1)
	(android-get-primary, gui-backend-get-selection)
	(gui-backend-selection-exists-p, gui-backend-selection-owner-p)
	(gui-backend-set-selection): Update doc strings and code as is
	proper.

2023-11-06  Jeremy Bryant  <jb@jeremybryant.net>

	* lisp/emacs-lisp/cl-extra.el (cl-remprop): Update names to match docstring

2023-11-05  Juri Linkov  <juri@linkov.net>

	New option to use arrows in the minibuffer to select completions (bug#59486)

	* lisp/minibuffer.el (minibuffer-visible-completions): New defcustom.
	(minibuffer-visible-completions-bind): New function.
	(minibuffer-visible-completions-map): New defvar-keymap.
	(minibuffer-mode): Set buffer-local minibuffer-completion-auto-choose
	to nil for minibuffer-visible-completions.
	(completing-read-default, completion-in-region-mode):
	Use minibuffer-visible-completions to compose keymap
	with minibuffer-visible-completions-map.
	(minibuffer-next-completion): Add new arg VERTICAL,
	and use next-line-completion.
	(minibuffer-next-line-completion)
	(minibuffer-previous-line-completion): New commands.

2023-11-05  Stefan Kangas  <stefankangas@gmail.com>

	Declare calc-eval-error in calc.el

	* lisp/calc/calc.el (calc-eval-error): Declare.  (Bug#58801)

2023-11-05  Stephen Gildea  <stepheng+emacs@gildea.com>

	Further improve test coverage of time-stamp-pattern parsing

	* test/lisp/time-stamp-tests.el (time-stamp-custom-pattern): Use test
	strings that are easier to mis-parse, for a more exacting test.

	* (fz-make+zone, fz-make-zone): Declare pure.

2023-11-05  Po Lu  <luangruo@yahoo.com>

	Implement more Android text editing controls

	* lisp/term/android-win.el (android-deactivate-mark-command):
	New command.
	(select-all, start-selecting-text, stop-selecting-text): Arrange
	for commands manipulating the region to be executed when these
	keys are registered.

	* src/android.c (android_get_keysym_name): Return the keysym
	name of each of the new keysyms introduced.

	* src/androidterm.c (performContextMenuAction): Save special
	keysyms into key events for the selectAll, startSelectingText
	and stopSelectingText actions.

2023-11-05  Dmitry Gutov  <dmitry@gutov.dev>

	Add project-any-command and project-prefix-or-any-command

	* lisp/progmodes/project.el (project-any-command): New command.
	(project-prefix-map): Bind it to 'o'.
	(project-switch-commands): Add entry for it here too.
	(project-prefix-or-any-command): New command (bug#63648).
	(project-switch-commands): Update the custom type to mention
	'project-prefix-or-any-command' as well.
	* etc/NEWS: Document the change.

2023-11-04  F. Jason Park  <jp@neverwas.me>

	Align date stamps to whole days in ERC

	* lisp/erc/erc-stamp.el (erc-stamp--current-time): Ditch overriding
	precedence of the `erc--ts' property in `:around' method because the
	variable `erc-stamp--current-time' fills that role well enough.
	(erc-stamp--current-datestamp-left): Remove unused variable.
	(erc-stamp--insert-date-stamp-as-phony-message): Assume
	`erc-timestamp-last-inserted-left' has already been assigned the
	updated rendered stamp for the current time.
	(erc-stamp--lr-date-on-pre-modify): Use the variable
	`erc-stamp--current-time' instead of the `erc-ts' property to convey
	an overriding time value for `erc-add-timestamp'.  Set
	`erc-timestamp-last-inserted-left' instead of fiddling with another
	temporary variable to hack around these ill-fitting interfaces.  Use
	day-aligned time value for the `erc-ts' property assigned to date
	stamps.
	(erc-stamp--date-mode): New internal minor mode.
	(erc-insert-timestamp-left-and-right): Defer to `erc-stamp--date-mode'
	for setting up date-stamp specific hooks.
	(erc-stamp--time-as-day): New function to "round" a date stamp to
	start of local day.
	(erc-stamp--setup): Defer to `erc-stamp--date-mode' for date-stamp
	specific teardown.  (Bug#60936)
	* test/lisp/erc/erc-fill-tests.el
	(erc-fill-tests--current-time-value): Change default value to nil.
	(erc-stamp--current-time): New method for test cases.
	(erc-fill-tests--insert-privmsg): Use realistic value for `unparsed'
	slot.
	(erc-fill-tests--wrap-populate): Bind
	`erc-fill-tests--current-time-value' to 0.  Don't mock the function
	`erc-stamp--current-time' because doing so inhibits normal polymorphic
	dispatch, which test cases rely on for delivering correct timestamp
	values in varied contexts.

2023-11-04  F. Jason Park  <jp@neverwas.me>

	Decouple disparate escape-hatch concerns in erc-stamp

	* lisp/erc/erc-stamp.el (erc-stamp--allow-unmanaged): Improve doc
	string.
	(erc-stamp--permanent-cursor-sensor-functions): New variable to take
	over the formerly provided `cursor-sensor-functions' aspect of the
	flag `erc-stamp--allow-unmanaged'.
	(erc-add-timestamp): Use
	`erc-stamp--permanent-cursor-sensor-functions' instead of
	`erc-stamp--allow-unmanaged' in guard condition.
	(erc-munge-invisibility-spec): Use dedicated compatibility flag
	`erc-stamp--permanent-cursor-sensor-functions' and forgo unnecessary
	setup when it's non-nil.  (Bug#60936)

2023-11-04  F. Jason Park  <jp@neverwas.me>

	Preserve user markers when inserting ERC date stamps

	* lisp/erc/erc-stamp.el
	(erc-stamp--insert-date-stamp-as-phony-message): Ensure existing
	user markers aren't displaced by date-stamp insertion.
	* lisp/erc/erc.el (erc--insert-line-function): New function-valued
	variable for overriding `insert'.
	(erc-insert-line): Call `erc--insert-line-function', when non-nil, to
	insert line specially.
	* test/lisp/erc/erc-scenarios-stamp.el
	(erc-scenarios-stamp--on-insert-modify): New assertion helper
	function.
	(erc-scenarios-stamp--date-mode/left-and-right): New test.
	(Bug#60936)

2023-11-04  F. Jason Park  <jp@neverwas.me>

	Don't over-truncate erc-timestamp-format-left

	* lisp/erc/erc-stamp.el (erc-timestamp-format-left): Fix typo in doc
	string and mention that changing the value mid-session requires
	cycling the minor mode.
	(erc-echo-timestamp-format): Add Custom :tag for choices.
	(erc-stamp--date-format-end): Revise doc string.
	(erc-stamp--format-date-stamp): Fix bug involving erroneous truncation
	parameter for `substring' when `erc-timestamp-format-left' doesn't end
	in a newline.  Thanks to Emanuel Berg for catching this.
	(erc-stamp-prepend-date-stamps-p) Revise doc string.
	(erc-insert-timestamp-left-and-right): Add comment regarding
	compatibility concession.  (Bug#60936)

2023-11-04  F. Jason Park  <jp@neverwas.me>

	Really fix off-by-one in erc--get-inserted-msg-bounds

	* lisp/erc/erc.el (erc--get-inserted-msg-bounds): Account for
	`previous-single-property-change' returning a position adjacent to
	that with an actual changed value.  The prior attempt at addressing
	this was insufficient.
	* test/lisp/erc/erc-tests.el (erc--get-inserted-msg-bounds): New test.

2023-11-04  Stefan Kangas  <stefankangas@gmail.com>
	    David Hedlund  <public@beloved.name>

	Make FAQ on starting Emacs maximized portable

	* doc/misc/efaq.texi (Start Emacs Maximized): Rename node from
	"Fullscreen mode on MS-Windows".  Make advice portable to other
	platforms, and remove MS-Windows specific hacks.
	Ref: https://lists.gnu.org/r/emacs-devel/2023-10/msg00733.html

2023-11-04  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Add tests for saving to write-protected files

	* test/lisp/files-tests.el (files-tests--with-yes-or-no-p): Add macro.
	(files-tests-save-buffer-read-only-file): Add test for writing to
	write-protected files with `save-buffer'.  (Bug#66546)

2023-11-04  Mattias Engdegård  <mattiase@acm.org>

	Fix bytecomp-tests--dest-mountpoint test failure

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--dest-mountpoint): Add lexical cookie.

	Bug reported and fix suggested by Jens Schmidt
	(https://lists.gnu.org/archive/html/emacs-devel/2023-10/msg00719.html)

2023-11-04  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	196def4fa64 Fix description of 'Package-Requires' library header
	c1778432790 ; * doc/misc/tramp.texi (FUSE setup): Fix typo.
	a64336cbb9c * lisp/emacs-lisp/cl-lib.el (cl--defalias): Improve&fix d...
	da8b85b577d Add two docstrings in cl-lib.el

2023-11-04  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	d5e5ea4e36b Fix guessing commands for zstandard archives in Dired
	90db29aff86 Fix eglot.texi (JSONRPC objects in Elisp) example
	5ef48ad6a37 ; Fix one author's name.
	c4e9a6159a3 * doc/man/emacsclient.1: Fix --tramp option.
	6dca3a8eab2 Improve `nsm-protocol-check--3des-cipher` docstring

2023-11-04  Manuel Giraud  <manuel@ledu-giraud.fr>

	Don't need text properties when sending a mail

	* lisp/mail/smtpmail.el (smtpmail-send-data): Don't get text
	properties when sending mail data.  (Bug#66880)

2023-11-04  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix desktop-save on remote dired (bug#66697)

	Do not gather "misc data" for dired buffer not meant to be
	desktop saved.

	lisp/dired.el (dired-desktop-save-p): New function to test if
	`dired-directory' should be desktop saved.
	(dired-desktop-buffer-misc-data): Use it.

2023-11-04  Eli Zaretskii  <eliz@gnu.org>

	Remove unnecessary assertion added 2 days ago

	* src/xdisp.c (get_glyph_face_and_encoding): Remove unnecessary
	assertion.  It triggers, for no good reason, when running the
	recipe of bug#66922 and typing C-p in the *Warnings* buffer after
	the recipe finishes, because the glyph passed to this function is
	a STRETCH_GLYPH, not a CHAR_GLYPH.

2023-11-03  Stephen Gildea  <stepheng+emacs@gildea.com>

	MH-E testing: find locally-installed GNU Mailutils libraries

	* test/lisp/mh-e/test-all-mh-variants.sh: LD_LIBRARY_PATH is sometimes
	necessary.  This reverts part of commit f1fcd321ff of 24 Nov 2021.

2023-11-03  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp-cstr.el (comp--direct-supertype): Remove unused.

2023-11-03  Mattias Engdegård  <mattiase@acm.org>

	Suggest alternative reason for ERT test duplication error

	* lisp/emacs-lisp/ert.el (ert-set-test):
	Amend error message; maybe the redefinition was caused by a file
	loaded twice (bug#66782).

	Suggested by Xiyue Deng.

2023-11-03  Po Lu  <luangruo@yahoo.com>

	Round underline position and thickness

	* src/sfntfont.c (sfntfont_open): Round underline thickness
	instead of truncating it, as is proper according to several
	inquiries.

2023-11-03  Po Lu  <luangruo@yahoo.com>

	Avoid moving point while analyzing text conversion

	* lisp/simple.el (analyze-text-conversion): If neither calling
	p-s-i-h nor calling p-t-c-h yields a change to point, return it
	to its location before analyze-text-conversion was called.

	* src/keyboard.c (kbd_buffer_get_event): See that text
	conversion events are uniformly delivered prior to keyboard
	events arriving in unison.

2023-11-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/oclosure.el (oclosure--lambda): Burp in dynbind mode

	The "fixes" bug#66867.

2023-11-03  Dmitry Gutov  <dmitry@gutov.dev>

	Remove 'M-.' binding from js-mode and js-ts-mode

	* lisp/progmodes/js.el (js-mode-map, js-ts-mode-map): Remove.
	The global binding must be a lot more useful for most users
	(https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg01295.html).

2023-11-02  Michael Albinus  <michael.albinus@gmx.de>

	Adapt doc for man.el

	* etc/NEWS: Rephrase 'Man-support-remote-systems' entry.
	Fix typos.

	* lisp/man.el (Man-header-file-path, man): Adapt docstrings.

2023-11-02  Po Lu  <luangruo@yahoo.com>

	Properly compute overhangs for overstruck text

	* src/xdisp.c (get_glyph_face_and_encoding): Account for
	non-character glyphs by not attempting to translate them to
	characters.
	(gui_get_glyph_overhangs, gui_produce_glyphs): If the face is
	overstruck, increase the right side bearing by 1 pixel.

2023-11-02  F. Jason Park  <jp@neverwas.me>

	Preserve point when inserting date stamps in ERC

	* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-disable): Move
	remaining local teardown business to `erc-stamp--setup' and use
	`erc-buffer-do' instead of `erc-with-all-buffers-of-server' to
	emphasize that all ERC buffers are affected.
	(erc-stamp--insert-date-stamp-as-phony-message): Move `erc--msg-props'
	binding to `erc-stamp--lr-date-on-pre-modify'.
	(erc-stamp--lr-date-on-pre-modify): Bind `erc--msg-props' here so that
	the related guard condition in `erc-add-timestamp' is satisfied and
	`erc-insert-timestamp-function' runs.  This fixes a regression new in
	ERC 5.6 and introduced by c68dc778 "Manage some text props for ERC
	insertion-hook members".  Also, `save-excursion' when narrowing to
	prevent point from being dislodged after submitting input at the
	prompt.
	(erc-insert-timestamp-left-and-right): Don't initialize date stamps
	when `erc-timestamp-format-left' is nil or consists only of newlines,
	and enable fallback behavior in such cases on behalf of users without
	informing them.  Allow global hook members to run first so that those
	owned by `scrolltobottom' and similar can see the unadulterated input.
	Fix wrong hook name.
	(erc-stamp--setup): Fix wrong hook name.  Kill all local vars here
	instead of sharing this duty with the minor-mode toggle.  (Bug#60936)

2023-11-01  Dmitry Gutov  <dmitry@gutov.dev>

	(project-switch-project): Fix the previous change

	* lisp/progmodes/project.el (project-switch-project):
	Clear the buffer-local value in the right buffer (bug#66317).

2023-11-01  Juri Linkov  <juri@linkov.net>

	New commands previous-line-completion and next-line-completion (bug#59486)

	* lisp/simple.el (completion-list-mode-map): Bind [up] to
	'previous-line-completion', and [down] to 'next-line-completion'.
	(completion-auto-wrap): Mention `next-line-completion' and
	`previous-line-completion' in the docstring.
	(previous-line-completion, next-line-completion): New commands.

2023-11-01  Michael Albinus  <michael.albinus@gmx.de>

	Run `man' also on remote systems

	This implements bug#66758

	* doc/emacs/programs.texi (Man Page):
	Describe Man-support-remote-systems.

	* etc/NEWS: Mention user option 'Man-support-remote-systems'.
	Fix typos.

	* lisp/dired.el (Man-support-remote-systems): Declare.
	(dired-do-man): Use it.  Use also `file-local-name'.

	* lisp/man.el (Man-support-remote-systems): New defcustom.
	(Man-xref-normal-file): Handle remote files.
	(Man-default-directory, Man-shell-file-name)
	(Man-header-file-path): New defuns.
	(Man-init-defvars): Use octal numbers.
	(Man-support-local-filenames): Handle remote files.
	(Man-completion-table): Use `Man-default-directory' and `process-file'.
	(man): Adapt docstring.
	(Man-start-calling): Use `Man-default-directory'.
	(Man-getpage-in-background): Use `Man-default-directory',
	`Man-shell-file-name', `start-file-process' and `process-file'.  Adapt
	buffer name.
	(Man-update-manpage): Use `Man-shell-file-name' and `process-file'.
	(Man-view-header-file): Use `Man-header-file-path'.

2023-11-01  Mattias Engdegård  <mattiase@acm.org>

	Non-recursive marking of buffer-local variables

	* src/alloc.c (mark_localized_symbol): Inline into...
	(process_mark_stack): ...this code and do don't use recursion.

2023-11-01  Jeremy Bryant  <jb@jeremybryant.net>

	Add two docstrings in cl-macs.el

	* lisp/emacs-lisp/cl-macs.el (cl--simple-exprs-p)
	(cl--const-expr-p): Add docstrings

2023-11-01  Po Lu  <luangruo@yahoo.com>

	Prevent errors when generating events above menu bar windows

	* src/keyboard.c (make_lispy_position): Pass false to w_f_c,
	for the subsequent code is not prepared to encounter menu bar
	windows.

2023-11-01  Dmitry Gutov  <dmitry@gutov.dev>

	Only override the current project buffer-locally

	* lisp/progmodes/project.el (project-switch-project): Only
	override the current project buffer-locally.  This is mostly for
	the the mode-line indicator (https://debbugs.gnu.org/66317#53).

2023-11-01  Dmitry Gutov  <dmitry@gutov.dev>

	Catch 'permission-denied' during project lookup

	* lisp/progmodes/project.el (project--find-in-directory):
	Catch 'permission-denied' (bug#66317).

	Co-Authored-By: Spencer Baugh <sbaugh@catern.com>

2023-11-01  Stefan Kangas  <stefankangas@gmail.com>

	Respect `browse-url-default-scheme` on Android

	* lisp/net/browse-url.el (browse-url-default-android-browser):
	Respect 'browse-url-default-scheme'.

2023-11-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/emacs-lisp/comp-cstr.el: Fix bootstrap

	* lisp/emacs-lisp/comp-cstr.el: Remove redundant require of `cl-macs`
	and add missing require of `cl-extra`.

	* lisp/emacs-lisp/cl-generic.el: Improve warning message.
	* lisp/emacs-lisp/cl-extra.el (cl--print-table): Remove redundant arg.

2023-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/comp.el: Remove redundant requires

2023-10-31  Po Lu  <luangruo@yahoo.com>

	Don't round underline metrics

	* src/sfntfont.c (sfntfont_open): Don't round underline position
	or thickness, much as the other font drivers don't either.

2023-10-31  Po Lu  <luangruo@yahoo.com>

	Extract underline positions from PostScript metrics tables

	* src/sfntfont.c (struct sfnt_font_desc): Introduce fields where
	the font's underline position is recorded.
	(sfnt_enum_font_1): Compute the underline position with
	information in the post table whenever it exists.
	(sfntfont_open): Scale the recorded position and save it into
	the font object.

2023-10-31  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el (project-menu-entry): Add 'bound-and-true-p'.

	This is needed for compatibility with older versions (bug#66317).

2023-10-31  Juri Linkov  <juri@linkov.net>

	Fix project-mode-line-format breaking buffer-file-coding-system (bug#66825)

	* lisp/progmodes/project.el (project-mode-line-format):
	Let-bind 'last-coding-system-used' to prevent changing
	'buffer-file-coding-system' in 'basic-save-buffer'.

2023-10-30  Po Lu  <luangruo@yahoo.com>

	Ascertain font spacing from post table if present

	* src/sfnt.c (sfnt_table_names): Introduce name of post table.
	(sfnt_read_post_table): New function.
	(main): New tests.

	* src/sfnt.h (struct sfnt_post_table): New struct.

	* src/sfntfont.c (sfnt_enum_font_1): Read post table, and set
	spacing from its is_fixed_pitch value.
	(sfntfont_list_1): Compare spacing between both fonts if
	supplied in the font spec.
	(sfntfont_open): Set FONT_FILE_INDEX as well as
	FONT_FULLNAME_INDEX.

2023-10-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	comp-cstr.el: The type hierarchy is a DAG, not a tree

	Adjust the type operations to account for the fact that types can have
	several parents.

	* lisp/emacs-lisp/comp-cstr.el (comp--cl-class-hierarchy):
	Use `cl--class-allparents`.  Add FIXME.
	(comp--direct-supertype): Declare obsolete.
	(comp--direct-supertypes): New function.
	(comp--normalize-typeset0): Rewrite to use `comp--direct-supertypes`;
	adjust to account for the DAG structure; use `cl-set-difference`.
	(comp--direct-subtypes): Rewrite.
	(comp--intersection): New function.
	(comp-supertypes): Rewrite and change return type.
	(comp-subtype-p): Simplify.
	(comp-union-typesets): Use `comp-supertypes` instead of iterating over
	`comp-cstr-ctxt-typeof-types`.
	* lisp/emacs-lisp/comp.el (comp--native-compile): Don't catch
	errors if we're debugging.
	* test/lisp/emacs-lisp/comp-cstr-tests.el: Adjust tests.

	* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Fix mishap when we
	evaluate (cl-defstruct cl-structure-object ..) during the compilation
	of `cl-preloaded.el`.
	* lisp/emacs-lisp/cl-preloaded.el: Add corresponding assertion.

2023-10-30  Jim Porter  <jporterbugs@gmail.com>

	Exclude Git submodules from 'project-files'

	* lisp/progmodes/project.el (project--vc-list-files): Exclude Git
	submodules (bug#66806).
	(project-search, project-query-replace-regexp): Remove now-unneeded
	workaround.

2023-10-30  Spencer Baugh  <sbaugh@janestreet.com>

	Teach ffap to look for relative file names under project-root

	Now file-name-at-point-functions, which runs
	ffap-guess-file-name-at-point, will pick up on a file name at point if
	that file name is a relative file name which exists when looked up
	from the root of the project.

	For example, in test/lisp/progmodes/eglot-tests.el there is the string
	lisp/progmodes/eglot.el; if you put point on that and C-x C-f,
	lisp/progmodes/eglot.el under the root of the Emacs repo will now be
	part of future history.

	* lisp/ffap.el (ffap-alist): Add entry for ffap-in-project.
	(ffap-in-project): Add. (bug#66668)

2023-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	Use OClosure to drop `advice--buffer-local-function-sample` hack

	* lisp/emacs-lisp/nadvice.el (advice--forward): New OClosure, to
	replace `advice--buffer-local-function-sample`.
	(advice--set-buffer-local, advice--buffer-local): Adjust accordingly.

2023-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	Require `cl-lib` rather than directly some of its subfiles

	* test/src/filelock-tests.el:
	* lisp/net/tramp-sh.el: Require `cl-lib` rather than `cl-seq` or `cl-macs`.

2023-10-29  Mattias Engdegård  <mattiase@acm.org>

	Eliminate some nested repetitions in regexps

	Nested repetitions such as (A*)* potentially take exponential time but
	can usually be rewritten in a faster and more readable way without
	much trouble.  These were all found by Relint.

	* lisp/obsolete/terminal.el (te-parse-program-and-args):
	* lisp/org/org.el (org-make-tags-matcher):
	Apply the transform (A+B*)+ -> A(A|B)*

	* lisp/textmodes/fill.el (adaptive-fill-regexp):
	Apply the transform A*(B+A*)* -> (A|B)*

	* lisp/progmodes/idlw-shell.el (idlwave-shell-filter):
	Find the last newline or CR in a more direct way.

	* lisp/progmodes/vhdl-mode.el (vhdl-port-copy, vhdl-subprog-copy):
	Trim trailing whitespace from a string in a more direct way.
	All-whitespace strings are left unchanged as before.

2023-10-29  Mattias Engdegård  <mattiase@acm.org>

	Fix broken gdb-control-commands-regexp (bug#66363)

	* lisp/progmodes/gdb-mi.el (gdb-python-guile-commands-regexp):
	Remove, integrate into...
	(gdb-control-commands-regexp): ...this.  Translate into rx.
	Remove useless submatches which broke earlier attempts at using other
	submatches.  Rewrite tail expression to avoid superlinear nested
	repetition, eliminating a Relint complaint.
	* lisp/progmodes/gdb-mi.el (gdb-send): Simplify use of the regexp
	above, and use the correct submatch this time.  Remove unnecessary and
	incorrect second regexp matching.

2023-10-29  Stefan Kangas  <stefankangas@gmail.com>

	Make nnrss suggest HTTPS instead of HTTP

	* lisp/gnus/nnrss.el (nnrss-check-group): Suggest HTTPS instead of
	HTTP when prompting for URL.

2023-10-29  Spencer Baugh  <sbaugh@catern.com>

	Add 'server-eval-args-left' to server.el

	Passing arbitrary arguments to functions through
	"emacsclient --eval" sometimes requires complicated escaping
	to avoid them being parsed as Lisp (as seen in
	emacsclient-mail.desktop before this change).

	The new variable 'server-eval-args-left' allows access to the
	arguments before they are parsed as Lisp.  By removing
	arguments from the variable before they're parsed, a snippet
	of Lisp can consume arguments, as in emacsclient-mail.desktop.

	org-protocol might be able to use this as well, which might allow it
	to drop its current advice on server-visit-files.

	* etc/emacsclient-mail.desktop: Use 'server-eval-args-left'.
	* lisp/server.el (server-eval-args-left): New variable.
	(server-process-filter, server-execute): Make '-eval' arguments
	available through 'server-eval-args-left'.
	* lisp/startup.el (argv): Mention 'server-eval-args-left' in
	docstring.
	* etc/NEWS: Announce 'server-eval-args-left'.
	* doc/emacs/misc.texi (emacsclient Options): Document
	'server-eval-args-left'.  (Bug#65902)

2023-10-29  Spencer Baugh  <sbaugh@catern.com>

	Add 'case-symbols-as-words' to configure symbol case behavior

	In some programming languages and styles, a symbol (or every
	symbol in a sequence of symbols) might be capitalized, but the
	individual words making up the symbol should never be capitalized.

	For example, in OCaml, type names Look_like_this and variable names
	look_like_this, but it is basically never correct for something to
	Look_Like_This.  And one might have "aa_bb cc_dd ee_ff" or "Aa_bb
	Cc_dd Ee_ff", but never "Aa_Bb Cc_Dd Ee_Ff".

	To support this, the new variable 'case-symbols-as-words' causes
	symbol constituents to be treated as part of words only for case
	operations.

	* src/casefiddle.c (case_ch_is_word): New function.
	(case_character_impl, case_character): Use 'case_ch_is_word'.
	(syms_of_casefiddle): Define 'case-symbols-as-words'.
	* src/search.c (Freplace_match): Use 'case-symbols-as-words'
	when calculating case pattern.
	* test/src/casefiddle-tests.el (casefiddle-tests--check-syms)
	(casefiddle-case-symbols-as-words): Test 'case-symbols-as-words'.
	* etc/NEWS: Announce 'case-symbols-as-words'.
	* doc/lispref/strings.texi (Case Conversion): Document
	'case-symbols-as-words'.
	(Bug#66614)

2023-10-29  Spencer Baugh  <sbaugh@catern.com>

	Remove the header line after disabling 'which-function-mode'

	Previously, the header line would stay around even when after
	disabling 'which-function-mode', although it may be empty.  Now
	the 'which-function-mode' element is properly removed from
	'header-line-format', so the header line will disappear if
	there's nothing else in 'header-line-format'.

	Also, previously, when we ran (which-function-mode), we would
	enable
	'which-function-mode' for all buffers even if they didn't support
	imenu.  We didn't run the normal logic in 'which-func-ff-hook' to
	disable 'which-func-mode' if imenu wasn't present.  Now we do run
	that logic, by just calling 'which-func-ff-hook'.  This is
	especially important when the header line is enabled, because
	otherwise there's a very noticeable header line added to every
	buffer, including e.g. *Help* and *Buffer List*.

	Also, we now check that 'header-line-format' is a list before trying
	to add to it; this makes us work properly when enabling and
	disabling 'which-function-mode' for modes which set
	'header-line-format' to a string or symbol, such as eww.

	* lisp/progmodes/which-func.el (which-func-try-to-enable): Re-add
	'which-func-format' to the header line.
	(which-func--header-line-remove): New function.
	(which-func--disable): Call 'which-func--header-line-remove'.
	(which-function-mode): Call 'which-func-ff-hook' and
	'which-func--header-line-remove'. (bug#66283)
	* test/lisp/progmodes/which-func-tests.el: New test.

2023-10-29  Manuel Giraud  <manuel@ledu-giraud.fr>

	Set non-text mouse cursor on menu bar

	* src/xdisp.c (note_mouse_highlight): Set non-text mouse cursor on
	menu bar.

2023-10-29  Po Lu  <luangruo@yahoo.com>

	Avert a crash and file descriptor leak in yank-media

	* java/org/gnu/emacs/EmacsNative.java (close): New declaration.

	* java/org/gnu/emacs/EmacsSdk11Clipboard.java
	(getClipboardData): Catch SecurityException and guarantee file
	descriptors are closed even if exceptions arise.

	* src/android.c (dup): Export another function.

2023-10-29  Stefan Kangas  <stefankangas@gmail.com>

	Prefer seq-filter in hanja-util.el

	Benchmarking shows seq-filter to be ~30% faster on this machine.

	* lisp/language/hanja-util.el (hanja-filter): Make into obsolete alias
	for 'seq-filter'.  Update single caller.

2023-10-29  Morgan Smith  <Morgan.J.Smith@outlook.com>

	Speed up Eshell smart display module

	em-smart was forcibly re-displaying the screen upwards of 500 times
	per screen of output.  This caused the Eshell to feel quite slow when
	the module was in use.  By using fewer hooks and never explicitly
	calling 'redisplay' (which was unnecessary) the performance issues go
	away (bug#57367).

	lisp/eshell/em-smart.el:

	(em-smart-unload-hook, eshell-smart-unload-hook): Remove
	'eshell-smart-scroll' instead of the now deleted
	'eshell-refresh-windows'.

	(eshell-smart-displayed, eshell-currently-handling-window)
	(eshell-refresh-windows): Delete.

	(eshell-smart-scroll-window): Rename to 'eshell-smart-scroll-windows'
	and add a bunch of logic originally from 'eshell-refresh-windows'.

	(eshell-smart-initialize): Don't add a hook onto
	'window-scroll-functions'.  Replace 'eshell-refresh-windows' with
	'eshell-smart-scroll-windows'.

	(eshell-smart-display-setup): Don't refresh windows.

	(eshell-smart-redisplay): Rename to 'eshell-smart-scroll'.  Delete
	'eobp' case.

2023-10-29  Stefan Kangas  <stefankangas@gmail.com>

	Prefer seq-filter in rcirc.el

	Benchmarking shows seq-filter to be ~30% faster on this machine.

	* lisp/net/rcirc.el (rcirc-condition-filter): Make into an
	obsolete alias for 'seq-filter'.  Update single caller.

2023-10-28  Mauro Aranda  <maurooaranda@gmail.com>

	Add easy customization for dir-locals files (Bug#66702)

	* lisp/cus-edit.el (custom--editable-field-p): New utility function.
	(custom-dirlocals-widget, custom-dirlocals-file-widget)
	(custom-dirlocals-commands, custom-dirlocals-tool-bar-map): New
	variables.
	(custom-dirlocals-map, custom-dirlocals-field-map): New keymaps.
	(Custom-dirlocals-menu): New menu.
	(custom-dirlocals-key, custom-dynamic-cons, custom-dirlocals): New
	widgets.
	(custom-dirlocals-maybe-update-cons, custom-dirlocals-symbol-action)
	(custom-dirlocals-change-file, custom-dirlocals--set-widget-vars)
	(custom-dirlocals-get-options, custom-dirlocals-validate): New
	functions.
	(custom-dirlocals-with-buffer): New macro.
	(Custom-dirlocals-revert-buffer, Custom-dirlocals-save)
	(customize-dirlocals): New commands.

	* doc/emacs/custom.texi (Directory Variables): Document
	customize-dirlocals.

	* etc/NEWS: Announce.

2023-10-28  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	aa253c533d2 ; Fix broken links to gmane.org
	cc3e436c822 Change news.gmane.org to news.gmane.io
	297fe945c57 Fix minor defcustom issues in Gnus (Bug#66715)
	3beb5f5e240 ; * doc/misc/gnus.texi: Fix unmatched quote in gnus doc. ...
	85d08d5788e Minor connection-local variables fixes
	79d8328ca4a Make Dired honor `insert-directory-program´ with globs
	43127294e13 Fix typo in url-privacy-level :type
	380f8574ef5 * lisp/vc/log-view.el (log-view-mode-menu): Quote derived...

2023-10-28  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	5f60913208f Fix State button for customize-icon (Bug#66635)
	27c71979ff1 ; Another Texinfo fix
	889a550ca08 ; Fix Texinfo warnings
	893c344b4e4 Fix the use of adaptive-fill-regexp in treesit indent preset
	1098c114b74 Fix treesit-install-language-grammar (bug#66673)
	491ee428c08 Fix treesit-explore-mode (bug#66431)
	ee043a2703d tsx-ts-mode--font-lock-compatibility-bb1f97b: Re-fix the ...

2023-10-28  Po Lu  <luangruo@yahoo.com>

	* lisp/dnd.el (dnd-protocol-alist): Update :version.

2023-10-28  Po Lu  <luangruo@yahoo.com>

	Render default DND file name handlers more precise

	* lisp/dnd.el (dnd-protocol-alist): Redefine file name handlers
	to match solely the local or remote URIs they understand.
	(dnd-handle-multiple-urls): Prevent calling the same handler
	multiple times for a single URI.

	* lisp/gnus/mml.el (mml-dnd-protocol-alist): Apply an analogous
	adjustment here.  Delete now redundant redefinition of
	dnd-open-file.
	(mml-dnd-attach-file): Inquire whether to apply the default
	disposition and such only once even if more than one file is
	dropped.

	* test/lisp/dnd-tests.el (dnd-tests-receive-multiple-urls)
	(dnd-tests-default-file-name-handlers): New tests.

2023-10-28  Manuel Giraud  <manuel@ledu-giraud.fr>

	Support for menu bar in window_from_coordinates

	* src/window.h:
	* src/window.c (window_from_coordinates): In the no toolkit
	build, add support for the menu bar window.  Add a new
	'menu_bar_p' argument so the function's signature has changed.
	All callers changed.

	* src/androidterm.c (handle_one_android_event):
	* src/haikuterm.c (haiku_read_socket):
	* src/keyboard.c (make_lispy_position):
	* src/nsterm.m ([EmacsView mouseDown:]):
	* src/pgtkterm.c (button_event):
	* src/w32term.c (w32_read_socket):
	* src/xdisp.c (note_mouse_highlight):
	* src/xterm.c (handle_one_xevent): Set menu_bar_p to true.

2023-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	(auth-source-backend): Don't pass obsolete "name" arg

	* lisp/auth-source.el (auth-source-backends-parser-file)
	(auth-source-backends-parser-macos-keychain)
	(auth-source-backends-parser-secrets): Remove unused "name" argument
	to `auth-source-backend` constructor.

2023-10-28  Po Lu  <luangruo@yahoo.com>

	Minor adjustments to Android drag and drop and content URIs

	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow)
	<dndXPosition, dndYPosition>: New fields initialized to -1.
	(onDragEvent): Remember the position of the previous event to
	avoid sending duplicates.

	* src/androidvfs.c (EMACS_PATH_MAX): New define.
	(android_saf_tree_rename, android_saf_tree_opendir)
	(android_name_file, android_fstatat, android_faccessat)
	(android_fchmodat, android_readlinkat): Use EMACS_PATH_MAX where
	SAF file names might be encountered.

2023-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	(c-initialize-cc-mode): Be slightly more explicit

	* lisp/progmodes/cc-mode.el (c-initialize-cc-mode): Don't depend on
	the fact that `post-text-conversion-hook` is "local only".

2023-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	(provided-mode-derived-p): Fix alias case

	The new handling of aliases in `provided-mode-derived-p`
	introduced in Emacs-28.1 caused a regression where
	(provided-mode-derived-p MODE MODE) returns nil if MODE is an alias.
	Rework the loop so we consider an alias as a kind of parent.

	* lisp/subr.el (provided-mode-derived-p): Step over aliases separately.

	* test/lisp/subr-tests.el (subr-tests--derived-mode-1)
	(subr-tests--derived-mode-2): Move out of `provided-mode-derived-p`
	and give them properly namespaced names.
	(provided-mode-derived-p): Add more tests for aliases.

2023-10-27  F. Jason Park  <jp@neverwas.me>

	Tidy up ERC's internal text-property API

	* lisp/erc/erc-fill.el (erc-fill--spaced-commands): Remove unused
	internal variable originally intended for ERC 5.6.
	(erc-fill): Check for `erc-msg' being `msg', which carries the same
	meaning as `erc-cmd' being `PRIVMSG' or `NOTICE', except that inserted
	outgoing messages now no longer normally have an `erc-cmd' property.
	(erc-fill-wrap-mode, erc-fill-wrap-disable): Kill
	`erc-fill--wrap-last-msg'.
	(erc-fill--wrap-max-lull): Convert from buffer-local to normal
	variable.
	(erc-fill--wrap-continued-message-p): Rework slightly to guard against
	resetting the "last speaker" marker when the `erc-ephemeral' text
	property is present.  This tells insert- and send-related hook members
	to pretend the current message doesn't exist when performing stateful
	operations.  That is, modules should expect the message being inserted
	to possibly disappear or be replaced.  Also, look for `erc-msg' being
	`msg' instead of `erc-cmd' being `PRIVMSG', and fix bug involving only
	checking `erc-ctcp' in the current message.
	* lisp/erc/erc-stamp.el (erc-add-timestamp): Don't insert timestamps
	when the `erc-ephemeral' text property is present.
	* lisp/erc/erc.el (erc--msg-props): Add doc string explaining the
	purpose of this variable and the various text properties most commonly
	present in its value.
	(erc--msg-prop-overrides): Add doc string.
	(erc-send-action): Don't set `erc-cmd' prop on outgoing CTCP ACTIONs.
	(erc-display-message): Reverse overrides to prefer items toward the
	front of the alist.
	(erc-process-ctcp-query): Include existing overrides from environs.
	(erc-send-current-line): Include existing overrides from environs.
	(erc-display-msg): Fix doc string and reverse overrides.
	* test/lisp/erc/erc-fill-tests.el (erc-fill-tests--insert-privmsg):
	Remove stray comment.
	(erc-fill-tests--save-p): Set value from environment variable.
	(erc-fill-tests--compare): Limit writing snapshots to one test at a
	time.
	(erc-fill-wrap--merge-action): Fix expected output for non-action
	messages that follow action messages.  These were previously merged
	but escaped detection.
	* test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld: Update.
	(Bug#60936)

2023-10-27  F. Jason Park  <jp@neverwas.me>

	Use marker for max pos in erc--traverse-inserted

	* lisp/erc/erc-stamp.el (erc-stamp--propertize-left-date-stamp): Run
	`erc-stamp--insert-date-hook' separately here instead of via
	`erc-insert-modify-hook'.
	(erc-stamp--insert-date-stamp-as-phony-message): Don't include value
	of `erc-stamp--insert-date-hook' in let-bound `erc-insert-modify-hook'
	because its members can run twice if buffer-local.  Remove
	`erc-send-modify-hook' because it only runs via `erc-display-msg'.
	Shadow "pre" and "done" hooks because they don't expect to run in a
	narrowed buffer.  Call getter for `erc-stamp--current-time'.
	(erc-stamp--lr-date-on-pre-modify,
	erc-insert-timestamp-left-and-right): Use function form of
	`erc-stamp--current-time' for determining current time stamp.
	* lisp/erc/erc.el (erc--get-inserted-msg-bounds): Fix off-by-one like
	thinko.
	(erc--traverse-inserted): Create temporary marker when END is a buffer
	position so that insertions and deletions are accounted for in
	the terminating condition.
	(erc--delete-inserted-message): New function.
	* test/lisp/erc/erc-tests.el (erc--delete-inserted-message): New test.
	(erc--update-modules/unknown): Improve readability slightly.
	* test/lisp/erc/resources/erc-d/erc-d-t.el (erc-d-t-make-expecter):
	Indicate assertion flavor in error message.  (Bug#60936)

2023-10-27  F. Jason Park  <jp@neverwas.me>

	Ignore date stamps completely in erc-track

	* etc/ERC-NEWS: Mention that date stamps no longer optionally affect
	the mode line.  Also mention but discourage new variable
	'erc-stamp-prepend-date-stamps-p'.
	* lisp/erc/erc-stamp.el (erc-stamp-prepend-date-stamps-p): New
	variable, an escape hatch to allow date stamps to once again be
	prepended to messages.
	(erc-insert-timestamp-left-and-right): Don't insert stamps as
	independent messages when legacy support flag
	`erc-stamp-prepend-date-stamps-p' is non-nil.
	* lisp/erc/erc-track.el (erc-track--skipped-msgs): New internal
	variable.
	(erc-track-modified-channels): In previous versions, a date stamp
	attached to a message for an IRC command in `erc-track-exclude-types'
	would have no effect on the mode line.  That they were able to
	otherwise was probably a bug.  Regardless, this distinction was lost
	for the worse after date stamps became independent messages with
	c68dc7786fc "Manage some text props for ERC insertion-hook members".
	To sidestep this regression, the `track' module will ignore date
	stamps completely from now on.  Thanks to Corwin Brust for spotting
	this.
	* test/lisp/erc/erc-scenarios-stamp.el
	(erc-scenarios-stamp--left/display-margin-mode): Remove redundant
	binding.
	(erc-scenarios-stamp--legacy-date-stamps): New test.  (Bug#60936)

2023-10-27  F. Jason Park  <jp@neverwas.me>

	Be slightly more aggressive with erc-scrolltobottom-all

	* lisp/erc/erc-goodies.el (erc--scrolltobottom-on-post-command):
	Redo obsolete doc string.
	(erc--scrolltobottom-at-prompt-minibuffer-active,
	erc--scrolltobottom-on-win-conf-change): Rename former to latter to
	better reflect actual role.  Remove conditional guard so it always
	runs.
	(erc--scrolltobottom-setup): Set `scroll-step' locally when a user
	hasn't customized `scroll-conservatively'.  Update
	`window-configuration-change-hook' member name.  (Bug#64855)

2023-10-27  Eli Zaretskii  <eliz@gnu.org>

	Fix compilation error in profiler.c

	* src/profiler.c (memory): Declare outside of the
	PROFILER_CPU_SUPPORT conditional.  (Bug#66774)

2023-10-27  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	5f60913208f Fix State button for customize-icon (Bug#66635)
	27c71979ff1 ; Another Texinfo fix
	889a550ca08 ; Fix Texinfo warnings
	893c344b4e4 Fix the use of adaptive-fill-regexp in treesit indent preset
	1098c114b74 Fix treesit-install-language-grammar (bug#66673)
	491ee428c08 Fix treesit-explore-mode (bug#66431)
	ee043a2703d tsx-ts-mode--font-lock-compatibility-bb1f97b: Re-fix the ...

2023-10-27  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-read-id-output): Identifiers can contain "-".

2023-10-27  Ihor Radchenko  <yantar92@posteo.net>

	* src/pdumper.c (dump_buffer): Print message when aborting (bug#66743)

	When the buffer contains overlays, it cannot be dumped.  Print a
	clear message describing the reason, instead of just aborting.

2023-10-27  Po Lu  <luangruo@yahoo.com>

	Substitute eassert for assert throughout Android code

	* src/android.c (android_init_emacs_service)
	(android_init_emacs_pixmap, android_init_graphics_point)
	(android_init_emacs_drawable, android_init_emacs_window)
	(android_init_emacs_cursor, android_destroy_handle)
	(android_create_window, android_init_android_rect_class)
	(android_init_emacs_gc_class, android_begin_query):

	* src/androidselect.c (android_init_emacs_clipboard)
	(android_init_emacs_desktop_notification):

	* src/androidterm.c (getExtractedText)
	(android_get_surrounding_text_internal):

	* src/androidvfs.c (android_vfs_init): Replace assert with
	eassert.

2023-10-27  Po Lu  <luangruo@yahoo.com>

	Mention additional return values for framep et al

	* doc/lispref/frames.texi (Frames, Multiple Terminals): Don't
	omit mentions of Android or Haiku.

2023-10-27  Po Lu  <luangruo@yahoo.com>

	Correct order of arguments to dnd-handle-multiple-urls

	* lisp/term/android-win.el (android-handle-dnd-event): Pass
	new-uri-list before action.

2023-10-27  Stefan Kangas  <stefankangas@gmail.com>

	Fix `browse-url-default-scheme` custom :type

	* lisp/net/browse-url.el (browse-url-default-scheme): Fix custom
	:type.

2023-10-26  Stefan Kangas  <stefankangas@gmail.com>

	Remove highlighting trailing whitespace from cperl-mode

	* lisp/progmodes/cperl-mode.el (cperl-invalid-face): Make
	obsolete in favor of 'show-trailing-whitespace'.
	(cperl-init-faces): No longer highlight trailing whitespace
	separately.
	(cperl-praise, cperl-tips-faces): Update documentation for above
	change.

2023-10-26  Stefan Kangas  <stefankangas@gmail.com>

	Remove link to Perl info documentation

	* lisp/info-look.el: Remove link to Perl info documentation.  It is no
	longer distributed with Perl, nor is it available from CPAN.

2023-10-26  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/tramp.texi (Traces and Profiles): Fix indentation.

2023-10-26  João Távora  <joaotavora@gmail.com>

	Flymake: protect against problematic invalid diagnostics

	If a backend reports a diagnostic which is out of bounds, it still
	lives in flymake--state and will still be cleaned up in the next run
	of flymake--publish-diagnostics.  But if flymake--highlight-line
	doesn't give it an overlay (which it didn't until now), things will
	break afterwards.

	See bug#66759 and https://github.com/joaotavora/eglot/discussions/1311

	* lisp/progmodes/flymake.el (flymake--highlight-line): Set
	flymake--diag-overlay earlier.
	(Version): Bump to 1.3.7.

2023-10-26  Po Lu  <luangruo@yahoo.com>

	Properly respond to drops observing the Motif protocol

	* lisp/pgtk-dnd.el (pgtk-dnd-handle-file-name):

	* lisp/x-dnd.el (x-dnd-handle-file-name): Correct order of
	arguments to d-h-m-u.

2023-10-26  Po Lu  <luangruo@yahoo.com>

	Correct typos in the manuals

	* doc/misc/tramp.texi (Traces and Profiles): Don't mimic
	@enumerate with @indentedblock, which is absent from Texinfo
	4.13.

	* doc/misc/use-package.texi (Global keybindings): Remove stray
	comma after @xref.

2023-10-26  Po Lu  <luangruo@yahoo.com>

	Enable DND handlers to receive more than one URI at a time

	* doc/lispref/frames.texi (Drag and Drop): Illustrate the effect
	of the dnd-multiple-handler property and how convergent handlers
	are reconciled.

	* etc/NEWS (Lisp Changes in Emacs 30.1): Announce this change.

	* lisp/dnd.el (dnd-protocol-alist): Bring doc string up to date.
	(dnd-handle-one-url): Obsolete this function.
	(dnd-handle-multiple-urls): New function.

	* lisp/pgtk-dnd.el (pgtk-dnd-handle-uri-list)
	(pgtk-dnd-handle-file-name):

	* lisp/term/android-win.el (android-handle-dnd-event):

	* lisp/term/haiku-win.el (haiku-drag-and-drop):

	* lisp/term/ns-win.el (ns-drag-n-drop):

	* lisp/term/w32-win.el (w32-handle-dropped-file):

	* lisp/x-dnd.el (x-dnd-handle-uri-list, x-dnd-handle-file-name):
	Reimplement in terms of `dnd-handle-multiple-uris'.

	* lisp/term/pgtk-win.el (pgtk-drag-n-drop)
	(pgtk-drag-n-drop-other-frame, pgtk-drag-n-drop-as-text): Efface
	detritus that remained after the removal of the old PGTK drag
	and drop implementation.

	* test/lisp/dnd-tests.el (ert-x, dnd-tests-list-1)
	(dnd-tests-list-2, dnd-tests-list-3, dnd-tests-list-4)
	(dnd-tests-local-file-function, dnd-tests-remote-file-function)
	(dnd-tests-http-scheme-function, dnd-tests-browse-url-handler)
	(dnd-tests-receive-multiple-urls): New tests.

2023-10-26  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Make commands and options for Perl info pages obsolete.

	The Perl documentation in info format is no longer distributed with Perl,
	nor is it available from CPAN.   Point to cperl-perldoc instead.

	* lisp/progmodes/cperl-mode.el (cperl-info-page): Make obsolete.
	(cperl-tips): Remove outdated instructions to get Perl info
	sources from the docstring.
	(cperl-praise): Remove advertising the info interface in the
	docstring.
	(cperl-mode-map): Replace bindings to `cperl-info-on-command' and
	`cperl-info-on-current-command' by `cperl-perldoc'.
	(cperl-menu): Remove menu entries pointing to the Perl info page.
	(cperl-mode): Remove explanation of the Perl info commands from
	the docstring.
	(cperl-info-on-command, cperl-info-on-current-command),
	(cperl-imenu-info-imenu-search, cperl-imenu-on-info): Declare the
	commands obsolete.

	* etc/NEWS: Describe the obsoletion of Perl info commands.

2023-10-26  Po Lu  <luangruo@yahoo.com>

	Revise selection documentation

	* doc/lispref/frames.texi (Window System Selections):
	(X Selections):

	* lisp/select.el (selection-coding-system): Correct
	misunderstandings about the nature of selection-coding-system
	under X.

2023-10-26  Po Lu  <luangruo@yahoo.com>

	Mollify byte compiler in builds without SQLite

	* lisp/sqlite-mode.el (sqlite-open): New declare-function.

2023-10-26  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Simplify sigil font-lock match for elixir-ts-mode

	There is no need to match on specific sigils, except for regex.

	* lisp/progmodes/elixir-ts-mode.el
	(elixir-ts--font-lock-settings): Update sigil match (bug#64275).

2023-10-26  Dmitry Gutov  <dmitry@gutov.dev>

	Tweak the DOI URL and the description

	* lisp/emacs-lisp/smie.el: Use a friendlier (HTTPS) DOI URL.  And
	fix the year in the description.

2023-10-25  Stefan Kangas  <stefankangas@gmail.com>

	Support HTTPS links in newsticker extra elements

	* lisp/net/newst-reader.el (newsticker--do-print-extra-element):
	Support HTTPS links.

2023-10-25  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/tramp.texi (Traces and Profiles): Fix indentation.

2023-10-25  Stefan Kangas  <stefankangas@gmail.com>

	Support HTTPS in ido-file-internal

	* lisp/ido.el (ido-file-internal): Support HTTPS.

2023-10-25  Stefan Kangas  <stefankangas@gmail.com>

	Support HTTPS URLs in newsticker-add-url

	* lisp/net/newst-backend.el (newsticker-add-url): Support HTTPS.

2023-10-25  john muhl  <jm@pub.pink>

	Improve imenu support in lua-ts-mode

	* lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Include require
	statements and remove anonymous entries.
	(lua-ts--named-function-p, lua-ts--require-name-function)
	(lua-ts--require-p): New functions.
	* lisp/speedbar.el (speedbar-supported-extension-expressions):
	Add Lua to the list of supported file types.  (Bug#66465)

2023-10-25  Spencer Baugh  <sbaugh@catern.com>

	Add toggle-window-dedicated command and mode-line-window-dedicated

	It's sometimes useful to interactively make certain windows dedicated.
	This allows a level of interactive control over which window
	display-buffer uses.

	Additionally, when a window is dedicated (even without this new
	command) it can affect display-buffer behavior in ways which may be
	unexpected for users.  Let's display the window dedicated status in
	the mode-line to help indicate what's going on.

	* doc/emacs/windows.texi (Displaying Buffers): Add information about
	dedicated windows and toggle-window-dedicated.
	* doc/emacs/screen.texi (Mode Line): Add information about the window
	dedicated indicator.
	* etc/NEWS: Announce mode-line-window-dedicated and
	toggle-window-dedicated.
	* lisp/window.el (toggle-window-dedicated): Add.  (bug#64619)
	(window-prefix-map): Add C-x w d binding.
	* lisp/bindings.el (mode-line-window-control): Add.
	(mode-line-window-dedicated): Add.
	(standard-mode-line-format): Insert mode-line-window-dedicated.

2023-10-25  dalanicolai  <dalanicolai@gmail.com>

	Fix 'locate-dominating-file' when FILE is not a directory.

	* lisp/files.el (locate-dominating-file): Handle FILE that is not
	a directory.  (Bug#66542)

2023-10-25  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Better handle errors when writing r-o files without backup

	* lisp/files.el (basic-save-buffer-2): Restore file permissions when
	writing read-only files without backup fails.  (Bug#66546)

2023-10-25  Stefan Kangas  <stefankangas@gmail.com>

	Add HTTPS to mh-access-types

	* lisp/mh-e/mh-mime.el (mh-access-types): Add HTTPS.

2023-10-25  Stefan Kangas  <stefankangas@gmail.com>

	Respect browse-url-default-scheme on Haiku

	* lisp/net/browse-url.el (browse-url-default-haiku-browser): Respect
	'browse-url-default-scheme', which currently defaults to "http".

2023-10-25  Stefan Kangas  <stefankangas@gmail.com>

	Prefer HTTPS in `M-x webjump´

	* lisp/net/webjump.el (webjump-url-fix): Prefer HTTPS to HTTP.
	(webjump-sites): Document the above change.
	(webjump-sample-sites): Change some links to HTTP only.

2023-10-25  Stefan Kangas  <stefankangas@gmail.com>

	Silence makeinfo 7.1 warnings in Tramp manual

	* doc/misc/tramp.texi: Fix makinfo warning "@indent is useless inside
	of a paragraph".

2023-10-25  Stefan Kangas  <stefankangas@gmail.com>

	Reduce code duplication in webjump

	* lisp/net/webjump.el (webjump): Simplify.

2023-10-25  Mattias Engdegård  <mattiase@acm.org>

	LLDB support: cope with inserted text being write-protected

	* lisp/progmodes/gud.el (gud-lldb-marker-filter):
	Force deletion of the part of the buffer being moved back into
	filtering again (bug#66738).

2023-10-25  Po Lu  <luangruo@yahoo.com>

	Documentation copy-edits

	* doc/emacs/input.texi (Touchscreens):

	* doc/lispref/frames.texi (Other Selections): Insubstantial
	copy-edits and improvements to word choice.

2023-10-25  Po Lu  <luangruo@yahoo.com>

	Correct computation of intermediate axis coordinates

	* src/sfnt.c (sfnt_compute_tuple_scale, sfnt_vary_simple_glyph)
	(sfnt_vary_compound_glyph): Correct typos involving
	intermediate_end (or something of the like) being set to
	intermediate_start.

2023-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Prefer HTTPS to HTTP in ffap

	* lisp/ffap.el (ffap-fixup-machine): Prefer HTTPS to HTTP for things
	looking like URIs (for example www.example.org).

2023-10-24  Jim Porter  <jporterbugs@gmail.com>

	Add a new Eshell special reference type for markers

	* lisp/eshell/esh-arg.el (eshell-get-marker, eshell-insert-marker)
	(eshell-complete-marker-ref): New functions...
	(eshell-special-ref-alist): ... Add them to the new "marker" entry.

	* test/lisp/eshell/esh-arg-tests.el
	(esh-arg-test/special-reference/marker)
	(esh-arg-test/special-reference/nested)
	(esh-arg-test/special-reference/lisp-form):
	* test/lisp/eshell/em-cmpl-tests.el
	(em-cmpl-test/special-ref-completion/type)
	(em-cmpl-test/special-ref-completion/marker): New tests.

	* doc/misc/eshell.texi (Arguments): Document the new special ref type.

	* etc/NEWS: Announce this change (bug#66458).

2023-10-24  Jim Porter  <jporterbugs@gmail.com>

	Add 'eshell-special-ref-alist' to allow extending Eshell special refs

	* lisp/eshell/esh-cmd.el (eshell--region-p, eshell-with-temp-command):
	Move to...
	* lisp/eshell/esh-util.el (eshell--region-p)
	(eshell-with-temp-command): ... here.

	* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Fix edge
	case when 'end' is at beginning of (possibly-narrowed) buffer.

	* lisp/eshell/esh-arg.el (eshell-special-ref-alist) New variable...
	(eshell-special-ref-default): ... New option...
	(eshell--special-ref-function): ... New function...
	(eshell-parse-special-reference): ... use them.
	(eshell-insert-special-reference): New function.
	(eshell-complete-special-reference): Reimplement to use a nested call
	to Pcomplete.
	(eshell-complete-buffer-ref): New function.

	* lisp/eshell/esh-proc.el (eshell-proc-initialize): Add "process"
	special ref type here.
	(eshell-complete-process-ref): New function.

	* doc/misc/eshell.texi (Bugs and ideas): Remove now-implemented idea.

2023-10-24  Jim Porter  <jporterbugs@gmail.com>

	Support arbitrary Eshell arguments inside special references

	* lisp/eshell/esh-arg.el (eshell-current-argument-plain): New variable.
	(eshell-parse-special-reference): Use 'eshell-parse-arguments'.
	(eshell-get-buffer): New function.
	(eshell-insert-buffer-name): Properly quote the buffer name.

	* lisp/eshell/esh-proc.el (eshell-read-process-name): Move to "Special
	references" section.
	(eshell-insert-process): Properly quote the process name.

	* lisp/eshell/em-extpipe.el (eshell-parse-external-pipeline):
	* lisp/eshell/esh-io.el (eshell-parse-redirection): Don't do anything
	when 'eshell-argument-plain' is non-nil.

	* test/lisp/eshell/esh-arg-tests.el
	(esh-arg-test/special-reference/quoted)
	(esh-arg-test/special-reference/var-expansion): New tests.
	(esh-arg-test/special-reference/special): Rename to...
	(esh-arg-test/special-reference/special-characters): ... this.

	* test/lisp/eshell/em-extpipe-tests.el (em-extpipe-tests--deftest):
	Properly quote the buffer name.
	(em-extpipe-test-4, em-extpipe-test-7): Use 'eshell-get-buffer'.

2023-10-24  Andrea Corallo  <acorallo@gnu.org>

	Make eln files re-dumpable (bug#45103)

	* lisp/loadup.el (load--bin-dest-dir, load--eln-dest-dir): New
	variable.
	(load--fixup-all-elns): New function.
	* src/pdumper.c (Fdump_emacs_portable): Update to call
	'load--fixup-all-elns'.
	* src/print.c (print_vectorlike): Improve CU printing.

2023-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Make NSM warn if DH key exchange has less than 2048 bit primes

	The previous default was to warn when servers supported only 1024 bit
	primes in Diffie-Hellman key exchanges.  This highly conservative
	number was based on the observation that, in November 2018, no less
	than 12.7% of servers still only supported 1024 bit primes (less than
	0.1% supported only 768 and 512 bits).

	Five years later, in October 2023, only 3.7 % of servers remain with
	only 1024 bit support.  SSL Labs summarizes: "At this time, 2048 bits
	is the minimum expected strength."  Therefore, it is reasonable to
	start warning users about this in Emacs 30.1, at which time even fewer
	servers with such poor capabilities will remain.

	Note that key exchanges based on 1024 bit prime number were considered
	broken for security purposes already in 2015 (see Logjam below).

	For more information:
	https://www.ssllabs.com/ssl-pulse/
	https://en.wikipedia.org/wiki/Logjam_(computer_security)

	* lisp/net/nsm.el (nsm-protocol-check--dhe-prime-kx): Bump expected
	minimum number of prime bits to 2048.

2023-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Warn about 3DES when network-security-level is medium

	* lisp/net/nsm.el (network-security-protocol-checks): Bump
	deprecated and insecure '3des-cipher' to 'medium'.
	* doc/emacs/misc.texi (Network Security): Document the above change.
	Ref: https://nvd.nist.gov/vuln/detail/CVE-2016-2183

2023-10-24  Po Lu  <luangruo@yahoo.com>

	Introduce an option which controls touch screen hscroll

	* doc/emacs/input.texi (Touchscreens): Document this new
	function and revise this node for clarity and pithiness.

	* lisp/touch-screen.el (touch-screen): New custom group.
	(touch-screen-display-keyboard, touch-screen-delay)
	(touch-screen-precision-scroll, touch-screen-word-select)
	(touch-screen-extend-selection, touch-screen-preview-select):
	Move such options to that group.
	(touch-screen-enable-hscroll): New user option.
	(touch-screen-handle-scroll): If it is disabled, maintain the
	hscroll accumulators but refrain from scrolling the window.

2023-10-24  Ulrich Müller  <ulm@gentoo.org>

	* Makefile.in (sanity-check): Add the -Q option.  (Bug#66721)

2023-10-24  Mattias Engdegård  <mattiase@acm.org>

	Better LLDB frame information (bug#66604)

	Instead of modifying `frame-format` to be entirely machine-readable,
	keep the original human-readable format and append a second,
	machine-readable line that we remove after parsing.

	* lisp/progmodes/gud.el
	(gud-lldb-marker-filter): Parse the new line format and filter it out.
	* lisp/progmodes/gud.el
	(gud-lldb-def-python-completion-function): Rename to...
	(gud--lldb-python-init-string): ...this and add modification
	of `frame-format`, which seems easiest done from Python.
	(gud-lldb-frame-format): Remove.
	(gud-lldb-initialize): Update, remove no longer needed parts.

2023-10-24  Po Lu  <luangruo@yahoo.com>

	Correct documentation of selection-coding-system

	* doc/lispref/frames.texi (Window System Selections): Don't
	assert that selection-coding-system functions everywhere or that
	its default value is always utf-16le-dos.
	(Drag and Drop): Fix a typo.

2023-10-24  Po Lu  <luangruo@yahoo.com>

	* doc/lispref/frames.texi (Drag and Drop): Fix typo.

2023-10-24  Po Lu  <luangruo@yahoo.com>

	Rewrite all sections of the drag-and-drop documentation

	* doc/lispref/frames.texi (Other Selections): Correct
	punctuation in one paragraph.
	(Drag and Drop): Rewrite last two sections for clarity.

2023-10-24  Po Lu  <luangruo@yahoo.com>

	Rewrite first two sections of the drag-and-drop documentation

	* doc/lispref/frames.texi (Accessing Selections): Refine
	wording.
	(Drag and Drop): Rewrite for clarity and enter into detail upon
	various function arguments.

2023-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Prefer HTTPS to HTTP in thing-at-point

	* lisp/thingatpt.el (thing-at-point-url-at-point): Prefer HTTPS to
	HTTP.

2023-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Remove gmane.org support from nnweb

	* lisp/gnus/nnweb.el (nnweb-type, nnweb-type-definition): Remove gmane.
	(nnweb-gmane-create-mapping, nnweb-gmane-wash-article)
	(nnweb-gmane-search, nnweb-gmane-identity): Make obsolete.
	(nnweb-definition, nnweb-init): Raise user-error when 'nnweb-type' is
	'gmane'.
	* doc/misc/gnus.texi (Registry Article Refer Method): Update
	example to not use gmane.org.
	Ref: https://gmane.io/

2023-10-23  Stefan Kangas  <stefankangas@gmail.com>

	Prefer HTTPS to HTTP for Google Groups

	* lisp/gnus/nnweb.el (nnweb-type-definition): Prefer HTTPS to HTTP
	when accessing Google Groups.

2023-10-23  Dmitry Gutov  <dmitry@gutov.dev>

	xref-backend-references: Avoid finding duplicates

	* lisp/progmodes/xref.el (xref-backend-references):
	Cull subdirectories of other elements (bug#66683).

2023-10-23  Mattias Engdegård  <mattiase@acm.org>

	More robust control sequence handling in LLDB output (bug#66604)

	* lisp/progmodes/gud.el (gud-lldb-marker-filter):
	Slightly more elaborate interpretation of CHA and ED sequences
	in LLDB output, allowing edits to previously emitted characters
	on the same line.

2023-10-23  Mattias Engdegård  <mattiase@acm.org>

	Modernize text about using dynamic variables

	* doc/lispref/variables.texi (Dynamic Binding Tips):
	Give more useful advice.

2023-10-23  Mattias Engdegård  <mattiase@acm.org>

	Elaborate Elisp dialect selection in manual

	* doc/lispref/variables.texi (Using Lexical Binding): Rename to...
	(Selecting Lisp Dialect): ...this.  All references updated.
	Add concrete examples of -*- lines.
	Move text about special variables from here...
	(Dynamic Binding): ...to here.

2023-10-23  Mattias Engdegård  <mattiase@acm.org>

	Describe lexical binding before dynamic

	* doc/lispref/variables.texi (Variable Scoping)
	(Lexical Binding, Dynamic Binding):
	Alter the presentation order from the point of view that lexical
	binding is the standard discipline (if not always the default) and
	dynamic binding an alternative, which corresponds better to Elisp
	today.  Modernize parts of the text.
	* doc/lispref/elisp.texi (Top): Update menu.

2023-10-23  Mattias Engdegård  <mattiase@acm.org>

	Improved `eval` documentation

	Prompted by Michael Heerdegen.

	* src/eval.c (Feval):
	* doc/lispref/eval.texi (Eval):
	Be more precise about the LEXICAL argument.

2023-10-23  Stefan Kangas  <stefankangas@gmail.com>

	Fix failing ERC test

	* test/lisp/erc/erc-tests.el (erc--update-modules/unknown): Fix
	test failing due to grave/curve quote.

2023-10-23  Po Lu  <luangruo@yahoo.com>

	Rewrite Yank Media node in the Emacs Lisp manual

	* doc/lispref/frames.texi (Other Selections): Introduce a
	reference to Accessing Selections, then rewrite for clarity and
	to stop mentioning MIME types by name, for selection data types
	are not confined to those.

2023-10-23  john muhl  <jm@pub.pink>

	Various improvements to lua-ts-mode (Bug#66159)

	* lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Improve movement.
	(lua-ts--simple-indent-rules): Improve indentation rules.
	(lua-ts-mode-map): Add key bindings and menus.
	(lua-ts-mode-hook): Make hook available in Customize.
	(lua-ts-inferior-history, lua-ts-inferior--write-history): Add option
	to read/write an input history file.
	(lua-ts-inferior-lua, lua-ts-send-buffer, lua-ts-send-file)
	(lua-ts-send-region, lua-ts-inferior-prompt)
	(lua-ts-inferior-prompt-continue): Support for sending buffer,
	file or region to the inferior process.
	(lua-ts-show-process-buffer, lua-ts-hide-process-buffer)
	(lua-ts-kill-process): New functions.
	(lua-ts-inferior-prompt-regexp): Remove option.
	* test/lisp/progmodes/lua-ts-mode-resources/indent.erts:
	* test/lisp/progmodes/lua-ts-mode-resources/movement.erts: Add
	tests.

2023-10-23  Po Lu  <luangruo@yahoo.com>

	Correctly register Num Lock keys under Haiku

	* src/haiku_support.cc (DispatchMessage): If B_NUM_LOCK is set,
	invert B_SHIFT_KEY; should it be subsequently set, omit mapping
	from raw_char.

2023-10-23  Gerd Möllmann  <gerd@gnu.org>

	Fix LLDB prompt in Gud when attached

	* lisp/progmodes/gud.el (gud-lldb-marker-filter): Fix the prompt by
	replacing multiple spaces with one.

2023-10-23  Po Lu  <luangruo@yahoo.com>

	Further improve documentation concerning selections

	* doc/lispref/frames.texi (Window System Selections): Replace
	incomplete attempts to address selection data types in this node
	with references to Accessing Selections.
	(Accessing Selections, X Selections): Revise for clarity and
	pithiness.

2023-10-23  Antero Mejr  <antero@mailbox.org>
	    Visuwesh  <visuweshm@gmail.com>

	Add completion for 'doas' to pcomplete

	* lisp/pcmpl-unix.el (pcomplete/doas): New function.
	* etc/NEWS: Announce.  (Bug#66551)

2023-10-22  Mauro Aranda  <maurooaranda@gmail.com>

	Allow specifying the dir locals file to edit (Bug#66663)

	* lisp/files-x.el (modify-dir-local-variable): Take a 5th optional
	argument, the filename of the dir locals file to modify.
	(read-dir-locals-file): New function.
	(add-dir-local-variable, delete-dir-local-variable)
	(copy-file-locals-to-dir-locals): Optionally read the filename to
	modify, and pass it to modify-dir-local-variable.
	* etc/NEWS: Announce the change.
	* doc/emacs/custom.texi (Directory Variables): Document the new
	functionality.

2023-10-22  Petteri Hintsanen  <petterih@iki.fi>

	* lisp/tab-bar.el: Fix the close button with auto-width (bug#66678).

	(tab-bar-auto-width): Take into account the length of tab-bar-close-button
	more than one character: " x".

2023-10-22  Po Lu  <luangruo@yahoo.com>

	Further improve selection-related documentation

	* doc/lispref/frames.texi (Other Selections): Expand
	documentation regarding Haiku selections, and some
	non-substantive copy edits elsewhere.  Introduce more indexing.

2023-10-22  Po Lu  <luangruo@yahoo.com>

	Revise documentation concerning selections outside X

	* doc/lispref/frames.texi (Accessing Selections, X Selections):
	Correct markup, averting the recognition of X followed by a
	sentence stop as an acronym.
	(Other Selections): Relate the nature of the MS-Windows
	selection emulation, how it functions, and its deficiencies.
	Clarify paragraphs concerning PGTK and Nextstep.

	* doc/misc/efaq.texi (Emacs in a Linux console):

	* doc/misc/use-package.texi (Conditional loading): Correct
	markup, averting the recognition of X followed by a sentence
	stop as an acronym.

2023-10-22  Po Lu  <luangruo@yahoo.com>

	Enumerate default UVS glyphs

	* src/sfnt.c (sfnt_compare_unicode_value_range)
	(sfnt_is_character_default): New functions.
	(sfnt_test_uvs): Print and verify the default UVS table.

	* src/sfnt.h: Update prototypes.

	* src/sfntfont.c (sfntfont_get_variation_glyphs): Index the cmap
	with the default glyph, and insert it within VARIATIONS if
	character is present within a selector record's default UVS
	table.

2023-10-21  Yuan Fu  <casouri@gmail.com>

	Documentation for treesit-font-lock-rules change

	* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
	* lisp/treesit.el (treesit-font-lock-rules): Update docstring.

2023-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/cedet/semantic/imenu.el: Don't load `advice`

	We don't use it any more here.  Also move the `;;; Code:` where it belongs.

2023-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/treesit.el: Don't require `cl-seq` directly

2023-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	so-long.el: Don't load `advice` during compilation

	* lisp/so-long.el: Prefer #' to quote function names.
	(global-so-long-mode): Remove redundant `:group` arg.
	(<toplevel>): Don't load needlessly the obsolete `advice` library
	during compilation.

2023-10-21  Mattias Engdegård  <mattiase@acm.org>

	Move lexical-binding warning from checkdoc to byte-compiler

	This warning is much more appropriate for the compiler, since lexical
	binding affects what it can reason and warn about, than for checkdoc
	as the warning has no bearing to documentation at all.
	The move also improves the reach of the warning.

	* etc/NEWS: Update.
	* lisp/emacs-lisp/checkdoc.el (checkdoc-lexical-binding-flag)
	(checkdoc-file-comments-engine): Move warning from here....
	* lisp/emacs-lisp/bytecomp.el (byte-compile-file): ...to here.
	* test/lisp/emacs-lisp/bytecomp-resources/no-byte-compile.el:
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--unescaped-char-literals)
	(bytecomp-tests-function-put, bytecomp-tests--not-writable-directory)
	(bytecomp-tests--target-file-no-directory):
	Update tests.
	(bytecomp-tests--log-from-compilation)
	(bytecomp-tests--lexical-binding-cookie): New test.

2023-10-21  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	b99d12c30c3 ; Fix argument name for function `copy-file'

2023-10-21  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	ab9d6482e3b ; Update ChangeLog.4 and etc/AUTHORS.
	d9e1605122b Correctly register focus events concomitant with alpha ch...
	194e219825c * doc/man/emacsclient.1: Add missing options.

2023-10-21  Mattias Engdegård  <mattiase@acm.org>

	Move and edit text about lexical environment representation

	It's only relevant for the second argument to `eval`; the actual
	internal representation is an implementation matter and usually
	different from what was described here.

	* doc/lispref/variables.texi (Lexical Binding): Move the relevant
	part of the description of the internal representation of
	lexical environments from here...
	* doc/lispref/eval.texi (Eval): ...to here, where it belongs.

2023-10-21  Eli Zaretskii  <eliz@gnu.org>

	Fix mouse clicks on links under 'global-display-line-numbers-mode'

	* src/indent.c (line_number_display_width): No longer static.
	* src/lisp.h (line_number_display_width): Add prototype.
	* src/keyboard.c (save_line_number_display_width)
	(line_number_mode_hscroll): New functions.
	(make_lispy_event): Call 'save_line_number_display_width' and
	'line_number_mode_hscroll' to avoid interpreting up-event as drag
	event when redisplay scrolls the text horizontally between the
	down- and up-event to account for the changed width of the
	line-number display.  (Bug#66655)

2023-10-21  Lassi Kortela  <lassi@lassi.io>

	Recognize backslash in `dns-mode` quoted values

	* lisp/textmodes/dns-mode.el (dns-mode-syntax-table): Recognize
	backslash as an escape character.  (Bug#66660)

2023-10-21  Stefan Kangas  <stefankangas@gmail.com>

	Don't use obsolete `sleep-for` argument

	* lisp/net/sieve-manage.el (sieve-manage-wait-for-answer):
	* lisp/org/ob-lua.el (org-babel-lua-evaluate-session):
	* lisp/org/ob-python.el (org-babel-python-initiate-session-by-key):
	(org-babel-python-evaluate-session): Don't use obsolete 'sleep-for'
	argument.

2023-10-21  john muhl  <jm@pub.pink>

	Support lua-ts-mode in align.el

	* lisp/align.el (align-rules-list): Add lua-ts-mode.  (Bug#66466)
	* lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Indent region
	before aligning.
	* test/lisp/align-tests.el (align-lua):
	* test/lisp/align-resources/lua-ts-mode.erts: Add tests.

2023-10-21  Mauro Aranda  <maurooaranda@gmail.com>

	Fix eglot-report-progress :type

	* lisp/progmodes/eglot.el (eglot-report-progress): Change :type to
	choice, to allow 'messages' as a value.  (Bug#66556)

2023-10-21  Po Lu  <luangruo@yahoo.com>

	Facilitate opening multiple files through DND under Android

	* java/org/gnu/emacs/EmacsWindow.java (onDragEvent): Agglomerate
	each provided content URI into a text/uri list.

2023-10-21  Huan Nguyen  <goafanxx@gmail.com>

	New keyword :default-language in treesit-font-lock-rules function.

	* lisp/treesit.el (treesit-font-lock-rules): Keyword :default-language
	LANGUAGE will be chosen for every :feature.  Using :language will
	override the :default-language for the next :feature.

2023-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	(buffer-match-p): Replace `&optional` with `&rest` (bug#65797)

	* lisp/subr.el (buffer-match-p--past-warnings): New var.
	(buffer-match-p): Use it.  Replace `&optional arg` with `&rest args`.
	(match-buffers): Replace `&optional arg` with `&rest args`.

	* lisp/window.el (display-buffer-alist): Fix out of date docstring.

	* doc/lispref/buffers.texi (Buffer List): Document new calling convention.

2023-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	(sleep-for): Make the `millisec` argument obsolete

	* lisp/subr.el (sleep-for): Set new advertised calling convention.
	* src/dispnew.c (Fsleep_for): Adjust docstring.
	* doc/lispref/commands.texi (Waiting): Adjust doc.

2023-10-21  F. Jason Park  <jp@neverwas.me>

	Prefer erc-target to erc-default-target

	* etc/ERC-NEWS: Mention `erc-target' and new `erc-server-buffer-p'
	alias.
	* lisp/erc/erc-backend.el (erc-process-sentinel): Set `joined-p' slot
	of `erc--target-channel' object to nil when applicable.
	(erc-server-JOIN): Mark `erc--target-channel' object as being joined.
	* lisp/erc/erc-common.el (erc--target-channel): Add `joined-p' slot.
	Use hyphenated name so accessor function's name ends in "joined-p"
	rather than "joinedp".  Note that this will always be nil when
	disconnected.
	(erc--target): Relocate here from erc.el.
	(erc-target): New public API function to return the current buffer's
	target as a string, even in channels that have been unjoined.
	* lisp/erc/erc-networks.el (erc--default-target): Remove forward
	declaration.
	(erc-networks--id-reload): Use `erc-target' instead of
	`erc--default-target' as predicate for visiting target buffers.
	* lisp/erc/erc.el (erc-remove-channel-users): Set channel "joinedness"
	to nil in `erc--target-channel' object, when applicable.
	(erc--target): Move to erc-common.
	(erc--default-target): Remove, replaced by new function `erc-target'.
	(erc-query-buffer-p): Use `erc-target'.
	(erc-after-connect): Revise doc string.
	(erc-connection-established): Revise doc string and move
	`erc-unhide-query-prompt' business before hook.
	(erc--current-buffer-joined-p): Remove comment and use new `joined-p'
	slot of `erc--target-channel' for determining "joinedness" of channel.
	(erc-kill-buffer-function): Use `erc--target-channel-p' for detecting
	whether the buffer is a channel buffer.
	* test/lisp/erc/erc-networks-tests.el
	(erc-networks--shrink-ids-and-buffer-names--hook-collapse-target):
	Remove comment.
	* test/lisp/erc/erc-scenarios-base-reuse-buffers.el
	(erc-scenarios-common--base-reuse-buffers-channel-buffers):
	Clarify assertion.
	* test/lisp/erc/erc-tests.el (erc-with-all-buffers-of-server):
	Replace `erc-default-recipients' with `erc--target'.
	(erc--target-from-string): Update expected shape of
	`erc--target-channel' struct with new `joined-p' slot.
	(erc-message): Set `erc--target' in buffer "#chan".  (Bug#66578)

2023-10-21  F. Jason Park  <jp@neverwas.me>

	Rename erc-server-buffer-p

	* lisp/erc/erc-log.el (erc-log-all-but-server-buffers): Use
	`erc--server-buffer-p' instead of `erc-server-buffer-p'.  This
	replacement is presumed to be relatively "safe" because this function
	is unused in the code base and only appears in the doc string for the
	option `erc-enable-logging'.
	* lisp/erc/erc-match.el (erc-match-message): Leave comment proposing
	that `erc--server-buffer-p' should be preferred to
	`erc-server-buffer-p'.  Use preferred alias for `erc-server-buffer-p'.
	* lisp/erc/erc-notify.el (erc-cmd-NOTIFY): Use preferred alias for
	`erc-server-buffer-p', and leave FIXME comment.
	* lisp/erc/erc-speedbar.el (erc-speedbar-buttons): Use
	`erc--server-buffer-p' instead of `erc-server-buffer-p'.  The logic
	here seems simple enough to justify a change, however the absence of
	related bug reports is perhaps an argument against this.
	* lisp/erc/erc-track.el (erc-track-modified-channels): Use preferred
	alias for `erc-server-buffer-p' and leave comment noting possible bug.
	* lisp/erc/erc.el (erc-once-with-server-event): Use
	`erc--server-buffer-p' instead of `erc-server-buffer-p'.  This change
	seems justified because the function sets local hooks that would
	otherwise be ignored outside of a server buffer.
	(erc-server-buffer-p, erc-server-or-unjoined-channel-buffer-p): Make
	the former an obsolete alias for the latter.
	(erc--server-buffer-p): New function to replace `erc-server-buffer-p'
	internally in new code.  Unlike its predecessor, it returns nil in
	parted and kicked channels.
	(erc-open-server-buffer-p): Use `erc--server-buffer-p' instead of
	`erc-server-buffer-p'.  Given the name and the doc string, breaking
	the odd misuse of this function in parted buffers seems justified
	because this is clearly a bug fix.  Also, all uses in-tree conform to
	the intended behavior as documented.  And a cursory grep of all "erc-"
	prefixed packages on MELPA reveals zero instances of this function.
	Nor is it used in erbot.
	(erc-get-buffer): Mention behavior in doc string regarding parted and
	kicked-from channels.
	(erc-cmd-GQUIT): Fix wrong-number-of-arguments bug in timer function.
	(erc-default-target): Mention behavior regarding unjoined channels.
	(erc-kill-query-buffers): Don't use `erc-server-buffer-p'.  This
	replacement may break third-party code expecting to leave parted
	channels behind, but it seems sane when considering only the lone
	internal use in `erc-cmd-QUIT'.
	(Bug#66578)

2023-10-20  F. Jason Park  <jp@neverwas.me>

	Respect user markers in erc-insert-timestamp-left

	* lisp/erc/erc-stamp.el (erc-insert-timestamp-left): Convert to normal
	function, a mere wrapper that defers to existing generic variants, in
	order to dissuade users from adding their own methods, which could
	complicate troubleshooting, etc.
	(erc--insert-timestamp-left): Rename both methods using internal
	double-hyphen convention.  In `erc-stamp--display-margin-mode'
	implementation, don't displace third-party markers.
	* test/lisp/erc/erc-scenarios-stamp.el: New file.  (Bug#60936)

2023-10-20  F. Jason Park  <jp@neverwas.me>

	Fix right-sided stamps commingling with erc-prompt

	* lisp/erc/erc-stamp.el (erc-insert-timestamp-left-and-right): Fix bug
	that saw the prompt being inserted after messages but just inside the
	narrowed operating portion of the buffer, which meant remaining
	modification hooks would see it upon visiting.  Thanks to Corwin Brust
	for catching this.
	* test/lisp/erc/erc-fill-tests.el (erc-fill-wrap--monospace): Use
	custom `erc-prompt' function to guarantee invariants asserted by
	`erc--assert-input-bounds' are preserved throughout.  (Bug#60936)

2023-10-20  F. Jason Park  <jp@neverwas.me>

	Restore missing metadata props in erc-display-line

	* etc/ERC-NEWS: Designate `erc-display-message' as the favored means
	of inserting messages.
	* lisp/erc/erc-fill.el (erc-fill-wrap): Skip any `unknown' `erc-msg'.
	* lisp/erc/erc-stamp.el (erc-stamp--current-time): Use an existing
	`erc-ts' text property, when present, for the current message time.
	* lisp/erc/erc.el (erc-display-line-1, erc-insert-line): Update doc
	string and declare the former an obsolete alias for the latter,
	`erc-insert-line'.  Have `erc-log' label say `erc-display-message'
	even though this function is actually `erc-insert-line'.
	(erc-display-line): Convert to a thin wrapper around
	`erc-display-message', and move its existing body to a new internal
	function, `erc--route-insertion'.
	(erc--route-insertion): Adopt former body of `erc-display-line', now a
	convenience wrapper around `erc-display-message'.  Copy
	`erc--msg-props' hash table when inserting a message in multiple
	buffers.  At present, only `erc-server-QUIT' uses this facility, so
	such a move shouldn't impact performance in any measurable way.  Also,
	improve readability with at most one recursive call for the
	fall-through case.
	(erc--compose-text-properties, erc--merge-text-properties-p): Rename
	former to latter to avoid confusion with `composition' property.
	(erc-display-message): Update doc string.  Attempt to adapt a non-nil
	TYPE parameter for use as the value of the `erc-msg' text property
	before resorting to a value of `unknown'.  But only do this when
	PARSED is nil, and MSG is a string.  Call `erc--route-insertion'
	instead of `erc-display-line'.  Use new name for
	`erc--compose-text-properties'.
	(erc-put-text-property): Update name of variable
	`erc--compose-text-properties'.
	* test/lisp/erc/erc-networks-tests.el (erc-networks--set-name): Mock
	`erc--route-insertion' instead of `erc-display-line'.
	* test/lisp/erc/erc-scenarios-display-message.el: New file.
	* test/lisp/erc/erc-tests.el (erc--route-insertion): New test.
	* test/lisp/erc/resources/base/display-message/multibuf.eld: New test
	data.
	(Bug#60936)

2023-10-20  F. Jason Park  <jp@neverwas.me>

	Warn about top-level erc-update-modules calls

	* doc/misc/erc.texi (Modules): Describe unfavorable practices enacted
	by third-party modules, like running `erc-update-modules' on load.
	* lisp/erc/erc.el (erc-modules): Clarify comment in `custom-set'
	function.
	(erc--warn-about-aberrant-modules): Tweak warning message.
	(erc--requiring-module-mode-p): New internal variable.
	(erc--find-mode): Guard against recursive `erc-update-module'
	invocations.  (Bug#57955)

2023-10-20  F. Jason Park  <jp@neverwas.me>

	* lisp/erc/erc-backend.el (define-erc-response-handler) Edebug spec.

2023-10-20  Dmitry Gutov  <dmitry@gutov.dev>

	project--switch-project-command: Retouch

	* lisp/progmodes/project.el (project--switch-project-command):
	Remove outdated comment and clear the echo area at the end.

2023-10-20  Po Lu  <luangruo@yahoo.com>

	Repair detection of empty mailto URLs

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate):
	Additionally regard mailto:// as an empty URL, since Android does
	interpret them as such.

2023-10-20  Gerd Möllmann  <gerd.moellmann@gmail.com>

	Fix Gud LLDB completion for function names

	LLDB completion candidates can contain parentheses.

	* lisp/progmodes/gud.el (gud-lldb-fetch-completions): Use unique
	completion list delimiters. Add timeout to accept-process-input.
	(gud-lldb-def-python-completion-function): Use new completion
	list delimiters.
	(lldb): Add hint about completions to doc string.
	(gud-lldb-marker-filter): Don't use eval.

2023-10-20  Po Lu  <luangruo@yahoo.com>

	Treat empty mailto URIs properly under Android

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): If an
	empty mailto: URI is supplied, ascertain if EXTRA_EMAIL is set,
	then derive a mailto URI from that if so.

2023-10-20  Dmitry Gutov  <dmitry@gutov.dev>

	Improve behavior with project-switch-use-entire-map=t

	* lisp/progmodes/project.el (project--keymap-prompt): New function.
	(project--switch-project-command): Use it when
	project-switch-use-entire-map is non-nil.  Also check that CHOICE
	is not a number (bug#63648).  And print incorrect inputs too.

2023-10-19  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el (project--other-place-prefix): New function.

	(project-other-window-command, project-other-frame-command)
	(project-other-tab-command): Use it in Emacs versions not less than 30
	where other-*-prefix commands are available.
	This fixes the cases such as 'C-u C-x 5 p p f TAB' from bug#65558.

2023-10-19  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp version

	* lisp/net/trampver.el (customize-package-emacs-version-alist):
	Adapt Tramp version integrated in Emacs 29.2.

2023-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl--typeof-types): Complete last change

	* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types):
	Add `integer-or-marker` in the hierarchy as well.

2023-10-19  Ulf Jasper  <ulf.jasper@web.de>

	* admin/MAINTAINERS: Remove Ulf Jasper as maintainer of icalendar.el

2023-10-19  Gerd Möllmann  <gerd.moellmann@gmail.com>

	Fix last change in gud.el

	* lisp/progmodes/gud.el (gud-lldb-initialize): Fix duplicated
	output.

2023-10-19  Andrea Corallo  <acorallo@gnu.org>

	Add two missing 'number-or-marker' entries to the cl machinery (bug#66615)

	Assuming 'number-or-marker' is a type (as present multiple times in
	cl--typeof-types) adding some missing entries for coherency.

	* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add
	'number-or-marker' as supertype of 'number' in the 'float' branch.

	* lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Add
	'number-or-marker'.

	* test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist):
	Update test.

	* test/src/comp-tests.el (comp-tests-type-spec-tests): Update two testes.

2023-10-19  Andrea Corallo  <acorallo@gnu.org>

	Improve cstr typeset normalization

	* test/lisp/emacs-lisp/comp-cstr-tests.el
	(comp-cstr-typespec-tests-alist): Add four tests.

	* lisp/emacs-lisp/comp-cstr.el (comp--sym-lessp)
	(comp--direct-supertype, comp--normalize-typeset0): New functions.
	(comp-normalize-typeset): Rework to make use of
	'comp--normalize-typeset0'.
	(comp--direct-subtypes): New function.

2023-10-19  Gerd Möllmann  <gerd.moellmann@gmail.com>

	Gud support for column numbers

	Allow gud-last-frame to be of the form (FILE LINE COLUMN).

	* lisp/progmodes/gud.el (gud-display-frame): Support column numbers.
	(gud-display-line): New optional parameter for column number.  Move
	point to that column, if set.
	(gud-lldb-marker-filter): Set column number.

2023-10-19  Gerd Möllmann  <gerd.moellmann@gmail.com>

	Don't rely on LLDB output format

	Let Gud define its own frame format that is easily parseable,
	and also contains the full source file path.

	* lisp/progmodes/gud.el (gud-lldb-stop): New function.
	(gud-lldb-marker-filter): Support new frame-format.
	(gud-lldb-frame-format): variable for frame-format.
	(gud-lldb-initialize): Set frame-format.

2023-10-19  Po Lu  <luangruo@yahoo.com>

	Relay body and attachments within Android e-mails to message-mailto

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Infer
	e-mail body and subject from its parameters and convey this
	information to message-mailto.

	* lisp/gnus/message.el (message-mailto): New arguments SUBJECT,
	BODY and FILE-ATTACHMENTS.
	(message-mailto-1): Insert these arguments as appropriate.

2023-10-19  Gerd Möllmann  <gerd.moellmann@gmail.com>

	Gud LLDB fix for large completion count (bug#66625)

	* lisp/progmodes/gud.el (gud-lldb-max-completions): New defcustom.
	(gud-lldb-def-python-completion-function): New argument.
	(gud-lldb-fetch-completions): Pass max count to gud_complete.
	(gud-lldb-initialize): Change text displayed at the end.

2023-10-18  Gerd Möllmann  <gerd.moellmann@gmail.com>

	Gud LLDB completions (bug#66604)

	* etc/emacs_lldb.py: Remove xcomplete.
	* lisp/progmodes/gud.el: Implement lldb command completions.
	* src/.lldbinit: Remove settings done in Gud.

2023-10-18  F. Jason Park  <jp@neverwas.me>

	Improve SOCKS error handling and support version 4a

	* doc/misc/url.texi: Mention version 4a in SOCKS portion of "Gateways
	in general" node.
	* etc/NEWS: Mention version 4a support in new `socks' section.
	* lisp/net/socks.el (socks-server): Add new Custom choice `4a' for
	version field.  This change does not further overload the field in
	terms of expected type because `socks-send-command' and `socks-filter'
	already accommodate the symbol `http'.
	(socks--errors-4): Add new constant containing error messages for
	version 4.  The semantics are faithful to the de facto spec, but the
	exact wording is slightly adapted.
	(socks-filter): Allow for a null "type" field on error with version 5.
	Previously, certain errors would not propagate because a wrong-type
	signal would get in the way.
	(socks-send-command): Massage existing version 4 protocol parsing to
	accommodate 4a, and add error handling for version 4.  Use variable
	`socks-username' for v4 variable-length ID field instead of calling
	`user-full-name', which has potential privacy implications.
	* test/lisp/net/socks-tests.el (socks-tests-v4-basic): Don't mock
	`user-full-name' because `socks-send-command' no longer calls it to
	determine the ID.
	(socks-tests-v4a-basic, socks-tests-v4a-error): Add a couple tests for
	SOCKS version 4a.  (Bug#53941)

2023-10-18  F. Jason Park  <jp@neverwas.me>

	Don't hard code server ports in SOCKS tests

	* test/lisp/net/socks-tests.el (socks-tests-canned-server-create,
	socks-tests-filter-response-parsing-v4): Fix bug in process filter to
	prevent prepared outgoing responses from being implicitly encoded as
	UTF-8.  Fix similar mistake in v4 filter test.
	(socks-tests-v4-basic, socks-tests-v5-auth-user-pass,
	socks-tests-v5-auth-user-pass-blank, socks-tests-v5-auth-none): Allow
	system to choose port instead of hard-coding it.
	(socks-tests-perform-hello-world-http-request): Add optional `method'
	parameter to specify a gateway method.
	(socks-tests-v5-auth-none): Move body to helper function of the same
	name.
	(socks-override-functions): New test ensuring top-level advice around
	`open-networks-stream' still supported.  (Bug#53941)

2023-10-18  João Távora  <joaotavora@gmail.com>

	Eglot: respect completion sort order dictated by the server

	Don't use flex style to do any completion sorting.

	Previously, it was thought that the 'flex' completion style was only
	kicking in to do (approximate) fontification of the completions
	returned by the server, but it was found that it was also doing some
	its own sorting in certain situation of non-empty matching patterns.

	Replaced it with a new eglot--dumb-flex style which does only
	fontification.

	Github-reference: https://github.com/joaotavora/eglot/discussions/1306

	* lisp/progmodes/eglot.el (eglot-completion-at-point): Rework.
	(eglot--dumb-flex, eglot--dumb-allc): New helpers.
	(completion-category-defaults): Rework Eglot-specific category.
	(completion-styles-alist): Add Eglot-specific style.

	* etc/EGLOT-NEWS: Mention change.

2023-10-18  Po Lu  <luangruo@yahoo.com>

	Correctly bisect format 12 and 8 cmap tables

	* src/sfnt.c (sfnt_bsearch_above): Cease returning the last
	element if it is ordered below the key itself.
	(sfnt_lookup_glyph_8, sfnt_lookup_glyph_12): Verify whether the
	group returned is NULL.

2023-10-18  Po Lu  <luangruo@yahoo.com>

	Mollify compiler under Android builds without mmap

	* src/sfntfont.c (sfnt_close_tables, sfnt_open_tables)
	[!HAVE_MMAP]: Do not declare rc for munmap or mmap.

2023-10-17  Gerd Möllmann  <gerd.moellmann@gmail.com>

	Gud lldb support (bug#66575)

	* lisp/progmodes/gud.el (lldb): New command.
	* etc/NEWS: Mention M-x lldb.
	* src/.lldbinit: Show no souece lines on stop.
	* doc/emacs/building.texi: Mention LLDB.

2023-10-17  Gerd Möllmann  <gerd@gnu.org>

	Modify LLDB command xcomplete to return a Lisp list

	* etc/emacs_lldb.py (xcomplete): Return a Lisp list. Add a comment
	explaining the return value.

2023-10-17  Michael Albinus  <michael.albinus@gmx.de>

	Fix tramp-revert-buffer-with-sudo

	* lisp/net/tramp-cmds.el (tramp-revert-buffer-with-sudo):
	Use `buffer-file-name' instead of `buffer-name'.  (Bug#66571)

2023-10-17  Spencer Baugh  <sbaugh@janestreet.com>

	Use project-name in the project-kill-buffers prompt

	This is mildly prettier (bug#66518).

	* lisp/progmodes/project.el (project-kill-buffers): Use project-name.

2023-10-16  Juri Linkov  <juri@linkov.net>

	Refactor 'vc-default-mode-line-string' (bug#66464)

	* lisp/vc/vc-hooks.el (vc-mode-line-state): New function with code moved from
	'vc-default-mode-line-string'.
	(vc-default-mode-line-string): Use 'vc-mode-line-state'.

	* lisp/vc/vc-git.el (vc-git-mode-line-string): Use
	'vc-mode-line-state' instead of hacking the string returned from
	'vc-default-mode-line-string'.

	* lisp/vc/vc-hg.el (vc-hg-mode-line-string): Use
	'vc-mode-line-state' instead of duplicating code from
	'vc-default-mode-line-string'.

2023-10-16  Eli Zaretskii  <eliz@gnu.org>

	Fix "C-0 C-x C-s" with write-protected files

	* lisp/files.el (basic-save-buffer-2): Call 'set-file-modes' to
	try to make the file writable, even if
	'set-file-extended-attributes' succeeded.  (Bug#66546)

2023-10-16  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	07c45f20fd3 Fix test in files-tests
	5d3f3288d22 ; * doc/emacs/search.texi (Regexp Backslash): Improve ind...
	9525315c117 Add missing :version to two defcustoms
	9044d4d94bb Fix a defcustom :type in eldoc.el
	8141d73ea7f Document 'M-x align' in the Emacs manual

2023-10-16  Po Lu  <luangruo@yahoo.com>

	Properly initialize argument list supplied to android_init_emacs

	* src/android.c (initEmacs): NULL-terminate c_argv.

2023-10-16  Po Lu  <luangruo@yahoo.com>

	Revert "Update etc/rgb.txt from X.Org upstream"

	This reverts commit 11f10dc0d0b4b1d6af828102421eac9f79e0fcba.

	* etc/rgb.txt: Restore X11R6.6 version, where non-portable color
	names are absent.

2023-10-15  Sam Steingold  <sds@gnu.org>

	Fixup for "no file modes on windows and dos"

	* lisp/ls-lisp.el (ls-lisp-format): Keep the first group of
	permissions even when `modes' is not in `ls-lisp-verbosity'.

2023-10-15  Alan Mackenzie  <acm@muc.de>

	c-indent-new-comment-line: don't test for a macro in a comment

	This fixes bug#9860.

	* lisp/progmodes/cc-cmds.el (c-indent-new-comment-line): Test for
	a comment/string before testing for a macro, thus preventing a
	"macro" being spuriously recognized in a comment.  This allows
	auto-fill-mode to work on a line beginning with # in a comment.

2023-10-15  Po Lu  <luangruo@yahoo.com>

	Correctly receive files through Android DND

	* java/org/gnu/emacs/EmacsService.java (getUsefulContentResolver)
	(getContentResolverContext): New functions which return a
	content resolver from an EmacsActivity, if at all possible.
	(openContentUri, checkContentUri): Probe or open URIs through
	such content resolvers.  Probe URIs by opening them if merely
	testing permissions fails, for DND URIs do not make
	checkCallingUriPermission return true.

	* java/org/gnu/emacs/EmacsWindow.java (onDragEvent): Address
	potential crash.

	* src/androidvfs.c (android_check_content_access): Circumvent
	JNI dynamic method dispatch.
	(android_authority_name): Guarantee NAME is never a directory.

2023-10-15  Mauro Aranda  <maurooaranda@gmail.com>

	Fix searching for tags in compressed files

	* lisp/progmodes/etags.el (etags--ensure-file): New function.
	(etags--all-files): Make sure files in TAGS can be visited, even if
	the files are compressed.  (Bug#2807)
	(etags--xref-find-definitions): Report to xref a file that we are sure
	it exists.  (Bug#44494)

2023-10-15  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2023-10-01 03:58:26 UTC.

2023-10-14  Stefan Kangas  <stefankangas@gmail.com>

	Update etc/rgb.txt from X.Org upstream

	The upstream version contains the following changes:

	  2023-07-10  rgb: Make color entries uniform
	  2014-07-06  Add aliases for colors that differ between X11 and CSS
	  2014-07-06  Add missing colors from CSS Color Module Level 4
	  2008-06-04  Nuke CVS version tags
	  2003-11-14  R6.6 is the Xorg base-line

	* etc/rgb.txt: Sync with the version in X.Org upstream
	https://cgit.freedesktop.org/xorg/app/rgb/tree/rgb.txt
	commit 0d2caecebf0e2a10994c22960921f366dd98d19a.  (Bug#66538)

2023-10-14  Alan Mackenzie  <acm@muc.de>

	Fix an infinite loop in c-beginning-of-defun-1

	This fixes bug#61436.

	The loop manifested itself in c-get-fallback-scan-pos as the
	position returned wasn't at a {, so the search back in
	c-beginning-of-defun-1 with a defun-prompt-regexp found the
	same BOL and moved forward to after the match, repeat.

	* lisp/progmodes/cc-defs.el (c-beginning-of-defun-1): Accept a
	position found by beginning-of-defun (which uses
	defun-prompt-regexp) only when the \\s( following it is a {.
	Repeat the backward search when this isn't the case.

2023-10-14  Dmitry Gutov  <dmitry@gutov.dev>

	Fix vc-hg-log-edit-toggle-amend

	* lisp/vc/log-edit.el (log-edit--toggle-amend): Handle the case
	when the VCS returns log entry that doesn't end with a newline
	(bug#66423).

2023-10-14  Dmitry Gutov  <dmitry@gutov.dev>

	(vc-default-checkin-patch): Try to be compatible with BSD 'patch'

	* lisp/vc/vc.el (vc-default-checkin-patch):
	Try to be compatible with BSD 'patch' (bug#66211).

2023-10-14  Dmitry Gutov  <dmitry@gutov.dev>

	(vc-root-diff): Don't compute and pass on WORKING-REVISION

	* lisp/vc/vc.el (vc-root-diff): Don't compute and pass on
	WORKING-REVISION (bug#66364).  It was unused.

2023-10-14  Spencer Baugh  <sbaugh@catern.com>

	Optimize vc-hg-state for directories

	Directories are never tracked in hg, so it's pointless to run
	vc-hg-state on them.  And, in fact, our implementation previously
	would list all the files contained in the directory and then parse
	that in Emacs, which is very slow in large repos.

	Let's just use the knowledge that directories aren't tracked in hg,
	and skip running hg entirely.

	* lisp/vc/vc-hg.el (vc-hg-state): Return nil for
	directories.  (Bug#66364)

2023-10-14  Harald Jörg  <haj@posteo.de>

	;cperl-mode.el: Do not mistake a left-shift operator for a here-doc.

	* lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Empty
	unquoted delimiters for here-documents are now forbidden
	(Bug#65834).

	* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-65834):
	New test.

	* test/lisp/progmodes/cperl-mode-resources/cperl-bug-65834.pl: new
	resource with source code from the bug report.

2023-10-14  Mauro Aranda  <maurooaranda@gmail.com>

	Fix indentation and fontification in shell-script (Bug#26217)

	* lisp/progmodes/sh-script.el (sh-smie--sh-keyword-p): Treat "do" as
	special, like we treat "in".
	(sh-smie--sh-keyword-in-p): Change signature.  Take the token to
	decide correctly if it's a keyword.
	(sh-font-lock-keywords-var-1): Add do.

	* test/lisp/progmodes/sh-script-resources/sh-indents.erts: New test.
	* test/lisp/progmodes/sh-script-tests.el
	(sh-script-test-do-fontification): New test.

2023-10-14  Mattias Engdegård  <mattiase@acm.org>

	Simplify and describe docstrings-wide check

	* lisp/emacs-lisp/bytecomp.el
	(byte-compile--wide-docstring-substitution-len): Remove.
	* lisp/emacs-lisp/bytecomp.el (bytecomp--docstring-line-width):
	Add back explanatory comments lost in a previous change.

2023-10-14  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	06a87738114 ; * lisp/calendar/time-date.el (days-to-time): Doc fix.
	0ea2d6d9e82 Document that time-to-days and days-to-time use different...

2023-10-14  Mattias Engdegård  <mattiase@acm.org>

	Make the docstrings-wide check 70x faster

	Instead of performing a number of expensive transformations on the
	original doc string and then use a dynamically-created regexp to find
	wide lines, step through the lines in the unmodified string and only
	perform the transformations on lines that exceed the limit.
	This is sound because the transformations are contractive.

	The new check will usually not cons nor perform any regexp matching.

	* lisp/emacs-lisp/bytecomp.el (bytecomp--docstring-line-width): New.
	(byte-compile--wide-docstring-p): Cheaper implementation.

2023-10-14  Mattias Engdegård  <mattiase@acm.org>

	Sort byte compiler warnings in alphabetic order

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types):
	Rearrange.  Add a few missing ones.

2023-10-14  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Fix beginning-of-defun not jumping to BOF

	In batch mode or when font-lock and some other niceties are switched
	off, function `syntax-ppss' can modify match data held by function
	`beginning-of-defun-raw'.  In that case, `beginning-of-defun' can jump
	to some seemingly arbitrary position, and not the actual BOF.

	* lisp/emacs-lisp/lisp.el (beginning-of-defun-raw): Save match data
	around a call to `syntax-ppss'. (Bug#66218)

2023-10-14  Mauro Aranda  <maurooaranda@gmail.com>

	Fix saving faces with attributes that need filtering

	* lisp/cus-edit.el (custom-face-save): The :shown-value property for
	the custom-face widget is supposed to be a value suitable for the
	customization widget.  (Bug#66391)

2023-10-14  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	dc8b336d025 * lisp/files.el (file-name-non-special): Handle quoted ti...

2023-10-14  Po Lu  <luangruo@yahoo.com>

	Implement multi-window drag-and-drop under Android

	* java/org/gnu/emacs/EmacsNative.java (sendDndDrag, sendDndUri)
	(sendDndText): Declare new event-sending functions.

	* java/org/gnu/emacs/EmacsView.java (onDragEvent): New function.

	* java/org/gnu/emacs/EmacsWindow.java (onDragEvent): New
	function; respond to each drag and drop event, request
	permissions if necessary and transfer dropped data to Lisp.

	* lisp/dnd.el (dnd-unescape-file-uris): New variable.
	(dnd-get-local-file-name): If that variable is nil, refrain from
	unescaping URLs provided.

	* lisp/term/android-win.el (android-handle-dnd-event): New
	function.
	(special-event-map): Bind drag-n-drop-event.

	* src/android.c (sendDndDrag, sendDndUri, sendDndText): New
	functions.

	* src/androidgui.h (enum android_event_type): New event types
	ANDROID_DND_DRAG_EVENT, ANDROID_DND_URI_EVENT,
	ANDROID_DND_TEXT_EVENT.
	(struct android_dnd_event): New structure.
	(union android_event) <dnd>: New field.

	* src/androidterm.c (handle_one_android_event)
	<ANDROID_DND_..._EVENT>: Generate drag-n-drop events for each
	of these types.
	(syms_of_androidterm) <Quri, Qtext>: New defsyms.

2023-10-14  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Have gnus-summary-limit-to-age operate on calendar days

	Reported and patched by Łukasz Stelmach <stlman@poczta.fm>.

	* lisp/gnus/gnus-sum.el (gnus-summary-limit-to-age): Rather than
	24-hour blocks. Also use `read-number', and drop the confusing option
	to reverse younger/older both with the prefix argument and with a
	negative number.

2023-10-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	(sit-for): Remove support for old calling convention

	* lisp/subr.el (sit-for): Remove support for old calling convention

	* doc/lispref/functions.texi (Obsolete Functions): Adjust wording now
	that we don't support `sit-for`s old convention any more.
	* doc/lispref/commands.texi (Waiting): Remove mention of old calling
	convention for `sit-for`.

2023-10-14  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Add new user option to etc/NEWS

	* etc/NEWS: Announce new user option `cperl-fontify-trailer'.

2023-10-14  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Optionally treat trailing text as comment

	* lisp/progmodes/cperl-mode.el (cperl-fontify-trailer): New
	customization variable.  With a value of 'comment, cperl-mode
	treats trailing text after after __END__ and __DATA__ as comment,
	like perl-mode does (Bug#66161).
	(cperl-find-pods-heres): Treat trailing text after __END__ and
	__DATA__ according to the customization variable
	`cperl-fontify-trailer'.

	* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-66161):
	New test, verifying the changed behavior if the custom variable is
	set to 'comment.

	* test/lisp/progmodes/cperl-mode-resources/cperl-bug-66161.pl: New
	resource file, source code from the corresponding bug report.

2023-10-13  Mauro Aranda  <maurooaranda@gmail.com>

	More defcustom fixes in ERC (Bug#66520)

	* lisp/erc/erc-fill.el (erc-fill-variable-maximum-indentation): Change
	:type to choice, to allow nil.
	* lisp/erc/erc-goodies.el (erc-keep-place-indicator-style): Fix
	copy-pasta.
	* lisp/erc/erc-networks.el (erc-networks-alist): Don't advertise that
	MATCHER can be a function since it doesn't look like that's ever been
	the case, reaching as far back as erc-networks.el's introduction to
	the old CVS repo, in 2006.  (Bug#66520)

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Add command to refill buffer in erc-fill-wrap-mode

	* lisp/erc/erc-fill.el (erc-fill-function, erc-fill-wrap-mode):
	Mention new command `erc-fill-wrap-refill-buffer' in doc string.
	(erc-fill--wrap-rejigger-last-message): New internal variable.
	(erc-fill--wrap-rejigger-region, erc-fill-wrap-refill-buffer): New
	command and helper function for fixing alignment issues that arise,
	for example, from adjusting pixel-display widths of buffer text during
	a session.
	* test/lisp/erc/erc-fill-tests.el (erc-fill-tests--simulate-refill):
	New function for approximating `erc-fill-wrap-refill-buffer'.
	(erc-fill-wrap--merge): Assert refilling is idempotent.  (Bug#60936)

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Treat previous/next-line specially in erc-fill-wrap

	* lisp/erc/erc-fill.el (erc-fill-wrap-visual-keys): Mention option
	`erc-fill-wrap-force-screen-line-movement' in doc string.
	(erc-fill-wrap-force-screen-line-movement): New option to suppress
	logical-line movement with `previous-line' and `next-line' when
	`erc-fill-wrap-mode' is enabled.
	(erc-fill--wrap-move): Accept trailing args.
	(erc-fill--wrap-previous-line, erc-fill--wrap-next-line): Use
	`erc-fill--wrap-move', like all the other `fill-wrap' commands.
	(Bug#60936)

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Swap hook positions of erc-fill and erc-match-message

	* etc/ERC-NEWS: Fix new order of reserved modify-hook members.
	* lisp/erc/erc-fill.el: Increase depth of `erc-fill' in both modify
	hooks from 40 to 60.
	* lisp/erc/erc-match.el (erc-match-mode, erc-match-enable,
	erc-match-disable): Use general module setup function
	`erc-match--setup' for buffer-local modifications instead of calling
	`erc-match--modify-invisibility-spec' directly.  Add and remove new
	post-modify hook `erc-match--on-insert-post'.
	(erc-hide-fools): Use `erc--msg-props' for communicating to
	post-processing step for applying invisible props instead of doing so
	immediately.
	(erc-match--on-insert-post): New function to apply module-specific
	`invisible' props.  Will likely be replaced by a general service to do
	the same, perhaps provided by a future "erc-ignore"-like module.
	(erc-match--modify-invisibility-spec, erc-match--setup): Rename former
	to latter and only operate on current buffer.
	* test/lisp/erc/erc-scenarios-match.el
	(erc-scenarios-match--stamp-left-fools-invisible,
	erc-scenarios-match--stamp-right-fools-invisible,
	erc-scenarios-match--stamp-right-invisible-fill-wrap,
	erc-scenarios-match--stamp-both-invisible-fill-static): Update
	expected order of ERC-owned `invisible' prop members `match-fools' and
	`timestamp'.
	* test/lisp/erc/erc-tests.el (erc--essential-hook-ordering): Swap
	expected order of `erc-fill' and `erc-add-timestamp' in both hooks.
	(Bug#64301)

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Manage some text props for ERC insertion-hook members

	* etc/ERC-NEWS: Mention that ERC only adds the text property
	`cursor-sensor-functions' when `erc-echo-timestamps' is enabled.  Also
	mention that date stamps are now inserted as separate messages.
	* lisp/erc/erc-fill.el (erc-fill): Look for text prop `erc-cmd'
	instead of `erc-command' and use helper utility to do so.
	(erc-fill-static): Skip date stamps because this fill style leaves
	them flush left.
	(erc-fill-wrap-mode, erc-fill-wrap-enable, erc-fill-wrap-disable):
	Don't hook on the soon-to-be-removed function interface
	`erc-stamp--insert-date-function' because date stamps are now separate
	messages.
	(erc-fill--wrap-continued-message-p): Restore accidentally discarded
	doc string.  Derive context about current message from text props at
	`point-min', and use updated property names and utility functions.
	Abort when previous message is now hidden.
	(erc-fill--wrap-stamp-insert-prefixed-date): Remove unused function,
	originally meant to be new in ERC 5.6, and move logic for date-stamp
	measuring portion directly to `erc-fill-wrap' itself.
	(erc-fill--wrap-measure): New helper function.
	(erc-fill-wrap): Use helper `erc-fill--wrap-measure' and incorporate
	date-stamp detection and width measuring from removed helper.  Don't
	dedent first word for messages of unknown origin, such as those
	inserted by `erc-display-line' alone without prior preparation from
	`erc-display-message'.
	* lisp/erc/erc-goodies.el (erc-readonly-mode, erc-readonly-enable):
	Set hook depth explicitly to 70.
	* lisp/erc/erc-stamp.el (erc-timestamp-format-left): Mention that a
	trailing newline is implicit if not provided and that users who don't
	want date stamps should use `erc-timestamp-format-right' instead.
	(erc-stamp-mode, erc-stamp-enable): Call `erc-stamp--setup' instead
	of `erc-munge-invisibility-spec', and bump hook depth for
	`erc-add-timestamp' to 70.
	(erc-stamp--current-time): Use `erc-ts' instead of `erc-timestamp'
	text property in doc string.
	(erc-stamp--skip): New internal variable.
	(erc-stamp--allow-unmanaged): New variable for legacy code to force
	`erc-add-timestamps' to run when `erc--msg-props' is nil.
	(erc-add-timestamp): Always run when `erc-stamp--allow-unmanaged' is
	non-nil unless `erc-stamp--skip' is as well because the latter takes
	precedence.  Don't add `erc-ts' text prop directly unless
	`erc-stamp--allow-unmanaged is non-nil.  Instead, use the new
	`erc--msg-props' facility to defer until after modification hooks.
	Likewise, don't add `cursor-senor-functions' directly either unless
	the same compatibility flag is enabled.  Instead, expect the latter to
	be handled by a post-modify hook conditioned on the option
	`erc-echo-timestamps'.
	(erc-timestamp-last-inserted-left): Mention that the final trailing
	newline specified in the format string no longer appears in the
	recorded value.
	(erc-stamp-prefix-log-filter): Use updated name for timestamp
	property as well as helper utility for accessing it.
	(erc-stamp--inherited-props): Add doc string.
	(erc-insert-timestamp-right): Fix bug involving object cycle where
	the time-stamp string would appear in its own `display' property.
	(erc-stamp--insert-date-function, erc-stamp--insert-date-hook): Remove
	unused internal function-valued interface variable and replace with
	the latter, a normal hook.
	(erc-stamp--date-format-end, erc-stamp--propertize-left-date-stamp):
	New function and auxiliary variable to apply date stamp properties at
	the post-modify stage.  Add text property `erc-stamp-type' to inserted
	date stamps to help folks distinguish between them and other
	left-sided stamps.
	(erc-stamp--current-datestamp-left,
	erc-stamp--format-date-stamp,
	erc-stamp--insert-date-stamp-as-phony-message,
	erc-stamp--lr-date-on-pre-modify): New functions and state variable to
	help ERC treat date stamps as separate messages while working within
	the established mechanism for processing inserted messages.  Shadow
	`erc-stamp--invisible-property' when calling `erc-format-timestamp' in
	order to prevent date stamps from inheriting other `invisible' props.
	These date stamps are special in that they have no business being
	hidden along with the current message.
	(erc-insert-timestamp-left-and-right): On initial run in any buffer,
	remember whether the date stamp needed newline massaging on insertion.
	Move all business for inserting date stamps to post-modify hooks, but
	run them forcibly if this is the very first date stamp in the current
	buffer.  Also mention some specifics related to relevant text props in
	the doc string.
	(erc-format-timestamp): Don't add `invisible' prop to stamp unless
	`erc-stamp--invisible-property' is non-nil.
	(erc-stamp--csf-props-updated-p): New local variable.
	(erc-munge-invisibility-spec): Restore `cursor-sensor-functions' text
	property for existing messages when a user enables the option
	mid-session.  Add and remove hooks for use with automatic timestamp
	echoing.
	(erc-stamp--add-csf-on-post-modify): New function to add
	`cursor-sensor-functions' property on post-modify hooks.
	(erc-stamp--setup): Perform some additional teardown.
	(erc-stamp--on-clear-message): Look for text property `erc-ts' instead
	of `erc-timestamp'.
	(erc-echo-timestamp, erc--echo-ts-csf): Use utility to find time-stamp
	text prop in current message.
	(erc-stamp--update-saved-position, erc-stamp--reset-on-clear): Use
	hook `erc-stamp--insert-date-hook' instead of excised function-valued
	variable interface `erc-stamp--insert-date-function'.
	* lisp/erc/erc-truncate.el (erc-truncate-buffer-to-size): Use internal
	utility to find beginning of message.
	* lisp/erc/erc.el (erc--msg-props, erc--msg-props-overrides): New
	internal variables for initializing and conveying metadata-oriented
	text properties among insert and send hooks.
	(erc-insert-modify-hook): Mention reserved depth ranges for built-in
	members in doc string.
	(erc-send-action):  Use convenience variable to modifying text props
	instead of awkwardly overriding `erc-insert-pre-hook'.
	(erc--check-msg-prop, erc--get-inserted-msg-bounds,
	erc--get-inserted-msg-prop, erc--with-inserted-msg,
	erc--traverse-inserted): New utility functions and macros to help
	modules find metadata and message-delimiting text props.
	(erc-display-line-1): Ensure the first character of every message in
	an ERC buffer has the `erc-msg' property, as well as any other props
	in `erc--msg-props', when populated.
	(erc--hide-message): Don't bother offsetting start of first message in
	a buffer.
	(erc--ranked-properties, erc--order-text-properties-from-hash): New
	variable and function to convert `erc--msg-props' into a plist
	suitable for `add-text-properties'.
	(erc-display-message): Make doc string more informative.  Bind and
	initialize `erc--msg-props' for use by all hooks.  Respect
	`erc--msg-prop-overrides' when non-nil.  Don't add `erc-command'
	property.  Instead, ensure `erc--msg-props' contains an `erc-cmd' item
	when the parameter PARSED is non-nil.
	(erc--own-property-names): Add `erc-stamp-type'.
	(erc--get-speaker-bounds): Use helper to find message start.
	(erc-process-ctcp-query, erc-send-current-line): Use convenience
	variable to leverage framework for manipulating message metadata
	instead of overriding `erc-insert-pre-hook'.
	(erc-display-msg): Bind `erc--msg-props' for use by all send-related
	hooks.  Add text props from table after `erc-send-post-hook'.
	(erc-restore-text-properties): Improve doc string.
	(erc--get-eq-comparable-cmd): Use `if-let' instead of `if-let*'.
	* test/lisp/erc/erc-fill-tests.el (erc-fill-tests--insert-privmsg):
	Make phony message more realistic.
	(erc-fill-tests--wrap-populate): Shorten overlong line.
	(erc-fill-tests--wrap-check-prefixes): Make test utility more vigilant
	in asserting no gaps exist in `line-prefix' property interval.
	(erc-fill-tests--compare): Compare text props on text-prop values that
	are themselves strings.
	* test/lisp/erc/erc-scenarios-log.el (erc-scenarios-log--clear-stamp):
	Ensure `erc-stamp' is loaded.
	* test/lisp/erc/erc-scenarios-match.el
	(erc-scenarios-match--stamp-left-current-nick,
	erc-scenarios-match--invisible-stamp): Use `default-value' for
	`erc-insert-modify-hook' in ordering assertion.
	(erc-scenarios-match--find-bol, erc-scenarios-match--find-eol): Remove
	unused assertion helper functions.
	(erc-scenarios-match--stamp-right-fools-invisible): Remove misplaced
	ERT tag from function and use utility to find message bounds.
	(erc-scenarios-match--stamp-right-fools-invisible): Use real utility
	from main library to find message end.
	(erc-scenarios-match--fill-wrap-stamp-dedented-p): New assertion
	utility function.
	(erc-scenarios-match--hide-fools/stamp-both/fill-wrap) New test.
	(erc-scenarios-match--hide-fools/stamp-both/fill-wrap/speak): New
	test.
	(erc-scenarios-match--stamp-both-invisible-fill-static): Expect
	`erc-cmd' at beginning of inserted message's filled line, even if the
	line starts with white space.  Also, add new function parameter
	`assert-ds', a callback to run when visiting the second date stamp,
	which is followed by a hidden message.  In the test of the same name,
	expect the date stamp's invisibility interval to begin at the newline
	after the previous message and to not contain any existing
	invisibility props, namely, those belonging to the subsequent hidden
	"fools" message.  Also use shortened "metadata" text prop names.
	(erc-scenarios-match--stamp-both-invisible-fill-static--nooffset):
	Expect the date stamp's invisibility interval to match its field's
	instead of starting and ending sooner.
	* test/lisp/erc/erc-stamp-tests.el: Put well-known metadata prop at
	the start of the message.
	* test/lisp/erc/erc-tests.el (erc--refresh-prompt): Prevent modules
	from mutating hooks.
	(erc--order-text-properties-from-hash, erc--check-msg-prop): New
	tests.
	* test/lisp/erc/resources/fill/snapshots/merge-01-start.eld: Update
	test data.
	* test/lisp/erc/resources/fill/snapshots/merge-02-right.eld: Update
	test data.
	* test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld: Update.
	* test/lisp/erc/resources/fill/snapshots/monospace-01-start.eld:
	Update.
	* test/lisp/erc/resources/fill/snapshots/monospace-02-right.eld:
	Update.
	* test/lisp/erc/resources/fill/snapshots/monospace-03-left.eld:
	Update.
	* test/lisp/erc/resources/fill/snapshots/monospace-04-reset.eld:
	Update.
	* test/lisp/erc/resources/fill/snapshots/spacing-01-mono.eld: Update.
	* test/lisp/erc/resources/fill/snapshots/stamps-left-01.eld: Update.
	* test/lisp/erc/resources/match/fools/fill-wrap.eld: New file.
	(Bug#60936)

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Easily excise list-valued text prop members in ERC

	* lisp/erc/erc.el (erc--remove-from-prop-value-list): New function for
	removing `invisible' and `face' prop members cleanly.
	* test/lisp/erc/erc-tests.el (erc--remove-from-prop-value-list,
	erc--remove-from-prop-value-list/many): New tests.  (Bug#60936)

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Deprecate option erc-remove-parsed-property

	* etc/ERC-NEWS: Add entry for `erc-remove-parsed-property'.
	* lisp/erc/erc.el (erc-remove-parsed-property): Deprecate option
	because the potential for inadvertent self harm outweighs the
	potential benefits.  Additionally, replicating this functionality via
	hooks is trivial.
	(erc-display-line-1): Remove quasi-deprecated `tags' property because
	the preferred format for `erc-response.tags' has changed, and ERC has
	never supported IRCv3 tags.

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Use erc-display-message instead of erc-make-notice

	* lisp/erc/erc-backend.el (erc-server-JOIN): Let `erc-display-message'
	handle formatting instead of baking out a string.  The text ultimately
	inserted remains unchanged, but forwarding the original `format-spec'
	arguments now has the side effect of influencing text properties, which
	conveys richer meaning for modules to act upon when doing things like
	deciding whether to hide a given message.
	* lisp/erc/erc.el (erc-cmd-IGNORE, erc-cmd-UNIGNORE,
	erc--unignore-user, erc-cmd-IDLE, erc-cmd-BANLIST, erc-cmd-MASSUNBAN):
	Use `erc-display-message' with `notice' for the TYPE parameter instead
	of composing `erc-make-notice' and `erc-display-line'.

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Allow spoofing process marker in erc-display-line-1

	* lisp/erc/erc.el (erc--insert-marker): New internal variable for
	overriding `erc-insert-marker' when displaying messages at a
	non-default location in the buffer.
	(erc-display-line-1): Favor `erc--insert-marker' over
	`erc-insert-marker' when non-nil.

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Sort and dedupe when loading modules in erc-open

	* doc/misc/erc.texi: Add new subheading "Module Loading" under the
	"Modules" chapter.
	* lisp/erc/erc.el (erc--sort-modules): New utility function to sort
	and dedupe modules.
	(erc-modules): In `custom-set' function, factor out collation into
	separate utility `erc--sort-modules'.
	(erc-update-modules): Call `erc--update-modules' with an argument, the
	current value of `erc-modules'.
	(erc--aberrant-modules): New variable, a list of symbols whose modules
	ERC suspects of being incorrectly defined.
	(erc--warn-about-aberrant-modules): New function to print an error
	message and emit a warning prior to connecting when
	`erc--aberrant-modules' is non-nil.
	(erc--find-mode): Make heuristic more robust by always checking for a
	mode activation command rather than just a state variable.  This fixes
	a compatibility bug, new in 5.6, affecting third-party modules that
	autoload module definitions instead of their corresponding
	mode-activation commands.
	(erc--update-modules): Add new positional argument `modules'.
	(erc--setup-buffer-hook): Add new default member,
	`erc--warn-about-aberrant-modules'.
	(erc-open): Pass sorted `erc-modules' to `erc--update-modules'.
	* test/lisp/erc/erc-tests.el (erc--sort-modules): New test.
	(erc-tests--update-modules): New fixture.
	(erc--update-modules): Remove and rework as three separate tests
	dedicated to specific contexts.  The existing one had poor coverage
	and was difficult, if not impossible, to follow.
	(erc--update-modules/unknown, erc--update-modules/local,
	erc--update-modules/realistic): New tests.  (Bug#57955)

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Honor nil values in erc--restore-initialize-priors

	* lisp/erc/erc.el (erc--restore-initialize-priors): Don't produce
	invalid "empty" `setq' form when parameter VARS contains defaults that
	initialize to nil.  This function is mainly used by local modules,
	which were first made usable in ERC 5.5 (bug#57955).
	* test/lisp/erc/erc-tests.el (erc--restore-initialize-priors): Fix
	expected expansion, which is now slightly leaner.  (Bug#60936)

2023-10-13  F. Jason Park  <jp@neverwas.me>

	Skip post-minibuffer restore in erc-scrolltobottom-all

	* etc/ERC-NEWS: Remove mention of `erc-scrolltobottom-relaxed' in
	entry for module `scrolltobottom'.
	* lisp/erc/erc-goodies.el (erc-input-line-position): Fix mention of
	abandoned option `erc-scrolltobottom-relaxed'.
	(erc-scrolltobottom-all): Subsume option `erc-scrolltobottom-relaxed'
	by recognizing a third value state, `relaxed'.  A separate option
	would make more sense if other options also depended on
	`erc-scrolltobottom-all'.
	(erc-scrolltobottom-relaxed): Remove redundant option, which was to be
	new in ERC 5.6.
	(erc-scrolltobottom-enable, erc-scrolltobottom-mode): Warn if user
	attempts to enable `erc-scrolltobottom-all' on Emacs 27, which is not
	supported.
	(erc--scrolltobottom-relaxed-commands,
	erc--scrolltobottom-post-force-commands,
	erc--scrolltobottom-relaxed-skip-commands): Remove unused variables.
	(erc--scrolltobottom-on-pre-command,
	erc--scrolltobottom-on-pre-command-relaxed,
	erc--scrolltobottom-on-post-command-relaxed): Remove unused functions.
	(erc--scrolltobottom-on-post-command): Remove conditional branch for
	dealing with a non-nil `erc--scrolltobottom-window-info'.
	(erc--scrolltobottom-setup): Convert from generic to normal function
	and remove setup and teardown for unused hooks.  Set variable
	`read-minibuffer-restore-windows' locally when option
	`erc-scrolltobottom-all' is non-nil.
	(erc--scrolltobottom-on-pre-insert): Replace reference to subsumed
	option `erc-scrolltobottom-relaxed' with new value `relaxed' for
	existing option `erc-scrolltobottom-all'.
	* test/lisp/erc/erc-scenarios-scrolltobottom-relaxed.el
	(erc-scenarios-scrolltobottom--relaxed): Replace option
	`erc-scrolltobottom-relaxed' with new value `relaxed' for
	`erc-scrolltobottom-all'.  (Bug#64855)

2023-10-13  Mattias Engdegård  <mattiase@acm.org>

	Fix `ls-lisp-verbosity` custom type

	* lisp/ls-lisp.el (ls-lisp-verbosity): Include `modes` in the type
	and doc string.

2023-10-13  Alan Mackenzie  <acm@muc.de>

	Fix c-in-knr-argdecl to avoid false recognition of K&R

	In the OP's test case, the type of a declaration was a macro
	with parentheses, which confused c-in-knr-argdecl.

	* lisp/progmodes/cc-engine.el (c-in-knr-argdecl): Amend this
	function to return nil if a "parameter declaration" can't be
	parsed as a declaration.

2023-10-13  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	c8ea14e7825 Handle quoted tilde in Tramp
	30239759ee4 ; Set maintainer for elint.el to emacs-devel
	eedd9db6190 Update to Org 9.6.10

	# Conflicts:
	#	lisp/net/tramp-gvfs.el

2023-10-13  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	53292c5d818 Fix treesit-query-validate for string input (bug#66400)
	81a0c1ed2e4 ; Improve documentation of VC commands
	0590e3e69a9 Recommend `M-x man` in woman.el docs
	809da7fc9a1 ; * doc/lispref/processes.texi (Process Buffers): More ac...
	8f23a02a9ea Fix updating process-mark position in 'set-process-buffer'

2023-10-13  Mattias Engdegård  <mattiase@acm.org>

	Add convenience wrapper for regexp disassembly

	* lisp/emacs-lisp/disass.el (re-disassemble): New.
	* etc/NEWS: Describe the new function instead of the internal
	`re--describe-compiled`.

2023-10-13  Mattias Engdegård  <mattiase@acm.org>

	verilog-mode.el: remove impossible cond clause

	* lisp/progmodes/verilog-mode.el (verilog-set-auto-endcomments):
	Remove can't-happen clause.

2023-10-13  Mattias Engdegård  <mattiase@acm.org>

	Separate `docstrings-wide` warning identifier

	This allows the docstring line width warning to be disabled without
	also disabling the one checking for curly quotes etc.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types)
	(byte-compile-warnings, byte-compile-docstring-style-warn):
	Add `docstrings-wide`.
	* etc/NEWS: Annonuce.

2023-10-13  Po Lu  <luangruo@yahoo.com>

	Clarify java/INSTALL

	* java/INSTALL: Correct erroneous include exports and also
	introduce those omitted within patches to external libraries.
	(bug#66507)

2023-10-13  Po Lu  <luangruo@yahoo.com>

	Try harder to generate tombstones upon emacs_abort

	* src/android.c (HAS_BUILTIN_TRAP): New macro definition.
	(emacs_abort) [HAS_BUILTIN_TRAP]: Call __builtin_trap to abort,
	in place of dereferencing NULL.

	* src/androidterm.c (android_draw_fringe_bitmap): Correct
	comment transplanted from X code.

2023-10-13  Jim Porter  <jporterbugs@gmail.com>

	Reset the Eshell prompt when signaling with no foreground process

	This fixes a small regression from commit eef32d13da5.

	* lisp/eshell/esh-proc.el (eshell-reset): Declare here.
	(eshell-reset-after-proc): Move implementation to...
	(eshell--reset-after-signal): ... here...
	(eshell-interrupt-process, eshell-kill-process eshell-quit-process)
	(eshell-stop-process, eshell-continue-process): ... and call it.

2023-10-12  Mauro Aranda  <maurooaranda@gmail.com>

	Fix a defcustom :type

	* lisp/progmodes/ruby-mode.el (ruby-insert-encoding-magic-comment):
	Allow always-utf8.  (Bug#66498)

2023-10-12  Po Lu  <luangruo@yahoo.com>

	Enable highlighting Gud execution lines without hl-line-mode

	* doc/emacs/building.texi (Debugger Operation): Mention two new
	options and the relationship between Gud and HL Line Mode.

	* etc/NEWS (Editing Changes in Emacs 30.1): Mention the new
	option.

	* lisp/progmodes/gud.el (gud-highlight-current-line-overlay):
	New variable.
	(gud-sentinel) <signal, exit>: Delete that overlay if set.
	(gud-highlight-current-line, gud-highlight-current-line-face):
	New user options.
	(gud-display-line): Create and move an overlay without employing
	hl-line-mode, if so enjoined by the user.

2023-10-12  Michael Albinus  <michael.albinus@gmx.de>

	New filenotify tests

	* src/inotify.c (Finotify_watch_list, Finotify_allocated_p):
	Fix argument list.

	* test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
	Use `skip-when'.
	(file-notify-test12-unmount, file-notify-test12-unmount-remote):
	New tests.

2023-10-12  Po Lu  <luangruo@yahoo.com>

	Respond to JNI errors around drawing operations

	* src/android.c (android_fill_polygon, android_draw_rectangle)
	(android_draw_point, android_draw_line, android_lock_bitmap):
	Check or clear errors around potential JNI errors; the penalty
	incurred to performance is not as significant as was expected.

2023-10-11  Jim Porter  <jporterbugs@gmail.com>

	Fix behavior of Eshell prompt when yanking output into it

	* lisp/eshell/esh-util.el (eshell--unmark-string-as-output): New
	function...

	* lisp/eshell/esh-mode.el (eshell-mode): ... use it.

	* test/lisp/eshell/eshell-tests.el (eshell-test/yank-output): New test
	(bug#66469).

2023-10-11  Alan Mackenzie  <acm@muc.de>

	Document cl-print.el in cl.texi.

	* doc/misc/cl.texi: (Printing): New chapter which documents
	cl-print.el.

	* NEWS (cl-print): Add "+++" markings to all the subitems,
	which have now been documented.

2023-10-11  Alan Mackenzie  <acm@muc.de>

	In cl-prin1, enable raw printing for a byte-compiled function

	* lisp/emacs-lisp/cl-print.el (cl-print-compiled): document the
	new option `raw'.
	(cl-print-object/compiled-function): when cl-print-compiled is
	`raw', just print the function using `prin1'.  Apply a button
	to this output which, when activated disassembles the function.

	* etc/NEWS (cl-print): Add an entry for this new feature.

2023-10-11  Po Lu  <luangruo@yahoo.com>

	Remedy typo in android.texi

	* doc/emacs/android.texi (Android Fonts): Replace @xref with
	@pxref.

2023-10-11  Po Lu  <luangruo@yahoo.com>

	Update Android keysym list

	* src/keyboard.c (lispy_function_keys): Introduce entries for
	scroll lock, num lock, and input method keys.

2023-10-11  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el (project-mode-line-face): New variable.

	(project-mode-line-format): Use it (bug#66317).

2023-10-11  Mauro Aranda  <maurooaranda@gmail.com>

	Fix erc-server-prevent-duplicates :type

	* lisp/erc/erc-backend.el (erc-server-prevent-duplicates): Change
	:type to allow a variable-length list of strings.  (Bug#66456)

2023-10-10  Jim Porter  <jporterbugs@gmail.com>

	Revert commits dafa6d6badd6 and 72c45fa9109a

	These were there to work around deficiencies in how Eshell produces
	completions for 'pcomplete-argument' (Eshell passed various non-string
	objects to Pcomplete, which broke things).  Now, Eshell always returns
	a stringified form of the argument, with the original value stored via
	the text property 'pcomplete-arg-value'.

	* lisp/pcomplete.el (pcomplete-arg): Revert changes back to a simpler
	form.

2023-10-10  Michael Albinus  <michael.albinus@gmx.de>

	File notifications report unmount events (bug#66381)

	* doc/lispref/os.texi (File Notifications): Unmounting a watched
	filesystem is reported now.

	* etc/NEWS: File notifications report unmount events now.
	Fix typos.

	* lisp/filenotify.el (file-notify--callback-inotify)
	(file-notify--add-watch-inotify): Handle `unmount'.
	(file-notify--callback-kqueue, file-notify--add-watch-kqueue):
	Handle `revoke'.
	(file-notify--callback-gfilenotify): Handle `unmounted'.
	(file-notify-callback): Handle `unmount' and `unmounted'.
	(file-notify--add-watch-inotify):

	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
	Handle `unmounted'.

	* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
	Handle `unmount' and `unmounted'.

	* src/gfilenotify.c (dir_monitor_callback): Handle Qunmounted.

	* src/inotify.c (symbol_to_inotifymask): Handle IN_IGNORED and
	IN_UNMOUNT.

	* src/kqueue.c (kqueue_callback, Fkqueue_add_watch):
	Handle NOTE_REVOKE.
	(Fkqueue_add_watch): Adapt docstring.
	(syms_of_kqueue): Declare `revoke.

2023-10-10  Ulrich Müller  <ulm@gentoo.org>

	Update astronomical length units in Calc

	* lisp/calc/calc-units.el (math-standard-units): Update the
	astronomical unit and the parsec, using their definitions by the
	International Astronomical Union.

2023-10-10  Mattias Engdegård  <mattiase@acm.org>

	Correct temperature names in Calc

	* doc/misc/calc.texi (The Units Table, Predefined Units):
	* lisp/calc/calc-units.el (math-standard-units):
	It's just Kelvin, not degree Kelvin.

2023-10-10  Mattias Engdegård  <mattiase@acm.org>

	* lisp/calc/calc-units.el (math-standard-units): Document.

	Some guesswork, but at least it helps someone trying to make sense of
	it next time.

2023-10-10  Po Lu  <luangruo@yahoo.com>

	* doc/emacs/android.texi (Android Software): Fix typo.

2023-10-10  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'project-mode-line'

	* etc/NEWS:
	* doc/emacs/maintaining.texi (Projects):
	* lisp/progmodes/project.el (project-mode-line): Improve the
	documentation of 'project-mode-line'.  (Bug#66317)

2023-10-10  Po Lu  <luangruo@yahoo.com>

	Revise Android documentation

	* doc/emacs/android.texi (Android Environment, Android Windowing)
	(Android Fonts, Android Troubleshooting, Android Software):
	Correct typos and improve wording.

2023-10-10  Po Lu  <luangruo@yahoo.com>

	Improve documentation of inhibit-double-buffering

	* doc/lispref/frames.texi (Management Parameters): Reword joke
	and mention the precise circumstances where
	inhibit-double-double-buffering is useful.

2023-10-10  Po Lu  <luangruo@yahoo.com>

	Implement frame restacking under Android

	* java/org/gnu/emacs/EmacsActivity.java (invalidateFocus1):
	Synchronize with window.children for iteration through it.

	* java/org/gnu/emacs/EmacsService.java (queryTree): Synchronize
	with windowList for iteration through it.

	* java/org/gnu/emacs/EmacsView.java (moveChildToBack): Correct
	formatting mistake.
	(moveAbove, moveBelow): New functions.

	* java/org/gnu/emacs/EmacsWindow.java (destroyHandle, reparentTo)
	(raise, lower): Remedy synchronization blunders.
	(reconfigure): New function.

	* src/android.c (android_init_emacs_window): Link with
	`reconfigure'.
	(android_reconfigure_wm_window): New wrapper function.

	* src/androidfns.c (android_frame_restack): New function.
	(Fandroid_frame_restack): Properly implement this function and
	expunge outdated comment.

	* src/androidgui.h (enum android_stack_mode)
	(enum android_window_changes): New enumerators.

2023-10-09  Juri Linkov  <juri@linkov.net>

	New option 'project-mode-line' to show project name on mode line (bug#66317)

	* lisp/bindings.el (standard-mode-line-format):
	Add '(project-mode-line project-mode-line-format)'.

	* lisp/progmodes/project.el (project-mode-line): New user option.
	(project-menu-entry, project-mode-line-map): New variables.
	(project-mode-line-format): New variable.
	(project-mode-line-format): New function.

2023-10-09  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/xref.el: Show the number of matches on mode-line (bug#66332)

	(xref-num-matches-found, xref-num-matches-face, xref-mode-line-matches):
	New variables.
	(xref--show-xref-buffer): Set xref-num-matches-found to the length of xrefs,
	and buffer-local mode-line-process to xref-mode-line-matches.

2023-10-09  Mattias Engdegård  <mattiase@acm.org>

	Don't allow Services entries in pop-up menus on macOS (bug#66420)

	* src/nsmenu.m ([EmacsMenu runMenuAt:forFrame:keymaps:]):
	Prevent the system from adding context menu plug-ins
	(Services entries or sub-menu) to all our pop-up menus.

2023-10-09  Philip Kaludercic  <philipk@posteo.net>

	Improve formatting of bindings in 'help-quick'

	* lisp/help.el (help-quick): Prevent format's padding from extending
	text properties beyond the initial string containing the key binding.

2023-10-09  Philip Kaludercic  <philipk@posteo.net>

	Use text-mode as default value for 'rcirc-multiline-major-mode'

	* lisp/net/rcirc.el (rcirc-multiline-major-mode): Update default value.

2023-10-09  Po Lu  <luangruo@yahoo.com>

	Update default font substitution list

	* src/sfntfont-android.c (init_sfntfont_android): Account for
	Android 4.x not distributing Noto Serif.

2023-10-08  Joseph Turner  <joseph@breatheoutbreathe.in>

	Make package-vc-install-from-checkout NAME argument optional

	* lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout):
	Allow nil NAME; update documentation.  (Bug#66393)

2023-10-08  Philip Kaludercic  <philipk@posteo.net>

	Do not scrape :ignored-files for dependencies

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): If a file
	matches the ignored packages in :ignored-files, do not install any
	dependencies it lists.

2023-10-08  Philip Kaludercic  <philipk@posteo.net>

	Rename 'vc-switch-backend' to 'vc-change-backend'

	* etc/NEWS: Mention the change
	* lisp/vc/vc.el (vc-switch-backend): Rename and unobsolete.
	(vc-transfer-file): Use new name.  (bug#50344)

2023-10-08  Po Lu  <luangruo@yahoo.com>

	Port arc to Android

	* lisp/arc-mode.el (archive-zip-extract): Default to -q and -p
	when the Android system unzip is being employed.

2023-10-08  Po Lu  <luangruo@yahoo.com>

	Introduce a tool bar for dictionary mode

	* lisp/doc-view.el (doc-view-minor-mode-menu): Correct typo in
	edit mode menu.

	* lisp/net/dictionary.el (dictionary-mode-menu): New menu.
	(dictionary-tool-bar-map): New variable; derive menu bar entries
	from the dictionary-mode-menu.
	(dictionary-mode): Set the tool bar map to
	dictionary-tool-bar-map.

2023-10-07  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	a74e51cfd15 Fix a defcustom :type
	c27b90d04bf Fix 'ido--ffap-find-file'
	1594d5f17ad Fix setting the pipe capacity for subprocesses
	aad8b5d78f3 Handle LANG on macOS differently (bug#65908)

	# Conflicts:
	#	src/process.c

2023-10-07  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	e9b88f61ccc Fix a defcustom :type
	3216cd96952 Fix pulse-flag :type
	2065ab5562e Fix defcustoms in timeclock.el
	bdd30132496 ; * lisp/image-mode.el (image-mode-to-text, image-mode-as...
	5c2d9ae48ed ; * lisp/image-mode.el: Fix typos in doc strings (bug#663...
	fa0d3f45aeb ; Improve wording of last change
	3ef259e28a8 Improve documentation of `ns-use-proxy-icon`
	712505a82b9 Document assigning libraries to packages in make-tarball.txt
	6bdc5cfe384 Doc fix; more consistently refer to "text terminals"
	d210d761b19 ; Fix doc strings of overlay-arrow variables
	4fd00ff1f7e Fix defcustoms in type-break.el (Bug#66210)
	47770b0eca4 Fix term-scroll-to-bottom-on-output :type
	f8bdc8dff0b ; Normalize GNU ELPA :core package statements
	63ec6d998d4 ; * doc/emacs/custom.texi (Early Init File): Improve inde...
	a4185f87bd0 ; Silence macOS 14 warning
	d9d6e14a698 ; * lisp/vc/vc.el (vc-next-action): Improve commentary.
	d558f38fe5c ; * lisp/emacs-lisp/let-alist.el (let-alist): Fix quoting...
	71feee79309 Doc fix in let-alist for keys with nil value
	72cc9cf2cde ; Fix typos

2023-10-07  Po Lu  <luangruo@yahoo.com>

	Revise font family translation lists under Android

	* doc/emacs/android.texi (Android Environment): Revise paragraph
	illustrating the startup notification.
	(Android Fonts): Mention font family replacement.

	* src/sfntfont-android.c (init_sfntfont_android): Translate
	DejaVu Serif to either Droid Serif or Noto Serif.

2023-10-06  Stefan Kangas  <stefankangas@gmail.com>

	Revert slurp_image extraction for svg_load

	* src/image.c (svg_load): Inline slurp_image code again, as it didn't
	build in its current form.
	Reported by Andreas Schwab <schwab@linux-m68k.org>.

2023-10-05  Stefan Kangas  <stefankangas@gmail.com>

	Extract function slurp_image from image loading

	* src/image.c (slurp_image): New function...
	(xbm_load, xpm_load, pbm_load, webp_load, svg_load): ...extracted from
	here.

2023-10-05  Stefan Kangas  <stefankangas@gmail.com>

	Set buffers-menu-max-size to 15 unconditionally

	* lisp/menu-bar.el (buffers-menu-max-size): Set the default value to
	15 unconditionally.  (Bug#64398)

2023-10-05  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Silence macro expansion during completion at point

	* lisp/emacs-lisp/macroexp.el (macroexp-inhibit-compiler-macros): Add
	variable.
	(macroexp--compiler-macro): Inspect that new variable and, if it is
	non-nil, return the input form unchanged.
	* lisp/progmodes/elisp-mode.el (elisp--local-variables): Silence
	messages.  Avoid compiler macros.  (Bug#58148)

2023-10-05  Robert Pluim  <rpluim@gmail.com>

	Use key-translate instead of keyboard-translate

	As a consequence of the discussions in Bug#65735, move to using the
	new key-translate function instead of the deprecated
	keyboard-translate.

	For future maintainers: ?\C-? or ?\177 do not mean "DEL" with
	key-translate, you have to use "DEL".

	* lisp/simple.el (normal-erase-is-backspace-mode): Use key-translate.
	* lisp/term/bobcat.el (terminal-init-bobcat): Use key-translate.

2023-10-05  Mattias Engdegård  <mattiase@acm.org>

	Omit the `omake` compilation-mode rule by default

	It keeps interfering with other rules, slowing everything down a
	little bit and makes it harder to add or change other rules.  The rule
	is still there and can easily be re-enabled by those who need it.

	* etc/NEWS: Announce.
	* lisp/progmodes/compile.el (compilation-error-regexp-alist):
	Exclude `omake`.
	* test/lisp/progmodes/compile-tests.el
	(compile-tests--test-regexps-data):
	Actually test the `cucumber` rule. Remove the `omake` test case.
	(compile-test-error-regexps):
	Test `omake` here.  Test other rules without `omake` included.

2023-10-05  Spencer Baugh  <sbaugh@janestreet.com>

	Make newly-created smerge-diff-buffers read-only

	Buffers name *vc-diff* are usually created by vc, which makes them
	read-only.  If we create such a buffer, let's make it read-only too.
	If the buffer already exists, though, don't change that since the user
	might have deliberately made it writable.

	* lisp/vc/smerge-mode.el (smerge-diff): Make newly-created
	smerge-diff-buffers read-only. (bug#64071)

2023-10-05  Eli Zaretskii  <eliz@gnu.org>

	' Improve wording of compilation-error messages

	* lisp/progmodes/compile.el (compilation-next-error): Improve
	wording of user-error text.  (Bug#65713)

2023-10-05  Paul W. Rankin  <hello@paulwrankin.com>

	Improve find-sibling-rules option type

	* lisp/files.el (find-sibling-rules): More helpful rules.

2023-10-05  Manuel Giraud  <manuel@ledu-giraud.fr>

	Nontext mouse cursor as default on {tab|tool}-bar

	* src/xdisp.c (note_mouse_highlight): Always set the mouse cursor to
	nontext when entering tab-bar and tool-bar.  (Bug#66243)

2023-10-05  Po Lu  <luangruo@yahoo.com>

	Introduce an input method callback required by Android 34

	* java/org/gnu/emacs/EmacsInputConnection.java (replaceText):
	New function.

	* java/org/gnu/emacs/EmacsNative.java (replaceText): Declare
	native function.

	* src/androidgui.h (enum android_ime_operation): New operation
	ANDROID_IME_REPLACE_TEXT.

	* src/androidterm.c (android_handle_ime_event): Decode text when
	encountering an ANDROID_IME_REPLACE_TEXT operation.  Return if
	decoding overflowed rather than presenting Qnil to textconv
	functions.
	(replaceText): New JNI function.

	* src/frame.h (enum text_conversion_operation): New operation
	TEXTCONV_REPLACE_TEXT.

	* src/textconv.c (really_commit_text): Move point to start if
	the composing region is set.
	(really_replace_text): New function.
	(handle_pending_conversion_events_1) <TEXTCONV_REPLACE_TEXT>:
	New case.
	(replace_text): New function.

	* src/textconv.h: Update prototypes.

2023-10-05  Po Lu  <luangruo@yahoo.com>

	Port Emacs to Android 34

	* configure.ac: Detect and require Android 34 headers.

	* doc/emacs/android.texi (Android Environment): Mention new
	permissions mandated by Android 34.

	* java/AndroidManifest.xml.in: Introduce new permissions and
	foreground service types prerequisite for background execution under
	Android 34.

	* java/INSTALL: Update installation documentation.

	* java/org/gnu/emacs/EmacsSdk7FontDriver.java (Sdk7FontEntity)
	(Sdk7FontObject):

	* java/org/gnu/emacs/EmacsService.java (onCreate): Silence deprecation
	warnings.

	* src/android.c: Update documentation.

2023-10-04  Po Lu  <luangruo@yahoo.com>

	Correct local reference leaks

	* src/android.c (android_build_string): Accept a list of local
	references to destroy upon an allocation failure, facilitating
	the proper deallocation of local references in such situations.
	(android_browse_url): Revise for new calling convention.

	* src/android.h (android_build_string): Update declaration
	correspondingly.

	* src/androidmenu.c (android_menu_show, android_dialog_show):
	Revise for new calling convention.

	* src/androidselect.c (android_notifications_notify_1): Supply
	each successive local reference to android_build_string as
	notification text is being encoded.

	* src/androidvfs.c (android_saf_exception_check): Introduce
	absent va_end.

2023-10-03  Juri Linkov  <juri@linkov.net>

	* lisp/menu-bar.el (menu-bar-project-menu): Improve menu items.

	Remove ellipsis from menu items that don't read arguments from the minibuffer.

2023-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	regex.c: Fix recent regression with mutually_exclusive_p

	The new analysis code ended up increasing the scope of an optimization
	a bit too far.  Reign it in.

	* src/regex-emacs.c (struct mutexcl_data): Add `unconstrained` field.
	(mutually_exclusive_one): Use and set it.
	(mutually_exclusive_p): Initialize it.

	* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
	Add test.

2023-10-03  Alan Mackenzie  <acm@muc.de>

	Correct the `cond' forms in cl-print-string-with-limit

	In this function, calling with limit bound to t will cause an
	error in any of the cond forms which set print-length, etc.
	Correct them!

	* lisp/emacs-lisp/cl-print.el (cl-print-string-with-limit):
	Amend the doc string.  In the cond forms in the bindings for
	print-length, etc., test the value t first.  Amend those for
	print-length and print-level also to test for a zero value of
	limit.

2023-10-03  Michael Albinus  <michael.albinus@gmx.de>

	Ensure, that Tramp uses GNU style emulation when calling ls-lisp

	* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Reorganize.

	* lisp/net/tramp.el (ls-lisp-dirs-first, ls-lisp-emulation)
	(ls-lisp-ignore-case, ls-lisp-verbosity): Declare.
	(tramp-handle-insert-directory): Bind `ls-lisp-*' options.  Call
	`ls-lisp-set-options'.

2023-10-03  Jim Porter  <jporterbugs@gmail.com>

	Support Eshell iterative evaluation in the background

	This really just generalizes Eshell's previous support for iterative
	evaluation of a single current command to a list of multiple commands,
	of which at most one can be in the foreground (bug#66066).

	* lisp/eshell/esh-cmd.el (eshell-last-async-procs)
	(eshell-current-command): Make obsolete in favor of...
	(eshell-foreground-command): ... this
	(eshell-background-commands): New variable.
	(eshell-interactive-process-p): Make obsolete.
	(eshell-head-process, eshell-tail-process): Use
	'eshell-foreground-command'.
	(eshell-cmd-initialize): Initialize new variables.
	(eshell-add-command, eshell-remove-command)
	(eshell-commands-for-process): New functions.
	(eshell-parse-command): Make 'eshell-do-subjob' the outermost call.
	(eshell-do-subjob): Call 'eshell-resume-eval' to split this command
	off from its parent forms.
	(eshell-eval-command): Use 'eshell-add-command'.
	(eshell-resume-command): Use 'eshell-commands-for-process'.
	(eshell-resume-eval): Take a COMMAND argument.  Return
	':eshell-background' form for deferred background commands.
	(eshell-do-eval): Remove check for 'eshell-current-subjob-p'.  This is
	handled differently now.

	* lisp/eshell/eshell.el (eshell-command): Wait for all processes to
	exit when running synchronously.

	* lisp/eshell/esh-mode.el (eshell-intercept-commands)
	(eshell-watch-for-password-prompt):
	* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments):
	* lisp/eshell/em-smart.el (eshell-smart-display-move): Use
	'eshell-foreground-command'.

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/background/simple-command)
	(esh-cmd-test/background/subcommand): New tests.
	(esh-cmd-test/throw): Use 'eshell-foreground-command'.

	* test/lisp/eshell/eshell-tests.el (eshell-test/queue-input): Use
	'eshell-foreground-command'.

	* test/lisp/eshell/em-script-tests.el
	(em-script-test/source-script/background): Make the test script more
	complex.

	* test/lisp/eshell/eshell-tests.el
	(eshell-test/eshell-command/pipeline-wait): New test.

	* doc/misc/eshell.texi (Bugs and ideas): Remove implemented feature.

2023-10-03  Jim Porter  <jporterbugs@gmail.com>

	Don't print subjob messages when running an Eshell script in the background

	* lisp/eshell/esh-proc.el (eshell-subjob-messages): New variable...
	(eshell-record-process-object)
	(eshell-remove-process-entry): ... check it.

	* lisp/eshell/em-script.el (eshell-source-file): Set
	'eshell-subjob-messages' to nil.

	* lisp/eshell/esh-cmd.el (eshell-do-subjob): Set
	'eshell-subjob-messages' to t.

	* test/lisp/eshell/em-script-tests.el
	(em-script-test/source-script/background): New test.

2023-10-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2023-10-03  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidvfs.c (android_afs_open, android_asset_fstat):
	Return proper mtime within file descriptors incorporating asset
	data and within android_asset_fstat.

	* src/xterm.c (handle_one_xevent)
	<KeyPress, XI_KeyPress>: Verify presence of a quit keysym
	prior to registering it.

2023-10-03  F. Jason Park  <jp@neverwas.me>

	Inhibit slash commands in erc--input-review-functions

	* lisp/erc/erc.el (erc--input-review-functions): Add new review
	function `erc--inhibit-slash-cmd-insertion'.
	(erc--check-prompt-input-functions): Move
	`erc--check-prompt-input-for-multiline-command' above
	`erc--check-prompt-input-for-multiline-blanks'.
	(erc--inhibit-slash-cmd-insertion): New "review" function to suppress
	insertion of prompt input for slash commands.  Doesn't affect "meta"
	slash commands like /SAY.
	(erc--send-input-lines): Don't bother checking whether message is a
	command.  Instead, trust verdict handed down by message-prep and
	review functions.  This opens the door to optional insertion for
	debugging purposes or when echoing command lines in a shell-like
	fashion.
	* test/lisp/erc/erc-tests.el (erc-send-whitespace-lines): clean up
	portion dealing with trimming slash commands.  (Bug#66073)

2023-10-03  F. Jason Park  <jp@neverwas.me>

	Improve erc-warn-about-blank-lines behavior

	* etc/ERC-NEWS: Mention more detailed feedback when option
	`erc-warn-about-blank-lines' is non-nil.
	* lisp/erc/erc-common.el (erc--input-split): Add `abortp' slot to
	allow a premature exit while validating prompt input.
	* lisp/erc/erc.el (erc-warn-about-blank-lines): Clarify meaning of
	"blank lines" in doc string, and mention interaction with
	companion option `erc-send-whitespace-lines'.
	(erc-inhibit-multiline-input): Fix inaccurate description in doc
	string.
	(erc--input-review-functions): Move
	`erc--discard-trailing-multiline-nulls' to end of list, after
	`erc--run-input-validation-checks' so that the latter doesn't have to
	resplit the original input string in order to issue feedback.
	(erc--blank-in-multiline-input-p): Remove unused internal function
	originally slated to be part of ERC 5.6.
	(erc--check-prompt-input-for-something): New trivial validation
	function to check if the input is empty.
	(erc--count-blank-lines): New function that tallies up the number of
	blank and whitespace-only lines in the current input.  One downside of
	this design is that this function's conclusions aren't shared with
	`erc--discard-trailing-multiline-nulls', which must decide on its own
	how many lines to strip.
	(erc--check-prompt-explanation): New variable.
	(erc--check-prompt-input-for-multiline-blanks): Rework significantly
	to provide more informative messages and more sensible behavior for
	common cases with respect to relevant option values.
	(erc--check-prompt-input-functions): Add new validation function
	`erc--check-prompt-for-something'.
	(erc--run-input-validation-checks): Set `abortp' slot of
	`erc--input-split' when hooks return a non-string, rather than
	generate an unhelpful fallback message.  Also print a message when
	the variable `erc--check-prompt-explanation' is non-nil.
	(erc-send-current-line): When the `abortp' slot of the current
	`erc--input-split' object is non-nil, forgo normal input processing.
	This fixes a regression in 5.6-git, which previously emitted an error
	message when it should have just exited the command.
	(erc--discard-trailing-multiline-nulls): Always run, regardless of
	`erc-send-whitespace-lines', and leave a blank line behind when
	stripping a message consisting of only blank lines.
	(erc--run-send-hooks): Always run hooks and surrounding logic rather
	than only when hooks are populated.
	* test/lisp/erc/erc-tests.el (erc--refresh-prompt): Add assertion and
	use default value for `erc--input-review-functions'.
	(erc-ring-previous-command): Use default value for
	`erc--input-review-functions' and ensure `erc-current-nick' does not
	error.
	(erc--blank-in-multiline-input-p): Remove obsolete test.
	(erc--check-prompt-input-functions): Update expected message.
	(erc--discard-trailing-multiline-nulls, erc--count-blank-lines): New
	tests.
	(erc-tests--check-prompt-input--expect,
	erc-tests--check-prompt-input-messages): New helper variables.
	(erc--check-prompt-input-for-multiline-blanks,
	erc--check-prompt-input-for-multiline-blanks/explanations): New tests.
	(erc-send-whitespace-lines): Expect hook-processing logic to pad empty
	lines instead of deferring to `erc-send-input-line-function'.
	(Bug#66073)

2023-10-03  F. Jason Park  <jp@neverwas.me>

	Prefer ticks/hz pairs for some ERC timestamps on 29+

	* lisp/erc/erc-compat.el (erc-compat--current-lisp-time): New macro to
	prefer ticks/hz pairs on newer Emacs versions because stamps of this
	form are easier to compare at a glance when used as values for text
	properties.
	* lisp/erc/erc-stamp.el (erc-stamp--current-time): Use compat macro.
	(Bug#60936)

2023-10-03  F. Jason Park  <jp@neverwas.me>

	Exempt text-scale-mode from erc-scrolltobottom-all

	* lisp/erc/erc-goodies.el (erc--scrolltobottom-post-ignore-commands):
	New variable, a list of commands that should not trigger a re-scroll.
	(erc--scrolltobottom-on-post-command): Don't `recenter' when the
	current command appears in `erc--scrolltobottom-post-ignore-commands'.
	This fixes a bug that prevented managed recentering when disabling
	`text-scale-mode'.  Thanks to Corwin Brust for reporting this.  Note
	that this doesn't address any fill-related alignment issues involving
	`text-scale-mode'.  Nor does it address likely problems involving the
	erroneous restoration of point after the insertion of invisible lines.
	(erc-keep-place-enable, erc-keep-place-mode): Adjust hook depth to
	fall within reserved interval.
	(erc-keep-place-indicator-enable, erc-keep-place-indicator-mode,
	erc--keep-place-indicator-on-global-module): Lower hook depth to fall
	within reserved interval.  Note that this hook has a buffer-local
	value, so all members run after their global counterparts.
	(Bug#66073)

2023-10-03  F. Jason Park  <jp@neverwas.me>

	Fix wrong "User" column count in erc-ibuffer

	(ibuffer-make-column-erc-members): Show tally of all server users for
	non-target buffers, and show correct count for targets.  Thanks to
	Mattias Engdegård for reporting this.
	(erc-ibuffer-limit-map): Use "new" `define-ibuffer-filter'
	API.  (Bug#66191)

2023-10-03  F. Jason Park  <jp@neverwas.me>

	Remove newline from erc-fill regexp

	* lisp/erc/erc-fill.el (erc-fill): Remove newline from character
	alternative in pattern for skipping past blank and whitespace-only
	lines.  It seems that as of e61a0398 "regex.c: Consolidate the two
	analysis functions", Emacs no longer sees a newline-dollar sequence as
	matching an empty line.  Also lose `save-match-data', which doesn't
	appear to serve any purpose here.

2023-10-02  Po Lu  <luangruo@yahoo.com>

	Properly translate touch screen events into mouse drag ones

	* doc/lispref/commands.texi (Drag Events): Correct misleading
	example form and reword subsequent elaboration.

	* lisp/touch-screen.el (touch-screen-handle-point-up)
	<mouse-drag>: Set posns representing drag start and terminus to
	mouse position lists, in lieu of pairs between windows and posns
	employed previously.

2023-10-02  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/AndroidManifest.xml.in: Exclude non-files from opening in
	Emacs.

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Avert
	crash should scheme be NULL.

2023-10-01  James Thomas  <jimjoe@gmx.net>

	Exclude current buffer from eww-switch-to-buffer

	* lisp/net/eww.el (eww-switch-to-buffer): Exclude current buffer from
	the completion list to avoid an extra cycling keystroke.  (Bug#65914)

2023-10-01  Visuwesh  <visuweshm@gmail.com>

	Fix doc-view conversion indicator for svg images

	* lisp/doc-view.el (doc-view-pdf->png-converter-mupdf): Show the
	correct pdf->svg indicator when producing svg images.  (Bug#62713)

2023-10-01  Ivan Sokolov  <ivan-p-sokolov@ya.ru>

	Sort package-selected-packages on save

2023-10-01  Michael Albinus  <michael.albinus@gmx.de>

	Some tramp-tests.el fixes

	* test/lisp/net/tramp-tests.el (tramp-test17-insert-directory):
	Improve check.
	(tramp--test-check-files): Don't err out when "printenv" doesn't
	exist on remote side.
	(tramp-test47-read-password): Remove :unstable tag.
	(tramp-test47-read-otp-password): Rename.

2023-10-01  Michael Albinus  <michael.albinus@gmx.de>

	Improve handling of "--dired" in Tramp

	* lisp/net/tramp-sh.el (tramp-bsd-unames): New defconst.
	(tramp-sh-handle-file-ownership-preserved-p)
	(tramp-open-connection-setup-interactive-shell)
	(tramp-get-ls-command): Use it.
	(tramp-sh-handle-insert-directory): Improve handling of "--dired".

2023-10-01  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/input.texi (On-Screen Keyboards): Revise
	documentation to reflect changes.

	* src/keyboard.c (lispy_function_keys) <KEYCODE_DPAD_CENTER>:
	Define select key absent out of negligence.

	* src/xterm.c (syms_of_xterm) <x-quit-keysym>: Default to nil.
	(bug#66040)

2023-10-01  Mauro Aranda  <maurooaranda@gmail.com>

	Fix indentation in perl-mode (Bug#35925)

	* lisp/progmodes/perl-mode.el (perl--format-regexp): New defconst.
	(perl--end-of-format-p): New function.
	(perl-continuation-line-p): Use it.
	(perl-calculate-indent): Use it.  Make the lines of the formlist stay
	at column 0.

	* test/lisp/progmodes/cperl-mode-resources/cperl-bug-35925.pl: New
	test file.

	* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-35925): New
	test.

2023-10-01  john muhl  <jm@pub.pink>

	Various fixes to lua-ts-mode font-locking

	* lisp/progmodes/lua-ts-mode.el (lua-ts--font-lock-settings):
	Identify functions and assignments in more places.  Use constant
	face for goto/labels.  (Bug#66162)

2023-10-01  Stefan Kangas  <stefankangas@gmail.com>

	Bump buffers-menu-max-size to 15 on graphical displays

	* lisp/menu-bar.el (buffers-menu-max-size): Bump default to 15 on
	graphical displays.  (Bug#64398)

2023-09-30  Eli Zaretskii  <eliz@gnu.org>

	Merge etc/NEWS from origin/emacs-29

2023-09-30  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	4776d90c31b Add new Tramp test
	ca5b48fd76d Fix tmm-mid-prompt :type (Bug#66179)
	7447d3df94e Fix tree-sitter indentation conflict with multiple languages
	bee18e52737 Fix bug#66093 in Tramp
	7d5fee0feaa Support regeneration of ja-dic.el under '--with-small-ja-...

	Conflicts:
		make-dist

2023-09-30  Alan Mackenzie  <acm@muc.de>

	Complete yesterday's commit for cl-print.el

	I.e. commit the needed change to the test suite.

	* test/lisp/emacs-lisp/cl-print-tests.el
	(cl-print-tests-ellipsis-string): Bind cl-print-string-length.
	Only bind print-length and print-level where they are
	specifically needed.

2023-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	* configure.ac (open_memstream): New checked function

2023-09-30  Po Lu  <luangruo@yahoo.com>

	Eschew non-portable constructs in configure.ac

	* configure.ac (gl_gcc_warnings): Delete `test -o' and simplify
	long test condition correspondingly.

2023-09-30  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidmenu.c (android_menu_show): Properly encode pane
	names before deriving Java strings from them.

	* src/sfntfont.c (sfnt_parse_style, sfntfont_list_1): Intern
	adstyles.

2023-09-30  Po Lu  <luangruo@yahoo.com>

	Fix last change

	* src/search.c (Fre__describe_compiled): Correct typos and
	pointer signedness mismatch.

2023-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	regex.c: Remove the old analyzes functions

	After testing and checking that the changes brought by the new
	consolidated analysis function (which are all cases of improved
	optimizations) are indeed safe, remove the old code.

	* src/regex-emacs.c (analyze_first_old): Delete function.
	(analyze_first): Don't call it any more.
	(skip_noops): Delete function.
	(mutually_exclusive_aux): Delete function.
	(mutually_exclusive_p): Don't call it any more.

2023-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	regex.c: Consolidate the two analysis functions

	We currently have two functions that analyze the bytecode
	to try and apply optimizations: `analyze_first` and `mutually_exclusive_p`.
	Extract the common code between them into a new function `forall_firstchar`,
	and then rewrite the old ones on top of that one.

	Along the way, we get slightly better analyses that reverts
	the recent de-optimizations but without re-introducing the
	corresponding bugs.

	* src/regex-emacs.c (forall_firstchar_1, forall_firstchar): New functions.
	(analyze_first_old): Rename from `analyze_first`.
	(struct anafirst_data): New struct.
	(analyze_first_fastmap, analyze_first_null): New functions.
	(analyze_first): Rewrite to use `forall_firstchar` with those two functions.
	Take a `bufp` rather than a `multibyte` arg.
	(regex_compile, re_compile_fastmap): Adjust calls accordingly.
	(struct mutexcl_data): New struct.
	(mutually_exclusive_one): New function.
	(mutually_exclusive_p): Rewrite to use `forall_firstchar` with that function.

2023-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	regex.c: Various cosmetic changes

	* src/regex-emacs.c (extract_address): New function.
	(skip_noops, mutually_exclusive_aux, re_match_2_internal): Use it.
	(regex_compile): Fix oversight in last commit.
	(analyze_first): Return a bool rather than an int.
	(re_compile_fastmap): Simplify accordingly.
	(re_match_2_internal): Share the common code between the fail and
	success exit paths.

2023-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/regex-emacs.c (STORE_NUMBER): Make it a plain function

2023-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	search.c (re--describe-compiled): New function (bug#66261)

	This provides a fairly primitive but handy way to see what
	a regexp compiles to without having to enable REGEX_EMACS_DEBUG
	and wade through tons of stderr output.

	* doc/lispref/searching.texi (Regexp Problems): Mention
	`re--describe-compiled`.

	* src/regex-emacs.c (debug_putchar, print_fastmap)
	(print_partial_compiled_pattern, print_compiled_pattern): Add `dest`
	argument, and compile also when `ENABLE_CHECKING` is set.
	(DEBUG_PRINT_COMPILED_PATTERN, print_double_string, regex_compile):
	Adjust to additional argument.

	* src/regex-emacs.h (print_compiled_pattern): Declare.

	* src/search.c (Fre__describe_compiled): New function.
	(syms_of_search): Defsubr it.

2023-09-29  Alan Mackenzie  <acm@muc.de>

	Stop truncating strings too much in cl-print-string-with-limit

	This fixes bug#65680, by introducing a new variable limiting
	the length of a printed string, rather than abusing
	print-length for that purpose.

	* lisp/emacs-lisp/cl-print.el (cl-print-string-length): New
	variable.
	(cl-print-object <string>, cl-print--string-props): Use
	cl-print-string-length rather than print-length here.
	(cl-print-string-with-limit): bind cl-print-string-length based
	on argument `limit'.  Decrement it by a quarter at each trial
	iteration of printing.

2023-09-29  Mattias Engdegård  <mattiase@acm.org>

	Small clean-up of byte-compile-docstring-style-warn

	* lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-style-warn):
	Make the code slightly cheaper.  It's still dominated by the
	huge cost of `byte-compile--wide-docstring-p`, though.

2023-09-29  Mattias Engdegård  <mattiase@acm.org>

	Include `all` in `byte-compile-warnings` defcustom type

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warnings):
	Let "All" mean `all`, not `t`.

2023-09-29  Mattias Engdegård  <mattiase@acm.org>

	Detect developer builds in git worktrees as well

	* configure.ac (gcc-warnings): Don't require .git to be a directory.
	If you wondered why you didn't get any warnings, this may have been
	the reason.

2023-09-29  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix bug in whitespace scanning functions

	c-forward-sws and c-backward-sws were scanning over spaces and
	linefeeds marked with the string-fence syntax-table text
	property.  Fix this by (i) removing the WS text properties
	c-in-sws and c-is-sws from characters when setting the
	string-fence on them; (ii) checking the syntax of "space"
	characters when scanning over them.

	* lisp/progmodes/cc-defs.el (c-skip-ws-chars-forward)
	c-skip-ws-chars-backward, c-put-string-fence): New macros.

	* lisp/progmodes/cc-awk.el
	(c-awk-set-string-regexp-syntax-table-properties): Use
	c-put-string-fence.

	* lisp/progmodes/cc-engine.el (c-beginning-of-statement-1):
	Correct the determination of macro-start.
	(c-forward-sws, c-backward-sws): Replace skip-chars-forward by
	c-skip-ws-chars-forward and skip-chars-backward by
	c-skip-ws-chars-backward.
	(c-unmark-<>-around-region, c-after-change-unmark-ml-strings)
	(c-propertize-ml-string-opener): Use c-put-string-fence.

	* lisp/progmodes/cc-mode.el (c-put-syn-tab): Use
	c-put-string-fence when appropriate.

2023-09-28  Stefan Kangas  <stefankangas@gmail.com>

	Simplify alist lookups in align-region

	* lisp/align.el (align-region): Simplify alist lookup caching.

2023-09-28  Juri Linkov  <juri@linkov.net>

	* lisp/tab-line.el: Move Touch screen support section to the better place.

2023-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	regex.c (mutually_exclusive_aux) <wordbound>: Remove optimization

	Another case that was too optimistic.  Better use \> or \< rather
	than \b if you want your regexp to be handled efficiently.

	* src/regex-emacs.c (mutually_exclusive_aux) <wordbound>: Cancel optimization.
	* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
	New test.

2023-09-28  Juri Linkov  <juri@linkov.net>

	Unquote #'project-uniquify-dirname-transform in uniquify-dirname-transform.

	* lisp/uniquify.el (uniquify-dirname-transform): Use , on #'.

2023-09-28  Sam Steingold  <sds@gnu.org>

	There are no file modes on windows and dos

	* lisp/ls-lisp.el (ls-lisp-verbosity): Add `modes` on GNU & Unix
	  (ls-lisp-format): When `modes` is not in `ls-lisp-verbosity',
	   keep just the 1st character of `drwxrwxrwx`.

2023-09-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Windowing): Document
	`android-keyboard-bell-duration'.

	* java/org/gnu/emacs/EmacsService.java (ringBell): New argument
	DURATION.

	* src/android.c (android_init_emacs_service): Adjust
	correspondingly.
	(android_bell): Provide the duration of the vibration.

	* src/androidfns.c (syms_of_androidfns)
	<android_keyboard_bell_duration>: New variable.

2023-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/calendar/todo-mode.el: Let-bind `inhibit-read-only`

	rather than `buffer-read-only`.  Applied throughout the file.
	(todo-date-pattern, todo-edit-item--header, todo-convert-legacy-date-time)
	(todo-read-date): Remove redundant "" arg to `mapconcat`.

2023-09-27  Juri Linkov  <juri@linkov.net>

	* lisp/vc/diff-mode.el (diff-apply-buffer): New command (bug#66113).

	(diff-mode-map): Bind 'diff-apply-buffer' to 'C-c C-m a'.

2023-09-27  Juri Linkov  <juri@linkov.net>

	New commands to show replacements as diffs (bug#65854)

	* lisp/dired-aux.el (dired-do-replace-regexp-as-diff): New command.

	* lisp/misearch.el (multi-file-diff-unsaved): New user option.
	(multi-file-replace-as-diff): New function.
	(multi-file-replace-regexp-as-diff): New command.
	(replace-regexp-as-diff): New command.
	(multi-file-diff-no-select): New function.

2023-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/regex-emacs.c (analyze_first): Fix incorrect optimization

	The optimization was incorrect in a particular corner case.
	In this fix I just disable it conservatively for more cases because
	it's not obvious how to fix it while preserving the "good" cases.

	We may find a better fix by using an approach like the one
	in `mutually_exhaustive_aux`, but for now this is good enough,
	especially since \{..\} repetitions are not used very frequently.

	* test/src/regex-resources/PTESTS: New test.

2023-09-27  Alan Mackenzie  <acm@muc.de>

	Revert "Don't use ellipses while cl-printing strings."

	This reverts commit 761f8901fffdb155cbcc7f3b5a2329161c2c1826.

2023-09-27  Yuan Fu  <casouri@gmail.com>

	Don't call font-lock-mode in treesit-major-mode-setup (bug#66223)

	* lisp/treesit.el (treesit-major-mode-setup): Remove.

2023-09-27  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Fix treesit-language-at-point for elixir-ts-mode.

	The treesit-language-at-point function is only suppose to query the
	host language.

	* lisp/progmodes/elixir-ts-mode.el
	(elixir-ts--indent-rules): Add missing rules.
	(elixir-ts--treesit-language-at-point): Update function to only query
	the host language.
	* test/lisp/progmodes/elixir-ts-mode-resources/indent.erts: Add test
	for inline docs.

2023-09-27  Yuan Fu  <casouri@gmail.com>

	Extract feature list of java-ts-mode to a variable

	* lisp/progmodes/java-ts-mode.el:
	(java-ts-mode--feature-list): New variable.
	(java-ts-mode): Extract out.

2023-09-26  Jim Porter  <jporterbugs@gmail.com>

	Use 'unwind-protect' in more places in Eshell

	This lets us simplify the logic for how we reset
	'eshell-current-command' and 'eshell-last-async-procs', as well as
	improving correctness of Eshell command forms in a few esoteric
	scenarios.  Additionally, this helps set the stage for better support
	of background commands in Eshell (bug#66164).

	* lisp/eshell/esh-cmd.el (eshell-cmd-initialize): Remove addition to
	'eshell-post-command-hook'; this is handled in 'eshell-resume-command'
	and 'eshell-resume-eval' now.
	(eshell-resume-command): Handle resetting the prompt as needed.
	(eshell-resume-eval): Use 'unwind-protect' to ensure that we set
	'eshell-last-async-procs' and 'eshell-current-comment' at the right
	times.
	(eshell-parse-command, eshell-trap-errors, eshell-manipulate): Use
	'unwind-protect'.
	(eshell-do-eval): Allow 'eshell-defer' to pass through
	'unwind-protect' forms without actually calling the unwinding forms
	(yet).

	* lisp/eshell/esh-proc.el (eshell-kill-process-function)
	(eshell-reset-after-proc): Make obsolete.  The behavior is now handled
	in 'eshell-resume-command'.
	(eshell-gather-process-output, eshell-sentinel)
	(eshell-interrupt-process, eshell-kill-process, eshell-quit-process)
	(eshell-stop-process, eshell-continue-process): Run 'eshell-kill-hook'
	directly.

	* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/throw): New test.

2023-09-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	regex.c (mutually_exclusive_p): Fix initial value of `loop_beg`

	* src/regex-emacs.c (mutually_exclusive_p): Don't pretend that pattern
	position 0 has been checked already.

	* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
	Add a corresponding regression test plus some other related tests
	I had around.

2023-09-26  Mattias Engdegård  <mattiase@acm.org>

	vc-annotate.el: make a new face if it didn't exist

	* lisp/vc/vc-annotate.el (vc-annotate-lines): Check whether a symbol
	is a face, not just its existence.  Previously we would sometimes end
	up using non-faces resulting in complaints from the display system.

2023-09-26  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix ediff-toggle-multiframe cond clauses

	* lisp/vc/ediff-util.el (ediff-toggle-multiframe): Remove duplicate
	cond clause.  Fix parentheses so that trailing 'message' is
	contained in fallback clause.  Fix indentation.

2023-09-26  Basil L. Contovounesios  <contovob@tcd.ie>

	Address defcustom :type warnings

	* lisp/calendar/diary-lib.el (diary-display-function):
	* lisp/calendar/icalendar.el (icalendar-export-alarms):
	* lisp/emacs-lisp/elint.el (elint-ignored-warnings):
	* lisp/mail/sendmail.el (send-mail-function):
	* lisp/net/gnutls.el (gnutls-verify-error):
	* lisp/gnus/mm-decode.el (mm-text-html-renderer):
	* lisp/gnus/message.el (message-send-mail-function): Fix misplaced
	defcustom :tags (bug#66196).
	(message-tool-bar): Remove duplicate, overwritten, and nonexistent
	defcustom :type gmm-tool-bar-list-item.
	* lisp/progmodes/idlwave.el (idlwave-begin-line-comment): Strip
	excessive defcustom :type quoting.
	* lisp/progmodes/ps-mode.el (ps-mode-paper-size): Consolidate paper
	sizes with same dimensions into a single defcustom menu entry.
	* lisp/textmodes/glyphless-mode.el (glyphless-mode-types): Remove
	duplicate defcustom :type choice.

2023-09-26  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidterm.c (android_draw_fringe_bitmap): Sync with
	xterm.c.

2023-09-26  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidterm.c (android_clip_to_row)
	(android_draw_fringe_bitmap, android_draw_hollow_cursor)
	(android_draw_bar_cursor): Sync with xterm.c.

	* src/xterm.c (x_draw_fringe_bitmap): Delete unused variables.

2023-09-26  Po Lu  <luangruo@yahoo.com>

	Properly clip overlaid fringe bitmaps

	* src/xterm.c (x_draw_fringe_bitmap): Save clip rectangle from
	x_clip_to_row, and draw only the intersection between it and the
	fringe bitmap, for if the bitmap is overlaid, the clip mask will
	override the clip rectangle.
	(x_clip_to_row): New argument *RECT_RETURN.  All callers
	changed.

2023-09-25  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix a couple of doc-view user options

	* lisp/doc-view.el (doc-view-pdf->png-converter-function): Fix
	placement and formatting of function-item :doc strings.
	(doc-view-odf->pdf-converter-program): Ditto.  Tweak initialization
	logic to ensure initial value is non-nil and matches :type.  Mention
	preferred executable soffice first.
	(doc-view-mode-p): Assume doc-view-odf->pdf-converter-program is
	always non-nil.

2023-09-25  Mattias Engdegård  <mattiase@acm.org>

	Use heuristic to speed up allocation of small vectors (bug#65491)

	Instead of scanning vector_free_lists from the appropriate size until
	we find a nonempty bucket, start at the last bucket where we last put
	something in.  This may favor splitting larger vectors than necessary
	but in general saves a lot of time in the allocation of small vectors.

	Original patch by Ihor Radchenko.

	* src/alloc.c (last_inserted_vector_free_idx): New variable.
	(setup_on_free_list): Set it.
	(allocate_vector_from_block): Use it.
	(sweep_vectors): Reset it.

2023-09-25  Mattias Engdegård  <mattiase@acm.org>

	Remove useless half of vector_free_lists array (bug#65491)

	The latter half of vector_free_lists was never used in any meaningful
	way but it did require traversal during allocation and GC.  Reduce it
	to sizes we actually allocate, with a bucket for bigger ones.

	* src/alloc.c (VECTOR_MAX_FREE_LIST_INDEX): Rename to...
	(VECTOR_FREE_LIST_ARRAY_SIZE): ... this and adjust its value.
	(vector_free_lists): Use new, smaller size.
	(setup_on_free_list, allocate_vector_from_block):
	Adapt to new vector_free_lists size.
	(pseudovector_nbytes): New function extracted from...
	(vectorlike_nbytes): ...here.

2023-09-25  Mattias Engdegård  <mattiase@acm.org>

	macroexp-parse-body: correct parsing of empty body (bug#66136)

	* lisp/emacs-lisp/macroexp.el (macroexp-parse-body):
	Return an empty body even when there are declarations present.
	Previously, the last declaration was considered part of the body,
	which is only correct if the input consists of a single string.

	Reported by Jens Schmidt.

2023-09-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/faces.el (read-face-name): Expose all lambdas to the compiler

2023-09-25  Stefan Kangas  <stefankangas@gmail.com>

	Make insert-directory-program a defcustom; use "gls" on *BSD

	* lisp/files.el (insert-directory-program): Change into defcustom.
	Default to "gls" on *BSD and macOS.  (Bug#64791)

2023-09-25  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/os.texi (Desktop Notifications): Revise
	documentation for android-notifications-notify to reflect
	changes.

	* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
	Convert notification importance to a legacy priority between
	Android 7.1 and 4.1.

	* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap): Remove
	immutable bitmap constructor, as the underlying Android API
	functions are erroneously implemented.

	* src/android.c (android_init_emacs_pixmap): Cease searching for
	deleted constructor.
	(android_create_pixmap_from_bitmap_data): Create a pixmap, then
	fill it with the contents of the bitmap, in lieu of employing
	the aforementioned constructor.

	* src/androidselect.c (Fandroid_notifications_notify): Revise
	doc string.

2023-09-24  Stefan Kangas  <stefankangas@gmail.com>

	Move bind-key.el from lisp/use-package directory

	* lisp/use-package/bind-key.el: Move file from here...
	* lisp/bind-key.el: ...to here.  (Bug#62751)

2023-09-24  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsSdk11Clipboard.java
	(getClipboardData): Correct typo in comment.

	* src/androidvfs.c (android_authority_open)
	(android_saf_delete_document): Circumvent JNI dynamic method
	dispatch.

2023-09-24  João Távora  <joaotavora@gmail.com>

	Flymake: unbreak tests

	Flymake's normal behavior implies catching the errors of misbehaving
	backends.  This behavior is tested by Flymake's automated tests, built
	on top of ERT, which means that debug-on-error is always t in the
	bodies of said tests (I don't know the rationale for this, but it's
	been like this for some time)

	Flymake used to shun usage of 'condition-case-unless-debug' because of
	this.  But since that macro is pretty useful, I started using it
	again, and as a consequence, tests started breaking.

	The solution is to:

	1. stop requiring the deprecated legacy backend 'flymake-proc' (which
	by design, always errors, except in rare circumstances).

	2. deliberately set debug-on-error to nil around the "dummy backends""
	test.

	* lisp/progmodes/flymake.el (flymake-proc): Don't require it by
	default.

	* test/lisp/progmodes/flymake-tests.el:
	(dummy-backends): Make robust to ert's debug-on-error setting.

2023-09-24  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Use delete-region in Gnus message yanking

	See Bug#66106

	* lisp/gnus/gnus-msg.el (gnus-summary-reply): Not erase-buffer. The
	intention was to narrow the buffer to the headers, and then delete
	just those headers. But erase-buffer doesn't respect narrowing, so
	use (delete-region (point-min) (point-max)) instead.

2023-09-23  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	476933b2356 ; * lisp/simple.el (shell-command-to-string): Fix quotation.
	e27ec0e4144 Improve remote-file-name-inhibit-cache :type

2023-09-23  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	c966e7ec381 * lisp/net/tramp.el (tramp-skeleton-write-region): Fix mi...
	a2953ea3003 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	5cba5ee8905 Fix tree-sitter range update function
	41333cb2d5f ; * etc/NEWS: Fix typos.
	a3a9ed40d89 ; * CONTRIBUTE: Clarify "mark" wrt NEWS entries.  (Bug#66...
	0a6a9ac6f14 ; * etc/NEWS: Fix last change.
	5611274bbda Announce handling 'org-protocol' URI scheme in NEWS

	# Conflicts:
	#	lisp/treesit.el

2023-09-23  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	6bc3800000c Ensure ucs-names is consistent with Unicode names
	93134bb9c2f Make key-translate actually work
	85f49a9bc8b Update to Org 9.6.9
	2826c26537c Add leim subdirectories to emacs package

2023-09-23  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	71a1f0fdc9e Add more missing builtin package declarations
	94705f83005 ; Fix last change in shell-command-to-string

2023-09-23  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	94bef169e2e Document shell-command-to-string security considerations
	b74d9e8bad9 Fix shell-indirect-setup-hook :type (Bug#66051)
	f549d4330f3 Remove column quoting from sqlite-mode
	cf7efabe3ff Add indentation rules for type_arguments

2023-09-23  Po Lu  <luangruo@yahoo.com>

	Enlarge dumped_data

	* src/w32heap.c (DUMPED_HEAP_SIZE): Increase to 24 MiB, the bare
	minimum necessary to build a 32-bit Emacs.

2023-09-23  Po Lu  <luangruo@yahoo.com>

	Correct comparisons between size_t and ssize_t

	* src/sfnt.c (sfnt_read_table_directory, sfnt_read_cmap_format_0)
	(sfnt_read_cmap_format_2, sfnt_read_cmap_format_4)
	(sfnt_read_cmap_format_6, sfnt_read_cmap_format_8)
	(sfnt_read_cmap_format_12, sfnt_read_cmap_format_14)
	(sfnt_read_cmap_table_1, sfnt_read_cmap_table)
	(sfnt_read_head_table, sfnt_read_hhea_table, sfnt_read_maxp_table)
	(sfnt_read_glyf_table, sfnt_read_hmtx_table, sfnt_read_name_table)
	(sfnt_read_meta_table, sfnt_read_ttc_header)
	(sfnt_read_default_uvs_table, sfnt_read_nondefault_uvs_table)
	(sfnt_read_fvar_table, sfnt_read_gvar_table, sfnt_read_avar_table)
	(sfnt_read_cvar_table, sfnt_read_OS_2_table):

	* src/sfntfont.c (sfnt_enum_font): Revise code written with only
	signed `long' in mind to properly compare size_t values with
	ssize_t.

2023-09-23  Po Lu  <luangruo@yahoo.com>

	Properly apply XY offsets to compound component glyphs

	* src/sfnt.c (sfnt_decompose_compound_glyph): Avoid overwriting
	X and Y if defer_offsets is false.

2023-09-23  Po Lu  <luangruo@yahoo.com>

	Display background dialogs using the correct style

	* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog): Wrap
	CONTEXT within EmacsStyle such that dialogs are displayed in the
	same style used by activities.

2023-09-22  Philip Kaludercic  <philipk@posteo.net>

	File-expand DIRECTORY argument to vc-clone

	* lisp/vc/vc.el (vc-clone): Expand directory to avoid issues when
	invoking the subprocess.  (Bug#66115)

2023-09-22  Po Lu  <luangruo@yahoo.com>

	Enable opening mailto URLs under Android

	* doc/emacs/android.texi (Android Startup): Mention how mailto
	URLs are treated by the emacsclient wrapper.

	* java/AndroidManifest.xml.in: Register `mailto' scheme filters
	for EmacsOpenActivity.

	* java/org/gnu/emacs/EmacsOpenActivity.java (startEmacsClient):
	Extract code that starts Emacs when it isn't already running,
	and take a list of arguments rather than a single file name.
	(onCreate): If the scheme is `mailto', escape the URI and call
	`message-mailto'.

2023-09-21  João Távora  <joaotavora@gmail.com>

	Flymake: new 'short' option for flymake-show-diagnostics-at-end-of-line

	bug#66041

	* lisp/progmodes/flymake.el (Version): Bump to 1.3.6
	(flymake-eol-information-face): New face.
	(flymake-show-diagnostics-at-end-of-line): Support new value short.
	(flymake--eol-overlay-summary): Rework.
	(flymake--highlight-line):

2023-09-21  Philip Kaludercic  <philipk@posteo.net>

	package-tests.el: Add test Bug#65475

	* test/lisp/emacs-lisp/package-tests.el (with-package-test): Bind
	package-selected-packages.
	(package-test-bug65475): Add test.

2023-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/regex-emacs.c (mutually_exclusive_aux) [ENABLE_CHECKING]: Fix if

2023-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	regex-emacs.c (mutually_exclusive_aux): Rework again

	Rework the way we handle loops.  This new code does not really work
	better than the previous one, but it has the advantage of being "fail
	safe" and also that we can dynamically check if our assumptions about
	the shape of the bytecode are satisfied or not.

	* src/regex-emacs.c (mutually_exclusive_aux): Replace `done_beg` and
	`done_end` with `loop_beg` and `loop_end`.
	(mutually_exclusive_p): Adjust accordingly.
	(analyze_first): Fix incorrect assertion.

2023-09-21  João Távora  <joaotavora@gmail.com>

	Flymake: fix bug in end-of-line overlay updates

	* lisp/progmodes/flymake.el (flymake--update-eol-overlays): Rename
	from flymake--eol-overlay-update and fix.
	(flymake--handle-report): Call flymake--update-eol-overlays.

2023-09-21  Gerd Möllmann  <gerd@gnu.org>

	macOS: only cp emacs.pdmp when installing (bug#66022)

	* Makefile.in (install-arch-dep): install emacs.pdmp here for
	self-contained build
	* nextstep/Makefile.in (${ns_applibexecdir}/Emacs.pdmp): Don't cp
	emacs.pdmp if self-contained build.

2023-09-21  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_query_tree, android_get_geometry)
	(android_translate_coordinates, android_wc_lookup_string)
	(android_get_keysym_name, android_browse_url)
	(android_query_battery):

	* src/androidmenu.c (android_dismiss_menu, android_menu_show):
	Circumvent JNI dynamic method dispatch overhead.

2023-09-21  João Távora  <joaotavora@gmail.com>

	Flymake: fix eol overlay flicker due to untimely overlay deletion

	This commit helps in ensuring that `flymake--eol-overlay-update' is
	only called once per cycle.

	* lisp/progmodes/flymake.el (flymake--delete-overlay): Don't
	delete eol overlay here.
	(flymake--eol-overlay-summary): Rework again.
	(flymake--eol-overlay-update): Delete eol overlay here.
	(flymake-start): Make sure to set all backends reported-p to nil.

2023-09-21  João Távora  <joaotavora@gmail.com>

	Flymake: more fixes to the end-of-line overlays

	bug#66041

	* lisp/progmodes/flymake.el (flymake--eol-overlay-summary): Rework.
	(flymake--eol-overlay-update): Rework.
	(flymake--highlight-line): Simplify.

2023-09-21  João Távora  <joaotavora@gmail.com>

	Flymake: do use condition-case-unless-debug

	The reasons previously highlighted in the FIXME either don't apply
	anymore or don't outweigh the advantages of using this macro.

	* lisp/progmodes/flymake.el (flymake--run-backend): Do use
	condition-case-unless-debug.

2023-09-21  João Távora  <joaotavora@gmail.com>

	Flymake: more fixes to flymake--highlight-line

	Make it robust to diagonstics with invalid bounds.

	* lisp/progmodes/flymake.el (flymake--highlight-line): Robustify.

2023-09-20  João Távora  <joaotavora@gmail.com>

	Flymake: Fix bug in flymake-diagnostics

	* lisp/progmodes/flymake.el (flymake-diagnostics): Fix bug.

2023-09-20  Jim Porter  <jporterbugs@gmail.com>

	Flymake: use 'compilation-info' as basis for "note" faces

	bug#66041

	* lisp/progmodes/flymake.el (flymake-note-echo)
	(flymake-note-echo-at-eol): Inherit from 'compilation-info'.

2023-09-20  Alan Mackenzie  <acm@muc.de>

	Insert symbol `debug' into two condition-case handlers

	This fixes bug#65622.  Also correct a mismatch between a
	function to which advice is added, and that from which it is
	removed.

	* lisp/emacs-lisp/macroexp.el (internal-macroexpand-for-load):
	Add a `debug' to the condition-case handler for `error', so
	that a useful backtrace will be produced on a macro expansion
	error.

	* lisp/progmodes/elisp-mode.el (elisp--local-variables): Add
	`debug' to a condition-case handler, as above.  In the
	advice-remove call, give the same function, macroexpand-1, as
	in the corresponding advice-add call.

2023-09-20  João Távora  <joaotavora@gmail.com>

	Flymake: fix many problems with the end-of-line overlays

	bug#66041

	* lisp/progmodes/flymake.el (flymake-diagnostics): Rewrite.
	(flymake--really-all-overlays): Rename from flymake--overlays.
	(flymake--delete-overlay): Complexify.
	(flymake--highlight-line): Rework.
	(flymake--handle-report): Update eol overlays
	(flymake-mode): use flymake--really-all-overlays.
	(flymake-after-change-function): Simplify.
	(flymake-goto-next-error): Don't use flymake--overlays.

2023-09-20  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp.el (comp-compute-dominator-tree): Simplify.

2023-09-20  João Távora  <joaotavora@gmail.com>

	Eglot: better consider diagnostics at point on code action requests

	* lisp/progmodes/eglot.el (eglot--code-action-bounds): Rename from
	eglot--code-action-bounds.  Rework to consider diagnostics.
	(eglot-code-actions): Use new eglot--code-action-bounds.
	(eglot--code-action): Use new eglot--code-action-bounds.

	* etc/EGLOT-NEWS: mention change.

	GitHub-reference: https://github.com/joaotavora/eglot/discussions/1295

2023-09-20  Mattias Engdegård  <mattiase@acm.org>

	Re-enable -Wswitch when building with Clang

	* configure.ac (WERROR_CFLAGS): Remove -Wno-switch, inserted a decade
	ago but doesn't seem to be needed now.  Please tell me if you
	observe otherwise.

2023-09-20  Mattias Engdegård  <mattiase@acm.org>

	Reorder type tests for efficiency

	* src/fns.c (Flength, Fdelete, Fnreverse):
	Test types in descending order of frequency, roughly.

2023-09-20  Mattias Engdegård  <mattiase@acm.org>

	* src/alloc.c: (cleanup_vector) Dispatch on pseudovector type

	Enable the compiler to generate a jump table instead of a chain of
	conditional branches.

2023-09-20  Paul Eggert  <eggert@cs.ucla.edu>

	Fix off-by-1 typo in vadd_to_log

	* src/xdisp.c (vadd_to_log): Fix off-by-1 typo that I introduced
	in commit fbee6265a72a4129d2efbf15a622b13e8b4aae9f
	dated Thu Aug 13 13:48:28 2015 -0700.
	Problem and fix reported by Robert Pluim (Bug#66098#11).

2023-09-19  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-auto-width): Don't check if width changes.

	Remove the condition '(< curr-width prev-width)' that was intended to check
	if the width stopped to change.  But actually it's not only unneeded,
	but causes a bug: when the name contains a combining character, then
	the width doesn't change, and the name truncation stops too early.

2023-09-19  Mattias Engdegård  <mattiase@acm.org>

	Warn about duplicated :tag strings in defcustom choices

	It is bad user experience when two menu items have identical labels.

	* lisp/emacs-lisp/bytecomp.el (bytecomp--check-cus-type): Add check.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-test-defcustom-type): Add test case.

2023-09-19  Mattias Engdegård  <mattiase@acm.org>

	Don't use pointer arithmetic for pointer tagging (bug#65491)

	This makes for safer code when tagging null pointers in particular,
	since pointer arithmetic on NULL is undefined and therefore can be
	assumed, by the compiler, not to occur.

	* src/lisp.h (untagged_ptr): Remove.
	(TAG_PTR): Cast to uintptr_t instead of untagged_ptr.

2023-09-19  Protesilaos Stavrou  <info@protesilaos.com>

	Update modus-themes to their version 4.3.0

	* doc/misc/modus-themes.org
	(Option for reloading the theme on custom change)
	(Option for disabling other themes while loading Modus)
	(Option for completion framework aesthetics)
	(Option for org-mode block styles, Get a single color from the palette)
	(Add padding to mode line, Note on SHR fonts)
	(Note on goto-address-mode faces): Use correct markup for 'nil'.
	(Custom Org todo keyword and priority faces): Reword statements and
	update the value of sample configuration blocks.
	(Use more spacious margins or padding in Emacs frames): Mention the
	'spacious-padding' package on GNU ELPA.
	(Full support for packages or face groups): Document newly supported
	packages and remove those that are no longer covered explicitly.
	(Indirectly covered packages): Note that css-mode is covered
	indirectly.
	(Acknowledgements): Expand list of people who have helped with the
	project.

	* etc/themes/modus-operandi-deuteranopia-theme.el (unless): Add
	theme-autoload cookie and relevant metadata.
	(modus-operandi-deuteranopia): Expand or tweak the palette, where
	necessary.

	* etc/themes/modus-operandi-theme.el (unless): Add theme-autoload
	cookie and relevant metadata.
	(modus-operandi): Expand or tweak the palette, where necessary.
	* etc/themes/modus-operandi-tinted-theme.el (unless): Add
	theme-autoload cookie and relevant metadata.
	(modus-operandi-tinted): Expand or tweak the palette, where necessary.

	* etc/themes/modus-operandi-tritanopia-theme.el (unless): Add
	theme-autoload cookie and relevant metadata.
	(modus-operandi-tritanopia): Expand or tweak the palette, where
	necessary.

	* etc/themes/modus-vivendi-deuteranopia-theme.el (unless): Add
	theme-autoload cookie and relevant metadata.
	(modus-vivendi-deuteranopia): Expand or tweak the palette, where
	necessary.

	* etc/themes/modus-vivendi-theme.el (unless): Add theme-autoload
	cookie and relevant metadata.
	(modus-vivendi): Expand or tweak the palette, where necessary.

	* etc/themes/modus-vivendi-tinted-theme.el (unless): Add
	theme-autoload cookie and relevant metadata.
	(modus-vivendi-tinted): Expand or tweak the palette, where necessary.

	* etc/themes/modus-vivendi-tritanopia-theme.el (unless): Add
	theme-autoload cookie and relevant metadata.
	(modus-vivendi-tritanopia): Expand or tweak the palette, where
	necessary.

	* etc/themes/modus-themes.el (modus-themes-preset-overrides-faint)
	(modus-themes-preset-overrides-intense)
	(modus-themes-preset-overrides-warmer): Make minor tweaks.
	(modus-themes--annotate-theme, modus-themes--select-prompt)
	(modus-themes--toggle-theme-p, modus-themes-toggle)
	(modus-themes--list-colors-prompt, modus-themes--heading)
	(modus-themes-faces): Refine internal functions.

	The detailed release notes are available here:
	<https://protesilaos.com/codelog/2023-09-19-modus-themes-4-3-0/>.

2023-09-19  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_exception_check_1)
	(android_exception_check_2, android_exception_check_3)
	(android_exception_check_4): Permit each object to be NULL.
	(android_browse_url): Release VALUE if an exception transpires.

2023-09-19  Alan Mackenzie  <acm@muc.de>

	Don't use ellipses while cl-printing strings.

	This fixes bug#65680.  The former use of print-length as a
	bound on the length of the printed string was erroneous,
	causing error messages preceding backtracees to get
	unnecessarily truncated to 50 characters.

	* lisp/emacs-lisp/cl-print.el (cl-print-object <string>):
	Remove the substitution of ellipses for long strings.

	* test/lisp/emacs-lisp/cl-print-tests.el
	(cl-print-tests-ellipsis-string): Remove this test.

2023-09-19  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp.el (comp-final1): Clean-up unused form.

	* lisp/emacs-lisp/comp.el (comp-op-to-fun): Use `string-replace'.

2023-09-19  Yuan Fu  <casouri@gmail.com>

	Fix treesit--update-ranges-local

	* lisp/treesit.el (treesit--update-ranges-local): Don't forget to set
	local parser's range when creating it.

2023-09-18  Paul Eggert  <eggert@cs.ucla.edu>

	Improve XUNTAG comment

	* src/lisp.h (XUNTAG): Shorten (and I hope clarify) new comment.

2023-09-18  Mattias Engdegård  <mattiase@acm.org>

	Don't use pointer arithmetic for untagging Lisp values (bug#65491)

	* src/lisp.h (XUNTAG):
	Instead of casting a Lisp value to char * and subtracting the tag,
	cast it to a suitable integral type and work on that.

	This should result in identical or at least equivalent code, except
	that it avoids potential problems arising from the restrictions on
	pointer arithmetic in C.  In particular, a null pointer can be neither
	an operand in nor the result of pointer arithmetic.

	C compilers know this and would, prior to this change, optimize

	  XUNTAG(obj, Lisp_Int0, mytype) != NULL

	to 1.  This means, for example, that make_pointer_integer and
	XFIXNUMPTR could not be entrusted with null pointers, and
	next_vector in alloc.c was unsafe to use.

2023-09-18  Jim Porter  <jporterbugs@gmail.com>

	Fix another race condition when waiting for Eshell processes

	When checking if the other processes in our pipeline are "alive", we
	also need to check whether their sentinels are finished.  Otherwise,
	we might proceed with command evaluation while one of the other
	processes is still cleaning up.

	* lisp/eshell/esh-proc.el (eshell-process-active-p): New function...
	(eshell-wait-for-process)
	* lisp/eshell/esh-cmd.el (eshell-resume-command): ... use it.

2023-09-18  Andrea Corallo  <acorallo@gnu.org>

	* Fix comp-function-type-spec for non symbol input (bug#66021)

	* lisp/emacs-lisp/comp.el (comp-function-type-spec): Make it robust
	against closures (bug#66021).

2023-09-18  Po Lu  <luangruo@yahoo.com>

	Correct build on systems without PAGE_MASK

	* exec/exec.c (write_load_command) <PAGE_MASK, PAGE_SIZE>:
	Uniformly define even if !HAVE_GETPAGESIZE.

2023-09-18  Po Lu  <luangruo@yahoo.com>

	Correct crash in child processes under armeabi Android

	* exec/trace.c (process_system_call) <READLINKAT_SYSCALL>:
	Examine tracee->waiting_for_syscall and avoid rewriting user
	arguments if a system call is presently being executed by the
	kernel.  Reported by Romário Rios <romariorios@protonmail.com>.

2023-09-18  Danny Freeman  <danny@dfreeman.email>

	Offset ranges before applying embedded tree-sitter parser

	This feature would allow treesitter major modes to easily specify
	offsets when using embedded parsers.  A potential use case for this is
	javascript template strings, when we want to apply a different parser
	to the string's contents, but do not want to include the template
	string's delimiters.

	* lisp/treesit.el
	(treesit-query-range): Accept an optional offset arg, apply the offset
	to all returned ranges.
	(treesit-range-rules): Accept an optional :offset keyword arg to adjust
	ranges an embedded parser is applied to.
	(treesit-update-ranges): Forward optional :offset setting from
	`treesit-range-rules' to `treesit-query-rang'.
	* test/src/treesit-tests.el
	(treesit-range-offset): Tests the new offset functionality.

2023-09-18  Jim Porter  <jporterbugs@gmail.com>

	Use 'eshell-with-temp-command' (indirectly) to parse Eshell script files

	* lisp/eshell/esh-cmd.el (eshell--region-p): New function.
	(eshell-with-temp-command, eshell-parse-command): Support
	'(:file . FILENAME)' to use the contents of FILENAME.

	* lisp/eshell/em-script.el (eshell-source-file): Call
	'eshell-parse-command' and use backticks.

2023-09-18  Po Lu  <luangruo@yahoo.com>

	Optimize damage region tracking under Android

	* java/org/gnu/emacs/EmacsDrawLine.java (perform):

	* java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Call
	damageRect with integer coordinates in lieu of consing a new
	Rect.

	* java/org/gnu/emacs/EmacsDrawable.java (damageRect) <IIII>:
	Declare a new variant of damageRect, accepting four integers
	designating the extents of the damage rectangle.

	* java/org/gnu/emacs/EmacsPixmap.java (damageRect) <IIII>: New
	stub.

	* java/org/gnu/emacs/EmacsView.java (damageRect) <IIII>:
	Implement this overloaded variant of damageRect.

	* java/org/gnu/emacs/EmacsWindow.java (damageRect): Ditto.

	* src/android.c (android_init_emacs_drawable)
	(android_init_emacs_window): Move search for `damageRect' to
	android_init_emacs_window.
	(android_damage_window): Call IIII variant of `damageRect' to
	avoid consing a new rectangle.  Ameliorate dynamic method
	dispatch overhead.

2023-09-18  F. Jason Park  <jp@neverwas.me>

	Spoof channel users in erc-button--phantom-users-mode

	* lisp/erc/erc-backend.el (erc--cmem-from-nick-function): Update
	forward declaration.
	(erc-server-PRIVMSG): Use new name for `erc--user-from-nick-function',
	now `erc--cmem-from-nick-function'.
	* lisp/erc/erc-button.el (erc-button--phantom-users,
	erc-button--phantom-cmems): Rename former to latter.
	(erc-button--fallback-user-function,
	erc-button--fallback-cmem-function): Rename former to latter.
	(erc--phantom-channel-user, erc--phantom-server-user): New superficial
	`cl-struct' definitions "subclassing" `erc-channel-user' and
	`erc-server-user'.  Note that these symbols lack an `erc-button'
	prefix.
	(erc-button--add-phantom-speaker): Look for channel member instead of
	server user, creating one if necessary.  Return a made-up
	`erc-channel-user' along with a fake `erc-server-user'.
	(erc-button--get-phantom-user, erc-button--get-phantom-cmem): Rename
	former to latter.
	(erc-button--phantom-users-mode, erc-button--phantom-users-enable,
	erc-button--phantom-users-disable): Use updated "cmem" names for
	function-valued interface variables and their implementing functions.
	Remove obsolete comment.
	(erc-button-add-nickname-buttons): Attempt to query fallback function
	for channel member instead of server user.
	* lisp/erc/erc.el (erc--user-from-nick-function,
	erc--cmem-from-nick-function): Rename former to latter.
	(erc--examine-nick, erc--cmem-get-existing): Rename former to
	latter.  (Bug#60933)

2023-09-18  F. Jason Park  <jp@neverwas.me>

	Run erc--scrolltobottom-on-pre-insert unconditionally

	* lisp/erc/erc-goodies.el (erc--scrolltobottom-all): Pass `no-force'
	argument to `set-window-start'.
	(erc--scrolltobottom-on-pre-insert): Convert from generic to normal
	function and drop `erc-input' method completely.  A non-nil `insertp'
	slot means a message is marked for insertion in the read-only portion
	of the buffer, above the prompt.  But conditionally restoring window
	parameters based on that flag is insufficient because the window still
	needs adjusting whenever input is typed, regardless of whether it's
	erased or "inserted."  (Bug#64855)

2023-09-18  F. Jason Park  <jp@neverwas.me>

	Simplify erc--fill-module-docstring

	* lisp/erc/erc-common.el (erc--fill-module-docstring): Don't run hooks
	for major mode when filling.  Prefer `lisp-data-mode' to
	`emacs-lisp-mode'.

2023-09-18  Jim Porter  <jporterbugs@gmail.com>

	Fix running background commands via 'eshell-command'

	This regressed (I believe) due to 2ec41c174f9.

	* lisp/eshell/esh-cmd.el (eshell-resume-eval): Check for non-nil
	'retval' instead of for a process list (nil is also a technically a
	process list!).

	* test/lisp/eshell/eshell-tests.el
	(eshell-test/eshell-command/background-pipeline): Remove unnecessary
	'copy-tree'.
	(eshell-test/eshell-command/output-buffer/sync)
	(eshell-test/eshell-command/output-buffer/async): New tests.

2023-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Delete commented out code from cperl-mode.el

	* lisp/progmodes/cperl-mode.el: Delete some commented out code.

2023-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Rename describe-map-tree to help--describe-map-tree

	This function should have been made internal in the first place.
	* lisp/help.el (help--describe-map-tree): Rename from
	'describe-map-tree'.  Keep old name as an obsolete alias, and update
	all callers.

2023-09-17  Mattias Engdegård  <mattiase@acm.org>

	Expanded defcustom type byte-compilation warnings (bug#65852)

	Warn about more kinds of mistakes in :type arguments of `defcustom`
	and `define-widget`.  These include:

	- misplaced keyword args, as in (const red :tag "A reddish hue")
	- missing subordinate types, as in (repeat :tag "List of names")
	  or (choice list string)
	- duplicated values, as in (choice (const yes) (const yes))
	- misplaced `other` member, as in
	  (choice (const red) (other nil) (const blue))
	- various type name mistakes, as in (vector bool functionp)

	* lisp/emacs-lisp/bytecomp.el (byte-compile--defcustom-type-quoted)
	(byte-compile-nogroup-warn): Remove.
	(byte-compile-normal-call): Remove call to the above.
	(bytecomp--cus-warn, bytecomp--check-cus-type)
	(bytecomp--custom-declare): New.

2023-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Improve org-babel-execute:eshell docstring

	* lisp/org/ob-eshell.el (org-babel-execute:eshell): Improve docstring.

2023-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Make obsolete flymake proc less prominent in manual

	* doc/misc/flymake.texi: Don't mention obsolete legacy support on the
	first page.  It is still documented in a separate chapter.

2023-09-17  Michael Albinus  <michael.albinus@gmx.de>

	Make "toolbox" and "flatpak" multi-hop completion capable in Tramp

	* lisp/net/tramp-container.el (tramp-skeleton-completion-function):
	Bind `tramp-verbose' to 0.
	(tramp-toolbox--completion-function)
	(tramp-flatpak--completion-function): Use METHOD as argument.
	Use `tramp-skeleton-completion-function'.
	(tramp-completion-multi-hop-methods): Add "toolbox" and "flatpak".

2023-09-17  Christophe Troestler  <Christophe.Troestler@umons.ac.be>

	Add prettify-symbols configuration to 'rust-ts-mode'

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode-prettify-symbols-alist): New variable.
	(rust-ts-mode--prettify-symbols-compose-p): New function.
	(rust-ts-mode): Use it.

2023-09-17  Eli Zaretskii  <eliz@gnu.org>

	Support Unicode version 15.1

	* admin/unidata/BidiBrackets.txt:
	* admin/unidata/BidiMirroring.txt:
	* admin/unidata/Blocks.txt:
	* admin/unidata/IdnaMappingTable.txt:
	* admin/unidata/NormalizationTest.txt:
	* admin/unidata/PropertyValueAliases.txt:
	* admin/unidata/ScriptExtensions.txt:
	* admin/unidata/Scripts.txt:
	* admin/unidata/SpecialCasing.txt:
	* admin/unidata/UnicodeData.txt:
	* admin/unidata/confusables.txt:
	* admin/unidata/copyright.html:
	* test/manual/BidiCharacterTest.txt:
	* admin/unidata/emoji-data.txt:
	* admin/unidata/emoji-sequences.txt:
	* admin/unidata/emoji-test.txt:
	* admin/unidata/emoji-variation-sequences.txt:
	* admin/unidata/emoji-zwj-sequences.txt: Update from Unicode data
	files.
	* admin/notes/unicode: Update instructions.
	* lisp/international/characters.el: Update 'char-width-table'
	data.
	* etc/NEWS: Announce support for Unicode 15.1.

2023-09-17  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	bcf287bd114 typescript-ts-mode.el: Minor touches
	67c82710764 Improve namespacing situation WRT to recent change in typ...
	33ff4fed03d Make move-end-of-line in minibuffer consistent (bug#65980)

2023-09-17  Po Lu  <luangruo@yahoo.com>

	Speed up Android context menu generation

	* src/androidmenu.c (android_menu_show, android_dialog_show):
	Circumvent JNI dynamic method dispatch overhead.

2023-09-16  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp messages

	* lisp/net/tramp-message.el (tramp-debug-message): Publish the
	name of the debug file name.

2023-09-16  Michael Albinus  <michael.albinus@gmx.de>

	Make "kubernetes" multi-hop completion capable in Tramp

	* lisp/net/tramp-container.el (tramp-skeleton-completion-function):
	New defmacro.
	(tramp-container--completion-function): Use it.
	(tramp-kubernetes--completion-function): Use METHOD as argument.
	Use `tramp-skeleton-completion-function'.
	(tramp-skeleton-kubernetes-vector): New defmacro.
	(tramp-kubernetes--current-context)
	(tramp-kubernetes--current-context-data): Use it.
	(tramp-completion-multi-hop-methods): Add "kubernetes".

2023-09-16  Michael Albinus  <michael.albinus@gmx.de>

	Adapt tramp-otp-password-prompt-regexp

	* lisp/net/tramp.el (tramp-otp-password-prompt-regexp):
	Use `tramp-compat-password-colon-equivalents'.

2023-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Revert "Mark two tests as expensive"

	This reverts commit 1d952078c0c45fc095795294351a4a2ee7e6c253.

2023-09-16  Eli Zaretskii  <eliz@gnu.org>

	Revert "Don't use pointer arithmetic for untagging Lisp values"

	This reverts commit 056c99a34c143e1b5162366db07a143ac2b10631.
	It broke compilation of 32-bit build --with-wide-int.

2023-09-16  Eli Zaretskii  <eliz@gnu.org>

	Revert "* src/lisp.h (XUNTAG): Work on 32-bit --with-wide-int builds"

	This reverts commit c0788f0c476f094a91f7b20f41d0fe50b5b19f9d.
	Let's finish discussing this before rushing to push.

2023-09-16  Mattias Engdegård  <mattiase@acm.org>

	* src/lisp.h (XUNTAG): Work on 32-bit --with-wide-int builds

	This eliminates a compiler warning for that configuration
	(see bug#65491).

2023-09-16  Mattias Engdegård  <mattiase@acm.org>

	Don't use pointer arithmetic for untagging Lisp values

	* src/lisp.h (XUNTAG):
	Instead of casting a Lisp value to char * and subtracting the tag,
	cast it to a suitable integral type and work on that.

	This should result in identical or at least equivalent code, except
	that it avoids potential problems arising from the restrictions on
	pointer arithmetic in C.  In particular, a null pointer can be neither
	an operand in nor the result of pointer arithmetic.

	C compilers know this and would, prior to this change, optimize

	  XUNTAG(obj, Lisp_Int0, mytype) != NULL

	to 1.  This means, for example, that make_pointer_integer and
	XFIXNUMPTR could not be entrusted with null pointers, and
	next_vector in alloc.c was unsafe to use.

2023-09-16  Mattias Engdegård  <mattiase@acm.org>

	More accurate static vector block size assertion

	* src/alloc.c: The size of a vector block is bound by the number of
	words, not bytes, represented by the pseudovector header RESTSIZE
	field, because that limits how big a PVEC_FREE object can be.

2023-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Add missing builtin package declarations

	* lisp/finder.el (finder--builtins-alist): Add new package
	directories 'leim' and 'obsolete' as part of the 'emacs' package.
	Add new package directory 'use-package' as part of the
	'use-package' package.
	* lisp/net/eudc-capf.el:
	* lisp/net/eudcb-ecomplete.el:
	* lisp/net/eudcb-macos-contacts.el:
	* lisp/net/eudcb-mailabbrev.el: Declare library as part of the
	'eudc' package.
	* lisp/mail/ietf-drums-date.el: Declare library as part of the
	'ietf-drums' package.
	* lisp/image/image-dired-dired.el:
	* lisp/image/image-dired-external.el:
	* lisp/image/image-dired-tags.el:
	* lisp/image/image-dired-util.el: Declare library as part of the
	'image-dired' package.
	* lisp/emacs-lisp/oclosure.el:
	* lisp/keymap.el:
	* lisp/progmodes/c-ts-common.el: Declare library as part of the
	'emacs' package.  (Bug#62751)

2023-09-16  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	755ae813a6a ; Declare some treesit.c functions in typescript-ts-mode.el.
	89fa204b706 Fix loss of encrypted data in plstore.el
	d9a1175a611 Close SQL database when corresponding 'sqlite-mode' buffe...
	cbd8fac283a Fix Unicode normalization of characters
	825be05b379 Support one-time passwords in Tramp
	f880b94e649 Fix the 'C' and 'c' categories of characters
	58fd212d8a2 Fix Emoji zooming commands
	8970cdd009a ; Fix last change.
	ba924be4522 ; * etc/DEBUG: Improve the redisplay section.
	e110312ad95 ; * doc/lispref/minibuf.texi (Text from Minibuffer): Ment...
	65f4810003b tsx-ts-mode--font-lock-compatibility-bb1f97b: Improve
	6fe11b88ed0 Avoid using --display in emacsclient to reuse frames on PGTK
	2fc7463c0e5 ; * INSTALL: Don't advertise -O3.  (Bug#65988)
	29055412f2d ; Fix doc string of 'lsh'
	738d8543337 Support emacsclient on Windows with server on GNU or Unix...
	f0a89fa1d0e ; * lisp/saveplace.el (save-place-ignore-files-regexp): F...
	c9cb8ee0fc0 Fix defcustom in saveplace.el (Bug#65977)
	5ec8be1d589 ; * lisp/subr.el (string-suffix-p, string-prefix-p): Doc ...
	809305e6d8f Fix 'window-text-pixel-size' when there are several image...
	ea14b0dcc20 : Doc fix.
	01e8a0c6cbf Doc fix for prettify-symbols-unprettify-at-point
	0065621d0d3 (report_overlay_modification): Fix bug#65929
	6cc6455e931 Fix SVG colors (bug#56182)
	9396d73942e * doc/emacs/text.texi (Outline Minor Mode): Add a note ab...
	a65d1a5a167 Improve documentation of 'list-abbrevs'
	5dcc4b7eab1 Tweak s-p-f for js-ts-mode
	1fb2fb501f3 typescript-ts-mode, tsx-ts-mode: Fix syntax properties fo...
	946b395e7e1 * lisp/progmodes/c-ts-mode.el (c++-ts-mode): Provide (bug...
	33ee3e588fd Fix regression of treesit_cursor_helper_1
	d11d81dfcc6 ; Fix doc typos (Bug#65868)
	6554ec22465 Update docs for passing of Thien-Thi Nguyen
	5ab2792d5c1 Update defvar usage tips example in manual
	35d88c657e1 Document using Flymake together with Eglot
	3f04efe9e7d ; * src/font.h (struct font): Comment about use of averag...
	459b5f6b6d1 ; * admin/authors.el (authors-aliases): Update.
	0c029ae8bcb ; tweak etc/TODO item

	# Conflicts:
	#	admin/authors.el
	#	lisp/subr.el

2023-09-16  StrawberryTea  <look@strawberrytea.xyz>  (tiny change)

	bug#65007: Allow displaying program IO in the GDB buffer

	* lisp/progmodes/gdb-mi.el (gdb-split-io-flag): Don't create
	IO buffer if `gdb-split-io-flag' is nil.
	(gdb-split-io-flag): New user option.

2023-09-16  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Declare more functions as shift-translatable motion commands

	* lisp/comint.el (comint-next-prompt, comint-previous-prompt): Declare
	as shift-translatable motion commands.
	* lisp/textmodes/sgml-mode.el (sgml-skip-tag-backward)
	(sgml-skip-tag-forward): Declare as shift-translatable motion
	commands.  (Bug#65876)

2023-09-16  bug-gnu-emacs@gnu.org  <bug-gnu-emacs@gnu.org>

	bug#65673: Add lua-ts-mode

	* lisp/progmodes/lua-ts-mode.el:
	* test/lisp/progmodes/lua-ts-mode-resources/indent.erts:
	* test/lisp/progmodes/lua-ts-mode-tests.el: New files.
	* etc/NEWS: Mention the new mode.
	* lisp/progmodes/eglot.el (eglot-server-programs):
	* lisp/progmodes/hideshow.el (hs-special-modes-alist):
	Support 'lua-ts-mode'.
	* admin/notes/tree-sitter/build-module/batch.sh:
	* admin/notes/tree-sitter/build-module/build.sh: Add Lua.
	* test/infra/Dockerfile.emba:
	* test/infra/test-jobs.yml: Include lua-ts-mode tests.

2023-09-16  Mauro Aranda  <maurooaranda@gmail.com>

	Avoid errors when a restricted-sexp widget is empty

	* lisp/wid-edit.el (restricted-sexp): Don't try to read
	an empty string when converting the current value to the
	external format.  (Bug#63838)

	* test/lisp/wid-edit-tests.el (widget-test-restricted-sexp-empty-val):
	New test.

2023-09-16  Earl Hyatt  <okamsn@protonmail.com>

	Make using Edmacro easier for long sequences of keys

	* lisp/edmacro.el (edmacro-set-macro-to-region-lines)
	(edmacro-reverse-key-order): New command and user option to
	make working with longer lists of keys, such as from
	'kmacro-edit-lossage', easier.
	(edit-kbd-macro): Move regexps used to identify parts of
	buffer to internal variables.
	(edmacro--macro-lines-regexp, edmacro-mode-font-lock-keywords):
	Allow noting whether the most recent line of keys is displayed
	first.
	(edmacro-mode-map): Bind the new command to 'C-c C-r'.
	(edmacro-mode): Describe the new command in the mode
	documentation string.

	* doc/emacs/kmacro.texi (Edit Keyboard Macro): Mention
	'edmacro-insert-key' and the newly added
	'edmacro-set-macro-to-region-lines' and
	'edmacro-reverse-key-line-order'.

	* etc/NEWS (Edmacro): Add section describing the new features.

	(Bug#65605)

2023-09-16  Andreas Schwab  <schwab@linux-m68k.org>

	Update pdumper hashes

	* src/pdumper.c (dump_vectorlike_generic, dump_vectorlike)
	(dump_buffer): Update hash.

2023-09-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsContextMenu.java (display): Return
	false if the list of menu buttons is empty, lest Android cease
	displaying menus on the assumption that Emacs is defective.

	* java/org/gnu/emacs/EmacsView.java (popupMenu): Likewise.

	* src/fns.c (sort_list): Render sentence motion commands
	functional within commentary

	* src/sfntfont.c (sfntfont_list_family): Sort and deduplicate
	the returned family list and make it a list of symbols.
	(syms_of_sfntfont) <Qstring_lessp>: New defsym.

2023-09-15  Jim Porter  <jporterbugs@gmail.com>

	Fix documented Eshell behavior of ignoring leading nils in commands

	* lisp/eshell/esh-var.el (eshell-handle-local-variables): Simplify,
	and move leading-nil handling to...
	* lisp/eshell/esh-cmd.el (eshell-named-command): ... here.

	* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/skip-leading-nils):
	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/local-variables/skip-nil): New tests.

	* doc/misc/eshell.texi (Expansion): Document this behavior.

2023-09-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	(mutually_exclusive_p): Fix the regression from commit 6fad73d7cc53

	Commit 6fad73d7cc53 throws away some useful optimization because
	it misfired in some cases (as seen in bug#657260).  Here we try to
	recover those useful optimizations with a slightly more careful
	algorithm.

	* src/regex-emacs.c (mutually_exclusive_aux): Rename from
	`mutually_exclusive_p`.  Add two new args.  Improve the
	case where we need to recurse.
	(mutually_exclusive_p): New function defined on top of it.

	* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
	Re-enable the test.

2023-09-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/regex-emacs.c (mutually_exclusive_p): Refactor

	Minor refactoring to avoid swapping p1/p2.

	* src/regex-emacs.c (mutually_exclusive_exactn)
	(mutually_exclusive_charset): New functions, extracted from
	`mutually_exclusive_p`.
	(mutually_exclusive_p): Use them.

2023-09-15  Stefan Kangas  <stefankangas@gmail.com>

	Mark two tests as expensive

	* test/lisp/calendar/todo-mode-tests.el
	(todo-test-add-and-delete-file):
	* test/lisp/simple-tests.el (simple-tests-shell-command-39067):
	Mark tests taking more than 10 seconds to run on a MacBook Pro from
	2015 as expensive.

2023-09-15  Stefan Kangas  <stefankangas@gmail.com>

	Fix describing packages where maintainer lacks email

	* lisp/emacs-lisp/package.el (describe-package-1): Fix describing
	packages with one maintainer without an email address.  (Bug#65987)

2023-09-15  Yuan Fu  <casouri@gmail.com>

	Add dot SVG icons

	The advantage of SVG dots over Unicode dots is that their size is
	fixed.  With Unicode dots, the size varies with the font.

	Dot icons can be useful for status indicator: green dot for online,
	red dot for offline, etc.

	* etc/images/symbols/dot_large_16.pbm:
	* etc/images/symbols/dot_large_16.svg:
	* etc/images/symbols/dot_medium_16.pbm:
	* etc/images/symbols/dot_medium_16.svg:
	* etc/images/symbols/dot_small_16.pbm:
	* etc/images/symbols/dot_small_16.svg: New file.

2023-09-15  Yuan Fu  <casouri@gmail.com>

	Allow treesit-font-lock-recompute-features to be language-specific

	* lisp/treesit.el:
	(treesit-font-lock-recompute-features): Add LANGUAGE parameter.

2023-09-15  Po Lu  <luangruo@yahoo.com>

	Correct bug#65919

	* src/process.c (child_signal_notify): Expunge call to
	non-reentrant function from signal handler.

	* src/xfns.c (setup_xi_event_mask): Cease selecting for
	XI_FocusIn and XI_FocusOut under X toolkit builds.

	* src/xterm.c (xi_handle_interaction, xi_handle_focus_change)
	(xi_handle_focus_change): Make conditional on GTK 3 or no
	toolkit builds.
	(xi_handle_delete_frame, x_free_frame_resources): Adjust
	correspondingly.
	(handle_one_xevent) <EnterNotify, LeaveNotify>: Examine
	EnterNotify and LeaveNotify events for focus changes
	irrespective of whether XI2 is enabled under the X toolkit and
	GTK 2.x.

2023-09-15  Jim Porter  <jporterbugs@gmail.com>

	Collapse 'if' forms in Eshell iterative evaluation

	* lisp/eshell/esh-cmd.el (eshell-do-eval): After evaluating 'if'
	conditional, replace the form with the THEN or ELSE body.

2023-09-14  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp test on NetBSD

	* test/lisp/net/tramp-tests.el (tramp--test-netbsd-p): New defun.
	(tramp--test-check-files): Use it.

2023-09-14  Po Lu  <luangruo@yahoo.com>

	Avert a crash in the Android last resort font driver

	* java/org/gnu/emacs/EmacsFontDriver.java (FONT_INVALID_CODE):
	New constant.
	(hasChar, encodeChar): Accept a jint character code rather than
	a jchar.

	* java/org/gnu/emacs/EmacsSdk23FontDriver.java (hasChar)
	(encodeChar): Return 0 or FONT_INVALID_CODE if the character is
	not representable in a Java char.

	* java/org/gnu/emacs/EmacsSdk7FontDriver.java (hasChar): Ditto.

	* src/androidfont.c (android_init_font_driver): Adjust signature
	to match.

2023-09-14  Yuan Fu  <casouri@gmail.com>

	Refactor treesit-font-lock-fontify-region

	* lisp/treesit.el (treesit-font-lock-fontify-region): Extract out
	treesit--font-lock-fontify-region-1.

2023-09-14  Yuan Fu  <casouri@gmail.com>

	Fix treesit-font-lock-fontify-region wrt local parsers

	* lisp/treesit.el (treesit--update-ranges-local): Minor change.
	(treesit-font-lock-fontify-region): Don't try to fontify if node is
	nil.  Don't use alist-get to get the root node for a language: there
	might be multiple root nodes (from multiple local parsers) for the
	same language.
	(treesit-major-mode-setup): Remove existing local parsers when major
	mode is activated.

2023-09-14  Po Lu  <luangruo@yahoo.com>

	Improve the Android last resort font driver

	* java/org/gnu/emacs/EmacsSdk7FontDriver.java (Sdk7Typeface):
	Rename fileName to familyName and cease attempting to infer a
	style from it.
	(EmacsSdk7FontDriver): Employ preset typefaces rather than
	enumerating each typeface within the system fonts directory.
	(draw): Circumvent kerning difficulties by advancing past each
	character individually.

2023-09-14  Jim Porter  <jporterbugs@gmail.com>

	Improve process instrumentation in Eshell

	* lisp/eshell/esh-proc.el (eshell-insertion-filter): Add more logging,
	and try to bulletproof the implementation.
	(eshell-sentinel): Add more logging.

2023-09-14  Yuan Fu  <casouri@gmail.com>

	Improve docstring for treesit-language-at

	* lisp/treesit.el (treesit-language-at-point-function)
	(treesit-language-at): Several people has confused over this, make it
	extra clear than treesit-language-at requires
	treesit-language-at-point-function to work.

2023-09-14  Yuan Fu  <casouri@gmail.com>

	Add tree-sitter performance note

2023-09-14  Yuan Fu  <casouri@gmail.com>

	Update tree-sitter traversing functions' docstrings

	* src/treesit.c (Ftreesit_search_subtree)
	(Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree): Update docstring.

2023-09-13  Stephen Berman  <stephen.berman@gmx.net>

	Fix last Ibuffer change and improve feedback messages

	* lisp/ibuf-macs.el (define-ibuffer-op): Emit grammatically
	correct message on finishing operation, and don't operate when
	there are no marked buffer lines and point is not on a buffer
	line.  (bug#64230, Message #21)

	* lisp/ibuffer.el (ibuffer-map-lines): Take acting on only one
	buffer line and using non-nil 'ibuffer-expert' into account.

2023-09-13  Jim Porter  <jporterbugs@gmail.com>

	When waiting for processes in Eshell, wait until all the I/O is complete

	This should fix bug#59103, bug#65590, and bug#65601.

	* lisp/eshell/esh-proc.el (eshell-sentinel): Set ':eshell-handles' to
	nil when finished with I/O.
	(eshell-wait-for-process): Wait until ':eshell-handles' is nil.

2023-09-13  Alan Third  <alan@idiocy.org>

	Fix build error on older macOS versions

	* src/nsterm.m (ns_scroll_run): Use srcRect instead of destRect.

2023-09-13  Mauro Aranda  <maurooaranda@gmail.com>

	Fix defcustom :type in replace.el (Bug#65920)

	* lisp/replace.el (list-matching-lines-face)
	(list-matching-lines-buffer-name-face): Allow a nil value.

2023-09-13  Damien Cassou  <damien@cassou.me>

	Shorten docstrings generated by cl-defstruct

	* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Split the first line of
	generated docstrings if either the struct name or a field name is very
	long.  This reduces the likelihood of "docstring wider than 80
	characters" errors.  (Bug#65790)

2023-09-13  Damien Cassou  <damien@cassou.me>

	Shorten docstrings generated by cl-defsubst

	* lisp/emacs-lisp/cl-macs.el (cl-defsubst): Split the first line of
	the docstring into 2 lines if the function name is very long.
	Additionally, remove the word "inlining" in the generated docstring as
	it is not very useful and increases the likelihood of "docstring wider
	than 80 characters" errors.  (Bug#65790)

2023-09-13  Damien Cassou  <damien@cassou.me>

	bytecomp-tests.el: Add new helper function

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp--without-warning-test): Add helper function.
	(bytecomp-warn--ignore): Use the helper.

2023-09-13  Michael Albinus  <michael.albinus@gmx.de>

	Fix problem with long file names in Tramp

	* lisp/net/tramp-sh.el (tramp-ls-file-attributes): New defconst.
	(tramp-do-file-attributes-with-ls): Use it.  (Bug#65324)

2023-09-13  Po Lu  <luangruo@yahoo.com>

	Reorganize Android permissions documentation

	* doc/emacs/android.texi (Android Environment): Illustrate the
	behavior of modern Android versions first.  Reported by Stefan
	Kangas <stefankangas@gmail.com>.

2023-09-13  Po Lu  <luangruo@yahoo.com>

	Exclude ``regular'' from font adstyle

	* src/sfntfont.c (sfnt_parse_style): Disregard tokens matching
	Regular entirely.

2023-09-13  Po Lu  <luangruo@yahoo.com>

	Request additional permissions on Android

	* doc/emacs/android.texi (Android Environment): List two
	additional permissions within the summary of permissions granted
	by default.

	* java/AndroidManifest.xml.in: Request READ_CALENDAR and
	WRITE_CALENDAR.

2023-09-13  Po Lu  <luangruo@yahoo.com>

	Facilitate opening content:// files without a linked file name

	* java/org/gnu/emacs/EmacsOpenActivity.java
	(checkReadableOrCopy): If FILE is NULL, return a matching
	content URI if possible, else generate a file name with the URI
	as a reference.
	(onCreate): Catch SecurityException around calls to
	openFileDescriptor.

2023-09-12  Yuan Fu  <casouri@gmail.com>

	Avoid unnecessary tree-sitter reparse when setting the same range

	* src/treesit.h (Lisp_TS_Parser)
	* src/treesit.c (make_treesit_parser): Remove has_range field, add
	last_set_ranges field.
	(Ftreesit_parser_set_included_ranges): Return early if the new range
	is the same as the old one.
	(Ftreesit_parser_included_ranges): Change has_range to
	last_set_ranges.

2023-09-12  Yuan Fu  <casouri@gmail.com>

	Make sure undefined tree-sitter thing doesn't raise an error

	A previous change should've achieved this, but that wasn't enough.
	This one actually achieves the intended effect, namely,
	treesit-node-match-p doesn't raise an error if IGNORE-MISSING is
	non-nil, and traverse functions don't raise error by default.

	* src/treesit.c (treesit_traverse_validate_predicate): Remove
	ignore_missing parameter, return error symbol.
	(Ftreesit_node_match_p)
	(Ftreesit_search_subtree)
	(Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree): Check returned error symbol.
	(syms_of_treesit): New symbol.

2023-09-12  Jim Porter  <jporterbugs@gmail.com>

	Ensure that Eshell doesn't consider a process complete until stderr is done

	This will hopefully help resolve some timing issues with subprocesses
	in Eshell.  There's now much less chance of output going missing when
	using redirects.

	* lisp/eshell/esh-proc.el (eshell-gather-process-output): Set
	':eshell-stderr-live'...
	(eshell-sentinel): ... use it.

2023-09-12  Jim Porter  <jporterbugs@gmail.com>

	Be more careful about when to print abnormal exit status in Eshell

	* lisp/eshell/esh-proc.el (eshell-sentinel): Only output abnormal
	status when stderr is interactive.

	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test/kill-process/redirect-message): New test.

2023-09-12  Jim Porter  <jporterbugs@gmail.com>

	Don't do anything in 'eshell-sentinel' if the process status is "run"

	This doesn't change anything right now, but it will prevent future
	issues when we add the ability to resume suspended processes in
	Eshell.

	* lisp/eshell/esh-proc.el (eshell-sentinel): Check for "run" status
	earlier.

2023-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/alloc.c (garbage_collect): Run `post-gc-hook` later (bug#65700)

2023-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	Address "Useless clause following default cond clause" warnings

	* lisp/gnus/message.el (message-position-point): Fix paren typo.

	* lisp/org/org.el: Remove dead-code.

2023-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(read-char-from-minibuffer): Allow use of `quoted-insert` (bug#65805)

	* lisp/subr.el (read-char-from-minibuffer-map): No need to remap
	`self-insert-command` any more.
	(read-char-from-minibuffer): Use `post-command-hook` to exit as soon as
	a char is provided.

2023-09-12  Alan Mackenzie  <acm@muc.de>

	Correct the XEmacs version of c-put-char-properties

	* lisp/progmodes/cc-defs.el (c-put-char-properties): Use the
	put-text-property interface rather than make-extent for XEmacs
	as well as Emacs.

2023-09-12  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2023-09-12  Po Lu  <luangruo@yahoo.com>

	Extract font foundry metadata from the OS/2 table

	* src/sfnt.c (sfnt_table_names): Append an entry for OS/2
	tables.
	(sfnt_read_OS_2_table): New function.
	(main): Introduce a new test for the OS/2 table reader.

	* src/sfnt.h (sfnt_read_OS_2_table): New declaration.

	* src/sfntfont.c (sfnt_decode_foundry_name): Delete function.
	(sfnt_enum_font_1): Read the font's OS/2 table and extract the
	foundry name from there.  Use `misc' if absent.
	(sfntfont_desc_to_entity, sfntfont_open): Cease interning
	desc->designer, as that is now a symbol.
	(syms_of_sfntfont) <Qmisc>: New defsym Qmisc.  (bug#65865)

2023-09-12  Łukasz Stelmach  <stlman@poczta.fm>

	Fix tracing for advanced scoring in gnus-logic.el

	* lisp/gnus/gnus-logic.el (gnus-score-advanced): Move the tracing code
	outside conditional so it's executed for both branches.  (Bug#59458)

2023-09-12  Stefan Kangas  <stefankangas@gmail.com>

	Match recent version of GNU global in CEDET

	* lisp/cedet/cedet-global.el (cedet-gnu-global-version-check):
	Match recent version of GNU global.  (Bug#62581)

2023-09-11  Alan Third  <alan@idiocy.org>

	Remove check for appdefined events on the queue (bug#65843)

	It seems this was likely a bug in macOS 10.10.1. I have no way to find
	out when it was fixed, but hopefully before 10.10.5, the most recent
	release of that version.

	* src/nsterm.m (ns_send_appdefined): Remove check for whether previous
	appdefined events have been lost.

2023-09-11  Alan Third  <alan@idiocy.org>

	Fix crash on child frame creation (bug#65817)

	* src/nsterm.m ([EmacsView initFrameFromEmacs:]): Reorder the way the
	frame and layers are created.
	([EmacsView makeBackingLayer]): Change to the newly renamed method
	below.
	([EmacsLayer initWithColorSpace:doubleBuffered:]):
	([EmacsLayer initWithDoubleBuffered:]): Rename the method and remove
	the colorspace argument as it's no longer able to be set on initial
	creation.
	* src/nsterm.h: Use new method prototype.

2023-09-11  Alan Third  <alan@idiocy.org>

	Simplify the EmacsLayer double buffering code (bug#63187)

2023-09-11  Stephen Berman  <stephen.berman@gmx.net>

	Avoid confusing message in Ibuffer (bug#64230)

	* lisp/ibuffer.el (ibuffer-map-lines): With `ibuffer-auto-mode'
	enabled, Ibuffer counts the automatically popped up (and hence not
	user-marked) buffer "*Ibuffer confirmation*".  Since Ibuffer
	reports how many user-marked buffers were acted upon, and in this
	case the reported count would be too high by one, decrement the
	count to avoid the confusing message.

2023-09-11  Gerd Möllmann  <gerd@gnu.org>

	Eglot support for objc-mode

	* lisp/progmodes/eglot.el (eglot-server-programs): Add objc-mode to
	the list containing c-mode.

2023-09-11  Michael Albinus  <michael.albinus@gmx.de>

	New command tramp-revert-buffer-with-sudo

	* doc/misc/tramp.texi (Ad-hoc multi-hops):
	Document tramp-file-name-with-method and tramp-revert-buffer-with-sudo.

	* etc/NEWS: New command tramp-revert-buffer-with-sudo.

	* lisp/net/tramp-cmds.el (dired-advertise, dired-unadvertise): Declare.
	(tramp-dired-buffer-p, tramp-remote-process-p): Rename.
	(tramp-file-name-with-method): New defcustom.
	(tramp-file-name-with-sudo, tramp-revert-buffer-with-sudo): New defuns.

2023-09-11  Po Lu  <luangruo@yahoo.com>

	Provide an option to disable font instruction code execution

	* etc/PROBLEMS: Mention instruction code woes and illustrate how
	to circumvent them.

	* src/sfntfont.c (sfntfont_setup_interpreter): Respect
	Vsfnt_uninstructable_family_regexp.
	(syms_of_sfntfont) <Vsfnt_uninstructable_family_regexp>: New
	option.

2023-09-11  Po Lu  <luangruo@yahoo.com>

	Expunge another instance of ``allows to''

	* etc/NEWS (Tramp) <tramp-cleanup-some-buffers>: Reword and
	rephrase to avoid ``allows to''.

2023-09-11  Po Lu  <luangruo@yahoo.com>

	Respect vertical centering preferences under Android

	* src/sfntfont.c (sfntfont_open): Match XLFD name against
	Vvertical_centering_font_regexp; if they agree, set
	font->vertical_centering.  Also set a suitable full name.

2023-09-11  Po Lu  <luangruo@yahoo.com>

	Properly set text conversion style within ERC buffers

	* lisp/erc/erc.el (erc-mode): Register
	`erc-check-text-conversion' as a local post command hook.
	(set-text-conversion-style): New function.  Detect if point is
	within the input prompt, then enable or disable text conversion
	correspondingly.

2023-09-11  F. Jason Park  <jp@neverwas.me>

	Consider all windows in erc-scrolltobottom-mode

	* etc/ERC-NEWS: Add entry for option `erc-scrolltobottom-all', and
	mention explicit hook-depth intervals reserved by ERC.
	* lisp/erc/erc-backend.el (erc--hide-prompt): Change hook depth on
	`pre-command-hook' from 91 to 80.
	* lisp/erc/erc-goodies.el (erc-input-line-position): Mention secondary
	role when new option `erc-scroll-to-bottom-relaxed' is non-nil.
	(erc-scrolltobottom-all): New option that decides whether module
	`scrolltobottom' affects all windows or just the selected one, as it
	always has.
	(erc-scrolltobottom-relaxed): New option to leave the prompt
	stationary instead of forcing it to the bottom of the window.
	(erc-scrolltobottom-mode, erc-scrolltobottom-enable,
	erc-scrolltobottom-disable): Use `erc--scrolltobottom-setup' instead
	of `erc-add-scroll-to-bottom' for adding and removing local hooks and
	instead of ranging over buffers when removing them.  Also add and
	remove new hook members when `erc-scrolltobottom-all' is non-nil.
	(erc--scrolltobottom-relaxed-commands,
	erc--scrolltobottom-window-info,
	erc--scrolltobottom-post-force-commands,
	erc--scrolltobottom-relaxed-skip-commands): New internal variables.
	(erc--scrolltobottom-on-pre-command
	erc--scrolltobottom-on-post-command): New functions resembling
	`erc-possibly-scroll-to-bottom' that try to avoid scrolling repeatedly
	for no reason.
	(erc--scrolltobottom-on-pre-command-relaxed,
	erc--scrolltobottom-on-post-command-relaxed): New commands to help
	implement `erc-scroll-to-bottom-relaxed'.
	(erc--scrolltobottom-at-prompt-minibuffer-active): New function to
	scroll to bottom on window configuration changes when using the
	minibuffer.
	(erc--scrolltobottom-all): New function to scroll all windows
	displaying the current buffer.
	(erc-add-scroll-to-bottom): Deprecate this function because it is now
	unused in the default client and trivial to implement otherwise.
	(erc--scrolltobottom-setup): New generic function to perform teardown
	as well as setup depending on the state of the module's mode variable.
	Also add an implementation specifically for `erc-scrolltobottom-all'
	that locally modifies different sets of hooks depending on
	`erc-scrolltobottom-relaxed'.
	(erc--scrolltobottom-on-pre-insert): New generic function that
	remembers the last `window-start' and maybe the current screen line
	before inserting a message, in order to restore it afterward.
	(erc--scrolltobottom-confirm): New function, a replacement for
	`erc-scroll-to-bottom' that returns non-nil when it's actually
	recentered the window.  For now, used only when
	`erc-scrolltobottom-all' is enabled.
	(erc-move-to-prompt-setup): Add `erc-move-to-prompt' to
	`pre-command-hook' at a depth of 70 in the current buffer.
	(erc-keep-place-mode, erc-keep-place-enable): Change hook depth from 0
	to 85.
	(erc--keep-place-indicator-setup): Add overlay arrow `after-string' in
	non-graphical settings in case users have time stamps or other content
	occupying the left margin.
	(erc-keep-place-indicator-mode, erc-keep-place-indicator-enable):
	Change hook depth from 90 to 85 locally so as not to conflict with a
	value of t, for append.
	(erc--keep-place-indicator-on-global-module): Change hook depth from
	90 to 85 locally.
	* test/lisp/erc/erc-scenarios-scrolltobottom-relaxed.el: New file.
	* test/lisp/erc/erc-scenarios-scrolltobottom.el: New file.
	* test/lisp/erc/resources/erc-scenarios-common.el
	(erc-scenarios-common--term-size, erc-scenarios-common--run-in-term,
	erc-scenarios-common-interactive-debug-term-p,
	erc-scenarios-common-with-noninteractive-in-term): New test macro and
	supporting helper function and variables to facilitate running
	scenario-based tests in an inferior Emacs, in term-mode.
	(erc-scenarios-common--at-win-end-p,
	erc-scenarios-common--above-win-end-p,
	erc-scenarios-common--prompt-past-win-end-p,
	erc-scenarios-common--recenter-top-bottom-around,
	erc-scenarios-common--recenter-top-bottom,
	erc-scenarios-scrolltobottom--normal): New test fixture and assertion
	helper functions.
	* test/lisp/erc/resources/scrolltobottom/help.eld: New file.
	(Bug#64855)

2023-09-11  F. Jason Park  <jp@neverwas.me>

	Add optional timezone param to erc-echo-timestamp

	* etc/ERC-NEWS: Move `erc-echo-timestamp' from misc section
	to own entry, and mention option `erc-echo-timestamp-zone'.
	* lisp/erc/erc-stamp.el (erc-echo-timestamps): Mention that some
	finagling is required if enabling this option after activating the
	module.
	(erc-echo-timestamp-format): Add additional Custom choice constants
	and make the existing default one of them.
	(erc-echo-timestamp-zone): New option to specify timezone for option
	`erc-echo-timestamps' and function `erc-echo-timestamp'.
	(erc-stamp-mode, erc-stamp-enable, erc-stamp-disable): Call
	`erc-stamp--setup' instead of `erc-munge-invisibility-spec'.
	(erc-stamp--current-time): Use `current-time' instead of
	`erc-current-time'.
	(erc-add-timestamp): Improve readability slightly, and change
	`fboundp' to `functionp' to avoid signaling an error when the
	variable's value is not a symbol.
	(erc-munge-invisibility-spec): Perform teardown when boolean flag
	options, like `erc-timestamp-intangible' and `erc-echo-timestamps' are
	nil.
	(erc-stamp--setup): Call `erc-munge-invisibility-spec', possibly
	binding timestamp options to nil to force a tear down).
	(erc-stamp--last-stamp, erc-stamp--on-clear-message): New function and
	helper state variable to tell Emacs not to clear the current timestamp
	message when navigating within the same IRC message.
	(erc-echo-timestamp): Add optional `zone' parameter, to be passed
	directly to `format-time-string', when non-interactive, and massaged
	sensibly otherwise.  Set the local variable `erc-stamp--last-stamp'.
	* test/lisp/erc/erc-stamp-tests.el (erc-echo-timestamp): New test.
	(Bug#60936)

2023-09-11  F. Jason Park  <jp@neverwas.me>

	Allow login to contain NUH delimiters in erc-parse-user

	* lisp/erc/erc.el (erc--parse-user-regexp-legacy,
	erc--parse-user-regexp-pedantic): New constants.  The first is the
	original pattern that matches across line endings.  The second
	disallows multiline strings and interprets excess delimiting
	characters as part of the middle, "user" component as per RFC1459.
	The latter distinction is largely academic because most servers reject
	such logins anyway, but bridges to other protocols and future
	extensions may need to exploit this for novel uses.
	(erc--parse-user-regexp): New variable, currently set to
	`erc--parse-user-regexp-legacy'.
	(erc-parse-user): Keep original pattern as default, but do so
	indirectly via `erc--parse-user-regexp'.
	* test/lisp/erc/erc-tests.el (erc-parse-user): New test.

2023-09-11  Stefan Kangas  <stefankangas@gmail.com>

	New defgroup pixel-scroll-precision

	* lisp/pixel-scroll.el (pixel-scroll-precision): New defgroup.
	(pixel-scroll-precision-use-momentum)
	(pixel-scroll-precision-momentum-tick)
	(pixel-scroll-precision-momentum-seconds)
	(pixel-scroll-precision-momentum-min-velocity)
	(pixel-scroll-precision-initial-velocity-factor)
	(pixel-scroll-precision-large-scroll-height)
	(pixel-scroll-precision-interpolation-total-time)
	(pixel-scroll-precision-interpolation-factor)
	(pixel-scroll-precision-interpolation-between-scroll)
	(pixel-scroll-precision-interpolate-page)
	(pixel-scroll-precision-interpolate-mice): Move to above new
	defgroup.  (Bug#57970)
	* lisp/mouse.el (mouse): Remove stale comment.

2023-09-10  Jim Porter  <jporterbugs@gmail.com>

	Wait for all processes in a pipeline before resuming an Eshell command

	Previously, we only waited until the tail process was finished, but
	now, we wait for all of them.  This is more consistent with other
	shells, and prevents some cases of a process's output coming *after*
	we continued past its pipeline.

	* lisp/eshell/esh-cmd.el (eshell-resume-command): Simplify
	conditionals, and check that all the foreground processes are dead
	before resuming Eshell command.

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/pipeline-wait/multi-proc): New test.

2023-09-10  Jim Porter  <jporterbugs@gmail.com>

	Collect all processes in an Eshell pipeline, not just the head and tail

	This has the extra benefit that Eshell now only considers a pipeline
	to be done when *all* of its processes are done (previously, it
	checked only the last one in the pipeline).

	* lisp/eshell/esh-util.el (eshell-process-pair-p)
	(eshell-make-process-pair): Rename to...
	(eshell-process-list-p, eshell-make-process-list): ... these, and
	handle lists of processes.  Update callers.

	* lisp/eshell/esh-cmd.el (eshell-head-process): Use 'car'.
	(eshell-tail-process): Get the last element of the list.
	(eshell-do-pipelines): Return a list of all processes in the pipeline.
	(eshell-do-pipelines-synchronously): Return the result of the first
	command (usually t or nil).
	(eshell-execute-pipeline): Simplify.
	(eshell-do-eval): Pass all processes to 'eshell/wait'.

2023-09-10  Mauro Aranda  <maurooaranda@gmail.com>

	Fix order of `other' choice in defcustom :type

	* lisp/font-lock.el (font-lock-verbose)
	* lisp/image-mode.el (image-auto-resize)
	* lisp/gnus/message.el (message-openpgp-header): Arrange for 'other'
	to be the last choice.  (Bug#65852)

2023-09-10  Stefan Kangas  <stefankangas@gmail.com>

	Doc fix; explain what it means if comint-pager is nil

	* lisp/comint.el (comint-pager): Doc fix; explain the meaning of the
	default nil value.

2023-09-10  Mattias Engdegård  <mattiase@acm.org>

	Replace PVEC_FONT as pseudo-vector subtype upper bound

	* src/lisp.h (enum pvec_type): Add PVEC_TAG_MAX.
	* src/alloc.c (allocate_pseudovector): Use PVEC_TAG_MAX instead of
	PVEC_FONT.

2023-09-10  Michael Albinus  <michael.albinus@gmx.de>

	Fix file name completion in `shell'

	* lisp/shell.el (shell-completion-vars): Fix setting of
	`pcomplete-remote-file-ignore'.  (Bug#65705)

2023-09-10  shynur  <one.last.kiss@outlook.com>

	`dired-next-line' movement style (bug#65621)

	Point will skips empty lines and optionally goto the other
	end when encountering a boundary.
	* lisp/dired.el (dired-movement-style): Control whether to
	skip empty lines and whether to cycle through non-empty
	lines.
	* lisp/dired.el (dired-next-line): Add a new movement style
	controlled by `dired-movement-style'.
	* etc/NEWS (dired-movement-style):

2023-09-10  Felix Dietrich  <felix.dietrich@sperrhaken.name>

	Make ‘mailcap-viewer-passes-test’ return t for viewers without tests

	* lisp/net/mailcap.el (mailcap-viewer-passes-test):
	Make ‘mailcap-viewer-passes-test’ follow its docstring and return t
	for viewers without a test.  (Bug#65224)
	* test/lisp/net/mailcap-tests.el
	(mailcap-viewer-passes-test-w/o-test-returns-t): New test.

2023-09-10  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfntfont.c (sfntfont_probe_widths): Prevent widths of
	glyphs representing control characters from affecting the
	average width.

2023-09-10  Po Lu  <luangruo@yahoo.com>

	Correct many instances of ``allows to''

	Refer to:
	lists.gnu.org/archive/html/emacs-devel/2016-01/msg01598.html

	* doc/emacs/frames.texi (Tab Bars):

	* doc/emacs/maintaining.texi (Tag Syntax):

	* doc/lispref/compile.texi (Native Compilation):

	* doc/lispref/control.texi (Destructuring with pcase Patterns):

	* doc/lispref/display.texi (Overlay Properties, Glyphless Chars):

	* doc/lispref/frames.texi (Size Parameters, Layout Parameters)
	(Child Frames):

	* doc/lispref/minibuf.texi (Minibuffer Windows):

	* doc/lispref/processes.texi (Asynchronous Processes):

	* doc/lispref/windows.texi (Precedence of Action Functions)
	(Mouse Window Auto-selection):

	* doc/misc/autotype.texi (Autoinserting):

	* doc/misc/efaq.texi (New in Emacs 28):

	* doc/misc/idlwave.texi (Examining Variables):

	* doc/misc/ses.texi (Quick Tutorial, Standard formula functions):

	* doc/misc/tramp.texi (External methods, FUSE-based methods):

	* lisp/comint.el (comint-insert-previous-argument-from-end):

	* lisp/emacs-lisp/rmc.el (read-multiple-choice):

	* lisp/gnus/gnus-util.el:

	* lisp/mail/rmailsum.el (rmail-summary-progressively-narrow):

	* lisp/mouse.el (mouse-drag-track):

	* lisp/net/tramp-sudoedit.el:

	* lisp/obsolete/landmark.el:

	* lisp/org/org.el (org-startup-truncated, org-file-apps):

	* lisp/pixel-scroll.el (pixel-scroll-precision-mode):

	* lisp/progmodes/cperl-mode.el (cperl-praise):

	* lisp/simple.el (yank-from-kill-ring, kill-visual-line):

	* lisp/window.el (delete-window-choose-selected):

	* src/ChangeLog.11:

	* src/xdisp.c (syms_of_xdisp):

	* src/xterm.c (handle_one_xevent): The construct ``allows to
	<infinitive>'' is not English inasmuch as no direct object to
	``allows'' is provided.  Correct and rephrase each instance of such a
	construct within our documentation and commentary.

2023-09-09  Yuan Fu  <casouri@gmail.com>

	Fix treesit-node-at wrt local parsers

	* lisp/treesit.el (treesit-node-at): Don't compute language at point
	first.  Because treesit-language-at uses treesit-node-at with a
	language argument. Only call treesit-language-at when PARSER-OR-LANG
	is nil.

2023-09-09  Mattias Engdegård  <mattiase@acm.org>

	Add byte-compiler warning about useless trailing cond clauses

	Warn about clauses after the default clause, as in

	    (cond ((= x 0) (say "none"))
	          (t (say "some"))
	          (say "goodbye"))

	because they are very much an indicator of a mistake (such as
	misplaced brackets), and since they are deleted by the optimizer, any
	other warnings there are lost and the user wouldn't know that
	something is wrong otherwise.

	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Add warning.
	* etc/NEWS: Announce.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-test--with-suppressed-warnings): Add test case.

2023-09-09  Mattias Engdegård  <mattiase@acm.org>

	Don't cache warnings between bytecode compilation tests

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--with-fresh-warnings): New macro.
	(test-byte-comp-compile-and-load, bytecomp--with-warning-test):
	Use it.

2023-09-09  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	b8a8106fa1a ; Add missing space in the manual
	5b906b62157 Fix defcustom :type of ielm-indirect-setup-hook
	82af484ec15 ; Two updates of etc/TODO
	0ab2823f518 ; Describe in PROBLEMS 2 problems with keyboard input
	4e7112ab211 ; Fix inaccuracy in ELisp reference manual
	34bbb6c8d21 Document NonGNU ELPA in FAQ
	2af092741e5 Fix remote path setting in Eshell
	4613575d97f ; * lisp/completion.el (dynamic-completion-mode): Fix las...
	2f0f33fbf9d Update docs for (co-)maintainer changes
	b068fcd4a31 * doc/lispref/strings.texi (Text Comparison): Fix typo (b...
	2e2a5f8118c Adapt Tramp manual
	d32f00a35bc Improve docstring of message-sendmail-envelope-from
	1a668cda8bc Unbreak builds with CHECK_STRUCTS.
	77b6e9bb17b Improve documentation of EPG
	d3382f94714 ; * lisp/completion.el (dynamic-completion-mode): Doc fix.
	1458daf3164 Avoid crashes on macOS with context menus

	# Conflicts:
	#	src/pdumper.c

2023-09-09  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	bc56da92d8d ; Fix error in 'tex-recenter-output-buffer'
	d17c5adc057 Fix regexp for recognizing PBM images
	9e9f61866e7 Improve wording in ELisp manual
	7427efa033b Fix typo (Bug#65764)
	59c66244080 ; * lisp/ido.el (ido-completion-buffer): Fix :type (bug#6...
	4ec4b18c2a0 Fix libgccjit build on Haiku
	80bdcf8f351 (regexp-tests-backtrack-optimization): Mark it as failing
	8a9e653cc82 ; Add regression test for bug#65726
	6fad73d7cc5 * src/regex-emacs.c (mutually_exclusive_p): Fix inf-loop ...
	1d3d4196073 ; * lisp/files.el (save-some-buffers-functions): Doc fix ...
	42b14c6e5bb Bump seq version to 2.24
	ff5190a174f Add note on ELPA to admin/notes/bug-triage
	f1e4cbe72aa ; * etc/PROBLEMS: Minor wording fix.
	fd5593c7f25 * etc/PROBLEMS: Mention bug#65432 and its remedy.
	dd896ea1e62 Ignore errors when checking for object initializers (bug#...
	3550f44c17c ; Fix typos
	5b246b9b817 * CONTRIBUTE: Document making ChangeLogs with Magit.
	0bd46619413 Doc fixes for obsolete functions and variables
	524c0c34f24 ; * lisp/ffap.el (ffap-rfs-regexp): Fix :type (bug#65698).
	f48dccc4675 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	71a85e22668 A revision to the Widget manual
	dbbcf4a6599 Fix fontification of " in edit-kbd-macro

	# Conflicts:
	#	test/src/regex-emacs-tests.el

2023-09-09  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android-asset.h (android_asset_read_internal): Return an
	error indication if an exception arises while reading.
	(AAsset_getBuffer): Free BUFFER using the C library free
	function.

2023-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): Fix bug#65833

	For some reason the intervals case failed to push the var to
	`loop-for-bindings` before pushing to `loop-for-sets`.
	AFAICT this was the only place where we made that mistake.

2023-09-09  Po Lu  <luangruo@yahoo.com>

	Micro-optimize sfnt_interpret_trap

	* src/sfnt.c (AVOID) [TEST]: Define to its standard value in
	lisp.h.
	(sfnt_interpret_trap): Label AVOID.

2023-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/tempo.el (tempo-insert): Use `pcase` and `dolist`

	* lisp/tempo.el (tempo-find-match-string): Simplify

2023-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/tempo.el: Remove left over uses of the dynbind dialect

	* lisp/tempo.el (tempo-define-template): Use a real closure.
	(tempo-insert, tempo-build-collection): Use lexical scoping.

2023-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	(tempo-user-elements): Make it a proper hook

	* lisp/tempo.el (tempo-user-element-functions): Rename from
	`tempo-user-elements`.
	(tempo-user-elements): Preserve as obsolete alias.
	(tempo-is-user-element): Use `run-hook-with-args-until-success`.

2023-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/tempo.el: Remove redundant `:group`s and use #'

2023-09-08  Yuan Fu  <casouri@gmail.com>

	Extract c-ts-mode--feature-list out

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--feature-list): New variable.

2023-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/pcomplete.el (pcomplete-completions-at-point): Add hack for bug#65089

	Improve our guess for `end` and `buftext` when point is not at the end
	of the current "thing to complete".

2023-09-08  Stefan Kangas  <stefankangas@gmail.com>

	Mark two flyspell functions as internal

	* lisp/textmodes/flyspell.el: Minor doc fix.
	(flyspell--mode-on, flyspell--mode-off): Rename from
	'flyspell-mode-on' and 'flyspell-mode-off'.  The old names are
	preserved as obsolete aliases.

2023-09-08  Eli Zaretskii  <eliz@gnu.org>

	Avoid errors in EWW when EWW is killed

	* lisp/net/eww.el (eww-render): Don't signal errors if the page
	being rendered was closed.  (Bug#65678)

2023-09-08  Po Lu  <luangruo@yahoo.com>

	Fix typos

	* src/android.c (android_set_task_name):

	* src/sfnt.c (main): Test if fd < 0, not fd < 1.

2023-09-08  Michael Albinus  <michael.albinus@gmx.de>

	Fix Perl script in Tramp

	* lisp/net/tramp-sh.el (tramp-perl-file-name-all-completions):
	Fix Perl script.  (Bug#65744)

2023-09-08  Po Lu  <luangruo@yahoo.com>

	Properly detect content files in Doc View

	* lisp/doc-view.el (doc-view-mode): Detect if file name starts
	with /content or /assets, and don't regard it as available to
	subprocesses in that case.

2023-09-08  Po Lu  <luangruo@yahoo.com>

	Fix typos in last change

	* src/font.c (font_dynamic_unparse_xlfd): Remove unused variable.
	(Ffont_xlfd_name): Initialize name.

2023-09-08  Po Lu  <luangruo@yahoo.com>

	Permit XLFD names to exceed 255 characters

	* doc/lispref/display.texi (Low-Level Font)
	<font-xlfd-name>: Document new argument `long-xlfds'.

	* etc/NEWS: Mention removal of XLFD length restrictions.

	* src/font.c (font_build_object): Dynamically allocate XLFD,
	permitting them to surpass 255 characters in length.
	(font_parse_xlfd_1): Cease rejecting XLFDs more than 255
	characters in length.
	(font_dynamic_unparse_xlfd): New function.  Like
	font_unparse_xlfd, but allocate the XLFD dynamically.
	(font_delete_unmatched): Dynamically allocate XLFD if necessary.
	(Ffont_xlfd_name): New arg LONG_XLFDs.  If t, return a
	dynamically allocated XLFD.  All callers changed.

	* src/font.h: Update prototypes.

	* src/fontset.c (Fnew_fontset): Dynamically allocate XLFD when
	establishing fontset name.

2023-09-08  Yuan Fu  <casouri@gmail.com>

	Fix treesit-thing-definition

	* lisp/treesit.el (treesit-thing-definition): Don't modify
	treesit-thing-settings itself.

2023-09-08  Yuan Fu  <casouri@gmail.com>

	Fix treesit-thing-settings for c++-ts-mode (bug#65810)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--thing-settings): New variable.
	(c-ts-base-mode): Use c-ts-mode--thing-settings.

2023-09-08  Yuan Fu  <casouri@gmail.com>

	Add Ftreesit_parser_tag

	* lisp/treesit.el (treesit-parser-tag): Add.
	* src/treesit.c (Ftreesit_parser_tag): Add.

2023-09-08  Yuan Fu  <casouri@gmail.com>

	Change treesit-local-parsers-in to treesit-local-parsers-on

	To improve consistency. We already have treesit-node-at and
	treesit-node-on.

	* doc/lispref/parsing.texi (Multiple Languages): Update manual.
	* lisp/treesit.el (treesit-local-parsers-on): Change to in.
	(treesit-font-lock-fontify-region): Change to in.

2023-09-08  Stefan Kangas  <stefankangas@gmail.com>

	Error when trying to make nil or t obsolete

	* lisp/emacs-lisp/byte-run.el (make-obsolete, make-obsolete-variable):
	Signal error if the symbol to make obsolete is nil or t.  (Bug#62248)
	(byte-run--constant-obsolete-warning): New function.
	* test/lisp/emacs-lisp/byte-run-tests.el: New file.

2023-09-07  Stefan Kangas  <stefankangas@gmail.com>
	    Stefan Monnier  <monnier@iro.umontreal.ca>

	Add note regarding `seq` on GNU ELPA

	* lisp/emacs-lisp/seq.el: Add note regarding seq on GNU ELPA.

2023-09-07  Lämppi Lütti  <lamppilutti@protonmail.com>  (tiny change)

	Fix detection of vtable start and end

	* lisp/emacs-lisp/vtable.el (vtable-beginning-of-table)
	(vtable-end-of-table): Fix detection of vtable limits.  (Bug#58712)

2023-09-07  Mattias Engdegård  <mattiase@acm.org>

	Translate backslash-saturated regexp to rx

	* lisp/minibuffer.el (minibuffer--regexp-propertize):
	The original regexp had 83 backslashes in 147 characters which may be
	some kind of record.  This transformation cuts it down to 6, and the
	generated regexp string is about 14 % shorter.

2023-09-07  Mattias Engdegård  <mattiase@acm.org>

	* admin/unidata/emoji-zwj.awk: More efficient code generation

	Hoist the `eval-when-compile` to encompass the entire list, since
	backquote forms aren't automatically evaluated at compile time.
	This results in a single constant list in the generated code, and
	much less actual code.

2023-09-07  john muhl  <jm@pub.pink>

	Fix java-ts-mode tests (bug#65738)

	* admin/notes/tree-sitter/build-module/batch.sh (languages):
	Add Java.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode): Pass a list
	to 'treesit-thing-settings'.

2023-09-07  martin rudalics  <rudalics@gmx.at>

	New minor mode 'minibuffer-regexp-mode'

	This mode is for editing regexps in minibuffer, it highlights
	parens via `show-paren-mode' and `blink-matching-paren' in a
	user-friendly way, avoids reporting false paren mismatches,
	and makes sexp navigation more intuitive.
	* lisp/minibuffer.el (minibuffer-regexp-mode)
	(minibuffer--regexp-primed, minibuffer--regexp-prompt-regexp):
	New variables.
	(minibuffer--regexp-propertize, minibuffer--regexp-primed)
	(minibuffer--regexp-before-change)
	(minibuffer--regexp-after-change)
	(minibuffer--regexp-post-self-insert, minibuffer--regexp-setup)
	(minibuffer--regexp-exit, minibuffer-regexp-mode): New functions.
	(minibuffer-regexp-prompts): New option.

	* doc/lispref/minibuf.texi (Minibuffer Misc): Document the new
	mode and its option.

	* etc/NEWS: Announce the new mode.

	Bug#50766

2023-09-07  Po Lu  <luangruo@yahoo.com>

	Tag NEWS

	* etc/NEWS: Tag Android as documented, given that all pertinent
	documentation has been written.

2023-09-07  Po Lu  <luangruo@yahoo.com>

	Port Proced to Android

	* configure.ac (HAVE_PROCFS): Define if opsys is `android'.

	* src/android.c (android_set_task_name): New function.
	(android_run_select_thread, android_run_debug_thread): Set the
	name of the LWP for debugging purposes.

	* src/process.c (create_process): Set F_SETPIPE_SZ on Android in
	addition to GNU/Linux.

	* src/sysdep.c (procfs_ttyname, system_process_attributes)
	[__ANDROID__]: Enable procfs_ttyname on Android systems.

2023-09-07  Po Lu  <luangruo@yahoo.com>

	Remedy bug#63395

	* src/gtkutil.c (xg_update_frame_menubar): Avoid scaling the
	requisiton height twice.  (bug#63395)

2023-09-07  Mauro Aranda  <maurooaranda@gmail.com>

	Fix perl-mode indentation after a hanging paren

	* lisp/progmodes/perl-mode.el (perl-hanging-paren-p): Allow
	comments.  (Bug#34245)
	* test/lisp/progmodes/perl-mode-tests.el (perl-test-bug-34245): New
	test.

2023-09-06  Dmitry Gutov  <dmitry@gutov.dev>

	* lisp/progmodes/project.el: Bump version to 0.10.0.

2023-09-06  Dmitry Gutov  <dmitry@gutov.dev>

	(project-try-vc): When found non-VC project root, still search for the backend

	* lisp/progmodes/project.el (project-try-vc): When finding a
	non-VC project root, still try to search for the containing
	responsible VC backend, if any (bug#65704).

2023-09-06  Stefan Kangas  <stefankangas@gmail.com>

	Remove compat code from flyspell

	* lisp/textmodes/flyspell.el: Delete redundant autoloads.

2023-09-06  Mattias Engdegård  <mattiase@acm.org>

	indian.el: fix sorting predicate

	* lisp/leim/quail/indian.el
	(quail-tamil-itrans-compute-syllable-table): Add missing comparison.
	Patch from Visuwesh; bug found by an experimental tool.

2023-09-06  Theodor Thornhill  <theo@thornhill.no>

	Use *p in interactive form in transpose-chars

	* lisp/simple.el (transpose-chars): Use '*p' instead of '*P' like the
	other transpose-* functions.  (Bug#60157)

2023-09-06  Yuan Fu  <casouri@gmail.com>

	Support local parser in treesit-node-at/on

	* lisp/treesit.el (treesit-node-at)
	(treesit-node-on): Support local parser.

2023-09-06  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode BSD style indentation

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--indent-styles): Add else_clause.

2023-09-06  Yuan Fu  <casouri@gmail.com>

	Support tree-sitter local parsers

	* doc/lispref/parsing.texi (Multiple Languages): Update manual.
	* lisp/treesit.el (treesit-range-settings): Add LOCAL-P to range
	setting.
	(treesit-range-rules): Support :local keyword.
	(treesit-local-parsers-at)
	(treesit-local-parsers-in)
	(treesit--update-ranges-local): New functions.
	(treesit-update-ranges)
	(treesit-font-lock-fontify-region)
	(treesit--indent-1): Support local parsers and prioritize it over
	global parsers.

2023-09-06  Yuan Fu  <casouri@gmail.com>

	Allow filter by tag in treesit-parser-list

	* doc/lispref/parsing.texi: Update manual.
	* src/treesit.c (Ftreesit_parser_create): Disallow using t for tag.
	(Ftreesit_parser_list): Add LANGUAGE and TAG parameter.

2023-09-06  Yuan Fu  <casouri@gmail.com>

	Use tagged parser in c-ts-mode

	Now that we have tags for parsers, use that instead of the
	load-name-override hack.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--emacs-c-range-query): Change parser to C.
	(c-ts-mode--emacs-set-ranges): Use the tagged parser.
	(c-ts-mode): Create the tagged parser.

2023-09-06  Yuan Fu  <casouri@gmail.com>

	Add tag to tree-sitter parsers

	* doc/lispref/parsing.texi (Using Parser): Update manual.
	* lisp/treesit.el (treesit-buffer-root-node)
	* src/treesit.c (make_treesit_parser)
	* src/treesit.c (Ftreesit_parser_create): Add TAG parameter.
	(treesit_resolve_node): Create a parser with nil tag.
	* src/treesit.h (Lisp_TS_Parser): Add TAG field.

2023-09-06  Po Lu  <luangruo@yahoo.com>

	Properly run emacsclient under Android if DISPLAY is set

	* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap): Make
	dimensions final, since they are never changed after the
	constructor.

	* lib-src/emacsclient.c (decode_options): If --display is not
	provided, always set display to `android' even if DISPLAY is
	provided.

	* lisp/net/browse-url.el (browse-url): Cease setting DISPLAY
	under Android.

	* src/callproc.c (getenv_internal, make_environment_block):
	Don't afford DISPLAY special treatment under Android.

2023-09-05  Justin Burkett  <justin@burkett.cc>

	Fix popup with no space

	Fixes #317

2023-09-05  Spencer Baugh  <sbaugh@janestreet.com>

	Correctly handle common prefixes in substring completion

	Substring completion would previously not complete the longest common
	substring if that substring was a prefix of all the completion
	alternatives.  Now it does.  An explanation of this bug

	Substring completion is implemented by passing the `prefix' symbol as
	part of the pattern passed to completion-pcm--merge-completions.  This
	symbol is supposed to cause completion-pcm--merge-completions to
	"grow" a completion of a common substring only from the "right" of the
	symbol (a common suffix), not from the "left" of the symbol (a common
	prefix).  Yes, this is the opposite of what the name `prefix' would
	imply.

	When processing a symbolic element of the pattern,
	completion-pcm--merge-completions first finds the common prefix of all
	the completions in that part of the pattern (using try-completion).
	Then for `prefix' and other elements which want to complete a common
	suffix, the common prefix is removed from each element and then the
	common suffix is calculated with completion--common-suffix.

	If the common prefix covers the entirety of all the alternatives
	(i.e. when "unique" is true in the code), it's also a common suffix.
	In that case, the common suffix calculation (if it runs) is basically
	a no-op which will produce an empty string, since we removed the
	common prefix before running it.

	Before this change, `prefix' elements would unconditionally discard
	the common prefix, which produced the wrong result in the case that
	common prefix == common suffix.  For example:

	  (completion-pcm--merge-completions '("ab" "ab") '(prefix "b"))
	  -> ("b")

	Now we detect this situation and include the common prefix in this
	case for `prefix' elements.  Then we get:

	  (completion-pcm--merge-completions '("ab" "ab") '(prefix "b"))
	  -> ("b" "a")

	which is correct.

	* lisp/minibuffer.el (completion-pcm--merge-completions): Don't ignore
	a common suffix in a `prefix' pattern element when it's also a common
	prefix.
	* test/lisp/minibuffer-tests.el (completion-substring-test-5): Add a
	test.

2023-09-05  Stefan Kangas  <stefankangas@gmail.com>

	Make `dns-mode` fontify quoted values correctly

	* lisp/textmodes/dns-mode.el (dns-mode-syntax-table): Fontify
	quoted values correctly.  (Bug#62214)
	Suggested by Trent W. Buck <trentbuck@gmail.com>.

2023-09-05  Daniel Martín  <mardani29@yahoo.es>

	Improve completion of treesit-check-indent command

	* lisp/treesit.el (treesit--read-major-mode): Helper function to
	provide completion for most major modes.
	(treesit-check-indent): Use the new interactive spec and improve the
	docstring.  (Bug#60001)

2023-09-05  João Távora  <joaotavora@gmail.com>

	Flymake: speed up mode-line display with simple cache

	When scrolling heavily (perhaps holding down C-n), the function
	'flymake-mode-line-counter' showed very prominently in the memory and
	CPU profiles.

	Using a cache here was trivial, if not particularly pretty.  The
	function all but disappears from the profiles afterwards.

	* lisp/progmodes/flymake.el (flymake--mode-line-counter-cache):
	New variable.
	(flymake--publish-diagnostics): Flush cache aggressively.
	(flymake-mode-line-error-counter): Adjust.
	(flymake--mode-line-counter-1): New helper from earlier
	flymake--mode-line-counter.
	(flymake--mode-line-counter): Use cache.

2023-09-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-lib.el (cl-old-struct-compat-mode): Mark as obsolete

	* lisp/emacs-lisp/cl-preloaded.el: Emit a message before enabling
	`cl-old-struct-compat-mode`.

	See bug#63282.

2023-09-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/pp.el (pp-28): Fix typo

	Reported by Mattias Engdegård <mattias.engdegard@gmail.com>.

2023-09-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs

2023-09-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/edebug.el (edebug-list-form): Don't gate so eagerly

	The `edebug-gate` is fairly heavy handed, so don't activate it
	just because we seem to have found what looks like a valid form.

2023-09-05  Stefan Kangas  <stefankangas@gmail.com>

	Display directory when `dired-omit-mode` is first enabled

	* lisp/dired-x.el (dired-omit-expunge): Display the directory name
	when 'dired-omit-mode' is first enabled.  (Bug#64705)

2023-09-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/lispref/functions.texi (Advising Named Functions): Clarify " no advice"

2023-09-05  Po Lu  <luangruo@yahoo.com>

	Minor adjustments to Android port stubs

	* src/androidfns.c (Fx_display_backing_store): Return
	`when-mapped' in place of `always', since the former better
	reflects Android port behavior.
	(syms_of_androidfns) <always>: Delete defsym.
	<when-mapped>: New defsym.

	* src/term.c (Fsuspend_tty, Fresume_tty): Properly signal errors
	on Android rather than quietly disregarding calls.

2023-09-05  Jim Porter  <jporterbugs@gmail.com>

	Inherit 'sieve-mode' faces from 'font-lock'

	These Sieve faces were already a close mapping onto the Font Lock
	ones, so this should usually look the same to users with the default
	theme.  However, this makes it easier to theme these faces (just
	define the usual 'font-lock-*-face' colors you want) and also fixes a
	few edge cases (bug#62370).

	* lisp/net/sieve-mode.el (sieve-control-commands)
	(sieve-action-commands, sieve-test-commands, sieve-tagged-arguments):
	Inherit from 'font-lock' faces.

2023-09-05  Po Lu  <luangruo@yahoo.com>

	Avoid virtual function dispatch overhead

	* src/androidvfs.c (android_saf_move_document): Circumvent JNI
	dynamic function dispatch on call to final method.

2023-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el (cl-flet): Remove `&name` for (SYM EXP) case

	The new/current Edebug spec gives the name `SYM@cl-flet@NN` to the
	expression building that function rather than to the body of that
	function as would be expected, leading to misleading code coverage.

	This basically reverts 999de2a5ea36, cc0f546825e0, and 18c85306ac21 :-(

2023-09-04  Protesilaos Stavrou  <info@protesilaos.com>

	Add 'appt-notification' face (Bug#61661)

	* lisp/calendar/appt.el (appt-notification): Declare the new face.
	(appt-check): Implement the new face.
	* etc/NEWS: Announce the new face.

2023-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/tab-bar.el (cl--set-substring): Remove left-over autoload

	And remove left-over `require` of `seq` while at it.

2023-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	Move `setf substring` to cl-lib since it relies on it (bug#60102)

	* lisp/emacs-lisp/cl-lib.el (substring): Move gv-expander here...
	* lisp/emacs-lisp/gv.el (substring): ...from here.

2023-09-04  João Távora  <joaotavora@gmail.com>
	    Filippo Argiolas  <filippo.argiolas@gmail.com>

	Eglot: add new chapter about Elisp extensions to Eglot manual

	bug#65418


	* doc/misc/eglot.texi (Extending Eglot): New chapter.

2023-09-04  João Távora  <joaotavora@gmail.com>
	    Filippo Argiolas  <filippo.argiolas@gmail.com>

	Eglot: reorganize Elisp API section, export new functions

	bug#65418


	* lisp/progmodes/eglot.el (Obsolete aliases): New section, move
	all obsolete aliases here.
	(eglot-uri-to-path)
	(eglot-path-to-uri)
	(eglot-range-region)
	(eglot-server-capable)
	(eglot-server-capable-or-lose): New functions and backward compatibility
	aliases.

2023-09-04  Stefan Kangas  <stefankangas@gmail.com>

	Revert use of seq-count in shr-count

	* lisp/net/shr.el (shr-count): Prefer handwritten code to using
	'seq-count', as it's more performant.
	Problem reported by Mattias Engdegård <mattiase@acm.org>.

2023-09-04  Stefan Kangas  <stefankangas@gmail.com>

	Use seq-count in three functions

	* lisp/net/shr.el (shr-count):
	* lisp/progmodes/idlwave.el (idlwave-count-memq): Use seq-count.
	(idlwave-count-eq): Use seq-count.  Make obsolete, as it is unused.

2023-09-04  Stefan Kangas  <stefankangas@gmail.com>

	Use new ERT `skip-when` macro in tests

	* test/lisp/autorevert-tests.el
	(auto-revert-test02-auto-revert-deleted-file):
	* test/lisp/emacs-lisp/benchmark-tests.el (benchmark-tests):
	* test/lisp/emacs-lisp/find-func-tests.el
	(find-func-tests--library-completion):
	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test/kill-pipeline):
	* test/lisp/filenotify-tests.el (file-notify-test11-symlinks):
	* test/lisp/ibuffer-tests.el (ibuffer-0autoload):
	* test/lisp/international/ucs-normalize-tests.el
	(ucs-normalize-part1):
	* test/lisp/net/network-stream-tests.el (echo-server-nowait)
	(connect-to-tls-ipv4-nowait, connect-to-tls-ipv6-nowait)
	(open-network-stream-tls-wait, open-network-stream-tls-nowait)
	(open-network-stream-tls, open-network-stream-tls-nocert)
	(open-gnutls-stream-new-api-nowait)
	(open-gnutls-stream-old-api-nowait):
	* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-10483)
	(cperl-test-hyperactive-electric-else):
	* test/lisp/progmodes/elisp-mode-tests.el
	(eval-last-sexp-print-format-sym-echo)
	(eval-last-sexp-print-format-small-int-echo)
	(eval-last-sexp-print-format-large-int-echo)
	(eval-defun-prints-edebug-when-instrumented):
	* test/lisp/progmodes/python-tests.el (python-ffap-module-path-1):
	* test/lisp/shadowfile-tests.el (shadow-test00-clusters)
	(shadow-test01-sites, shadow-test02-files)
	(shadow-test03-expand-cluster-in-file-name)
	(shadow-test04-contract-file-name, shadow-test05-file-match)
	(shadow-test06-literal-groups, shadow-test07-regexp-groups)
	(shadow-test08-shadow-todo, shadow-test09-shadow-copy-files):
	* test/lisp/simple-tests.el
	(eval-expression-print-format-sym-echo)
	(eval-expression-print-format-small-int-echo)
	(eval-expression-print-format-large-int-echo):
	* test/lisp/term-tests.el (term-simple-lines)
	(term-carriage-return, term-line-wrap, term-colors)
	(term-colors-bold-is-bright, term-cursor-movement)
	(term-scrolling-region, term-set-directory)
	(term-line-wrapping-then-motion, term-to-margin):
	* test/lisp/thread-tests.el
	(thread-tests-list-threads-error-when-not-configured):
	* test/lisp/vc/vc-tests.el (backend):
	* test/manual/scroll-tests.el (scroll-tests-scroll-margin-0)
	(scroll-tests-scroll-margin-negative)
	(scroll-tests-scroll-margin-max)
	(scroll-tests-scroll-margin-over-max)
	(scroll-tests-scroll-margin-whole-window):
	* test/misc/test-custom-libs.el (test-custom-libs):
	* test/src/emacs-module-tests.el (module/async-pipe):
	* test/src/fileio-tests.el (fileio-tests--odd-symlink-chars):
	* test/src/filelock-tests.el (filelock-tests-lock-spoiled)
	(filelock-tests-file-locked-p-spoiled)
	(filelock-tests-unlock-spoiled)
	(filelock-tests-kill-buffer-spoiled)
	(filelock-tests-detect-external-change):
	* test/src/image-tests.el
	(image-tests-image-size/error-on-nongraphical-display)
	(image-tests-image-mask-p/error-on-nongraphical-display)
	(image-tests-image-metadata/error-on-nongraphical-display):
	* test/src/process-tests.el (make-process/mix-stderr)
	(process-tests/fd-setsize-no-crash/make-network-process)
	(process-tests/fd-setsize-no-crash/make-serial-process):
	Use ERT `skip-when` macro in tests.

2023-09-04  Stefan Kangas  <stefankangas@gmail.com>

	Add `skip-when` macro to `ert-deftest`

	This can help avoid some awkward test skip conditions.

	For example, this triple negation:
	    (skip-unless (not noninteractive))

	Can be written as the simpler:
	    (skip-when noninteractive)

	* lisp/emacs-lisp/ert.el (ert-deftest): Add new 'skip-when' macro.
	(ert--skip-when): New internal function.
	* doc/misc/ert.texi (Tests and Their Environment): Document above
	new macro.
	* test/lisp/emacs-lisp/ert-tests.el (ert-test-skip-when): New test.

2023-09-04  Alan Mackenzie  <acm@muc.de>

	* etc/NEWS (static-if): Clarify the entry.

2023-09-04  Alan Mackenzie  <acm@muc.de>

	Correct the handling of symbols with position in equal

	* src/fns.c (internal_equal): Only regard symbols with position
	as their symbols when symbols-with-pos-enabled is non-nil.

	* doc/lispref/symbols.texi (Symbols with Position): Expand the
	description of symbols with position, in particular the way
	they work with eq and equal.

	* doc/lispref/objects.texi (Equality Predicates): Describe how
	eq and equal handle symbols with position.

	* test/src/fns-tests.el (fns-tests-equal-symbols-with-position):
	New tests for symbols with position.

2023-09-04  Gene Goykhman  <gene@indigo1.com>

	Announce user option tramp-completion-multi-hop-methods

	* doc/misc/tramp.texi (Ad-hoc multi-hops):
	Add tramp-completion-multi-hop-methods.

	* etc/NEWS: New user option tramp-completion-multi-hop-methods.

2023-09-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2023-09-04  Po Lu  <luangruo@yahoo.com>

	Correct deadlock in Android port

	* java/org/gnu/emacs/EmacsService.java (updateCursorAnchorInfo):
	Delete extraneous whitespace.
	(updateExtractedText): Encase synchronous IM manager operation
	in deadlock prevention mechanism.

2023-09-04  João Távora  <joaotavora@gmail.com>

	Revert "Eglot: reorganize Elisp API section, export new functions"

	This reverts commit 726499305b50ff75979a9067d411b27adf7d495e.

	One of the co-authors doesn't yet have a FSF copyright assignment.

2023-09-04  João Távora  <joaotavora@gmail.com>

	Revert "Eglot: add new chapter about Elisp extensions to Eglot manual"

	This reverts commit 2a66334bada5173f351e452f40d4289b5e06f04c.

	One of the co-authors doesn't yet have a FSF copyright assignment.

2023-09-04  João Távora  <joaotavora@gmail.com>
	    Filippo Argiolas  <filippo.argiolas@gmail.com>

	Eglot: add new chapter about Elisp extensions to Eglot manual

	bug#65418


	* doc/misc/eglot.texi (Extending Eglot): New chapter.

2023-09-04  João Távora  <joaotavora@gmail.com>
	    Filippo Argiolas  <filippo.argiolas@gmail.com>

	Eglot: reorganize Elisp API section, export new functions

	bug#65418


	* lisp/progmodes/eglot.el (Obsolete aliases): New section, move
	all obsolete aliases here.
	(eglot-uri-to-path)
	(eglot-path-to-uri)
	(eglot-range-region)
	(eglot-server-capable)
	(eglot-server-capable-or-lose): New functions and backward compatibility
	aliases.

2023-09-03  Jonas Bernoulli  <jonas@bernoul.li>

	Make emoji commands compatible with repeat and repeat-complex-command

	* lisp/international/emoji.el (emoji-search): Read user input
	inside 'interactive'.
	* (emoji-insert-glyph): Determine glyph inside 'interactive',
	using 'emoji--recent' when not invoked from one of its transient
	prefixes but using 'recent' or 'recent-complex-command'.

2023-09-03  Philipp Stephani  <phst@google.com>

	Fix Edebug specification for 'cl-define-compiler-macro'.

	* lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro): Give the
	instrumented name a suffix to make it unique.  Otherwise it will clash
	with the name of the main function.

2023-09-03  Stefan Kangas  <stefankangas@gmail.com>

	checkdoc: Don't warn for () in cl-defmacro args

	Seen with, for example:

	    (cl-defmacro foo (bar () &body baz) ...)

	* lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
	Improve support for `cl-defmacro' by ignoring "nil" in parameter list.

2023-09-03  Alan Mackenzie  <acm@muc.de>

	New documentation for static-if.

	* doc/lispref/control.texi (Conditional Compilation): New
	section documenting static-if.

2023-09-03  Alan Mackenzie  <acm@muc.de>

	New conditional compilation macro static-if.

	* etc/NEWS: Record the new macro.

	* lisp/subr.el (static-if): New macro.

2023-09-03  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsService.java (browseUrl): Confer
	rights to write the URI indefinitely.

2023-09-03  Mauro Aranda  <maurooaranda@gmail.com>

	Fix defcustoms in filesets.el (Bug#65708)

	* lisp/filesets.el (filesets-browse-dir-function)
	(filesets-open-file-function filesets-save-buffer-function)
	(filesets-commands filesets-external-viewers): Don't override default
	value for the function widget with an invalid default value.
	Remove redundant ":" in tag.
	Fix default values for choice and list widgets.

2023-09-03  Jim Blandy  <jimb@red-bean.com>

	Fix indentation in `syntax-ppss'

	* lisp/emacs-lisp/syntax.el: Fix indentation in
	`syntax-ppss'.  (Bug#58665)

2023-09-03  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/vc/vc-git.el (vc-git-annotate-switches): Add useful tip.

2023-09-03  Stefan Kangas  <stefankangas@gmail.com>

	Replace completion--some with seq-some

	This is safe, as 'seq' is preloaded before 'minibuffer'.
	* lisp/loadup.el ("minibuffer"): Document 'seq' dependency.
	* lisp/minibuffer.el (completion--some): Remove.  Replace all uses
	with 'seq-some'.

2023-09-03  Mattias Engdegård  <mattiase@acm.org>

	Move `wholenump` alias definition

	* src/data.c (syms_of_data): From here...
	* lisp/subr.el (wholenump): ...to here, with the other aliases.

2023-09-03  Stefan Kangas  <stefankangas@gmail.com>

	Prefer reusing seq-remove in reftex

	* lisp/textmodes/reftex.el (reftex-remove-symbols-from-list): Make
	obsolete in favor of 'seq-remove'.  Update single caller.

2023-09-03  Joseph Turner  <joseph@breatheoutbreathe.in>

	Don't native compile lock files

	* lisp/emacs-lisp/package.el (package--delete-directory):
	Exclude lock files in regex.  (Bug#65666)

2023-09-03  Joseph Turner  <joseph@breatheoutbreathe.in>

	Log org export errors to package-vc doc buffer

	* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
	Wrap the org-export logic in condition-case, allowing package
	installation to continue while preserving error messages.  (Bug#65649)

2023-09-03  Joseph Turner  <joseph@breatheoutbreathe.in>

	Include package name in package-vc documentation log buffer name

	* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
	Modify buffer name generation.  (Bug#65649)

2023-09-03  Po Lu  <luangruo@yahoo.com>

	Move Android port internals documentation to admin/notes

	* admin/notes/java: New file.  Move most of its contents from
	README, and introduce a section on compatibility.

	* java/README: Move internals to admin/notes/java.

2023-09-03  Stefan Kangas  <stefankangas@gmail.com>

	Replace ps-remove-duplicates with seq-uniq

	* lisp/ps-print.el (ps-remove-duplicates): Make obsolete in favor of
	seq-uniq.  Update all callers.

2023-09-03  Damien Cassou  <damien@cassou.me>

	project.el: Fix bug in project-ignores method for VC-aware backend

	The variable `backend' was always nil preventing the 25-line long
	`when' block from doing anything.  This bug was introduced in commit
	785fa801596ad7bb9f838cac865f00de29e253d1 "New user option:
	project-vc-extra-root-markers". (Bug#65704)

	* lisp/progmodes/project.el (project-ignores): Make sure the variable
	is initialized, so that backend-specific code is used if any.

2023-09-03  Jim Porter  <jporterbugs@gmail.com>

	Apply Eshell tilde expansion before glob expansion

	By treating 'eshell-current-modifiers' as a hook, we can simplify much
	of the code working with it and ensure that we call modifiers in a
	more-correct order.

	* lisp/eshell/em-dirs.el (eshell-expand-user-reference-1)
	(eshell-expand-user-reference): Simplify.  We now only get a single
	argument.
	(eshell-parse-user-reference):
	* lisp/eshell/em-glob.el (eshell-add-glob-modifier):
	* lisp/eshell/em-pred.el (eshell-parse-arg-modifier): Use 'add-hook'.

2023-09-03  Davide Masserut  <dm@mssdvd.com>

	Display the exit code if the last command failed in Eshell

	* lisp/eshell/esh-io.el (eshell-last-command-status): Make
	buffer-local.

	* lisp/eshell/em-prompt.el (eshell-prompt-function): Insert the exit
	code if last command failed.

	* test/lisp/eshell/em-prompt-tests.el (em-prompt-test/after-failure):
	New test.
	(em-prompt-test/next-previous-prompt-1)
	(em-prompt-test/forward-backward-matching-input-1): Add a failing
	command to tests.

	* doc/misc/eshell.texi (Invocation): Document change.

	* etc/NEWS: Announce change (bug#65604).

2023-09-03  Jim Porter  <jporterbugs@gmail.com>

	Provide our own implementation of paragraph navigation in Eshell

	This lets us finally obsolete 'eshell-prompt-regexp', making it
	simpler for users to customize their prompts.

	* lisp/eshell/em-prompt.el (eshell-prompt-function): Update docstring.
	(eshell-prompt-regexp): Make obsolete.
	(eshell-prompt-initialize): Remove 'eshell-prompt-regexp' code.
	(eshell-prompt-mode-map): Remap paragraph navigation commands to...
	(eshell-forward-paragraph, eshell-backward-paragraph): ... these new
	commands.

2023-09-03  Jim Porter  <jporterbugs@gmail.com>

	Be more precise about navigating forward/backward through Eshell prompts

	* lisp/eshell/em-prompt.el (eshell-next-prompt): Make N optional.
	When navigating, first move to the end of the prompt.  This makes the
	subsequent navigation more predictable.
	(eshell-previous-prompt): Make N optional.

	* test/lisp/eshell/em-prompt-tests.el
	(em-prompt-test--with-multiline): Move to "Code" section.
	(em-prompt-test/next-previous-prompt-with): Rename to...
	(em-prompt-test/next-previous-prompt-1): ... this, and add additional
	test cases.  Update callers.
	(em-prompt-test/forward-backward-matching-input-with): Rename to...
	(em-prompt-test/forward-backward-matching-input-1): ... this, and
	improve existing test cases.

2023-09-02  Stephen Berman  <stephen.berman@gmx.net>

	Fix and extend applying substitution in widget-choose

	* lisp/wid-edit.el (widget-choose): Iterate only over proper lists
	when applying substitution (bug#64046, Message #53).  With simple
	item definitions, apply substitution only to the item text, not to
	its value (bug#64046, Message #86).  Apply substitution also to
	the widget title (bug#64046, Message #92).

2023-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Update selected packages when deleting last package

	* lisp/emacs-lisp/package.el (package--save-selected-packages): Allow
	setting 'package-selected-packages' to a nil value.  (bug#65475)

2023-09-02  Alan Mackenzie  <acm@muc.de>

	Output better error messages on certain edebug spec errors

	This fixes bug#65620.  The error thrown up to now was "Void
	function edebug-after".  This has been replaced by "Invalid
	call to `edebug-before'.  Is the edebug spec for `foo'
	correct?".

	* lisp/emacs-lisp/edebug.el (edebug-b/a-error): New function
	which throws the new friendlier error message.
	(edebug-before, edebug-after): Replace the defalias's to nil
	with actual functions which just call edebug-b/a-error.

	* doc/lispref/edebug.texi (Specification List): In the entry
	for `sexp', warn against mistakenly using `form' for an

2023-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Make ediff-m-empty-t-f obsolete in favor of make-temp-file

	* lisp/vc/ediff-util.el (ediff-make-empty-tmp-file): Make obsolete
	in favor of 'make-temp-file'.  Update callers.

2023-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Make emerge-m-t-f obsolete in favor of make-temp-file

	* lisp/vc/emerge.el (emerge-make-temp-file): Make obsolete in favor of
	'make-temp-file'.  Update all callers.

2023-09-02  Michael Albinus  <michael.albinus@gmx.de>

	Adapt tramp-get-completion-methods

	* lisp/net/tramp.el (tramp-get-completion-methods): Make MULTI-HOP
	optional.

2023-09-02  João Távora  <joaotavora@gmail.com>

	Eglot: slightly simplify eglot--propose-changes-as-diff

	bug#60338

	* lisp/progmodes/eglot.el (eglot--propose-changes-as-diff):
	Simplify slightly.

2023-09-02  LdBeth  <andpuke@foxmail.com>

	Remove newsticker--lists-intersect-p

	* lisp/net/newst-backend.el (newsticker--lists-intersect-p): Remove.
	* lisp/net/newst-plainview.el (newsticker-w3m-show-inline-images)
	(newsticker-next-new-item, newsticker-previous-new-item)
	(newsticker-next-item, newsticker-next-item-same-feed)
	(newsticker-previous-item, newsticker-next-item-available-p)
	(newsticker-previous-item-available-p): Replace corresponding calls by
	`invisible-p'.  (Bug#60328)

2023-09-02  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	dbbcf4a6599 Fix fontification of " in edit-kbd-macro
	2137fdfd550 * lisp/emacs-lisp/gv.el (buffer-local-value): Unobsolete ...
	e660ee88e3d ; Remove incorrect example from ELisp Reference manual
	c32fd92d67e Add documentation to plstore.el
	57760f585e2 * lisp/help.el (substitute-quotes): Improve docstring.
	60dcea7658a Fix two defcustom :types
	890a4c209ab Fix `image-auto-resize-on-window-resize' custom :type
	369f2eea100 Add "terraform-ls" LSP server to Eglot
	5cbe96d17f6 ; Improve documentation of 'char-table-range'
	a219ee8c314 Fix minor bugs in vc-git and vc-hg on Windows uncovered b...
	3f7598806eb Add syntax-propertize-function to js-ts-mode
	18b292140ee ; * src/treesit.c: Add ts function boilerplate
	ec4d29c4494 Improve performance of treesit_cursor_helper_1

	# Conflicts:
	#	lisp/vc/vc-git.el
	#	src/treesit.c

2023-09-02  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	648a5e33e80 Update to Org 9.6.8-3-g21171d
	458442fe78c Escape percent character in treesit--inspect-name (bug#65...
	bc0426ce8ed Don't add an extraneous slash in remote PATH list in Eshell
	34f7a47c9ce Fix Tramp on MS Windows
	ea5fd6c96bc * Fix native disassemble on Windows platforms (bug#65455)
	91d2d8439bb * Handle missing eln file when trying to disassble (bug#6...
	e7ac50a1539 * lisp/emacs-lisp/comp.el (comp--native-compile): Fix OUT...
	45cf3a0cede Update to Transient v0.4.3
	31d3808fb9d Adapt Eshell manual
	0c50af054f9 Fix applying patches with Git on MS-Windows

	# Conflicts:
	#	doc/misc/transient.texi
	#	test/lisp/eshell/esh-util-tests.el

2023-09-02  Yuan Fu  <casouri@gmail.com>

	Fix treesit-thing-definition

	* lisp/treesit.el (treesit-thing-definition): Add LANGUAGE parameter.
	(treesit-major-mode-setup): Update treesit-thing-definition.  Don't
	enable tree-sitter sexp transpose if sexp isn't defined.

2023-09-02  Yuan Fu  <casouri@gmail.com>

	Don't signal error when calling treesit-node-match-p in treesit.el

	Specifically, don't signal error when the thing isn't defined.

	* lisp/treesit.el (treesit-node-top-level)
	(treesit-forward-sentence)
	(treesit--things-around): Add IGNORE-MISSING argument.

2023-09-02  Yuan Fu  <casouri@gmail.com>

	Rename PRED to THING in tree-sitter navigation functions

	The primary way to use these functions should be to supply a thing
	symbol. Change the parameter name to THING to reflect that.

	* lisp/treesit.el (treesit-beginning-of-thing)
	(treesit-end-of-thing)
	(treesit--things-around)
	(treesit--navigate-thing)
	(treesit-thing-at-point): Change parameter.

2023-09-02  Yuan Fu  <casouri@gmail.com>

	Add an optional arg to Ftreesit_node_match_p

	* src/treesit.c (treesit_traverse_child_helper): Fix typo.
	(treesit_traverse_get_predicate): Add ignore_missing.

	(Ftreesit_search_subtree)
	(Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree): Update docstring.
	(Ftreesit_node_match_p): Add ignore_missing.

2023-09-02  Yuan Fu  <casouri@gmail.com>

	Obsolete treesit-block/sexp/sentence/text-type-regexp

	And replace them with treesit-thing-settings.

	* doc/lispref/positions.texi (List Motion): Remove mention of
	treesit-sexp/sentence-type-regexp.

	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode)
	* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode)
	* lisp/progmodes/java-ts-mode.el (java-ts-mode)
	* lisp/progmodes/js.el (js-ts-mode)
	* lisp/progmodes/json-ts-mode.el (json-ts-mode)
	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode)
	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode)
	(tsx-ts-mode)
	* lisp/progmodes/heex-ts-mode.el (heex-ts-mode)
	* lisp/progmodes/sh-script.el (bash-ts-mode)
	* lisp/progmodes/prog-mode.el (prog-fill-reindent-defun)
	* lisp/textmodes/html-ts-mode.el (html-ts-mode): Replace
	treesit-sexp/sentence/text-type-regexp with treesit-thing-settings.

	* lisp/treesit.el (treesit-sexp-type-regexp)
	(treesit-sentence-type-regexp): Mark obsolete.
	(treesit-block-type-regexp): Remove.

	* lisp/treesit.el (treesit-forward-sexp)
	(treesit-transpose-sexps)
	(treesit-beginning-of-defun)
	(treesit-end-of-defun)
	(treesit-forward-sentence)
	(treesit-defun-at-point): Make use of treesit-thing-settings.

	(treesit-thing-definition)
	(treesit-thing-defined-p): New functions.

	(treesit-major-mode-setup): Replace
	treesit-sexp/sentence-type-regexp with treesit-thing-settings.

2023-09-02  Po Lu  <luangruo@yahoo.com>

	Open org-protocol:// links on Android

	* doc/emacs/android.texi (Android Startup): Revise to reflect
	changes in the set of files registered for Emacsclient and
	mention org-protocol support.

	* java/AndroidManifest.xml.in: Open all files, not just a
	particular subset of image and data files.  Register an
	org-protocol scheme handler.

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Provide
	URI to Emacs verbatim if its scheme is `org-protocol'.

2023-09-02  Dmitry Gutov  <dmitry@gutov.dev>

	xref.el: Ensure that the return value is the buffer

	* lisp/progmodes/xref.el (xref--show-xrefs, xref--show-defs):
	Ensure the return value of the funcall is returned (bug#65631).

2023-09-02  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/touch-screen.el (touch-screen-handle-point-up) <held>:
	Treat `held' as `drag' as well.

	* src/android.c (android_is_special_directory): Return bool
	rather than a pointer to the remainder of the file name, given
	that said pointer is never used.

	* src/android.h (android_is_special_directory): Modify
	correspondingly.

2023-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Delete references to gnuserv

	* doc/misc/mh-e.texi (Incorporating Mail):
	* doc/misc/octave-mode.texi (Concept Index):
	* lisp/net/browse-url.el (browse-url-w3-gnudoit): Delete
	references to gnuserv; these days we use emacsclient.

2023-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Make url-gateway-broken-resolution obsolete

	* lisp/url/url-gw.el (url-gateway-broken-resolution)
	(url-gateway-nslookup-program, url-gateway-nslookup-host): Make obsolete.
	* doc/misc/url.texi (Broken hostname resolution): Delete commented
	out section.

2023-09-01  Eshel Yaron  <me@eshelyaron.com>
	    João Távora  <joaotavora@gmail.com>

	Eglot: rework description and type of eglot-confirm-server-edits


	* lisp/progmodes/eglot.el (eglot-confirm-server-edits): Improve
	type description.

2023-09-01  João Távora  <joaotavora@gmail.com>

	Eglot: handle unsaved buffers in new eglot--propose-changes-as-diff

	* lisp/progmodes/eglot.el (eglot--confirm-server-edits): Add docstring.
	(eglot--propose-changes-as-diff): Rework.  Handle unsaved buffers.
	(eglot--apply-workspace-edit): Rework.

2023-09-01  Stefan Kangas  <stefankangas@gmail.com>

	Make checkdoc warn if not using lexical-binding

	* lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine):
	Warn if there is no lexical-binding cookie.  (Bug#59920)
	(checkdoc-lexical-binding-flag): New user option.

2023-09-01  Ihor Radchenko  <yantar92@posteo.net>

	Make emacsclient handle org-protocol:// links

	Org mode provides a way to quickly capture bookmarks, notes, and links
	using emacsclient:

	    emacsclient "org-protocol://store-link?url=URL&title=TITLE"

	* etc/emacsclient.desktop: Make Emacs the default application for
	org-protocol.  (Bug#65469)

2023-09-01  Eshel Yaron  <me@eshelyaron.com>

	Fix regexp in help-do-arg-highlight

	* lisp/help-fns.el (help-do-arg-highlight): Fix regexp.  (Bug#65580)

	Avoid highlighting (parts of) the function name as arguments in the
	output of 'describe-function' when the function has an argument with
	the same name.  To achieve this, refine the regular expression that
	'help-do-arg-highlight' uses such that it doesn't match anything in
	the function name.

2023-09-01  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-completion-multi-hop-methods):

	Add ;;;###tramp-autoload cookie.

2023-09-01  Michael Albinus  <michael.albinus@gmx.de>

	Fix tramp-completion-multi-hop-methods handling

	* lisp/net/tramp-container.el (tramp-completion-multi-hop-methods):
	Add methods properly.

	* lisp/net/tramp.el (tramp-completion-multi-hop-methods): Fix :type.

2023-09-01  Eli Zaretskii  <eliz@gnu.org>

	Fix VC mode-line indication for registered but ignored files

	* lisp/vc/vc-hooks.el (vc-ignored-state): New face.
	(vc-default-mode-line-string): Add special indication and tooltip
	for files that are registered, but also ignored.  See
	https://lists.gnu.org/archive/html/emacs-devel/2023-09/msg00006.html
	for the details of the use case.

	* doc/emacs/maintaining.texi (VC Mode Line): Mention the
	additional meaning of '!' in the VC status mode-line display.

2023-09-01  Juri Linkov  <juri@linkov.net>

	Fix height of new SVG icons on tab-bar and tab-line (bug#62562)

	* lisp/tab-bar.el (tab-bar--load-buttons): Add ':height (1.0 . em)'
	to icons tab-bar-new, tab-bar-menu-bar.
	(tab-bar-history-mode): Add ':height (1.0 . em)'
	to icons tab-bar-back, tab-bar-forward.

	* lisp/tab-line.el (tab-line-new, tab-line-left, tab-line-right):
	Add ':height (1.0 . em)' to these icons.

2023-09-01  Po Lu  <luangruo@yahoo.com>

	Display the OSK after touch screen drag-to-select

	* lisp/touch-screen.el (touch-screen-handle-point-up) <drag>:
	New case.  Activate the on screen keyboard should the window
	where the first touch screen event landed have selected a
	writable buffer in which the region is active.

2023-09-01  Jim Porter  <jporterbugs@gmail.com>

	Add debug instrumentation for Eshell process management

	* lisp/eshell/esh-util.el (eshell-debug-command)
	* lisp/eshell/em-basic.el (eshell/eshell-debug)
	(pcomplete/eshell-mode/eshell-debug): Add 'process' type.

	* lisp/eshell/esh-proc.el (eshell-gather-process-output)
	(eshell-interactive-process-filter, eshell-insertion-filter)
	(eshell-sentinel): Call 'eshell-debug-command'.

	* test/lisp/eshell/eshell-tests-helpers.el (with-temp-eshell): Add
	'process' to 'eshell-debug-command'
	(eshell-get-debug-logs): New function...
	(eshell-match-command-output, eshell-command-result-equal): ... use
	it.

	* doc/misc/eshell.texi (Built-ins): Mention "process" debug type.

2023-09-01  Jim Porter  <jporterbugs@gmail.com>

	Fix handling of Eshell debug modes

	Previously, these were enabled/disabled at byte-compilation time, but
	we want to control them at runtime.

	* lisp/eshell/esh-cmd.el (eshell-eval-command): Call
	'eshell-debug-command-start'.
	(eshell-manipulate): Check 'eshell-debug-command' at runtime.  Update
	callers.
	(eshell-debug-command): Move to "esh-util.el".
	(eshell/eshell-debug, pcomplate/eshell-mode/eshell-debug): Move to
	"em-basic.el".
	(eshell-debug-show-parsed-args): Update implementation.

	* lisp/eshell/esh-util.el (eshell-debug-command): Move from
	"esh-cmd.el" and convert to a list.
	(eshell-debug-command-buffer): New variable.
	(eshell-condition-case): Check 'eshell-handle-errors' at runtime.
	(eshell-debug-command-start): New function.
	(eshell-debug-command): Move from "esh-cmd.el" and convert to a macro.

	* lisp/eshell/em-basic.el (eshell/eshell-debug)
	(pcomplete/eshell-mode/eshell-debug): Move from "esh-cmd.el" and
	reimplement.

	* lisp/eshell/eshell.el (eshell-command): Pass the original input to
	'eshell-eval-command'.

	* doc/misc/eshell.texi (Built-ins): Update documentation for
	'eshell-debug'.

2023-09-01  Dmitry Gutov  <dmitry@gutov.dev>

	Don't push to Xref history when search ends with error

	* lisp/progmodes/xref.el (xref--push-markers):
	Add new arguments (bug#65631).
	(xref--show-xrefs, xref--show-defs): Use them.

2023-09-01  Po Lu  <luangruo@yahoo.com>

	Minor copy-edits

	* doc/emacs/android.texi (Android Document Providers): Fix typo.

	* doc/emacs/haiku.texi (Haiku Basics): Likewise.

2023-09-01  Po Lu  <luangruo@yahoo.com>

	Properly describe minor mode lighters while mode-line-compact

	* lisp/help.el (describe-minor-mode-from-indicator): New arg
	EVENT.  If set to a mouse event and mode-line-compact, search
	for a suitable lighter within the entire posn object.

	* lisp/bindings.el (mode-line-minor-mode-help): Supply EVENT.
	(bug#65664)

2023-09-01  João Távora  <joaotavora@gmail.com>
	    Philip Kaludercic  <philipk@posteo.net>

	Eglot: revamp confirmation model for server-proposed edits

	bug#60338

	The variable 'eglot-confirm-server-edits' replaces the obsolete
	'eglot-confirm-server-initiated-edits' and brings about a new
	confirmation model, making it possible to have only certain commands
	require user confirmation.  This was achieved careful usage of the
	'this-command' and 'last-command' variables.

	There are now two types of confirmation: the usual
	minibuffer summary and a temporary 'diff-mode' buffer to display the
	proposed changes, so the user can apply them one by one.

	Thanks to Philip Kaludercic for the diff-mode idea and implementation.


	* doc/misc/eglot.texi (Eglot Variables): Describe
	'eglot-confirm-server-edits'.

	* etc/EGLOT-NEWS (latest): Mention change.

	* lisp/progmodes/eglot.el (diff-mode): Require it.
	(eglot-confirm-server-initiated-edits): Obsolete it.
	(eglot-confirm-server-edits): New variable.
	(eglot-handle-request workspace/applyEdit): Use 'last-command'
	(eglot-execute t t): Use 'this-command'.
	(eglot--apply-workspace-edit): Rework.
	(eglot-rename): Use 'this-command'.

2023-08-31  Jimmy Yuen Ho Wong  <wyuenho@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Handle directory values of scopeUri in  workspace/configuration

	Even though scopeUri is specified to be of documentUri type, some
	servers (notably pyright) insist on passing the pathname of a
	directory there.  In pyright's case this is frequently useless, as the
	directory is the project directory.  Nevertheless we can be lenient to
	those servers by detecting whether the value is a directory and doing
	the right thing.

	Note that we do not (yet) support per-file configuration storage.

	* lisp/progmodes/eglot.el (eglot--workspace-configuration-plist):
	Rework.

	GitHub-reference: https://github.com/joaotavora/eglot/pull/1281

2023-08-31  Michael Albinus  <michael.albinus@gmx.de>

	Adapt last change

	* lisp/net/tramp-container.el (tramp-completion-multi-hop-methods):
	Add "docker" and "podman".

	* lisp/net/tramp.el (tramp-completion-multi-hop-methods):
	Adapt docstring.  Use nil as initial value.

2023-08-31  Gene Goykhman  <gene@indigo1.com>

	Allow enabling multi-hop container completion selectively by method

	* lisp/net/tramp-container.el: Check if METHOD is a member of
	`tramp-container-multi-hop-methods' before attempting completion.

	* lisp/net/tramp.el: Add custom variable
	`tramp-container-multi-hop-methods'.

2023-08-31  Po Lu  <luangruo@yahoo.com>

	Copy-edits to haiku.texi

	* doc/emacs/haiku.texi (Haiku, Haiku Basics, Haiku Fonts):
	Refine to avoid excessively wordy and repetitive constructs.

2023-08-31  Diancheng Wang  <diancheng@gmail.com>

	Enable gdb-mi to set breakpoints when threads of debuggee are running

	* lisp/progmodes/gdb-mi.el (gdb): Call 'gud-def' with 5th arg
	non-nil for those commands that can be invoked asynchronously.
	(gdb-starting): Set 'gud-async-running' non-nil for async commands.
	* lisp/progmodes/gud.el (gud-async-running): New defvar.
	(gud-menu-map): Enable some commands only if 'gud-async-running' is
	non-nil.
	(gud-def): Accept another optional argument ASYNC-OK.  (Bug#65612)

2023-08-31  Liu Hui  <liuhui1610@gmail.com>

	strokes: Support running a function when no stroke matches

	* lisp/strokes.el (strokes-no-match-function): New variable.
	(strokes-no-match-default): New function.
	(strokes-execute-stroke): Run `strokes-no-match-function' when no
	stroke matches.  (Bug#65449)

2023-08-31  Mauro Aranda  <maurooaranda@gmail.com>

	Fix choice in electric-pair-skip-whitespace-chars

	* lisp/elec-pair.el (electric-pair-skip-whitespace-chars): Use repeat
	instead of list in custom :type.  (Bug#65625)

2023-08-31  Po Lu  <luangruo@yahoo.com>

	Delete unused fields

	* src/haiku_support.cc (class EmacsWindow)
	<x_before_zoom, y_before_zoom>: Delete fields.

2023-08-31  Po Lu  <luangruo@yahoo.com>

	Include installation date within asset files

	* src/android.c (setEmacsParams): Set `emacs_installation_time'
	to the mtime of the class path file, which happens to be the
	time of Emacs's installation.
	(emacs_installation_time): New variable.

	* src/android.h (emacs_installation_time): Export new variable.

	* src/androidvfs.c (android_afs_stat): If
	emacs_installation_time is a valid timespec, set st_mtime to it.

2023-08-31  Dmitry Gutov  <dmitry@gutov.dev>

	Add one more mouse-set-point call to functions xref-find-*-at-mouse

	* lisp/progmodes/xref.el (xref-find-definitions-at-mouse)
	(xref-find-references-at-mouse): Call mouse-set-point to ensure
	that the search is initiated at the same place where
	xref-backend-identifier-at-point was called (bug#65578).

2023-08-30  Stefan Kangas  <stefankangas@gmail.com>

	Make browse-url-button support more SSL URIs

	* lisp/net/browse-url.el (browse-url-button-regexp): Add support for
	gophers:// and ftps:// URIs.  (Bug#65627)

2023-08-30  Stefan Kangas  <stefankangas@gmail.com>

	Clean up some safe-local-variable predicates

	* lisp/progmodes/project.el: Add comments with a reminder to simplify
	'safe-local-variable' predicates when Emacs 28 support is dropped.
	(project-vc-ignores): Mark only a list of strings as safe-local.
	* lisp/textmodes/reftex-vars.el (reftex-guess-label-type): Use
	booleanp for 'safe-local-variable' predicate.  (Bug#65608)

2023-08-30  Eli Zaretskii  <eliz@gnu.org>

	Fix revert-buffer when some decoding is involved

	* src/fileio.c (Finsert_file_contents): Fix the amount of text
	read from the file when reverting.  (Bug#65609)

2023-08-30  Po Lu  <luangruo@yahoo.com>

	Facilitate typing `C-SPC' on Android

	* doc/emacs/android.texi (Android Windowing): Mention C-SPC
	interception and how it may be disabled.

	* java/org/gnu/emacs/EmacsNative.java (shouldForwardCtrlSpace):
	New function.

	* java/org/gnu/emacs/EmacsView.java (onKeyPreIme): New function.
	If the provided key code is SPC and the event's modifier key
	mask contains ControlMask, relay it directly to onKeyDown.

	* java/org/gnu/emacs/EmacsWindow.java (eventModifiers): Export
	and make static.

	* src/android.c (shouldForwardCtrlSpace): New function.

	* src/androidfns.c (syms_of_androidfns)
	<android_intercept_control_space>: New defvar.

2023-08-30  Stefan Kangas  <stefankangas@gmail.com>

	Add quotes around `C-x C-f` in the *scratch* buffer

	* lisp/startup.el (initial-scratch-message): Add quotes around the
	'find-file' keybinding.

2023-08-29  Stefan Kangas  <stefankangas@gmail.com>

	Make Emacs 21 compat alias obsolete

	* lisp/loadhist.el (loadhist-hook-functions): Make Emacs 21
	compatibility alias obsolete.

2023-08-29  Stefan Kangas  <stefankangas@gmail.com>

	Make Makefile browser obsolete

	* lisp/progmodes/make-mode.el:
	(makefile-mode): Don't document Makefile browser mode.
	(makefile-browser-toggle-state-for-line):
	(makefile-browser-buffer-name, makefile-browser-leftmost-column)
	(makefile-browser-cursor-column, makefile-browser-selected-mark)
	(makefile-browser-unselected-mark)
	(makefile-browser-auto-advance-after-selection-p)
	(makefile-browser-hook, makefile-browser-map)
	(makefile-browser-client, makefile-browser-selection-vector)
	(makefile-browser-format-target-line)
	(makefile-browser-format-macro-line, makefile-browser-fill)
	(makefile-browser-next-line, makefile-browser-previous-line)
	(makefile-browser-quit, makefile-browser-toggle)
	(makefile-browser-insert-continuation)
	(makefile-browser-insert-selection)
	(makefile-browser-insert-selection-and-quit)
	(makefile-browser-send-this-line-item)
	(makefile-browser-start-interaction, makefile-browse)
	(makefile-switch-to-browser, makefile-browser-on-macro-line-p)
	(makefile-browser-this-line-target-name)
	(makefile-browser-this-line-macro-name)
	(makefile-browser-get-state-for-line)
	(makefile-browser-set-state-for-line)
	(makefile-browser-toggle-state-for-line): Make obsolete.  (Bug#58848)
	(makefile-mode-menu): Remove Makefile browser from menu.
	* etc/NEWS: Announce its obsoletion.

2023-08-29  Michael Albinus  <michael.albinus@gmx.de>

	Fix tramp-accept-process-output

	* lisp/net/tramp.el (tramp-accept-process-output):
	Use `with-tramp-suspended-timers' also for the other processes.

2023-08-29  Michael Albinus  <michael.albinus@gmx.de>

	Adapt some changes of last Tramp commit

	* lisp/net/tramp-container.el (tramp-container--completion-function):
	Use METHOD as argument, instead of PROGRAM.  Determine program
	from METHOD entry in `tramp-methods'.  Bind `non-essential' to
	nil.  Use a file property as cache.
	(tramp-container--completion-function): Use adapted arguments when
	setting for "docker" and "podman".

	* lisp/net/tramp.el (tramp--last-hop-directory): Adapt docstring.
	Move down.
	(tramp-set-completion-function): Revert default case to
	`file-exists-p', the workaround isn't needed anymore.
	(tramp-get-completion-methods): Rename argument to MULTI-HOP.
	(tramp-completion-remote-containers): Add :version.
	(tramp-multi-hop-p): Bind `tramp-verbose' to nil.

2023-08-29  Eshel Yaron  <me@eshelyaron.com>

	Rename 'package-vc-allow-side-effects' to better fit its use

	* lisp/emacs-lisp/package-vc.el (package-vc-allow-side-effects):
	Rename to 'package-vc-allow-build-commands'.
	(package-vc--unpack-1): Use new name.
	* doc/emacs/package.texi (Fetching Package Sources): Use new name.
	* etc/NEWS: Adapt accordingly.  (Bug#65386)

2023-08-29  Gene Goykhman  <gene@indigo1.com>

	Provide completion candidates for remote containers over a multi-hop

	* lisp/net/tramp-container.el (tramp-container--completion-function):
	Set default directory to last hop.
	(tramp-set-completion-function): Don't use executable-find for
	container program since it might not be running locally.

	* lisp/net/tramp.el (tramp--last-hop-directory): Add new variable.
	(tramp-completion-handle-file-name-all-completions): Use container
	host directory to execute container program on remote host.
	(tramp-set-completion-function): FIXME: for now, don't constrain
	allowable completion methods to only those present on the local system.
	(tramp-completion-remote-containers): Add customize option to
	provide completion candidates for containers running on remote hosts.

2023-08-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (xfree, sfnt_make_interpreter)
	(stack_overflow_test_args, stack_underflow_test_args)
	(dup_test_args, clear_test_args, raw_test_args, fdef_test_args)
	(fdef_1_test_args, endf_test_args, rs_test_args, debug_test_args)
	(eif_test_args, sds_test_args, round_test_args, sangw_test_args)
	(aa_test_args, scantype_test_args): Include alloca.h.  Minor
	fixes for standards conformance.

2023-08-29  Po Lu  <luangruo@yahoo.com>

	Avoid Unicode quotes within transient.texi

	* doc/misc/transient.texi (Top, Introduction)
	(Aborting and Resuming Transients, Common Suffix Commands)
	(Enabling and Disabling Suffixes, Modifying Existing Transients)
	(Defining Transients, Binding Suffix and Infix Commands)
	(Suffix Specifications, Defining Suffix and Infix Commands)
	(Transient State, Group Classes, Suffix Value Methods)
	(Prefix Slots, Comparison With Other Packages, FAQ): Replace
	Unicode quote characters with grave quotes.

2023-08-29  Po Lu  <luangruo@yahoo.com>

	Reintroduce menus beneath chapters in the Transient manual

	* doc/misc/transient.texi (Introduction)
	(Modifying Existing Transients, Predicate Slots): Return the
	menus to their proper location, so Texinfo 4.13 can infer up
	pointers for nodes within.

2023-08-29  Stefan Kangas  <stefankangas@gmail.com>

	Skip hanging EasyPG tests on GnuPG 2.4

	* test/lisp/epg-tests.el (epg-roundtrip-1, epg-roundtrip-2):
	Skip tests on GnuPG 2.4.  (Bug#63256)

2023-08-28  Stefan Kangas  <stefankangas@gmail.com>

	Split up tests in bovine/gcc-tests.el

	* test/lisp/cedet/semantic/bovine/gcc-tests.el
	(semantic-gcc-test): New macro.
	(semantic-gcc-test/1, semantic-gcc-test/2, semantic-gcc-test/3)
	(semantic-gcc-test/4, semantic-gcc-test/5, semantic-gcc-test/6)
	(semantic-gcc-test/7, semantic-gcc-test/8, semantic-gcc-test/9)
	(semantic-gcc-test-output-parser/fail): New tests.

2023-08-28  Stefan Kangas  <stefankangas@gmail.com>

	Make Emacs 21 compat alias obsolete

	* lisp/jit-lock.el (jit-lock-defer-contextually): Make Emacs 21 compat
	alias obsolete.

2023-08-28  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Add tab-bar-tab-name-format-functions (bug#65554)

	(tab-bar-tab-name-format-truncated)
	(tab-bar-tab-name-format-hints)
	(tab-bar-tab-name-format-close-button)
	(tab-bar-tab-name-format-face): New functions.
	(tab-bar-tab-name-format-functions): New defcustom.
	(tab-bar-tab-name-format-default): Rewrite to use
	'tab-bar-tab-name-format-functions'.

2023-08-28  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Show full tab names on tooltips (bug#65554).

	(tab-bar--format-tab): Use tab names for :help strings.
	It's useful to see original tab names when the tab-bar displays names
	truncated by tab-bar-auto-width, etc.
	(tab-bar-format-menu-bar): Fix string case for consistency with other items.

2023-08-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsActivity.java (attachWindow, onDestroy)
	(onWindowFocusChanged, onContextMenuClosed):

	* java/org/gnu/emacs/EmacsContextMenu.java (onMenuItemClick):

	* java/org/gnu/emacs/EmacsDialog.java (onClick, display1, onDismiss):

	* java/org/gnu/emacs/EmacsOpenActivity.java (checkReadableOrCopy)
	(onDestroy, onWindowFocusChanged, onPause):

	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
	(registerWindow, removeWindowConsumer, detachWindow)
	(noticeIconified, noticeDeiconified): Remove superfluous
	debugging code now that the Android port is stable.

	* java/org/gnu/emacs/EmacsView.java (onLayout): Detect if the
	IME is hidden while a toplevel window is focused, and clear
	isCurrentlyTextEditor in that case.
	(onApplyWindowInsets): New function.
	(raise, lower, popupMenu, onCreateInputConnection): Delete
	aforementioned debugging code.

2023-08-27  Stefan Kangas  <stefankangas@gmail.com>

	Use ensure-list in many more places

	* lisp/align.el (align-region):
	* lisp/auth-source-pass.el (auth-source-pass--build-result-many):
	* lisp/auth-source.el (auth-source-ensure-strings):
	* lisp/calendar/appt.el (appt-disp-window):
	* lisp/cedet/mode-local.el (mode-local-map-mode-buffers):
	* lisp/cus-edit.el (custom-prompt-variable)
	(custom-variable-menu-create):
	* lisp/dired-x.el (dired-mark-extension, dired-mark-suffix):
	* lisp/emacs-lisp/checkdoc.el (checkdoc-defun-info):
	* lisp/emacs-lisp/eieio.el (object-add-to-list):
	* lisp/emulation/cua-base.el (cua--M/H-key):
	* lisp/epg.el (epg--list-keys-1):
	* lisp/faces.el (read-face-name):
	* lisp/format.el (format-decode):
	* lisp/gnus/gnus-score.el (gnus-home-score-file)
	(gnus-all-score-files):
	* lisp/gnus/gnus-uu.el (gnus-uu-grab-articles):
	* lisp/gnus/message.el (message-make-forward-subject):
	* lisp/gnus/nnmairix.el (nnmairix-create-search-group):
	* lisp/gnus/spam.el (spam-copy-or-move-routine):
	* lisp/help-fns.el (describe-face):
	* lisp/ibuf-macs.el (define-ibuffer-filter):
	* lisp/international/mule-cmds.el (select-safe-coding-system):
	* lisp/net/imap.el (imap-send-command):
	* lisp/printing.el (pr-menu-get-item):
	* lisp/speedbar.el (speedbar-add-supported-extension)
	(speedbar-add-ignored-directory-regexp):
	* lisp/textmodes/rst.el (rst-forward-line-looking-at):
	* lisp/vc/ediff-util.el (ediff-other-buffer):
	* lisp/vc/diff.el (diff-no-select):
	* lisp/vc/vc-dir.el (vc-dir-mark-state-files):
	* lisp/wid-edit.el (widget-prompt-value):
	* lisp/windmove.el (windmove-default-keybindings)
	(windmove-display-default-keybindings)
	(windmove-delete-default-keybindings)
	(windmove-swap-states-default-keybindings):
	* lisp/window.el (display-buffer-reuse-mode-window):
	* lisp/woman.el (woman-expand-directory-path): Prefer ensure-list.

2023-08-27  Jim Porter  <jporterbugs@gmail.com>

	Fix a race condition in Eshell's external process management

	If a process is busy writing output when 'eshell-sentinel' is called,
	it might take a bit of time to finish up.  Don't call
	'eshell-kill-process-function' until we're really finished
	(bug#59103).

	* lisp/eshell/esh-proc.el (eshell-sentinel): Call
	'eshell-kill-process-function' in 'finish-io'.

2023-08-27  Juri Linkov  <juri@linkov.net>

	Use new SVG icons in tab-bar and tab-line (bug#62562)

	* lisp/tab-bar.el (tab-bar--load-buttons):
	Add "symbols/plus_16.svg" to tab-bar-new.
	Add "symbols/cross_16.svg" to tab-bar-close.
	Add "symbols/menu_16.svg" to tab-bar-menu-bar.
	(tab-bar-tab-name-format-default): Use 'add-face-text-property'.
	(tab-bar-history-mode):
	Add "symbols/chevron_left_16.svg" to tab-bar-back.
	Add "symbols/chevron_right_16.svg" to tab-bar-forward.

	* lisp/tab-line.el (tab-line-new): New icon with "symbols/plus_16.svg".
	(tab-line-new-button): Use it with nil rear-nonsticky.
	(tab-line-close): New icon with "symbols/cross_16.svg".
	(tab-line-close-button): Use it with nil rear-nonsticky.
	(tab-line-left): New icon with "symbols/chevron_left_16.svg".
	(tab-line-left-button): Use it with nil rear-nonsticky.
	(tab-line-right): New icon with "symbols/chevron_right_16.svg".
	(tab-line-right-button): Use it with nil rear-nonsticky.
	(tab-line-tab-name-format-default): Use 'add-face-text-property'.
	(tab-line-auto-hscroll): Append the face in 'add-face-text-property'.

2023-08-27  Stefan Kangas  <stefankangas@gmail.com>

	Fix manual image tests on macOS

	* test/manual/image-tests.el (ert): Require.
	(image-tests--images): Fix typo.
	(image-tests-load-image/svg-too-big)
	(image-tests-load-image/svg-invalid): Skip test unless built with
	SVG support.
	(image-tests-image-metadata/gif)
	(image-tests-image-metadata/webp): Disable tests on macOS.

2023-08-27  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.4.3

2023-08-27  Michael Albinus  <michael.albinus@gmx.de>

	Some minor Tramp changes

	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	Fix error message.

	* lisp/net/tramp-cache.el (tramp-dump-connection-properties):
	Remove `tramp-null-hop'.

	* lisp/net/tramp-message.el (tramp-message, tramp-backtrace)
	(tramp-error): Handle VEC being nil.

	* lisp/net/tramp.el (tramp-null-hop): Add ;;;###tramp-autoload cookie.
	Use pseudo method "local".
	(tramp-file-name-unify): IF VEC is nil, set it to `tramp-null-hop'.
	(tramp-set-completion-function): Support also functions with
	METHOD as argument.
	(tramp-get-completion-methods): Add argument HOP.
	(tramp-completion-handle-file-name-all-completions): Use it.
	(tramp-call-process-region): Set VEC if nil.

2023-08-27  Po Lu  <luangruo@yahoo.com>

	Correct display of stretch glyphs within hscrolled windows

	* src/haikuterm.c
	(haiku_draw_glyphless_glyph_string_foreground): Make char2b
	static, stifling a GCC warning.
	(haiku_draw_stretch_glyph_string): Use computed X if s->x is
	outside the confines of the text area.

2023-08-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsView.java (onLayout): Provide for
	occasions where the saved measured dimensions differ from that
	saved by the view.

2023-08-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	(elisp--local-variables): Fix recent regression

	While at it, make it work when completing code within `eval-when-compile`
	and friends, where it failed in sometimes spectacular ways.

	* lisp/progmodes/elisp-mode.el (elisp--local-macroenv): New var.
	(elisp--local-variables): Use it.  Also, advice `macroexpand-1` since
	`macroexpand-all` doesn't use `macroexpand` any more.
	(prin1-char): Remove redundant "" arg.
	(elisp--eval-defun-1): Align the `eval` call to what's used in
	`custom-initialize-set`.

2023-08-26  Stefan Kangas  <stefankangas@gmail.com>

	Clean up image error reporting somewhat

	* src/image.c (image_not_found_error, image_invalid_data_error):
	New functions.  All uses of image_error with "Invalid image data ..."
	and "Cannot find image file ..." changed to use them.
	(image_create_x_image_and_pixmap_1): Remove redundant Qnil arguments.

2023-08-26  Stefan Kangas  <stefankangas@gmail.com>

	Make `M-x align` rule count more precise

	* lisp/align.el (align--should-run-rule): Factor out new function...
	(align-region): ...from here.  Avoid counting inactive rules towards
	the total.

2023-08-26  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	39d2285bdc9 ; * doc/emacs/sending.texi (Mail Aliases): Add some usefu...
	f3fa436bc0f ; Fix doc string of 'current-idle-time'
	02532bb5821 Fix custom :type of dired-mouse-drag-files
	fc5de406be3 ; Improve SMTPmail documentation about OAuth2
	1aaeaf22cef Account for string names in active file
	48604565847 Fix 'makefile-browser-client' variable initialization

2023-08-26  Po Lu  <luangruo@yahoo.com>

	Revise last change to copy-directory

	* lisp/files.el (copy-directory): Instead of demoting errors
	from set-file-times, refrain from setting them if newname is
	located within /contents.

2023-08-26  Joseph Turner  <joseph@breatheoutbreathe.in>

	Make ispell localwords safe local variable

	* lisp/textmodes/ispell.el (ispell-buffer-session-localwords):
	Make safe local variable to so that checkdoc can ignore words in a
	project in batch mode.

2023-08-26  Daniel Martín  <mardani29@yahoo.es>

	Do not raise a different frame when closing a frame

	* src/frame.h: Declare an NS-only function to make a frame the
	key window.
	* src/nsfns.m (ns_make_frame_key_window): Implement it.
	* src/frame.c (delete_frame): Call ns_make_frame_key_window
	instead of Fraise_frame.  (Bug#61525)

2023-08-26  Mauro Aranda  <maurooaranda@gmail.com>

	Improve type of custom-theme-directory (Bug#65401)

	* lisp/custom.el (custom-theme-directory): Make it of type directory.

2023-08-26  Thierry Volpiatto  <thievol@posteo.net>

	Improve 'describe-theme' (bug#65468)

	* lisp/cus-theme.el (describe-theme-from-file): New function.

2023-08-26  Po Lu  <luangruo@yahoo.com>

	Demote errors from utimensat copying directories

	* lisp/files.el (copy-directory): Wrap set-file-times within
	with-demoted-errors.

	* src/fileio.c (Fcopy_file): Adjust commentary.

2023-08-26  Paul Eggert  <eggert@cs.ucla.edu>

	Use float not double in webp_load alpha conversion

	* src/image.c (webp_load): Pacify gcc -Wdouble-promotion
	by using (1 - a), where the 1 is converted to 1.0f, rather
	than (1.0 - a), which mistakenly converts a to double.
	Also, reindent to use GNU style.

2023-08-26  Po Lu  <luangruo@yahoo.com>

	Disable XkbLC_ControlFallback

	* src/xterm.c (handle_one_xevent) <XI_KeyPress>: Fix typos within
	the commentary.
	(x_term_init) [HAVE_XKB]: Disable the ControlFallback library
	control, lest Xlib map function keys with ControlMask set to
	ASCII keysyms within inactive groups.

2023-08-25  F. Jason Park  <jp@neverwas.me>

	Prevent unwanted recursion in erc-nickbar-disable

	* lisp/erc/erc-speedbar.el (erc-status-sidebar-mode--unhook): Remove
	forward declaration.
	(erc-speedbar--toggle-nicknames-sidebar): Inline
	`erc-speedbar-close-nicknames-window'.  Don't call
	`erc-speedbar-browser' and thus avoid adding excess timers.
	(erc-speedbar--ensure): Inline `speedbar-enable-update' to avoid
	unneeded call to `speedbar-set-timer', and ensure it only runs in
	`speedbar-buffer'.
	(erc-speedbar--shutting-down-p): New flag variable to avoid recursive
	calls to `dframe-close-frame' and friends.
	(erc-nickbar-mode, erc-nickbar-enable, erc-nickbar-disable): Move
	logic formerly performed by `speedbar-disable-update' to
	`erc-speedbar--toggle-nicknames-sidebar'.  When disabling, guard
	against recursive calls to `dframe-close-frame' and friends.
	(erc-speedbar--get-timers): New utility function, also for use in
	testing.
	(erc-speedbar--dframe-controlled): Bind
	`erc-speedbar--shutting-down-p' flag non-nil around call to
	`erc-nickbar-mode'.  Remove excess timer left behind due to
	incompatible behavior from `dframe-close-frame'.  Let caller kill
	buffer.
	(erc-speedbar-close-nicknames-window): Remove unused command, new in
	ERC 5.6 and Emacs 30.
	* test/lisp/erc/erc-scenarios-status-sidebar.el
	(erc-speedbar-close-nicknames-window): Remove forward declaration.
	(erc-speedbar--get-timers): Add forward declaration.
	(erc-scenarios-status-sidebar--nickbar): Fix faulty expectations of
	desired behavior when disabling module.  Ensure timers canceled.
	* test/lisp/erc/resources/erc-scenarios-common.el
	(erc-scenarios-common--make-bindings): Shadow `timer-idle-list' to
	avoid polluting global test environment with stray timers.
	(Bug#63595)

2023-08-25  F. Jason Park  <jp@neverwas.me>

	Warn about implicit logging in erc-truncate-mode

	* etc/ERC-NEWS: Add entry explaining that `erc-truncate-mode' no
	longer quasi-activates `erc-log-mode' under certain conditions.
	* lisp/erc/erc-log.el
	(erc-log--call-when-logging-enabled-sans-module): Add helper for use
	by the `truncate' module during initialization.
	* lisp/erc/erc-truncate.el (erc-truncate-mode, erc-truncate-enable,
	erc-truncate-disable): Warn on `erc-connect-pre-hook' when conditions
	exist that would have seen logging transparently activated in older
	ERC versions.
	(erc-truncate--warn-about-logging): New function to warn about
	implicit logging on pre-connect.
	(erc-truncate-buffer-to-size): Clarify some comments and revise doc
	string.
	* test/lisp/erc/erc-scenarios-log.el (erc-scenarios-log--truncate):
	Disable `erc-truncate-mode' even though `erc-modules' is shadowed so
	that `erc-insert-done-hook' and friends are not contaminated.
	`(Bug#60936)

2023-08-25  F. Jason Park  <jp@neverwas.me>

	Ignore erc-response objects in error-notice helper

	* lisp/erc/erc-button.el (erc-button--display-error-notice-with-keys):
	Remove `parsed' `erc-response' positional parameter, and don't pass it
	to `erc-display-message' because the latter adds text properties
	derived from such an object.  These properties can confuse other code
	operating on an inserted error-notice message into thinking it
	originated from the server.
	* lisp/erc/erc-common.el (erc--with-dependent-type-match): Make macro
	more readable.
	* lisp/erc/erc-networks.el (erc-networks--set-name,
	erc-networks--ensure-announced, erc-networks-on-MOTD-end): Remove
	`erc-response' objects from inserted error-notices.
	* test/lisp/erc/erc-button-tests.el
	(erc-button--display-error-notice-with-keys): Add assertions for
	overloaded first parameter.
	* test/lisp/erc/erc-tests.el (erc--with-dependent-type-match): Update
	expected expansion.

2023-08-25  Stefan Kangas  <stefankangas@gmail.com>

	Assume that font-lock is preloaded

	* lisp/org/ox-beamer.el (org-mode): Assume that font-lock is
	preloaded, which it has been since Emacs 22.1.
	* lisp/textmodes/reftex.el (reftex-use-fonts): Make function obsolete
	in favor of variable.  Update all callers.

2023-08-25  Stefan Kangas  <stefankangas@gmail.com>

	Fix alpha blending for WebP images

	* src/image.c (webp_load): Fix WebP transparency by doing manual alpha
	blending instead of naive masking.  (Bug#59242)

2023-08-25  Po Lu  <luangruo@yahoo.com>

	Attempt to fix bug#65068

	* src/xterm.c (handle_one_xevent) <KeyPress>: Prevent calls to
	XkbTranslateKeysym with a modified keysym if overflow happens.
	<XI_KeyPress>: Expound upon the different forms of key event
	lookup and the chaotic code beneath within the commentary.
	Discontinue separating keycode lookup from key translation.
	Supply the effective group within the modifier mask provided
	to both XKB translation functions.  (bug#65068)

2023-08-25  Stefan Kangas  <stefankangas@gmail.com>

	Don't try to set variable removed in Emacs 21

	* lisp/eshell/em-ls.el (eshell-ls--insert-directory): Don't set
	'font-lock-buffers', which was removed in Emacs 21.

2023-08-24  Stefan Kangas  <stefankangas@gmail.com>

	Modernize sql-postgres-options docstring

	* lisp/progmodes/sql.el (sql-postgres-options): Don't refer to ancient
	versions of PostgreSQL released in 1999 and 2001, respectively.

2023-08-24  Dmitry Gutov  <dmitry@gutov.dev>

	project.el: Fixup two recent defcustoms

	* lisp/progmodes/project.el (project-file-history-behavior):
	Adjust positions inside 'const' forms.
	(project-key-prompt-style): Correct the :type form (bug#64799).

2023-08-24  Po Lu  <luangruo@yahoo.com>

	Properly parse format 4 cmap tables

	* src/sfnt.c (sfnt_read_cmap_format_4): Read range_shift field
	property.  Prior to this, it would be inadvertently treated as an
	entry within the segment end code array, which only functioned
	by happenstance.
	(sfnt_lookup_glyph_4): Remove workaround grounded upon an
	erroneous interpretation of the bug fixed by the aforementioned
	change.

	* src/sfnt.h (struct sfnt_cmap_format_4): Introduce previously
	absent `range_shift' field.

2023-08-24  Jim Porter  <jporterbugs@gmail.com>

	When waiting for a process in Eshell, consult its status

	This should be functionally the same as the previous implementation in
	most cases (which consulted its membership in 'eshell-process-list'),
	but is more flexible.  It's now possible to wait for processes that
	aren't in 'eshell-process-list'.

	Additionally, use 'process-live-p' instead of examining
	'process-status' in a few places.  This is simpler, and a bit more
	correct too for certain types of processes (though it likely doesn't
	matter in practice).

	* lisp/eshell/esh-io.el (eshell-close-target)
	(eshell-output-object-to-target)
	* lisp/eshell/esh-proc.el (eshell-process-interact): Use
	'process-live-p'.
	(eshell-wait-for-process): Use 'process-live-p' and remove reference
	to 'eshell-process-list'.

2023-08-24  Po Lu  <luangruo@yahoo.com>

	Stifle a compiler warning under GCC 13

	* src/haiku_support.cc (MessageReceived): Shun snprintf, as GCC
	produces false positives cautioning against truncation.

2023-08-24  Po Lu  <luangruo@yahoo.com>

	Correct invalid Texinfo markup

	* doc/lispref/processes.texi (Sentinels): Place . after @xref.

2023-08-24  Po Lu  <luangruo@yahoo.com>

	Install rcs2log within Emacs packages for Android

	* doc/emacs/android.texi (Android Environment): Mention the
	`rcs2log' program name variable.  Also refine the wording of the
	paragraph describing bundled programs a bit.

	* doc/lispref/processes.texi (Subprocess Creation): Mention
	`rcs2log' and `rcs2log-program-name'.  Correct typos and
	spelling mistakes within the variable index.

	* etc/NEWS: Amend the announcement of *-program-name to also
	cite rcs2log.

	* java/Makefile.in (install_temp): Copy rcs2log to
	lib/*/librcs2log.so after minor revisions to change the
	interpreter name.

	* lisp/vc/vc-rcs.el (vc-rcs-rcs2log-program): Ground the program
	name upon `rcs2log-program-name'.

	* src/callproc.c (syms_of_callproc) <Vrcs2log_program_name>: New
	defvar.  Define to `librcs2log.so' under Android, `rcs2log'
	elsewhere.

2023-08-24  Jim Porter  <jporterbugs@gmail.com>

	Fix behavior of 'eshell-hist-ignoredups' when set to 'erase'

	* lisp/eshell/em-hist.el (eshell-add-input-to-history): Refactor to
	use 'pcase' and correct the logic for the 'erase' case.

	* test/lisp/eshell/em-hist-tests.el: Require our test helpers.
	(eshell-write-readonly-history): Rename to...
	(em-hist-test/write-readonly-history): ... this.
	(em-hist-test/add-to-history/allow-dups)
	(em-hist-test/add-to-history/no-consecutive-dups)
	(em-hist-test/add-to-history/erase-dups): New tests (bug#63360).

2023-08-24  Po Lu  <luangruo@yahoo.com>

	Properly detect medium fonts

	* src/sfntfont.c (sfnt_decode_family_style): Refer to the
	preferred family and subfamily if present.

2023-08-24  Jim Porter  <jporterbugs@gmail.com>
	    Morgan Smith  <Morgan.J.Smith@outlook.com>

	Support 'comint-pager' in Eshell

	* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Add "PAGER".
	(eshell-var-initialize): Make 'comint-pager' buffer-local and bind it
	in subcommands so that we can temporarily set it as necessary.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/pager-var/default)
	(esh-var-test/pager-var/set, esh-var-test/pager-var/unset)
	(esh-var-test/pager-var/set-locally): New tests.

	* doc/misc/eshell.texi (Variables): Document this (bug#63778).

2023-08-24  Stefan Kangas  <stefankangas@gmail.com>

	Adjust documentation for defadvice obsoletion

	* doc/lispref/functions.texi (Porting Old Advice): Unequivocally say
	that 'defadvice' is obsolete.
	* doc/emacs/trouble.texi (Coding Standards): Refer to 'advice-add'
	instead of the now-obsolete 'defadvice'.  (Bug#64757)
	* doc/misc/ses.texi (Uses of advice-add in SES): Rename node from
	"Uses of defadvice in SES".  Remove 'undo-more' entry, since that
	advice was deleted in 2007.

2023-08-23  Manuel Giraud  <manuel@ledu-giraud.fr>

	Remove some macros in image-dired (Bug#65403)

	* lisp/image/image-dired.el (image-dired--movement-command)
	(image-dired--movement-command-line): Change macros to functions.
	(image-dired--update-after-move): New function for book-keeping
	after a move in image-dired.
	(image-dired-scroll): Use it.

2023-08-23  Dmitry Gutov  <dmitry@gutov.dev>

	project-key-prompt-style: New option.

	* lisp/progmodes/project.el (project-file-history-behavior):
	Add :group and :version tags.
	(project-key-prompt-style): New option (bug#64799).

	* etc/NEWS: Mention it.

2023-08-23  Gerd Möllmann  <gerd@gnu.org>

	Revert "; Reverse debug spec of cl-flet (bug#65344)"

	This reverts commit cc0f546825e0db9ff78f82c62615686aa480a133.

2023-08-23  Michael Albinus  <michael.albinus@gmx.de>

	Tramp cleanup

	* lisp/net/tramp-compat.el (tramp-compat-temporary-file-directory):
	Adapt docstring.

2023-08-23  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/ange-ftp.el (ange-ftp-file-remote-p): Handle CONNECTED properly.

	* lisp/files.el (file-remote-p): Simplify.

2023-08-23  Michael Albinus  <michael.albinus@gmx.de>

	Enable remote file name completion in eshell depending on command (bug#65356)

	* lisp/eshell/em-cmpl.el (eshell-cmpl-remote-file-ignore):
	New user option.
	(eshell-cmpl-initialize): Use it.
	(eshell-external-command-p): New defun.
	(eshell-complete-parse-arguments):
	Set `pcomplete-remote-file-ignore' depending on the command.

2023-08-23  Po Lu  <luangruo@yahoo.com>

	Repair displaying compound glyph components with anchor points

	* src/sfnt.c (sfnt_interpret_compound_glyph_1): Move
	initialization of x and y out of conditional.

2023-08-23  Roland Winkler  <winkler@gnu.org>

	Fix bibtex-font-lock-url-regexp

	Fix bibtex-font-lock-url-regexp to allow line breaks
	between the field name and the field string.

2023-08-23  Spencer Baugh  <sbaugh@janestreet.com>

	Use current file name for more "other project" future history

	In the previous commit we added support for using the current buffer's
	file name as future history for project-find-file even when switching
	to another project with project-switch-project.  Make this work for
	project-find-dir and project-or-external-find-file too.

	* lisp/progmodes/project.el (project--find-default-from): Add.
	(project-find-file, project-or-external-find-file): Use
	project--find-default-from with buffer-file-name.
	(project-find-dir): Use project--find-default-from with
	default-directory.

2023-08-23  Spencer Baugh  <sbaugh@janestreet.com>
	    Dmitry Gutov  <dmitry@gutov.dev>

	Support adjusting file-name-history to the current project

	This adds project-file-history-behavior which has the effect described in
	its docstring.  Implementing a sort of sharing of file-name-history
	between projects.

	* lisp/progmodes/project.el (project-file-history-behavior):
	New option.  (bug#63829)
	(project--transplant-file-name): Add.
	(project--read-file-cpd-relative): Move history manipulations to
	project--read-file-name.
	(project--read-file-name): New function.  Refer to
	project-file-history-behavior.
	(project-find-file-in, project-find-dir): Use it.
	(project-or-external-find-file): Bind the new option to t, to avoid
	touching the external file names.

	* etc/NEWS: Announce the new option.

2023-08-23  Po Lu  <luangruo@yahoo.com>

	Make org-mouse compatible with touch screen event emulation

	* lisp/org/org-mouse.el (org-mouse-down-mouse): Characterize as
	an `ignored-mouse-command'.

2023-08-23  Po Lu  <luangruo@yahoo.com>

	Fix compatibility problems with several fonts

	* src/sfnt.c (sfnt_lookup_glyph_8): Perform binary search
	instead of combing through each group if the table is large.
	(sfnt_read_simple_glyph): Avoid losing if the last byte of a
	vector is identical to the last byte of the glyph data.
	(sfnt_read_gvar_table): Don't overwrite gvar table data while
	reading shared coordinates.

2023-08-23  Spencer Baugh  <sbaugh@catern.com>

	Expand project file names before storing them

	Before, whatever project-root returned, we stored as the root
	directory of the project in project-list and project-list-file.  This
	could lead to duplicate entries or bad behavior if projects were
	accessed by different file names, e.g. both /home/user/src/emacs and
	~/src/emacs.

	Now project-list-file contains only expanded paths and project--list
	contains only abbreviated paths.  We abbreviate filenames before
	setting project--list, and expand filenames before writing to
	project-list-file.  We only do this for local files, though, to avoid
	making remote connections; the situation will still be bad for remote
	projects, but at least this is an improvement.

	* lisp/progmodes/project.el (project--write-project-list): Call
	expand-file-name.
	(project--read-project-list, project-remember-project)
	(project--remove-from-project-list): Call abbreviate-file-name.

2023-08-22  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Add a bit of logging for gnus-search search engine results

	Help users figure out the cause of unexpected "no search results"
	situations.

2023-08-22  Po Lu  <luangruo@yahoo.com>

	Illustrate more font problems

	* etc/PROBLEMS (Runtime problems specific to Android): Mention
	problems with three other fonts users have inquired into.

2023-08-22  Po Lu  <luangruo@yahoo.com>

	Avoid crashes rescaling fonts with long names

	* src/font.c (font_rescale_ratio): Check NAME is not nil before
	matching it against a regexp.

2023-08-22  Po Lu  <luangruo@yahoo.com>

	Optimize format 12 cmap table lookup

	* src/sfnt.c (sfnt_compare_char): New function.
	(sfnt_lookup_glyph_12): Detect ``large'' cmap tables of format
	12 and perform a binary search.  Such tables are frequently
	provided by CJK fonts.

2023-08-22  Po Lu  <luangruo@yahoo.com>

	Take precautions against NULL returns from getPrimaryClip

	* java/org/gnu/emacs/EmacsSdk11Clipboard.java (getClipboardData):
	Return null if the clip data is not set.  Also delete superfluous
	debugging code.  (bug#65445)
	(getClipboard): Don't dereference NULL clip data.

2023-08-22  Po Lu  <luangruo@yahoo.com>

	Avoid errors in posn-col-row if fonts disappear from an X server

	* lisp/window.el (window-font-width, window-font-height): Resort
	to frame-char-width/height should the font returned by font-info
	be unavailable.

2023-08-22  Po Lu  <luangruo@yahoo.com>

	* etc/DEBUG: Mention android_exception_check specifics.  (bug#65445)

2023-08-22  Po Lu  <luangruo@yahoo.com>

	Correct invalid Texinfo markup

	* doc/emacs/files.texi (Visiting): Don't enclose an entire form
	within @var, use @code for the whole form and @var for
	individual variables within instead.

	* doc/lispref/commands.texi (Key Sequence Input): @xref must be
	followed by either , or ..

	* doc/lispref/processes.texi (Filter Functions): Introduce
	punctuation absent from the last sentence of a paragraph.

2023-08-22  Jim Porter  <jporterbugs@gmail.com>

	Merge from origin/emacs-29

	b72f23a532b ; Fix 'desktop-restore-reuses-frames' customize values

2023-08-22  Jim Porter  <jporterbugs@gmail.com>

	Merge from origin/emacs-29

	3296031ad74 ; Another improvement for documentation of pixelwise scro...
	baeb2d71ae7 Support defun navigation for DEFUN in c-ts-mode (bug#64442)
	781ddd7e7d8 Fix touchpad scrolling on MS-Windows
	c125bd060e2 Fix order in which package-vc dependencies are resolved
	500ced133ad Fix building of VC package manuals with relative org link...
	456ecabe9e8 Fix the documentation of 'cl-flet'
	f6ebd1ef0d0 ; * src/treesit.c (Ftreesit_node_parent): Improve comment...
	fac0e2d5334 Avoid false "wrong passphrase" messages in EPA
	8f683b51d8b Fix jsx font-lock in older tree-sitter-js grammars
	d9af79ae39d Fix cloning 'face-remapping-alist' for indirect buffers
	636fb267c46 Improve documentation of case transfer in replacement com...
	7856d51436b Fix horizontal scrolling of images with C-f
	8cf5659ec2f ; Fix defcustom in completion.el
	a8c8a4e3680 ; * src/fns.c (Fcopy_sequence): Doc fix.  (Bug#64960)
	205d87cdca0 Fix unpacking ZIP archives on MS-Windows
	3712e8bc385 ; Fix typos in lisp/keymap.el doc strings (bug#65329).
	21b2ecee661 Fix command example in Eshell manual
	26949819df0 ; lisp/progmodes/csharp-mode.el (treesit-query-capture): ...
	221ed70b90a ; Improve documentation of 'define-alternatives'
	32280205e27 Add user options mentioned in the Eshell manual to the va...
	cf3145a486b * Add missing alias to `native-comp-enable-subr-trampolin...
	922b6490286 * Add missing alias to `native-comp-enable-subr-trampolin...
	6962823c83c ; * etc/PROBLEMS: Fix typo and clarify wording.

	# Conflicts:
	#	doc/misc/eshell.texi

2023-08-22  Po Lu  <luangruo@yahoo.com>

	Improve Android adaptive icon

	* java/res/drawable/emacs_background.xml: Delete trailing whitespace
	and modify gradient offset to match emacs.svg.

	* java/res/drawable/emacs_foreground.xml: Delete trailing
	whitespace and remove redundant path.

2023-08-22  Po Lu  <luangruo@yahoo.com>

	Repair desktop notification on Android 31

	* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
	Provide FLAG_IMMUTABLE under Android S and later, not just
	versions of Android after S.  (bug#65433)

2023-08-21  Jim Porter  <jporterbugs@gmail.com>

	Use generics to define Eshell output targets

	This is more flexible than before, since third-party code can add new
	output target types without advising these functions.  It also
	resolves an issue where redirecting to a symbol that has a value in
	its function slot doesn't work.

	* lisp/eshell/esh-io.el (eshell-virtual-target): New struct.
	(eshell-get-target, eshell-output-object-to-target): Reimplement via
	'cl-defgeneric'.
	(eshell-close-target): Reimplement via 'cl-defgeneric' and simplify
	'process' method.

2023-08-21  Jim Porter  <jporterbugs@gmail.com>

	Allow splicing Eshell globs in-place

	This means that Eshell globs can now expand the same way as if the
	user had typed each matching file individually.

	* lisp/eshell/em-glob.el (eshell-glob-splice-results): New option.
	(eshell-no-command-globbing, eshell-add-glob-modifier): Handle spliced
	globs.
	(eshell-extended-glob): Always return a list when splicing.

	* lisp/eshell/em-pred.el (eshell-parse-arg-modifier): Ensure
	'eshell-splice-args' is always at the end of the list of modifiers if
	present.

	* test/lisp/eshell/em-glob-tests.el
	(em-glob-test/expand/splice-results)
	(em-glob-test/expand/no-splice-results)
	(em-glob-test/expand/explicitly-splice-results)
	(em-glob-test/expand/explicitly-listify-results): New tests.
	(em-glob-test/no-matches): Check result when
	'eshell-glob-splice-results' is nil/non-nil.

	* doc/misc/eshell.texi (Arguments): Expand explanation about argument
	flattening.
	(Globbing): Document splicing behavior of globs.

	* etc/NEWS: Announce this change.

2023-08-21  Mattias Engdegård  <mattiase@acm.org>

	Don't describe lexbound uncompiled function as 'closures'

	* lisp/help-fns.el (help-fns-function-description-header):
	Describe lexbound uncompiled functions as functions.
	Whether they technically close over any lexical variables isn't of
	interest here.

2023-08-21  Po Lu  <luangruo@yahoo.com>

	Properly enumerate GX fonts of the same family with divergent styles

	* doc/emacs/android.texi (Android Fonts): Revise explanation of
	GX font replacement during font enumeration.

	* src/sfntfont.c (sfnt_replace_fonts_p): If PREV and DESC are of
	the same family and both are GX fonts, restrict actions taken to
	removing duplicate styles from PREV.  Reported by a user who
	tried to install GX versions of Cascadia Mono, which are
	distributed as two files providing the bold and italic variation
	axes respectively.

2023-08-21  Mattias Engdegård  <mattiase@acm.org>

	Explicitly disallow named-let in code using dynamic binding

	There is no point in permitting named-let to be used in dynbound code;
	our code transforms are simply not valid in that context, and it's not
	worth the trouble to make it work (to the extent that it is at all
	possible). (Bug#59576)

	* lisp/emacs-lisp/subr-x.el (named-let):
	Error if used with dynamic binding.
	* doc/lispref/variables.texi (Local Variables): Amend manual.

2023-08-21  Gerd Möllmann  <gerd@gnu.org>

	Fix debug spec of cl-flet (bug#65344)

	* lisp/emacs-lisp/cl-macs.el (cl-flet): Fix debug spec.
	(cl-defun): Allow only symbols as function names in debug spec.
	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-flet/edebug): New test
	case.

2023-08-21  Po Lu  <luangruo@yahoo.com>

	Make the Emacs icon ``adaptive''

	* java/AndroidManifest.xml.in (EmacsApplication): Set icon to
	@mipmap/emacs_icon.

	* java/org/gnu/emacs/EmacsService.java (onStartCommand): Pick a
	better name for the persistent notification channel.

	* java/res/drawable/emacs_background.xml:

	* java/res/drawable/emacs_foreground.xml:

	* java/res/mipmap/emacs_icon.png:

	* java/res/mipmap-v26/emacs_icon.xml: New files, comprising an
	``adaptive icon'' required by some Android launchers.

2023-08-21  Po Lu  <luangruo@yahoo.com>

	Enable providing icons for Android desktop notifications

	* doc/lispref/os.texi (Desktop Notifications)
	<android-notifications-notify>: Mention the :icon parameter.

	* java/org/gnu/emacs/EmacsDesktopNotification.java
	(EmacsDesktopNotification) <icon>: New field.
	(<init>): New argument ICON.  Set this.icon to its value.
	(display1): Use provided icon and always supply a pending intent
	to open Emacs once the notification is clicked.

	* java/res/layout/sdk8_notifications_view.xml
	(sdk8_notifications_title, sdk8_notifications_content): Set
	foreground color to #000000.

	* src/androidselect.c (android_init_emacs_desktop_notification):
	Update signature of <init>.
	(android_locate_icon): New function.
	(android_notifications_notify_1): New arg ICON.
	(Fandroid_notifications_notify): New parameter icon.
	(syms_of_androidselect): <QCicon>: New symbol.

2023-08-20  Andrea Corallo  <acorallo@gnu.org>

	* Introduce `help-display-function-type' customizable var (bug#65288).

		* lisp/help-fns.el (help-display-function-type): New
		customizable var.
		(help-fns--signature): Make use of.

2023-08-20  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	* lisp/isearch.el (isearch-resume): Add isearch-push-state (bug#65379).

2023-08-20  Stefan Kangas  <stefankangas@gmail.com>

	Delete some Emacs 19/21 compat code

	* lisp/erc/erc-goodies.el (erc-occur):
	* lisp/net/newst-plainview.el (newsticker--buffer-redraw): Delete
	Emacs 21 compat code.
	* lisp/progmodes/sql.el (sql-accumulate-and-indent): Delete Emacs
	19 compat code.

2023-08-20  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/term.el (term--update-term-menu): Simplify.

2023-08-20  Po Lu  <luangruo@yahoo.com>

	Repair desktop notification display on Android 2.3 and 2.2

	* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
	Create a pending intent and set it as the contentIntent when
	building a notification by hand.

2023-08-20  Po Lu  <luangruo@yahoo.com>

	Support desktop notifications on Android

	* doc/emacs/android.texi (Android Environment): Correct list of
	permissions granted by default.

	* doc/lispref/os.texi (Desktop Notifications): Document the new
	function `android-notifications-notify' and its limitations.

	* java/AndroidManifest.xml.in: Request notification permissions.

	* java/org/gnu/emacs/EmacsDesktopNotification.java: New file.

	* java/res/layout/sdk8_notifications_view.xml: New file holding
	substitute notification widget definitions for Android versions
	prior to 3.0.

	* java/res/values/strings.xml: Remove inadvertently introduced
	tag attribute.

	* lisp/org/org-clock.el (haiku-notifications-notify): Correct
	file name in function declaration.
	(android-notifications-notify): New declaration.
	(org-show-notification): Use `android-notifications-notify'.

	* src/androidselect.c (android_init_emacs_desktop_notification)
	(android_notifications_notify_1, Fandroid_notifications_notify):
	New functions.
	(init_androidselect, syms_of_androidselect): Initialize new
	class and define new subr.

2023-08-20  Lin Sun  <sunlin7@hotmail.com>

	Allow fetching URL at point without switching to it

	* lisp/net/eww.el (eww-open-in-new-buffer):  Stay on current
	buffer when invoked with prefix argument.  (Bug#65346)

2023-08-20  Michael Albinus  <michael.albinus@gmx.de>

	New user option pcomplete-remote-file-ignore

	* etc/NEWS: Mention pcomplete-remote-file-ignore.

	* lisp/pcomplete.el (pcomplete-remote-file-ignore):
	New user option.
	(pcomplete--entries): Use it.

	* lisp/shell.el (shell-completion-vars):
	Set 'pcomplete-remote-file-ignore'.

2023-08-20  Po Lu  <luangruo@yahoo.com>

	Fix libselinux object leaks

	* src/fileio.c (Fcopy_file, Fset_file_selinux_context): Call
	freecon prior to signaling file errors.

2023-08-20  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_decompose_compound_glyph): New argument
	GET_METRICS.  Call this function to retrieve glyph metrics used
	to compute phantom points when a component glyph's anchor point
	is one.
	(sfnt_decompose_glyph, sfnt_build_glyph_outline): Plumb
	GET_METRICS these two functions.
	(sfnt_interpret_shc): Don't shift the provided reference point.
	(sfnt_transform_f26dot6): Eschew looping through X and Y if no
	offsets are provided.
	(sfnt_interpret_compound_glyph_2): Discontinue initializing
	phantom points here.
	(sfnt_interpret_compound_glyph_1): Do not incorporate phantom
	points into the ultimately produced glyph outline.  Correctly
	provide for phantom childanchor points.
	(sfnt_test_get_metrics, main): Update tests.

	* src/sfnt.h: Update prototypes.

	* src/sfntfont.c (struct sfntfont_get_glyph_outline_dcontext):
	New fields `hmtx', `hhea' and `maxp'.
	(sfntfont_get_metrics): New function.
	(sfntfont_get_glyph_outline): Provide new tables and the new
	callback function.

2023-08-19  Ken Brown  <kbrown@cornell.edu>

	Skip hanging tests on Cygwin (bug#65325)

	* test/lisp/server-tests.el (server-tests/can-create-frames-p):
	Define to be nil on Cygwin unless Emacs has at least one of the
	features gfilenotify, dbus, or threads.  This causes three tests
	to be skipped.

	* test/src/keyboard-tests.el (keyboard-unread-command-events):
	Skip on Cygwin unless Emacs has at least one of the features
	gfilenotify, dbus, or threads.

2023-08-19  Michael Albinus  <michael.albinus@gmx.de>

	Extend T

	* lisp/net/tramp.el (tramp-completion-file-name-handler-alist):
	Add `file-directory-p'.
	(tramp-completion-handle-file-directory-p): New defun.

2023-08-19  dalu  <mou.tong@outlook.com>  (tiny change)

	Add "lexical" LSP server for Elixir to Eglot

	* lisp/progmodes/eglot.el (eglot-server-programs): Add lexical.
	It does not support MS-Windows currently.  (Bug#65359)

2023-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Simplify dictionary-close even more

	* lisp/net/dictionary.el (dictionary-close): Simplify.
	Suggested by Philip Kaludercic <philipk@posteo.net>.

2023-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Remove Emacs 24 compat code from reftex

	* lisp/textmodes/reftex-index.el (reftex-display-index):
	* lisp/textmodes/reftex-toc.el (reftex-toc): Assume that we have
	'cursor-intangible-mode', which was added in Emacs 25.

2023-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Remove XEmacs compat code from reftex

	* lisp/textmodes/reftex-toc.el (reftex-toc, reftex-toc-dframe-p)
	(reftex-toc-revert, reftex-toc-toggle-dedicated-frame): Delete
	XEmacs compat code.
	* lisp/textmodes/reftex.el (reftex-window-height): Make into
	obsolete function alias of 'window-height'.  Update all callers.
	(reftex-create-customize-menu): Assume recent version of cus-edit.el.

2023-08-19  Philip Kaludercic  <philipk@posteo.net>

	Add command to start Emacs with specific packages

	* lisp/emacs-lisp/package.el (package--dependencies): Extend function
	to handle and return package descriptors.
	(package-isolate): Add new command.
	* etc/NEWS: Announce new command.

2023-08-19  Mauro Aranda  <maurooaranda@gmail.com>

	Specialize default-get for alist widgets (Bug#63290)

	* lisp/wid-edit.el (widget-list-default-get)
	(widget-alist-default-get): New functions.
	(list, alist): Use it.
	* test/lisp/cus-edit-tests.el (cus-edit-test-bug63290-option)
	(cus-edit-test-bug63290-option-2): New test options.
	(cus-edit-test-bug63290): New test.
	* test/lisp/wid-edit-tests.el (widget-test-alist-default-value-1)
	(widget-test-alist-default-value-2)
	(widget-test-alist-default-value-3)
	(widget-test-alist-default-value-4): New tests.

2023-08-19  Michael Albinus  <michael.albinus@gmx.de>

	Adapt test in minibuffer-tests.el

	* test/lisp/minibuffer-tests.el (test-completion-all-sorted-completions):
	Simplify function declaration.

2023-08-19  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp test

	* test/lisp/net/tramp-archive-tests.el
	(tramp-archive-test44-user-group-ids): Extend test.

2023-08-19  Michael Albinus  <michael.albinus@gmx.de>

	Simplify use of Tramp messages

	* doc/misc/tramp.texi (Traces and Profiles): Don't require a
	minimum `tramp-verbose' level when `tramp-debug-command-messages'
	is non-nil.

	* lisp/net/tramp-message.el (tramp-debug-command-messages):
	Adapt docstring.
	(tramp-message, with-tramp-debug-message): Don't require a minimum
	`tramp-verbose' level when `tramp-debug-command-messages' is non-nil.

2023-08-19  Eli Zaretskii  <eliz@gnu.org>

	Fix behavior of client frames when 'find-alternate-file' is used

	* lisp/files.el (find-alternate-file-dont-kill-client): New var.
	(find-alternate-file): Bind it to a special value when invoking
	kill-buffer-hook.
	* lisp/server.el (server-delete-client): If NOFRAME is
	'dont-kill-client', don't kill the client and its terminals.
	(server-buffer-done): Pass 'find-alternate-file-dont-kill-client'
	to 'server-delete-client'.  (Bug#65277)

2023-08-19  Po Lu  <luangruo@yahoo.com>

	Make some file I/O operations more robust on Android

	* src/android.h (android_readlinkat): New prototype.
	* src/androidvfs.c (struct android_vops): New function pointer
	`readlink'.
	(unix_vfs_ops, android_unix_readlink, afs_vfs_ops)
	(android_afs_readlink, content_vfs_ops, android_content_mkdir)
	(android_content_chmod, authority_vfs_ops)
	(android_authority_readlink, saf_root_vfs_ops)
	(android_saf_root_readlink, saf_tree_vfs_ops)
	(android_saf_tree_readlink, saf_file_vfs_ops, saf_new_vfs_ops)
	(android_saf_new_readlink, root_vfs_ops): Implement new
	`readlink' vops for each vnode type.
	(android_readlinkat): New function.

	* src/fileio.c (Fcopy_file): Be more flexible about SELinux
	errors under Android.
	(emacs_readlinkat): Use `android_readlink' when built as
	libemacs.so.

2023-08-19  Po Lu  <luangruo@yahoo.com>

	Disable text conversion inside read-char-exclusive

	* src/lread.c (read_filtered_event): Disable text conversion if
	merely ascii_required.  (bug#65370)

2023-08-19  Po Lu  <luangruo@yahoo.com>

	Disable text conversion within read-char-from-minibuffer

	* lisp/subr.el (read-char-from-minibuffer): Disable text
	conversion.  (bug#65370)
	(y-or-n-p): Remove redundant binding of
	`override-text-conversion-style', given that read-key already
	disables text conversion.

	* src/textconv.c (Fset_text_conversion_style): Always reset text
	conversion for the selected frame in addition to any displaying
	current_buffer.

2023-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	(Fmake_local_variable): Fix bug#65209

	* src/data.c (Fmake_local_variable): Don't delegate to `Fset` since
	they have to obey `let_shadows_buffer_binding_p` whereas we don't.

	* test/src/data-tests.el (data-tests--bug65209): New var.
	(data-tests-make-local-bug65209): New test.

2023-08-18  Mattias Engdegård  <mattiase@acm.org>

	Show duration of compilation when it stops (bug#65251)

	Patch by Helmut Eller, lightly edited.

	* lisp/progmodes/compile.el (compilation--start-time): New variable.
	(compilation-start): Set it.
	(compilation-handle-exit): Display duration.

2023-08-18  Po Lu  <luangruo@yahoo.com>

	Don't disable terminfo on non-GUI Android builds

	* configure.ac (TERMINFO, LIBS_TERMCAP): Clear only if
	REALLY_ANDROID.  (bug#65340)

2023-08-17  Eli Zaretskii  <eliz@gnu.org>

	Fix invocation with --debug-init and changes to debug-ignored-errors

	* src/eval.c (syms_of_eval) <debug-ignored-errors>: Mention in the
	doc string the caveat with removing errors from the standard value
	while invoking Emacs with --debug-init.

	* lisp/startup.el (startup--load-user-init-file): If the user's
	init files add to the value of 'debug-ignored-errors', make sure
	the additions are preserved after restoring the value we reset
	during loading the init file, if Emacs was invoked with
	"--debug-init".  (Bug#65267)

2023-08-17  Robert Pluim  <rpluim@gmail.com>

	Escape braces in regexp in make-info-dir

	This fixes a build failure on Alpine Linux.

	* build-aux/make-info-dir (detexinfo): Escape the braces, since some
	awk variants (such as BusyBox's) don't like regexp interval
	specifications that aren't numbers.  Bug#65323

2023-08-17  Po Lu  <luangruo@yahoo.com>

	Introduce support for Desktop Notifications on Haiku

	* doc/lispref/os.texi (Desktop Notifications): Document Haiku
	desktop notifications.

	* etc/NEWS: Announce this change.

	* lisp/org/org-clock.el (haiku-notifications-notify): New
	declaration.
	(org-show-notification): Employ that function.

	* src/haiku_io.c (haiku_len) <NOTIFICATION_CLICK_EVENT>: Return
	the length for this type of event.

	* src/haiku_select.cc (my_team_id, be_display_notification): New
	functions.

	* src/haiku_support.cc (my_team_id, ArgvReceived): New
	functions.

	* src/haiku_support.h (enum haiku_event_type): New event type
	NOTIFICATION_CLICK_EVENT.
	(struct haiku_notification_click_event): New structure.

	* src/haikuselect.c (haiku_notifications_notify_1)
	(Fhaiku_notifications_notify): New functions.
	(syms_of_haikuselect): Register new defsubr.

	* src/haikuterm.c (haiku_read_socket):
	* src/haikuselect.h:
	* src/termhooks.h: Add new events for notification clicks on
	Haiku.

2023-08-17  Po Lu  <luangruo@yahoo.com>

	Fix earlier change in subr.el

	* lisp/subr.el (event-start, event-end): Don't take the car of
	EVENT if it's not an event with parameters.

2023-08-17  Spencer Baugh  <sbaugh@janestreet.com>

	(project-find-file): Allow current file name "other project"'s future history

	* lisp/progmodes/project.el (project-find-file):
	Allow using the relative file name of the current buffer in "other
	project" as well (bug#63829).

2023-08-17  Dmitry Gutov  <dmitry@gutov.dev>

	* src/fileio.c (Ffile_name_concat): Improve docstring.

2023-08-17  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac (emacs_cv_tputs_lib): Only circumvent termcap if
	Android windowing support is enabled.  (bug#65340)

	* etc/PROBLEMS: Fix typo in section recouting problems with the
	Anonymous Pro font.

	* lisp/subr.el (event-start, event-end): Return the mouse
	position list tied to touchscreen-begin and end events.
	Reported by Stefan Monnier <monnier@iro.umontreal.ca>.

	* lisp/version.el (emacs-build-system, emacs-build-time)
	(emacs-repository-get-version, emacs-repository-get-branch):
	Bypass Android specific code on non-GUI builds running on
	Android.  (bug#65340)

	* lisp/wid-edit.el (widget-event-point): Remove now redundant
	code.

2023-08-17  Po Lu  <luangruo@yahoo.com>

	Fix potential NULL pointer dereference

	* java/org/gnu/emacs/EmacsDialog.java (display): Initialize
	rc.thing to false.

2023-08-16  Mattias Engdegård  <mattiase@acm.org>

	tibetan.el: compute constants at compile time, optimize regexps

	* lisp/language/tibetan.el (tibetan-subjoined-transcription-alist)
	(tibetan-regexp, tibetan-precomposed-regexp)
	(tibetan-precomposition-rule-regexp):
	Evaluate at compile time.  Use regexp-opt.

2023-08-16  Stefan Kangas  <stefankangas@gmail.com>

	Speed up dictionary--count-mode-buffers

	* lisp/net/dictionary.el (dictionary--count-mode-buffers): Make
	faster.  Patch by Visuwesh <visuweshm@gmail.com>.

2023-08-16  Stefan Kangas  <stefankangas@gmail.com>

	Add test for `calculator-exp`

	* test/lisp/calculator-tests.el (calculator-expt): New test.

2023-08-16  Stefan Kangas  <stefankangas@gmail.com>

	Make `term-mode` non-interactive

	* lisp/term.el (term-mode): Mark as non-interactive.

2023-08-16  Gregory Heytings  <gregory@heytings.org>

	Improve 'emake --quieter'

	* admin/emake: Improve the output when the --quieter option is
	used.

2023-08-16  Jim Porter  <jporterbugs@gmail.com>

	Show how to call an Elisp function of the same name as an Eshell built-in

	* doc/misc/eshell.texi (Built-ins): Expand documentation.

2023-08-16  Jim Porter  <jporterbugs@gmail.com>

	Add 'compile' builtin command for Eshell

	* lisp/eshell/em-unix.el (eshell-compile, eshell/compile): New
	functions.
	(eshell/make, eshell-grep): Use 'eshell-compile'.
	(eshell/glimpse): It's no longer necessary to let-bind 'null-device';
	'eshell-grep' no longer calls 'grep' (the Lisp function), which needed
	'null-device' to be nil for this case.

	* test/lisp/eshell/em-unix-tests.el: New file.

	* doc/misc/eshell.texi (Built-ins): Document the 'compile' builtin.

	* etc/NEWS: Announce this change (bug#65273).

2023-08-16  Gregory Heytings  <gregory@heytings.org>

	Various improvements to 'emake'

	* admin/emake: Highlight the result of 'check-maybe' in red.
	Reindent a few lines.  Add a line in the filters.  Clarify the
	documentation.

2023-08-16  Gregory Heytings  <gregory@heytings.org>

	Add a target to byte-compile all tests without running them

	* test/Makefile.in: Add a check-byte-compile target.
	* Makefile.in: Add the check-byte-compile target to CHECK_TARGETS.

2023-08-16  Gregory Heytings  <gregory@heytings.org>

	Simplify 'with-restriction' and 'without-restriction'

	* lisp/subr.el (with-restriction, without-restriction): Merge the
	bodies of the 'internal--with-restriction' and
	'internal--without-restriction' function into the macros.  The
	result is more efficient than a funcall.
	(internal--with-restriction, internal--without-restriction):
	Remove.
	Suggested by Mattias Engdegård.

2023-08-16  Gregory Heytings  <gregory@heytings.org>

	Simplify 'without-restriction'

	This simplification is symmetrical to 01fb898420.

	* src/editfns.c: (Finternal__labeled_widen): Add a call to
	'Fwiden', and rename from 'internal--unlabel-restriction'.
	(unwind_labeled_narrow_to_region): Use the renamed function, and
	remove the call to 'Fwiden'.
	(syms_of_editfns): Rename the symbol.

	* lisp/subr.el (internal--without-restriction): Use the renamed
	function.

2023-08-16  Gregory Heytings  <gregory@heytings.org>

	Fix combine-change-call

	* lisp/subr.el (combine-change-calls-1): Rewrite and document
	the part which creates the undo-list element.  Fixes bug#60467
	and bug#64989.

2023-08-16  Mattias Engdegård  <mattiase@acm.org>

	ob-tangle.el: fix unintended range in regexp

	* lisp/org/ob-tangle.el (org-babel-interpret-file-mode):
	Repair parts of regexp that should only match +, - and =.
	* lisp/files.el (file-modes-symbolic-to-number):
	Fix the same error in a doc string; this seems to be where
	the mistake originated.

2023-08-16  Mattias Engdegård  <mattiase@acm.org>

	Fix Info parser regexp mistake

	* lisp/info.el (Info-split-parameter-string):
	The `\sX` syntax construct isn't valid inside character alternatives;
	follow the obvious intention.

2023-08-16  Mattias Engdegård  <mattiase@acm.org>

	Remedy wrong-looking \(:?...\) regexp constructs

	When we see \(:?...\) in a regexp it very much looks like a typo
	for a \(?:...\) construct and often is, so do something about
	all of these (one of which being another mistake).
	Doing so silences an optional relint check.

	* lisp/comint.el (comint-replace-by-expanded-history-before-point):
	* lisp/term.el (term-replace-by-expanded-history-before-point):
	Move :? out from capturing group where it does not need to be,
	to avoid confusion.
	* lisp/emacs-lisp/cl-indent.el (common-lisp-loop-part-indentation):
	A capturing group isn't needed here; turn it into simple bracketing.
	* lisp/progmodes/sql.el (sql--completion-table):
	Change :? into ?: which was clearly meant here.

2023-08-16  Po Lu  <luangruo@yahoo.com>

	* etc/PROBLEMS: Document a problem with the Anonymous Pro font.

2023-08-16  Eli Zaretskii  <eliz@gnu.org>

	Revert "Fix slow "C-h f" in Emacs built without native compilation"

	This reverts commit 545f95d1a3213318389ecadc7cfff3f48b555b03.
	It is no longer needed, as comp.el and comp-cstr.el are now
	byte-compiled even if native-compilation is not built-in.

2023-08-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac: Test for getpwent using gl_CHECK_FUNCS_ANDROID.
	(bug#65319)

	* etc/MACHINES (Android): Mention that a non-GUI build is also
	possible on Android.

	* lisp/loadup.el: Provide for regular builds on Android.
	(bug#65339)

	* lisp/wid-edit.el (widget-event-start): Remove function, since
	event-start now does the same thing.
	(widget-button--check-and-call-button, widget-button-click):
	Adjust correspondingly.  Reported by Stefan Monnier
	<monnier@iro.umontreal.ca>.

	* src/sysdep.c (close_output_streams): Apply workarounds for the
	file descriptor sanitizer on all builds where __ANDROID__ is
	defined, not just Android port builds.  (bug#65340)

2023-08-16  Michael Albinus  <michael.albinus@gmx.de>

	Fix infloop error in Tramp

	* lisp/net/tramp-sh.el (tramp-find-file-exists-command): Do not
	call `tramp-get-ls-command'.  (Bug#65321)

2023-08-16  Andrea Corallo  <acorallo@gnu.org>

	* lisp/Makefile.in (compile-targets): Always byte compile native comp.

2023-08-16  Po Lu  <luangruo@yahoo.com>

	Improve java/DEBUG

	* etc/DEBUG: Significantly reword and expand section.
	(bug#65268)

2023-08-16  Po Lu  <luangruo@yahoo.com>

	Remove get_boot_time from msdos.c

	* src/msdos.c (get_boot_time): That all of the actual locking in
	filelock.c is under #ifndef MSDOS escaped my notice.  Remove
	this unused function.

2023-08-16  Po Lu  <luangruo@yahoo.com>

	Fix display of compound glyphs that employ simple transforms

	* src/sfnt.c (sfnt_transform_coordinates): Always compute an
	affine transform matrix except if no scale is provided at all.
	Unconditionally apply x_off and y_off.
	(sfnt_decompose_compound_glyph): Delete arguments OF_X and
	OFF_Y.  Apply component offsets after writing simple glyph
	contours.
	(sfnt_decompose_glyph): Modify for new calling convention.
	(sfnt_transform_f26dot6): Modify analogously to
	sfnt_decompose_compound_glyph.  Also correct anchor offset
	computation to scale the unscaled component anchor coordinates
	by the interpreter scale.
	(sfnt_interpret_compound_glyph_1): Also modify for new calling
	convention.
	* src/sfnt.h (struct sfnt_compound_glyph_component): <u>: Make
	scale fields signed.

2023-08-16  Bob Rogers  <rogers@rgrjr.com>

	Don't use the too-new command 'git get-url'

	* lisp/vc/vc-git.el (vc-git-repository-url):
	Don't use the too-new command 'git get-url' (bug#65315).

2023-08-16  F. Jason Park  <jp@neverwas.me>

	Add line-wise movement commands for erc-fill-wrap

	* lisp/erc/erc-fill.el (erc-fill-line-spacing): Revise doc string.
	(erc-fill--wrap-escape-hidden-speaker): New helper function to move
	point to beginning of visible text.
	(erc-fill--wrap-beginning-of-line): Factor out adjustment for hidden
	speakers.
	(erc-fill--wrap-previous-line, erc-fill--wrap-next-line): Add commands
	for moving to previous and next line in a manner consistent with the
	value of `erc-fill--wrap-visual-keys'.
	(erc-fill-wrap-mode-map): Add remap bindings for `next-line' and
	`previous-line'.
	(erc-fill-wrap-mode): Revise doc string.
	(erc-fill-wrap-nudge): Fix vertical anchoring so that point's line
	remains steadier throughout the adjustment.  (Bug#60936)

2023-08-16  F. Jason Park  <jp@neverwas.me>

	Deprecate erc-button-nickname-callback-function

	* lisp/erc/erc-button.el (erc-button-nickname-callback-function):
	Deprecate this function-valued variable, first introduced in ERC 5.6
	and Emacs 30, to dissuade consumers of the old `erc-button-alist'
	nickname interface from meddling with the on-click callback of
	buttonized nicks.  If necessary, third parties can instead add their
	own propertizing logic in something like `erc-insert-modify-hook'.
	Also change default callback to a wrapper that discards all but the
	first arg.  This effectively declares that `erc-data' values for
	nicknames may contain more than one element in the near future.
	(erc-button--perform-nick-popup): New default nick-button callback
	function wrapping `erc-nick-popup' in order to adapt it to the
	`erc-button-nickname-callback-function' interface.  (Bug#60933)

2023-08-16  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify get_boot_sec

	* src/filelock.c (get_boot_sec):
	Simplify by removing a special case for MS-DOS.
	* src/msdos.c (get_boot_time): New dummy that always fails.

2023-08-16  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2023-08-15  Stefan Kangas  <stefankangas@gmail.com>

	Fix typo in pcomplete/sha512sum alias

	* lisp/pcmpl-unix.el (pcomplete/sha512sum): Rename from
	'pcomplete/sha521sum'.

2023-08-15  kobarity  <kobarity@gmail.com>

	Fix test in python-tests.el added by bug #62092

	* test/lisp/progmodes/python-tests.el
	(python-info-dedenter-opening-block-positions-6): Fix indentation.
	(python-info-dedenter-opening-block-positions-7): Add calling
	`should'.  Add RESTORE-POINT argument when calling
	`python-tests-look-at'.

2023-08-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/help-fns.el: Revert commit c12838c73ef161850a081f9ccea6e375b7c2f93b

	* lisp/help-fns.el (help-fns--describe-function-or-command-prompt):
	Don't allow specifying a non-existing function.

2023-08-15  Michael Albinus  <michael.albinus@gmx.de>

	Some Tramp optimizations

	* lisp/net/tramp-sh.el (tramp-perl-file-name-all-completions):
	Extend.  It shall return also some basic file attributes.
	(tramp-bundle-read-file-names): Simplify data to be transferred.
	(tramp-sh-handle-file-name-all-completions): Read additional attributes.
	(tramp-sh-handle-expand-file-name): Check also "doas".
	(tramp-bundle-read-file-names): Handle changed data layout.
	(tramp-find-file-exists-command): Set "file-exists-p" file property.

2023-08-15  Michael Albinus  <michael.albinus@gmx.de>

	Fix test in files-tests.el

	* test/lisp/files-tests.el
	(files-tests-file-name-non-special-unhandled-file-name-directory):
	Fix test.

2023-08-15  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2023-08-15  Po Lu  <luangruo@yahoo.com>

	Don't use // substitution in `ndk_resolve_import_module'

	* m4/ndk-build.m4 (ndk_resolve_import_module): Stop testing if
	ndk_commands is empty; just eval it.  (bug#65292)

2023-08-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/pp.el (pp-fill): Fix bug#65159

	* doc/lispref/commands.texi (Adjusting Point): Document the adjustment

2023-08-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-generic.el: Fix docstring for methods with `cl-call-next-method`

	* lisp/emacs-lisp/cl-generic.el (cl--generic-method-info):
	Fix docstring extraction for "curried" methods (bug#65270).

2023-08-15  Po Lu  <luangruo@yahoo.com>

	Micro-optimize GXAXIS

	* src/sfnt.c (GXAXIS): Check for the availability of naxis slot
	elements in a single operation.

2023-08-14  Stefan Kangas  <stefankangas@gmail.com>

	Add native WebP support on macOS (Bug#59242)

	* src/image.c (syms_of_image)
	[HAVE_NATIVE_IMAGE_API && HAVE_NS && NS_IMPL_COCOA]:
	Add webp as an image type.
	* src/nsimage.m (ns_can_use_native_image_api)
	[NS_IMPL_COCOA && !HAVE_WEBP]: Add webp to list of possible image
	types in the native image support lookup.

2023-08-14  Eli Zaretskii  <eliz@gnu.org>

	Fix slow "C-h f" in Emacs built without native compilation

	* lisp/help-fns.el (help-fns--signature): Don't try calling
	'comp-function-type-spec' if Emacs was built without native
	compilation.  (Bug#65250)

2023-08-14  Mattias Engdegård  <mattiase@acm.org>

	Actually check the result of `equal` comparisons in tests

	* test/lisp/calc/calc-tests.el (calc-bit-ops):
	* test/lisp/files-tests.el
	(files-tests-file-name-non-special-substitute-in-file-name)
	(files-tests-file-name-non-special-temporary-file-directory)
	(files-tests-file-name-non-special-unhandled-file-name-directory):
	Add missing `should` assertions.

2023-08-14  Mattias Engdegård  <mattiase@acm.org>

	Ignore ert-deftest body value

	* lisp/emacs-lisp/ert.el (ert-deftest):
	Since the return value of the body isn't going to be used, ignore
	it explicitly so that the compiler can warn if we try to return
	something anyway.  In particular, this exposes some comparisons
	whose result weren't actually checked.

2023-08-14  Po Lu  <luangruo@yahoo.com>

	Correct touch screen event translation

	* lisp/touch-screen.el (touch-screen-handle-point-up)
	<mouse-drag>: Provide for situations where both the old and new
	posns land on a special area of the window by comparing their
	nominal row, column, and area.

2023-08-14  Mattias Engdegård  <mattiase@acm.org>

	Revert "* lisp/emacs-lisp/ert.el (ert-run-tests-batch-and-exit): Inhibit interaction"

	This reverts commit bb9133f09dafb069cafe2bea72452bd34b3d6dd2,
	because it inadvertently made many tests fail.

2023-08-14  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	fdab7aaadac ; * lisp/net/tramp.el (tramp-skeleton-write-region): Fix ...
	3eff53b4564 Update to Org 9.6.7-13-g99cc96

2023-08-14  Po Lu  <luangruo@yahoo.com>

	Improve efficiency of checking for access to authority documents

	* java/org/gnu/emacs/EmacsService.java (checkContentUri): Take a
	string instead of a byte array.  Then, use
	checkCallingUriPermission, in lieu of opening the file.
	* src/android.c (android_check_content_access): Delete unused
	function.
	(android_init_emacs_service): Adjust for changes to
	checkContentUri's signature.
	* src/androidvfs.c (android_get_content_name): Return the file
	name in a new buffer.
	(android_check_content_access): Adjust correspondingly.
	(android_authority_name): Verify NAME is a valid JNI string.

2023-08-14  Po Lu  <luangruo@yahoo.com>

	Remove workarounds for lib/boot-time.o failures

	* configure.ac (UTMP_H_DEFINES_BOOT_TIME):
	* src/conf_post.h [__ANDROID__]: Delete workarounds, now that
	Gnulib has been corrected.

2023-08-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* etc/NEWS (cl-print-ellipsis): Mention `backtrace-ellipsis`

	* lisp/emacs-lisp/ert.el (ert-run-tests-batch-and-exit): Inhibit interaction

2023-08-13  LdBeth  <andpuke@foxmail.com>

	Fix auth-source-macos-keychain (bug#64977)

	* lisp/auth-source.el (auth-source-macos-keychain-search)
	(auth-source-macos-keychain-search-items): Fix handling of user
	and port.

	* test/lisp/auth-source-tests.el (test-macos-keychain-search): New test.

2023-08-13  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	c42970d7758 Handle last-coding-system-used in Tramp for all backends
	ffafe38d030 Add 2 Welsh characters to iso-transl.el

2023-08-13  Stefan Kangas  <stefankangas@gmail.com>

	Remove dead code in `eshell/diff`

	* lisp/eshell/em-unix.el (eshell/diff): Adjust for diff-mode; do not
	set 'compilation-finish-functions', as it is never used.  (Bug#65245)
	(eshell-diff-quit): Make into an obsolete function alias for 'ignore';
	the command has been a no-op for close to two decades.
	(eshell-diff-window-config): Make obsolete.

2023-08-13  Po Lu  <luangruo@yahoo.com>

	Describe how to read Logcat output in etc/DEBUG

	* etc/DEBUG (Debugging Emacs on Android): Describe the
	three kinds of crash messages Android prints to logcat,
	and how they are read.  (bug#65268)

2023-08-13  Stefan Kangas  <stefankangas@gmail.com>

	Delete XEmacs compat code from supercite.el

	* lisp/mail/supercite.el (sc-ask): Delete compatibility code;
	'button-release-event-p' is only defined in XEmacs.

2023-08-13  Mattias Engdegård  <mattiase@acm.org>

	`equal` is not error-free

	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns)
	(side-effect-and-error-free-fns)
	(byte-compile-side-effect-and-error-free-ops)
	(byte-compile-side-effect-free-ops):
	Demote `equal` and `equal-including-properties` from error-free to
	merely side-effect-free since they may in fact signal error on
	circularity.

2023-08-13  Eli Zaretskii  <eliz@gnu.org>

	Avoid unexpected implicit completion in find-func.el

	* lisp/emacs-lisp/find-func.el (find-function-read): Don't allow
	implicit completion, which could produce unexpected results.
	Patch by Jens Schmidt <jschmidt4gnu@vodafonemail.de>.  (Bug#65058)

2023-08-13  Po Lu  <luangruo@yahoo.com>

	Temporary fixes for the Android build

	* configure.ac:
	* src/conf_post.h [__ANDROID__]: Define substitutes for functions
	used by Gnulib that are occasionally absent.

2023-08-13  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* msdos/sed1v2.inp (TIMER_TIME_LIB): Define to empty string.

2023-08-13  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* msdos/sedlibmk.inp (OMIT_GNULIB_MODULE_boot-time): Define to
	true.
	* src/filelock.c (get_boot_sec) [MSDOS]: Return 0; this
	information is probably unavailable.  It is also irrelevant as
	MS-DOS is a single-process operating system.

2023-08-13  Paul Eggert  <eggert@cs.ucla.edu>

	Improve boot-time gathering

	Simplify Emacs proper by using Gnulib’s boot-time module
	instead of doing it all by hand.  This should port Emacs
	better to obscurish hosts, as Bruno Haible has merged the
	best of Emacs’s and Gnulib’s boot-time gathering.
	* lib/boot-time-aux.h, lib/boot-time.c, lib/boot-time.h:
	* lib/readutmp.h, m4/readutmp.m4: New files, copied from Gnulib.
	* admin/merge-gnulib (GNULIB_MODULES): Add boot-time.
	* configure.ac: Do not check for utmp.h;
	the boot-time module now does this.
	(BOOT_TIME_FILE): Remove; no longer used.
	* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
	* src/filelock.c [__FreeBSD__]: Do not include <sys/sysctl.h>.
	[HAVE_UTMP_H]: Do not include utmp.h.
	Include boot-time instead: boot-time does the work now.
	(BOOT_TIME) [HAVE_ANDROID && !ANDROID_STUBIFY]: Don’t undef.
	(WTMP_FILE): Don’t define.
	(boot_time, boot_time_initialized, get_boot_time_1, get_boot_time):
	Remove.
	(get_boot_sec): New function that simply calls Gnulib get_boot_time.
	(lock_file_1, current_lock_owner): Use get_boot_sec instead
	of get_boot_time.

2023-08-13  Po Lu  <luangruo@yahoo.com>

	Fix bootstrap-clean in the cross directory on USG

	* cross/Makefile.in (FIND_DELETE): New variable.
	(CLEAN_SUBDIRS): Avoid including src if not already present.
	(clean, bootstrap-clean, etc): Use FIND_DELETE.

2023-08-13  Po Lu  <luangruo@yahoo.com>

	Employ careadlinkat in getProcName

	* src/android.c (android_proc_name): Delete args BUFFER and
	SIZE.  Return buffer allocated by careadlinkat.
	(NATIVE_NAME): Adjust correspondingly.

2023-08-12  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid stpncpy

	It’s not worth the porting hassle, and as the glibc manual says,
	“this function is generally a poor choice for processing strings”.
	* admin/merge-gnulib (GNULIB_MODULES): Remove stpncpy.
	* exec/configure.ac: Do not check for stpncpy.
	* exec/exec.c (rpl_stpncpy, stpncpy): Remove this replacement.
	(exec_0): Properly clear buffer1.  Use memcpy instead of
	stpncpy to add the trailing name.  This code is clearly
	still suboptimal but efficiency is not that important here
	and I tried to minimize the change.
	* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.

2023-08-12  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2023-08-12  Paul Eggert  <eggert@cs.ucla.edu>

	Adjust to recent Gnulib changes

	The Gnulib regex module now pulls in some wide-char stuff
	that I think Emacs doesn’t need.
	* admin/merge-gnulib (AVOIDED_MODULES): Add iswblank, iswctype,
	iswdigit, iswxdigit, wctype.

2023-08-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el (cl--labels-convert): Remove outdated fixme

	This was fixed in commit 44d7fd3805.

2023-08-12  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	842dbf500e0 * Fix `batch-byte+native-compile' target directory.
	8dbd5aa1eef Avoid crashes in 'display_count_lines' when current buffe...
	47b4f4cf783 ; * doc/emacs/mini.texi (Completion Commands): Fix a typo...
	78999d52136 Update csharp tree-sitter support due to upstream changes
	556cb01b48e Substitute command keys in 'ielm-header' at use time
	99367078e50 ; * etc/PROBLEMS: Add entry about XIM problems (bug#65205).
	03e897c08fa Fix rare crashes in redisplay due to problems with fontsets
	b1ba06a1e4b Fix a typo in 'leuven-dark-theme.el'
	e80a9dcabb9 ; * admin/git-bisect-start: Update failing commits
	9091f42784b ; * admin/git-bisect-start: Update failing commits
	344ac529ca9 ; * etc/PROBLEMS: Fix typo.
	bccf848b26c Adapt Tramp test
	71bc060e403 Properly expand the JSX indentation rules in 'js-ts-mode'
	889cfb42ed9 * Add `emacs-lisp-native-compile' to easy-menu.
	4535aafa8a3 * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Si...
	173af0cad51 * Introduce `emacs-lisp-native-compile'.
	063d7d89d7a Fix the -x switch in non-X builds
	5a7fb0b39b7 Document that `set-mouse-color' does not work everywhere
	d06fc72496f ; * doc/emacs/dired.texi (Misc Dired Features): Fix last ...
	97b8ac376b5 Fix the effects and documentation of 'dired-free-space'
	75c72e59f69 ; Fix typo
	6d11b7b3007 Fix cross-reference to eldoc in eglot manual
	913e50aba6c Add native-compilation to Emacs Lisp mode menu
	b93107c20b2 Fix emacs-lisp-native-compile-and-load eln target directo...

2023-08-12  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	4767f5eaeed Better fix for bug#65156
	dd1d8414b33 Fix insert-file-contents with pipes and /dev/stdin
	50649a6d1a2 ; * etc/PROBLEMS: Fix wording.
	f0dda682ffb ; * etc/NEWS.28: Add deletion of levents.el.
	f4acae842c0 Fix bug#65042
	e1874c4e8bf * configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes (b...
	ef8838c3a5f * etc/NEWS: Mention tramp-show-ad-hoc-proxies.
	495bee253fc * test/lisp/net/tramp-tests.el (tramp-test42-utf8): Skip ...
	de1effd73b4 ; Fix last change
	7c7966862bc * test/lisp/net/tramp-tests.el (tramp-test10-write-region...
	16205e8db65 ; Improve help-echo in package.el
	a95e7006989 ; Filter packages available for upgrade via menu bar
	adff72dd1d2 Fix reverting Rmail buffers

2023-08-12  Mattias Engdegård  <mattiase@acm.org>

	rx: Better translation of char-matching patterns

	Translate or-patterns that (even partially) match single characters
	into character alternatives which are more efficient in matching,
	sometimes algorithmically so.  Example:

	  (or "%" (in "a-z") space)

	was previously translated to

	  "%\\|[a-z]\\|[[:space:]]"

	but now becomes

	  "[%a-z[:space:]]"

	Single-char patterns include `nonl` and `anychar`, which now can also
	be used in set operations (union, complement and intersection), and
	character classes.  For example, `(or nonl "\n")` is now equivalent to
	`anychar`.

	* lisp/emacs-lisp/rx.el (rx--expand-def): Remove, split into...
	(rx--expand-def-form, rx--expand-def-symbol): ...these.
	(rx--translate-compat-symbol-entry)
	(rx--translate-compat-form-entry): New functions for handling the
	legacy extension mechanism.
	(rx--normalise-or-arg): Renamed to...
	(rx--normalise-char-pattern): ...this, and rewrite.
	(rx--all-string-or-args): Remove, split into...
	(rx--all-string-branches-p, rx--collect-or-strings): ...these.
	(rx--char-alt-union, rx--intersection-intervals)
	(rx--reduce-to-char-alt, rx--optimise-or-args)
	(rx--translate-char-alt, rx--human-readable): New.
	(rx--translate-or, rx--translate-not, rx--translate-intersection):
	Rewrite.
	(rx--charset-p, rx--intervals-to-alt, rx--charset-intervals)
	(rx--charset-union, rx--charset-intersection, rx--charset-all)
	(rx--translate-union): Remove.
	(rx--generate-alt): Decide whether to generate a negated character
	alternative.
	(rx--complement-intervals, rx--intersect-intervals)
	(rx--union-intervals): Rename to...
	(rx--interval-set-complement, rx--interval-set-intersection)
	(rx--interval-set-union): ...these.
	(rx--translate-symbol, rx--translate-form): Refactor extension
	processing.  Handle synthetic `rx--char-alt` form.
	* test/lisp/emacs-lisp/rx-tests.el (rx-or, rx-char-any-raw-byte)
	(rx-any, rx-charset-or): Adapt to changes and extend.
	* test/lisp/emacs-lisp/rx-tests.el (rx--complement-intervals)
	(rx--union-intervals, rx--intersect-intervals): Rename to...
	(rx--interval-set-complement, rx--interval-set-union)
	(rx--interval-set-intersection): ...these.

2023-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Improve dictionary-mode documentation

	* lisp/net/dictionary.el (dictionary-mode): Improve docstring

2023-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Convert dictionary-mode to define-derived-mode

	* lisp/net/dictionary.el (dictionary-instances): Delete.
	(dictionary-mode): Use define-derived-mode.
	(dictionary--count-mode-buffers): New function.
	(dictionary-close): Use above new function.

2023-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Remove dictionary-color-support compat code

	* lisp/net/dictionary.el (dictionary-color-support): Make obsolete
	in favor of 'display-color-p'.  Update single caller.

2023-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Remove compat code for XEmacs' itimer.el

	* lisp/progmodes/idlwave.el (idlwave-update-routine-info)
	(idlwave-start-load-rinfo-timer):
	* lisp/type-break.el (type-break-cancel-function-timers)
	(type-break-run-at-time): Remove XEmacs compat code.

2023-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Make dired-move-to-filename-regexp obsolete

	* lisp/dired.el (dired-move-to-filename-regexp): Make Emacs 21
	compatibility alias obsolete.

2023-08-12  Michael Albinus  <michael.albinus@gmx.de>

	Remove superfluous check from vc-hooks.el

	* lisp/vc/vc-hooks.el (vc-registered): Don't check whether
	`file-name-handler-alist' is bound, the check is superfluous.

2023-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Stop `use-package-report` from displaying an empty buffer

	* lisp/use-package/use-package-core.el (use-package-report): Signal
	user-error if there are no statistics to display, instead of showing
	an empty buffer.

2023-08-12  Eli Zaretskii  <eliz@gnu.org>

	Fix 'insert-file-contents' with non-regular files

	* src/fileio.c (Finsert_file_contents): Fix the doc string.  Erase
	only the accessible portion of the buffer, not the entire buffer.
	(Bug#65156)

2023-08-12  Paul Eggert  <eggert@cs.ucla.edu>

	Update lists of non-UTF files

	* .gitattributes: Don't diff text files with encodings
	incompatible with UTF-8.  Add some new binary file extensions,
	like '.webp'.  etc/e/eterm-direct and java/emacs.keystore
	are also binary.
	* admin/notes/unicode: Update similarly.

2023-08-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el (cl--labels-convert): Fix bug#65017

	This fixes what I consider to be the core of the bug, by handling
	`cl--labels-convert-cache` more carefully (i.e. being more careful how
	we look up its value and by flushing it ASAP).

2023-08-12  Po Lu  <luangruo@yahoo.com>

	Improve precision pixel scrolling

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page)
	(pixel-scroll-precision-scroll-up-page): Use
	pos-visible-in-window-p to opt between the next line or to the
	window start rather than computing the next position by hand.
	(pixel-scroll-precision-mode): Disable
	make-cursor-line-fully-visible.  (bug#65214)
	* src/image.c (jpeg_load_body): Fix crash if libjpeg detects an
	error before ximg is initialized.
	* src/xdisp.c (display_and_set_cursor): Don't display cursor in
	vscrolled-away row.

2023-08-12  Po Lu  <luangruo@yahoo.com>

	* lisp/indent-aux.el (kill-ring-deindent-mode): Add autoload cookie.

2023-08-12  Po Lu  <luangruo@yahoo.com>

	Make kill-ring-deindent-mode autoloaded

	* lisp/indent-aux.el
	(kill-ring-deindent-buffer-substring-function)
	(kill-ring-deindent-mode, indent-aux):
	* lisp/simple.el (kill-ring-deindent-buffer-substring-function)
	(kill-ring-deindent-mode): Move kill-ring-deindent-mode to
	indent-aux.el.

2023-08-12  Dmitry Gutov  <dmitry@gutov.dev>

	Unbreak project-find-file's future history when cpd is not root

	* lisp/progmodes/project.el (project-find-file): Pass in
	buffer-file-name as absolute name (bug#63829).
	(project--read-file-cpd-relative): Make it relative to the
	appropriate common parent dir.

2023-08-12  Dmitry Gutov  <dmitry@gutov.dev>

	xref-find-references-and-replace: Use identifier-at-point in prompt

	* lisp/progmodes/xref.el (xref-find-references-and-replace):
	Use identifier-at-point in prompt as defined by backend (bug#63939).

2023-08-12  Dmitry Gutov  <dmitry@gutov.dev>

	(project--keymap-prompt): Use help-key-binding face

	* lisp/progmodes/project.el (project--keymap-prompt): Use
	help-key-binding face and adjust the prompt to fit (bug#64799).

2023-08-11  Po Lu  <luangruo@yahoo.com>

	Improve kill-ring-deindent-mode

	* etc/NEWS:
	* lisp/simple.el (kill-ring-deindent-buffer-substring-function):
	(kill-ring-deindent-mode): Deindent by the column number at BEG
	in lieu of the indentation at BEG.

2023-08-11  Po Lu  <luangruo@yahoo.com>

	New global minor mode `kill-ring-deindent-mode'

	* etc/NEWS: Announce the new minor mode.

	* lisp/simple.el (kill-ring-deindent-buffer-substring-function):
	New function.
	(kill-ring-deindent-mode): New minor mode, for trimming excess
	indentation from saved text.

2023-08-11  Po Lu  <luangruo@yahoo.com>

	Minor adjustments to Android port

	* java/org/gnu/emacs/EmacsService.java (readDirectoryEntry):
	Also refrain from returning NULL or file names containing
	non-representable NULL bytes.
	* src/callproc.c (get_current_directory): Clean up by employing
	android_is_special_directory.

2023-08-11  Po Lu  <luangruo@yahoo.com>

	Repair mailutils configury

	* configure.ac (with_mailutils): When processing defaults,
	set to yes-unless-android if with_features.
	(HAVE_MAILUTILS): Later, disable Mailutils if yes-on-android
	and with_android is set.  This is the minimal Emacs build
	for the build machine.  (bug#65190)

2023-08-10  Jim Porter  <jporterbugs@gmail.com>

	Return separators from 'eshell-split-commands' directly when requested

	This eliminates the need for using a dynamically-bound variable to
	hold the list of separators.

	* lisp/eshell/esh-cmd.el (eshell--sep-terms): Remove.
	(eshell-split-commands): New function, adapted from
	'eshell-separate-commands'.
	(eshell-separate-commands): Make obsolete, and call
	'eshell-split-commands'.
	(eshell-parse-command, eshell-parse-pipeline): Use
	'eshell-split-commands'.

	* lisp/eshell/esh-arg.el (eshell-parse-delimiter): Update comment.

2023-08-10  Jim Porter  <jporterbugs@gmail.com>

	Simplify command parsing in Eshell

	* lisp/eshell/esh-cmd.el (eshell-parse-command): Do all modifications
	to each command in a single pass.
	(eshell-parse-pipeline): Remove unnecessary reversing of parsed
	results.

2023-08-10  Po Lu  <luangruo@yahoo.com>

	Uniformly verify sfnt_read_table_directory doesn't return TTC header

	* src/sfntfont.c (sfnt_enum_font, sfntfont_read_cmap)
	(sfnt_open_tables): Check for -1 return value from
	sfnt_read_table_directory.

2023-08-10  Manuel Giraud  <manuel@ledu-giraud.fr>

	Scroll up and down in image-dired

	* lisp/image/image-dired.el (image-dired-scroll):
	Function to manage scroll in image-dired.
	(image-dired-scroll-up, image-dired-scroll-down): Scroll up and down
	command in image-dired.
	(image-dired-thumbnail-mode-map): Use them.  (Bug#65052)

2023-08-10  Eli Zaretskii  <eliz@gnu.org>

	Streamline definition of BOOT_TIME_FILE on MS-Windows

	* nt/inc/ms-w32.h: Don't define BOOT_TIME_FILE here...
	* configure.ac: ...define it here instead, as for the other
	systems.

2023-08-10  Po Lu  <luangruo@yahoo.com>

	Also fix calendar-scroll-left

	* lisp/calendar/cal-move.el (calendar-scroll-left): Use
	`calendar-event-buffer' instead of assuming that EVENT's
	posn-window is always a window.

2023-08-10  Po Lu  <luangruo@yahoo.com>

	Repair several minor breakages

	* lisp/calendar/calendar.el (calendar-event-buffer): New
	function.
	(calendar-cursor-to-date, calendar-other-month):

	* lisp/calendar/holidays.el (calendar-list-holidays)
	(calendar-mark-holidays):

	* lisp/calendar/lunar.el (calendar-lunar-phases): Use that
	function to derive event windows, in case these commands are
	being called from the menu bar.

	* lisp/doc-view.el (doc-view-tool-bar-map): Fix typo in help
	text.

2023-08-10  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS, Haiku, USG, etc builds

	* configure.ac (emacs_cv_boot_time_file): Only compute this on
	GNU/Linux, the sole system with systemd.
	* nt/inc/ms-w32.h (BOOT_TIME_FILE): Remove now redundant #undef.
	* src/filelock.c (get_boot_time): Eschew BOOT_TIME_FILE if not
	defined.

2023-08-10  Po Lu  <luangruo@yahoo.com>

	Further improve android.texi

	* doc/emacs/android.texi (Android Environment): Improve
	sectioning by replacing subsections with simple entries in the
	concept index.

2023-08-10  Po Lu  <luangruo@yahoo.com>

	Fix crash when reading TTC font for glyph mapping table selection

	* src/sfnt.c (sfnt_read_cmap_table): Seek to the table directory
	if DESC->offset is provided.
	* src/sfntfont.c (sfntfont_read_cmap): Accurately verify cmap
	subtable header size.  (bug#65185)

2023-08-10  Po Lu  <luangruo@yahoo.com>

	Make node-less sections subsections in android.texi

	* doc/emacs/android.texi (Android Environment): Change node-less
	sections into subsections.

2023-08-10  Po Lu  <luangruo@yahoo.com>

	Fix pinch gestures after toolkit menu

	* src/xmenu.c (leave_toolkit_menu): Restore gesture event
	mask.  (bug#65129)

2023-08-09  Paul Eggert  <eggert@cs.ucla.edu>

	Adjust to random-seed move

	For some time, GNU/Linux systems have put their random-seed file
	somewhere other than where src/filelock.c looks for it.
	Catch up to this by having 'configure' scout for it.
	* configure.ac (BOOT_TIME_FILE):
	Define this at configure-time.
	* nt/inc/ms-w32.h (BOOT_TIME_FILE): Override 'configure'.
	* src/filelock.c (BOOT_TIME_FILE): Remove default definition,
	since 'configure' defaults it now.

2023-08-09  Po Lu  <luangruo@yahoo.com>

	Don't signal when I-search occurs within a kbd macro

	* lisp/isearch.el (isearch-mode): Check last-event-frame is not
	`macro' before providing it to `device-class'.  (bug#65175)

2023-08-09  Alan Mackenzie  <acm@muc.de>

	Remove harmful and redundant bindings from the byte compiler.

	This fixes bug#65017.  Binding symbols-with-pos-enabled in two
	macro handling functions was harmful; one of these caused
	cl--labels-convert to fail.  Binding print-symbols-bare in many
	places in the byte compiler was redundant.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-recurse-toplevel)
	(byte-compile-initial-macro-environment)
	(byte-compile-output-file-form, byte-compile-output-docform)
	(byte-compile-preprocess): Remove bindings of
	print-symbols-bare.

	* lisp/emacs-lisp/macroexp.el (macroexp--compiler-macro)
	(internal-macroexpand-for-load): Remove bindings of
	symbols-with-pos-enabled.
	(internal-macroexpand-for-load): Remove binding of
	print-symbols-bare.

2023-08-09  Mattias Engdegård  <mattiase@acm.org>

	Faster NSString to Lisp string conversion

	Since we know that the value from [NSString UTF8String] is valid
	UTF-8, using make_string is wastefully slow.

	* src/nsfns.m (count_utf8_chars): New function, at least twice as fast
	as parse_str_as_multibyte used by make_string for this purpose.
	([NSString lispString]): Use count_utf8_chars.  We now always make a
	multibyte string because there is no reason not to.

2023-08-09  Eric S. Raymond  <esr@thyrsus.com>

	Remove a DEFSYM that no longer needs to be in the C core.

	* src/fileio.c (syms_of_fileio): Remove Qmove_file_to_trash.

2023-08-09  Po Lu  <luangruo@yahoo.com>

	Fix crashes runninging android-emacs with bad LD_LIBRARY_PATH

	* doc/emacs/input.texi (Touchscreens, On-Screen Keyboards): Fix
	section titles.

	* src/android-emacs.c (main): If EMACS_LD_LIBRARY_PATH is set,
	make it LD_LIBRARY_PATH.

	* src/android.c (JNICALL): Set LD_LIBRARY_PATH as well as
	EMACS_LD_LIBRARY_PATH.

2023-08-09  Po Lu  <luangruo@yahoo.com>

	Improve Emacsbug output

	* lisp/mail/emacsbug.el (report-emacs-bug--os-description):
	Handle `android'.
	(emacs-build-description): Don't print the Android build
	fingerprint here.

2023-08-09  Eric S. Raymond  <esr@thyrsus.com>

	Add a string check to delete-file-internal.

	* src/fileio.c (delete-file-internal): Argument should be a string.

2023-08-09  Po Lu  <luangruo@yahoo.com>

	* lisp/ldefs-boot.el: Restore no-byte-compile cookie.

	* doc/misc/calc.texi (Musical Notes): Fix build with Texinfo 4.13.

2023-08-09  Po Lu  <luangruo@yahoo.com>

	Run Git hooks within xcu4

	* build-aux/git-hooks/pre-commit (LC_ALL):
	* build-aux/git-hooks/prepare-commit-msg (SHA1): Run using xcu4
	tools.

2023-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Add calling convention to face-attr-construct

	* lisp/faces.el (face-attr-construct): Add
	advertised-calling-convention declaration.

2023-08-09  Po Lu  <luangruo@yahoo.com>

	Don't depend on Automake to generate exec/aclocal.m4

	* autogen.sh (do_git): Generate exec/aclocal.m4 by hand.
	(bug#65160)

2023-08-09  Eric S. Raymond  <esr@thyrsus.com>

	Fix all my attributions to be correct and consistent...

	...in case people are trying to track me down for questions.

	.mailmap, ChangeLog.1, admin/notes/copyright, doc/emacs/ChangeLog.1,
	doc/emacs/ack.texi, doc/lispref/ChangeLog.1, doc/misc/gnus.texi,
	etc/ChangeLog.1, lib-src/ChangeLog.1, lisp/ChangeLog.13,
	lisp/ChangeLog.14, lisp/ChangeLog.15, lisp/ChangeLog.17,
	lisp/ChangeLog.3, lisp/ChangeLog.4, lisp/ChangeLog.5,
	lisp/ChangeLog.6, lisp/ChangeLog.7, lisp/emacs-lisp/lisp-mnt.el,
	lisp/finder.el, lisp/loadhist.el, lisp/play/cookie1.el,
	lisp/progmodes/asm-mode.el, lisp/progmodes/gud.el,
	lisp/progmodes/make-mode.el, lisp/term/AT386.el, src/ChangeLog.3

2023-08-08  Alan Third  <alan@idiocy.org>

	Fix percentage sizes in SVG display (bug#64908)

	* src/image.c (svg_css_length_to_pixels): Make percent units always
	return zero and handle font size based units better.
	(svg_load_image): Don't rely on the width and height values from the
	SVG actually having any useful data, even if they're explicitly set.

2023-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Make news-path variable obsolete

	* lisp/gnus/nnspool.el (news-path): Make obsolete.
	(nnspool-spool-directory): Don't use above obsolete variable.

2023-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Make ffap compat aliases obsolete

	* lisp/ffap.el (ffap-newsgroup-regexp, ffap-newsgroup-heads)
	(ffap-newsgroup-p): Make compatibility aliases obsolete.

2023-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Make lm-verify footer checking more strict

	* lisp/emacs-lisp/lisp-mnt.el (lm-verify): Make file footer regexp
	more strict to match requirement in old versions of package.el (now
	only a warning).

2023-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Open Pipfile and flake8 config files in conf-mode

	* lisp/progmodes/python.el (auto-mode-alist): Open Pipfile and flake8
	configuration files in conf-mode.

2023-08-08  Mattias Engdegård  <mattiase@acm.org>

	Check keyword args of make-pipe-process (bug#65030)

	* lisp/emacs-lisp/bytecomp.el (make-pipe-process): Add check.

2023-08-08  Mattias Engdegård  <mattiase@acm.org>

	Better error for missing or bad :name arg in make-process etc

	Improve on the famously bad error message given when the :name keyword
	parameter is missing or of the wrong type in calls to make-process,
	make-pipe-process and make-network-process (bug#65030).

	* src/process.c (get_required_string_keyword_param): New function.
	(Fmake_process, Fmake_pipe_process, Fmake_network_process): Use it.

2023-08-08  Helmut Eller  <eller.helmut@gmail.com>

	Check keyword args of make-process

	The functions make-process and make-network-process have many
	keyword args and it's easy to misspell some of them.

	Use a compiler macro to warn about some possible mistakes.

	* lisp/emacs-lisp/bytecomp.el (bytecomp--check-keyword-args): New
	  helper.
	  (make-process, make-network-process): Define a compiler macro that
	  performs some checks but doesn't anything else.

	* test/lisp/emacs-lisp/bytecomp-tests.el: Add some tests.

	* test/lisp/emacs-lisp/bytecomp-resources/:
	  (warn-make-process-missing-keyword-arg.el,
	   warn-make-process-missing-keyword-value.el,
	   warn-make-process-repeated-keyword-arg.el,
	   warn-make-process-unknown-keyword-arg.el): New test files

2023-08-08  Ulrich Müller  <ulm@gentoo.org>

	Disable json and tree-sitter with --without-all

	* configure.ac (OPTION_DEFAULT_IFAVAILABLE): Disable the option if
	--without-all was specified.  (Bug#65142)

2023-08-08  David Ponce  <da_vid@orange.fr>

	* lisp/tooltip.el (tooltip-cancel-delayed-tip): Fix missing argument.

	This resurrects tooltips, see bug#65147.

2023-08-08  Po Lu  <luangruo@yahoo.com>

	Repair test failures stemming from Android merge

	* lisp/kmacro.el (kmacro-step-edit-query)
	(kmacro-step-edit-pre-command): Use `dummy-event' instead of
	[nil] to continue a kbd macro; this is because nil now has a
	function key map.
	* src/androidfns.c (Fx_hide_tip): Allow calling this as a stub.
	* src/fileio.c (Finsert_file_contents): In adherence to the
	documentation, forbid supplying a BEG offset even for seekable
	files, i.e. /dev/urandom on Linux kernel based systems.

2023-08-08  Mattias Engdegård  <mattiase@acm.org>

	Teach byte-compiler about Aristotelian identity

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-equal, byte-optimize-eq):
	Optimize (eq X X) -> t where X is a variable; idem for eql and equal.
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
	Add test case.

2023-08-08  Po Lu  <luangruo@yahoo.com>

	Avoid caching file status when they are about to change

	* java/org/gnu/emacs/EmacsSafThread.java (EmacsSafThread)
	(cacheFileStatus): New argument NO_CACHE.
	(cacheDirectoryFromCursor, statDocument1):
	* java/org/gnu/emacs/EmacsService.java (EmacsService)
	(statDocument): Plumb that argument through each of these wrapper
	functions.
	* src/android.c (android_init_emacs_service): Adjust JNI
	function signatures to agree with statDocument1.
	* src/androidvfs.c (android_saf_stat): Plumb that argument
	through here.
	(android_saf_tree_stat, android_saf_file_open): And don't cache
	file status if a write is imminent.

2023-08-08  Po Lu  <luangruo@yahoo.com>

	Minor improvements to write-region heuristic

	* src/androidvfs.c (android_saf_stat): Set STATB->st_dev.
	(android_fstat): Likewise.
	(NATIVE_NAME): Seek to start of file after truncation.
	* src/fileio.c (write_region): Use stat instead of open+fstat
	to obtain updated mtime.

2023-08-08  Po Lu  <luangruo@yahoo.com>

	* src/androidvfs.c (android_saf_file_open): Improve commentary.

2023-08-08  Po Lu  <luangruo@yahoo.com>

	Fix truncation for the Android internal storage provider

	* java/org/gnu/emacs/EmacsSafThread.java (openDocument1): If
	truncate is specified while resorting to `w', try truncating the
	file by hand.

2023-08-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'savannah/master' into master-android-1

2023-08-08  Po Lu  <luangruo@yahoo.com>

	Utilize more frequently supported file access modes

	* java/org/gnu/emacs/EmacsSafThread.java (openDocument1): Use
	plain r or w where possible, as the fileio stuff is now better
	prepared for FIFOs.
	(openDocument): New argument READ.
	* java/org/gnu/emacs/EmacsService.java (openDocument): New
	argument READ.
	* src/android.c (android_init_emacs_service): Adjust
	correspondingly.
	* src/androidvfs.c (android_saf_file_open): Don't support
	O_APPEND.  Pass read as well as trunc and write.

2023-08-08  Po Lu  <luangruo@yahoo.com>

	Enable visiting FIFOs as files

	* doc/lispref/files.texi (Reading from Files): Document new
	`if-regular' value of REPLACE.

	* etc/NEWS: Announce the new value.

	* lisp/files.el (basic-save-buffer-2): Demote errors saving
	backup files, since FIFOs cannot be copied.
	(revert-buffer-insert-file-contents--default-function): Supply
	`if-regular' instead of t as REPLACE.

	* src/fileio.c (selinux_enabled_p): New function.
	(Fcopy_file, Ffile_selinux_context, Fset_file_selinux_context):
	Call that function to ascertain if SELinux applies to a file.
	(read_non_regular): Don't assume `emacs_fd_read' always returns
	int.
	(Finsert_file_contents): If REPLACE is if-regular and FILENAME
	is a special non-seekable file, fall back to erasing the buffer
	before inserting the contents of that file.
	(syms_of_fileio) <Qif_regular>: New symbol.

2023-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Add calling convention to x-compose-font-name

	* lisp/international/fontset.el (x-compose-font-name): Add
	advertised-calling-convention for argument ignored since 22.1.

2023-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Make x-font-name-charset-alist obsolete

	* lisp/international/fontset.el (x-font-name-charset-alist): Make
	obsolete.  It has been a no-op since Emacs 22.

2023-08-08  Paul Eggert  <eggert@cs.ucla.edu>

	Fix some emacs_fopen confusion

	Problem reported by Po Lu in:
	https://lists.gnu.org/r/emacs-devel/2023-08/msg00195.html
	* src/comp.c (comp_hash_source_file, Fcomp__release_ctxt):
	* src/sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
	Be more systematic about using emacs_fclose on streams that were
	opened with emacs_fopen or emacs_fdopen.  Do this even if not
	Android, as this simplifies checking that it's done consistently.
	* src/lisp.h (emacs_fclose): If it’s just fclose,
	make it a macro rather than a function, to avoid confusing gcc
	-Wmismatched-dealloc.
	(emacs_fopen): Move decl here from sysstdio.h, because sysstdio.h
	is included from non-Emacs executables and emacs_fopen is good
	only inside Emacs.
	* src/sysdep.c (emacs_fclose): Define as a function only if Android.

2023-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Make XEmacs compat aliases for timers obsolete

	* lisp/emacs-lisp/timer.el (disable-timeout, add-timeout): Make
	XEmacs compat aliases obsolete.  Update all callers.

2023-08-08  Jim Porter  <jporterbugs@gmail.com>

	Fix listing of directory contents after "cd" in Eshell

	* lisp/eshell/em-dirs.el (eshell/cd): Ensure we don't close the I/O
	handles prematurely.  Additionally, don't clobber the "cd" command's
	last-command info.

	* test/lisp/eshell/em-dirs-tests.el (em-dirs-test/cd):
	(em-dirs-test/cd/list-files-after-cd): New tests (bug#65110).

2023-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Make Emacs 21 compat aliases easy-mmode-* obsolete

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode-define-minor-mode)
	(easy-mmode-define-global-mode): Make Emacs 21 compatibility aliases
	obsolete.
	* doc/lispref/loading.texi (Autoload):
	* doc/lispref/modes.texi (Defining Minor Modes): Don't document
	above obsolete aliases.

2023-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Make describe-keymap tests more robust

	* test/lisp/help-fns-tests.el
	(help-fns-test-describe-keymap/symbol)
	(help-fns-test-describe-keymap/value)
	(help-fns-test-describe-keymap/not-keymap)
	(help-fns-test-describe-keymap/let-bound)
	(help-fns-test-describe-keymap/dynamically-bound-no-file): Make
	tests independent of minibuffer-local-must-match-map.

2023-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Delete useless conditional in describe-keymap

	* lisp/help-fns.el (describe-keymap): Delete useless
	conditional.  (Bug#65128)

2023-08-08  Po Lu  <luangruo@yahoo.com>

	Eschew linking Gnulib files to cross unless building for Android

	* configure.ac: Don't link Gnulib files to cross unless building
	for Android.

2023-08-07  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify lockfile name calculation

	* src/filelock.c (get_boot_time):
	Move ‘counter’ decl to simplify #ifdef nesting.
	(lock_file_1): Refactor two snprintf calls into one.
	Don’t assume INT_MAX < SIZE_MAX.

2023-08-07  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify --enable-gcc-warnings with emacs_fdopen

	* src/lisp.h (emacs_fdopen): Now ATTRIBUTE_MALLOC
	ATTRIBUTE_DEALLOC (emacs_fclose, 1), to pacify gcc
	-Wsuggest-attribute=malloc on non-Android platforms.

2023-08-07  Eli Zaretskii  <eliz@gnu.org>

	Fix configuring with --enable-checking on non-Android platforms

	* configure.ac (ENABLE_CHECKING): Fix test for --with-android.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	Fix mouse face display bug on MS-DOS

	* src/msdos.c (tty_draw_row_with_mouse_face): Tweak coordinates to
	reflect the number of glyphs used within the margin area.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	* nt/gnulib-cfg.mk: Excise unneeded entries.

	* nt/gnulib-cfg.mk: Excise unneeded entries.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	Stop tracking exec/config.h.in

	* .gitignore: Add exec/config.h.in.

	* exec/config.h.in: Remove from Git.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	* msdos/sed1v2.inp: Fix last change.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	Fix the DJGPP build halfway

	* msdos/sed1v2.inp (abs_top_builddir): Edit to .., and explain
	why this is okay.
	($(abs_top_builddir)/src/lisp.mk): Edit to plain lisp.mk.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	Fix the DJGPP build

	* msdos/sedlibmk.inp (OMI_GNULIB_MODULE_crypto/md5): Delete
	extraneous escape character.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	Port to the Android NDK r10b

	* src/androidvfs.c (android_saf_stat, android_saf_file_open)
	(android_fstat): Eschew accessing POSIX timespec fields in
	struct stat, employing accessors supplied in Gnulib stat-time.h
	in their place.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	Repair hang in android_fdopen

	* src/androidvfs.c (android_fdopen): Do not neglect to
	update next when iterating through open_parcel_fds.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	Introduce an Android window system port for GNU Emacs

	* src/xterm.h: New fields `quit_keysym' and `quit_keysym_time'.
	* src/xterm.c (handle_one_xevent): Check for the quit keysym, and
	set Vquit_flag upon witnessing two clicks in rapid succession.
	(x_term_init): Set `quit_keysym'.
	(init_xterm): Fix typo in name of `register_textconv_interface'.
	(syms_of_xterm) <Vx_toolkit_scroll_bars>: Describe its default
	value on android.

	* src/xfns.c (xic_string_conversion_callback): Pass `0' as the
	last argument to textconv_query.
	(Fx_server_vendor, Fx_server_version): Document return values on
	Android.

	* src/xfaces.c (Fx_family_fonts, set_lface_from_font): Use
	FRAME_RES instead of FRAME_RES_Y, respecting user preferences on
	window systems that have distinct display and font scaling
	factors.
	(Fx_load_color_file): Call `emacs_fclose', not fclose.

	* src/xdisp.c (tab_bar_item_info): Allow `close_p' to be NULL.
	(get_tab_bar_item): Update commentary to reflect that change.
	(get_tab_bar_item_kbd): New function, resembling get_tab_bar_item.
	(build_desired_tool_bar_string): Clear `f->tool_bar_wraps_p';
	insert new line characters if a QCwrap item is encountered, and
	set f->tool_bar_wrap_p.  Replace characters beyond the end of the
	tool bar with spaces.
	(display_tool_bar_line): Move iterator to the next line if in
	contact with an explicit line-wrap item.
	(redisplay_internal): If there are newline characters in the tool
	bar, refrain from coercing each row into being identically tall.
	Don't call `set_tty_color_mode' on Android.
	(mark_window_display_accurate_1): Report changes to the point and
	mark to input methods.
	(display_menu_bar): Adjust ifdefs to allow non-X window systems to
	use the built-in menu bar.
	(draw_row_with_mouse_face): Don't call TTY functions on Android.
	(note_mouse_highlight): Call `popup_activated' on Android.
	(expose_frame): Correctly work on the menu bar window.
	(gui_union_rectangles): New function.

	* src/window.h (struct window): New fields for recording the last
	window and point positions, along with an ephemeral position used
	during IM text conversion.
	(WINDOW_MENU_BAR_P): Correct definition for non-X window systems
	without external menu bars.

	* src/window.c (replace_buffer_in_windows): Call
	Qreplace_buffer_in_windows only when bound.

	* src/w32proc.c (sys_spawnve): Pass extra argument to openp.

	* src/w32font.c (fill_in_logfont): Use font scaling factor, not
	the display scaling factor.

	* src/w32.c (check_windows_init_file): Pass extra argument to
	openp.

	* src/verbose.mk.in (AM_V_JAVAC, AM_V_DX, AM_V_AAPT)
	(AM_V_ZIPALIGN, AM_V_SILENT): New variables.

	* src/textconv.h (struct textconv_interface): New `point_changed',
	`compose_region_changed' and `notify_conversion'.
	Add declarations for new functions.

	* src/textconv.c (TEXTCONV_DEBUG): New macro.
	(suppress_conversion_count): New variable.
	(enum textconv_batch_edit_flags): New flag.
	(copy_buffer): Don't overwrite text before the gap with the text
	after.
	(get_mark, select_window): New functions.
	(textconv_query): New argument FLAGS.  Contingent upon its value,
	use the previous point or mark or skip the conversion region.
	(sync_overlay, record_buffer_change, reset_frame_state)
	(detect_conversion_events, restore_selected_window)
	(really_commit_text, really_finish_composing_text)
	(really_set_composing_region, really_delete_composing_text)
	(really_request_point_update, really_set_point_and_mark)
	(complete_edit): New functions.
	(struct complete_edit_check_context): New structure; store in it
	the result of editing operations.
	(complete_edit_check, handle_pending_conversion_events_1)
	(decrement_inside, handle_pending_conversion_events)
	(start_batch_edit, end_batch_edit, commit_text)
	(set_composing_text, textconv_set_point_and_mark)
	(request_point_update, textconv_barrier, get_extracted_text)
	(get_surrounding_text, conversion_disabled_p)
	(report_selected_window_change, report_point_change)
	(disable_text_conversion, resume_text_conversion)
	(register_textconv_interface, check_postponed_buffers)
	(postponed_buffers, Fset_text_conversion_style)
	(syms_of_textconv) <Qaction, Qtext_conversion, Qpush_mark,
	Qunderline, Qoverriding_text_conversion_style,
	Vtext_conversion_edits, Voverriding_text_conversion_style,
	Vtext_conversion_face>: New functions, symbols and variables.

	* src/terminal.c (Fterminal_live_p): Return Qandroid if type is
	output_android.

	* src/termhooks.h (enum output_method): Add `output_android'.
	(struct terminal) <display_info>: Add union constituent field for
	`android'.
	<query_colors>: Define on Android as well.
	(TERMINAL_FONT_CACHE) [HAVE_ANDROID]: Return the inappropriately
	named font cache field on Android.

	* src/term.c (string_cost, string_cost_one_line, per_line_cost)
	(calculate_costs, produce_glyphs, produce_glyphs, tty_capable_p)
	(tty_capable_p, device, init_tty, maybe_fatal)
	(delete_tty) [HAVE_ANDROID]: Exclude or turn these functions into
	vestiges.
	(Fsuspend_tty, Fresume_tty): Call `emacs_fclose' and always signal
	on Android.
	(Fresume_tty): Call `emacs_fdopen'.
	(Ftty__set_output_buffer_size) [HAVE_ANDROID]: Remove this
	function.
	(encode_terminal_code): Replace with a stub.
	(init_tty, delete_tty, maybe_fatal): Call `emacs_fclose'.
	(syms_of_term): Remove most unnecessary code on Android.
	<system_uses_terminfo>: Always set this option on Android.

	* src/sysdep.c (init_standard_fds): Call emacs_fopen.
	(reset_sigio, widen_foreground_group): Define out on Android.
	(reset_sys_modes): Don't call either function on Android.
	(init_sigbus, handle_sigbus): New functions.
	(init_signals): Don't add user signals on Android.  Register
	signal handlers for SIGBUS, and refrain from handling SIGSEGV.
	(emacs_fstatat): Wrap android_fstatat on Android.
	(sys_fstat, sys_faccessat): New function.
	(emacs_openat): Exclude this function when building libemacs.so.
	(emacs_open, emacs_open_noquit, emacs_fopen, emacs_close): Wrap
	functions defined in the Android filesystem emulation code.
	(emacs_fdopen, emacs_fclose, emacs_unlink, emacs_symlink)
	(emacs_rmdir, emacs_mkdir, emacs_renameat_noreplace, emacs_rename)
	(emacs_fchmodat): New wrappers for more of those functions.
	(close_output_streams): Placate the file descriptor sanitizer
	that's included with android.

	* src/sound.c (Fplay_sound_internal): Pass extra argument to openp.

	* src/sfntfont.h:
	* src/sfntfont.c:
	* src/sfntfont-android.c:
	* src/sfnt.h:
	* src/sfnt.c: New files.
	* src/scroll.c: Exclude the entire file on Android.

	* src/process.c: (allocate_pty): Call sys_faccessat, not
	faccessat.
	(Fmake_process): Call openp with an extra argument.
	(wait_reading_process_output): Call android_select.
	(Fprocess_send_eof): Don't call tcdrain if not present.
	(handle_child_signal): Write a comment describing a small, seldom
	encountered issue.

	* src/print.c (print_vectorlike): Don't print FONT_EXTRA_INDEX for
	font entities.

	* src/pdumper.c (Fdump_emacs_portable): Allow dumping in
	interactive Emacs's on Android, as this is performed within
	loadup.el.
	(dump_discard_mem): Use madvise if posix_advise is not present.
	(pdumper_load): Call sys_fstat, not fstat.
	(syms_of_pdumper) <Vpdumper_fingerprint>: Calculate the
	fingerprint for this Emacs executable and store it there.

	* src/menu.c (have_boxes): Android has boxes.
	(push_submenu_start, push_submenu_end): Define on Android.
	(single_menu_item): Produce submenus on Android as well.
	(x_popup_menu_1): Call EVENT_START, in contrast to duplicating its
	old functionality with calls to Fcar and XCDR.
	(Fx_popup_menu): Update documentation to reflect that touch screen
	events are now accepted as POSITION.

	* src/marker.c (set_marker_internal): Redisplay buffers when their
	mark changes, enabling changes to be reported to the IME.

	* src/lread.c (lread_fd, lread_fd_cmp, lread_fd_p, lread_close)
	(lread_fstat, lread_read_quit, lread_lseek, file_stream)
	(file_seek, file_stream_valid_p, file_stream_close)
	(file_stream_invalid, getc): New macros.  Define to an
	implementation with file descriptors and file streams on systems
	other than Android 2.3+, and one using Android file descriptors on
	those systems.
	(USE_ANDROID_ASSETS): Define on Android 2.3+;
	(file_get_char): New function.
	(infile, skip_dyn_bytes, skip_dyn_eof, readbyte_from_stdio)
	(read_filtered_event, safe_to_load_version, close_infile_unwind):
	Implement in terms of those macros.
	(close_file_unwind_android_fd): New function.
	(Fload): Pass extra argument to `openp' and use Android file
	descriptors where possible.
	(Flocate_file_internal): Pass extra argument to `openp'.
	(maybe_swap_for_eln1): Call sys_fstat, not fstat.
	(openp): New arg PLATFORM; if supplied and opening a
	platform-specific file descriptor replacement is possible, place
	one there.
	(build_load_history): Fix typos in comments.
	(skip_lazy_string): Implement in terms of the aforementioned
	macros.

	* src/lisp.h: Add declarations for new functions.
	* src/keyboard.h (reading_key_sequence): Declare here.
	(EVENT_START): Treat touch screen events specially by returning
	the posn of their touch point.

	* src/keyboard.c (reading_key_sequence, menu_bar_touch_id): New
	variables.
	(command_loop_1):
	(read_menu_command): Pass false to read_key_sequence.
	(read_char): Update commentary.
	(readable_events): If text conversion events (edits from an input
	method) are queued, return 1.
	(kbd_buffer_get_event): If text conversion events exist, carry out
	the edits contained within.  Then, generate a Qtext_conversion
	event.
	(lispy_function_keys, FUNCTION_KEY_OFFSET): Define function key
	array on Android.
	(coords_in_tab_bar_window): New function.
	(make_lispy_event) <TOUCHSCREEN_BEGIN_EVENT>: Keep track of
	touches that fall into the confines of the tab bar, and include
	the tab bar item in their position lists.  Moreover, retain and
	track the touch in C code if it's taking place within the menu
	bar.
	<TOUCHSCREEN_END_EVENT>: Likewise for the tab bar; generate menu
	bar events if the touch ends on a menu item and was previously
	singled out for tracking.
	<TOUCHSCREEN_UPDATE_EVENT>: Don't deliver this event if the frame
	is dead, or if it was identified for tracking since the only touch
	sequence that changed begun inside the menu bar.
	(handle_async_input): Call android_check_query_urgent.
	(handle_input_available_signal): Add memory fence.
	(parse_tool_bar_item): Handle `wrap' properties within tool bar
	items moving subsequent items onto a new row.
	(access_keymap_keyremap): New arguments START, END, KEYBUF.
	Set Qcurrent_key_remap_sequence around calls to the remap
	function.
	(keyremap_step): Pass the necessary information to
	access_keymap_keyremap.
	(restore_reading_key_sequence): New function.
	(read_key_sequence): Set `reading_key_sequence'.  New arg
	DISABLE_TEXT_CONVERSION_P, which causes text conversion to be
	disabled as long as the key sequence is being read.  Disable text
	conversion as well if a menu or function key prefix is read,
	insert imaginary prefix keys before touchscreen events within
	special areas of a frame.  Don't insert prefix keys if input is
	being mocked, which transpires if the input is in actuality
	originating from a key translation map.
	(read_key_sequence_vs): New argument DISABLE_TEXT_CONVERSION.
	(Fread_key_sequence): New argument DISABLE_TEXT_CONVERSION.
	(Fopen_dribble_file): Use emacs_fclose.
	(head_table): Make touchscreen-begin and touchscreen-end events
	touchscreen events.
	(syms_of_keyboard) <QCwrap, Qtouchscreen, Qtext_conversion>: New
	symbols.
	<disable_inhibit_text_conversion, Vcurrent_key_remap_sequence>:
	New variables.

	* src/inotify.c (Finotify_add_watch): Detect and avoid watching
	special files that don't exist from the POV of inotify.

	* src/image.c (image_create_bitmap_from_data)
	(image_create_bitmap_from_file, free_bitmap_record)
	(prepare_image_for_display, image_clear_image_1)
	(image_clear_image_1, image_size_in_bytes, image_set_transform):
	(Create_Pixmap_From_Bitmap_Data, lookup_rgb_color)
	(image_to_emacs_colors, image_from_emacs_colors)
	(image_pixmap_draw_cross, image_disable_image): Implement on
	Android, reusing much of the X11 code.
	(matrix_identity, matrix_rotate, matrix_mirror_horizontal)
	(matrix_translate): New functions.
	(x_check_image_size, x_create_x_image_and_pixmap)
	(x_destroy_x_image, image_check_image_size)
	(image_create_x_image_and_pixmap_1, image_destroy_x_image)
	(gui_put_x_image, image_get_x_image, image_unget_x_image):
	Implement on Android.
	(image_find_image_fd): Return an Android file descriptor if
	possible.
	(close_android_fd): New function.
	(slurp_file): Accept `image_fds', defined to Android file
	descriptors.
	(xpm_load): Enable built-in XPM support on Android.
	(xbm_load, pbm_load, png_load_body, jpeg_load_body, gif_load)
	(webp_load, imagemagick_load_image, svg_load): Use image file
	descriptors on Android; these file descriptors may in fact
	represent compressed asset streams, and obviate the necessity of
	creating a new file descriptor for each asset image opened.
	(Fimage_transforms_p): Report rotate90 on Android.
	(image_types, syms_of_image): Enable built-in XPM support on
	Android.

	* src/fringe.c (init_fringe_bitmap): Bit swap bitmaps on Android,
	as on X.

	* src/frame.h (enum text_conversion_operation): New enumerator.
	(struct text_conversion_action, struct text_conversion_state): New
	variable.
	(struct frame): New fields `tool_bar_wraps_p' and `conversion'.
	Increase the width of `output_method'.
	<output_data>: Add `android' field.
	<wait_event_type>: Define on Android as well.
	(fset_menu_bar_window): Define correctly, so that it's declared on
	non-X builds without external menu bars.
	(FRAME_ANDROID_P): Define macro.
	(FRAME_WINDOW_P) [HAVE_ANDROID]: Define to FRAME_ANDROID_P.
	(FRAME_RES): New macro.
	(MOUSE_HL_INFO): Define without referencing tty output data on
	Android, which doesn't have them.

	* src/frame.c (Fframep): Return `android' on Android systems.
	(Fwindow_system): Likewise.
	(make_frame): Clear text conversion state and `tool_bar_wraps_p'.
	(Fmake_terminal_frame): Signal that Android doesn't support text
	terminals.
	(delete_frame): Reset text conversion state prior to deleting the
	frame.
	(gui_display_get_resource): Don't call the resource hook on
	Android.
	(Fx_parse_geometry): Pacify compiler warning.
	(make_monitor_attribute_list): Don't always use SOURCE if nil.
	(syms_of_frame) <Qandroid>: New symbol.
	<Vdefault_frame_scroll_bars>: Don't default scroll bars to an
	enabled state on Android.

	* src/fontset.c (fontset_find_font): Tackle an unusual problem.
	* src/font.h (struct font_entity): New field `is_android'.
	(PT_PER_INCH): Define to 160.00 on Android.

	* src/font.c (font_make_entity): New function.
	(font_make_entity_android): New variant that sets `is_android' to
	true.
	(font_pixel_size, font_find_for_lface, font_open_for_lface)
	(Ffont_face_attributes, Fopen_font): Respect the distinction
	between frame text and display scales.

	* src/fns.c (Flocale_info): Silence compiler warning.

	* src/filelock.c (BOOT_TIME): Undefine BOOT_TIME when building
	libemacs.so
	(get_boot_time, rename_lock_file, create_lock_file)
	(current_lock_owner, make_lock_file_name, unlock_file): Employ
	wrappers for Android filesystem operations.

	* src/fileio.c (emacs_fd, emacs_fd_open, emacs_fd_close)
	(emacs_fd_read, emacs_fd_lseek, emacs_fd_fstat, emacs_fd_valid_p):
	New type and macros; define them to suitable values, akin to those
	in lread.c
	(check_vfs_filename): New function.
	(file_access_p): Call `sys_faccessat'.
	(close_file_unwind_emacs_fd): New function.
	(fclose_unwind): Call `emacs_fclose', not fclose.
	(file_name_directory): Export this function.
	(user_homedir): If PW->pw_dir is not set and its uid is the
	current user, call `android_get_home_directory'.
	(get_homedir): Call `android_get_home_directory' if PW->pw_dir is
	not set.
	(Fcopy_file, Fmake_directory_internal, Fdelete_directory_internal)
	(Fdelete_file, Frename_file, Fmake_symbolic_link, Faccess_file)
	(file_directory_p, file_accessible_directory_p, Fset_file_modes)
	(Fset_file_times, Ffile_newer_than_file_p, read_non_regular)
	(Finsert_file_contents, write_region)
	(Fverify_visited_file_modtime, Fset_visited_file_modtime)
	(do_auto_save_unwind): Make use of Android filesystem wrappers and
	file descriptors where possible.
	(Fadd_name_to_file): Prohibit creating links to and from files
	residing on Android special directories.
	(Ffile_system_info): Avoid compilation failure on Android, where
	Gnulib can't find out how to implement statfs.

	* src/epaths.in [HAVE_ANDROID && !ANDROID_STUBIFY]: Deface this
	file, so Makefile cannot change the hard-coded values within.

	* src/emacs.c (using_utf8): Correctly initialize mbstate_t on
	Android.
	(init_cmdargs): Pass extra argument to openp.
	(load_pdump): When building libemacs.so, use solely the file
	provided on the command line or as an argument to
	`android_emacs_init'.
	(load_seccomp): Call sys_fstat, not fstat.
	(main, android_emacs_init): Name `main' `android_emacs_init' when
	building libemacs.so, and accept an argument designating the dump
	file.
	(main): Initialize text conversion and Android.  Don't presume
	that argv is NULL terminated.
	(Fkill_emacs, shut_down_emacs): Properly implement RESTART on
	Android.
	(syms_of_emacs) <Vsystem_type>: Describe the possible value
	`android'.

	* src/emacs-module.c (MODULE_HANDLE_NONLOCAL_EXIT): Cease relying
	on GCC clean-up attribute extension.
	(MODULE_INTERNAL_CLEANUP): New macro.
	(module_make_global_ref, module_free_global_ref)
	(module_make_function, module_get_function_finalizer)
	(module_make_interactive, module_funcall, module_extract_integer)
	(module_extract_float, module_copy_string_contents)
	(module_get_user_ptr, module_set_user_ptr)
	(module_get_user_finalizer, module_set_user_finalizer)
	(module_vec_set, module_vec_size, module_process_input)
	(module_extract_big_integer, module_make_big_integer): Carry out
	necessary clean-up tasks using MODULE_HANDLE_NONLOCAL_EXIT.

	* src/editfns.c (Fuser_full_name): Call `android_user_full_name',
	as USER_FULL_NAME doesn't always work.

	* src/doc.c (doc_fd, doc_fd_p, doc_open, doc_read_quit)
	(doc_lseek): New types and macros, resembling those in lread.c.
	(get_doc_string, Fsnarf_documentation): Implement in terms of
	those macros, so as to use Android asset streams directly.

	* src/dispnew.c (clear_current_matrices, clear_desired_matrices)
	(allocate_matrices_for_window_redisplay, free_glyphs)
	(redraw_frame, update_frame, scrolling, update_frame_line):
	Disable support for text terminals when building for Android.
	(Fopen_termscript): Use emacs_fclose.
	(init_display_interactive): Set Vinitial_window_system to
	Qandroid, and lose if Emacs needs to create a text terminal.

	* src/dispextern.h (No_Cursor, Emacs_Rectangle, struct gui_box):
	New definitions.
	(struct glyph_string) <gc>: Define to the Android GC type.
	(HAVE_NATIVE_TRANSPHORMS): Define on Android.
	(struct image): New fields `ximg', `mask_img', as on X.
	(enum tool_bar_item_idx): New tool bar item property
	TOOL_BAR_ITEM_WRAP.

	* src/dired.c (emacs_dir, emacs_closedir, emacs_readdir): New
	typedef and definitions.
	(open_directory): Return emacs_dir; use android_opendir on
	Android, instead of at-funcs.
	(directory_files_internal_unwind): Call emacs_closedir.
	(read_dirent): Call emacs_readdir.
	(directory_files_internal, file_name_completion)
	(file_name_completion_dirp): Use Android wrappers for directories
	and files.
	(file_attributes): Abstain from openat on Android.

	* src/conf_post.h (MB_CUR_MAX): Define to REPLACEMENT_MB_CUR_MAX
	if necessary to counteract inept LLVM headers.

	* src/coding.h (from_unicode_buffer): Define if HAVE_ANDROID as
	well.

	* src/coding.c (from_unicode_buffer): Define on Android, creating
	a variant that understands UCS-16 extended into wchar_t.
	(syms_of_coding) <Qutf_16le>: Define on Android.

	* src/charset.c (load_charset_map_from_file): Supply extra
	argument to openp, and call Emacs wrappers for fdopen and fclose.

	* src/callproc.c (get_current_directory): Return the home
	directory if ENCODED is a special directory.
	(delete_temp_file): Call emacs_unlink in lieu of unlink.
	(call_process): Use openp.
	(emacs_spawn): Use Android executable loader binary if needed and
	enabled.
	(init_callproc): Set Vshell_file_name to /system/bin/sh if
	libemacs.so.
	(syms_of_callproc) <Vctags_program_name, Vetags_program_name,
	Vhexl_program_name, Vemacsclient_program_name,
	Vmovemail_program_name>: New variables.  Define to the names of
	the programs they respectively stand for.

	* src/callint.c (Fcall_interactively): Supply new argument in
	calls to Fread_key_sequence and Fread_key_sequence_vector.

	* src/buffer.h (struct buffer) <text_conversion_style_>: New bvar.
	(bset_text_conversion_style): New bvar setter.

	* src/buffer.c (init_buffer_once): Set the text conversion style.
	(syms_of_buffer) <BVAR (current_buffer, text_conversion_style)>:
	Define new BLV.

	* src/androidvfs.c:
	* src/androidterm.h:
	* src/androidterm.c:
	* src/androidselect.c:
	* src/androidmenu.c:
	* src/androidgui.h:
	* src/androidfont.c:
	* src/androidfns.c:
	* src/android.h:
	* src/android.c:
	* src/android-emacs.c:
	* src/android-asset.h: New function.

	* src/alloc.c (cleanup_vector): Finalize Android font entities.
	(find_string_data_in_pure) [__i386__ && !__clang__]: On Android,
	compensate for a bug in the latest NDK GCC.
	(mark_pinned_symbols, android_make_lisp_symbol): Elude another
	bug in debuginfo generation with an almost nonsensical fix.
	(garbage_collect): Mark androidterm and sfntfont.
	(mark_frame): Mark text conversion actions and info.

	* src/Makefile.in (XCONFIGURE): New variable.  If set, add srcdir
	to vpath.
	(hostlib): New variable, always defined to libgnu.a on the build
	machine.
	(GIF_CFLAGS, JPEG_CFLAGS, TIFF_CFLAGS, SQLITE3_CFLAGS)
	(LIBSELINUX_CFLAGS, ANDROID_OBJ, ANDROID_LIBS, ANDROID_LDFLAGS)
	(ANDROID_BUILD_CFLAGS, LIBGMP_CFLAGS): New variables.
	(CM_OBJ): Update commentary.
	(EMACS_CFLAGS): Add new compiler flags variables.
	(base_obj): Add ANDROID_OBJ.
	(SOME_MACHINE_OBJECTS): Add Android-related objects.
	(lisp.mk): Generate from its absolute file name.
	($(lispsource)/international/charprop.el): Don't generate when
	building libemacs.so.
	($(libsrc)/make-docfile$(EXEEXT)
	$(libsrc)/make-fingerprint$(EXEEXT)): Depend on libgnu.a on the
	build machine.
	(mostlyclean): Remove libemacs.so.
	(build-counter.c, libemacs.so, android-emacs): New targets.  These
	targets are made from this Makefile copied to a subdirectory of
	`cross', and provide the Emacs library and an ancillary binary
	used by the Android port.

	* nt/mingw-cfg.site:
	* nt/gnulib-cfg.mk: Impede building Gnulib's vasnprintf* code.

	* msdos/sedlibmk.inp:
	* msdos/sedlibcf.inp:
	* msdos/sed3v2.inp:
	* msdos/sed1v2.inp: Fix the DJGPP build.

	* make-dist (possibly_non_vc_files): Add exec/configure and
	exec/config.h.in.

	* m4/ndk-build.m4: New file.

	* m4/getline.m4:
	* m4/getdelim.m4:
	* m4/asm-underscore.m4: Update from Gnulib.

	* lisp/wid-edit.el (widget-event-point): Treat touch screen events
	correctly.
	(widget-keymap): Map touchscreen-begin to widget-button-click.
	(widget-event-start): New function.
	(widget-button--check-and-call-button):
	(widget-button-click): Behave correctly when confronted by touch
	screen events.

	* lisp/version.el (android-read-build-system)
	(android_read_build_time): New functions.
	(emacs-build-system, emacs-repository-version-android)
	(emacs-repository-get-version):
	(emacs-repository-get-branch): Implement properly on Android, by
	reading a file generated during the packaging process.

	* lisp/touch-screen.el: New file, supplying support for
	translating raw touch screen events into gestures.

	* lisp/tool-bar.el (secondary-tool-bar-map): New defvar.
	(tool-bar--cache-key, tool-bar--secondary-cache-key): Make
	defsubsts.
	(tool-bar--flush-key): Flush caches for the secondary tool bar as
	well.
	(tool-bar-make-keymap, tool-bar-make-keymap-1): Append the
	secondary tool bar map below the primary tool bar map.
	(modifier-bar-modifier-list): New variable.
	(tool-bar-apply-modifiers, modifier-bar-button)
	(tool-bar-event-apply-alt-modifier)
	(tool-bar-event-apply-super-modifier)
	(tool-bar-event-apply-hyper-modifier)
	(tool-bar-event-apply-shift-modifier)
	(tool-bar-event-apply-control-modifier)
	(tool-bar-event-apply-meta-modifier, modifier-bar-available-p)
	(modifier-bar-mode): New functions.

	* lisp/textmodes/text-mode.el (text-mode): Set
	text-conversion-style to t.

	* lisp/textmodes/reftex-global.el (reftex-create-tags-file): Use
	etags-program-name to provide the name of the etags program.
	* lisp/textmodes/conf-mode.el (conf-mode-initialize): Enable text
	conversion.
	* lisp/textmodes/artist.el (artist-figlet-get-font-list): Use
	/system/bin/sh on Android.

	* lisp/term/android-win.el: New file.

	* lisp/term.el (term-mode): Always display the on screen keyboard.
	(term-exec-1): Use /system/bin/sh on Android.

	* lisp/tab-line.el (tab-line-tab-map)
	(tab-line-new-tab)
	(tab-line-select-tab)
	(tab-line-close-tab)
	(tab-line-track-tap)
	(tab-line-event-start): Improve support for touch screen events.

	* lisp/tab-bar.el (tab-bar-mouse-context-menu):
	(tab-bar-map): Likewise.
	(tab-bar-handle-timeout, tab-bar-touchscreen-begin): New
	functions.

	* lisp/subr.el (event-start): Don't return nonsense if EVENT is a
	touchscreen event.
	(event-end): Likewise.
	(read-key): Disable text conversion within
	read-key-sequence-vector.
	(read-char-choice-with-read-key): Display the on screen keyboard.
	(read-char-from-minibuffer): Disable text conversion.
	(use-dialog-box-p): Prefer dialog boxes on Android.
	(y-or-n-p): Disable text conversion properly under all three modes
	of operation.

	* lisp/startup.el (android-fonts-enumerated): New variable.
	(normal-top-level): Load system fonts on Android.

	* lisp/speedbar.el (speedbar-fetch-etags-command): Use
	etags-program-name instead of hard-coding `etags'.

	* lisp/simple.el (normal-erase-is-backspace-setup-frame): Return
	true on Android.
	(event-apply-modifier): Correctly apply Shift and Control
	modifiers to keys with other modifiers.
	(undo-auto-amalgamate): Mention analyze-text-conversion wrt being
	an amalgamating command.

	* lisp/shell.el (shell--command-completion-data): Don't lose
	if PATH contains an inaccessible directory.

	* lisp/progmodes/prog-mode.el (prog-mode): Enable text conversion.
	* lisp/progmodes/cperl-mode.el (cperl-etags): Don't hard-code
	etags, employ etags-program-name instead.

	* lisp/progmodes/cc-mode.el (c-initialize-cc-mode): Initialize
	text conversion hook.
	* lisp/progmodes/cc-cmds.el (c-post-text-conversion): New
	function.  Do electric characters.

	* lisp/play/gamegrid.el (gamegrid-setup-default-font): Don't crash
	if the display resolution is too high.

	* lisp/play/dunnet.el (text-conversion-style):
	* lisp/play/doctor.el (doctor-mode): Enable text conversion.

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page)
	(pixel-scroll-precision-scroll-Up-page): Make autoloads.

	* lisp/org/org-ctags.el (org-ctags-path-to-ctags): Use
	ctags-program-name, not ctags.

	* lisp/obsolete/terminal.el (terminal-emulator): Start
	/system/bin/sh, not /bin/sh.

	* lisp/net/tramp.el (tramp-encoding-shell): Use /system/bin/sh on
	Android.

	* lisp/net/eww.el (eww-form-submit, eww-form-file)
	(eww-form-checkbox, eww-form-select): Define these faces on
	Android as well.

	* lisp/net/browse-url.el (browse-url-default-browser)
	(browse-url--browser-defcustom-type): Specify on Android.
	(browse-url-android-share, browse-url-default-android-browser):
	New option and function.

	* lisp/mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event)
	(mouse-wheel-left-event, mouse-wheel-right-event): Define suitably
	on Android.

	* lisp/mouse.el (minor-mode-menu-from-indicator): New argument
	EVENT.  Use it for positioning the menu.
	(mouse-minor-mode-menu): Pass EVENT to that function.

	* lisp/minibuffer.el (clear-minibuffer-message): Don't clear the
	message if `touch-screen-preview-select' may be underway.
	(minibuffer-mode): Enable text conversion.
	(minibuffer-setup-on-screen-keyboard)
	(minibuffer-exit-on-screen-keyboard): New functions.

	* lisp/menu-bar.el (menu-bar-close-window): New option.
	(menu-bar-edit-menu): Bind execute-extended-command to a menu
	item.
	(kill-this-buffer, kill-this-buffer-enabled-p): Respect
	menu-bar-close-window.

	* lisp/mail/rmail.el (rmail-autodetect, rmail-insert-inbox-text):
	Don't hard-code the name of movemail; rather, use
	movemail-program-name.
	* lisp/mail/emacsbug.el (emacs-build-description): Insert the
	Android version and manufacturer.

	* lisp/ls-lisp.el (ls-lisp-use-insert-directory-program): Default
	to off on Android.

	* lisp/loadup.el: Set load-list to empty load list after startup;
	dump the first time Emacs starts, and load Android related
	miscellanea.

	* lisp/isearch.el (isearch-text-conversion-style): New variable.
	(isearch-mode, isearch-done): Display the OSK, then temporarily
	disable and restore the on screen keyboard.

	* lisp/international/mule-cmds.el (set-coding-system-map): Update
	menu definition for Android.

	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Improve detection of CJK fonts.

	* lisp/image/wallpaper.el: Fix compiler warning.

	* lisp/ielm.el (inferior-emacs-lisp-mode): Don't hard-code name of
	hexl, replacing that with hexl-program-name.

	* lisp/htmlfontify.el (hfy-etags-bin): Replace hard-coded Emacs
	with etags-program-name.

	* lisp/hexl.el (hexl-program): Replace hard-coded hexl.

	* lisp/help-macro.el (make-help-screen): Display the on screen
	keyboard and disable text conversion prior to reading options.

	* lisp/gnus/mail-source.el (mail-source-movemail-program): Replace
	hard-coded movemail with movemail-program-name.

	* lisp/gnus/gnus-score.el (gnus-read-char): New function.
	(gnus-summary-increase-score): Use a dialog box to display
	these options on Android.

	* lisp/frame.el (frame-geometry, frame-edges)
	(mouse-absolute-pixel-position, set-mouse-absolute-pixel-position)
	(frame-list-z-order, frame-restack, display-mouse-p)
	(display-popup-menus-p, display-graphic-p, display-symbol-keys-p)
	(display-screens, display-pixel-height, display-pixel-width)
	(display-mm-height, display-mm-width, display-backing-store)
	(display-save-under, display-planes, display-color-cells)
	(display-visual-class, display-monitor-attributes-list): Implement
	window system specific functions on Android.

	* lisp/files.el (basic-save-buffer): Allow files to exist without
	a parent directory.

	* lisp/faces.el (tool-bar): Use default definition on Android.

	* lisp/emacs-lisp/eldoc.el (eldoc-add-command-completions): Add
	touch-screen-handle-touch and analyze-text-conversion.

	* lisp/elec-pair.el (electric-pair-analyze-conversion): New
	function.

	* lisp/doc-view.el (doc-view-menu): Improve menu.
	(doc-view-tool-bar-map): Add a new tool bar for Doc View.
	(doc-view-new-search): New command.
	(doc-view-mode): Enable that new tool bar.

	* lisp/dired-aux.el (dired-do-chxxx, dired-do-chmod)
	(dired-do-print, dired-do-shell-command, dired-do-compress-to)
	(dired-do-create-files, dired-do-rename, dired-do-isearch)
	(dired-do-isearch-regexp, dired-do-search)
	(dired-do-query-replace-regexp, dired-do-find-regexp)
	(dired-vc-next-action): Disable ``click to select'' after
	running this command.
	* lisp/dired.el (dired-insert-set-properties): Attach
	click-to-select keymap to file names if necessary.
	(dired-mode-map): Bind `touchscreen-hold' to click to select
	mode.
	(dired-post-do-command): New function.
	(dired-do-delete): Call it.
	(dired-mark-for-click, dired-enable-click-to-select-mode): New
	functions.
	(dired-click-to-select-mode): New minor mode.

	* lisp/cus-edit.el (custom-button-mouse, custom-button-pressed)
	(custom-display): Define faces to their default values on Android.

	* lisp/comint.el (comint-mode): Enable text conversion.

	* lisp/cedet/semantic/db-ebrowse.el
	(semanticdb-create-ebrowse-database): Replace fixed ebrowse with
	ebrowse-program-name.

	* lisp/calc/calc.el (calc-mode): Display the on screen keyboard.
	(calc): Insist on displaying the on screen keyboard.

	* lisp/button.el (button-map): Bind touch screen events to
	push-button.
	(push-button): Deal with touch screen events.

	* lisp/bindings.el (cut, paste, cut, text-conversion): New
	bindings.

	* lisp/battery.el (battery-status-function): Use
	`battery-android'.
	(battery-android): New function.

	* lib/gnulib.mk.in:
	* lib/getline.c:
	* lib/getdelim.c:
	* lib/Makefile.in: Update from Gnulib.

	* lib-src/emacsclient.c (decode_options): Set `alt_display' to
	`android'.

	* lib-src/asset-directory-tool.c: New file.

	* lib-src/Makefile.in: Adapt for cross-compilation.

	* java/res/xml/preferences.xml:
	* java/res/values/style.xml:
	* java/res/values/strings.xml:
	* java/res/values/bool.xml:
	* java/res/values-v29/style.xml:
	* java/res/values-v24/bool.xml:
	* java/res/values-v19/bool.xml:
	* java/res/values-v14/style.xml:
	* java/res/values-v11/style.xml:
	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java:
	* java/org/gnu/emacs/EmacsWindow.java:
	* java/org/gnu/emacs/EmacsView.java:
	* java/org/gnu/emacs/EmacsThread.java:
	* java/org/gnu/emacs/EmacsSurfaceView.java:
	* java/org/gnu/emacs/EmacsService.java:
	* java/org/gnu/emacs/EmacsSdk8Clipboard.java:
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java:
	* java/org/gnu/emacs/EmacsSdk23FontDriver.java:
	* java/org/gnu/emacs/EmacsSdk11Clipboard.java:
	* java/org/gnu/emacs/EmacsSafThread.java:
	* java/org/gnu/emacs/EmacsPreferencesActivity.java:
	* java/org/gnu/emacs/EmacsPixmap.java:
	* java/org/gnu/emacs/EmacsOpenActivity.java:
	* java/org/gnu/emacs/EmacsNoninteractive.java:
	* java/org/gnu/emacs/EmacsNative.java:
	* java/org/gnu/emacs/EmacsMultitaskActivity.java:
	* java/org/gnu/emacs/EmacsLauncherPreferencesActivity.java:
	* java/org/gnu/emacs/EmacsInputConnection.java:
	* java/org/gnu/emacs/EmacsHolder.java:
	* java/org/gnu/emacs/EmacsHandleObject.java:
	* java/org/gnu/emacs/EmacsGC.java:
	* java/org/gnu/emacs/EmacsFontDriver.java:
	* java/org/gnu/emacs/EmacsFillRectangle.java:
	* java/org/gnu/emacs/EmacsFillPolygon.java:
	* java/org/gnu/emacs/EmacsDrawable.java:
	* java/org/gnu/emacs/EmacsDrawRectangle.java:
	* java/org/gnu/emacs/EmacsDrawPoint.java:
	* java/org/gnu/emacs/EmacsDrawLine.java:
	* java/org/gnu/emacs/EmacsDocumentsProvider.java:
	* java/org/gnu/emacs/EmacsDirectoryEntry.java:
	* java/org/gnu/emacs/EmacsDialogButtonLayout.java:
	* java/org/gnu/emacs/EmacsDialog.java:
	* java/org/gnu/emacs/EmacsCursor.java:
	* java/org/gnu/emacs/EmacsContextMenu.java:
	* java/org/gnu/emacs/EmacsClipboard.java:
	* java/org/gnu/emacs/EmacsApplication.java:
	* java/org/gnu/emacs/EmacsActivity.java:
	* java/debug.sh:
	* java/README:
	* java/Makefile.in:
	* java/INSTALL:
	* java/AndroidManifest.xml.in:
	* exec/trace.c:
	* exec/test.c:
	* exec/mipsfpu.h:
	* exec/mipsfpu.c:
	* exec/mipsel-user.h:
	* exec/loader-x86_64.s:
	* exec/loader-x86.s:
	* exec/loader-mipsel.s:
	* exec/loader-mips64el.s:
	* exec/loader-armeabi.s:
	* exec/loader-aarch64.s:
	* exec/install-sh:
	* exec/exec1.c:
	* exec/exec.h:
	* exec/exec.c:
	* exec/deps.mk:
	* exec/configure.ac:
	* exec/config.sub:
	* exec/config.h.in:
	* exec/config.guess:
	* exec/config-mips.m4.in:
	* exec/README:
	* exec/Makefile.in:
	* etc/images/last-page.xpm: New files.

	* etc/PROBLEMS: Expound upon problems with font instructing on
	Android.

	* etc/NEWS: Announce changes.

	* etc/MACHINES: Describe support for Android.

	* etc/DEBUG: Illustrate the steps to debug Emacs on Android.

	* doc/lispref/processes.texi (Subprocess Creation):
	* doc/lispref/os.texi (System Environment):
	* doc/lispref/keymaps.texi (Translation Keymaps):
	(Extended Menu Items):
	(Tool Bar):
	* doc/lispref/frames.texi (Frames):
	(Frame Layout):
	(Font and Color Parameters):
	(Pop-Up Menus):
	(Window System Selections):
	* doc/lispref/elisp.texi (Top):
	* doc/lispref/display.texi (Defining Faces):
	(Window Systems):
	* doc/lispref/commands.texi (Touchscreen Events):
	(Touchscreen Events):
	(Misc Events):
	(Key Sequence Input):
	* doc/emacs/windows.texi (Tab Line):
	* doc/emacs/input.texi:
	* doc/emacs/frames.texi (Tool Bars):
	(Tab Bars):
	* doc/emacs/emacs.texi (Top):
	* doc/emacs/dired.texi (Marks vs Flags):
	* doc/emacs/android.texi:
	* doc/emacs/Makefile.in (EMACSSOURCES): Update the documentation
	to properly describe changes effected.

	* cross/verbose.mk.android:
	* cross/ndk-build/ndk-resolve.mk:
	* cross/ndk-build/ndk-prebuilt-static-library.mk:
	* cross/ndk-build/ndk-prebuilt-shared-library.mk:
	* cross/ndk-build/ndk-clear-vars.mk:
	* cross/ndk-build/ndk-build.mk.in:
	* cross/ndk-build/ndk-build-static-library.mk:
	* cross/ndk-build/ndk-build-shared-library.mk:
	* cross/ndk-build/ndk-build-executable.mk:
	* cross/ndk-build/README:
	* cross/ndk-build/Makefile.in:
	* cross/langinfo.h:
	* cross/README:
	* cross/Makefile.in: New files.
	* configure.ac: Configure Emacs for cross-compilation on Android.

	* build-aux/ndk-module-extract.awk:
	* build-aux/ndk-build-helper.mk:
	* build-aux/ndk-build-helper-4.mk:
	* build-aux/ndk-build-helper-3.mk:
	* build-aux/ndk-build-helper-2.mk:
	* build-aux/ndk-build-helper-1.mk:
	* build-aux/makecounter.sh: New file.
	* autogen.sh: Autogen in exec as well.

	* admin/merge-gnulib (GNULIB_MODULES): Add getline, stpncpy and
	strnlen.  Clean lib.

	* README:
	* Makefile.in:
	* INSTALL: Update for Android.
	* .dir-locals.el (c-mode): Add a few new types.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	* nt/mingw-cfg.site: Remove additions for Gnulib printf.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	Update from Gnulib, remove printf-posix

	* m4, lib: Update from Gnulib.

	* msdos/sedlibmk.inp: Remove variables deleted as part of previous
	change.

	* admin/merge-gnulib (GNULIB_MODULES): Remove vasprintf and
	printf-posix.

2023-08-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Mark Emacs 21 compat aliases `lm-*-mark` obsolete

	* lisp/emacs-lisp/lisp-mnt.el (lm-section-mark, lm-code-mark)
	(lm-commentary-mark, lm-history-mark): Mark Emacs 21 compatibility
	aliases obsolete.  Update all callers to use the new name.

2023-08-06  Paul Eggert  <eggert@cs.ucla.edu>

	Stop using printf %n

	* src/emacs.c (shut_down_emacs): Don’t use printf’s "%n" format.
	Android, MS-Windows, and OpenBSD don’t support it, and it’s easy
	enough to do its equivalent by hand.

2023-08-06  Eli Zaretskii  <eliz@gnu.org>

	Fix last change of 'delete-file'

	* src/fileio.c (Fdelete_file_internal): Expand file name here, as
	all primitives must.
	(internal_delete_file): Adjust to the fact that Fdelete_file was
	renamed.

	* lisp/files.el (delete-file): Don't expand-file-name here, as
	the called primitives already do.  Fix typo in doc string.

2023-08-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsService.java (readDirectoryEntry): Fix
	potential NULL dereference.

2023-08-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-08-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsNative.java: Declare ftruncate.

	* java/org/gnu/emacs/EmacsSafThread.java (openDocument1): If
	initially opening with rwt, verify the file descriptor is really
	writable; if not, resort to rw and truncating the file descriptor
	by hand instead.

	* src/androidvfs.c (NATIVE_NAME (ftruncate)): New function.
	Truncate file descriptor and return whether that was successful.

2023-08-06  Eric S. Raymond  <esr@thyrsus.com>

	Separate filename-deletion mechanism from policy.

	src/fileio.c: (delete-file-internal) Renamed from delete-file,
	              parallel to delete-directory-internal; policy
		      code moved to Lisp.
	src/files.el: (delete-file) New function, holds policy logic.
	              calls delete-file-internal.

	This is a pure refactoring step, delete-file's behavior is
	unchanged. But the C core is a little simpler now.

2023-08-06  Michael Albinus  <michael.albinus@gmx.de>

	Suppress some Tramp tests for OpenBSD

	* test/lisp/net/tramp-tests.el (tramp--test-openbsd-p): New defun.
	(tramp-test41-special-characters, tramp-test42-utf8): Use it.
	(Bug#64935)

2023-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Mark Emacs 20 color support compat aliases obsolete

	* lisp/faces.el (x-defined-colors, x-color-defined-p)
	(x-color-values, x-display-color-p): Make Emacs 20 compat aliases
	obsolete.  Update one caller to use the new names.
	* doc/lispref/frames.texi (Color Names): Do not document above
	obsolete aliases.

2023-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Mark unused macro defun-gmm obsolete

	* lisp/gnus/gmm-utils.el (defun-gmm): Mark as obsolete.

2023-08-06  Jim Porter  <jporterbugs@gmail.com>

	Merge from origin/emacs-29

	1e8322bb26e Fix handling of 'byte-compile-ignore-files' when nil

2023-08-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidvfs.c (android_saf_tree_chmod): Repair file access
	permissions allowed within FLAGS.

2023-08-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-08-05  Mattias Engdegård  <mattiase@acm.org>

	* test/lisp/align-resources/c-mode.erts: Make test agree with Emacs

	This eliminates a failure in align-tests.  There doesn't seem to be
	anything obviously wrong with Emacs's behavior in this case.

2023-08-05  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	f2b2c752a59 Fix documentation of saveplace facilities for Dired
	4ed9d61c89a ; * lisp/tab-bar.el: Autoload cl--set-substring, as that ...
	30976ecd8d8 ; * lisp/bindings.el (mode-line-modes): Fix typo (bug#650...
	8574ef314c4 Fix loaddef generation with ";;;foo-autoload" cookies in ...
	8cbd4a02a2b Delete comment saying that project.el is experimental

2023-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Simplify rng-substq with cl-substitute

	* lisp/nxml/rng-util.el (rng-substq): Simplify.
	(cl-lib): Require.

2023-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Make eshell-redisplay into alias for redisplay

	* lisp/eshell/esh-util.el (eshell-redisplay): Make into obsolete
	function alias for 'redisplay'.  This removes a workaround for some
	obscure bug apparently found in Emacs 21.  Update all callers.

2023-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Use file-size-human-readable in eshell

	* lisp/eshell/esh-util.el (eshell-printable-size): Simplify using
	file-size-human-readable.

2023-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Fix eshell "ls" command for files larger than 1TiB

	* lisp/eshell/esh-util.el (eshell-printable-size): Fix displaying file
	sizes larger than 1 TiB or 1 TB.
	* test/lisp/eshell/esh-util-tests.el
	(esh-util-test/eshell-printable-size)
	(esh-util-test/eshell-printable-size/zero)
	(esh-util-test/eshell-printable-size/terabyte)
	(esh-util-test/eshell-printable-size/use-colors)
	(esh-util-test/eshell-printable-size/block-size)
	(esh-util-test/eshell-printable-size/human-readable-arg): New tests.

2023-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Simplify pcomplete-uniquify-list

	* lisp/pcomplete.el (pcomplete-uniquify-list): Improve docstring.
	Simplify.

2023-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Add crossref to set-default-file-modes docstring

	* src/fileio.c (Fset_default_file_modes): Doc fix; add to the
	docstring a cross-reference to with-file-modes.

2023-08-05  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Fix gallery directory permissions

	* lisp/image/image-dired.el (image-dired-gallery-generate): Set
	umask to 077 before creating gallery directory.

2023-08-05  Eli Zaretskii  <eliz@gnu.org>

	Allow user control on char-width of "ambiguous" characters

	* src/character.c (syms_of_character) <ambiguous-width-chars>: New
	char-table.

	* lisp/international/characters.el (ambiguous-width-chars): Fill
	the table.
	(update-cjk-ambiguous-char-widths): New function.
	(cjk-ambiguous-chars-are-wide): New defcustom, uses
	'update-cjk-ambiguous-char-widths' as its :set function.
	(use-cjk-char-width-table): Obey 'cjk-ambiguous-chars-are-wide' by
	adding another child char-table for ambiguous-width characters,
	where the width is set according to the option.

	* lisp/language/chinese.el ("Chinese-GB", "Chinese-BIG5")
	("Chinese-CNS", "Chinese-EUC-TW", "Chinese-GBK"):
	* lisp/language/japanese.el ("Japanese"):
	* lisp/language/korean.el ("Korean"): Add new language-info slot
	'cjk-locale-symbol'.

	Bug#64420

2023-08-05  Po Lu  <luangruo@yahoo.com>

	* doc/lispref/commands.texi (Touchscreen Events): Fix typo.

	Merge remote-tracking branch 'origin/master' into feature/android

2023-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Add ruff and flake8 to python-check-command

	* lisp/progmodes/python.el (python-check-command): Add ruff and
	flake8.

2023-08-04  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix thumbnail update when thumb name is based on image content

	* lisp/image/image-dired-util.el
	(image-dired-update-thumbnail-at-point): New function to update
	thumbnail when original image contents changed.
	* lisp/image/image-dired-external.el
	(image-dired-rotate-original): Use it.
	* lisp/image/image-dired.el (image-dired-display-thumbs): Fix
	spacing while here.  (Bug#61394)

2023-08-04  Po Lu  <luangruo@yahoo.com>

	Try to restore the MS Windows build

	* nt/mingw-cfg.site: Impede building Gnulib's vasnprintf* code.

2023-08-04  Mattias Engdegård  <mattiase@acm.org>

	Don't allow the `eq` and `unbind` byte-ops to commute (bug#65017)

	* lisp/emacs-lisp/byte-opt.el (byte-after-unwind-ops):
	Cease sinking `eq` past `unwind`, because that optimized away the
	let-binding in

	  (let ((symbols-with-pos-enabled nil))
	    (eq x y))

	and `eq` is currently sensitive to `symbols-with-pos-enabled`.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp--eq-symbols-with-pos-enabled): New test.

2023-08-04  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	0f183770c56 Fix byte-compiled files that use 'bind-key' from use-package
	acfcf7f3690 Fix "Paste from Kill Menu" in non X toolkit builds
	04996b21241 Handle tabs in the SQL shown in the column listing
	573fcf27122 Add new keyword to 'typescript-ts-mode'
	db7d70d3cad ; Add commentary to 'describe-function's completion

2023-08-04  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	6eddbfe33f2 Clarify the meaning of the argument of ':align-to' space ...
	5c6a51668b0 ; * doc/misc/eshell.texi (Argument Modifiers): Fix typo i...
	da5e05a50e8 Fix handling of ".elpaignore" file when compiling packages

2023-08-04  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	0c29f53ab87 Fix 'string-pixel-width' under 'line-prefix'
	7bbd7cae074 Fix find-dired-with-command for remote directories
	c4a8572025e ; * etc/HISTORY: Fix Emacs 28.3 entry.

2023-08-04  Po Lu  <luangruo@yahoo.com>

	Optimize creation of multibyte menu items on Android

	* src/androidvfs.c (android_verify_jni_string): Move to
	android.c.
	* src/android.c (android_verify_jni_string): New function.
	(android_build_string): Forgo encoding menu text if TEXT is a
	multibyte string that's also a valid JNI string.
	* src/android.h: Update prototypes.

2023-08-04  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-skeleton-write-region): Fix scoping.

	(Bug#65022)

2023-08-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/cc-mode.el (c-advise-fl-for-region): Fix compiler warning

	Make sure we macro-expand `defadvice` only when we want to use it.

2023-08-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/advice.el (defadvice): Mark as obsolete

2023-08-04  Po Lu  <luangruo@yahoo.com>

	Avoid encoding commonplace characters in tree names

	* java/org/gnu/emacs/EmacsService.java (getDocumentTrees): Don't
	encode some characters that need not be escaped within file
	names.

2023-08-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Register more Ruby files in auto-mode-alist

	* lisp/progmodes/ruby-mode.el (auto-mode-alist): Add fastlane and
	Caxlsx files.

2023-08-03  Po Lu  <luangruo@yahoo.com>

	* src/fileio.c (check_vfs_filename): Revert earlier change.

	Merge remote-tracking branch 'origin/master' into feature/android

2023-08-03  Michael Albinus  <michael.albinus@gmx.de>

	Improve SELinux handling in Tramp

	* lisp/net/tramp-sh.el (tramp-stat-file-attributes-with-selinux)
	(tramp-stat-directory-files-and-attributes-with-selinux): New defconst.
	(tramp-do-file-attributes-with-ls)
	(tramp-do-file-attributes-with-stat)
	(tramp-do-directory-files-and-attributes-with-stat): Return also
	SELinux context.
	(tramp-remote-selinux-p, tramp-do-copy-or-rename-file): Adapt docstring.

	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file)
	(tramp-sudoedit-remote-selinux-p): Adapt docstring.
	(tramp-sudoedit-file-attributes-with-selinux): New defconst.
	(tramp-sudoedit-handle-file-attributes): Use it.

	* lisp/net/tramp.el (tramp-convert-file-attributes):
	Extract SELinux context.

2023-08-03  Felicián Németh  <felician.nemeth@gmail.com>

	Eglot: send version in clientInfo (bug#62198)

	* lisp/progmodes/eglot.el (eglot--version): New defconst.
	(eglot--connect): Use it.

2023-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Add test for align-regexp

	* test/lisp/align-tests.el (align-regexp): New test.
	* test/lisp/align-resources/align-regexp.erts: New file.

	* test/lisp/align-resources/c-mode.erts: Add new test case.

2023-08-03  Manuel Giraud  <manuel@ledu-giraud.fr>

	Revert thumbnail naming for 'per-directory' storage method

	* lisp/image/image-dired-util.el (image-dired-thumb-name): Revert
	to "filename.thumb.jpg" for 'per-directory' storage.  (Bug#61394)

	* lisp/image/image-dired.el (image-dired-thumbnail-storage): Fix
	documentation.

2023-08-03  Eli Zaretskii  <eliz@gnu.org>

	Revert "Fix image-dired-utils-tests after 83b6a8a5147 (bug#61394)"

	This reverts commit 5efc7b22cecc0cf1e7dd2bbbc26400dba35e33ea.
	It is no longer needed, see bug#61394.

2023-08-03  Helmut Eller  <eller.helmut@gmail.com>

	Improve interactive prompting for face colors

	When displaying the completion candidates, show how the face would
	look with the new foreground/background.

	* lisp/faces.el (faces--string-with-color): New helper,
	factored out from 'defined-colors-with-face-attributes'.
	(defined-colors-with-face-attributes): Use it.
	(read-color): Add optional argument FACE and pass
	it to 'faces--string-with-color.'
	(read-face-attribute): Call 'read-color' with more appropriate
	foreground and face arguments.

	* doc/lispref/minibuf.texi (High-Level Completion): Describe
	the intention behind the arguments FOREGROUND and FACE of
	'read-color'.  (Bug#64725)

2023-08-03  Po Lu  <luangruo@yahoo.com>

	Isolate fchmodat within the Android VFS layer

	* src/android.h: Update prototypes.
	* src/androidvfs.c (unix_vfs_ops, android_unix_chmod, afs_vfs_ops)
	(android_afs_chmod, content_vfs_ops, android_content_chmod)
	(authority_vfs_ops, android_authority_chmod, saf_root_vfs_ops)
	(android_saf_root_chmod, saf_tree_vfs_ops, android_saf_tree_chmod)
	(saf_file_vfs_ops, saf_new_vfs_ops, android_saf_new_chmod)
	(root_vfs_ops): Add `chmod' to the list of functions implemented
	by each vnode.
	(android_fchmodat): New function.
	* src/fileio.c (Fset_file_modes): Use `emacs_fchmodat'.
	* src/lisp.h:
	* src/sysdep.c (emacs_fchmodat): Delegate to android_fchmodat on
	Android.

2023-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Support css-ts-mode in align.el

	* lisp/align.el (align-rules-list): Add css-ts-mode.

2023-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Support python-ts-mode in align.el

	* lisp/align.el (align-dq-string-modes, align-sq-string-modes)
	(align-open-comment-modes, align-rules-list): Use python-base-mode
	instead of python-mode.

2023-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Add latex-mode tests for align.el

2023-08-03  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsSafThread.java (CacheToplevel):
	(EmacsSafThread):
	(DocIdEntry):
	(getCache):
	(pruneCache):
	(cacheDirectoryFromCursor):
	(run):
	(documentIdFromName1):
	(statDocument1):
	(openDocumentDirectory1):
	(openDocument1): Introduce a file status cache and populate
	it with files within directories as they are opened.
	* java/org/gnu/emacs/EmacsService.java (createDocument):
	(createDirectory):
	(moveDocument): Invalidate the file status cache wherever
	needed.
	* src/fileio.c (check_vfs_filename):
	(Fset_file_modes): Permit `set-file-modes' to silently fail
	on asset and content files.

2023-08-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Add python-mode tests for align.el

	* test/lisp/align-tests.el (align-python): New test.
	* test/lisp/align-resources/python-mode.erts: New file.

2023-08-02  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Subroutine names are fontified correctly in all places

	Subroutine names are fontified as subroutine names even if the name is also
	the name of a builtin (fixing an ancient unreported bug).  Subroutine name
	are just comments in comment and pod (fixing a bug introduced recently)

	* lisp/progmodes/cperl-mode.el (cperl-init-faces): Move
	fontification of sub declarations before that of builtins.  Don't
	override existing faces when fontifying subroutine declarations.
	Don't fontify method calls even if the sub names match those of
	builtins.

	* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-fontify-sub-names):
	New tests with a subroutine name in several surroundings.

	* test/lisp/progmodes/cperl-mode-resources/sub-names.pl: New resource
	for the new test.

2023-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Add nvim and ncmpcpp to eshell-visual-commands

	* lisp/eshell/em-term.el (eshell-visual-commands): Add nvim and
	ncmpcpp.

2023-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Make use-package-statistics-mode non-interactive

	* lisp/use-package/use-package-core.el
	(use-package-statistics-mode): Make non-interactive; it only works in
	buffers prepared by use-package-report.

2023-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Add let-alist to alist shortdoc group

	* lisp/emacs-lisp/shortdoc.el (alist): Add let-alist.

2023-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Refer to align-highlight-rule in face docstrings

	* lisp/align.el (align-highlight-change-face)
	(align-highlight-nochange-face): Refer to align-highlight-rule.

2023-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Fix link to info node in prin1 docstring

	* src/print.c (Fprin1): Fix linking to info node in docstring.

2023-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Don't hardcode ruby version in interpreter-mode-alist

	* lisp/progmodes/ruby-mode.el (interpreter-mode-alist): Don't hardcode
	ruby version.  This adds support for modern versions of Ruby like
	"ruby2.7", instead of the previously hardcoded "ruby1.9".

2023-08-02  Stefan Kangas  <stefankangas@gmail.com>

	use-package: Mark Emacs 25 support code obsolete

	* lisp/use-package/use-package-core.el
	(use-package-font-lock-keywords): Make obsolete.
	(font-lock-add-keywords): Only call for Emacs 25 or older.

2023-08-02  Mattias Engdegård  <mattiase@acm.org>

	rx: better not-wordchar and (syntax word) translation

	* lisp/emacs-lisp/rx.el:
	Add tables of legacy syntax.
	(rx--translate-symbol):
	Translate the legacy construct `not-wordchar` as (not wordchar), which
	is more intuitively obvious.
	* lisp/emacs-lisp/rx.el (rx--translate-syntax):
	Generate the shorter \w and \W instead of \sw and \Sw.
	* test/lisp/emacs-lisp/rx-tests.el (rx-atoms, rx-syntax, rx-not):
	Adapt tests.

2023-08-02  Mattias Engdegård  <mattiase@acm.org>

	rx performance improvements

	* lisp/emacs-lisp/rx.el (rx--generate-alt):
	Treat the intervals and classes lists separately without joining,
	to reduce allocation.  Handle special cases first.
	(rx--union-intervals):
	Implement directly instead of using intersection and complement.
	* test/lisp/emacs-lisp/rx-tests.el (rx-any): Adapt test, as some
	character alternatives are now slightly different.
	(rx--complement-intervals, rx--union-intervals)
	(rx--intersect-intervals): New unit tests.

2023-08-02  Po Lu  <luangruo@yahoo.com>

	Fix reporting of key events containing SYM and META

	* doc/emacs/android.texi (Android)::(What is Android?):
	(Android Startup, Android File System, Android Environment)
	(Android Windowing, Android Fonts, Android Troubleshooting):
	Improve section titles.
	(Android Windowing): Describe the relation between keyboard
	modifiers reported by Android and those in key events.
	* java/org/gnu/emacs/EmacsWindow.java (onKeyDown, onKeyUp):
	Clear META_SYM_ON and META_META_MASK when retrieving ASCII
	characters.
	* src/androidgui.h: Add ANDROID_META_MASK.
	* src/androidterm.c (android_android_to_emacs_modifiers)
	(android_emacs_to_android_modifiers): Transform META to Alt, and
	vice versa.

2023-08-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-08-01  Michael Albinus  <michael.albinus@gmx.de>

	Mark Tramp test :unstable

	* test/lisp/net/tramp-tests.el (tramp-test47-read-password):
	Mark it :unstable.

2023-08-01  Michael Albinus  <michael.albinus@gmx.de>

	Add more `tramp-suppress-trace' properties in Tramp

	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	Use `tramp-archive-handle-file-symlink-p'.
	(tramp-archive-handle-file-symlink-p): New defun.

	* lisp/net/tramp-cache.el (tramp-loaddefs): Don't require.
	(tramp-get-hash-table, tramp-cache-print)
	(tramp-dump-connection-properties): Declare `tramp-suppress-trace'
	property.

	* lisp/net/tramp-cmds.el (tramp-cleanup-dired-buffer-p)
	(tramp-delete-tainted-remote-process-buffer-function):
	Declare `tramp-suppress-trace' property.

	* lisp/net/tramp-compat.el (tramp-loaddefs): Require.
	(tramp-error): Declare.

	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler): Fix typo.

	* lisp/net/tramp-integration.el (tramp-rfn-eshadow-setup-minibuffer)
	(tramp-rfn-eshadow-update-overlay-regexp)
	(tramp-rfn-eshadow-update-overlay): Declare `tramp-suppress-trace'
	property.

	* lisp/net/tramp-message.el (tramp-compat): Require (instead of
	tramp-loaddefs.el).
	(tramp-compat-string-replace, tramp-compat-temporary-file-directory):
	Don't declare.
	(tramp-byte-run--set-suppress-trace): Move to tramp.el.
	(tramp-debug-outline-level)
	(tramp-debug-buffer-command-completion-p, tramp-message)
	(tramp-debug-button-action, tramp-debug-link-messages)
	(tramp-debug-message-buttonize): Declare `tramp-suppress-trace' property.

	* lisp/net/tramp.el (tramp-byte-run--set-suppress-trace):
	New defun, moved from tramp-message.el.
	(tramp-file-name-unify, tramp-file-name-equal-p)
	(tramp-tramp-file-p, tramp-find-method, tramp-find-user)
	(tramp-find-host, tramp-dissect-file-name)
	(tramp-ensure-dissected-file-name, tramp-buffer-name)
	(tramp-delete-temp-file-function, tramp-time-diff):
	Declare `tramp-suppress-trace' property.

2023-08-01  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android File System): Describe how to
	access real files named /assets or /contents if so required.
	* java/org/gnu/emacs/EmacsService.java (validAuthority):
	* src/android.c (android_init_emacs_service):
	* src/android.h: New function.
	* src/androidvfs.c (android_saf_valid_authority_p): New
	function.  Wrap the Java function.
	(android_saf_root_stat, android_saf_root_access): Don't return
	success if no authority by vp->authority's name exists.
	(android_saf_tree_from_name): Check validity of string data
	before giving it to JNI.

2023-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Add tresitter modes to ibuffer-saved-filters

	* lisp/ibuf-ext.el (ibuffer-saved-filters): Add tresitter modes.

2023-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Add align tests for CSS

	* test/lisp/align-tests.el (align-css): New test.
	* test/lisp/align-resources/css-mode.erts: New file.

2023-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Use `M-x align` toml rule also for toml-ts-mode

	* lisp/align.el (align-rules-list): Add toml-ts-mode to TOML rule.

2023-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Make toml-ts-mode-indent-offset into natnum

	* lisp/textmodes/toml-ts-mode.el (toml-ts-mode-indent-offset):
	Make into natnum instead of integer.

2023-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Fix font locking of booleans in conf-toml-mode

	* lisp/textmodes/conf-mode.el (conf-toml-mode): Do not use case
	folding when font locking.
	* test/lisp/textmodes/conf-mode-tests.el (conf-test-toml-mode):
	Expand test.

2023-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Add `M-x align` support to conf-toml-mode

	* lisp/align.el (align-rules-list): Add rule for conf-toml-mode.
	* test/lisp/align-resources/conf-toml-mode.erts: New file.
	* test/lisp/align-tests.el (align-toml): New test.

2023-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Convert align-tests to use erts

2023-08-01  Mattias Engdegård  <mattiase@acm.org>

	Fix vacuous conf-mode-test

	* test/lisp/textmodes/conf-mode-tests.el (conf-test-javaprop-mode):
	Attempt to give the test some meaning by repairing regexps,
	and fixing it so that it passes.

2023-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Remove IE9 support tag from HTML5 skeleton

	This is no longer recommended in 2023, and in any case seems like
	overkill in an otherwise bare-bones HTML5 template.
	Ref: https://stackoverflow.com/a/6771584

2023-08-01  Po Lu  <luangruo@yahoo.com>

	Micro-optimize PUSHW/PUSHB

	* src/sfnt.c (CHECK_STACK_AVAILABLE): New macro.
	(PUSH):
	(PUSH_UNCHECKED): Always define to unchecked versions,
	even if TEST.
	(PUSH2_UNCHECKED): New macro.
	(NPUSHB):
	(NPUSHW):
	(PUSHB):
	(PUSHW): Check the number of remaining stack elements
	once.
	(stack_overflow_test_args): Expect zero stack arguments.

2023-08-01  Po Lu  <luangruo@yahoo.com>

	Fix stipple support on PGTK

	* src/image.c (image_create_pattern_from_pixbuf): Remove function.
	(image_bitmap_to_cr_pattern): New function.
	(image_create_bitmap_from_data):
	(image_create_bitmap_from_file): Create patterns with the correct
	mask values directly from bitmap data.  Also, don't rely on GDK
	to read XPMs, as that format isn't supported anymore.
	* src/pgtkterm.c (pgtk_bitmap_icon): Disable already nonfunctional
	code.
	(pgtk_display_x_warning): Wrap warning message.
	* src/pgtkterm.h (struct pgtk_bitmap_record): Remove `img' field.
	(bug#64969)

2023-08-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-31  Michael Albinus  <michael.albinus@gmx.de>

	Optimizations on Tramp symlink handling

	* lisp/net/tramp-sh.el (cl-seq): Require.
	(tramp-perl-file-truename): Print also whether the file is a symlink.
	(tramp-bundle-read-file-names): Rename from
	`tramp-vc-registered-read-file-names'.  Print also the
	`file-directory-p: value.
	(tramp-sh-handle-make-symbolic-link): Combine two commands.  Use
	`tramp-skeleton-make-symbolic-link'.
	(tramp-sh-handle-file-truename): Read also "file-symlink-marker"
	property.
	(tramp-sh-handle-file-directory-p): Simplify if-let clause.
	(tramp-sh-handle-file-name-all-completions): Simplify command.
	(tramp-bundle-read-file-names): New defun.
	(tramp-sh-handle-vc-registered, tramp-get-remote-path): Use it.
	(tramp-open-shell): Flush "scripts" connection property.
	(tramp-open-connection-setup-interactive-shell): Combine two commands.

	* lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-symbolic-link):
	Use `tramp-skeleton-make-symbolic-link'.

	* lisp/net/tramp.el (tramp-skeleton-make-symbolic-link): Rename from
	`tramp-skeleton-handle-make-symbolic-link'.
	(tramp-handle-file-symlink-p): Check file property
	"file-symlink-marker".

2023-07-31  Ulrich Müller  <ulm@gentoo.org>

	Drop duplicate vietnamese-tcvn coding system

	* lisp/language/vietnamese.el (vietnamese-vscii): Update docstring.
	(vietnamese-tcvn, tcvn, tcvn-5712): Make them aliases of
	vietnamese-vscii.
	("Vietnamese"): Drop vietnamese-tcvn from coding-system values.
	Update docstring.

	* etc/NEWS: Announce this change.

2023-07-31  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	525d05c1b8a Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	29ef2157116 ; * lisp/textmodes/paragraphs.el: Remove leftover comment.
	80c9f491fc8 Update to Org 9.6.7-5-gd1d0c3
	735f3700f65 ; * src/character.c (Fstring_width): Fix last change.
	bf83fdba9e3 ; * src/character.c (Fstring_width, Fchar_width): Doc fixes.
	1198cdb5567 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
	2b8796eea19 Fix rx wrong-code bug: ranges starting with ^
	ba60070b81c Backport: Fix some tree-sitter :match regexps
	092a2ecb083 ; * admin/make-tarball.txt: Update based on latest experi...
	7b9e83d3cf9 Fix bug#64923
	0002d4f3166 Avoid spurious whitespace in the modeline of emacsclient ...
	96d52f89444 Fix function help for advised aliases (bug#64797)
	71419a60c37 Avoid crashes due to invalid 'mode-line-format'
	b2cb6e82160 ; Better documentation of HOME on MS-Windows
	54e98b5f9bd ; Clarify documentation of 'server-after-make-frame-hook'
	d13029cdcde Avoid crashes under 'which-key-mode'
	cb1f7db2490 ; Minor documentation fixes
	4a687bcc20d Bump Emacs version

2023-07-31  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	092a2ecb083 ; * admin/make-tarball.txt: Update based on latest experi...
	7b9e83d3cf9 Fix bug#64923

2023-07-31  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	a9b28224af0 ; Last-minute changes before releasing 29.1
	7da1cee56b3 Update CMake support due to upstream changes (bug#64922)
	c2d95dd00e6 Remove nullptr named node from c++-ts-mode (bug#64818)
	4e977136d31 Make compat check also check typescript
	906ecf442c4 ; * etc/HISTORY: Fix the 28.3 entry.

2023-07-31  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	82d6bb66fea Update HISTORY and ChangeLog.4

2023-07-31  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	6b00e1a197d Update AUTHORS and ChangeLog.4

2023-07-31  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	ee20b50dfed ; * lisp/progmodes/typescript-ts-mode.el (treesit-query-c...
	2215298d90b Update JSX support due to upstream changes (bug#64647)
	235561a2ccc Update TSX support due to upstream changes (bug#64647)
	12ab82d3b35 ; Fix customization form of 'bookmark-watch-bookmark-file'
	d149a4dc428 ; Improve documentation of automatic addition to minibuff...
	42a99627948 ; Improve documentation of 'last-command-event'
	101455cb853 ; * lisp/subr.el (ignore, always): Doc fixes.  (Bug#64776)

2023-07-31  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	c692bbc6596 Revert "Improve commentary in nsfns.m"
	bb885928d73 Fix NetBSD build --with-sound
	39873d6d5d1 Fix typo in pre-filter for underline property

2023-07-31  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (ISECT): Micro-optimize this instruction.
	* src/sfntfont.c (sfnt_parse_style): Avoid GC safety problem.

2023-07-31  Po Lu  <luangruo@yahoo.com>

	Initialize Android API level earlier

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative):
	* java/org/gnu/emacs/EmacsNoninteractive.java (main):
	* java/org/gnu/emacs/EmacsService.java (run):
	* java/org/gnu/emacs/EmacsThread.java (run):
	* src/android.c (initEmacs, setEmacsParams): Set
	`android_api_level' within setEmacsParams, not in initEmacs.
	* src/androidvfs.c: Pacify compiler warnings.

2023-07-31  Po Lu  <luangruo@yahoo.com>

	Implement cross-directory SAF rename operations

	* java/org/gnu/emacs/EmacsService.java (renameDocument): Don't
	catch UnsupportedOperationException; handle ENOSYS in
	android_saf_rename_document instead.
	(moveDocument): New function.
	* lisp/subr.el (y-or-n-p): Always change the text conversion
	style.
	* src/android.c (android_init_emacs_service)
	(android_exception_check_4): New function.
	* src/android.h: Update Java function table.
	* src/androidvfs.c (android_saf_rename_document): Handle ENOSYS
	here by setting errno to EXDEV.
	(android_saf_move_document): New function.
	(android_document_id_from_name): Take const `dir_name'.
	(android_saf_tree_rename): Use delete-move-rename to implement
	cross-directory renames.

2023-07-31  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-30  Mattias Engdegård  <mattiase@acm.org>

	Avoid face attribute warnings in themes

	* etc/themes/deeper-blue-theme.el (class):
	* etc/themes/leuven-dark-theme.el (class):
	* etc/themes/leuven-theme.el (class):
	* etc/themes/manoj-dark-theme.el (manoj-dark):
	* etc/themes/whiteboard-theme.el (class):
	Use `unspecified` instead of `nil` as attribute for :background and
	:foreground to silence HANDLE_INVALID_NIL_VALUE warning.

2023-07-30  Mattias Engdegård  <mattiase@acm.org>

	Fix rx wrong-code bug: ranges starting with ^

	(rx (in (?^ . ?a))) was incorrectly translated to "[^-a]".
	Change it so that we get "[_-a^]" instead.

	* lisp/emacs-lisp/rx.el (rx--generate-alt): Split ranges starting with
	`^` occurring first in a non-negated character alternative.
	* test/lisp/emacs-lisp/rx-tests.el (rx-any): Add and adapt tests.

2023-07-30  Earl Hyatt  <okamsn@protonmail.com>

	Allow default values in 'map-let' and the pcase 'map' form

	* lisp/emacs-lisp/map.el (map-let, map)
	(map--make-pcase-bindings): Add a third argument for specifying a
	default value, like in 'map-elt'. (Bug#49407)

	* lisp/emacs-lisp/map.el (map--make-pcase-bindings): Clarify that keys
	that aren't found aren't ignored, they actually get the value
	nil (unless the new default value is given).  The overall pattern can
	still fail to match if the sub-pattern for the unfound key doesn't
	match nil.

	* test/lisp/emacs-lisp/map-tests.el (test-map-let-default)
	(test-map-plist-pcase-default, test-map-pcase-matches): Add tests,
	including for the above item.

2023-07-30  Michael Albinus  <michael.albinus@gmx.de>

	Finish Tramp reorganization

	* lisp/net/tramp-compat.el (subr-x): Don't require.
	(top): Use `function-put' but `put'.

	* lisp/net/tramp-gvfs.el (tramp-dbus-function): Add declare form.

	* lisp/net/tramp-message.el (tramp-byte-run--set-suppress-trace):
	New function.  Add it to `defun-declarations-alist'.
	(tramp-setup-debug-buffer, tramp-debug-buffer-name)
	(tramp-get-debug-buffer, tramp-get-debug-file-name)
	(tramp-trace-buffer-name, tramp-debug-message, tramp-message):
	Add declare form.
	(tramp-debug-buffer-name): Use `tramp-string-empty-or-nil-p'.
	(tramp-test-message): New defun.

	* lisp/net/tramp.el (top): Use `function-put' but `put'.
	(tramp-file-name-user-domain, tramp-file-name-host-port)
	(tramp-file-name-port-or-default, tramp-file-name-unify)
	(tramp-dissect-file-name, tramp-ensure-dissected-file-name)
	(tramp-dissect-hop-name, tramp-make-tramp-file-name)
	(tramp-signal-hook-function, tramp-post-process-creation)
	(tramp-read-passwd, tramp-read-passwd-without-cache)
	(tramp-clear-passwd): Add declare form.
	(tramp-string-empty-or-nil-p): Add ;;;###tramp-autoload cookie.
	(tramp-test-message): Move to tramp-message.el.

2023-07-30  Po Lu  <luangruo@yahoo.com>

	Partially implement rename operations on SAF files

	* java/org/gnu/emacs/EmacsSafThread.java
	(postInvalidateCacheDir):
	* java/org/gnu/emacs/EmacsService.java (renameDocument): New
	functions.
	* src/android.c (android_init_emacs_service):
	* src/android.h (struct android_emacs_service): Link to new JNI
	function.
	* src/androidvfs.c (android_saf_rename_document): New function.
	(android_saf_tree_rename): Implement in terms of that function
	if possible.

2023-07-30  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-29  Po Lu  <luangruo@yahoo.com>

	Correct directory permissions reported for VFS files

	* java/org/gnu/emacs/EmacsSafThread.java (statDocument1):
	* src/androidvfs.c (android_afs_stat, android_content_stat)
	(android_saf_root_stat): Report search permissions for files.

2023-07-29  Michael Albinus  <michael.albinus@gmx.de>

	Reorganize Tramp's messages

	* doc/misc/tramp.texi (Traces and Profiles): Use proper buffer
	names.  Add tramp-debug-command-messages.

	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler):
	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler):
	* lisp/net/tramp-sh.el (tramp-sh-file-name-handler):
	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler):
	Set `tramp-debug-message-fnh-function'.

	* lisp/net/tramp.el (tramp-file-name-handler):
	* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
	* lisp/net/tramp-crypt.el (tramp-crypt-maybe-open-connection):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
	* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
	* lisp/net/tramp-sh.el (tramp-maybe-open-connection):
	* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection):
	Wrap code `with-tramp-debug-message'.

	* lisp/net/tramp-message.el: New file.

	* lisp/net/tramp.el (tramp-message): Require.
	(tramp-verbose, tramp-debug-to-file, tramp-debug-buffer-name)
	(tramp-debug-outline-regexp, tramp-debug-font-lock-keywords)
	(tramp-debug-outline-level)
	(tramp-debug-buffer-command-completion-p)
	(tramp-setup-debug-buffer, tramp-get-debug-buffer)
	(tramp-get-debug-file-name, tramp-trace-buffer-name)
	(tramp-trace-functions, tramp-debug-message, tramp-message)
	(tramp-backtrace, tramp-error, tramp-error-show-message-timeout)
	(tramp-error-with-buffer, tramp-user-error)
	(tramp-with-demoted-errors): Move to tramp-message.el.
	(tramp-current-connection, tramp-file-name-user-domain)
	(tramp-file-name-host-port): Add ;;;###tramp-autoload cookie.
	(tramp-inhibit-progress-reporter): Move down.
	(tramp-post-process-creation): Write debug message only when there
	is a command.

	* lisp/net/trampver.el (tramp-repository-branch)
	(tramp-repository-version): Add ;;;###tramp-autoload cookie.

	* test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case):
	Don't bind `trace-buffer'.

2023-07-29  João Távora  <joaotavora@gmail.com>

	Jsonrpc: fix error code in jsonrpc-error function (bug#64888)

	* lisp/jsonrpc.el (jsonrpc-error): Fix error code.

2023-07-29  João Távora  <joaotavora@gmail.com>

	Jsonrpc: fix default value of success-fn (bug#64919)

	* lisp/jsonrpc.el (jsonrpc--async-request-1): Fix default value of
	success-fn.

2023-07-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsSafThread.java (postInvalidateCache):
	New argument cacheName.  Remove that file from the cache.
	(accessDocument1): Consult the storage cache as well.
	* java/org/gnu/emacs/EmacsService.java (deleteDocument): New
	argument NAME.

	* src/android.c (android_init_emacs_service): Add new argument.
	* src/androidvfs.c (android_saf_delete_document)
	(android_saf_tree_rmdir, android_saf_file_unlink): Pass name of
	file being deleted to `deleteDocument'.

2023-07-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsSafThread.java (DocIdEntry):
	(getCacheEntry):
	(CacheEntry):
	(documentIdFromName1): Fix earlier change.

2023-07-29  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsSafThread.java (DocIdEntry)
	(getCacheEntry, CacheEntry): Use `uptimeMillis' as the basis for
	cache expiration.

2023-07-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsSafThread.java (EmacsSafThread, getCache)
	(pruneCache1, pruneCache, cacheChild, cacheDirectoryFromCursor)
	(documentIdFromName1, openDocumentDirectory1): Implement the
	cache referred to by the commentary.
	* java/org/gnu/emacs/EmacsService.java (deleteDocument):
	Invalidate the cache upon document removal.
	* src/androidvfs.c (android_saf_exception_check)
	(android_document_id_from_name): Correctly preserve or set errno
	in error cases.

2023-07-29  F. Jason Park  <jp@neverwas.me>

	Simplify multi-frame behavior in erc-bufbar-mode

	* lisp/erc/erc-status-sidebar.el (erc-status-sidebar-singular,
	erc-status-sidebar--singular-p): Replace option new in ERC 5.6 with
	the latter, an internal flag.
	(erc-status-sidebar-get-window): Use new name for option turned
	ordinary variable `erc-status-sidebar--singular-p'.
	(erc-status-sidebar-close): Add comment.
	(erc-status-sidebar--open): New function containing the old body of
	`erc-status-sidebar-open'.
	(erc-bufbar-mode, erc-bufbar-enable, erc-bufbar-disable): Update
	variable names.  Close sidebar window on all frames when disabling,
	and don't set mode variable to nil when enabling.  These may have made
	some practical sense but were illogical.  For example, it's confusing
	to leave `erc-status-sidebar--open' in `erc--setup-buffer-hook' while
	reporting the mode as being disabled.
	(erc-status-sidebar-open): Move to slightly later in same file, after
	defining `erc-bufbar-mode'.  When `erc-bufbar-mode' is active, always
	create a sidebar if needed, even when another frame is already
	displaying one.
	(erc-status-toggle-sidebar): When `erc-bufbar-mode' is disabled,
	revert to pre-5.6 behavior.  When the module is enabled, adopt new
	behavior of ensuring the current frame shows a sidebar, even if
	another frame already has one.
	(erc-status-sidebar-refresh): Save and restore `window-start' in all
	windows showing a sidebar buffer after refreshing.  Update option and
	variable names.
	(erc-status-sidebar-refresh-triggers): Add doc string, noting that the
	variable is set locally when the option
	`erc-status-sidebar-highlight-active-buffer' is non-nil.
	(erc-status-sidebar--highlight-refresh-triggers): New variable
	containing additional triggers enabled when the option
	`erc-status-highlight-active-buffer' is non-nil.
	(erc-status-sidebar--refresh-unless-input): New function to run
	`erc-status-sidebar-refresh' unless input is pending or the selected
	window's buffer is a minibuffer.
	(erc-status-sidebar--post-refresh): Call `erc-status-sidebar-refresh'
	wrapper `erc-status-sidebar--refresh-unless-input' instead.
	(erc-status-sidebar-set-window-preserve-size): Update var name to
	`erc-status-sidebar--singular-p'.
	(erc-status-sidebar-mode): Run `erc-status-sidebar--post-refresh' on
	`window-selection-change-functions' globally when highlighting active
	buffers.  (bug#63595)

2023-07-29  F. Jason Park  <jp@neverwas.me>

	Fix CTCP ACTION regression in erc-fill-wrap

	* lisp/erc/erc-fill.el (erc-fill--wrap-continued-message-p): Return
	nil when current message is a CTCP ACTION.  This fixes a regression
	introduced by 63d8b2a59a4 "Make erc-fill-wrap work with left-sided
	stamps".
	* test/lisp/erc/erc-fill-tests.el: (erc-fill-wrap--merge-action):
	New test.
	* test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld: New
	test data file.  (Bug#60936)

2023-07-28  Ulrich Müller  <ulm@gentoo.org>

	Avoid spurious whitespace in the modeline of emacsclient frames

	* lisp/bindings.el (mode-line-client): Compute 'help-echotext
	property in advance.  (Bug#58183)

2023-07-28  Tassilo Horn  <tsdh@gnu.org>

	Make shell command status code checks more robust

	* lisp/doc-view.el (doc-view-ghostscript-program)
	(doc-view--revert-buffer, doc-view--pdf-outline): Compare
	'shell-command' / 'call-process' return values with 'eql' instead of
	'=' to cater for the situation where the process received a signal.

2023-07-28  Mattias Engdegård  <mattiase@acm.org>

	Clarify docs about regexp syntax-dependent character classes

	* doc/lispref/searching.texi (Char Classes, Rx Constructs)
	(Regexp Problems): Note that character classes don't take syntax
	properties into account.

2023-07-28  Mattias Engdegård  <mattiase@acm.org>

	Make uniquify-tests work with out-of-tree builds and clean up

	* test/lisp/uniquify-tests.el (uniquify-project-transform):
	Set an explicit default-directory.
	* test/lisp/uniquify-tests.el (uniquify-dirs): Remove temporary
	directory after test.

2023-07-28  Po Lu  <luangruo@yahoo.com>

	Fix SAF query

	* java/org/gnu/emacs/EmacsSafThread.java (documentIdFromName1):
	Fix query argument placeholder string.

2023-07-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidvfs.c (android_document_id_from_name): Don't return
	0 if an SAF exception occurs.

2023-07-28  Po Lu  <luangruo@yahoo.com>

	Avoid crashes when the primary clip is empty

	* src/androidselect.c (Fandroid_get_clipboard): Don't return
	data if clipboard is empty.  Reported by Johan Widén
	<j.e.widen@gmail.com>.

2023-07-28  Po Lu  <luangruo@yahoo.com>

	Allow quitting from Android content provider operations

	* doc/emacs/android.texi (Android Document Providers): Say that
	quitting is now possible.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	functions `safSyncAndReadInput', `safync' and `safPostRequest'.
	* java/org/gnu/emacs/EmacsSafThread.java: New file.  Move
	cancel-able SAF operations here.
	* java/org/gnu/emacs/EmacsService.java (EmacsService): Allow
	quitting from most SAF operations.
	* src/androidvfs.c (android_saf_exception_check): Return EINTR
	if OperationCanceledException is received.
	(android_saf_stat, android_saf_access)
	(android_document_id_from_name, android_saf_tree_opendir_1)
	(android_saf_file_open): Don't allow reentrant calls from async
	input handlers.
	(NATIVE_NAME): Implement new synchronization primitives for JNI.
	(android_vfs_init): Initialize new class.

	* src/dired.c (open_directory): Handle EINTR from opendir.
	* src/sysdep.c: Describe which operations may return EINTR on
	Android.

2023-07-28  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix image-dired-utils-tests after 83b6a8a5147 (bug#61394)

2023-07-28  Eli Zaretskii  <eliz@gnu.org>

	Fix userlock.el and filelock-tests in some rare cases

	* lisp/userlock.el (userlock--check-content-unchanged): Don't
	assume 'file-truename' of FILENAME is always non-nil.  It could be
	nil if we are called from a temporary buffer where some Lisp
	program has forcibly set 'buffer-file-name'.  (Bug#64821)

	* test/src/filelock-tests.el (filelock-tests--fixture): Set
	'buffer-file-name' to the true name of the temporary file.
	Patch by Mattias Engdegård <mattias.engdegard@gmail.com>.
	(filelock-tests-detect-external-change): Quote the file names
	passed to shell commands.

2023-07-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsDirectoryEntry.java
	(EmacsDirectoryEntry): Make class final.
	* java/org/gnu/emacs/EmacsService.java (accessDocument)
	(openDocumentDirectory, openDocument, createDocument): Throw
	access and IO error exceptions instead of catching them.
	(createDirectory, deleteDocument): New functions.
	* src/android.c (android_init_emacs_service): Add new functions.
	* src/android.h (struct android_emacs_service): Likewise.
	* src/androidvfs.c (android_saf_exception_check): New function.
	Translate between Java exceptions and errno values.
	(android_saf_stat, android_saf_access, android_saf_delete_document)
	(struct android_saf_tree_vnode, android_document_id_from_name)
	(android_saf_tree_name, android_saf_tree_rmdir)
	(android_saf_tree_opendir_1, android_saf_tree_opendir)
	(android_saf_file_open, android_saf_file_unlink)
	(android_saf_new_open, android_saf_new_mkdir): Implement missing
	VFS operations and derive errno values from the type of any
	exceptions thrown.
	(android_vfs_init): Initialize exception classes.
	(android_mkdir, android_fstat): Remove trailing whitespace.

2023-07-28  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-27  Mattias Engdegård  <mattiase@acm.org>

	Fix function help for advised aliases (bug#64797)

	* lisp/help-fns.el (help-fns--analyze-function):
	For aliases, use the base function name if at the end of the chain.
	This fixes a regression introduced in d30fde6b0cc.

	Reported by Michael Heerdegen.

2023-07-27  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp): Extend

	Add skip-chars-forward, skip-chars-backward, skip-syntax-forward,
	skip-syntax-backward, current-column, current-indentation,
	char-syntax, syntax-class-to-char, parse-partial-sexp, goto-char,
	forward-line, next-window, previous-window, minibuffer-window,
	selected-frame, selected-window, standard-case-table,
	standard-syntax-table, syntax-table, frame-first-window,
	frame-root-window and frame-selected-window as always-true functions.

2023-07-27  Mattias Engdegård  <mattiase@acm.org>

	Better compilation of char-before, backward-char and backward-word

	Implement char-before, backward-char and backward-word as compiler
	macros instead of byte-compile handlers so that the source-level
	optimizer gets to simplify the result.  In particular, this removes
	some branches.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-char-before)
	(byte-compile-backward-char, byte-compile-backward-word): Remove.
	(bytecomp--char-before, bytecomp--backward-char)
	(bytecomp--backward-word): New.

2023-07-27  Andrew Tropin  <andrew@trop.in>

	notifications: Allow to use Icon Naming Specification for app-icon

	* doc/lispref/os.texi (Desktop Notifications): Extend meaning of
	:app-icon.

	* etc/NEWS: Allow to use Icon Naming Specification for app-icon in
	notifications-notify.

	* lisp/notifications.el (notifications-notify): Allow to use Icon
	Naming Specification for app-icon.

2023-07-27  Manuel Giraud  <manuel@ledu-giraud.fr>

	New option 'image-dired-thumb-naming' (bug#61394)

	* lisp/image/image-dired.el (image-dired-thumb-naming): New user
	option to control thumbnail name.

	* lisp/image/image-dired-util.el (image-dired-thumb-name): Update
	to use new user option and compute contents SHA-1 if needed.
	(image-dired-contents-sha1): New function to compute the SHA-1 of the
	first 4KiB of a file.

2023-07-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Document Providers): Improve
	wording of paragraph clarifying limits on subprocesses.
	* java/org/gnu/emacs/EmacsService.java (getDocumentTrees): Use
	Java standard US-ASCII coding standard instead of the
	undocumented ``ASCII'' alias.
	(decodeFileName): Remove unused function.
	(documentIdFromName):
	* src/android.c (android_init_emacs_service): Take a String for
	NAME instead of a byte array.
	* src/androidvfs.c (android_verify_jni_string): New function.
	(android_document_id_from_name): Verify that STRING is a valid
	Modified UTF-8 string.

2023-07-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidvfs.c (android_afs_initial):
	(android_content_get_directory_name):
	(android_saf_tree_name):
	(android_saf_tree_from_name):
	(android_vfs_init): Silence compiler warnings.

2023-07-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_run_in_emacs_thread): Behave more
	robustly if SIGIO arrives too late Emacs for Emacs to check for
	signals, but too early to preempt a long running syscall.

2023-07-27  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes due to invalid 'mode-line-format'

	* src/xdisp.c (display_mode_element, redisplay_window_error):
	Don't take XCAR of what can be Qnil.  (Bug#64893)

2023-07-27  Po Lu  <luangruo@yahoo.com>

	Avoid crashes in some edge cases

	* java/org/gnu/emacs/EmacsActivity.java (onActivityResult):
	Avoid crashes in some edge cases.

2023-07-27  Michael Albinus  <michael.albinus@gmx.de>

	Fix problem with null-device in Tramp

	* lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name):
	`null-device' could be nil.  Reported by Richard Copley
	<rcopley@gmail.com>.

2023-07-27  Po Lu  <luangruo@yahoo.com>

	Avoid dereference of a freed vnode's operations table

	* src/androidvfs.c (android_renameat_noreplace):
	(android_rename): Free vdst using vdst->ops, not vp->ops.

2023-07-27  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac (ANDROID_STUBIFY): Add androidvfs.o when building
	libemacs.so.
	* doc/emacs/android.texi (Android): Add `Android Document Providers'.
	(Android Startup): Update the location of the content identifier
	directory.
	(Android File System): Describe access to document provider
	directories.
	(Android Document Providers): New node.
	* doc/emacs/emacs.texi (Top): Update the menu for the Android
	appendix.
	* java/Makefile.in (filename, install_temp/assets/build_info): Make
	directory-tree depend on build_info.
	* java/org/gnu/emacs/EmacsActivity.java (onActivityResult): New
	function.  When a document tree is accepted, persist access to it.
	* java/org/gnu/emacs/EmacsDirectoryEntry.java (EmacsDirectoryEntry):
	New struct.
	* java/org/gnu/emacs/EmacsOpenActivity.java (checkReadableOrCopy): Use
	EmacsService.buildContentName.
	* java/org/gnu/emacs/EmacsService.java (getEmacsView, openContentUri)
	(checkContentUri): Remove excessive debug logging.
	(buildContentName, getDocumentAuthorities, requestDirectoryAccess)
	(getDocumentTrees, decodeFileName, documentIdFromName, getTreeUri)
	(statDocument, accessDocument, openDocumentDirectory, readDirectoryEntry)
	(openDocument, createDocument): New functions.

	* lib-src/asset-directory-tool.c: Improve commentary by illustrating
	the difference between directory and ordinary files.

	* src/android.c (ANDROID_THROW, enum android_fd_table_entry_flags)
	(struct android_emacs_service, android_extract_long)
	(android_scan_directory_tree, android_is_directory)
	(android_get_asset_name, android_url_encode, android_content_name_p)
	(android_get_content_name, android_check_content_access, android_fstat)
	(android_fstatat, android_file_access_p, android_hack_asset_fd_fallback)
	(android_detect_ashmem, android_hack_asset_fd, android_close_on_exec)
	(android_open, android_close, android_fclose, android_create_lib_link)
	(android_faccessat, struct android_dir, android_opendir, android_dirfd)
	(android_readdir, android_closedir, android_lookup_asset_directory_fd)
	(android_exception_check_3, android_get_current_api_level)
	(android_open_asset, android_close_asset, android_asset_read_quit)
	(android_asset_read, android_asset_lseek, android_asset_fstat): Move
	content and asset related functions to androidvfs.c.
	(android_init_emacs_service): Obtain handles for new JNI functions.
	(initEmacsParams): Initialize the VFS layer.
	(android_request_directory_access): New function.
	(android_display_toast): Remove unused function.

	* src/android.h (android_get_current_api_level): Assume that
	this function never returns less than __ANDROID_API__.
	(struct android_emacs_service): Move `struct
	android_emacs_service' here.

	* src/androidfns.c (Fandroid_request_directory_access): New
	interactive function.
	(syms_of_androidfns): Register new subr.

	* src/androidvfs.c (struct android_vdir, struct android_vops)
	(struct android_vnode, struct android_special_vnode)
	(enum android_vnode_type, struct android_cursor_class)
	(struct emacs_directory_entry_class)
	(struct android_parcel_file_descriptor_class)
	(android_init_cursor_class, android_init_entry_class)
	(android_init_fd_class, android_vfs_canonicalize_name)
	(struct android_unix_vnode, struct android_unix_vdir, unix_vfs_ops)
	(android_unix_name, android_unix_vnode, android_unix_open)
	(android_unix_close, android_unix_unlink, android_unix_symlink)
	(android_unix_rmdir, android_unix_rename, android_unix_stat)
	(android_unix_access, android_unix_mkdir, android_unix_readdir)
	(android_unix_closedir, android_unix_dirfd, android_unix_opendir)
	(android_extract_long, android_scan_directory_tree)
	(android_is_directory, android_init_assets)
	(android_hack_asset_fd_fallback, android_detect_ashmem)
	(android_hack_asset_fd, struct android_afs_vnode)
	(struct android_afs_vdir, struct android_afs_open_fd, afs_vfs_ops)
	(android_afs_name, android_afs_initial, android_close_on_exec)
	(android_afs_open, android_afs_close, android_afs_unlink)
	(android_afs_symlink, android_afs_rmdir, android_afs_rename)
	(android_afs_stat, android_afs_access, android_afs_mkdir)
	(android_afs_readdir, android_afs_closedir, android_afs_dirfd)
	(android_afs_opendir, android_afs_get_directory_name)
	(struct android_content_vdir, content_vfs_ops)
	(content_directory_contents, android_content_name)
	(android_content_open, android_content_close)
	(android_content_unlink, android_content_symlink)
	(android_content_rmdir, android_content_rename)
	(android_content_stat, android_content_access)
	(android_content_mkdir, android_content_readdir)
	(android_content_closedir, android_content_dirfd)
	(android_content_opendir, android_content_get_directory_name)
	(android_content_initial, android_get_content_name)
	(android_check_content_access, struct android_authority_vnode)
	(authority_vfs_ops, android_authority_name, android_authority_open)
	(android_authority_close, android_authority_unlink)
	(android_authority_symlink, android_authority_rmdir)
	(android_authority_rename, android_authority_stat)
	(android_authority_access, android_authority_mkdir)
	(android_authority_opendir, android_authority_initial)
	(struct android_saf_root_vnode, struct android_saf_root_vdir)
	(saf_root_vfs_ops, android_saf_root_name, android_saf_root_open)
	(android_saf_root_close, android_saf_root_unlink)
	(android_saf_root_symlink, android_saf_root_rmdir)
	(android_saf_root_rename, android_saf_root_stat)
	(android_saf_root_access, android_saf_root_mkdir)
	(android_saf_root_readdir, android_saf_root_closedir)
	(android_saf_root_dirfd, android_saf_root_opendir)
	(android_saf_root_initial, android_saf_root_get_directory)
	(android_saf_stat, android_saf_access)
	(struct android_saf_tree_vnode, struct android_saf_tree_vdir)
	(saf_tree_vfs_ops, android_document_id_from_name)
	(android_saf_tree_name, android_saf_tree_open)
	(android_saf_tree_close, android_saf_tree_unlink)
	(android_saf_tree_symlink, android_saf_tree_rmdir)
	(android_saf_tree_rename, android_saf_tree_stat)
	(android_saf_tree_access, android_saf_tree_mkdir)
	(android_saf_tree_opendir_1, android_saf_tree_readdir)
	(android_saf_tree_closedir, android_saf_tree_dirfd)
	(android_saf_tree_opendir, android_saf_tree_from_name)
	(android_saf_tree_get_directory, android_saf_file_vnode)
	(saf_file_vfs_ops, android_saf_file_name, android_saf_file_open)
	(android_saf_file_unlink, android_saf_file_rmdir)
	(android_saf_file_opendir, android_close_parcel_fd)
	(android_saf_new_vnode, android_saf_new_name, android_saf_new_open)
	(android_saf_new_unlink, android_saf_new_symlink)
	(android_saf_new_rmdir, android_saf_new_rename)
	(android_saf_new_stat, android_saf_new_access)
	(android_saf_new_mkdir, android_saf_new_opendir, root_vfs_ops)
	(special_vnodes, android_root_name, android_name_file)
	(android_vfs_init, android_open, android_unlink, android_symlink)
	(android_rmdir, android_mkdir, android_renameat_noreplace)
	(android_rename, android_fstat, android_fstatat_1, android_fstatat)
	(android_faccessat, android_fdopen, android_close, android_fclose)
	(android_open_asset, android_close_asset, android_asset_read_quit)
	(android_asset_read, android_asset_lseek, android_asset_fstat)
	(android_opendir, android_dirfd, android_readdir)
	(android_closedir): Move file system emulation routines here.
	Introduce a new ``VFS'' layer for translating between
	Emacs-specific file names and the various disparate interfaces
	for accessing files on Android.

	* src/callproc.c (delete_temp_file):
	* src/charset.c (load_charset_map_from_file):
	* src/dired.c:
	* src/emacs.c (Fkill_emacs):
	* src/fileio.c (check_mutable_filename, Fcopy_file)
	(Fmake_directory_internal, Fdelete_directory_internal)
	(Fdelete_file, Frename_file, Fadd_name_to_file)
	(Fmake_symbolic_link, file_accessible_directory_p, Fset_file_modes)
	(Fset_file_times, write_region):
	* src/filelock.c (get_boot_time, rename_lock_file)
	(create_lock_file, current_lock_owner, unlock_file):
	* src/image.c (slurp_file, png_load_body, jpeg_load_body):
	* src/keyboard.c (Fopen_dribble_file):
	* src/lisp.h:
	* src/lread.c (Fload):
	* src/process.c (handle_child_signal):
	* src/sysdep.c (init_standard_fds, emacs_fopen, emacs_fdopen)
	(emacs_unlink, emacs_symlink, emacs_rmdir, emacs_mkdir)
	(emacs_renameat_noreplace, emacs_rename):
	* src/term.c (Fresume_tty, init_tty): Use and add new wrappers
	for fopen, fdopen, unlink, symlink, rmdir, mkdir,
	renameat_norepalce and rename.

2023-07-27  Eli Zaretskii  <eliz@gnu.org>

	Support Posix-standard pax extended header in tar files

	* lisp/tar-mode.el (pax-extended-attribute-record-regexp)
	(tar-attr-vector): New variables.
	(pax-gid-index, pax-gname-index, pax-linkpath-index)
	(pax-mtime-index, pax-path-index, pax-size-index, pax-uid-index)
	(pax-uname-index): New constants.
	(pax-header-gid, pax-header-gname, pax-header-linkpath)
	(pax-header-mtime, pax-header-path, pax-header-size)
	(pax-header-uid, pax-header-uname): New accessors to pax header.
	(pax-decode-string, tar-parse-pax-extended-header): New functions.
	(tar-header-block-tokenize): Recognize and handle Posix-standard
	pax extended header, and use its attributes instead of those in
	the standard tar header.  (Bug#64686)

2023-07-27  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp error on macOS

	* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options):
	Don't use an absolute ControlPath on macOS.  (Bug#64880)

2023-07-27  Eli Zaretskii  <eliz@gnu.org>

	Fix image-dired-util-tests on MS-Windows

	* test/lisp/image/image-dired-util-tests.el
	(image-dired-thumb-name/image-dired)
	(image-dired-thumb-name/per-directory): Make these tests work on
	MS-Windows, where a file name such as "/foo/bar" gets added the
	drive letter when passed through 'expand-file-name'.

2023-07-26  Mattias Engdegård  <mattiase@acm.org>

	Fix broken byte-compilation of unary comparisons

	* lisp/emacs-lisp/byte-opt.el (byte-opt--nary-comparison):
	Fix a typo causing miscompilation of code such as (OP X),
	where OP is <, >, <=, >= or =.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--test-cases): Add test case.

	Reported by Richard Copley.

2023-07-26  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/byte-opt.el (pure-fns): Add `max-char`

2023-07-26  Mattias Engdegård  <mattiase@acm.org>

	Provide backtrace for byte-ops aref and aset

	Produce synthetic backtrace entries for `aref` and `aset` byte-ops
	when the index is non-fixnum, or is out of range for vector or record
	arguments (bug#64613).

	* src/bytecode.c (exec_byte_code): Detect type and range errors
	in-line for aref and aset.
	* src/data.c (syms_of_data): Declare symbols Qaref and Qaset.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--byte-op-error-cases): Add test cases.

2023-07-26  Spencer Baugh  <sbaugh@catern.com>

	Support transforming the dirname used by uniquify

	By transforming the buffer's directory name, we can add
	additional information to use during uniquifying.  A basic
	one: uniquifying buffer names based on the project name.
	* lisp/progmodes/project.el (project-uniquify-dirname-transform): Add.
	* lisp/uniquify.el (uniquify-dirname-transform-default)
	(uniquify-dirname-transform): Add.  (Bug#62621)
	(uniquify-rationalize-file-buffer-names, uniquify-buffer-file-name):
	Use 'uniquify-dirname-transform'.
	* test/lisp/uniquify-tests.el (uniquify-home)
	(uniquify-project-transform): Add tests.

2023-07-26  Eli Zaretskii  <eliz@gnu.org>

	Fix "M-x man RET [ RET"

	* lisp/man.el (Man-completion-table): Quote special characters
	before passing them to the shell.
	(Man-name-regexp): Allow '@' and '[' in man-page names.  (Bug#64795)

2023-07-26  Neal Sidhwaney  <nealsid@users.noreply.github.com>  (tiny change)

	Add 'define-error' to font lock keywords for emacs-lisp-mode

	* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Add 'define-error'.
	(Bug#64824)

	* test/lisp/emacs-lisp/lisp-mode-tests.el
	(test-font-lock-keywords): New test.

2023-07-26  Brian Leung  <leungbk@posteo.net>

	lisp-mode.el: Add defvar-keymap to lisp-imenu-generic-expression

	* lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression):
	Add defvar-keymap.  We do not ignore (defvar-keymap FOO)
	constructs in imenu as we do with (defvar FOO) since the former
	constructs are generally not vacuous whereas the latter ones
	often are.  (Bug#64831)

2023-07-26  Laurence Warne  <laurencewarne@gmail.com>

	Fix unstable Proced refine tests

	* test/lisp/proced-tests.el (proced-refine-test)
	(proced-refine-with-update-test): Also check if the parent
	process id of each process matches the process id refined
	on before failing, since the refiner for process id returns
	the children of a process in addition to the process itself.
	(Bug#64800)

2023-07-26  Valtteri Vuorikoski  <vuori@notcom.org>

	Fix build --with-sound on NetBSD and OpenBSD

	* configure.ac: Use ossaudio by default on *BSD systems.
	(Bug#64698)

	* etc/NEWS: Announce the change.

2023-07-26  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Bring cperl-short-docs up to Perl 5.38.

	* lisp/progmodes/cperl-mode.el (imenu-max-items): declare the
	variable to silence an elint warning.
	(cperl-short-docs): Reorder function description to match Perl's
	perlfunc documentation.  Add missing shortdocs from perlfunc.
	Delete entries for operators which don't exist any more (EQ, NE
	and friends).  Shorten docstring lines to 80 chars or less.

2023-07-26  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-25  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes under 'which-key-mode'

	* src/keyboard.c (Fthis_single_command_keys): Don't allow calls to
	Fvector with negative first argument.  (Bug#64857)

2023-07-25  Eli Zaretskii  <eliz@gnu.org>

	Don't suggest to revert buffer from non-existing file

	* lisp/files-x.el (modify-file-local-variable-message): Suggest to
	revert from the buffer's file only if that file exists; otherwise
	suggest 'normal-mode'.  (Bug#64844)

2023-07-24  Eli Zaretskii  <eliz@gnu.org>

	Don't signal error when locking a file from non file-visiting buffer

	* lisp/userlock.el (userlock--check-content-unchanged): Support
	the case where a file is locked before being written to from a
	non file-visiting buffer.  (Bug#64821)

2023-07-24  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-23  Eli Zaretskii  <eliz@gnu.org>

	Fix rare aborts in CHECK_WINDOW_END

	Those aborts happen because a window's window_end_vpos value
	is inconsistent with the current matrix's number of rows, which
	happens after resizing the mini-window.
	* src/xdisp.c (mark_window_display_accurate_1): Don't validate the
	window_end_valid flag if window_end_vpos is inconsistent with the
	current_matrix's number of rows.  This happens, e.g., when
	Edebug wants to show a value in the mini-window that causes it to
	resize, as the window above the mini-window was usually already
	redisplayed, and we think its display is accurate.

2023-07-23  Laurence Warne  <laurencewarne@gmail.com>

	Fix Proced Start column alignment for different locales

	* lisp/proced.el (proced-grammar-alist): Change the justify
	value of the start attribute to 'left' instead of a fixed
	value of 6.  (Bug#64752)
	(proced-format-start): Adjust the doc string.

2023-07-23  Po Lu  <luangruo@yahoo.com>

	Facilitate locating the app library directory

	* doc/emacs/android.texi (Android File System): Document where
	the app library directory can probably be found.
	* src/android.c (android_create_lib_link): New function.  Try to
	symlink `lib' in the directory holding the files directory to
	the app library directory.
	(setEmacsParams): Call that function if Emacs is being
	initialized from an application context.

2023-07-23  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/eval.c (get_backtrace): Don't skip the top frame

	`profiler.el` was reporting incomplete backtraces.
	I had a suspicion there was something off, but it became obvious
	when I saw that `set-buffer-multibyte` did not appear in the
	`profiler-report` output when opening a large compressed tarball,
	even though I knew it to be a large contributor (which `elp-results`
	confirmed).

	I have no idea why this `backtrace_next` was there, sadly, but now
	`profiler-report` gives me results that make a lot more sense.

2023-07-22  Mattias Engdegård  <mattiase@acm.org>

	Fix regexp character class syntax property ghost matching bug

	The syntax-table-dependent regexp character classes [:space:],
	[:word:] and [:punct:] always use the buffer-local syntax table for
	performance reasons.  Fix a bug that could cause ghost (mis)matches
	from use of lingering state by constructs that do use syntax
	properties, such as `\sX`.

	* src/regex-emacs.c (BUFFER_SYNTAX): New macro.
	(ISPUNCT, ISSPACE, ISWORD): Use BUFFER_SYNTAX instead of SYNTAX.
	(regex_compile): Delete syntax table setup code that is no longer
	needed.
	* test/src/regex-emacs-tests.el (regex-emacs-syntax-properties):
	New regression test.

2023-07-22  Moritz Maxeiner  <mm@ucw.sh>

	* etc/NEWS: Announce the new option 'mouse-prefer-closest-glyph'.

2023-07-22  Moritz Maxeiner  <mm@ucw.sh>

	Implement new option 'mouse-prefer-closest-glyph'

	* src/dispnew.c (mouse_prefer_closest_glyph): New global
	variable.
	(buffer_posn_from_coords):
	* src/xdisp.c (remember_mouse_glyph): Respect
	'mouse_prefer_closest_glyph'.
	(mouse_fine_grained_tracking): Update documentation to
	include 'mouse_prefer_closest_glyph' effects.

	* doc/lispref/commands.texi (Accessing Mouse): Update
	documentation to say what the new option does when enabled.
	* lisp/cus-start.el (standard): New user option
	'mouse-prefer-closest-glyph'.

2023-07-22  F. Jason Park  <jp@neverwas.me>

	Improve ERC's internal invisibility API

	* etc/ERC-NEWS: Mention that line endings have moved from the end to
	the beginning of hidden messages.
	* lisp/erc/erc-fill.el (erc-fill--wrap-ensure-dependencies): Warn when
	users have `erc-legacy-invisible-bounds-p' enabled, and force it to
	its default value of nil in the current buffer.
	(erc-fill-wrap-mode, erc-fill-wrap-enable): Move business involving
	compat variable for enabling legacy hidden-message behavior to helper.
	* lisp/erc/erc-match.el (erc-match--hide-fools-offset-bounds): Move
	internal variable from to main library file and rename to
	`erc-legacy-invisible-bounds-p'.  Also make obsolete and flip
	semantics so a non-nil value enables the traditional behavior.
	(erc-match--hide-message): Move to main library file and rename to
	`erc--hide-message'.  Add a property-value parameter instead of
	hard-coding to `erc-match'.  Also, condition behavior on renamed
	compatibility flag `erc-legacy-invisible-bounds-p'.
	(erc-hide-fools): Call `erc--hide-message' with own value for
	`invisible' property specifically for fools.  That is, use
	`match-fools' rather than `erc-match' or `erc-match-fools' to save
	room when visually inspecting.  This retains the module name as a
	prefix to hopefully minimize collisions with invisibility spec members
	owned by non-ERC minor modes.  The `timestamp' spec member owned by
	erc-stamp likewise lacks a namespace prefix, but its feature/group
	affiliation is self-evident.
	(erc-match--modify-invisibility-spec): Use toggle command
	non-interactively for adding and removing invisibility spec member.
	(erc-match-toggle-hidden-fools): Add explicit override argument and
	defer to general helper for actually modifying spec.
	(erc-match--toggle-hidden): New helper for toggling invisibility
	spec.
	* lisp/erc/erc.el (erc--merge-prop): If new value is a list, prepend
	onto existing.  Add note about possible space optimization.
	(erc-legacy-invisible-bounds-p): New obsolete compat variable to
	enable traditional pre-5.6 invisibility interval on hidden messages.
	Replaces `erc-match--hide-fools-offset-bounds-p' but has an inverted
	meaning.  The new default value of nil means invisibility covers a
	shifted interval consisting of the message body plus the line ending
	immediately preceding it.
	(erc--hide-message): New function, formerly `erc-match--hide-message'
	from erc-match.el introduced in ERC 5.6.
	* test/lisp/erc/erc-scenarios-match.el:
	(erc-scenarios-match--invisible-stamp): Fix comment and use API
	function in interactive convenience setup.
	(erc-scenarios-match--find-bol): New test helper.
	(erc-scenarios-match--find-eol): Fix bug affecting interactive use.
	(erc-scenarios-match--stamp-left-fools-invisible,
	erc-scenarios-match--stamp-right-fools-invisible,
	erc-scenarios-match--stamp-right-invisible-fill-wrap,
	erc-scenarios-match--stamp-both-invisible-fill-static): Update
	`invisible' property from `erc-match' to `match-fools'.
	(erc-scenarios-match--stamp-right-fools-invisible,
	erc-scenarios-match--stamp-both-invisible-fill-static): Move test
	body to function of same name for use in multiple cases.
	(erc-scenarios-match--stamp-right-fools-invisible--nooffset,
	erc-scenarios-match--stamp-both-invisible-fill-static--nooffset): New
	test variants asserting proper hiding with old pre-5.6 invisibility
	interval.
	* test/lisp/erc/erc-tests.el (erc-tests--equal-including-properties):
	Relocate macro higher in same file.
	(erc--merge-prop): New test.  (Bug#64301)

2023-07-22  F. Jason Park  <jp@neverwas.me>

	Make erc-fill-wrap work with left-sided stamps

	* etc/ERC-NEWS: Remove all mention of option `erc-timestamp-align-to'
	supporting a value of `margin', which has been abandoned.  Do mention
	leading white space before stamps now having stamp-related properties.
	* lisp/erc/erc-backend.el (erc--reveal-prompt, erc--conceal-prompt):
	New generic functions with default implementations factored out from
	`erc--unhide-prompt' and `erc--hide-prompt'.
	(erc--prompt-hidden-p): New internal predicate function.
	(erc--unhide-prompt): Defer to `erc--reveal-prompt', and set
	`erc-prompt' text property to t.
	(erc--hide-prompt): Defer to `erc--conceal-prompt', and set
	`erc-prompt' text property to `hidden'.
	* lisp/erc/erc-compat.el (erc-compat--29-browse-url-irc): Don't
	use `function-equal'.
	* lisp/erc/erc-fill.el (erc-fill-wrap-margin-width,
	erc-fill-wrap-margin-side): New options to control side and initial
	width of `fill-wrap' margin.
	(erc-fill--wrap-beginning-of-line): Fix bug involving non-string
	valued `display' props.
	(erc-fill-wrap-toggle-truncate-lines): New command to re-enable
	`visual-line-mode' when toggling off `truncate-lines'.
	(erc-fill-wrap-mode-map): Remap `toggle-truncate-lines' to
	`erc-fill-wrap-toggle-truncate-lines'.
	(erc-fill-wrap-mode, erc-fill-wrap-enable, erc-fill-wrap-disable):
	Update doc string, persist a few local vars, and conditionally set
	`erc-stamp--margin-left-p'.  When deactivating, disable
	`visual-line-mode' first.
	(erc-fill--wrap-continued-message-p): Use `erc-speaker' instead of
	heuristics when comparing nicks between consecutive messages.
	(erc-fill-wrap-nudge): Update doc string and account for left-sided
	stamps.
	(erc-timestamp-offset): Add comment regarding conditional guard based
	on function-valued option.
	* lisp/erc/erc-stamp.el (erc-timestamp-use-align-to): Remove value
	variant `margin', which was originally intended to be new in ERC 5.6.
	This functionality was all but useless without the internal minor mode
	`erc-stamp--display-margin-mode' active.
	(erc-stamp-right-margin-width): Remove unused option new in 5.6.
	(erc-stamp--display-margin-force): Remove unused function.
	(erc-stamp--margin-width, erc-stamp--margin-left-p): New internal
	variables.
	(erc-stamp--init-margins-on-connect): New function for initializing
	mode-managed margin after connecting.
	(erc-stamp--adjust-right-margin, erc-stamp--adjust-margin): Rename
	function to latter and accommodate left-hand stamps.
	(erc-stamp--inherited-props): Move definition higher up in same file.
	(erc-stamp--display-margin-mode): Update function name, and adjust
	setup and teardown to accommodate left-handed stamps.  Don't add
	advice around `erc-insert-timestamp-function'.
	(erc-stamp--last-prompt, erc-stamp--display-prompt-in-left-margin):
	New function and helper var to convert a normal inserted prompt so
	that it appears in the left margin.
	(erc-stamp--refresh-left-margin-prompt): Helper for other modules to
	quickly refresh prompt outside of insert hooks.
	(erc--reveal-prompt, erc--conceal-prompt): New implementations for
	when `erc-stamp--display-margin-mode' is active.
	(erc-insert-timestamp-left): Convert to generic function and provide
	implementation for `erc-stamp--display-margin-mode'.
	(erc-stamp--omit-properties-on-folded-lines): New variable, an escape
	hatch for propertizing white space before right-side stamps folded
	over onto another line.
	(erc-insert-timestamp-right): Don't expect `erc-timestamp-align-to' to
	ever be the symbol `margin'.  Move handling for that case to one
	contingent on the internal minor mode `erc-stamp--display-margin-mode'
	being active.  Add text properties preceding stamps that occupy a line
	by their lonesome.  See related news entry for rationale.  This is
	arguably a breaking change.
	* lisp/erc/erc.el (erc--refresh-prompt-hook): New hook variable for
	modules to adjust prompt properties whenever it's refreshed.
	(erc--refresh-prompt): Fix bug in which user-defined prompt functions
	failed to hide when quitting in server buffers.  Run new hook
	`erc--refresh-prompt-hook'.
	(erc-display-prompt): Add comment noting that the text property
	`erc-prompt' now actually matters: it's t while a session is running
	and `hidden' when disconnected.
	* test/lisp/erc/erc-fill-tests.el (erc-fill--left-hand-stamps): New
	test.
	* test/lisp/erc/erc-stamp-tests.el
	(erc-stamp-tests--use-align-to--nil,
	erc-stamp-tests--use-align-to--t): New functions forged from old test
	bodies to allow optionally asserting pre-5.6 behavior regarding
	leading white space on right-hand stamps that exist on their own line.
	(erc-timestamp-use-align-to--nil, erc-timestamp-use-align-to--t):
	Parameterize with compatibility flag.
	(erc-timestamp-use-align-to--margin,
	erc-stamp--display-margin-mode--right): Rename test to latter.
	* test/lisp/erc/erc-tests.el (erc-hide-prompt): Add some assertions
	for new possible value of `erc-prompt' text property.
	* test/lisp/erc/resources/fill/snapshots/stamps-left-01.eld: New test
	data file.  (Bug#60936)

2023-07-22  Mauro Aranda  <maurooaranda@gmail.com>

	Don't always toggle a choice when prompting

	* lisp/wid-edit.el (widget-choice-prompt-value): Respect the value
	of widget-choice-toggle.  (Bug#60712)

2023-07-22  Mauro Aranda  <maurooaranda@gmail.com>

	Avoid prompting when creating a restricted-sexp widget

	* lisp/wid-edit.el (restricted-sexp): Turn value into a
	string before reading.
	(widget-field-value-create): Guard against value being nil,
	so the field can be created even if the widget has a bad
	default value.  (Bug#59937)

2023-07-22  Po Lu  <luangruo@yahoo.com>

	Try harder to keep the initial word selected

	* lisp/touch-screen.el (touch-screen-drag): If
	touch-screen-word-select, also keep the initial word within the
	region while scrolling.

2023-07-22  João Távora  <joaotavora@gmail.com>

	Eglot: simplify and hopefully fix last change (bug#64784)

	* lisp/progmodes/eglot.el (eglot--post-self-insert-hook): Use
	last-command-event.

2023-07-22  Michael Albinus  <michael.albinus@gmx.de>

	Add inhibit-remote-files and without-remote-files

	* doc/emacs/files.texi (Remote Files): Do not document tramp-mode
	any longer.  Describe inhibit-remote-files instead.

	* doc/lispref/files.texi (Magic File Names): Add without-remote-files.

	* doc/misc/tramp.texi (Frequently Asked Questions): Do not
	document tramp-mode any longer.  Describe inhibit-remote-files and
	without-remote-files instead.

	* etc/NEWS: Add inhibit-remote-files and without-remote-files.
	Fix typos.

	* lisp/net/tramp.el (inhibit-remote-files): New defun.
	(without-remote-files): New defmacro.

	* test/lisp/net/tramp-archive-tests.el
	(tramp-archive-test49-without-remote-files):
	* test/lisp/net/tramp-tests.el (tramp-test49-without-remote-files):
	New tests.
	(tramp-test50-unload): Rename.

2023-07-22  Philip Kaludercic  <philipk@posteo.net>

	Ensure 'existing-filename' has 'bounds-of-thing-at-point'

	* lisp/thingatpt.el (existing-filename): Define
	'bounds-of-thing-at-point' for 'existing-filename'.  (Bug#64664)

2023-07-22  Po Lu  <luangruo@yahoo.com>

	Fix window box computation for menu bar windows

	* src/window.h (WINDOW_MENU_BAR_P): Check for external menu bars
	using HAVE_WINDOW_SYSTEM && HAVE_EXT_MENU_BAR instead of hard
	coding X without Xt or GTK.

2023-07-22  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/commands.texi (Key Sequence Input): Describe which
	events receive imaginary prefix keys.
	* lisp/touch-screen.el (touch-screen-translate-touch): Consider
	`vertical-line' a virtual function key.
	(function-key-map): Translate events on vertical window borders.

2023-07-22  Po Lu  <luangruo@yahoo.com>

	Fix default value of scroll bar frame parameters on Android

	* src/androidfns.c (Fx_create_frame): Default
	Qvertical_scroll_bars to Qnil, but set scroll-bar-width and
	scroll-bar-height.

2023-07-22  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	macroexp.el: Fix missing warning for intermediate expansions

	When a macro expanded to a call to an obsolete macro, we failed
	to emit a warning for that use of the obsolete macro.

	* lisp/emacs-lisp/macroexp.el (macroexp-macroexpand):
	Use `macroexpand-1` to check obsolecence of intermediate expansions.

	* test/lisp/emacs-lisp/macroexp-tests.el
	(macroexp--test-obsolete-macro): New test.

2023-07-21  Po Lu  <luangruo@yahoo.com>

	Improve touch screen and text conversion behavior of many commands

	* doc/lispref/commands.texi (Key Sequence Input): Document new
	argument to `read-key-sequence' etc.
	* lisp/help-macro.el (make-help-screen):
	* lisp/subr.el (read-key, read-char-choice-with-read-key):
	Disable text conversion and display the OSK before reading a key
	sequence.
	* lisp/touch-screen.el (touch-screen-window-selection-changed):
	Only cancel the minibuffer OSK timer.
	(touch-screen-handle-point-up): Update comment accordingly.
	* src/keyboard.c (command_loop_1, read_menu_command)
	(read_key_sequence, read_key_sequence_vs, Fread_key_sequence)
	(Fread_key_sequence_vector): New arg DISABLE_TEXT_CONVERSION.
	All callers changed.

2023-07-21  Mattias Engdegård  <mattiase@acm.org>

	Use BASE_EQ instead of EQ in search.c

	* src/search.c (clear_regexp_cache, compile_pattern, Fmatch_data):
	Use BASE_EQ where appropriate.

2023-07-21  Robert Pluim  <rpluim@gmail.com>

	Fix failing native-compile test

	* test/src/comp-tests.el (comp-tests-result-lambda): Use
	'comp-deftest', not 'ert-deftest'.  The latter doesn't check for
	native-compile support.

2023-07-21  Eli Zaretskii  <eliz@gnu.org>

	Fix Proced display header alignment under 'text-scale-adjust'

	* lisp/proced.el (proced-mode): Force the header-line to scale
	according to 'text-scale-adjust'.
	(proced-header-line): Use width of the header-line's face's
	characters as align-to units, not the width of the frame's
	default face's font.  (Bug#64752)

	* src/xdisp.c (calc_pixel_width_or_height): Use font's
	average_width or space_width, not max_width, as the correct
	measure of the font's width.  This is consistent with the rest of
	the display engine.

2023-07-21  Po Lu  <luangruo@yahoo.com>

	Correctly translate touchscreen-up events outside a frame

	* lisp/touch-screen.el (touch-screen-translate-touch): Check if
	a prefix is specified separately from prefix being non-nil.
	Accept `nil' as an imaginary prefix key.
	(function-key-map): Register translation functions on the tab
	bar, tab lines and internal border.

2023-07-21  Po Lu  <luangruo@yahoo.com>

	Improve touch screen scrolling support

	* lisp/touch-screen.el (touch-screen-preview-select): Avoid
	unnecessary redisplays.
	(touch-screen-drag): Scroll at window margins using window
	scrolling functions instead of relying on redisplay to recenter
	the window around point.

2023-07-21  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/input.texi (Touchscreens): Document
	`touch-screen-preview-select'.
	* doc/lispref/commands.texi (Touchscreen Events): Fix typo in
	the descriptions of two touch screen events.
	* lisp/dired.el (dired-insert-set-properties): Adjust for
	changes to file end computation.
	* lisp/minibuffer.el (clear-minibuffer-message): Don't clear
	minibuffer message if dragging.
	* lisp/touch-screen.el (touch-screen-current-tool): Fix doc
	string.
	(touch-screen-preview-select): New function.
	(touch-screen-drag): Call it if point changes.

2023-07-21  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-20  Stephen Berman  <stephen.berman@gmx.net>

	Fix last change to wid-edit.el

	* lisp/wid-edit.el (widget-choose): Test for stringp instead of
	char-or-string-p, since substitute-command-keys should only apply
	to choice values that are strings. (Bug#64046, Message #37)

2023-07-20  Alan Mackenzie  <acm@muc.de>

	CC Mode (some languages): handle string lines ending in \\

	In C, C++, Objective C, and Pike modes, regard \\ in a string
	at EOL as a backslash followed by an escaped newline.  In the
	other languages, this remains regarded as an escaped backslash
	followed by an invalid string terminator.

	* lisp/progmodes/cc-defs.el (c-is-escaped, c-will-be-escaped):
	Amend to observe the changed notion of escaped newlines.

	* lisp/progmodes/cc-langs.el (c-string-escaped-newlines):
	Unused, removed.
	(c-escaped-newline-takes-precedence): New lang const and var.
	(c-string-innards-re-alist): Amend, using the above new lang
	var.

2023-07-20  Eli Zaretskii  <eliz@gnu.org>

	Fix defface's with no customization data

	* lisp/net/shr.el (shr-h4, shr-h5, shr-h6):
	* lisp/cedet/semantic/decorate/include.el
	(semantic-decoration-on-includes):
	* lisp/progmodes/make-mode.el (makefile-shell):
	* lisp/time.el (display-time-date-and-time):
	* lisp/nxml/nxml-mode.el (nxml-text, nxml-delimiter)
	(nxml-element-colon): Add face definitions (bug#64655).

2023-07-20  Morgan Smith  <Morgan.J.Smith@outlook.com>

	docview: imenu: check return value of 'mutool'

	While 'mutool' supports many filetypes, 'mutool show' only
	supports PDF files.  This would lead to cryptic imenu errors
	when opening other
	file types (like EPUB) since we would parse the error output.
	During my testing this caused 'imenu--index-alist' to have a
	value of '(nil).

	* lisp/doc-view.el (doc-view--pdf-outline): Error when 'mutool'
	returns an error.  Use 'call-process' to get the return value and
	remove the call to 'shell-quote-argument' as 'call-process'
	doesn't want any escapes.
	(doc-view-mode): Handle possible error from 'doc-view-imenu-setup'.
	(doc-view-imenu-enabled): Remove superfluous (and ... t).
	(doc-view-imenu-setup): Remove check for mutool already ensured by
	'doc-view-imenu-enabled' being non-nil.
	(Bug#64516)

2023-07-20  Matthias Meulien  <orontee@gmail.com>

	Custom var python-interpreter-args (bug#64397)

	* lisp/progmodes/python.el (python-interpreter): Mention
	new variable in documentation.
	(python-interpreter-args): New custom variable.
	(python-shell-interpreter, python-shell-interpreter-args)
	(python-shell-interpreter-interactive-arg): Improve
	documentation.
	(python--list-imports, python--do-isort)
	(python-fix-imports): Make process use customizable
	arguments.

2023-07-20  Mauro Aranda  <maurooaranda@gmail.com>

	Preserve comments when redrawing a widget (Bug#64649)

	* lisp/cus-edit.el (custom-comment-preserve): New function.
	(custom-redraw): Use it.
	(custom-comment-create): Make sure :comment-shown is set to
	t if the comment widget gets created.
	(custom-face-value-create, custom-variable-value-create):
	Recreate the custom-comment widget with the preserved value,
	if any.

2023-07-20  Mauro Aranda  <maurooaranda@gmail.com>

	Pass original spec just after creating the face-widget

	* lisp/cus-edit.el (custom-face-get-current-spec-unfiltered):
	New function, extracted from custom-face-get-current-spec.
	(custom-face-get-current-spec): Use it.
	(custom-face-state-set): Take an optional argument, to decide
	if we should check against a filtered or unfiltered spec.
	(custom-face-value-create): Use the new optional argument.
	(Bug#64347)

2023-07-20  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* exec/trace.c (handle_readlinkat): Adjust commentary to match
	behavior.
	* src/android.c (android_get_keysym_name): NULL terminate
	*name_return.

2023-07-20  Po Lu  <luangruo@yahoo.com>

	Update some menu definitions for Android

	* lisp/international/mule-cmds.el (set-coding-system-map): Don't
	display `set-terminal-coding-system' on Android.

2023-07-20  Po Lu  <luangruo@yahoo.com>

	* lisp/cus-edit.el (custom-display): Add `android' display type.

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-20  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	4bd8e8c6d2b ; * src/xdisp.c: Fix wording in commentary.
	3af27a4b815 Improve commentary in nsfns.m
	5de5e4b4d0a Fix typos and omissions in cus-edit.el
	9d93c6ba14a ; * src/xdisp.c: Fix typos in the commentary.
	86f2d6d62fc ; * src/xdisp.c: Improve commentary.  (Bug#64596)
	ac075176bf0 ; * admin/notes/bugtracker: Fix punctuation.
	81518534471 ; * admin/notes/bugtracker: Use 'e.g.' throughout the doc...
	f063f79a493 Convert NUL-containing NSString objects to Lisp strings c...
	d172cd59854 ; * doc/lispref/keymaps.texi (Modifying Menus): Add cross...
	927e8b470fc ; * doc/lispref/keymaps.texi (Extended Menu Items): Add @...
	77f489421ec ; * src/xdisp.c: Minor improvements of the commentary.
	ce3f9fba1a3 ; Improve accuracy of out-out-order message insertion
	17073af84d7 ; Improve robustness of package-report-bug

2023-07-20  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (struct android_event_queue): Don't make
	unnecessarily volatile.

2023-07-20  João Távora  <joaotavora@gmail.com>

	Eglot: fix textDocument/onTypeFormatting for 'newline' command

	In the newline command, last-input-event is 13 (carriage return), but
	most, if not all, language servers that support
	documentOnTypeFormattingProvider expect 10 (linefeed) to be the
	trigger, so convert 13 to 10 for the purposes of the
	textDocument/onTypeFormatting request.

	Also make this common edit silent in the mode-line/messages.

	* lisp/progmodes/eglot.el (eglot--post-self-insert-hook): Convert
	linefeed to carriage return.
	(eglot-format): Pass SILENT to eglot--apply-text-edits.
	(eglot--apply-text-edits): Take new optional SILENT arg.

	* etc/EGLOT-NEWS: Mention change

2023-07-20  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/touch-screen.el (touch-screen-handle-touch): Don't
	restart dragging if point is at ZV and the tap falls on a
	different row.

2023-07-20  Po Lu  <luangruo@yahoo.com>

	Use context menu header titles on Android

	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu):
	New field `title'.
	(addSubmenu): New arg TITLE.  Set that field.
	(expandTo): Set MENU's header title if it's a context menu.
	* src/androidmenu.c (android_init_emacs_context_menu): Adjust
	signature of `createContextMenu'.
	(android_menu_show): Use TITLE instead of pane titles if there's
	only one pane.

2023-07-20  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-20  Po Lu  <luangruo@yahoo.com>

	Introduce a `dired-click-select' mode

	* doc/emacs/dired.texi (Marks vs Flags): Document command bound
	to `touchscreen-hold'.
	* doc/lispref/commands.texi (Touchscreen Events): Describe
	`touch-screen-inhibit-drag'.
	* etc/NEWS: Improve description of changes to touch screen
	support.
	* lisp/dired-aux.el (dired-do-chxxx, dired-do-chmod)
	(dired-do-print, dired-do-shell-command, dired-do-compress-to)
	(dired-do-create-files, dired-do-rename, dired-do-isearch)
	(dired-do-isearch-regexp, dired-do-search)
	(dired-do-query-replace-regexp, dired-do-find-regexp)
	(dired-vc-next-action): Disable ``click to select'' after
	running this command.
	* lisp/dired.el (dired-insert-set-properties): Attach
	click-to-select keymap to file names if necessary.
	(dired-mode-map): Bind `touchscreen-hold' to click to select
	mode.
	(dired-post-do-command): New function.
	(dired-do-delete): Call it.
	(dired-mark-for-click, dired-enable-click-to-select-mode): New
	functions.
	(dired-click-to-select-mode): New minor mode.
	* lisp/touch-screen.el (touch-screen-current-tool): Fix doc
	string.
	(touch-screen-inhibit-drag): New function.

2023-07-19  F. Jason Park  <jp@neverwas.me>

	Warn when toggling erc-nicks-mode in target buffers

	* lisp/erc/erc-nicks.el (erc-nicks-mode, erc-nicks-enable): This local
	module isn't autoloaded like most global modules, in part to dissuade
	users from attempting to enable it by running M-x erc-nicks-mode RET.
	However, rather than signal an error upon detecting such an attempt,
	ERC should explain that the only supported means of activation is via
	`erc-modules'.  This change does that and then enables it anyway,
	despite the degraded experience.

2023-07-19  Alan Mackenzie  <acm@muc.de>

	Fix native compilation in dynamically bound files.

	This fixes bug#64642.

	* lisp/emacs-lisp/comp.el (comp-spill-lap-function/symbol): Add
	code for dynamically bound functions.

	* test/src/comp-tests.el (comp-tests-result-lambda): New test.

	* test/src/comp-resources/comp-test-funcs-dyn2.el: New test
	file.

	# Please enter the commit message for your changes. Lines starting
	# with '#' will be ignored, and an empty message aborts the commit.
	#
	# On branch master
	# Your branch is up to date with 'origin/master'.
	#
	# Changes to be committed:
	#	modified:   lisp/emacs-lisp/comp.el
	#	new file:   test/src/comp-resources/comp-test-funcs-dyn2.el
	#	modified:   test/src/comp-tests.el
	#
	# Changes not staged for commit:
	#	modified:   .gitignore
	#
	# Untracked files:
	#	.gitignore.acm
	#	.gitignore.backup
	#	.timestamps.txt
	#	2021-01-03.err
	#	2021-01-06.err
	#	2021-12-16.make
	#	2021-12-30.err
	#	2021-12-31.err
	#	2022-01-01.err
	#	2022-01-02.check.err
	#	2022-01-02.err
	#	2022-01-04.err
	#	2022-01-05.err
	#	2022-01-06.err
	#	2022-01-07.err
	#	2022-01-07.outerr
	#	2022-01-08.err
	#	2022-01-09.err
	#	2022-01-09b.err
	#	2022-01-10.err
	#	2022-01-11
	#	2022-01-11.err
	#	2022-02-22.err
	#	2022-02-22.outerr
	#	checkout.20220228.out
	#	checkout.20220301.out
	#	checkout.20220302.out
	#	doc/lispref/syntax.20160318.techsi
	#	doc/lispref/syntax.20160318b.techsi
	#	lib/.deps/
	#	lisp/2022-01-09.err
	#	lisp/emacs-lisp/comp.el.rej
	#	src/2021-12-20.err
	#	src/globals.20211124.aitch
	#	src/lisp.20211127.aitch
	#	test/lisp/calendar/icalendar-tests.elcr5m9Wq
	#

2023-07-19  Po Lu  <luangruo@yahoo.com>

	Port file-name-case-insensitive-p to Haiku

	* src/fileio.c (file_name_case_insensitive_err): Don't return
	errno upon failure, just 1, since errno is not used in the sole
	caller.

2023-07-19  Po Lu  <luangruo@yahoo.com>

	Improve behavior of `restart-drag'

	* lisp/touch-screen.el (touch-screen-handle-point-up): If what
	is `restart-drag' (meaning that a drag has been restarted but
	the touchpoint has not moved), translate the release into a
	regular mouse click to deactivate the region.

2023-07-19  Po Lu  <luangruo@yahoo.com>

	Improve commentary in xterm.c

	* src/xterm.c (xi_populate_device_from_info, xi_handle_new_classes)
	(syms_of_xterm): Improve commentary on touch events.

2023-07-19  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* build-aux/makecounter.sh (curcount): Rename `counter' to
	`emacs_shortlisp_counter'.
	* doc/emacs/input.texi (Touchscreens): Document
	`touch-screen-extend-selection'.
	* doc/lispref/commands.texi (Touchscreen Events): Document
	`touchscreen-restart-drag'.
	* lisp/touch-screen.el (touch-screen-extend-selection): New user
	option.
	(touch-screen-restart-drag): New function.
	(touch-screen-handle-point-update): Handle `restart-drag'
	gestures.
	(touch-screen-handle-touch): Check if the prerequisites for
	extending a previous drag gesture are met, and generate such
	events if so.
	(touch-screen-translate-touch): Update doc string.
	* src/Makefile.in (otherobj): Remove BUILD_COUNTER_OBJ.
	($(lispsource)/international/charprop.el):
	(%.elc): Don't depend on bootstrap-emacs if cross configuring
	for Android.
	(libemacs.so): Directly depend on and link with
	BUILD_COUNTER_OBJ.

2023-07-19  Po Lu  <luangruo@yahoo.com>

	Make sure Android builds are redumped upon changes to shortlisp

	* build-aux/makecounter.sh: New script.
	* src/Makefile.in (abs_top_builddir): New variable.
	(BUILD_COUNTER_OBJ): Define to build-counter.o
	if compiling for Android.
	(build-counter.c): New target.  Generate this file using
	makecounter.sh upon changes to lisp.mk or shortlisp.
	(lisp.mk): Make and load relative to abs_top_builddir.
	(emacs$(EXEEXT)): Adjust accordingly.
	(mostlyclean): Remove build-counter.c.

2023-07-19  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-19  Po Lu  <luangruo@yahoo.com>

	Improve reliability of minor mode menu dispatch

	* lisp/mouse.el (minor-mode-menu-from-indicator): Instead of using the
	word at point, search for a matching enabled minor mode from the
	beginning of the string object when mode-line-compact is enabled.

2023-07-19  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-18  Eli Zaretskii  <eliz@gnu.org>

	Fix line number display under 'mode-line-format-right-align'

	* src/xdisp.c (Fbuffer_text_pixel_size): Restore window attributes
	important for redisplay of the target WINDOW.  (Bug#64713)

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Fix typos in touch-screen.el

	* lisp/touch-screen.el (touch-screen-handle-point-update)
	(touch-screen-handle-point-up): Fix typos.

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Fix event data leak

	* src/xterm.c (handle_one_xevent): Jump to XI_OTHER after
	handling touch ownership event.

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Fix display of minor mode menus when mode-line-compact is enabled

	* lisp/mouse.el (minor-mode-menu-from-indicator): New arg
	WINDOW.  If INDICATOR is a string object and mode-line-compat is
	enabled within WINDOW, use the symbol within the object at its
	position instead.
	(mouse-minor-mode-menu): Pass posn-object and posn-window to
	minor-mode-menu-from-indicator.

2023-07-18  Po Lu  <luangruo@yahoo.com>

	* lisp/touch-screen.el (touch-screen-handle-point-update): Fix typo.

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Avoid splurious menu-bar nil events

	* src/keyboard.c (make_lispy_event): Return nil if no menu item
	is found.

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/touch-screen.el (touch-screen-hold)
	(touch-screen-handle-point-up): Don't select inactive minibuffer
	windows.
	(touch-screen-handle-point-update): Improve detection of left
	and right edges.

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/touch-screen.el (touch-screen-handle-touch): Fix
	treatment of stray update events.

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Don't enable scroll-bar-mode by default on Android

	* src/frame.c (syms_of_frame): Default to nil if HAVE_ANDROID.

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/commands.texi (Touchscreen Events): Describe
	treatment of canceled touch sequences during touch event
	translation.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Update JNI
	prototypes.
	* java/org/gnu/emacs/EmacsWindow.java (motionEvent): Set
	cancellation flag in events sent where appropriate.
	* lisp/touch-screen.el (touch-screen-handle-point-update):
	Improve treatment of horizontal scrolling near window edges.
	(touch-screen-handle-touch): Don't handle point up if the touch
	sequence has been canceled.
	* src/android.c (sendTouchDown, sendTouchUp, sendTouchMove): New
	argument `flags'.
	* src/androidgui.h (enum android_touch_event_flags): New enum.
	(struct android_touch_event): New field `flags'.
	* src/androidterm.c (handle_one_android_event): Report
	cancellation in TOUCHSCREEN_END_EVENTs.
	* src/keyboard.c (make_lispy_event): Fix botched merge.

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Expose the ``cancellation'' of touch events to Lisp

	* doc/lispref/commands.texi (Touchscreen Events):
	* etc/NEWS: Describe new event parameter `canceled'.
	* src/keyboard.c (make_lispy_event) <TOUCHSCREEN_END_EVENT>:
	If event->modifiers, set canceled to t.

	* src/termhooks.h (enum event_kind): Describe meaning of
	modifiers in TOUCHSCREEN_END_EVENTs.
	* src/xfns.c (setup_xi_event_mask): Select for
	XI_TouchOwnership.
	* src/xterm.c (xi_link_touch_point): Round X and Y and clear
	ownership.
	(xi_unlink_touch_point): Return 1 if the touch point is not
	owned by Emacs, 2 otherwise.
	(handle_one_xevent): Handle XI_TouchOwnership events and report
	ownership correctly.
	* src/xterm.h (enum xi_touch_ownership): New enum.  Write
	commentary on XI touch sequence ownership.
	(struct xi_touch_point_t): Use integer X and Y.  New field
	`ownership'.  Adjust for alignment.

2023-07-18  Dmitry Gutov  <dmitry@gutov.dev>

	Delete vc-deduce-fileset-1, taking advantage of set-buffer

	* lisp/vc/vc.el (vc-deduce-fileset): Set buffer to the base
	buffer, if any (bug#63949).  That's to replace the more complex
	previous strategy.  vc-deduce-fileset is allowed to change the
	current buffer, so why not do it for that case.
	(vc-deduce-fileset-1): Delete, moving the meat of the logic back
	to vc-deduce-fileset.

2023-07-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-17  Juri Linkov  <juri@linkov.net>

	* lisp/bindings.el (mode--line-format-right-align): Add 'mode-line' face.

	Like in `tab-bar-format-align-right', use `add-face-text-property' to
	add 'mode-line' face on the `rest-str' string for `string-pixel-width'
	to calculate the correct pixel width (bug#62606).

2023-07-17  Mattias Engdegård  <mattiase@acm.org>

	Don't distort character ranges in rx translation

	The Emacs regexp engine interprets character ranges from ASCII to raw
	bytes, such as [a-\xfe], as not including non-ASCII Unicode at all;
	ranges from non-ASCII Unicode to raw bytes, such as [ü-\x91], are
	ignored entirely.

	To make rx produce a translation that works as intended, split ranges
	that that go from ordinary characters to raw bytes. Such ranges may
	appear from set manipulation and regexp optimization.

	* lisp/emacs-lisp/rx.el (rx--generate-alt): Split intervals that
	straddle the char-raw boundary when rendering a string regexp from an
	interval set.
	* test/lisp/emacs-lisp/rx-tests.el (rx-char-any-raw-byte):
	Add test cases.

2023-07-17  Brian Leung  <leungbk@posteo.net>

	Eglot: check correct capability name in eglot-imenu (bug#64682)

	* lisp/progmodes/eglot.el (eglot-imenu): Declare the correct name of
	the server capability providing textDocument/documentSymbol.

	Without this change, eglot-imenu always aborts even when used with
	servers supporting textDocument/documentSymbol.

2023-07-17  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-17  Po Lu  <luangruo@yahoo.com>

	Don't deliver touch or pinch events from master or slave devices

	* src/xfns.c (setup_xi_event_mask): Select for gesture events on
	only master devices if safe.
	* src/xterm.c (handle_one_xevent): Deliver touchscreen events
	only from direct slave devices, and gesture events only from
	master pointers.

2023-07-17  Robert Pluim  <rpluim@gmail.com>

	Fix eshell.texi markup

	* doc/misc/eshell.texi (Aliases): Add missing @end table.  (Bug#64674)

2023-07-17  Marc van der Wal  <marc+emacs@van-der-wal.fr>  (tiny change)

	Check correct bit for DNS truncation

	* lisp/net/dns.el (dns-read): The TC bit is the second bit, not the
	third bit.  (Bug#64678)

2023-07-17  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/commands.texi (Touchscreen Events): Document
	meaning of `mouse-1-menu-command'.
	* lisp/mouse.el (minor-mode-menu-from-indicator): New arg EVENT.
	Give it to popup-menu.
	(mouse-minor-mode-menu): Use posn specified within EVENT.
	* lisp/touch-screen.el (touch-screen-handle-touch): Fix
	interactive translation.  Treat commands labeled
	`mouse-1-menu-command' like ordinary keymaps.

2023-07-17  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/commands.texi (Touchscreen Events): Document
	changes to simple translation.
	* lisp/touch-screen.el (touch-screen-handle-point-up): Generate
	`down-mouse-1' if the current gesture is `mouse-1-menu'.
	(touch-screen-handle-touch): If binding is a keymap, set state
	to `mouse-1-menu' and wait for point to be released before
	generating down-mouse-1.

2023-07-17  Po Lu  <luangruo@yahoo.com>

	Improve word selection behavior

	* lisp/tab-bar.el (tab-bar-map): Don't bind touch-screen-drag.
	* lisp/touch-screen.el (touch-screen-drag): Extend the region
	based on the position of the mark, not the position of point
	relative to EVENT.
	(touch-screen-translate-touch): Don't generate virtual function
	keys for non-mouse events.
	(function-key-map): Remove redundant definitions.
	* src/keyboard.c (read_key_sequence): Don't generate *-bar
	prefix keys for mock input (such as input from function key
	translation.)

2023-07-17  Po Lu  <luangruo@yahoo.com>

	Improve touch screen support

	* doc/emacs/input.texi (Touchscreens): Document the new feature
	for people who have trouble dragging to word boundaries.
	* lisp/touch-screen.el (touch-screen-word-select): New
	defcustom.
	(touch-screen-word-select-bounds)
	(touch-screen-word-select-initial-word): New variable
	definitions.
	(touch-screen-hold): If `touch-screen-word-select', select the
	word around EVENT.
	(touch-screen-drag): If `touch-screen-word-select', extend the
	region to the next word boundary if the character under point
	constitutes a word.
	(touch-screen-handle-point-update, touch-screen-handle-touch)
	(touch-screen-translate-touch): Fix doc strings and fill
	comments.

2023-07-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	xdisp.c: Improve doc of `redisplay` flags a bit

2023-07-17  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsService.java (displayToast):
	* src/android.c (android_init_emacs_service): Remove unused
	function.
	* lisp/touch-screen.el (touch-screen-handle-point-up): Correctly
	compute posn point.
	(touch-screen-translate-touch): Update doc string.
	(function-key-map): Define touch screen translation functions
	within the internal border.

2023-07-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/commands.texi (Touchscreen Events): Improve
	documentation.
	* lisp/tab-bar.el (tab-bar-map): Bind `[tab-bar
	touchscreen-hold]'.
	* lisp/touch-screen.el (touch-screen-hold, touch-screen-drag):
	New functions.
	(touch-screen-handle-timeout): Generate a `touchscreen-hold'
	event instead.
	(touch-screen-handle-point-update): Generate a
	`touchscreen-drag' event upon dragging.
	(touch-screen-translate-touch): Cancel touch screen timer upon
	exit.
	* src/keyboard.c (access_keymap_keyremap): Take unsigned int
	start and end instead.

2023-07-16  Eli Zaretskii  <eliz@gnu.org>

	Fix Wdired with relative and abbreviated file names

	* lisp/wdired.el (wdired-finish-edit): Support Dired buffers where
	'dired-directory' is a list made of relative or abbreviated file
	names.  (Bug#64606)

2023-07-16  Po Lu  <luangruo@yahoo.com>

	Improve touch-screen support

	* doc/emacs/emacs.texi (Top):
	* doc/emacs/input.texi (Other Input Devices): Correctly
	capitalize subsection name.
	(Touchscreens): Document additional translation.
	* doc/lispref/commands.texi (Touchscreen Events): Document that
	`touchscreen-end' events now have prefix keys.  Also, describe
	mouse emulation and `touchscreen-scroll' events.
	* doc/lispref/keymaps.texi (Translation Keymaps): Document
	`current-key-remap-sequence'.
	* lisp/touch-screen.el (touch-screen-translate-prompt): New
	function.
	(touch-screen-scroll): New command.  Bind to
	`touchscreen-scroll'.
	(touch-screen-handle-point-update, touch-screen-handle-point-up)
	(touch-screen-handle-touch): Refactor to actually translate
	touch screen event sequences, as opposed to looking up commands
	and executing them.
	(touch-screen-translate-touch): New function.  Bind in
	function-key-map to all touch screen events.
	(touch-screen-drag-mode-line-1, touch-screen-drag-mode-line)
	(touch-screen-tap-header-line): Remove special commands for
	dragging the mode line and clicking on the header line.
	* lisp/wid-edit.el (widget-button-click): Adjust accordingly.
	* src/keyboard.c (access_keymap_keyremap): Bind
	`current-key-remap-sequence' to the key sequence being remapped.
	(keyremap_step): Give fkey->start and fkey->end to
	access_keymap_keyremap.
	(head_table): Add imaginary prefix to touchscreen-end events as
	well.
	(syms_of_keyboard): New variable Vcurrent_key_remap_sequence.

2023-07-16  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	16f3a09e8db ; * lisp/simple.el (kill-new): Fix a typo.  (Bug#64423)
	d78e670237b ; * src/lisp.h: Improve commentary for XIL, XLI, XLP (bug...

2023-07-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	sgml-mode.el: Cosmetic fixes

	* lisp/textmodes/sgml-mode.el: Prefer #' to quote function names.
	(sgml-font-lock-keywords-1, sgml-font-lock-syntactic-face):
	Refer to font-lock faces rather than their variables.
	(sgml-mode-facemenu-add-face-function): Remove redundant arg to `mapconcat`.
	(sgml-electric-tag-pair-before-change-function): Remove left-over
	debugging messages (bug#64636).

2023-07-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	d09de2f49d7 Ignore quit while getting interprogram paste in kill-new
	afdf54a5313 * lisp/progmodes/gdb-mi.el: Fix interactive invocation of...
	b54febef5d7 Fix NetBSD build with and without ncurses
	c5fb7301599 ; * lisp/paren.el (show-paren-function): Fix last change ...
	ea696ea4b9a ; Fix last change.
	b0181dafb9e Improve documentation of 'enable-local-variables' in Emac...
	eb7c45ca43f ; Fix copy-paste in Widget Manual (Bug#64610)
	aedbc3006e1 ; * doc/misc/eshell.texi (Aliases): Remove stray "@end ta...
	673992d28e2 ; * lisp/progmodes/sql.el (sql-interactive-mode): Remove ...

2023-07-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	7ac947f34c7 ; * src/lisp.h (struct Lisp_Overlay): Update commentary (...
	9bc93c7996c Replace duplicate text from epa.texi by a reference
	74cc1d27f1f Add basic usage information and fix references
	f24bdbfaf57 Add concept index, title-case structure titles
	0165b50b0ff ; * lisp/emacs-lisp/lisp.el (raise-sexp): Fix typo in doc...
	4cf33b6bd02 ; * doc/misc/modus-themes.org: Fix whitespace (bug#64548).
	4821da1ad7f Fix show-paren-mode when the parentheses is partially vis...
	419b4d44914 ; Improve documentation of with-restriction
	be34e8294af ; * admin/git-bisect-start: Update failing commits
	8e06809fccd Merge branch 'scratch/bug64391' into emacs-29
	dbac8076057 * lisp/net/tramp.el (tramp-get-buffer-string): Stabilize.
	01fb898420f Simplify after adding internal function to enter a labele...
	b741dc7fcde Add internal function to enter a labeled restriction

	# Conflicts:
	#	doc/misc/modus-themes.org

2023-07-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	01fb898420f Simplify after adding internal function to enter a labele...
	b741dc7fcde Add internal function to enter a labeled restriction

2023-07-15  Matthias Meulien  <orontee@gmail.com>

	Fix "Improve Python imports management commands"

	* lisp/progmodes/python.el (python--list-imports): Prefer to
	use an exit status >1.
	(python--list-imports-check-status): New function to check
	status of Python script.
	(python--do-isort): Fix wrong status check introduced with
	6295d7abdd4.  (Bug#64406)

2023-07-15  Spencer Baugh  <sbaugh@catern.com>

	Support displaying function name in the header line

	In some languages, the function name as displayed in the mode-line by
	which-func-mode can be quite long.  It's useful to be able to display
	it in the header-line instead.  Let's support that.

	* lisp/progmodes/which-func.el (which-func-display)
	(which-func--use-header-line, which-func--use-mode-line):
	Add. (Bug#64533)
	(which-func-try-to-enable): Support 'which-func--use-header-line'.
	(which-func--disable): Add, to support 'which-func--use-header-line'.
	(which-func-ff-hook, which-func-update-1): Use 'which-func--disable'.

2023-07-15  Łukasz Stelmach  <stlman@poczta.fm>

	Show SHA-256 digest of a public key in 'nsm-format-certificate'

	* lisp/net/nsm.el (nsm-format-certificate): Show public key
	digest (SHA-256 if available).  Displaying the digest enables
	users to verify the certificate with other tools like 'gnutls-cli'
	which present much more detailed information.

	* src/gnutls.c (emacs_gnutls_certificate_details): Export SHA-256
	public key digest if supported by GnuTLS.  (Bug#64043)

2023-07-15  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android): Add new node to menu.
	(Android Environment): Add footnote pointing to new node.
	(Android Software): New node.
	* doc/emacs/emacs.texi (Top): Add new node to menu.
	* java/AndroidManifest.xml.in (manifest): Fix location of
	sharedUserId property.
	* java/INSTALL: Improve documentation of shared user ID
	support.

2023-07-15  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-14  Mattias Engdegård  <mattiase@acm.org>

	Provide backtrace for byte-ops car, cdr, setcar, setcdr, nth and elt

	Include calls to these primitives from byte-compiled code in
	backtraces.  For nth and elt, not all errors are covered.
	(Bug#64613)

	* src/bytecode.c (exec_byte_code): Add error backtrace records for
	car, cdr, setcar, setcdr, nth and elt.
	* src/data.c (syms_of_data): Add missing defsyms for car, setcar,
	setcdr, nth and elt.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--error-frame, bytecomp-tests--byte-op-error-cases)
	(bytecomp--byte-op-error-backtrace): New test.

2023-07-14  Po Lu  <luangruo@yahoo.com>

	Make --with-shared-user-id work

	* configure.ac (ANDROID_SHARED_USER_NAME): New variable.
	Substitute it.
	* java/AndroidManifest.xml.in: Set `sharedUserLabel' if a shared
	user ID is enabled.
	* java/res/values/strings.xml (shared_user_name): New string
	resource.

2023-07-14  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_blit_copy): Don't check for overflow
	where not required.

2023-07-14  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-14  Po Lu  <luangruo@yahoo.com>

	Fix misreporting of window top line

	* src/frame.h (FRAME_TOOL_BAR_TOP_LINES): Return tool_bar_lines,
	not tool_bar_height.

2023-07-14  Paul Eggert  <eggert@cs.ucla.edu>

	Reorder NaN, INF paras

	* doc/lispref/numbers.texi (Float Basics):
	Reorder paragraphs so that examples follow defns.

2023-07-14  Paul Eggert  <eggert@cs.ucla.edu>

	Improve doc for VAX reading NaN, INF

	* doc/lispref/numbers.texi (Float Basics): Improve description of
	how Lisp reads infinities and NaNs on a VAX.

2023-07-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-print: Allow expanding the contents of hash-tables

	* lisp/emacs-lisp/cl-print.el (cl-print-object) <hash-table>:
	Add an ellipsis.
	(cl-print-object-contents) <hash-table>: New method.

2023-07-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/backtrace.el (backtrace--change-button-skip): Typo)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Decouple keep-place-indicator from global ERC module

	* etc/ERC-NEWS: Let users know that `keep-place-indicator' is a wholly
	separate module from `keep-place'.
	* lisp/erc/erc-goodies.el (erc-keep-place-indicator-setup): Perform
	some housekeeping on `erc-keep-place-mode'.
	(erc-keep-place-indicator-mode, erc-keep-place-indicator-enable,
	erc-keep-place-indicator-disable): Take precautions to work around the
	activation state of global module `keep-place', but no longer depend
	on it.
	(erc--keep-place-indicator-on-global-module): New function to ensure
	`erc-keep-place' runs exactly once on `erc-insert-pre-hook',
	regardless of whether module `keep-place' is active.
	* test/lisp/erc/erc-goodies-tests.el
	(erc-goodies-tests--assert-kp-indicator-on,
	erc-goodies-tests--assert-kp-indicator-off,
	erc-goodies-tests--kp-indicator-populate,
	erc-goodies-tests--keep-place-indicator): New helper functions.
	(erc-keep-place-indicator-mode,
	erc-keep-place-indicator-mode--no-global): Factor out some common
	logic and rename former to latter.
	(erc-keep-place-indicator-mode--global): New test.  (Bug#59943)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Improve walkthrough and sample config in ERC manual

	* doc/misc/erc.texi: Improve "Sample Session" and "Sample
	Configuration" sections.  Move introductory paragraph detailing the
	history of official GNU IRC channels to the "History" chapter (from
	"Sample Sessoin"), and leave a link in its place.  Silence strange
	warning in "Getting Help and Reporting Bugs" about lack of punctuation
	after xref.

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Add mini modules bufbar and nickbar to ERC

	* doc/misc/erc.texi: Add `bufbar' and `nickbar' to known modules.
	Also add `keep-place', which was missing, and remove `bbdb', which is
	not part of ERC.  Add new section "Auxiliary Modules" for listing
	experimental modules or those typically managed by some other feature.
	* etc/ERC-NEWS: Mention new mini modules for libraries
	erc-status-sidebar.el and erc-speedbar.el.
	* lisp/erc/erc.el (erc-modules): Add `bufbar' and `nickbar' to
	selection of offered modules.
	* test/lisp/erc/erc-tests.el (erc-tests--modules): Add `bufbar' and
	`nickbar'.  (Bug#63595)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Add erc-status-sidebar integration to erc-speedbar

	* lisp/erc/erc-speedbar.el: Require `erc-button' atop file and don't
	bother loading `dframe', which `speedbar' handles for us.
	(erc-speedbar): Explain that `nickbar' is the module for this group
	and library for the benefit of those who run M-x customize-group.
	(erc-speedbar-nicknames-window-width): New option.
	(erc-speedbar-hide-mode-topic): New option determining whether to hide
	the mode and topic.
	(erc-speedbar-my-nick-face): New option for determining face to use
	when displaying user's current nick.
	(erc-speedbar-browser): Call `erc-install-speedbar-variables'
	explicitly and remove top-level `with-eval-after-load'.
	(erc-speedbar-insert-target): Add parenthesized channel count after
	channel name in server and channel views.
	(erc-speedbar-expand-channel): Hide mode and topic depending on option
	`erc-speedbar-hide-mode-topic' and pass buffer to
	`erc-speedbar-insert-user'.
	(erc-speedbar--nick-face-function): New internal function-valued
	variable.
	(erc-speedbar--highlight-self-and-ops): New function to serve as
	default value for `erc-speedbar--nick-face-function'.
	(erc-speedbar--on-click): Dispatch `erc-nick-popup' after trimming
	status chars.
	(erc-speedbar-insert-user): Revise doc string.  Call
	`erc-speedbar--nick-face-function' to determine face.  Change
	token for both expansion and on-click text props.  Assign
	`erc-speedbar--on-click' as the mouse handler for nick items.
	(erc-speedbar--buffer-options): Variable to override options locally
	in speedbar buffer.
	(erc-speedbar--hidden-speedbar-frame): Add variable to hold original
	`speedbar-frame' before spoofing by setting to selected frame
	containing window showing ERC buffer.
	(erc-speedbar--emulate-sidebar-set-window-preserve-size,
	erc-speedbar--status-sidebar-mode--unhook): Add function
	to ensure status sidebar is showing correctly and helper to
	unregister from hook on teardown.
	(erc-speedbar--emulate-sidebar): Add function to control sidebar
	nicknames setup.
	(erc-speedbar--toggle-nicknames-sidebar): Add toggle function
	for speedbar or emulated sidebar.
	(erc-speedbar--ensure): Add helper function to show speedbar if it's
	hidden or create one if none exists.
	(erc-nickbar-mode, erc-nickbar-enable, erc-nickbar-disable):
	Add new mini module.
	(erc-speedbar--dframe-controlled) Add function to overwrite
	`speedbar-frame-mode' as `dframe-controlled' in speedbar buffer.
	(erc-speedbar-toggle-nicknames-window-lock,
	erc-speedbar-close-nicknames-window): Add commands to close speedbar
	window and toggle its cyclability.
	(erc-speedbar--compose-nicks-face): Add helper for nicks integration.
	* test/lisp/erc/erc-scenarios-status-sidebar.el
	(erc-scenarios-status-sidebar--nickbar): New test.  (Bug#63595)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Add preset styles to erc-status-sidebar

	* lisp/erc/erc-networks.el (erc-networks--rename-server-buffer): Store
	`erc-networks--id' in process object's plist.
	* lisp/erc/erc-status-sidebar.el (erc-status-sidebar): Change group
	parent from `convenience' to `erc'.
	(erc-status-sidebar-channel-format): Mention in doc string that it
	depends on new option `erc-status-sidebar-style'.
	(erc-status-sidebar-highlight-active-buffer): New option to control
	whether the current window's target is highlighted in the status bar.
	(erc-status-sidebar-style): New option to determine whether servers
	and queries also appear in the sidebar.
	(erc-status-sidebar-click-display-action,
	erc-status-sidebar-singular): New options.
	(erc-status-sidebar-get-window): Consider
	`erc-status-sidebar-singular'.
	(erc-status-sidebar-open): Fix toggle functionality that somehow fell
	through the cracks after the adoption of the package into ERC proper.
	(erc-bufbar-mode, erc-bufbar-enable, erc-bufbar-disable): New module
	named `bufbar' instead of `sidebar', which is more easily confusable
	with `speedbar'.  The preferred name, `status-sidebar' was unavailable
	because its minor-mode would have been `erc-status-sidebar-mode',
	which is already taken by the major mode used for status-bar buffers
	themselves.
	(erc-status-sidebar-toggle): Ignore `erc-status-sidebar-singular'.
	(erc-status-sidebar--trimpat, erc-status-sidebar--prechan): Add helper
	vars for new sorting function, allowing it to honor the existing
	interface, which only expects one argument.
	(erc-status-sidebar-prefer-target-as-name): New function for
	determining buffer name, preferring targets for target buffers.
	(erc-status-sidebar-get-channame): Use internal API to help determine
	name of buffer in sidebar.
	(erc-status-sidebar-prefer-target-as-name,
	erc-status-sidebar--show-disconnected,
	erc-status-sidebar-all-target-buffers,
	erc-status-sidebar-default-allsort): Add new naming and sorting
	functions and associated helper functions and variables.
	(erc-status-sidebar--active-marker,
	erc-status-sidebar--set-active-line): New variable and function for
	highlighting the active target in the status bar.
	(erc-status-sidebar-default-insert,
	erc-status-sidebar-pad-hierarchy): New functions for visiting various
	stages of buffer modification when rendering sidebar.
	(erc-status-sidebar-refresh): Consider presets and new options when
	rendering sidebar.
	(erc-status-sidebar-kill):  Disable `erc-bufbar-mode' when active.
	(erc-status-sidebar-click): Appeal to option
	`erc-status-sidebar-display-action' for `pop-to-buffer' action.
	(erc-status-sidebar-scroll-up, erc-status-sidebar-scroll-down,
	erc-status-sidebar-recenter): Add commands to scroll and
	recenter sidebar from a target buffer's window.
	(erc-status-sidebar-set-window-preserve-size): Ignore
	`erc-status-sidebar-singular'.
	(erc-status-sidebar-mode): Make non-interactive to avoid confusion
	when folks run "M-x erc-status-sidebar-mode" expecting a module
	toggle.
	* test/lisp/erc/erc-scenarios-status-sidebar.el: New file.
	* test/lisp/erc/resources/base/gapless-connect/foonet.eld: Fix wrong
	manifest for channel and extend PASS timeout.  (Bug#63595)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Allow ERC's module toggles access to the prefix arg

	* lisp/erc/erc-common.el (erc--module-toggle-prefix-arg): Add internal
	variable for preserving the `arg' passed to a module's minor-mode
	toggle, which was previously discarded.  Doing this lets modules that
	are more interactive in nature overload their mode toggles with
	alternate behaviors.
	(define-erc-module): Bind `erc--module-toggle-prefix-arg' to the `arg'
	parameter, which is normally defined inside a `define-minor-mode' body
	form.
	* test/lisp/erc/erc-tests.el (define-erc-module--global,
	define-erc-module--local): Expect activation body to be wrapped by a
	let form binding `erc--module-toggle-prefix-arg'.  (Bug#63595)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Fix buffer-mismatch bug in erc-scroll-to-bottom

	* lisp/erc/erc-goodies.el (erc-scroll-to-bottom): Only `recenter' when
	the selected window's buffer is current.  Previously, the module
	`scrolltobottom' signaled an "Error in `post-command-hook'" when a
	user clicked a channel indicator in the mode line from a window
	showing another ERC buffer.
	* lisp/erc/erc-track.el (erc-track--switch-fallback-blockers): New
	internal variable used by `erc-track--switch-buffer' in deciding
	whether to set `erc-track-last-non-erc-buffer' to the current buffer.
	(erc-track--switch-buffer): Consult list of `buffer-match-p'
	conditions in `erc-track--switch-fallback-blockers' to decide whether
	to set `erc-track-last-non-erc-buffer' to the current buffer.
	(Bug#63595)

2023-07-14  David Leatherman  <leathekd@gmail.com>
	    Andy Stewart  <lazycat.manatee@gmail.com>
	    F. Jason Park  <jp@neverwas.me>

	Add module for colorizing nicknames to ERC

	* doc/misc/erc.texi: Add `nicks' to module lineup.
	* etc/ERC-NEWS: Mention new module `nicks'.
	* lisp/erc/erc-nicks.el: New file.
	* lisp/erc/erc.el: (erc-modules): Add `nicks'.
	* test/lisp/erc/erc-nicks-tests.el: New file.
	* test/lisp/erc/erc-tests.el (erc-tests--modules): Add `nicks' to
	inventory of available modules.  (Bug#63569)

	Special thanks to Corwin Brust for doing much of the administrative
	legwork to bring this addition to ERC.

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Allow custom display-buffer actions in ERC

	* doc/misc/erc.texi: Add new section under "Integrations" chapter
	describing `display-buffer' Custom function choice for ERC's many
	buffer-display options.
	* etc/ERC-NEWS: Mention new function variant for all buffer-display
	options.
	* lisp/erc/erc-backend.el: Add forward declaration for
	`erc--called-as-input-p' and `erc--display-context'.
	(erc--server-reconnect-display-timer,
	erc--server-last-reconnect-display-reset): Use new name for option
	`erc-reconnect-display', now `erc-auto-reconnect-display'.
	(erc--server-determine-join-display-context): New generic function to
	determine value of `erc--display-context' during JOINs.
	(erc-server-JOIN, erc-server-PRIVMSG): Set `erc--display-context' to a
	symbol for the handler's IRC command, like `JOIN', for the benefit of
	custom `display-buffer'-like functions running in `erc-setup-buffer'.
	(erc-server-471, erc-server-471-functions, erc-server-473,
	erc-server-473-functions): New handlers for JOIN rejections.  Also
	remove 471 and 473 from comment at bottom of file.
	(erc-server-475): Bind `erc--called-as-input-p' so that `erc-cmd-JOIN'
	sets `erc-interactive-display' context.
	* lisp/erc/erc-join.el (erc-autojoin-mode, erc-autojoin-enable,
	erc-autojoin-disable): Kill local variable
	`erc-join--requested-channels'.  Add and remove
	`erc-join--remove-requested-channels' to/from various server-handler
	hooks for JOIN rejection numerics.
	(erc-join--requested-channels): New local variable to remember
	channels we've attempted to JOIN this session that haven't yet been
	confirmed by the server.
	(erc-join--remove-requested-channel): New JOIN rejection handler to
	stop tracking channel in `erc-join--requested-channels'.
	(erc--server-determine-join-display-context): module-specific
	implementation of generic function for `erc-autojoin-mode'.
	(erc-autojoin--join): Remember channels slated for JOIN'ing.
	* lisp/erc/erc.el (erc--buffer-display-choices): New helper constant
	for defining common `:type' for all buffer-display options.
	(erc-buffer-display, erc-interactive-display,
	erc-auto-reconnect-display, erc-receive-query-display): Use helper
	`erc--buffer-display-choices' for defining `:type', which
	includes a new choice for a `display-buffer'-like function.
	(erc-reconnect-display, erc-auto-reconnect-display): Alias former to
	latter, now the preferred name.
	(erc-reconnect-timeout, erc-auto-reconnect-timeout): Change name from
	former to latter.  This option is new in ERC 5.6.
	(erc-reconnect-display-server-buffers): New option.
	(erc-buffer-do): Revise doc string.
	(erc--display-context): New variable, an alist of "context tokens" to
	be forwarded as the "action alist" to `erc-buffer-display' functions.
	(erc-skip-displaying-selected-window-buffer): New variable, deprecated
	at birth, to act as an escape hatch for folks who don't want to skip
	the displaying of buffers already showing in the selected window.
	(erc--display-buffer-overriding-action): Local variable allowing
	modules to influence the displaying of new ERC buffers independently
	of user options.
	(erc-setup-buffer): Do nothing when the selected window already shows
	current buffer unless user has provided a custom display function.
	Accommodate new Custom choice function values, like `display-buffer'
	and `pop-to-buffer'.
	(erc-open): Run `erc-setup-buffer' when option
	`erc-reconnect-display-server-buffers' is non-nil, even for existing
	server buffers.  Bind `display-buffer-overriding-action' to the value
	of `erc--display-buffer-overriding-action' around calls to
	`erc-setup-buffer'.
	(erc-select-read-args): Add `erc--display-context' to environment.
	(erc, erc-tls): Bind `erc--display-context' around calls to
	`erc-select-read-args' and main body.
	(erc-cmd-JOIN, erc-cmd-QUERY, erc--cmd-reconnect, erc-handle-irc-url):
	Add item for `erc-interactive-display' to `erc--display-context'.
	(erc-connection-established): Update name of
	`erc-reconnect-display-timeout' to
	`erc-auto-reconnect-display-timeout'.
	(erc-message-english-s471, erc-message-english-s473): New variables,
	format templates for JOIN rejection messages.
	* test/lisp/erc/erc-scenarios-base-buffer-display.el
	(erc-scenarios-base-buffer-display--defwin-recbury-intbuf,
	erc-scenarios-base-buffer-display--defwino-recbury-intbuf,
	erc-scenarios-base-buffer-display--count-reset-timeout): Use preferred
	name `erc-auto-reconnect-display' for `erc-reconnect-display'.
	* test/lisp/erc/erc-scenarios-join-display-context.el: New file.
	* test/lisp/erc/erc-tests.el (erc--initialize-markers): Fix
	unrealistic call to `erc-open'.
	(erc-setup-buffer--custom-action): New test.
	(erc-select-read-args, erc-tls, erc--interactive, erc-server-select):
	Expect new environment binding for `erc--display-context'.
	* test/lisp/erc/resources/join/buffer-display/mode-context.eld: New
	file.  (Bug#62833)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Optionally combine faces in erc-display-message

	* etc/ERC-NEWS: Tell module authors that `erc-display-message' can now
	combine faces.
	* lisp/erc/erc-button.el (erc-button--display-error-notice-with-keys):
	Ask `erc-display-message' to compose `erc-notice-face' and
	`erc-error-face'.
	* lisp/erc/erc-match.el (erc-hide-fools): Merge `invisible' prop
	`erc-match' with existing, if present, and move body to helper for
	hiding matched messages.
	(erc-match--hide-message): New helper function to hide messages
	regardless of match type.
	* lisp/erc/erc-track.el: (erc-track-faces-priority-list): Note in doc
	string that faces reserved for critical messages are always
	prioritized.  Wrap :type declaration in macro helper to ensure
	`erc-button' is loaded beforehand.  Otherwise calling `setopt' with
	the option's default value fails.
	(erc-track--attn-faces): Add new internal variable for faces that
	should always appear in the mode line, at least in the default client.
	(erc-track-modified-channels, erc-track-face-priority): Prepend
	`erc-track--attn-faces' to `erc-track-faces-priority-list'.
	* lisp/erc/erc.el (erc-send-action): Ask `erc-display-message' to
	apply both `erc-input-face' and `erc-action-face' to messages.
	(erc--compose-text-properties): New internal variable to act as flag
	for altering behavior of `erc-put-text-property'.
	(erc--merge-prop): New function copied from `erc-button-add-face' for
	general internal use with any text property by all of ERC.
	(erc-display-message-highlight): Set fallback face to
	`erc-default-face' the symbol instead of the string.  For this to
	break third-party code, callers would have to supply erroneous types
	for nonexistent or undefined handlers and then explicitly check for
	and depend on such misuse, which seems unlikely and therefore not
	worth mentioning in etc/ERC-NEWS.
	(erc-display-message): Explain how `type' param works when it's a
	list.  Fix code in type-as-list branch so that it optionally combines
	faces instead of clobbers them.
	(erc-put-text-property): Unalias from `put-text-property', but fall
	back to the latter unless caller wants to combine faces, in which case,
	defer to `erc--merge-prop'.
	* test/lisp/erc/erc-button-tests.el
	(erc-button--display-error-notice-with-keys): Expect a combined "error
	notice" face.  (Bug#64301)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Add text props for CTCP messages and speakers in ERC

	* etc/ERC-NEWS: Mention reduction in boldness of `erc-notice-face' and
	`erc-action-face'.
	* lisp/erc/erc-fill.el (erc-fill-spaced-commands,
	erc-fill--spaced-commands): Rename former to latter and demote from
	user option to internal variable.
	(erc-fill): Change `erc-fill-spaced-commands' to
	`erc-fill--spaced-commands'.
	(erc-fill--wrap-continued-message-p): Use more precise `erc-ctcp' text
	prop instead of face-based heuristic to detect CTCP ACTION message.
	(erc-fill--wrap-action-dedent-p): New variable to toggle whether
	`line-prefix' is applied to CTCP ACTION messages.  This exists less
	to accommodate user preferences and more for third-party code that
	assumes the first non-whitespace span in every message is a nick.
	(erc-fill-wrap): Look for `erc-speaker' property before falling back
	on word at point.  Use `erc-ctcp' to detect CTCP ACTION messages.
	* lisp/erc/erc.el (erc-notice-face, erc-action-face): Prefer weight of
	`semi-bold' when available so that buttonization is at least somewhat
	perceptible in notices and action messages.
	(erc-send-action): Ensure nickname passed to `erc-display-message' has
	`erc-speaker' property and `erc-ctcp' ACTION property.
	(erc--own-property-names): Add `erc-speaker' to lineup.
	(erc-format-privmessage): Don't clobber `erc-nick-prefix-face'.  That
	is, retain face applied to a leading stretch of characters in the
	`nick' parameter, but continue to discard trailing faces.
	(erc-format-my-nick, erc-ctcp-query-ACTION): Add new text property
	`erc-speaker' to the nick portion of the formatted speaker label.  Do
	this to assist modules, like `button' and `match', that currently
	re-parse speakers in inserted messages.
	(erc-process-ctcp-query): Add `erc-ctcp' property to entire message
	before insertion hooks see it.
	* test/lisp/erc/erc-fill-tests.el (erc-fill-tests--compare): Warn
	about certain unreliable comparisons if generalizing helper for use by
	other modules.
	* test/lisp/erc/erc-tests.el (erc-tests--equal-including-properties):
	New helper compat macro.
	(erc-format-privmessage): New test.  (Bug#64301)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Simplify erc-button-add-nickname-buttons

	* lisp/erc/erc-button.el (erc-button--nick): Remove `face' slot, which
	was set to `erc-button-face' by default.  It's ignored when the button
	is a nick and thus useless and misleading.
	(erc-button-add-nickname-buttons): Rework and reflow for readability.
	Don't bind or set `erc-button' face because it's ignored when dealing
	with nicks.  Don't return the value of face options when calling a
	`form' function because they can be nil in practice even though their
	Custom type specs do not say so.
	* lisp/erc/erc-common.el (erc--with-dependent-type-match): Add helper
	macro for Custom :type defs that incur warnings from `setopt' due to
	some missing dependency.  This occurs when specifying a :type of
	`face' instead of `symbol' and the option's default value includes
	faces from another library that hasn't been loaded.
	* lisp/erc/erc.el (erc--get-speaker-bounds): New helper function to
	retrieve bounds of a speaker label when present.
	* test/lisp/erc/erc-tests.el (erc--with-dependent-type-match): Add
	test.  (Bug#64301)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Respect existing invisibility props in erc-stamp

	* etc/ERC-NEWS: mention `erc-match-toggle-hidden-fools' and new
	merging behavior when handling `invisible' text property.
	* lisp/erc/erc-match.el (erc-hide-fools): change `invisible' property
	to `erc-match' for all messages, not just those with offset bounds.
	(erc-match--modify-invisibility-spec): Fix error in doc string.
	(erc-match-toggle-hidden-fools): New command.
	* lisp/erc/erc-stamp.el (erc-stamp--invisible-property): Add new
	internal variable to hold existing `invisible' property merged with
	the one registered by this module, the non-namespaced `timestamp'.
	(erc-stamp--skip-when-invisible): Add new internal variable, an escape
	hatch for pre-ERC-5.6 behavior in which timestamps were not applied at
	all to invisible messages.  This led to strange-looking, uneven logs,
	and it prevented other modules from offering toggle functionality for
	invisibility-spec members registered to them.
	(erc-add-timestamp): Merge with existing `invisible' property, when
	present, instead of clobbering, but only when escape hatch
	`erc-stamp--skip-when-invisible' is nil.
	(erc-insert-timestamp-left, erc-format-timestamp): Use possibly merged
	`invisible' prop value.  Don't bother with `isearch-open-invisible',
	which only affects overlays.
	(erc-insert-timestamp-right): Bind `buffer-invisibility-spec' to nil
	when figuring `current-column'.  Apply `invisible' text prop to white
	space around stamp.
	* test/lisp/erc/erc-scenarios-match.el: Require `erc-fill' and
	`erc-stamp'.
	(erc-scenarios-match--invisible-stamp): Move common setup and core
	assertions for some stamp and invisibility-related tests into a
	fixture-like helper.
	(erc-scenarios-match--stamp-left-fools-invisible): Fix temporarily
	disabled test and use fixture.
	(erc-scenarios-match--find-eol): New helper.
	(erc-scenarios-match--stamp-right-fools-invisible,
	erc-scenarios-match--stamp-right-invisible-fill-wrap,
	erc-scenarios-match--stamp-both-invisible-fill-static): New tests.
	(Bug#64301)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Deprecate erc-server-alist and erc-server-select

	* etc/ERC-NEWS: Announce deprecation of `erc-server-alist' and
	`erc-server-select'.
	* lisp/erc/erc-networks.el: Comment out call to `erc-get' at end of
	file.
	(erc-server-alist) Change shape to accommodate a fifth member: TLS
	ports.  Add default TLS ports for Libera.Chat and OFTC.  Deprecate
	option.
	(erc-ports-list): Overload for internal use to accept a number instead
	of a list, but don't advertise this fact.
	(erc-networks--server-select): Convert `erc-server-select' into a
	function that performs the same prompting but returns a full URL or a
	host name instead of calling `erc'.
	(erc-server-select): Move to erc.el.
	* lisp/erc/erc.el (erc--prompt-for-server-functions): New variable to
	allow callers of `erc-select-read-args' to affect how server-prompting
	is handled without adding additional params.
	(erc-select-read-args): Defer to `erc--prompt-for-server-function'
	when non-nil.
	(erc-server-select): New transplanted function, a deprecated, now
	TSL-aware version of the old quirky entry point from erc-networks.el.
	Reimplemented as a simple wrapper for `erc'.
	* test/lisp/erc/erc-networks-tests.el (erc-ports-list): New test.
	* test/lisp/erc/erc-tests.el (erc-server-select): New test.
	(Bug#64478)

2023-07-14  F. Jason Park  <jp@neverwas.me>

	Fix command-line parsing regression in erc-cmd-DCC

	* lisp/erc/erc-compat.el (erc-compat--28-split-string-shell-command,
	erc-compat--split-string-shell-command): Remove unused function and
	macro.
	* lisp/erc/erc-dcc.el (erc-cmd-DCC): Use own arg-parsing function.
	* lisp/erc/erc.el (erc--shell-parse-regexp,
	erc--split-string-shell-cmd): New regexp constant and arg-parsing
	function based on those in shell.el.
	* test/lisp/erc/erc-dcc-tests.el
	(erc-dcc-tests--erc-dcc-do-GET-command): Accept new `nuh' argument
	representing message source/sender.
	(erc-dcc-do-GET-command): Add tests for regression involving pipe
	character.
	* test/lisp/erc/erc-tests.el (erc--split-string-shell-cmd): New test.
	(Bug#62444)

	Thanks to Fernando de Morais for reporting this bug.

2023-07-14  Eli Zaretskii  <eliz@gnu.org>

	Use 'emacs-lisp-compilation-mode' in native compilation buffers

	Re-install this commit 40492581f96, now that source of
	the recursive-load has been fixed (bug#64494).

	* lisp/emacs-lisp/comp.el (comp-log-to-buffer)
	(comp-run-async-workers): Use 'emacs-lisp-compilation-mode' in the
	buffers where we log the results of native compilation.  Suggested
	by No Wayman <iarchivedmywholelife@gmail.com>.  (Bug#64452)

2023-07-14  Po Lu  <luangruo@yahoo.com>

	Clean up Android debug code

	* java/org/gnu/emacs/EmacsInputConnection.java
	(getSurroundingText): Don't print debug information if DEBUG_IC
	is off.

2023-07-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/comp.c: Use `pending_funcalls` to fix bug#64494

	Make sure `comp.el` is never loaded synchronously by simply
	delaying all calls to `native--compile-async` via `pending_funcalls`.

	* lisp/startup.el (comp--compilable, comp--delayed-sources): Don't declare.
	(startup--require-comp-safely)
	(startup--honor-delayed-native-compilations): Delete functions.
	(normal-top-level): Don't call `startup--honor-delayed-native-compilations`.

	* src/comp.c (maybe_defer_native_compilation): Use `pending_funcalls`.
	(syms_of_comp): Delete `Vcomp__delayed_sources` and `comp__compilable`.
	Define `Qnative__compile_async`.

2023-07-14  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-print: Put buttons on ellipses

	Currently, in *Backtrace* we have a nice behavior for cl-printed objects
	where they're truncated by default to a manageable size but we can click
	on the "..." to expand them when needed.

	The patch below moves that functionality to `cl-print.el` such
	that it can be enjoyed "everywhere" (bug#64536).  It also has the
	benefit of simplifying the code since `backtrace.el` had to look for
	ellipses in order to add buttons to them, whereas now we can put
	the ellipses right when we write them.

	* lisp/emacs-lisp/cl-print.el (cl-print-object-contents): Improve docstring.
	(cl-print-expand-ellipsis-function): New var.
	(cl-print--default-expand-ellipsis): New function.
	(cl-print-expand-ellipsis): New command.
	(cl-print-insert-ellipsis): Allow nil instead of 0 to mean "this elides
	the whole object".
	(cl-print-ellipsis): Move button type from `backtrace.el`.
	(cl-print-propertize-ellipsis): Put a button.
	(cl-print--expand-ellipsis): Rename from `cl-print-expand-ellipsis`.
	(cl-print-to-string-with-limit): Allow new value t for `limit`.

	* lisp/emacs-lisp/backtrace.el (backtrace--font-lock-keywords): Simplify.
	(backtrace--match-ellipsis-in-string): Delete function.
	(backtrace--change-button-skip): Adjust to new button type name.
	(backtrace--expand-ellipsis): New function, extracted from
	`backtrace-expand-ellipsis`.
	(backtrace-expand-ellipsis): Delete function.
	(backtrace-ellipsis): Move button type to `cl-print.el`.
	(backtrace--print-to-string): Don't look for cl-print ellipses any more.
	(backtrace-mode): Use `backtrace--expand-ellipsis`.

	* lisp/ielm.el (ielm--expand-ellipsis): New function.
	(inferior-emacs-lisp-mode): Use it to fill the data when expanded.

	* test/lisp/emacs-lisp/cl-print-tests.el
	(cl-print-tests-check-ellipsis-expansion)
	(cl-print-tests-check-ellipsis-expansion-rx): Adjust to new internal
	function name.

2023-07-13  Spencer Baugh  <sbaugh@catern.com>

	Don't recalculate the buffer basename inside uniquify

	Previously, uniquify--create-file-buffer-advice would use the filename
	of the buffer to calculate what the buffer's basename should be.  Now
	that gets passed in from create-file-buffer, which lets us fix several
	bugs:

	1. before this patch, if a buffer happened to be named the same thing
	as directory in its default-directory, the buffer would get renamed
	with a directory separator according to uniquify-trailing-separator-p.

	2. buffers with a leading space should get a leading |, as described
	by create-file-buffer's docstring; before this patch, uniquify would
	remove that leading |.

	* lisp/dired.el (dired-internal-noselect): Pass a directory name to
	create-file-buffer.
	* lisp/files.el (create-file-buffer): Do uniquify-trailing-separator-p
	handling if passed a directory filename. (bug#62732)
	* lisp/uniquify.el (uniquify-item):
	(uniquify-rationalize-file-buffer-names, uniquify-rationalize,
	uniquify-get-proposed-name, uniquify-rationalize-conflicting-sublist):
	Remove uniquify-trailing-separator-p handling.
	(uniquify--create-file-buffer-advice): Take new basename argument and
	use it, instead of recalculating the basename from the filename.

2023-07-13  Paul Eggert  <eggert@cs.ucla.edu>

	Port NaN, infinity handling better to VAX

	Nowadays .elc files routinely contain tokens like 1.0e+INF and
	0.0e+NaN that do not work on antiques like the VAX that lack IEEE fp.
	Port Emacs to these platforms, by treating infinities as extreme
	values and NaNs as strings that trap if used numerically.
	* src/lread.c (INFINITY): Default to HUGE_VAL if non-IEEE.
	(not_a_number) [!IEEE_FLOATING_POINT]: New static array.
	(syms_of_lread) [!IEEE_FLOATING_POINT]: Initialize it.
	(read0): Report invalid syntax for +0.0e+NaN on platforms
	that lack NaNs.
	(string_to_number): On non-IEEE platforms, return HUGE_VAL
	for infinity and a string for NaN.  All callers changed.

2023-07-13  Juri Linkov  <juri@linkov.net>

	* lisp/help-mode.el (help-setup-xref): Disable outline-minor-mode (bug#64575).

2023-07-13  Spencer Baugh  <sbaugh@catern.com>

	Fix flymake mode line scrolling with pixel-scroll-precision-mode

	When pixel-scroll-precision-mode is enabled, scrolling the mouse
	wheel will yield wheel-{up,down} events.  Flymake now binds the
	new events in addition to the old mouse-wheel-{up,down}-event.

	* lisp/progmodes/flymake.el:(flymake--mode-line-counter-scroll-prev)
	(flymake--mode-line-counter-scroll-next)
	flymake--mode-line-counter-map): New.
	(flymake--mode-line-counter): Use new keymap and include
	'flymake--diagnostic-type' as a property in the mode-line.
	(Bug#64428)

2023-07-13  Robert Pluim  <rpluim@gmail.com>

	Prevent tex-shell buffer from reusing same window

	* lisp/window.el (display-tex-shell-buffer-action): Add
	'inhibit-same-window' to the default action.

2023-07-13  Robert Pluim  <rpluim@gmail.com>

	Autodetect coding system when yanking media

	Some browsers send eg 'text/html' selections formatted as UTF-8, but
	with a type of STRING, which actually means iso-latin-1.  Autodetect
	the correct coding system to use by calling 'gui-get-selection'.

	* lisp/yank-media.el (yank-media--get-selection): Call
	'gui-get-selection' instead of 'gui-backend-get-selection'.

2023-07-13  Po Lu  <luangruo@yahoo.com>

	Add a Doc View tool bar

	* etc/NEWS: Announce the new tool bar.
	* etc/images/last-page.xpm:
	* etc/images/last-page.pbm: New images.  Mirrored from
	next-page.xpm.
	* lisp/doc-view.el (doc-view-menu): Use `doc-view-new-search'
	instead of an anonymous function.
	(doc-view-tool-bar-map): New keymap.
	(doc-view-search): Update the tool bar after initiating a
	search.
	(doc-view-new-search): New command.
	(doc-view-mode): Set the tool bar map appropriately.

2023-07-13  Po Lu  <luangruo@yahoo.com>

	Improve workaround for partial texture updates on Android

	* java/AndroidManifest.xml.in:
	* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog): Don't
	change hardware acceleration state.
	* java/org/gnu/emacs/EmacsNative.java (notifyPixelsChanged): New
	function.
	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
	New field `bitmapChanged'.
	(copyToFrontBuffer): Signal that the bitmap has changed.
	(onDraw): If the bitmap has changed, increment the generation
	ID.
	* src/android.c (JNICALL): Implement new function.

2023-07-13  Po Lu  <luangruo@yahoo.com>

	Disable hardware acceleration on Android

	It serves no purpose and causes tearing.  Uploading the bitmap
	to the GPU takes about as long as it does to incrementally
	update the surface in software.

	* java/AndroidManifest.xml.in: Disable hardware acceleration.
	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): Make
	lastClosedMenu static.
	* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog): Enable
	hardware acceleration within alert dialogs.
	* java/org/gnu/emacs/EmacsSurfaceView.java (onDraw): Describe
	why hardware acceleration is disabled.
	* java/org/gnu/emacs/EmacsWindow.java (run): Remove redundant
	call.

2023-07-13  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-12  Justin Burkett  <justin@burkett.cc>

	Add which-key-C-h-map-prompt to make it customizable

	Fixes #350

2023-07-12  Po Lu  <luangruo@yahoo.com>

	Minor correction to X error handling

	* src/xterm.c (x_error_handler): Clear fail->selection_serial
	after reporting an error during selection transfer, in case any
	other outstanding requests within the protected section also
	report errors.

2023-07-12  Po Lu  <luangruo@yahoo.com>

	Improve commentary

	* src/xterm.c (x_ignore_errors_for_next_request): Reword
	description of SELECTION_SERIAL.

2023-07-12  João Távora  <joaotavora@gmail.com>

	Eglot: fix advertisement of textDocument.codeAction.resolveSupport

	See https://github.com/joaotavora/eglot/issues/1255.

	* lisp/progmodes/eglot.el (eglot-client-capabilities):
	Use correct format for textDocument.codeAction.resolveSupport.

2023-07-12  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_run_select_thread): Correctly return
	the set of ready read and write descriptors on __ANDROID_API__ <
	16 systems.
	(android_select): Clear the set of ready file descriptors if
	events from the event queue are present despite pselect failing.

2023-07-12  Po Lu  <luangruo@yahoo.com>

	Fix keyboard state translation on Android

	* src/androidterm.c (android_android_to_emacs_modifiers)
	(android_emacs_to_android_modifiers): Fix statement precedence
	bugs.

2023-07-12  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsWindow.java (whatButtonWasIt): Handle
	back and forward buttons along with styluses.
	* src/doc.c (close_file_unwind_android_fd): New function.
	(get_doc_string, Fsnarf_documentation): Don't create a temporary
	fd if it can be avoided.

2023-07-12  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-11  Po Lu  <luangruo@yahoo.com>

	Fix doc file generation on Android

	* .gitignore: Ignore cross/etc/DOC.
	* configure.ac: Make the directory `cross/etc'.
	* cross/Makefile.in (CLEAN_SUBDIRS): Clean files inside `etc' as
	well.
	* java/Makefile.in (install_temp): Copy cross/etc/DOC to the
	package if it is available.
	* src/Makefile.in (SOME_MACHINE_OBJECTS): Add androidselect.c,
	sfntfont-android.c and sfntfont.c.
	(libemacs.so): Depend on $(etc)/DOC.

2023-07-11  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_fill_span): Correctly clip span to raster
	width, ensuring that the last pixel is filled.
	(main): Adjust test sizes.

2023-07-11  Bill Wohler  <wohler@newt.com>

	Fix Wrong type argument: consp, nil error

	* lisp/mh-e/mh-folder.el (mh-update-sequences): Add cur sequence when
	missing

2023-07-11  Bill Wohler  <wohler@newt.com>

	Fix mh-show-msg: Symbol’s value as variable is void: mh-mm-inline-media-tests

	* lisp/mh-e/mh-show.el: Require mh-mime

2023-07-11  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsView.java (onGenericMotionEvent): Call
	onGenericMotionEvent.
	* java/org/gnu/emacs/EmacsWindow.java (Coordinate): New fields
	`button' and `id'.
	(<init>): Add new arguments to the constructor.
	(whatButtonWasIt): Return 0 if the button state has not changed.
	(buttonForEvent): New function.
	(figureChange): Return the Coordinate object associated to
	EVENT.  Determine whether or not EVENT was accompanied by a
	change to the button state, and ascertain which button that was.
	(motionEvent): New function.
	(onGenericMotionEvent, onTouchEvent): Factor out touch and mouse
	event delivery to motionEvent.

2023-07-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-11  João Távora  <joaotavora@gmail.com>

	Eglot: add support for :codeAction/resolve

	See https://github.com/emacs-grammarly/eglot-grammarly/issues/7.

	* lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Augment
	CodeAction type.
	(eglot-execute): Consider :codeAction/resolve
	(eglot-client-capabilities): Advertise
	textDocument.codeAction.resolveSupport

2023-07-10  Jim Porter  <jporterbugs@gmail.com>

	Add support for explicitly-remote commands in Eshell

	* lisp/files.el (file-remote-p):
	* doc/lispref/files.texi (Magic File Names): Document 'never' for
	CONNECTED argument.

	* lisp/net/tramp.el (tramp-handle-file-remote-p): Handle CONNECTED
	value of 'never'.

	* lisp/eshell/esh-ext.el (eshell-explicit-remote-commands): New
	option.
	(eshell-ext-initialize): Apply 'eshell-handle-remote-command' when
	requested.
	(eshell-handle-remote-command): New function.
	(eshell-remote-command): Reimplement this function and dispatch to
	'eshell-external-command', which can handle remote processes on its
	own.

	* test/lisp/eshell/esh-ext-tests.el
	(esh-ext-test/explicitly-remote-command)
	(esh-ext-test/explicitly-local-command): New tests.

	* doc/misc/eshell.texi (Remote Access): Document explicitly-remote
	commands.

	* etc/NEWS: Announce this change.

2023-07-10  Jim Porter  <jporterbugs@gmail.com>

	Add documentation about remote access in Eshell

	* doc/misc/eshell.texi
	(Invocation): Mention the '*' prefix.
	(Remote Access): New section...
	(Commands): ... link to it.

2023-07-10  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el (project-prompt-project-name): Fix order.

	Reverse choices in this recently added new command to follow exactly
	the same order as in the old function 'project-prompt-project-dir'.

2023-07-10  Paul Eggert  <eggert@cs.ucla.edu>

	Further simplify configure-time locale testing

	* configure.ac (gl_STDLIB_H): Replace this, not gt_LOCALE_FR_UTF8,
	as this lets us also omit MB_CUR_MAX checking that will never be
	executed, and also lets us remove testing for ecvt, fcvt, gcvt
	that Emacs doesn’t need.
	(AC_C_RESTRICT): Invoke explicitly, as Emacs uses ‘restrict’
	directly.  Also, simplifies the replacement for gl_STDLIB_H, which
	would otherwise need to AC_REQUIRE AC_C_RESTRICT.
	* lib/gnulib.mk.in: Regenerate via admin/merge-gnulib.

2023-07-10  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp test

	* test/lisp/net/tramp-tests.el (tramp-test33-environment-variables):
	Adapt test.

2023-07-10  João Távora  <joaotavora@gmail.com>

	Eglot: fix eglot--sig-info again

	See https://github.com/joaotavora/eglot/issues/1253

	* lisp/progmodes/eglot.el (eglot--sig-info): Fall back to regexp
	technique if no parameters or poor parameter information.

2023-07-10  João Távora  <joaotavora@gmail.com>

	Eglot: fix eglot--sig-info

	See https://github.com/joaotavora/eglot/issues/1253

	* lisp/progmodes/eglot.el (eglot--sig-info): Fix.

2023-07-10  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsService.java (browseUrl): New argument
	SEND.  Choose from a list of applications that want to share the
	URL if true.
	* lisp/net/browse-url.el (browse-url-android-share): New user
	option.
	(browse-url-default-android-browser): Respect said user option.
	* src/android.c (android_init_emacs_service)
	(android_browse_url): Expose new option.
	* src/android.h: Update prototypes.
	* src/androidselect.c (Fandroid_browse_url): Likewise.

2023-07-10  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-09  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify ‘configure’ check for MB_CUR_MAX

	* admin/merge-gnulib: Remove m4/locale-fr.m4.
	* configure.ac (gt_LOCALE_FR_UTF8): Replace Gnulib’s
	definition with a near no-op, as Emacs doesn’t care
	about the Solaris 10 MB_CUR_MAX bug.
	* lib/gnulib.mk.in: Regenerate.
	* m4/locale-fr.m4: Remove; no longer needed due
	to above changes.

2023-07-09  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2023-07-09  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsWindow.java (eventModifiers)
	(motionEventModifiers): New functions.
	(onKeyDown, onKeyUp, onFocusChanged, onSomeKindOfMotionEvent):
	Don't record the previous modifier mask; instead, always use the
	modifier state specified in the event.
	* src/androidterm.c (handle_one_android_event): Don't dispatch
	button release events when a popup is active.

2023-07-09  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsService.java (onStartCommand): Fix
	typo in notification message.
	* java/org/gnu/emacs/EmacsWindow.java (onFocusChanged): Reset
	the recorded modifier state upon a change to the window focus.

2023-07-09  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsDrawPoint.java (perform): Don't fill
	an extra pixel.
	* java/org/gnu/emacs/EmacsService.java (onCreate): Make sure
	scaledDensity is always at least 160 dpi.

2023-07-09  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-print.el: Reduce code duplication

	While at it, fix a bug in `cl-print-object-contents` for strings,
	where we forgot to pass `stream` to `princ` at one place and simplify
	a `substring` call using a negative offset.

	* lisp/emacs-lisp/cl-print.el (cl-print--cons-tail)
	(cl-print--vector-contents, cl-print--struct-contents)
	(cl-print--string-props): New functions, extracted from
	`cl-print-object-contents`.
	(cl-print-object, cl-print-object-contents): Use them.

2023-07-08  Jim Porter  <jporterbugs@gmail.com>

	Add special '$GID' variable in Eshell

	See bug#64529.

	* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Add '$GID'.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/gid-var): New test.

	* doc/misc/eshell.texi (Variables): Document '$GID'.

	* etc/NEWS: Announce this change (and the previous change for '$UID').

2023-07-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	pp-fill: Fix missing indentation in some cases

	* lisp/emacs-lisp/pp.el (pp-fill): Improve handling of char-tables.
	(pp-buffer): Improve backward compatibility.

2023-07-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/menu-bar.el (menu-bar-search-options-menu): Don't quote lambdas

	Expose the commands to the compiler.

2023-07-08  Basil L. Contovounesios  <contovob@tcd.ie>

	Minor tree-sitter cleanups

	* lisp/treesit.el (treesit-fontify-with-override): Fix docstring
	grammar.  Remove redundant precondition (bug#64052).
	* src/treesit.c (Ftreesit_parser_set_included_ranges): Fix typo in
	commentary.
	(treesit_predicate_equal, treesit_predicate_match)
	(treesit_predicate_pred): Avoid fixnum roundtrip by using
	list_length in place of Flength.  Make error messages more accurate.
	(treesit_eval_predicates): Quote predicate names in error message.

2023-07-08  Basil L. Contovounesios  <contovob@tcd.ie>

	Minor search_buffer cleanup

	* src/search.c: Move commentary that used to precede search_buffer
	to that location once more.  Update it for the current arglist.
	(search_command, search_buffer_non_re, search_buffer):
	* src/lisp.h (search_buffer): Turn RE flag/argument from an int into
	a bool.  All callers changed (bug#64049).

2023-07-08  Michael Albinus  <michael.albinus@gmx.de>

	Rearrange setting date and modes in Tramp

	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file): Set date
	and modes if appropriate.
	(tramp-do-copy-or-rename-file-via-buffer)
	(tramp-do-copy-or-rename-file-directly)
	(tramp-do-copy-or-rename-file-out-of-band): Do not set date and modes.

2023-07-08  Po Lu  <luangruo@yahoo.com>

	Fix EmacsDrawLine again

	* java/org/gnu/emacs/EmacsDrawLine.java (perform): Symmetrically
	adjust coordinates to cover the last pixel.  Then, fill the left
	most pixel of the line.

2023-07-08  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix condition-case-unless-debug with :success

	* lisp/subr.el (condition-case-unless-debug): Don't add debug
	condition to :success handler (bug#64404).
	* test/lisp/subr-tests.el (condition-case-unless-debug)
	(condition-case-unless-debug-success): New tests.

2023-07-08  Spencer Baugh  <sbaugh@janestreet.com>

	Mention minibuffer-next-completion in completion-help

	Now that it's not necessary to switch to the *Completions* buffer to
	switch between and choose completions, we should make that clear in
	the help text.  Let's also make the bindings uniform both in and
	outside the *Completions* buffer so users don't have to think about
	the difference.

	In working with new users, they've assumed that since the help text in
	*Completions* says "Click on a completion to select it", that that's
	the only way to select a completion.  This text should help clarify
	that.

	* doc/emacs/mini.texi (Completion Commands): Document new bindings.
	* lisp/simple.el (completion-list-mode-map): Bind
	minibuffer-{next,previous,choose}-completion.
	(completion-setup-function): Mention bindings for
	minibuffer-{next,previous,choose}-completion. (Bug#64425)

2023-07-08  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	600b90ed568 Mark failing icalendar test as unstable (bug#56241)
	f8a918c9778 ; * src/coding.c (Fcoding_system_put): Improve doc string.
	40f84e906f6 ; * doc/lispref/keymaps.texi (Key Binding Commands): Fix ...
	502a7800319 ; Improve documentation of 'vertical-motion' in ELisp manual
	0d90873fa41 ; * src/indent.c (Fvertical_motion): Doc fix.
	9b38773a20b ; * lisp/dired.el (dired-no-confirm): Doc fix.  (Bug#64493)
	a30ebe7a556 ; Improve documentation of key-binding commands
	c3fefb2b3ae Improve natnump shortdoc
	244d4c837ab correct info documentation of benchmark-call
	67def1f5502 * lisp/progmodes/grep.el (rgrep): Fix docstring.
	8da2091362d ; Fix documentation of minibuffer-completion commands
	aa030698cef ; Fix typos in documented names of keymap-* functions
	a9b46bb25df Include a help-echo for flymake's modeline counters
	37ed3d15f38 Avoid errors in completion due to 'completion-regexp-list'
	15ff8761777 ; * lisp/register.el (register-val-describe): Doc fix.
	fe7b909c16c ; Fix two typos in recent changes in the manual
	7a74b8c3277 C Mode: Don't fontify foo globally as type due to "struct...
	823bf6bdb1a * lisp/rect.el (rectangle--duplicate-right): Fix rectangl...
	e339d0080d3 ; * test/lisp/misc-tests.el (ert): require misc to avoid ...

	# Conflicts:
	#	lisp/rect.el

2023-07-08  Martin Rudalics  <rudalics@gmx.at>

	Fix 'toggle-side-windows' with 3 or more side windows

	* lisp/window.el (window--state-put-1): Consider
	'window-combined-p' when determining 'window-combination-limit'.
	(window-state-put): Bind 'window-combination-limit' and
	'window-combination-resize' to nil.  (Bug#64405)

2023-07-08  Eli Zaretskii  <eliz@gnu.org>

	* etc/NEWS: Document changes to coding-system mnemonics.

2023-07-08  Ulrich Müller  <ulm@gentoo.org>

	Disambiguate mode line indication for utf-8 and utf-16

	* lisp/international/mule-conf.el (utf-7):
	* lisp/language/cyrillic.el (koi8-u): Change mnemonic letters to
	?u and ?\N{cyrillic capital letter u}, respectively.

2023-07-08  Vladimir Sedach  <vas@oneofus.la>

	Fix 'shell-dirtrack-mode' showing as enabled in unrelated buffers

	* lisp/shell.el (shell-dirtrack-mode): Reverse the alias.
	(shell-dirtrack-mode): Move before first use of the variable.  Add
	:interactive keyword.
	(shell-directory-tracker, shell-cd): Use 'shell-dirtrack-mode'
	instead of 'shell-dirtrackp'.  (Bug#64311)

2023-07-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	Avoid aborts when trying to 'read' sub-char-tables

	* src/data.c (Ftype_of): Support 'sub-char-table'.  (Bug#64450)
	* src/lisp.h: Fix commentary of char-table.

2023-07-08  Jim Porter  <jporterbugs@gmail.com>

	Document some missing Eshell commands

	* doc/misc/eshell.texi (Built-ins): Document 'eshell-debug'.
	(Extra built-in commands): Document 'count', 'ff', and 'gf'.

2023-07-08  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsService.java (DEBUG_IC)
	(DEBUG_THREADS): Improve commentary.
	* src/androidterm.c (handle_one_android_event): Signal
	completion of IME events that have lost their frames.
	(requestCursorUpdates): Don't set an edit counter as this event
	won't be passed to the text conversion machinery.

2023-07-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Fix bug#64232

2023-07-07  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Fix tab-bar-tab-name-current for active minibuffer.

	(tab-bar-tab-name-current): Use get-mru-window in the active minibuffer
	when minibuffer-selected-window is nil after switching to another tab.
	(tab-bar-tab-name-current-with-count)
	(tab-bar-tab-name-truncated): Use tab-bar-tab-name-current.

2023-07-07  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Improve tab-bar-minibuffer-restore-tab (bug#64373).

	(tab-bar-select-tab): Set tab-bar-minibuffer-restore-tab and
	minibuffer-exit-hook minibuffer-locally to handle recursive minibuffers
	for non-nil read-minibuffer-restore-windows.
	(tab-bar-minibuffer-restore-tab): No need to reset minibuffer-local values.

2023-07-07  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsSurfaceView.java (copyToFrontBuffer):
	Use fallback bit blit function on Android 7.0 as well, as
	crashes have been observed in drawBitmap.

2023-07-07  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/tool-bar.el (modifier-bar-modifier-list): New variable.
	(modifier-bar-button): New function.
	(tool-bar-event-apply-alt-modifier)
	(tool-bar-event-apply-super-modifier)
	(tool-bar-event-apply-hyper-modifier)
	(tool-bar-event-apply-shift-modifier)
	(tool-bar-event-apply-control-modifier)
	(tool-bar-event-apply-meta-modifier): Factor out modifier bar
	logic to that function, and redisplay the tool bar where
	necessary.
	(modifier-bar-available-p): New function.
	(modifier-bar-mode): Disable tool bar items corresponding to
	modifier keys that've already been pressed.

	* etc/images/shift.pbm: Regenerate from correct font.

2023-07-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-06  Eli Zaretskii  <eliz@gnu.org>

	Revert "Use 'emacs-lisp-compilation-mode' in native compilation buffers"

	This reverts commit 40492581f96626e405e4b453456b8c9b83822c97.
	It caused a recursive-load error when native-compiling files.
	(Bug#64391)

2023-07-06  Eli Zaretskii  <eliz@gnu.org>

	Use 'emacs-lisp-compilation-mode' in native compilation buffers

	* lisp/emacs-lisp/comp.el (comp-log-to-buffer)
	(comp-run-async-workers): Use 'emacs-lisp-compilation-mode' in the
	buffers where we log the results of native compilation.  Suggested
	by No Wayman <iarchivedmywholelife@gmail.com>.  (Bug#64452)

2023-07-06  Spencer Baugh  <sbaugh@catern.com>

	Allow floating the ediff control frame under X

	This is a step in the direction of making ediff behave better by
	default under tiling window managers and fixing Bug#62164.

	* lisp/vc/ediff-wind.el (ediff-floating-control-frame): Add
	defcustom.
	(ediff-frame-make-utility, ediff-setup-control-frame): Allow setting
	the control frame up as a utility window under X.  (Bug#62164)

2023-07-06  Hugo Heagren  <hugo@heagren.com>

	Support right-align in mode-line

	* lisp/bindings.el (mode-line-right-align-edge):  New custom
	variable, controls where `mode-line-format-right-align' should
	align to.
	(mode-line-format-right-align):  New function.  If the symbol
	`mode-line-format-right-align' appears in `mode-line-format',
	then return return a padding string which aligns everything
	after that symbol to the right.  Padding width is altered with
	the display property and depends on the value of
	`mode-line-right-align-edge'.
	(mode-line-format-right-align):  New variable.  Convenience
	definition for including right alignment in `mode-line-format'.
	* doc/lispref/modes.texi (Mode Line Variables):  Document new
	alignment functionality and user option.  (Bug#62606)

2023-07-06  Matthias Meulien  <orontee@gmail.com>

	Improve Python imports management commands

	* lisp/progmodes/python.el (python--list-imports): Handle import
	errors.
	(python--do-isort): Specialize error message.  (Bug#64406)

2023-07-06  Wang Diancheng  <dianchengwang@gmail.com>  (tiny change)

	Fix target-async and background execution in gdb-mi.el

	* lisp/progmodes/gdb-mi.el (gdb-target-async-checked): New
	variable.
	(gdb-non-stop-setting): Change the value back to default to
	non-nil on systems other than MS-Windows.
	(gdb-non-stop-handler): Try to set mi-async first, falling back to
	target-async by calling 'gdb-set-mi-async-handler'.
	(gdb-set-mi-async-handler, gdb-try-check-target-async-support):
	New functions.
	(gdb-check-target-async): Set 'gdb-non-stop' here...
	(gdb-starting): ...and here.
	(gdb-stopped): Call 'gdb-try-check-target-async-support' when the
	program stops for the first time.  (Bug#64186)  (Bug#63084)

2023-07-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsNative.java (scaledDensity): Announce
	new argument `scaledDensity'.
	* java/org/gnu/emacs/EmacsNoninteractive.java (main): Specify
	new argument.
	* java/org/gnu/emacs/EmacsService.java (onCreate): Compute an
	adjusted DPI for the font size based on the ratio between
	density and scaledDensity.
	(run): Specify that adjusted density.
	* src/android.c (setEmacsParams): Set
	`android_scaled_pixel_density'.
	* src/android.h: (android_scaled_pixel_density: New variable.
	* src/androidterm.c (android_term_init): Set `font_resolution'.
	* src/androidterm.h (struct android_display_info): New field.
	* src/font.c (font_pixel_size, font_find_for_lface)
	(font_open_for_lface, Ffont_face_attributes, Fopen_font): Use
	FRAME_RES instead of FRAME_RES_Y.
	* src/frame.h (FRAME_RES): New macro.  Use this to convert
	between font point and pixel sizes as opposed to FRAME_RES_Y.
	* src/w32font.c (fill_in_logfont):
	* src/xfaces.c (Fx_family_fonts, set_lface_from_font): Use
	FRAME_RES instead of FRAME_RES_Y.  (bug#64444)

2023-07-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-05  Mattias Engdegård  <mattiase@acm.org>

	Improve some big regexps

	* lisp/language/lao-util.el (lao-transcription-pattern):
	Remove duplicate definition.
	* lisp/language/tibetan.el (tibetan-regexp, tibetan-precomposed-regexp)
	(tibetan-precomposition-rule-regexp): Use regexp-opt.

2023-07-05  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Restore the original tab where minibuffer was activated.

	(tab-bar-minibuffer-restore-tab): New variable and function.
	(tab-bar-select-tab): Use them (bug#64373).

2023-07-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/syntax.el (syntax-propertize-rules): Fix bug#64459

2023-07-05  Michael Albinus  <michael.albinus@gmx.de>

	Adapt information about Tramp's temporary directory

	* doc/misc/tramp.texi (Overview): Use scp in the example.
	(FUSE-based methods): Move information about mount point to node
	"FUSE setup".
	(Overview, Predefined connection information, FUSE setup)
	(Traces and Profiles): Refer to node "Temporary directory".
	(Frequently Asked Questions): Move information about temporary
	directory to node "Temporary directory".
	(Temporary directory): New node.
	(Top, Files directories and localnames): Add it to @menu.

2023-07-05  Po Lu  <luangruo@yahoo.com>

	Fix bug#64445

	* doc/emacs/android.texi (Android Environment): Document that
	Emacs also receives READ_EXTERNAL_STORAGE by default on old
	versions of Android.
	* java/AndroidManifest.xml.in: Request READ_EXTERNAL_STORAGE.
	(bug#64445)

2023-07-05  Michael Albinus  <michael.albinus@gmx.de>

	* test/lisp/net/tramp-tests.el (tramp-test49-unload): Extend test.

2023-07-05  Michael Albinus  <michael.albinus@gmx.de>

	`remote-file-name-access-timeout' being 0 is equal to nil

	* doc/lispref/files.texi (Testing Accessibility): Clarify the
	value of remote-file-name-access-timeout.

	* etc/NEWS: Clarify the value of remote-file-name-access-timeout.

	* lisp/files.el (remote-file-name-access-timeout): Adapt docstring.

	* lisp/net//tramp.el (with-tramp-timeout): Ensure, that the
	timeout is a positive number, or nil.
	(tramp-handle-access-file): Simplify code.

2023-07-05  Po Lu  <luangruo@yahoo.com>

	Fix crash between Android 4.0 and Android 5.1

	* java/org/gnu/emacs/EmacsService.java (detectMouse): Don't use
	function that is not present on Android 4.0.

2023-07-05  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/commands.texi (Misc Events): Correctly index
	`set-text-conversion-style'.
	* lisp/tool-bar.el (tool-bar-event-apply-alt-modifier)
	(tool-bar-event-apply-super-modifier)
	(tool-bar-event-apply-hyper-modifier)
	(tool-bar-event-apply-shift-modifier)
	(tool-bar-event-apply-control-modifier)
	(tool-bar-event-apply-meta-modifier): Pass t when restoring text
	conversion style.
	* src/keyboard.c (restore_reading_key_sequence): New function.
	(read_key_sequence): Set `reading_key_sequence' where necessary.
	* src/keyboard.h: Declare variable.
	* src/textconv.c (check_postponed_buffers): New function.
	(Fset_text_conversion_style): New argument.  If set, and a key
	sequence is being read, postpone resetting the IME until the key
	sequence is read.
	(syms_of_textconv): Clear new variable and add staticpro.
	* src/textconv.h: Update prototypes.

2023-07-05  Andrew G Cohen  <cohen@andy.bu.edu>

	Fix parsing of mail address headers (bug#64296)

	RFC5322 specifies that an address header may be a list of both
	individual mailboxes and mailbox groups.  This patch introduces
	support for parsing headers that include groups.

	* lisp/mail/ietf-drums.el (ietf-drums-parse-addresses): Allow message
	address headers to include both mailboxes and groups.

2023-07-05  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-04  Eliza Velasquez  <eliza@eliza.sh>

	Fix `async-shell-command-display-buffer' display

	* lisp/simple.el (shell-command): If `async-shell-command-display-buffer'
	was nil, it did not respect `display-buffer-alist' entries with
	`display-buffer-no-window'.  This behavior has been fixed (bug#64394).

2023-07-04  Robert Pluim  <rpluim@gmail.com>

	Grammar fixes in 'remote-file-name-access-timeout' descriptions

	* doc/emacs/files.texi (File Conveniences): Grammar fix.
	* doc/emacs/misc.texi (Saving Emacs Sessions): Grammar fix.

2023-07-04  Robert Pluim  <rpluim@gmail.com>

	Improve remote-file-name-access-timeout NEWS entries

	* etc/NEWS: Improve recentf and desktop mode entries.

2023-07-04  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'remote-file-name-access-timeout'

	* lisp/desktop.el (desktop-files-not-to-save): Mention
	'remote-file-name-access-timeout' in the doc string.  (Bug#64401)

2023-07-04  Alan Mackenzie  <acm@muc.de>

	objc-mode: Handle (de)propertization of < and >.

	* lisp/progmodes/cc-langs.el
	(c-get-state-before-change-functions)
	(c-before-font-lock-functions): Separate the C and objc
	versions, and add (to the first) c-unmark-<>-around-region and
	c-before-change-check-<>-operators, (to the second)
	c-unmark-<>-around-region and c-restore-<>-properties into the
	objc versions of these lang variables.

2023-07-04  Michael Albinus  <michael.albinus@gmx.de>

	Apply remote-file-name-access-timeout in desktop.el and recentf.el

	* doc/emacs/files.texi (File Conveniences):
	* doc/emacs/misc.texi (Saving Emacs Sessions):
	Mention remote-file-name-access-timeout.

	* doc/misc/tramp.texi (Frequently Asked Questions): Add note.

	* etc/NEWS: Explain use of 'remote-file-name-access-timeout' in
	desktop.el and recentf.el.

	* lisp/desktop.el (desktop-access-file): New defun.
	(desktop-restore-file-buffer): Use it.

	* lisp/recentf.el (recentf-access-file): New defun.
	(recentf-keep-default-predicate): Use it.

	* lisp/net/tramp.el (tramp-handle-access-file): Improve error handling.

2023-07-04  Alan Mackenzie  <acm@muc.de>

	objc-mode: Fix exceptions in fontification.

	These exceptions ("Invalid search bound (wrong side of point)")
	were observed in test suite file class-24.m when moving point
	up and down a line at a time.

	* lisp/progmodes/cc-engine.el (c-forward-declarator): In the
	c-syntactic-re-search-forward ~30 lines from the end of the
	function amend the regexp for objc-mode such that "@end"
	terminates the search, but "<" doesn't.

	* lisp/progmodes/cc-fonts.el
	(c-make-font-lock-search-function): supply a non-nil
	CHECK-POINT argument to c-make-font-lock-search-form.

2023-07-04  Po Lu  <luangruo@yahoo.com>

	Implement a tool bar containing modifier keys

	* doc/emacs/frames.texi (Tool Bars): Describe modifier bars.
	* doc/lispref/keymaps.texi (Extended Menu Items, Tool Bar):
	Document changes to tool bar menu item handling and secondary
	tool bars.
	* etc/NEWS: Announce changes.
	* lisp/simple.el (event-apply-modifier): Correctly apply Ctrl
	and Shift modifiers to lower case ASCII key events that already
	have other modifiers applied.
	* lisp/tool-bar.el (tool-bar--cache-key)
	(tool-bar--secondary-cache-key): New defsubsts.
	(tool-bar--flush-cache): Flush secondary tool bar cache.
	(tool-bar-make-keymap): Include secondary tool bar if necessary.
	(tool-bar-make-keymap-1): New arg MAP.  Generate a keymap for
	that map if specified, else default to tool-bar-map.
	(set-text-conversion-style, tool-bar-apply-modifiers)
	(overriding-text-conversion-style)
	(tool-bar-event-apply-alt-modifier)
	(tool-bar-event-apply-super-modifier)
	(tool-bar-event-apply-hyper-modifier)
	(tool-bar-event-apply-shift-modifier)
	(tool-bar-event-apply-control-modifier)
	(tool-bar-event-apply-meta-modifier, modifier-bar-mode): New
	functions.
	* src/dispextern.h (enum tool_bar_item_idx): Add
	TOOL_BAR_ITEM_WRAP.
	* src/frame.c (make_frame): Clear new field `tool_bar_wraps_p'.
	* src/frame.h (struct frame): New field `tool_bar_wraps_p'.
	* src/keyboard.c (parse_tool_bar_item): Handle QCwrap properties
	in tool bar menu items.
	(syms_of_keyboard): New defsym QCwrap.
	* src/xdisp.c (build_desired_tool_bar_string): Clear
	f->tool_bar_wraps_p and set it appropriately.  Insert new line
	characters in the tool bar string upon encountering a wrap
	character.
	(display_tool_bar_line): Stop at EOB, not line end.  Reseat on
	the next line upon encountering EOL characters.
	(redisplay_tool_bar): Allow rows to be different heights if
	explicit new lines are present upon the tool bar string.

2023-07-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-03  Harald Jörg  <haj@posteo.de>

	cperl-mode: Announce the news in etc/NEWS

	* etc/NEWS: add to the entry "CPerl mode".

2023-07-03  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Add support for new Perl syntax in Perl 5.36 and 5.38

	Perl 5.38 was released on 2023-07-03.  This patch supports the new features
	for 5.36 and 5.38 for font-lock, indentation, and imenu index creation.

	* lisp/progmodes/cperl-mode.el (cperl-praise): Mention classes.
	(defconst): Fix typo in docstring of cperl--single-attribute-rx.
	Add "class" to cperl--package-rx, and adjust its docstring.
	New rx sequence cperl--class-for-imenu-rx to capture classes,
	use this in cperl--imenu-entries-rx.
	Add "method" to cperl--sub-name-for-imenu-rx.
	Add "class" to cperl--block-declaration-rx.
	(cperl-sub-keywords): Add "method".
	(cperl-mode): Add "ADJUST" to defun-prompt-regexp.
	(cperl-after-block-p): Add new keywords for Perl 5.36 and 5.38.
	(cperl-indent-exp): Add "field" to expression starters.
	(cperl-imenu--create-perl-index): Rename variables referring to
	"package", because they also contain classes.
	(cperl-init-faces): Add new keywords for Perl 5.36 and 5.38.
	(cperl-find-tags): Add support for "class".
	(cperl-short-docs): Add new keywords for Perl 5.36 and 5.38.
	(cperl-indent-exp): Add new keywords for Perl 5.36 and 5.38.

	* test/lisp/progmodes/cperl-mode-tests.el
	(cperl-test-fontify-class): New test for fontification of class
	elements.
	(cperl-test-imenu-index): Add tests for (nested) class
	definitions.

	* test/lisp/progmodes/cperl-mode-resources/cperl-indents.erts:
	Add test cases for try/catch/finally, defer, class, method

	* test/lisp/progmodes/cperl-mode-resources/perl-class.pl: New
	resource for fontification tests of class elements.

	* test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add some
	classes to the test resource.

2023-07-03  Michael Albinus  <michael.albinus@gmx.de>

	Add user option remote-file-name-access-timeout

	* doc/lispref/files.texi (Testing Accessibility):
	Add user option remote-file-name-access-timeout.

	* doc/misc/tramp.texi (Frequently Asked Questions):
	Explain remote-file-name-access-timeout.

	* etc/NEWS: Mention 'remote-file-name-access-timeout'.

	* lisp/files.el (remote-file-name-access-timeout): New defcustom.
	(remote-file-name-inhibit-auto-save-visited)
	(remote-file-name-inhibit-locks, remote-file-name-inhibit-cache)
	(remote-file-name-inhibit-delete-by-moving-to-trash):
	* lisp/simple.el (remote-file-name-inhibit-auto-save): Add group `tramp'.

	* lisp/net/tramp.el (with-tramp-timeout, with-tramp-suspended-timers):
	New defmacros.
	(tramp-dont-suspend-timers): New defvar.
	(tramp-handle-access-file): Implement handling of
	`remote-file-name-access-timeout'.  (Bug#64401)
	(tramp-action-show-and-confirm-message, tramp-process-actions)
	(with-tramp-locked-connection, tramp-wait-for-regexp)
	(tramp-read-passwd, tramp-read-passwd-without-cache): Use the macros.

	* test/lisp/net/tramp-tests.el (remote-file-name-access-timeout):
	Declare.
	(tramp-test18-file-attributes): Extend test.

2023-07-03  Eli Zaretskii  <eliz@gnu.org>

	Remove files in the nt/ directory that are unused for a long time

	* nt/configure.bat:
	* nt/ftime-nostartup.bat:
	* nt/ftime.bat:
	* nt/preprep.c: Remove old unused files.

2023-07-03  F. Jason Park  <jp@neverwas.me>

	Revert "Account for leading timestamps in erc-match"

	This reverts commit 99d74dcd45938e2686d93eb5649800e14a88cd84 but keeps
	the test file test/lisp/erc/erc-scenarios-match.el.  It also
	implements a partial alternative solution by undoing the reordering of
	insert hooks owned by the `stamp' and `match' modules.  The initial
	reordering stems from d880a08f "Cement ordering of essential hook
	members in ERC" and was intended to address the problem of timestamps
	not being hidden in matched "fool" messages.  However, a more
	comprehensive solution is being pursued as part of bug#64301.  The
	following changes differ from those in a pure revert.

	* etc/ERC-NEWS: Fix erroneous claim about relative hook ordering
	pre-5.6.
	* lisp/erc/erc-match.el (erc-match-mode, erc-match-enable): Lower hook
	depth of `erc-match-message' in `erc-insert-modify-hook' from 60 to
	50.
	(erc-text-matched-hook): Retain cleaned-up portion of revised doc
	string instead of reverting completely.
	* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-enable): Raise
	depth of `erc-add-timestamp' in `erc-insert-modify-hook' and
	`erc-send-modify-hook' from 50 to 60.
	* test/lisp/erc/erc-scenarios-match.el
	(erc-scenarios-match--stamp-left-current-nick
	erc-scenarios-match--stamp-left-fools-invisible): Temporarily disable
	the latter and fix expected hook ordering.
	* test/lisp/erc/erc-tests.el (erc--essential-hook-ordering): Fix
	expected order of default insert hooks.  (Bug#60936)

2023-07-03  Stephen Berman  <stephen.berman@gmx.net>

	Fix and improve setting priority of todo-mode items (bug#64433)

	* lisp/calendar/todo-mode.el (todo-set-item-priority): Bugfixes:
	Prevent interactively setting item priority to its current
	priority in the same category and prompt user for a different
	priority (but allow using the same priority when item is moved to
	another category).  Ensure that the priority passed as a prefix
	argument is suitable: if it is not an integer between 1 and the
	highest item number, signal a user error.  New feature: Use the
	sequence of numbers of the category's items as the minibuffer
	history.

	* doc/misc/todo-mode.texi (Inserting New Items):
	(Reprioritizing Items): Document using the minibuffer history.

	* test/lisp/calendar/todo-mode-tests.el
	(todo-test-item-insertion-with-priority-1)
	(todo-test-item-insertion-with-priority-2)
	(todo-test-item-insertion-with-priority-3): New tests.

2023-07-03  Mattias Engdegård  <mattiase@acm.org>

	* etc/NEWS: Announce addition of `duplicate-region-final-position`.

2023-07-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-03  Po Lu  <luangruo@yahoo.com>

	Fix leak when quit arrives during incremental selection transfer

	* src/xselect.c (x_free_selection_data): New function.
	(x_get_window_property_as_lisp_data): Free `data' reliably
	if receive_incremental_selection quits.

2023-07-03  Po Lu  <luangruo@yahoo.com>

	Provide move-toolbar in a more appropriate place

	* src/frame.c (syms_of_frame): Provide `move-toolbar' here...
	* src/keyboard.c (syms_of_keyboard): ..instead of here.

2023-07-03  Po Lu  <luangruo@yahoo.com>

	Always provide `move-toolbar' when its position can be changed

	* src/keyboard.c (syms_of_keyboard): Make `move-toolbar' a
	defsym.  Provide that feature if Emacs uses its internal tool
	bars or GTK+.
	* src/xfns.c (syms_of_xfns): Stop provide `move-toolbar' here.

2023-07-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-03  Andreas Schwab  <schwab@suse.de>

	sh-script: improve fontification of RPM spec files

	Fontifiy only macros at line beginning as keywords, otherwise as
	variables.  Add more accurate match for macros.

	* lisp/progmodes/sh-script.el (sh-font-lock-keywords-var): Add
	more accurate patterns for rpm macros.  Also fontify parenthesized
	word after keyword.

2023-07-02  Mark A. Hershberger  <mah@nichework.com>

	Fix a minor typo

	* lisp/xml.el: Correct a minor typo found by flandrew.

2023-07-02  João Távora  <joaotavora@gmail.com>

	Eglot: another tweak to eglot--sig-info

	Going to the start of the first param and skipping non-word syntax
	backward would seem to be the right thing to do, for traditional
	C-style languages and also languages like Ocaml where function
	signatures don't start the param list with '('.

	See also https://github.com/joaotavora/eglot/discussions/1251.

	* lisp/progmodes/eglot.el (eglot--sig-info): Rework again.

2023-07-02  Mattias Engdegård  <mattiase@acm.org>

	Warn about misplaced :success in condition-case (bug#64404)

	* lisp/emacs-lisp/bytecomp.el (byte-compile-condition-case):
	Warn if :success is part of a list of conditions (it must come alone).

2023-07-02  Stephen Berman  <stephen.berman@gmx.net>

	Fix todo-mode commands to move items and categories (bug#64298)

	* lisp/calendar/todo-mode.el (todo-move-category): Restore display
	of selected category in source file, so internal file structure is
	not visible if user is prompted to choose a new category name in
	target file, and widen again to delete moved category from source
	file.
	(todo-move-item): Don't use todo-forward-item when moving done
	items, to avoid mislocation if done items sections of the the
	target category was empty before moving.
	(todo-forward-item): Remove commented out code meant to have the
	effect of the above change in todo-move-item, but it did not work.

2023-07-02  Eli Zaretskii  <eliz@gnu.org>

	Fix display of wide characters on TTY frame's mode line

	* src/xdisp.c (pad_mode_line): New function.
	(display_string): Use it instead of 'produce_special_glyphs' to
	replace a character that's too wide to fit on the mode/header/tab
	line, but which occupies some columns that do fit.  (Bug#64395)

2023-07-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-01  João Távora  <joaotavora@gmail.com>

	Eglot: fix broken indentation of eglot--sig-info

	* lisp/progmodes/eglot.el (eglot--sig-info): Fix.

2023-07-01  João Távora  <joaotavora@gmail.com>

	Eglot: bail out of eglot-imenu if no server capability (bug#64274)

	* lisp/progmodes/eglot.el (eglot-imenu): Bail out if no
	capability.

2023-07-01  João Távora  <joaotavora@gmail.com>

	Eglot: improve heuristic to highlight function names in signatures

	* lisp/progmodes/eglot.el (eglot--sig-info): Rework.

	See https://github.com/joaotavora/eglot/discussions/1251.

2023-07-01  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Support Perl 5.38 syntax for subroutine signatures

	* lisp/progmodes/cperl-mode.el (defconst): New rx sequence
	describing a signature with initialization.
	(cperl-init-faces): integrate the new rx sequence into the
	font-lock-defaults init routine (Bug#64190) (Bug#64364).

	* test/lisp/progmodes/cperl-mode-resources/cperl-bug-64364.pl: Add
	test data for a signature with initialization (tests indentation).

	* test/lisp/progmodes/cperl-mode-resources/proto-and-attrs.pl: Add
	test data for a signature with initialization (tests fontification).

2023-07-01  Jim Porter  <jporterbugs@gmail.com>

	Document optional Eshell modules

	* lisp/eshell/em-rebind.el (eshell-rebind): Correct/reword docstring.

	* doc/misc/eshell.texi (Built-ins): Move disabled-by-default commands
	to...
	(Tramp extensions, Extra built-in commands): ...here
	(Optional modules, Key rebinding, Smart scrolling): Add documentation.
	(Bug and ideas): Documentation is no longer incomplete!

2023-07-01  Jim Porter  <jporterbugs@gmail.com>

	Correct the Eshell documentation about how to write new modules

	* doc/misc/eshell.texi (Writing a module): Fix the documentation.
	'eshell-defgroup' doesn't exist anymore.

2023-07-01  Jim Porter  <jporterbugs@gmail.com>

	Restructure Eshell extension modules documentation

	This adds a section for documenting all the optional modules.

	* doc/misc/eshell.texi (Extension modules): Move explanation about
	writing modules to...
	(Writing a module): ... here.
	(Module testing): Remove.  Testing an Eshell module doesn't require
	any special documentation.
	(Key binding, Smart scrolling, Electric forward slash): Move under...
	(Optional modules): ... here.
	(Directory handling, Terminal emulation): Remove.  These modules are
	enabled by default, and so are documented above.
	(Tramp extensions, Extra built-in commands): New sections.

2023-07-01  F. Jason Park  <jp@neverwas.me>

	Redo erc-nickname-in-use-functions as a local module

	* etc/ERC-NEWS: Mention new module `services-regain'.
	* lisp/erc/erc-backend.el: Rename option.
	* lisp/erc/erc-services.el (erc-services-regain-alist): Strategies for
	regaining a lost nickname on reconnect.  This option, in addition to
	the rest of these changes, is a redo of
	`erc-nickname-in-use-functions' from commit 8c0c9826 "Add hook to
	regain nickname in ERC", which originally stemmed from bug#62044.
	(erc-services-retry-nick-on-connect, erc-services-issue-regain,
	erc-services-issue-ghost-and-retry-nick): New function variants for
	`erc-services-regain-alist.
	(erc-services-regain-mode, erc-services-regain-enable,
	erc-services-regain-disable): New local module to activate
	nick-regaining behavior.
	(erc--nickname-in-use-make-request): New method, a services-specific
	implementation.
	* lisp/erc/erc.el (erc--nickname-in-use-make-request): New generic
	function to request alternate nick when first choice is rejected.
	(erc-nickname-in-use): Call `erc--nickname-in-use-make-request' to
	request alternate nick.
	* test/lisp/erc/erc-scenarios-services-misc.el
	(erc-scenarios-services-misc--reconnect-retry-nick): Adopt renamed
	version of `erc-scenarios-base-renick-auto-regain'.
	(erc-scenarios-services-misc--regain-command,
	erc-scenarios-services-misc--ghost-and-retry-nick): New tests.
	* test/lisp/erc/resources/services/regain/reconnect-retry-again.eld:
	New test data file reusing existing blob c0529052 that once lived at
	resources/base/renick/regain/normal-again.eld.
	* test/lisp/erc/resources/services/regain/reconnect-retry.eld: New
	test data file reusing existing blob 9f4df70e5 that once lived at
	resources/base/renick/regain/normal.eld.
	* test/lisp/erc/resources/services/regain/taken-ghost.eld: New test
	data file.
	* test/lisp/erc/resources/services/regain/taken-regain.eld New test
	data file.

2023-07-01  F. Jason Park  <jp@neverwas.me>

	Account for leading timestamps in erc-match

	* lisp/erc/erc-match.el (erc-text-matched-hook): Mention that stamps
	may be present in the narrowed buffer but absent from the message
	parameter.
	(erc-match--message): New function containing what was the body of
	`erc-match-message' as if the latter were simply renamed.
	(erc-match-message): Move body to `erc-match--message' and call it
	with more aggressive narrowing.  This fixes a regression stemming from
	d880a08f "Cement ordering of essential hook members in ERC".  Special
	thanks to Libera.Chat user jrm for reporting this bug.  (Bug#60936)
	* test/lisp/erc/erc-scenarios-match.el: New test file.

2023-07-01  Harald Jörg  <haj@posteo.de>

	cperl-mode: Fix byte-compilation warnings

	* lisp/progmodes/cperl-mode.el (defconst): Reformat docstring to
	fit into 80 columns.
	(cperl-find-sub-attrs): Mark lexical parameters as unused.

	* test/lisp/progmodes/cperl-mode-tests.el
	(cperl-test-fontify-attrs-and-signatures): Fix use of
	`match-beginning'
	(perl-indent-parens-as-block): Define as a variable.

2023-07-01  Mattias Engdegård  <mattiase@acm.org>

	Add duplicate-region-final-position (bug#64185)

	* lisp/misc.el (duplicate-region-final-position): New defcustom.
	(duplicate-dwim): Use it.
	* lisp/rect.el (rectangle--duplicate-right): Add displacement
	argument.
	* test/lisp/misc-tests.el (misc--duplicate-dwim): Extend test.

2023-07-01  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	edd36786e1e ; * lisp/bookmark.el (bookmark-bmenu-locate): Doc fix (bu...
	16eac20a5db ; Fix last change
	ab8d0f7b768 Add project command entries to the menu-bar
	fc6099bf046 ; Improve documentation of text-property-search-* functions
	cc660bd2651 ; * etc/PROBLEMS: Mention MinGW problems with -D_FORTIFY_...
	a5bd9fb8c4a ; Improve doc strings in register.el
	0be18d80978 ; Fix @xref in last change to doc/emacs/regs.texi.
	624c779517d ; Fix tree-sitter C binding typos in Elisp manual.
	16e9bdff4f4 Improve documentation of registers

2023-07-01  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	a722e7dd152 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	65f146cf1c2 ; * lisp/calculator.el (calculator-need-3-lines): Fix las...
	9e8386bdacc Support cons cell as value of ':line-width' box attribute
	1d2ba6b363b ; * admin/notes/tree-sitter/treesit_record_change: Update.
	02b6be892fa Add missing calls to treesit_record_change in editfns.c
	e982192e933 Call treesit_record_change in subst-char-in-region (bug#6...
	ddbb11f5657 ; * lisp/misc.el (duplicate-line-final-position): Fix las...
	cecbe92d5d9 ; * lisp/misc.el (duplicate-line-final-position): doc pre...
	042f0d6a14c ; Fix documentation of ':box' face attribute

	# Conflicts:
	#	etc/NEWS

2023-07-01  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	ef16339918e Make js-beginning-of-defun return non-nil on success
	2c90ade09a4 Tree-sitter use with-silent-modifications like jit-lock (...
	11cead0d73c Fix todo-mode.el Commentary and a doc string (bug#64298)
	6ae83322d4c Prevent truncation of todo-mode categories sexp
	ee41f07be52 Avoid making todo-mode buffers manually editable
	53332bdf625 ; * doc/lispref/variables.texi: Fix define-obsolete-varia...
	162c9c058eb ; Document that 'named-let' needs lexical-binding
	68028f0fa31 ; * etc/PROBLEMS: Fix typo.

2023-07-01  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	4df510c7a70 Fix VC package build when doc file isn't in a subdir
	382f5fa8130 ; * doc/emacs/package.texi (Fetching Package Sources): Fi...
	fc7e7c3fde3 Fix type check in tramp-get-buffer-string
	2aa57fe6cf9 ; Fix typo in maintaining.texi (bug#64279)

2023-07-01  Eli Zaretskii  <eliz@gnu.org>

	Fix total count of messages in Rmail summary buffers

	* lisp/mail/rmailsum.el (rmail-new-summary-1): Actually count the
	messages in the summary buffer instead of relying on
	'rmail-total-messages'.  Reported by Andrea Monaco
	<andrea.monaco@autistici.org>.

2023-07-01  Davide Masserut  <dm@mssdvd.com>

	Recognize PKGBUILD as bash style

	* lisp/progmodes/sh-script.el (sh--guess-shell): Handle PKGBUILD.
	(Bug#64251)

2023-07-01  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp for remote WebDAV

	* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
	* lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file):
	Improve stability for WebDAV.

2023-07-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-07-01  Harald Jörg  <haj@posteo.de>

	cperl-mode: Add recent features to etc/NEWS

	I mishandled git and killed my previous commit.  Sorry for the noise.

	* etc/NEWS: Add a section to Changes in Specialized Modes

2023-06-30  Harald Jörg  <haj@posteo.de>

	cperl-mode: Add recent features to etc/NEWS

	* etc/NEWS: Add a section to Changes in Specialized Modes

2023-06-30  Harald Jörg  <haj@posteo.de>

	cperl-mode: Add recent features to etc/NEWS

	* etc/NEWS: Add a section to Changes in Specialized Modes

2023-06-30  Harald Jörg  <haj@posteo.de>

	cperl-mode.el: Support subroutine signatures

	Since Perl 5.20, subroutine signatures were available as an
	experimental feature.  With Perl 5.38, they will be always enabled in
	the new object system.

	* test/lisp/progmodes/cperl-mode-resources/cperl-bug-64190.pl:
	* test/lisp/progmodes/cperl-mode-resources/cperl-bug-64364.pl: New
	test resources.

	* test/lisp/progmodes/cperl-mode-tests.el
	(cperl-test-fontify-attrs-and-signatures): Add tests for
	signatures.
	(cperl-test-attribute-rx, cperl-test-attribute-list-rx)
	(cperl-test-prototype-rx, cperl-test-signature-rx): Tests for the
	new rx sequences.
	(cperl-test-bug-64190): New test for multiline declarations.
	(cperl-test-bug-64364): New test for indentation of declarations.

	* lisp/progmodes/cperl-mode.el:
	(toplevel): New rx sequences to match Perl variables and attributes.
	(cperl-declaration-header-p): New function to identify declarations.
	(cperl-block-declaration-p): Use the new function.
	(cperl-mode): Use the rx sequences.
	(cperl-get-state): Use the new function.
	(cperl-sniff-for-indent): Use the new function.
	(cperl-find-sub-attrs): Improve fontification of subroutine
	prototypes and attributes while typing when jit-lock-mode is
	active.  Detect signatures, and distinguish them from prototypes.
	(cperl-find-pods-heres): Use the rx sequences to detect subroutines.
	(cperl-init-faces): Use the rx sequences for fontification.

2023-06-30  Po Lu  <luangruo@yahoo.com>

	* src/android.c (android_query_tree): Correctly return children.

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-29  Yuan Fu  <casouri@gmail.com>

	Use OUT-DIR in treesit-install-language-grammar (bug#64295)

	* lisp/treesit.el (treesit-install-language-grammar): Use out-dir.

2023-06-29  Andrew G Cohen  <cohen@andy.bu.edu>

	Use a temporary buffer in nnagent-request-set-mark (bug#64117)

	Commit cb12a84f2c519a48dd87453c925e3bc36d9944db inadvertently removed
	the use of a temporary buffer in nnagent-request-set-mark.  Bug and
	fix reported by Jens Schmidt <jschmidt4gnu@vodafonemail.de>

	* lisp/gnus/nnagent.el (nnagent-request-set-mark): Restore the use of
	a temporary buffer that was inadvertently removed.

2023-06-29  Juri Linkov  <juri@linkov.net>

	* lisp/misc.el (duplicate-line-final-position): New defcustom (bug#64185).

	* lisp/misc.el (duplicate-line): Use it.

	* test/lisp/misc-tests.el (misc--duplicate-line): Add tests for
	duplicate-line-final-position.

2023-06-29  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-28  Alan Mackenzie  <acm@muc.de>

	Fontify C, C++, Objective C identifiers containing $

	Optionally, fontify them with font-lock-warning-face.
	This fixes bug#64204.

	* lisp/progmodes/cc-fonts.el (c-font-lock-ids-with-dollar):
	New function.
	(c-simple-decl-matchers, c-complex-decl-matchers): invoke
	c-font-lock-ids-with-dollar for pertinent languages.

	* lisp/progmodes/cc-langs.el (c-symbol-start): Add `$' to the
	character list.
	(c-dollar-in-ids): New lang const.
	(c-symbol-key): For the Pike value, use the AWK value rather
	than the C value as the basis, as the latter is no longer
	suitable.

	* lisp/progmodes/cc-vars.el (c-warn-ids-with-dollar): New
	customizable option.

	* doc/misc/cc-mode.texi ("Miscellaneous Font Locking"): Add a
	section on the new optional fontification of identifiers with
	'font-lock-warning-face'.

2023-06-28  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp's kubernetes integration

	* doc/misc/tramp.texi (Inline methods): Shorten kubernetes entry.
	(Kubernetes setup): New node.
	(Top, Configuration): Add it to the menu.

	* lisp/net/tramp-container.el (tramp-kubernetes--context-namespace):
	Adapt dpcstring.
	(tramp-kubernetes-connection-local-default-profile)
	(tramp-kubernetes-connection-local-default-variables)
	(tramp-flatpak-connection-local-default-profile)
	(tramp-flatpak-connection-local-default-variables): Rename.

	* lisp/net/tramp.el (tramp-expand-args): Use `tramp-compat-take'.

	* test/lisp/net/tramp-tests.el (tramp-test34-connection-local-variables)
	(tramp-test34-explicit-shell-file-name): Don't let-bind
	`connection-local-profile-alist' and `connection-local-criteria-alist'.

2023-06-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el (cl--slet): Fix bug#64315

2023-06-28  Mattias Engdegård  <mattiase@acm.org>

	Speed up duplicate-dwim and duplicate-line by another factor 10

	* lisp/misc.el (duplicate--insert-copies): New.
	(duplicate-line, duplicate-dwim): Call it.

2023-06-28  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs

2023-06-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-macs-tests.el (cl-&key-arguments): Fix regression

	* lisp/emacs-lisp/bytecomp.el (byte-compile-form): Turn "cannot use
	lexical var" errors into warnings.
	Make the obey `with-suppressed-warnings`.

	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments):
	Suppress warnings.

2023-06-27  Alan Mackenzie  <acm@muc.de>

	Amend the handling of c-laomib-cache.

	There was unstable syntactic analysis of lines which were brace
	lists.  This fixes bug#64133.

	* lisp/progmodes/cc-engine.el (c-laomib-cache): Allow several
	entries with the same LIM element corresponding to distinct
	scanning regions.
	(c-laomib-get-cache): Add new parameter START.  Adjust to be
	able to have entries with the same LIM element and handle them
	correctly.
	(c-laomib-put-cache): Amend the handling of cache entries with
	the same LIM element.
	(c-looking-at-or-maybe-in-bracelist): Supply the needed new
	argument to c-laomib-get-cache.  Add in a new call to
	c-laomib-put-cache.

2023-06-27  Mattias Engdegård  <mattiase@acm.org>

	Speed up duplicate-line by a factor of 2

	* lisp/misc.el (duplicate-line): Add the newline to the string to be
	inserted instead of inserting it separately.
	This makes duplicate-line as fast as duplicate-dwim with a contiguous
	region.  Both could easily be made faster yet by making the code more
	complex.

2023-06-27  Michael Albinus  <michael.albinus@gmx.de>

	Fix dired-insert-directory wrt remote directories

	* lisp/dired.el (dired-insert-directory): Respect remote
	directories consequently.

2023-06-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_exception_check)
	(android_exception_check_1)
	(android_exception_check_2)
	(android_exception_check_nonnull)
	(android_exception_check_nonnull_1): Tell the compiler to expect
	that the object is non-NULL, or that no exception has been
	thrown.

2023-06-27  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	startup.el: Don't override init.el custom of `debug-ignored-errors`

	* lisp/startup.el (startup--load-user-init-file): Undo commit 4302bc9b0f12.
	Mimic the code we use for `debug-on-error` instead.

2023-06-26  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp mount-spec

	* lisp/net/tramp-fuse.el (tramp-fuse-mounted-p): The mount-spec
	could contain an optional trailing slash.  (Bug#64278)

	* lisp/net/tramp-rclone.el (tramp-rclone-handle-file-system-info):
	Check return code of command.

2023-06-26  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix parenthesis bug in XEmacs part of macro

	* lisp/progmodes/cc-defs.el (c-looking-at-non-alphnumspace):
	Correct confused parentheses.

2023-06-26  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/calc/calc.el (calc-mode, calc): Make sure the on-screen
	keyboard is not hidden when a Calc buffer is created or a Calc
	Trail window is being created for the first time.
	* lisp/touch-screen.el (touch-screen-window-selection-changed):
	Take touch-screen-display-keyboard in to account.

	* src/sfnt.c (sfnt_decompose_compound_glyph)
	(sfnt_interpret_compound_glyph_1): Reset `defer_offsets' before
	processing each component.
	(sfnt_lerp_half): Avoid undefined shift of negative value.
	(sfnt_compute_tuple_scale): Pacify compiler warning.

2023-06-26  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-26  F. Jason Park  <jp@neverwas.me>

	Avoid "shadows" warning from erc-button--nick slots

	* lisp/erc/erc-button.el (erc-button-nick): Rename slots that share
	names with user options to avoid "lexical argument shadows the dynamic
	variable" warning.
	(erc-button-add-nickname-buttons): Remove "erc-button-" namespace from
	slot accessors.

2023-06-26  F. Jason Park  <jp@neverwas.me>

	Revert "Allow erc-reuse-frames to favor connections"

	This (mostly) reverts commit 0e4c07dc7448aafd2aa5f6e101d7b7aac23d8a6b.

	* etc/ERC-NEWS: Also revert hunk from 52c8d537 "* etc/ERC-NEWS: Add
	section for ERC 5.6." because it announced this feature, which no
	longer exists.
	* lisp/erc/erc.el (erc-reuse-frames): Revise doc string instead of
	reverting completely.  (Bug#62833)

2023-06-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-macs.el: Silence recent new "lexical arg shadows" warnings

	* lisp/emacs-lisp/cl-macs.el (cl--slet): Add `nowarn` arg.
	(cl--defsubst-expand): Use it.
	(cl-defstruct): Silence warnings about lexical shadowing when a slot's
	name happens to be the same as a dynbound var.

2023-06-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	Allow suppressing the "lexical arg shadows dynbound var" warning

	In most cases the right way to fix this warning is by renaming
	the offending argument, but in some cases this is inconvenient, as is
	the case in `cl-defstruct` where arg names are imposed by slot names.

	This patch also happens to fix a few bugs along the way:
	- miscompilation of (lambda (gcs-done) (lambda (x) (+ x gcs-done)))
	- errors about void function `byte-compile-warn-x` if the warning was
	  emitted via `cconv-fv` when bytecomp was not loaded.
	Oh, and it improves the warning by making the location info slightly
	more precise.

	* lisp/emacs-lisp/cconv.el (cconv--analyze-function): Remove this warning.
	* lisp/emacs-lisp/bytecomp.el (byte-compile-check-lambda-list):
	Warn about it here instead.  Let `with-suppressed-warnings` control it
	under `lexical`.

2023-06-25  Alan Mackenzie  <acm@muc.de>

	Correction to patch on 2023-06-21 15:36:56 +0000.

	This corrects an error where commenting out a template closer
	left a subsequent closer without a syntax-table text property.

	* lisp/progmodes/cc-engine.el (c-unmark-<>-around-region):
	Don't scan from the inside of 2-character comment delimiters.
	Replace invalid skip-syntax-forward call with a null string
	argument by an invocation of
	c-search-forward-non-nil-char-property.

2023-06-25  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-25  Richard M. Stallman  <rms@gnu.org>

	Clarify list terminology

	* doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed):
	Mention "cons cell".  Add index entries.
	(car & cdr): Simplify etymology of `car' and `cdr'.
	Explain why for some purposes they are better than `first' and `rest'.
	Mention cons cells.

2023-06-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	(macroexp--unfold-lambda): Obey the lexbind semantics

	While at it, rework the code so as not to rely on an
	intermediate rewriting of (funcall (lambda ..) ...)
	to ((lambda ..) ...) since that forms is deprecated.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-funcall): Unfold lambdas
	instead of turning them into the deprecated ((lambda ..) ..).
	(byte-optimize-form-code-walker): Don't unfold ((lambda ..) ..) any more.
	(byte-compile-inline-expand): Revert to non-optimized call if the unfolding
	can't be optimized.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-form): Don't unfold
	((lambda ..) ..) any more.

	* lisp/emacs-lisp/cl-macs.el (cl--slet): Remove workaround.

	* lisp/emacs-lisp/disass.el (disassemble): Make sure the code is
	compiled with its own `lexical-binding` value.

	* lisp/emacs-lisp/macroexp.el (macroexp--unfold-lambda): Make it work
	both for ((lambda ..) ..) and for (funcall #'(lambda ..) ..).
	Be careful not to move dynbound vars from `lambda` to `let`.
	(macroexp--expand-all): Unfold (funcall #'(lambda ..) ..) instead of
	turning it into ((lambda ..) ..).  Don't unfold ((lambda ..) ..) any more.

2023-06-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el (cl--slet): Unbreak bootstrap

2023-06-24  kobarity  <kobarity@gmail.com>

	Fix Python indentation of continuation lines within parens

	* lisp/progmodes/python.el (python-indent-context): Add a new indent
	context `:inside-paren-continuation-line'.
	(python-indent--calculate-indentation): Use the new indent context.
	* test/lisp/progmodes/python-tests.el (python-indent-pep8-2)
	(python-indent-pep8-3)
	(python-indent-inside-paren-1)
	(python-indent-inside-paren-2)
	(python-indent-inside-paren-3)
	(python-indent-inside-paren-6)
	(python-indent-after-backslash-2): Change to use the new indent
	context.
	(python-indent-inside-paren-8)
	(python-indent-inside-paren-9): New tests. (Bug#63959)

2023-06-24  Eshel Yaron  <me@eshelyaron.com>

	New command 'eww-copy-alternate-url'

	This adds a new command to EWW that copies an alternate link to the
	currently visited page into the kill ring.  This is useful for
	subscribing to website feeds, etc.

	* lisp/net/eww.el (eww--alternate-urls, eww-read-alternate-url):
	 New functions.
	(eww-copy-alternate-url): New command.
	(eww-mode-map): Bind it to 'A'.

	* doc/misc/eww.texi (Basics): Document it.

	* etc/NEWS: Announce it.
	(Bug#64126)

2023-06-24  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	d0147ff9e50 * lisp/emacs-lisp/shortdoc.el: More and better `substring...
	fa06249a9fb Fix "C-x RET r" when the new encoding is UTF
	679e9d7c56e ; Mention MinGW64 GCC 13.1 problems in PROBLEMS
	fdc1a12ed1a Fix "vc-print-log does not erase buffer" and associated p...
	d507aa7336b Add selector_expression indentation rule
	1f664a0af75 Add "nixd" LSP server to Eglot
	e962cf4ba72 Fix building --with-native-compilation=aot from release t...
	4ca371e9cc7 Fix bug#64152 (Minibuffer sometimes goes "modal")
	a0ccf1859cc Disable target-async by default in gdb-mi.el
	2bad5829ff7 Revert "Fix parsing of dn line if WITHDN is non-nil"
	7637e361d3b Don't truncate filenames with "emacs.el" in them
	2591eb1190a Improve documentation of 'minibuffer-message'
	6f211bc57b9 Eglot: again fix positions of coinciding inlay hint overl...
	a24e9e3fee5 ; Update ChangeLog.4 and etc/AUTHORS.

2023-06-24  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	8f62e7b85f6 Describe primarily the Emacs s-exp dialect for treesit qu...
	eacd75df4e4 ; Improve documentation of overlay priorities
	b3f11e94fad Fix documentation of :predicate in 'define-globalized-min...

2023-06-24  Stephen Berman  <stephen.berman@gmx.net>

	Apply quote substitution to popup choice menus

	* lisp/wid-edit.el (widget-choose): Iteratively apply
	substitute-command-keys to choice item text before building popup
	or text buffer menu.  Also fix two unnecessary uses of let*.

2023-06-24  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-23  Michael Albinus  <michael.albinus@gmx.de>

	Extend Tramp kubernetes method

	* doc/misc/tramp.texi (Inline methods): Adapt kubernetes method.

	* etc/NEWS: Describe changes in Tramp kubernetes method.

	* lisp/net/tramp-container.el (tramp-kubernetes-context)
	(tramp-kubernetes-namespace): New defcustoms.
	(tramp-kubernetes--completion-function): Extend for CONTAINER.POD
	syntax.
	(tramp-kubernetes--host-name-regexp): New defconst.
	(tramp-kubernetes--container, tramp-kubernetes--pod)
	(tramp-kubernetes--current-context): New defuns.
	(tramp-kubernetes--current-context-data): Simplify.
	(tramp-kubernetes--context-namespace): New defun.
	(tramp-methods) <kubernetes>: Respect container, context and
	namespace.  (Bug#59797)
	(tramp-container-connection-local-default-kubernetes-variables):
	New defconst.  Set respective connection-local variables.

	* lisp/net/tramp-sh.el (tramp-config-check): New variable.
	(tramp-open-connection-setup-interactive-shell): Use it.

	* lisp/net/tramp.el (tramp-methods): Adapt docstring.
	(tramp-extra-expand-args): New defvar.
	(tramp-expand-args): Use it.

2023-06-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-defsubst: Use static scoping for args

	* lisp/emacs-lisp/cl-macs.el (cl--slet): New function, partly extracted
	from `cl--slet*`.
	(cl--slet*): Use it.
	(cl--defsubst-expand): Use it to fix bug#47552.

	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-defstruct-dynbound-label):
	New test.

2023-06-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-defun/cl-struct: Use static scoping for function args

	* lisp/emacs-lisp/cl-macs.el (cl--slet*): New function.
	(cl--transform-lambda): Use it to fix bug#47552.

	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments): Add test.

2023-06-23  Eli Zaretskii  <eliz@gnu.org>

	Revert "Avoid header line with some empty non-nil formats"

	This reverts commit 4f66cbbfe520ee31ef26676e09a926217d9736fe.
	This is part of removing the recently-added feature whereby
	certain non-nil values of 'header-line-format' could signal
	that the header line shall not be displayed.  The feature is
	being reverted because its advantages are very minor, whereas
	the complications it causes are serious.

2023-06-23  Eli Zaretskii  <eliz@gnu.org>

	Revert "; Fix last change"

	This reverts commit 05c2be28a3e97bd920d0bf8c8b59ec682a420cce.
	This is part of removing the recently-added feature whereby
	certain non-nil values of 'header-line-format' could signal
	that the header line shall not be displayed.  The feature is
	being reverted because its advantages are very minor, whereas
	the complications it causes are serious.

2023-06-23  Eli Zaretskii  <eliz@gnu.org>

	Revert "; Fix coding style in just installed change"

	This reverts commit 229f0b8dd3b92827b6e0c6fc105508e8b80858f5.
	This is part of removing the recently-added feature whereby
	certain non-nil values of 'header-line-format' could signal
	that the header line shall not be displayed.  The feature is
	being reverted because its advantages are very minor, whereas
	the complications it causes are serious.

2023-06-23  Eli Zaretskii  <eliz@gnu.org>

	Revert "; * src/window.c (window_wants_header_line): Shut up bogus GCC warning."

	This reverts commit ef8485ad05dd9200b68ea8141fd44c7b976140cd.
	This is part of removing the recently-added feature whereby
	certain non-nil values of 'header-line-format' could signal
	that the header line shall not be displayed.  The feature is
	being reverted because its advantages are very minor, whereas
	the complications it causes are serious.

2023-06-23  Eli Zaretskii  <eliz@gnu.org>

	Revert "Avoid infinite recursion in 'window_wants_header_line'"

	This reverts commit 3de8ed09ab46b9922e15aaf0cc8884b41087c996.
	This is part of removing the recently-added feature whereby
	certain non-nil values of 'header-line-format' could signal
	that the header line shall not be displayed.  The feature is
	being reverted because its advantages are very minor, whereas
	the complications it causes are serious.

2023-06-23  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsDrawRectangle.java (perform):
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java (Sdk7FontEntity):
	(hasChar): Clean up dead stores.

2023-06-23  Po Lu  <luangruo@yahoo.com>

	Correctly check result of string lookup

	* src/android.c (android_wc_lookup_string): Check that
	GetStringChars returns non-NULL, not if it throws an exception.

2023-06-23  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	latin-ltx.el: Add \Phi; fix bug#64212

	* lisp/leim/quail/latin-ltx.el (greek letters): Fix regexp which was
	meant to avoid lowercase phi only.

2023-06-22  Jakub Ječmínek  <jecminek.k@gmail.com>  (tiny change)

	Fix orgtbl-to-table.el function to include last cell border

	* lisp/org/org-table.el (orgtbl-to-table.el): Perform character
	replacement in the temp buffer and fix missing cell border.  (Bug#64205)

2023-06-22  Mattias Engdegård  <mattiase@acm.org>

	* etc/NEWS: Announce the fix for bug#44418 (,@ prefix syntax)

2023-06-22  Michael Albinus  <michael.albinus@gmx.de>

	Rearrange some Tramp declarations

	* lisp/net/tramp.el (tramp-prefix-format, tramp-prefix-regexp)
	(tramp-method-regexp, tramp-postfix-method-format)
	(tramp-postfix-method-regexp, tramp-prefix-ipv6-format)
	(tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format)
	(tramp-postfix-ipv6-regexp, tramp-postfix-host-format)
	(tramp-postfix-host-regexp, tramp-remote-file-name-spec-regexp)
	(tramp-file-name-structure, tramp-file-name-regexp)
	(tramp-completion-method-regexp)
	(tramp-completion-file-name-regexp):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector):
	Rearrange declarations.

2023-06-22  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	0154f5885e3 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
	111efb0dd7f Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
	948b471756e Require ls-lisp in Tramp only when needed
	90c03ffcd4b After minibuffer action, don't make the minibuffer current

2023-06-22  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-29

	3d930b928fe Eglot: fix relative position of coinciding inlay hint ove...
	aad7d68164c ; * doc/lispref/display.texi (Display Tables): Remove ext...

2023-06-22  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-21  Michael Albinus  <michael.albinus@gmx.de>

	Add Tramp option showing ad-hoc multi-hops

	* doc/misc/tramp.texi (Ad-hoc multi-hops):
	Describe tramp-show-ad-hoc-proxies.

	* lisp/net/tramp.el (tramp-show-ad-hoc-proxies): New defcustom.
	(tramp-make-tramp-file-name): Use it.
	(tramp-make-tramp-hop-name): Don't add hop twice.

	* test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
	(tramp-test02-file-name-dissect-simplified)
	(tramp-test02-file-name-dissect-separate): Adapt tests.

2023-06-21  Mattias Engdegård  <mattiase@acm.org>

	Don't compile (+ X 0) as (* X 1)

	Previously (+ X 0) was reduced to (+ X) which became (* X 1) in
	codegen, but this is wrong for X = -0.0 and also slightly slower.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-plus): Don't reduce an
	addition to (+ X) by eliminating zeros; retain one 0 argument.
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
	Add test case.

2023-06-21  Mattias Engdegård  <mattiase@acm.org>

	Prefix syntax for ,@ in elisp-mode (bug#44418)

	* lisp/progmodes/elisp-mode.el (elisp-mode-syntax-propertize):
	Use prefix syntax for ,@ to avoid the @ becoming part of a symbol
	that follows.
	* test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-with-normal-env):
	Propertize inserted Lisp code to keep the test working.

2023-06-21  Mattias Engdegård  <mattiase@acm.org>

	Straighten regexp postfix operator after zero-width assertion parse

	The zero-width assertions \` \' \b \B were parsed in a sloppy way so
	that a following postfix repetition operator could yield surprising
	results.  For instance, "\\b*" would act as "\\b\\*", and "xy\\b*"
	would act as "\\(?:xy\\b\\)*".

	Except for \` and ^, any following postfix operator now applies to the
	zero-width assertion itself only, which is predictable and consistent
	with other assertions, if useless in practice.
	For historical compatibility, an operator character following \` and ^
	always becomes a literal. (Bug#64128)

	* src/regex-emacs.c (regex_compile):
	Set `laststart` appropriately for each zero-width assertion instead
	of leaving it with whatever value it had before.
	Remove a redundant condition.
	* test/src/regex-emacs-tests.el
	(regexp-tests-zero-width-assertion-repetition): New test.
	* doc/lispref/searching.texi (Regexp Special):
	Say that repetition operators are not special after \`,
	and that they work as expected after other backslash escapes.
	* etc/NEWS: Announce.

2023-06-21  Alan Mackenzie  <acm@muc.de>

	Correct handling of template markers on deletion/insertion

	This fixes bug#62841.

	In particular, correct the syntax-table text properties on the
	remaining <...>s.

	* lisp/progmodes/cc-align.el
	(c-lineup-template-args-indented-from-margin): New lineup
	function.

	* lisp/progmodes/cc-defs.el (c-put-char-properties): New macro.
	(c-search-forward-non-nil-char-property): Handle terminating
	limit correctly.

	* lisp/progmodes/cc-engine.el
	(c-clear-<-pair-props-if-match-after)
	(c-clear->-pair-props-if-match-before): Return the position
	outside the matching < or >, not merely t.
	(c-end-of-literal): New function.
	(c-unmark-<>-around-region): New function.
	(c-before-change-check-<>-operators): Refactor, calling
	c-unmark-<>-around-region.
	(c-<>-get-restricted): New function, extracted from
	c-restore-<>-properties.
	(c-restore-<>-properties): Handle ">" characters whose matching
	"<" has not yet been encountered.
	(c-ml-string-opener-at-or-around-point): Fix an off by one
	error.
	(c-backward-<>-arglist): New parameter restricted-function, a
	function which calculates c-restricted-<>-arglists for the
	current operation.

	* lisp/progmodes/cc-fonts.el (c-font-lock-c++-using): Check
	point is less than limit in the loop.

	* lisp/progmodes/cc-langs.el
	(c-get-state-before-change-functions)
	(c-before-font-lock-functions): Add the new function
	c-unmark-<>-around-region into the C++ and Java values of the
	variable.

	* lisp/progmodes/cc-mode.el (c-clear-string-fences)
	(c-restore-string-fences): Neutralize and restore the
	syntax-table properties between an unbalanced " and EOL.

	* lisp/progmodes/cc-vars.el (c-offsets-alist): Put new lineup
	function c-lineup-template-args-indented-from-margin into entry
	for template-args-cont.

	* doc/misc/cc-mode.texi (List Line-Up): Document
	c-lineup-template-args-indented-from-margin.

2023-06-21  Eli Zaretskii  <eliz@gnu.org>

	Extend handling of prefix arg in some kmacro.el commands

	* lisp/kmacro.el (kmacro-call-ring-2nd)
	(kmacro-call-ring-2nd-repeat, kmacro-end-macro)
	(kmacro-end-and-call-macro): Accept just "C-u" and interpret it as
	a numeric argument of 4.  Suggested by Al Petrofsky
	<al@petrofsky.org>.  (Bug#64138)

2023-06-21  Daniel Martín  <mardani29@yahoo.es>

	Prevent crashes on macOS when fullscreen frame is deleted

	* src/nsterm.m (ns_free_frame_resources): Remove the frame's
	window from the hierarchy.  (Bug#64147)

2023-06-21  Eli Zaretskii  <eliz@gnu.org>

	Allow --debug-init to debug all errors in init files

	* lisp/startup.el (startup--load-user-init-file): Ignore the value
	of 'debug-ignored-errors' when loading init files if we were
	invoked interactively with --debug-init.  (Bug#64163)

2023-06-21  Sean Whitton  <spwhitton@spwhitton.name>

	Delete eval-command-interactive-spec

	* etc/NEWS: Delete announcement of eval-command-interactive-spec.
	* lisp/emacs-lisp/subr-x.el (eval-command-interactive-spec): Delete.

2023-06-21  Paul Eggert  <eggert@cs.ucla.edu>

	* configure.ac: Update GCC bug number in comment.

2023-06-21  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidfns.c (android_set_tool_bar_position):
	(frame_geometry):
	* src/androidterm.c (android_flash):
	(android_clear_under_internal_border): Synchronize with X.

2023-06-21  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-21  Po Lu  <luangruo@yahoo.com>

	Allow displaying tool bar on the bottom of the frame

	* src/xterm.c (x_clear_under_internal_border): Subtract bottom
	margins before clearing bottom border.
	(XTflash): Subtract bottom margins before flashing mini window.

	* src/xfns.c (x_set_tool_bar_position): Allow setting different
	values outside of GTK+.
	(frame_geometry): Adjust inner width and height for tool bars
	placed on the bottom.

	* src/xdisp.c (init_xdisp): Calculate using top margins only.

	* src/window.c (resize_frame_windows): Fix commentary.

	* src/w32fns.c (Fw32_frame_geometry): Report tool bar position
	correctly.
	(w32_clear_under_internal_border): Subtract bottom margins
	prior to clearing bottom border.
	(w32_set_tool_bar_position): New function.
	(Fw32_frame_edges): Subtract bottom tool bar from inner width and
	height.
	(w32_frame_parm_handlers): Add `set_tool_bar_position' parameter
	handler.

	* src/pgtkterm.c (pgtk_flash): Subtract bottom
	margins before clearing bottom border.
	(XTflash): Subtract bottom margins before flashing mini window.

	* src/pgtkfns.c (frame_geometry): Set `inner_top' correctly.
	(Fpgtk_set_mouse_absolute_pixel_position):
	(Fpgtk_mouse_absolute_pixel_position):
	(Fpgtk_page_setup_dialog):
	(Fpgtk_get_page_setup): Wrap lines which cause C Mode to hang.

	* src/nsterm.m (ns_clear_under_internal_border): Subtract bottom
	margins before clearing bottom border.

	* src/nsfns.m (ns_set_tool_bar_position): New function.  Error if
	arg is not top.
	(ns_frame_parm_handlers): Add that as the handler for
	`tool-bar-position', to prevent it from being set to an invalid
	value.

	* src/haikuterm.c (haiku_flash): Subtract bottom margins before
	flashing mini window.
	(haiku_clear_under_internal_border): Subtract bottom margins
	before clearing bottom border.

	* src/haikufns.c (haiku_set_tool_bar_position): Allow setting
	values other than `top'.
	(frame_geometry): Take bottom margin into account when calculating
	inner dimensions.

	* src/frame.h (struct frame): Always define `tool_bar_position'.
	(fset_tool_bar_position): Define function everywhere.
	(FRAME_TOOL_BAR_POSITION): Define correctly on all toolkits.
	(FRAME_TOOL_BAR_TOP_HEIGHT):
	(FRAME_TOOL_BAR_TOP_LINES):
	(FRAME_TOOL_BAR_BOTTOM_HEIGHT):
	(FRAME_TOOL_BAR_BOTTOM_LINES): New macros.  Each pair returns the
	tool bar dimensions only if the tool bar position is set
	appropriately.
	(FRAME_TOP_MARGIN, FRAME_TOP_MARGIN_HEIGHT): Only add tool bar
	height if it is placed at the top of the frame.
	(FRAME_BOTTOM_MARGIN, FRAME_BOTTOM_MARGIN_HEIGHT): Add ``bottom
	margins''.
	(FRAME_MARGINS, FRAME_MARGIN_HEIGHT): Move original margin macro
	here.
	(FRAME_PIXEL_HEIGHT_TO_TEXT_LINES):
	(FRAME_TEXT_TO_PIXEL_HEIGHT):
	(FRAME_PIXEL_TO_TEXT_HEIGHT):
	(FRAME_INNER_HEIGHT): Subtract both vertical margins.

	* src/frame.c (adjust_frame_size): Subtract both top and bottom
	margins to determine the inner height.
	(make_frame): Initialize `f->tool_bar_position' unconditionally.

	* src/dispnew.c (adjust_frame_glyphs_for_window_redisplay): Place
	internal tool bar on bottom if requested.

	* doc/lispref/frames.texi (Frame Layout): Describe the possibility
	of the tool bar being placed below the inner area of the frame.
	(Layout Parameters): Describe that `tool-bar-position' is now
	supported almost everywhere.

2023-06-21  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-20  Filipp Gunbin  <fgunbin@fastmail.fm>

	Fix ldap-search when WITHDN is non-nil (bug#64089)

	* lisp/net/ldap.el (ldap-search): Apply ldap-decode-attribute only to
	attribute pairs.
	(ldap-search-internal): Parse dn with the same regexp as other attrs;
	use its value instead of the whole line.  Include entry into result
	only if valid dn is present, to avoid treating process sentinel
	messages like an entry.  Fix accidental match data clobbering.
	Document return value format.

2023-06-20  Po Lu  <luangruo@yahoo.com>

	Signal error upon setting unsupported tool bar position

	* src/haikufns.c (haiku_set_tool_bar_position): New function.
	Port non-GTK code from X.
	(haiku_frame_parm_handlers): Add new function.

2023-06-20  Po Lu  <luangruo@yahoo.com>

	Synchronize tool bar position code with X

	* src/androidfns.c (android_set_tool_bar_position): New
	function.
	(android_frame_parm_handlers): Add new frame param handler.

2023-06-20  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-20  Andrew G Cohen  <cohen@andy.bu.edu>

	Don't read all headers in gnus thread referral (bug#63842)

	Gnus thread referral tries to add newly found articles to an existing
	summary buffer. When the list of such articles is known from searching
	we can speed things up by only entering these specific headers into
	the dependencies table.

	* lisp/gnus/gnus-sum.el (gnus-summary-refer-thread): Don't set
	`gnus-read-all-available-headers' when finding articles by searching.

2023-06-19  Paul Eggert  <eggert@cs.ucla.edu>

	Call them “bracket expressions” more consistently

	Emacs comments and doc were inconsistent about the name used for
	regexps like [a-z].  Sometimes it called them “character
	alternatives”, sometimes “character sets”, sometimes “bracket
	expressions”.  Prefer “bracket expressions” as it is less confusing:
	POSIX and most other programs’ doc uses “bracket expressions”,
	“alternative” is also used in the Emacs documentation to talk about
	...\|... in regexps, and “character set” normally has a different
	meaning in Emacs.

2023-06-19  Paul Eggert  <eggert@cs.ucla.edu>

	Document Emacs vs POSIX REs

	* doc/lispref/searching.texi (Longest Match):
	Rename from POSIX Regexps, as this section
	is about longest-match functions, not about POSIX regexps.
	(POSIX Regexps): New section.

2023-06-19  Paul Eggert  <eggert@cs.ucla.edu>

	Document regular expression special cases better

	In particular, document that escape sequences like \b*
	are currently buggy.

2023-06-19  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp specific tests in eglot-tests.el

	* test/lisp/progmodes/eglot-tests.el (tramp): Move up.
	(tramp-sh): Don't require.
	(eglot--cleanup-after-test): Delete Tramp buffers if needed.
	(eglot-tests-lsp-abiding-column): Rename from `eglot-lsp-abiding-column'.
	(tramp-histfile-override): Declare.
	(eglot--call-with-tramp-test):
	Use `ert-remote-temporary-file-directory'.  Skip if needed.
	(eglot--tramp-test, eglot--tramp-test-2): Don't skip.

2023-06-19  Po Lu  <luangruo@yahoo.com>

	* lib-src/Makefile.in (seccomp-filter$(EXEEXT)): Link with Gnulib.

2023-06-19  Mattias Engdegård  <mattiase@acm.org>

	* src/regex-emacs.c (regex_compile): Remove useless condition

	This condition didn't have any visible effect (as ^ is not a
	repetition operator); all it did was to generate slightly worse regexp
	bytecode for out-of-place (literal) ^ in the midst of literal
	characters (bug#64128).

2023-06-19  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsView.java (EmacsView, dimensionsLock):
	New field.
	(<init>): Create new lock object.
	(handleDirtyBitmap, onLayout, onAttachedToWindow): Make sure
	measuredWidth and measuredHeight are extracted and set
	atomically.  Send Expose upon layout changes if the view has
	grown.

2023-06-19  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-18  Al Petrofsky  <al@petrofsky.org>

	Make C-SPC work in "M-x term"

	* lisp/term.el (term-raw-map): Add bindings for C-SPC, C-M-SPC,
	and C-M-/.
	(term-send-C-@, term-send-C-M-_, term-send-C-M-@): New commands.
	(Bug#64121)

2023-06-18  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/window.h (GCALIGNED_STRUCT): Improve documentation of
	`last_mark'.
	* src/xdisp.c (mark_window_display_accurate_1): Don't set
	`last_mark' to -1 if the mark is inactive.

2023-06-18  Po Lu  <luangruo@yahoo.com>

	Enable text conversion in conf-modes

	* lisp/textmodes/conf-mode.el (conf-mode-initialize): Set
	text-conversion-style.

2023-06-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs

2023-06-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	pp-fill: Fix tests breakage

	* lisp/emacs-lisp/pp.el (pp-to-string, pp-buffer, pp): Preserve old
	behavior of (almost always) returning a trailing newline.

	* test/lisp/emacs-lisp/pp-tests.el (pp-print-quote): Adjust tests, now
	that `pp-to-string` always returns a trailing newline, rather than only
	most of the time.

	* test/lisp/emacs-lisp/backtrace-tests.el
	(backtrace-tests--single-and-multi-line): Make the test less sensitive
	to the choice of what is "pretty".

2023-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/lispref/streams.texi (Output Variables): Document `pp-default-function`

2023-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	pp.el (pp-fill): New default pp function

	* lisp/emacs-lisp/pp.el (pp-default-function): Change default.
	(pp--within-fill-column-p): New helper function.
	(pp-fill): New function.

2023-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	pp.el (pp-default-function): New custom var

	* lisp/emacs-lisp/pp.el (pp-use-max-width): Make obsolete.
	(pp-default-function): New custom var.
	(pp--object, pp--region): New helper functions.
	(pp-29): New function, extracted from `pp-to-string`.
	(pp-to-string): Add `pp-function` arg and obey `pp-default-function`.
	(pp-28): New function, extracted from `pp-buffer`.
	(pp-buffer): Rewrite, to obey `pp-default-function`.
	(pp): Obey `pp-default-function`.
	(pp-emacs-lisp-code): Add new calling convention to apply it to a region.

2023-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/lisp-mode.el (lisp-ppss): Fix performance bug

	(nth 2 ppss) can be absent but not incorrect, so don't recompute ppss
	for (nth 2 ppss) when (nth 2 ppss) is already provided.
	When calling `lisp-indent-line` on all the lines in a region, this
	sometimes introduced a gratuitous O(N²) complexity.

2023-06-17  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix some tree-sitter :match regexps

	This was originally installed on 2023-06-17 in the emacs-29 release
	branch and later reverted.  The intention is to backport it after
	Emacs 29.1 is released.

	The shy groups were caught by modified versions of the GNU ELPA
	packages xr and relint:
	- https://github.com/mattiase/xr/pull/6
	- https://github.com/mattiase/relint/pull/14

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Quote special
	character in regexp.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
	* lisp/progmodes/js.el (js--plain-method-re):
	(js--treesit-font-lock-settings):
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Replace character
	alternative [\\d], which matches '\' or 'd', with the most likely
	intention [0-9].  Fix shy groups mistyped as optional colons.
	Remove unneeded numbered :match group in rust-ts-mode (bug#64019).

2023-06-17  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix more shy group regexps

	These issues were caught by modified versions of the GNU ELPA
	packages xr and relint:
	- https://github.com/mattiase/xr/pull/6
	- https://github.com/mattiase/relint/pull/14

	* lisp/gnus/gnus-art.el (gnus-parse-news-url): Remove redundant
	numbered group and calls to match-string.
	* lisp/progmodes/c-ts-mode.el (c-ts-mode--c-or-c++-regexp): Fix shy
	group mistyped as optional colon (bug#64019#29).
	* lisp/vc/vc-git.el (vc-git-annotate-time): Ditto.  Also fix
	timezone parsing by using iso8601-parse (bug#64069).
	* test/lisp/vc/vc-git-tests.el (vc-git-test-annotate-time): New
	test.

2023-06-17  Alan Mackenzie  <acm@muc.de>

	CC Mode: Correct some regexp typos, \\(:? -> \\(?:

	This partly corrects bug#64069.

	* lisp/progmodes/cc-langs.el (c-ml-string-back-closer-re): Fix
	four occurrences, one of which was in a comment, one in a doc
	string.

	* lisp/progmodes/cc-mode.el (c-or-c++-mode--regexp.): Fix one
	occurrence.

2023-06-17  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-17  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	3b0bf359e9a Fix documentation of comment-dwim (bug#64104)

2023-06-17  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	84d2da003e1 ; Fix example in the Flymake manual
	0a1459f1d9b * doc/misc/calc.texi (Advanced Math Functions): Correct c...
	92faf1f5645 Consider 'dired-kill-when-opening-new-dired-buffer' in mo...
	bafe71a69fc ; Fix use-package.texi markup
	018e4ca6c5d ; * doc/misc/calc.texi (Advanced Math Functions): Fix las...
	1952dbd4c5f Fix Gamma function definition in calc.texi
	f73f82d7e89 Fix subscripts in the Calc manual
	70fc7c41ef3 Improve documentation of 'declare' forms
	c8357582389 ; * src/lread.c (bytecode_from_rev_list): Avoid C++ comment.
	28478574961 Improve tree-sitter docs
	0e9307eb2b8 Fix some Texinfo markup in manuals
	8dc08333eea Fix bol/bos anchors in tree-sitter :match regexps
	8225ade6151 ; * src/xdisp.c (syms_of_xdisp) <display-line-numbers>: F...
	1f0527a312a ; Fix last change in tex-mode.el
	4da479920e6 * lisp/subr.el (with-restriction): Tweak indent rule
	36aa9bd8183 ; Fix previous change
	aaeaf608d89 Fix setting region in the minibuffer
	1383efe01d0 Fix setting $DBUS_SESSION_BUS_ADDRESS after Emacs has sta...
	bdb0bc2b4e4 Fix tex-mode display-buffer issues
	90047c38ce9 Add test for when 'completion-auto-help' is 'visible'
	2c623e4feb9 Avoid errors in 'apropos-documentation' after 'eval-buffer'
	dd3b98121cc ; * doc/emacs/indent.texi (Indentation Commands): Fix las...
	904edf1f076 Mention indent-rigidly in the Emacs manual

2023-06-17  Po Lu  <luangruo@yahoo.com>

	Initialize signal mask earlier

	* java/org/gnu/emacs/EmacsService.java (onCreate, run): Don't
	initialize signal mask here.
	* java/org/gnu/emacs/EmacsApplication.java (onCreate): Do it
	here instead.
	* src/android.c (JNICALL): Restore previous signal masks.

2023-06-17  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-16  Mattias Engdegård  <mattiase@acm.org>

	Correct conversion of strings to tree-sitter query syntax

	The treesitter query syntax for string literals differs from that of
	Elisp so we cannot just use the Lisp printer (bug#64017).

	* src/treesit.c (treesit_query_string_string): New function.
	(Ftreesit_pattern_expand): Use it.
	* test/src/treesit-tests.el (treesit-query-api): Add test case.

2023-06-16  Po Lu  <luangruo@yahoo.com>

	Fix quitting after changes to signal delivery

	* src/android.c (android_write_event, JNICALL)
	(android_run_in_emacs_thread): Don't rely on raise to call
	deliver_process_signal.

2023-06-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity):
	* java/org/gnu/emacs/EmacsApplication.java (findDumpFile):
	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu)
	(addSubmenu, display):
	* java/org/gnu/emacs/EmacsDocumentsProvider.java
	(getNotificationUri, queryChildDocuments, deleteDocument):
	* java/org/gnu/emacs/EmacsDrawRectangle.java (perform):
	* java/org/gnu/emacs/EmacsFillRectangle.java (perform):
	* java/org/gnu/emacs/EmacsOpenActivity.java (readEmacsClientLog)
	(checkReadableOrCopy):
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java
	(EmacsSdk7FontDriver):
	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
	* java/org/gnu/emacs/EmacsView.java (EmacsView):
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, onKeyUp):
	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
	(EmacsWindowAttachmentManager): Remove various unused arguments
	and variables, dead stores, and make minor cleanups and
	performance improvements.
	* src/androidmenu.c (FIND_METHOD_STATIC, android_menu_show):
	Adjust accordingly.

2023-06-16  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-15  Tony Zorman  <soliditsallgood@mailbox.org>

	eshell-next-prompt: More precisely navigate to the prompt (bug#63748)

	* lisp/eshell/em-prompt.el (eshell-next-prompt): Navigate to the
	current prompt more accurately by using text properties instead of
	going to the beginning of the line.  This is important for multiline
	prompts, as they don't necessarily start at the beginning of the
	current line.

	* test/lisp/eshell/em-prompt-tests.el
	(em-prompt-test--with-multiline):
	Execute a given body with a multiline prompt.

	(em-prompt-test/next-previous-prompt-with):
	(em-prompt-test/forward-backward-matching-input-with):
	Helper functions for code reuse.

	(em-prompt-test/forward-backward-matching-input):
	(em-prompt-test/next-previous-prompt):
	Rewrite in terms of the appropriate helper functions.

	(em-prompt-test/next-previous-prompt-multiline):
	(em-prompt-test/forward-backward-matching-input-multiline):
	Add multiline variants of existing tests.

2023-06-15  Yuan Fu  <casouri@gmail.com>

	Fix treesit-install-language-grammar (bug#63990)

	* lisp/treesit.el:
	(treesit-install-language-grammar): When called non-interactively,
	out-dir should default to default-out-dir.

2023-06-15  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsInputConnection.java
	(EmacsInputConnection, beginBatchEdit, reset, endBatchEdit):
	Keep track of the number of batch edits and return an
	appropriate value.
	(takeSnapshot): Implement function.
	* java/org/gnu/emacs/EmacsNative.java (takeSnapshot): New
	function.
	* java/org/gnu/emacs/EmacsService.java (resetIC): Improve
	debugging output.
	* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
	Call `reset' to clear the UI side batch edit count.
	* src/androidterm.c (struct
	android_get_surrounding_text_context): New fields
	`conversion_start' and `conversion_end'.
	(android_get_surrounding_text): Return the conversion region.
	(android_get_surrounding_text_internal, NATIVE_NAME): Factor out
	`getSurroundingText'.
	(takeSnapshot): New function.

2023-06-15  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	Avoid using `(lambda ...) to build function values

	* lisp/emacs-lisp/nadvice.el (advice-eval-interactive-spec): Avoid
	`(lambda ...).

2023-06-14  Spencer Baugh  <sbaugh@janestreet.com>

	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.

	* lisp/minibuffer.el (minibuffer-completion-help): Use point when
	calculating completion-base-affixes. (Bug#62700)

2023-06-14  Po Lu  <luangruo@yahoo.com>

	Improve IM synchronization on Android

	* java/org/gnu/emacs/EmacsInputConnection.java
	(EmacsInputConnection): Reimplement as an InputConnection, not
	BaseInputConnection.
	* src/androidterm.c (performEditorAction): Sync prior to sending
	keyboard events.

2023-06-14  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-13  Robert Pluim  <rpluim@gmail.com>

	Replace unneeded sprintfs with print

	* admin/unidata/emoji-zwj.awk: Printing strings doesn't need sprintf,
	so just use print and string concatenation.

2023-06-13  Robert Pluim  <rpluim@gmail.com>

	Insert timestamp when converting icalendar to org event

	* lisp/gnus/gnus-icalendar.el (gnus-icalendar--update-org-event):
	Insert the timestamp even if the description is empty.  (Bug#64023)

2023-06-13  Mattias Engdegård  <mattiase@acm.org>

	Move quoted lambda funarg check and expand coverage

	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
	Move check for incorrectly quoted lambda arguments from here...
	* lisp/emacs-lisp/bytecomp.el (byte-compile-form):
	... to here, which should provide more detection opportunities.
	Expand the set of functions for which this check is performed, now
	also for some keyword arguments.

2023-06-13  Robert Pluim  <rpluim@gmail.com>

	Don't feed the awk scripts into themselves

	* admin/unidata/Makefile.in (${unidir}/charscript.el,
	${unidir}/emoji-zwj.el): Define variables for the required sources and
	pass those to awk instead of $^, since the latter includes the awk
	script itself.

2023-06-13  Po Lu  <luangruo@yahoo.com>

	Improve behavior of Gnus on Android

	* etc/NEWS: Fix typo.
	* lisp/gnus/gnus-score.el (gnus-read-char): New function.
	(gnus-summary-increase-score): Use it to display a dialog box on
	Android, where input methods have trouble with plain old
	read-char.

2023-06-13  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/transient.el (transient--wrap-command): Use `letrec` and a closure

2023-06-12  Po Lu  <luangruo@yahoo.com>

	Improve appearance of custom dialog buttons on Android

	* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog): Resolve
	dialog button style and use it instead.

2023-06-12  Po Lu  <luangruo@yahoo.com>

	Fix deadlocks

	* java/org/gnu/emacs/EmacsView.java (EmacsView)
	(showOnScreenKeyboard, hideOnScreenKeyboard): Don't synchronize.
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow)
	(toggleOnScreenKeyboard): Revert to calling IMM functions from
	the main thread.
	* src/android.c (struct android_event_container)
	(android_pselect_nfds, android_pselect_readfds)
	(android_pselect_writefds, android_pselect_exceptfds)
	(android_pselect_timeout): Don't make volatile.
	(android_wait_event): Run queries if necessary.

2023-06-12  F. Jason Park  <jp@neverwas.me>

	Define missing groups for ERC modules

	* lisp/erc/erc-imenu.el (erc-imenu): Define group even though there
	aren't any associated faces or user options because `imenu' is a
	global module, and `define-erc-module' calls `define-minor-mode',
	which needs a group for its mode variable.  This should have been
	handled by bug#60954 but wasn't.
	* lisp/erc/erc-sound.el (erc-sound): Move group definition above
	module definition.
	* lisp/erc/erc-spelling.el (erc-spelling): Define group.

2023-06-12  F. Jason Park  <jp@neverwas.me>

	Revert "Add hook to regain nickname in ERC"

	This reverts commit 8c0c98268440b27a77faf30738dfd72c909bb33f.  The
	functionality it introduced is likely being migrated to a
	"regain"-specific local module to live in the library erc-services.el
	alongside the existing `services' module.  Its scope will be expanded
	to address common "regain" cases requiring NickServ.  This commit is
	being reverted to prevent any confusion that might arise from users
	encountering the old interface while the new one is being hashed out
	on the tracker.

2023-06-12  F. Jason Park  <jp@neverwas.me>

	Don't insert prompt input before markers in ERC

	* etc/ERC-NEWS: Update entry in 5.6 section announcing a persistent
	prompt.
	* lisp/erc/erc-dcc.el (erc-dcc-chat-setup): Use helper
	`erc--initialize-markers' to set up prompt.
	* lisp/erc/erc.el (erc--initialize-markers): Change
	`erc-insert-marker' type to t.  Do this to spare modules that want to
	remember the current message location from resorting to workarounds,
	like leaving a marker one char before the end of a message, which is
	not foolproof.
	(erc--refresh-prompt): Temporarily change type of `erc-insert-marker'
	when inserting prompt.
	(erc-display-line-1): Insert incoming message normally instead of
	forcing before markers, thus respecting markers left by third parties.
	Strictly speaking, this is a breaking change.
	(erc-display-msg): Insert normally instead of calling
	`insert-before-markers', which was a regression introduced by 05f6fdb9
	"Preserve ERC prompt and its bounding markers".
	* test/lisp/erc/erc-dcc-tests.el
	(erc-dcc-tests--dcc-handle-ctcp-send,
	erc-dcc-tests--erc-dcc-do-GET-command): Use helper to initialize
	prompt and markers.
	* test/lisp/erc/erc-networks-tests.el
	(erc-networks--ensure-announced,
	erc-networks--rename-server-buffer--existing--reuse,
	erc-networks--rename-server-buffer--existing--noreuse,
	erc-networks--rename-server-buffer--reconnecting,
	erc-networks--rename-server-buffer--id,
	erc-networks--rename-server-buffer--existing--live,
	erc-networks--rename-server-buffer--local-match,
	erc-networks--rename-server-buffer--local-nomatch): Use helper to
	initialize prompt and bounding markers.
	* test/lisp/erc/erc-stamp-tests.el (erc-stamp-tests--insert-right):
	Use `erc--initialize-markers' for setting up prompt.
	* test/lisp/erc/erc-tests.el (erc--refresh-prompt): Adjust assertions
	for expected prompt content.  (Bug#60936)

2023-06-12  F. Jason Park  <jp@neverwas.me>

	Cement ordering of essential hook members in ERC

	* etc/ERC-NEWS: Add new section explaining the pinning of certain hook
	members owned by built-in modules to fixed depths.
	* lisp/erc/erc-button.el (erc-button-mode, erc-button-enable): Change
	hook depth for `erc-button-add-buttons' from 90 to 30.
	* lisp/erc/erc-fill.el (erc-fill-mode, erc-fill-enable): Change hook
	depth for `erc-fill' from 0 to 40.
	* lisp/erc/erc-match.el (erc-match-mode, erc-match-enable): Change
	hook depth for `erc-match-message' from 90 to 60.
	* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-enable): Change
	hook depth for `erc-add-timestamp' from 90 to 50.
	* test/lisp/erc/erc-tests.el
	(erc-tests--assert-printed-in-subprocess): Add fixture for testing a
	form printed from a subprocess.
	(erc--find-mode, erc--essential-hook-ordering): Use helper in existing
	and new tests, respectively.  (Bug#60936)

2023-06-12  F. Jason Park  <jp@neverwas.me>

	Measure stamps pixel-wise with erc-fill-wrap

	* lisp/erc/erc-fill.el (erc-fill-wrap-mode, erc-fill-wrap-enable):
	Change "how" for advice applied to `erc-stamp--insert-date-function'
	from `:filter-args' to `:after'.
	(erc-fill--wrap-stamp-insert-prefixed-date): Change signature to
	conform to `:after'-style advice.  Use `buffer-text-pixel-size' when
	desired and available for generating display spec.
	(erc-fill-wrap): Remove confusing comment.  Don't apply text props to
	newlines because there's no obvious use case for inheriting these.
	* lisp/erc/erc.el (erc-send-action, erc-display-msg): Add
	`erc-command' property (as "PRIVMSG") to inserted message, sans
	newline, so that all inserted messages in an ERC buffer contain this
	property.
	* test/lisp/erc/resources/fill/snapshots/merge-01-start.eld: Update data.
	* test/lisp/erc/resources/fill/snapshots/merge-02-right.eld: Update data.
	* test/lisp/erc/resources/fill/snapshots/monospace-01-start.eld: Update.
	* test/lisp/erc/resources/fill/snapshots/monospace-02-right.eld: Update.
	* test/lisp/erc/resources/fill/snapshots/monospace-03-left.eld: Update.
	* test/lisp/erc/resources/fill/snapshots/monospace-04-reset.eld: Update.
	* test/lisp/erc/resources/fill/snapshots/spacing-01-mono.eld: Update.
	(Bug#60936)

2023-06-12  F. Jason Park  <jp@neverwas.me>

	Allow ERC modules to extend erc-nick-popup-alist

	* etc/ERC-NEWS: Mention changes to `erc-button-alist' and superficial
	changes to `erc-nick-popup-alist'.
	* lisp/erc/erc-button.el (erc-nick-popup-alist): Change type to prefer
	associating strings with functions instead of arbitrary sexps.
	(erc-button-cmd-KICK, erc-button-cmd-MSG): New functions to serve as
	interrogative wrappers for `erc-cmd-KICK' and `erc-cmd-MSG' in
	`erc-nick-popup-alist'.  The first also fixes a bug in which all but
	the first token of a given "reason" would be omitted from the
	":trailing" portion of an outgoing "KICK" message.
	(erc-button--nick-popup-alist): New variable to help built-in modules
	expose special actions to `erc-nick-popup' without touching
	`erc-nick-popup-alist'.
	(erc-nick-popup): Present members from both `erc--nick-popup-alist'
	and `erc-nick-popup-alist' to the invoking user.  Accommodate
	functions as well as arbitrary sexps.  (bug#63569)

2023-06-12  F. Jason Park  <jp@neverwas.me>

	Deprecate nicknames entry in erc-button-alist

	* lisp/erc/erc-button.el (erc-button-mode, erc-button-enable,
	erc-button-disable): Restore running `erc-button-setup' on
	`erc-mode-hook' and also do so immediately in all ERC buffers.
	Do this instead of calling `erc-button--check-nicknames-entry.
	(erc-button-buttonize-nicks): Mention that this option's value must be
	non-nil for all but the most basic client functionality.
	(erc-button-alist): Remove `nicknames' entry entirely.  Describe
	deprecation, replacement behavior, and available escape hatches in doc
	string.  Update and improve custom type definition, in particular, by
	including long supported but never mentioned variants for the "REGEXP"
	field.
	(erc-button-keys-added): Deprecate because unused and misleading: keys
	are bound during module init and remain so while module is enabled.
	(erc-button--has-nickname-entry): New variable to indicate whether to
	follow legacy code path when a `nicknames' entry exists in
	`erc-button-alist'.
	(erc-button-setup): Rewrite to provide warnings about deprecated
	values for `erc-button-alist'.
	(erc-button-nickname-callback-function): Add escape hatch for those
	needing a custom callback for what was the default `nickname' entry in
	`erc-button-alist'.
	(erc-button-add-buttons): Always run `erc-button-add-nickname-buttons'
	unless `erc-button--has-nickname-entry' is non-nil.
	(erc-button--maybe-warn-arbitrary-sexp, erc-button--extract-form):
	Rename former to latter and abstain from emitting a warning.
	(erc-button--check-nicknames-entry): Remove unused function.
	(erc-button-add-nickname-buttons): Defer to `erc-button--extract-form'
	for determining value of third FORM slot of entry.
	(erc-button-add-buttons-1): Call renamed version of
	`erc-button--maybe-warn-arbitrary-sexp'.  (Bug#60933)

2023-06-12  F. Jason Park  <jp@neverwas.me>

	Add alias erc-buffer-do for erc-buffer-filter

	* lisp/erc/erc-goodies.el (erc-scrolltobottom-enable,
	erc-scrolltobottom-mode): Prefer `erc-buffer-do' to
	`erc-buffer-filter'.
	(erc-move-to-prompt-mode, erc-move-to-prompt-enable): Prefer
	`erc-buffer-do' to `erc-buffer-filter'.
	* lisp/erc/erc-imenu.el (erc-imenu-mode, erc-imenu-enable): Prefer
	`erc-buffer-do' to `erc-buffer-filter'.
	* lisp/erc/erc-match.el (erc-match-enable, erc-match-mode): Prefer
	`erc-buffer-do' to `erc-buffer-filter'.
	* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-enable): Prefer
	`erc-buffer-do' to `erc-buffer-filter'.
	* lisp/erc/erc.el (erc-buffer-filter): Improve doc string.
	(erc-buffer-do): Add alias for new code to prefer when calling
	`erc-buffer-filter' for effect.  Do this because continually having to
	refer back to the doc strings and implementations of the latter as
	well as `erc-buffer-p', `erc-buffer-list', and co. is unproductive.
	(erc-buffer-list): Use `always' as fallback predicate.

2023-06-12  F. Jason Park  <jp@neverwas.me>

	Prefer emacs-news-mode in etc/ERC-NEWS

	* etc/ERC-NEWS: Remove `outline' from prop line and prefer
	`emacs-news-mode' in local variables list.
	* lisp/erc/erc.el (erc-news): Overwrite cached file and ask before
	re-fetching.

2023-06-12  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-11  Michael Albinus  <michael.albinus@gmx.de>

	Adapt emba integration

	* test/infra/Makefile.in (subdir_template): Special handling of lib-src.

	* test/infra/test-jobs.yml: Regenerate.

2023-06-11  Michael Albinus  <michael.albinus@gmx.de>

	Fix tramp-sshfs

	* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-exists-p): New defun.
	(tramp-fuse-mount-timeout): Move up.
	(tramp-fuse-mount-point): Use `tramp-fuse-mount-timeout'.
	(tramp-fuse-unmount): Flush "mount-point" file property.

	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	Use `tramp-fuse-handle-file-exists-p'.

	* test/lisp/net/tramp-tests.el (all): Use function read syntax
	where appropriate.
	(tramp-test39-detect-external-change): Let-bind
	`read-from-minibuffer' instead of `yes-or-no-p'.

2023-06-11  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/net/tramp.el (tramp-encoding-shell):
	* lisp/obsolete/terminal.el (terminal-emulator):
	* lisp/term.el (term-exec-1):
	* lisp/textmodes/artist.el (artist-figlet-get-font-list):
	* src/android.c (JNICALL): Where /bin/sh was previously used,
	use /system/bin/sh on Android.

2023-06-11  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
	Document member variables.
	(onDraw): Use separate Paint object on the UI thread.
	* src/textconv.c (really_commit_text, really_set_composing_text)
	(really_delete_surrounding_text): Run modification hooks when
	deleting text.

2023-06-11  Po Lu  <luangruo@yahoo.com>

	Avoid extraneous calls to the UI thread

	* java/org/gnu/emacs/EmacsView.java (EmacsView)
	(showOnScreenKeyboard, hideOnScreenKeyboard)
	(onCheckIsTextEditor): Make synchronized.
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow)
	(toggleOnScreenKeyboard): Don't post to the main thread.

2023-06-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-10  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	0d8b69e0ad3 Don't ding when completion succeeded
	f11e2d36999 ; * admin/git-bisect-start: Update failing commits
	9855a3ea744 ; * src/xdisp.c (redisplay_tool_bar): Fix a typo in a com...
	f4ee696b887 Improve documentation of color-related functions
	90eadc3e234 Revert "* package.el (package--get-activatable-pkg): Pref...
	65f355ea0a3 ; Update my mail address
	a3a69ec2342 Fix connection-local user options handling (bug#63300)
	240803cc3e1 Document 'startup-redirect-eln-cache'
	026afb22984 ; * etc/PROBLEMS: Entry about crashes due to anti-virus (...
	bcc222251e1 Fix `emacs-lisp-native-compile-and-load' for C-h f (bug#5...
	07c8211ca30 Add 'infer' as a keyword to typescript-ts-mode (bug#63880)
	dd2d8ff2f5c ; * etc/NEWS: Mention the issue with PGTK on WSL (bug#633...
	fa8135f8916 Revert changes to the order in which package descs are lo...
	27fcfa2c0a7 ; * etc/NEWS: Improve instructions for grammar libraries.
	2a84ab905c8 Handle point in last file-name component in minibuffer co...
	05f25238b7b Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	4bc043ff45d Avoid asking redundant question in emacsbug.el
	2eadf328d05 * test/infra/Dockerfile.emba (emacs-base): Don't install ...
	583ba1db7ee typescript-ts-mode: Add a rule for function_signature

	# Conflicts:
	#	etc/NEWS
	#	lisp/minibuffer.el

2023-06-10  Eli Zaretskii  <eliz@gnu.org>

	Avoid infinite recursion in 'window_wants_header_line'

	* src/window.c (null_header_line_format): Avoid infinite
	recursion by disallowing :eval on recursive calls.
	(Bug#63988)

2023-06-10  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_select, android_check_query)
	(android_check_query_urgent, android_answer_query)
	(android_answer_query_spin, android_begin_query, android_end_query)
	(android_run_in_emacs_thread): Use finer grained memory
	synchronization semantics.
	* src/androidterm.c (android_get_selection): Use the current
	selection, not its value at the time of the last redisplay.
	* src/keyboard.c (handle_input_available_signal): Place memory
	barrier.

2023-06-10  Po Lu  <luangruo@yahoo.com>

	Inherit surrounding text properties when inserting conversion text

	* src/textconv.c (really_commit_text)
	(really_set_composing_text): Improve behavior of certain
	fontification mechanisms by inheriting text properties from
	surrounding text.

2023-06-10  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-10  Po Lu  <luangruo@yahoo.com>

	Prevent hangs from IM requests with the main thread busy

	* src/android.c (android_select): Clear `android_urgent_query'.
	(android_check_query): Make static.  Clear
	`android_urgent_query'.
	(android_check_query_urgent): New function; work like
	`android_check_query', but only answer urgent queries.
	(android_answer_query, android_end_query): Clear urgent query
	flag.
	(android_run_in_emacs_thread): Initially wait two seconds for
	the query to run from the keyboard loop; upon a timeout, set
	`android_urgent_query' to true and wait for it to run while
	reading async input.
	* src/android.h: Update prototypes.
	* src/keyboard.c (handle_async_input): Call
	`android_check_query_urgent'.

2023-06-09  Po Lu  <luangruo@yahoo.com>

	Avoid responding to input method queries asynchronously

	* src/androidterm.c (handle_one_android_event): Don't answer
	queries here; just rely on the event interrupting
	android_select.  This avoids exposing buffer contents to input
	methods while a command is being executed.
	* src/textconv.c (TEXTCONV_DEBUG, really_commit_text)
	(really_finish_composing_text, really_set_composing_text)
	(really_set_composing_region, really_delete_surrounding_text)
	(really_set_point_and_mark, get_extracted_text): Add debugging
	printouts.

2023-06-09  Po Lu  <luangruo@yahoo.com>

	Initialize text conversion hooks for each C Mode buffer

	* lisp/progmodes/cc-mode.el (c-initialize-cc-mode): Always add
	text conversion hooks.

2023-06-09  Po Lu  <luangruo@yahoo.com>

	Block profiling signals in the Android UI thread

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	function `setupSystemThread'.
	* java/org/gnu/emacs/EmacsService.java (onCreate): Block all
	signals except for SIGBUS and SIGSEGV in the UI thread.
	* src/android.c (setupSystemThread): New function.

2023-06-09  Po Lu  <luangruo@yahoo.com>

	Fix crash starting Emacs to open file

	* java/org/gnu/emacs/EmacsThread.java (run): Correct check
	against extraStartupArgument when an initial file is specified.

2023-06-09  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-08  Mattias Engdegård  <mattiase@acm.org>

	Remove special fset byte-compilation warning

	* lisp/emacs-lisp/bytecomp.el (fset, byte-compile-fset):
	Remove special warning for fset, subsumed by the more general quoted
	lambda funarg warning.

2023-06-08  João Távora  <joaotavora@gmail.com>

	Eglot: also add watches for newly created directories

	GitHub-reference: https://github.com/joaotavora/eglot/pull/1228
	GitHub-reference: https://github.com/joaotavora/eglot/discussions/1226

	* lisp/progmodes/eglot.el (eglot-register-capability): Rework.

	Suggested by: https://github.com/thejeffphil

2023-06-08  João Távora  <joaotavora@gmail.com>

	Eglot: try reuse file watchers when server over-watches

	GitHub-reference: https://github.com/joaotavora/eglot/pull/1228
	GitHub-reference: https://github.com/joaotavora/eglot/discussions/1226

	The Pyright language server issues very heavy file watching requests,
	which sometimes exceed the OS limit.  Most of these file watches are
	useless, but Pyright insists on issuing them.

	What's more, for some (absurd?) reason, Pyright issues two file
	watching requests for the _same_ directories, only to then almost
	immediately ask to undo the effects of one of these requests.

	This change to Eglot makes it so that if a single server requests to
	watch a specific directory twice, only one file watch object is used.

	Suggested by: https://github.com/thejeffphil

	* lisp/progmodes/eglot.el (eglot-lsp-server): Change structure of
	file-watches field.
	(eglot--on-shutdown): Adapt to new structure.
	(eglot-register-capability): Rework.
	(eglot-unregister-capability): Rework.

	* etc/EGLOT-NEWS: Mention change

2023-06-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-08  Po Lu  <luangruo@yahoo.com>

	Correctly display popup dialogs from Emacsclient

	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu):
	Make subclasses final.
	* java/org/gnu/emacs/EmacsDialog.java (display1): Check if an
	instance of EmacsOpenActivity is open; if it is, try using it to
	display the pop up dialog.
	* java/org/gnu/emacs/EmacsDialogButtonLayout.java
	(EmacsDialogButtonLayout): Make final.
	* java/org/gnu/emacs/EmacsHolder.java (EmacsHolder<T>):
	Likewise.
	* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity):
	New field `currentActivity'.
	(onCreate, onDestroy, onWindowFocusChanged, onPause): Set that
	field as appropriate.

2023-06-08  Amritpal Singh  <sysgrammer@protonmail.com>  (tiny change)

	Support files compressed by 'pigz'

	* src/decompress.c (md5_gz_stream): Check 'stream.avail_in' as
	well.  (Bug#63832)

2023-06-08  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_is_special_directory): New function.
	(android_get_asset_name, android_content_name_p)
	(android_get_content_name):
	* src/android.h (android_is_special_directory)
	(JNI_STACK_ALIGNMENT_PROLOGUE):
	* src/fileio.c (check_mutable_filename):
	* src/filelock.c (WTMP_FILE, make_lock_file_name):
	* src/inotify.c (IN_ONLYDIR, Finotify_add_watch): Factor out
	checks against asset and content directories to that function.

2023-06-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-07  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2023-06-07  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsInputConnection.java (beginBatchEdit)
	(endBatchEdit, commitCompletion, commitText, deleteSurroundingText)
	(finishComposingText, getSelectedText, getTextAfterCursor)
	(getTextBeforeCursor, setComposingText, setComposingRegion)
	(performEditorAction, performContextMenuAction, getExtractedText)
	(setSelection, sendKeyEvent, deleteSurroundingTextInCodePoints)
	(requestCursorUpdates): Ensure that the input connection is up
	to date.
	(getSurroundingText): New function.
	* java/org/gnu/emacs/EmacsNative.java (getSurroundingText):
	Export new C function.
	* java/org/gnu/emacs/EmacsService.java (resetIC): Invalidate
	previously created input connections.
	* java/org/gnu/emacs/EmacsView.java (EmacsView)
	(onCreateInputConnection): Signify that input connections are
	now up to date.
	* src/androidterm.c (struct
	android_get_surrounding_text_context): New structure.
	(android_get_surrounding_text, NATIVE_NAME):
	* src/textconv.c (get_surrounding_text):
	* src/textconv.h: New functions.

2023-06-07  Wilson Snyder  <wsnyder@wsnyder.org>

	Merge from verilog-mode upstream.

	* lisp/progmodes/verilog-mode.el (verilog-read-decls): Fix parsing "@ (* )" (#1829).
	(verilog-indent-ignore-p): Fix indent of comments being
	wrongly detected as multiline defines.  Reported by Gonzalo Larumbe
	<gonzalomlarumbe@gmail.com>.
	(verilog-pos-at-end-of-statement): Fix minor bug in
	`verilog-pos-at-end-of-statement' assuming `verilog-end-of-statement`.
	Reported by Gonzalo Larumbe <gonzalomlarumbe@gmail.com>.
	(verilog-in-generate-region-p):
	Fix indentation of generate blocks omitting keyword.
	Reported by Gonzalo Larumbe <gonzalomlarumbe@gmail.com>.

2023-06-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-07  Justin Burkett  <justin@burkett.cc>

	Remove old "recent changes" from README

2023-06-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-06  Po Lu  <luangruo@yahoo.com>

	Fix problems resulting from modification of the undo list

	* doc/lispref/text.texi (Atomic Changes): Describe what not to
	do inside an atomic change group.
	* lisp/elec-pair.el (electric-pair-inhibit-if-helps-balance):
	Don't call `delete-char'; that edits the undo list by removing
	boundary markers.
	* lisp/subr.el (atomic-change-group, prepare-change-group): Warn
	against modifying the undo list inside.

2023-06-06  Eshel Yaron  <eshelyaron@dazzs-mbp.home>

	Avoid header line with some empty non-nil formats

	Allow the value of 'header-line-format' to indicate that no header
	line should be displayed when it trivially yields 'nil', even if it is
	not plain 'nil'.  Previously, any non-nil 'header-line-format'
	resulted in a (possibly empty) header line.  This change adds some
	flexibility by also taking a non-nil value of 'header-line-format' to
	mean that no header line should be displayed if it's a list whose
	'car' is a symbol and either that symbol is ':eval' and the second
	list element evaluates to 'nil', or the symbol's value as a variable
	is 'nil' or void.
	(Bug#63825)

	* src/xdisp.c (safe_eval_inhibit_quit): New function.
	* src/lisp.h (safe_eval_inhibit_quit): Declare it.
	* src/window.c (null_header_line_format): New function.
	(window_wants_header_line): Use it.

	* doc/lispref/modes.texi (Header Line): Update to reflect new
	conditions for displaying a window's header line.

	* etc/NEWS: Announce updated treatment of 'header-line-format'.

2023-06-06  Sean Whitton  <spwhitton@spwhitton.name>

	eval-command-interactive-spec: Shorten code

	* lisp/emacs-lisp/subr-x.el (eval-command-interactive-spec): Don't
	reimplement checking for an 'interactive-form symbol property.
	`interactive-form' already does this.  Thanks to Stefan Monnier.

2023-06-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsContextMenu.java (display): Use
	`EmacsHolder' instead of `Holder'.
	* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog): Use
	`EmacsDialogButtonLayout' to ensure that buttons are wrapped
	properly.
	(display): Adjust for new holder class.
	* java/org/gnu/emacs/EmacsDialogButtonLayout.java
	(EmacsDialogButtonLayout, onMeasure, onLayout): New functions.

	* java/org/gnu/emacs/EmacsDrawLine.java:
	* java/org/gnu/emacs/EmacsFillPolygon.java: Remove redundant
	imports.
	* java/org/gnu/emacs/EmacsHolder.java (EmacsHolder<T>):
	* java/org/gnu/emacs/EmacsService.java (class Holder<T>)
	(getEmacsView, EmacsService): Rename `Holder' to `EmacsHolder'
	and make it public.

2023-06-06  Po Lu  <luangruo@yahoo.com>

	Improve undo behavior on Android

	* lisp/simple.el (undo-auto-amalgamate): Update doc string to
	describe new amalgamating commands.
	(analyze-text-conversion): Make this an amalgamating command by
	default, unless a new line has been inserted.  Also, shorten the
	undo boundary timer.
	* src/textconv.c (really_commit_text)
	(really_set_composing_text): Correctly report ephemeral
	deletions.
	(syms_of_textconv): Fix doc strings.

2023-06-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-05  Michael Albinus  <michael.albinus@gmx.de>

	Improve tree-sitter tests on emba

	* test/infra/Dockerfile.emba (emacs-tree-sitter): Install further
	grammars.

	* test/infra/Makefile.in (subdir_template): Special handling of src.
	(TREE-SITTER-FILES): Add treesit-tests.el.

	* test/infra/test-jobs.yml: Regenerate.

2023-06-05  Eli Zaretskii  <eliz@gnu.org>

	Fix bug with point-adjustment after M-x COMMAND

	* src/keyboard.c (command_loop_1): Preserve 'last_point_position'
	across command execution, to avoid bugs in
	'adjust_point_for_property' if the command invokes
	'recursive-edit'.  Reported by Mats Lidell <matsl@gnu.org>.

2023-06-05  Michael Albinus  <michael.albinus@gmx.de>

	Adapt emba integration

	* test/infra/Dockerfile.emba (emacs-tree-sitter):
	Use "/root/.emacs.d/tree-sitter" instead of "/usr/local/lib/tree-sitter".

	* test/infra/gitlab-ci.yml (.job-template): Run "/bin/bash -xvc".
	(test-eglot): Revert last change, it doesn't work yet.
	(test-tree-sitter): Set TEST_HOME instead of LD_LIBRARY_PATH.

2023-06-05  Po Lu  <luangruo@yahoo.com>

	Clear batch edit state once a new input connection is established

	* src/androidterm.c (android_handle_ime_event): Clear batch edit
	state, in case the previous input method forgot to do so.

2023-06-05  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	function clearInputFlags.
	* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
	Stop reporting changes after a new input method connection is
	established.
	* src/androidterm.c (android_handle_ime_event): Implement that
	change.
	(JNICALL): New function.

2023-06-05  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-04  Sean Whitton  <spwhitton@spwhitton.name>

	* lisp/emacs-lisp/subr-x.el (eval-command-interactive-spec): New
	function.

2023-06-04  Mattias Engdegård  <mattiase@acm.org>

	Better internal-make-closure optimization

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
	Optimize closed-over values in closure creation like any other, which
	can lead to stack variables being eliminated.

2023-06-04  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp-cstr.el (cl-macs): Require it.

	* lisp/emacs-lisp/comp.el (comp-function-type-spec): Improve.

2023-06-04  Andrea Corallo  <akrl@sdf.org>

	Print know function types in C-h f

	* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Improve comment.
	(comp-funciton-type-spec): New function.
	* lisp/help-fns.el (help-fns--signature): Update to make use of
	`comp-funciton-type-spec'.

2023-06-04  Andrea Corallo  <akrl@sdf.org>

	* Have `comp-cstr-to-type-spec' handle comp-cstr-f as well

	* lisp/emacs-lisp/comp-cstr.el (comp--simple-cstr-to-type-spec): New
	function.
	(comp-cstr-to-type-spec): Make use of.

2023-06-04  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix line lengths

	* lisp/emacs-lisp/comp.el: Improve 85cb075b1bd.

	* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Tweak framep.

2023-06-04  Po Lu  <luangruo@yahoo.com>

	* configure.ac: Tune pty detection for Android.

2023-06-04  Po Lu  <luangruo@yahoo.com>

	Fix input method synchronization problems

	* java/debug.sh (gdbserver_cmd, is_root): Prefer TCP again.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	function `queryAndSpin'.
	* java/org/gnu/emacs/EmacsService.java (EmacsService)
	(icBeginSynchronous, icEndSynchronous, viewGetSelection): New
	synchronization functions.
	(resetIC, updateCursorAnchorInfo): Call those instead.
	* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
	Call viewGetSelection.
	* src/android.c (JNICALL, android_answer_query_spin): New
	functions.

2023-06-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-03  Michael Albinus  <michael.albinus@gmx.de>

	Adapt emba integration

	* test/infra/Dockerfile.emba (emacs-eglot, emacs-tree-sitter):
	Don't install gawk.

	* test/infra/gitlab-ci.yml (test-eglot): Add company and yasnippet.

2023-06-03  Mattias Engdegård  <mattiase@acm.org>

	* admin/unidata/emoji-zwj.awk: Avoid sprint buffer overflow

	Some AWK implementations have a fixed buffer for sprintf; for mawk the
	default size is 8192 bytes.  Hoist a string concatenation from
	a sprintf call to avoid running into that limit.  See discussion at
	https://lists.gnu.org/archive/html/emacs-devel/2023-06/msg00090.html .

2023-06-03  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	ede3535051a ; Fix last change
	8ec786349e1 Fix apostrophe handling in rust-ts-mode and go-ts-mode (B...
	0eba9cf6511 * test/infra/Dockerfile.emba (emacs-base): Install also g...
	4897c98b6c4 Fix 'python-util-clone-local-variables'
	6b2c8dc9050 Revert "Enhance Python font-lock to support multilines"
	348e4504c6d Fix typo in calc.texi
	03663b8798a Update to Transient v0.4.1
	dc7acb1aafe Avoid errors in 'delete-forward-char' deleting static com...
	2f94f6de9d6 Make VS-15 and VS-16 compositions work correctly
	753f8aa1f14 Fix project-name for vc-aware backend in non-file buffers
	17c7915ab94 ; Fix 'package-install-upgrade-built-in' check for package...
	e252ce26eab Add type_predicate 'is' as keyword in typescript-ts-mode ...
	0a354d65784 Fix infloop in info-look.el
	83b22139e4c Fix several todo-mode.el item editing bugs (bug#63811)
	ed4cd3eddf7 dockerfile-ts-mode: Prevent empty categories in imenu (Bu...
	2e20e318da2 Brush up doc strings and terminology in plstore.el
	372bc1278c2 Add internal documentation on plstore.el
	23a14e7b902 Add compact_constructor_declaration font-locking to java-...
	500abc4dc37 * lisp/tmm.el (tmm-completion-delete-prompt): Add more ch...
	afc1f329356 Allow to disable the DWIMish behavior of 'x' in package menu
	08104c01504 Allow dired to invoke secondary browser
	a3063f0bc87 Add a binding for enriched-toggle-markup
	d8ba28fa394 Fix order of tmm-menubar when 'tmm-mid-prompt' is nil

	# Conflicts:
	#	etc/NEWS

2023-06-03  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	3f441525679 Save the tree-sitter grammar recipe when installing a gra...
	c0c7b947baf Add instructions and test file for VS-15/VS-16
	3be33aff963 A better fix for "Fix cancellation of Wdired"
	756244c6963 ; * lisp/minibuffer.el (completions-header-format): Doc fix.
	5d844e129ad Fix tmm-menubar when 'tmm-completion-prompt' is nil

	# Conflicts:
	#	lisp/treesit.el

2023-06-03  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	95ee5477e16 ; * src/lread.c (read0, skip_lazy_string): Fix commentary...

2023-06-03  Michael Albinus  <michael.albinus@gmx.de>

	Adapt emba integration

	* admin/notes/emba: Improve docker call.

	* test/infra/Dockerfile.emba (emacs-eglot, emacs-tree-sitter):
	Install also gawk.

	* test/infra/Makefile.in (TREE-SITTER-FILES): New variable.
	(tree-sitter-files-template): New rule.
	(.PHONY, generate-test-jobs): Add it to dependencies.

	* test/infra/gitlab-ci.yml (variables): Disable CI_DEBUG_TRACE.
	(test-tree-sitter): Extends also .tree-sitter-files-template.  Use
	$tree_sitter_files.

	* test/infra/test-jobs.yml: Regenerate.

2023-06-03  Steven Allen  <steven@stebalien.com>

	Fix use-package :vc keyword when byte-compiled

	* lisp/use-package/use-package-core.el (use-package-handler/:vc):
	Return the new 'body'. Otherwise, the entire package declaration gets
	dropped when byte-compiling.
	* test/lisp/use-package/use-package-tests.el
	(use-package-test-handler/:vc-6): test it.

2023-06-03  Po Lu  <luangruo@yahoo.com>

	Fix typos in Android port

	* lisp/bindings.el (global-map): Bind cut, copy and paste.
	* src/androidterm.c (JNICALL): Use key.

2023-06-03  Po Lu  <luangruo@yahoo.com>

	Behave correctly when IMEs commit or compose text with active mark

	* src/textconv.c (really_commit_text)
	(really_set_composing_text): Delete text between mark and point
	if the mark is active.  Don't record changes if the text is
	empty.

2023-06-03  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidterm.c (struct android_get_extracted_text_context):
	New field `mark_active'.
	(android_get_extracted_text): Set that field.
	(struct android_extracted_text_class): New field `flags'.
	(android_build_extracted_text): New argument `mark_active'.  Set
	flags appropriately.
	(NATIVE_NAME, android_update_selection): Likewise.
	* src/textconv.c (get_extracted_text): New argument
	`mark_active'.  Set it if the mark is active.
	* src/textconv.h: Update prototypes.

2023-06-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

	* etc/MACHINES: Fix reference to obsolete file.

2023-06-02  Michael Albinus  <michael.albinus@gmx.de>

	Fix tree-sitter tests on emba

	* test/infra/Makefile.in: Revert tree-sitter relevant changes.

	* test/infra/gitlab-ci.yml (test-tree-sitter): Remove
	.tree-sitter-files-template.  List files explicitly.

	* test/infra/test-jobs.yml: Regenerate.

2023-06-02  Po Lu  <luangruo@yahoo.com>

	Improve Eldoc text conversion support

	* lisp/emacs-lisp/eldoc.el: ("back-to-indentation"): Register
	touch screen and text conversion commands.

2023-06-02  Po Lu  <luangruo@yahoo.com>

	Improve CC Mode support for text conversion

	* lisp/progmodes/cc-cmds.el (c-post-text-conversion): New
	function.
	* lisp/progmodes/cc-mode.el (c-initialize-cc-mode): Add it as
	the `post-texxt-conversion-hook'.
	* lisp/simple.el (post-text-conversion-hook): New hook.
	(analyze-text-conversion): Run it until success before trying
	post insert functions.

2023-06-02  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsInputConnection.java
	(EmacsInputConnection): Apply workarounds on Vivo devices as
	well.
	* src/android.c (sendKeyPress, sendKeyRelease): Clear counter.
	* src/androidgui.h (struct android_key_event): New field
	`counter'.
	* src/androidterm.c (handle_one_android_event): Generate
	barriers as appropriate.
	(JNICALL): Set `counter'.
	* src/frame.h (enum text_conversion_operation):
	* src/textconv.c (detect_conversion_events)
	(really_set_composing_text, handle_pending_conversion_events_1)
	(handle_pending_conversion_events, textconv_barrier):
	* src/textconv.h: Implement text conversion barriers and fix
	various typos.

2023-06-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-06-01  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix a bunch of

2023-06-01  Michael Albinus  <michael.albinus@gmx.de>

	Adapt tree-sitter tests on emba

	* test/infra/Makefile.in (TREE-SITTER-FILES): Double-quote variable.

	* test/infra/test-jobs.yml: Regenerate.

2023-06-01  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (comp-jump-table-optimizable): Refactor.

2023-06-01  Po Lu  <luangruo@yahoo.com>

	Correctly export file:// URIs on Android

	* java/org/gnu/emacs/EmacsService.java (browseUrl): If uri's
	scheme is `file', rewrite it into a content URI.

2023-06-01  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsInputConnection.java
	(EmacsInputConnection, performContextMenuAction): New function.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative)
	(performContextMenuAction): New function.
	* src/android.c (android_get_gc_values): Implement more
	efficiently.
	* src/androidterm.c (android_handle_ime_event): Pass through
	`update' argument to `finish_composing_text'.  Fix thinko.
	* src/textconv.c (really_finish_composing_text)
	(really_set_composing_text, really_set_composing_region)
	(handle_pending_conversion_events_1, finish_composing_text): New
	argument `update'.  Notify IME of conversion region changes if
	set.
	* src/textconv.h: Update structs and prototypes.

2023-06-01  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsInputConnection.java
	(EmacsInputConnection): Add compatibility adjustments for
	Samsung devices.

2023-06-01  Po Lu  <luangruo@yahoo.com>

	Correctly report start and end in extracted text

	* src/androidterm.c (struct android_get_extracted_text_context):
	New field `start_offset' and `end_offset'.  Delete `offset'.
	(android_get_extracted_text, android_build_extracted_text):
	Replace `offset' with new args `start_offset' and `end_offset'.
	(NATIVE_NAME): Set `start_offset' and `end_offset'.
	(android_update_selection): Likewise.
	* src/textconv.c (get_extracted_text): Likewise.
	* src/textconv.h: Update prototypes.

2023-06-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-31  Mattias Engdegård  <mattiase@acm.org>

	* lisp/composite.el (compose-gstring-for-terminal): Fix omitted var.

	It may not make much of a difference since the code path is probably
	only taken once for i=0 with no more glyphs in the input, but this
	change avoids depending on such external invariants and makes
	the code less mystifying to the reader (bug#63807).

2023-05-31  Mattias Engdegård  <mattiase@acm.org>

	Disable unused-return-value warning for delq and delete, again

	* lisp/emacs-lisp/bytecomp.el (important-return-value-fns):
	Remove `delq` and `delete` since they resulted in false
	positives that nobody was interested in silencing (bug#61730).

2023-05-31  Mattias Engdegård  <mattiase@acm.org>

	* lisp/net/shr.el (shr-dom-max-natural-width): Rewrite muddled code.

2023-05-31  Zaz Brown  <zazbrown@zazbrown.com>  (tiny change)

	Make forward and backward-to-word arg optional

	* lisp/misc.el (forward-to-word, backward-to-word): Make the
	argument optional.  (Bug#63626)

2023-05-31  Po Lu  <luangruo@yahoo.com>

	Fix build with Lisp_Object type checking

	* configure.ac: Pass through `--enable-check-lisp-object-type'
	on Android.
	* src/alloc.c (android_make_lisp_symbol):
	* src/android.c:
	* src/androidfns.c (android_set_no_focus_on_map)
	(android_set_no_accept_focus):
	* src/androidfont.c (androidfont_match, androidfont_open_font):
	* src/androidselect.c (Fandroid_get_clipboard)
	(Fandroid_get_clipboard_targets):
	* src/keyboard.c (make_lispy_event, syms_of_keyboard):
	* src/sfntfont.c (sfnt_enum_font_1, sfntfont_list_1):
	* src/textconv.c (really_set_point_and_mark): Fix Lisp_Object
	and integer screw-ups.

2023-05-31  Michael Albinus  <michael.albinus@gmx.de>

	Improve tree-sitter tests on emba

	* test/infra/Dockerfile.emba (emacs-tree-sitter): Install only
	grammars which are needed.

	* test/infra/Makefile.in (subdir_template): Special handling of
	progmodes.
	(TREE-SITTER-FILES): New variable.
	(tree-sitter-files-template): New rule.
	(.PHONY, generate-test-jobs): Add it to dependencies.

	* test/infra/gitlab-ci.yml (.tree-sitter-template):
	Add test/lisp/progmodes/*-ts-mode-resources/**.
	(test-tree-sitter): Extends also .tree-sitter-files-template.  Use
	$tree-sitter-files.

	* test/infra/test-jobs.yml: Regenerate.

2023-05-31  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/input.texi (Other Input Devices, Touchscreens)
	(On-Screen Keyboards):
	* doc/lispref/commands.texi (Misc Events):
	* src/android.c (android_faccessat): Improve word choices and
	commentary.
	* lisp/touch-screen.el (touch-screen-handle-scroll): Make
	precision scrolling work better with horizontal movement.

2023-05-31  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* exec/exec.c (insert_args): New argument `arg3'.  Replace
	argv[1] with that argument.
	(exec_0): Pass file name of script to `insert_args'.

2023-05-31  Po Lu  <luangruo@yahoo.com>

	Update android.texi

	* doc/emacs/android.texi (What is Android?):
	(Android Startup):
	(Android File System):
	(Android Environment):
	(Android Windowing):
	(Android Troubleshooting): Improve wording and various other
	issues.

2023-05-31  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-31  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/debug.sh (is_root): Go back to using unix sockets; allow
	adb to forward them correctly.
	* java/org/gnu/emacs/EmacsInputConnection.java
	(getExtractedText): Don't print text if NULL.
	* java/org/gnu/emacs/EmacsService.java (EmacsService): New field
	`imSyncInProgress'.
	(updateIC): If an IM sync might be in progress, avoid deadlocks.
	* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
	Set `imSyncInProgress' across synchronization point.
	* src/android.c (android_check_query): Use __atomic_store_n.
	(android_answer_query): New function.
	(android_begin_query): Set `android_servicing_query' to 2.
	Check once, and don't spin waiting for query to complete.
	(android_end_query): Use __atomic_store_n.
	(android_run_in_emacs_thread): Compare-and-exchange flag.  If
	originally 1, fail.
	* src/textconv.c (really_set_composing_text): Clear conversion
	region if text is empty.

2023-05-30  Andrea Corallo  <akrl@sdf.org>

	'describe-function' shows function inferred type when available

	* lisp/help-fns.el (help-fns--signature): Print function type for
	native compiled code.
	* etc/NEWS: Add entry.

2023-05-30  Mattias Engdegård  <mattiase@acm.org>

	Add function declarations

	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns):
	Add get-byte, string-width, unibyte-string, special-variable-p, frexp,
	buffer-hash, buffer-line-statistics, load-average, md5, secure-hash,
	string-collate-equalp, string-collate-lessp, string-to-unibyte,
	string-version-lessp, current-cpu-time.
	(side-effect-and-error-free-fns): Add equal-including-properties.
	(pure-fns): Add equal-including-properties, string-version-lessp.
	* lisp/emacs-lisp/bytecomp.el (important-return-value-fns):
	Add match-data.
	* lisp/subr.el (buffer-local-boundp, subr-primitive-p, gensym)
	(frame-configuration-p, apply-partially, make-composed-keymap)
	(keymap-canonicalize, listify-key-sequence, event-modifiers)
	(event-basic-type, mouse-event-p, event-start, event-end)
	(event-click-count, event-line-count, posnp, posn-window, posn-area)
	(posn-point, posn-x-y, posn-col-row, posn-actual-col-row)
	(posn-timestamp, posn-string, posn-image, posn-object)
	(posn-object-x-y, posn-object-width-height, provided-mode-derived-p)
	(derived-mode-p, autoloadp, locate-eln-file, symbol-file)
	(process-lines-handling-status, process-lines)
	(process-lines-ignore-status, process-get)
	(copy-overlay, shell-quote-argument, field-at-pos):
	Add appropriate function declarations.

2023-05-30  Mattias Engdegård  <mattiase@acm.org>

	xml.el: remove incorrect and botched attribute whitespace collapse

	* lisp/xml.el (xml-parse-attlist): Don't attempt to collapse multiple
	consecutive whitespace characters into a single space, which is wrong
	to do a this point when attributes must be assumed to be CDATA.

	The code was actually unintentionally correct since it forgot to use
	the return value of `replace-regexp-in-string` (bug#63740).

2023-05-30  Mattias Engdegård  <mattiase@acm.org>

	* test/lisp/dnd-tests.el (dnd-tests-begin-text-drag): Fix typo.

2023-05-30  Mattias Engdegård  <mattiase@acm.org>

	Avoid using rx `any` for `not-newline`

	Despite its name, `any` does not match any character (use `anychar`
	for that) but is an old synonym for `not-newline` and `nonl`,
	retained for compatibility with the obsolete `sregex` package.

	(In SRE as defined by SRFI-115, `any` does match any character.)

	There is also a mild but unnecessary confusion with the more
	frequently used `any` construct for character alternatives.

	* lisp/edmacro.el (edmacro-mode-font-lock-keywords):
	* lisp/erc/erc.el (erc--ensure-url):
	* lisp/org/org.el (org-fontify-meta-lines-and-blocks-1):
	* lisp/progmodes/scheme.el (scheme-imenu-generic-expression):
	* test/lisp/find-cmd-tests.el (find-cmd-test-find-cmd):
	Replace uses of `any` with `nonl`.

2023-05-30  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-30  Mattias Engdegård  <mattiase@acm.org>

	Clean up defcustom type quote check

	* lisp/emacs-lisp/bytecomp.el
	(byte-compile--suspicious-defcustom-choice): Rename to...
	(byte-compile--defcustom-type-quoted): ...this and rewrite to make
	more sense.  All callers updated.
	(byte-compile-nogroup-warn): Better warning message.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(test-bytecomp-defgroup-choice): This never failed because it wasn't
	actually a test.  Turn it into...
	(bytecomp-test-defcustom-type-quoted): ...this, which is.

2023-05-30  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/gitlab-ci.yml (test-tree-sitter): Fix file list.

2023-05-30  Protesilaos Stavrou  <info@protesilaos.com>

	Update modus-themes to their version 4.2.0

	* doc/misc/modus-themes.org: Update the manual.

	* etc/themes/modus-operandi-tritanopia-theme.el:
	* etc/themes/modus-vivendi-tritanopia-theme.el: Add new themes
	  optimized for users with blue-yellow color deficiency (tritanopia).

	* etc/themes/modus-operandi-deuteranopia-theme.el:
	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-operandi-tinted-theme.el:
	* etc/themes/modus-vivendi-deuteranopia-theme.el:
	* etc/themes/modus-vivendi-theme.el:
	* etc/themes/modus-vivendi-tinted-theme.el: Update theme files.

	* etc/themes/modus-themes.el: Update main file to the latest version.

	* etc/NEWS: Rephrase the announcement about the new Modus themes to
	  also mention the tritanopia-optimized items.

	Detailed release notes here:
	<https://protesilaos.com/codelog/2023-05-30-modus-themes-4-2-0/>.

2023-05-30  F. Jason Park  <jp@neverwas.me>

	Preserve prompt in erc-cmd-CLEAR

	* etc/ERC-NEWS: Mention behavioral changes to functionality provided
	by the `truncate' and `log' modules and also the "/CLEAR" command.
	* lisp/erc/erc-log.el (erc-truncate-buffer-on-save): Deprecate option
	because three's a crowd, and ERC already has a dedicated module as
	well as a slash command for this purpose.  And although this commit
	restores functionality, this option has been unusable since at least
	the release of ERC 5.5, with no known complaints received thus far.
	Also, the doc string of `erc-save-buffer-in-logs' makes no mention of
	this feature WRT interactive invocations or otherwise.
	(erc-log-mode, erc-log-enable, erc-log-disable): Subscribe to
	new internal hook `erc--pre-clear-functions'.
	(erc-log--save-in-progress-p): New variable to help restore
	`erc-truncate-buffer-on-save' and promote code reuse.
	(erc-logging-enabled): Guard with `erc-log--saved-in-progress-p'.
	(erc-save-buffer-in-logs): Overload `buffer' parameter to allow
	various hooks to supply a non-buffer as well.  Warn when people use
	`erc-truncate-buffer-on-save', which is now deprecated.
	* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-enable,
	erc-stamp-disable): Subscribe to `erc--pre-clear-functions'.
	(erc-stamp--update-saved-position): New function for updating
	last-logged marker on `erc-stamp--insert-date-function'.
	(erc-stamp--reset-on-clear): New function to forget last inserted
	stamps when truncating.
	* lisp/erc/erc-truncate.el (erc-truncate-mode, erc-truncate-enable,
	erc-truncate-disable): Use `erc-insert-done-hook' instead of
	`erc-insert-post-hook', as implicitly suggested by an ancient comment,
	which ponders whether truncating the buffer at the insertion phase may
	be harmful to other hook members.
	(erc-truncate-buffer-to-size): Set truncation boundary at message
	break instead of line break.  Run `erc--pre-clear-functions'.
	(erc-truncate-buffer): Save excursion.  This should probably be
	handled by `erc-truncate-buffer-to-size' instead, but that's
	likelier to cause breakage in third-party code.
	* lisp/erc/erc.el (erc--pre-clear-functions): New internal hook.
	(erc-cmd-CLEAR): Run `erc--pre-clear-functions' before clearing, and
	don't blow away prompt.  The latter was a regression caused by
	05f6fdb9e78 "Preserve ERC prompt and its bounding markers".
	* test/lisp/erc/erc-scenarios-log.el: New file.  (Bug#60936)

2023-05-30  F. Jason Park  <jp@neverwas.me>

	Recompute erc-prompt when inserting messages

	* lisp/erc/erc.el (erc--refresh-prompt): New function for redrawing
	the prompt in a couple select places.
	(erc-display-line-1, erc-display-msg): Replace the prompt after
	inserting messages.
	* test/lisp/erc/erc-tests.el (erc--refresh-prompt): New
	test.  (Bug#60936)

2023-05-30  F. Jason Park  <jp@neverwas.me>

	Simplify erc-tab interface

	* etc/ERC-NEWS: Improve section mentioning `erc-tab'.
	* lisp/erc/erc-button.el (erc-button-alist): Restore a commented out
	version of the "<URL ...>" entry, which was dropped in 5adda2f4683
	"Revise FORM-as-function interface in erc-button-alist" for being
	redundant.  This may help unlikely objectors better adapt to the
	churn.
	(erc-button-next, erc-button-previous): Don't bother accommodating raw
	prefix arguments; expect numeric arguments only.
	* lisp/erc/erc.el (erc-tab): Change interactive spec to lowercase
	"p".  (Bug#60933)

2023-05-30  F. Jason Park  <jp@neverwas.me>

	Add command to view ERC-NEWS

	* etc/ERC-NEWS: Mention `erc-news' command.
	* lisp/erc/erc.el (erc--news-url, erc--news-temp-file, erc-news): Add
	new command and supporting variable.

2023-05-30  F. Jason Park  <jp@neverwas.me>

	Document recommended way to use ERC over Tor

	* doc/misc/erc.texi: Add new SOCKS section to the chapter on
	Integrations.  Also bump version in front matter.
	* lisp/erc/erc.el (erc-open-socks-tls-stream): New convenience
	function to connect over Tor via SOCKS proxy.

2023-05-29  Andrea Corallo  <akrl@sdf.org>

	Revert "* Nativecomp disable propagation of pre slot access type check..."

	This reverts commit c8e527cbeeea6be9bb713af33a3f40408b261234 as
	56a8d57d032 fixes the root cause.

2023-05-29  Andrea Corallo  <akrl@sdf.org>

	comp: Recompute type slots after byte compilation for user types

	* lisp/emacs-lisp/comp-cstr.el (comp--compute-typeof-types)
	(comp--compute--pred-type-h): New functions.
	(comp-cstr-ctxt): Make use of.
	(comp-cstr-ctxt-update-type-slots): New function.

	* lisp/emacs-lisp/comp.el (comp-spill-lap): Use
	`comp-cstr-ctxt-update-type-slots'.

2023-05-29  Michael Albinus  <michael.albinus@gmx.de>

	Add tree-sitter tests to emba

	* admin/notes/emba: Add docker image emacs-tree-sitter.  Improve
	docker call.

	* test/infra/Dockerfile.emba (emacs-tree-sitter): New image.

	* test/infra/gitlab-ci.yml (.tree-sitter-template): New template.
	(build-image-tree-sitter, test-tree-sitter): New jobs.

2023-05-29  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_blit_copy):
	(android_blit_xor): Fix typos.

2023-05-29  Po Lu  <luangruo@yahoo.com>

	Work around more problems with Bitmaps

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	function `blitRect'.
	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
	Use it on Android 8.x.
	* src/android.c (blitRect): Implement new function.

2023-05-29  Michael Albinus  <michael.albinus@gmx.de>

	Fix regression when saving tramp-default-proxies-alist

	* lisp/net/tramp.el (tramp-add-hops): Suppress `signal-hook-function'.
	Save `tramp-default-proxies-alist' only when changed.

2023-05-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_neon_mask_line): Fix iteration
	over remainder.
	(android_blit_copy): Be more paranoid.

2023-05-29  Po Lu  <luangruo@yahoo.com>

	Implement android_copy_area in C

	* java/org/gnu/emacs/EmacsCopyArea.java: Remove file.
	* java/org/gnu/emacs/EmacsService.java (EmacsService, copyArea):
	Delete function.
	* src/android.c (struct android_emacs_service)
	(android_init_emacs_service): Remove `copy_area'.
	(android_create_gc, android_change_gc, android_get_gc_values):
	Record new GC values.
	(android_neon_mask_line): New function.
	(android_blit_copy, android_blit_xor): New functions.
	(android_copy_area): Implement in C.
	(android_lock_bitmap): Accept drawables instead of windows.
	* src/android.h: Adjust prototype for `android_lock_bitmap'.
	* src/androidgui.h (struct android_gc): Record last known GC
	values.

2023-05-28  Andrea Corallo  <akrl@sdf.org>

	* Nativecomp disable propagation of pre slot access type check (bug#63710)

	* lisp/emacs-lisp/comp.el (comp-add-cond-cstrs): Temporary disable
	propagation of pre slot access type check.

2023-05-28  Laurence Warne  <laurencewarne@gmail.com>

	Fix unstable proced test

	Fix unstable proced test by omitting the revert parameter in
	'proced-update'.  This was caused by the process being refined on
	exiting between the initial 'proced' call and the successive
	'proced-update' call.  This resulted in proced skipping the refinement
	in 'proced-update', causing all processes to be shown again and the
	test to fail.

	* test/lisp/proced-tests.el (proced-refine-with-update-test): Do not
	use revert parameter when calling 'proced-update'.

2023-05-27  Po Lu  <luangruo@yahoo.com>

	Add extra thread-related checking

	* java/org/gnu/emacs/EmacsService.java (EmacsService)
	(checkEmacsThread): New function.
	(fillPolygon, drawRectangle, drawLine, drawPoint, copyArea)
	(clearArea):
	* java/org/gnu/emacs/EmacsThread.java (EmacsThread):
	* java/org/gnu/emacs/EmacsView.java (EmacsView, swapBuffers):
	Call where appropriate.

2023-05-27  Michael Albinus  <michael.albinus@gmx.de>

	Minor Tramp fixes

	* lisp/net/tramp-sh.el (tramp-sh-handle-process-file): Set `env'
	explicitly.
	(tramp-barf-if-no-shell-prompt): Still add optional trailing
	`ansi-color-control-seq-regexp'.

	* lisp/net/tramp.el (tramp-make-tramp-file-name): Keep hop while
	in file name completion.

	* test/lisp/net/tramp-tests.el
	(tramp-test26-interactive-file-name-completion): Adapt test.

2023-05-27  Po Lu  <luangruo@yahoo.com>

	Remove synchronization around `damageRegion'

	* java/org/gnu/emacs/EmacsView.java (EmacsView, swapBuffers):
	Remove unnecessary documentation.  `damageRegion' is only
	changed from the Emacs thread.

2023-05-27  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	package-tests.el: Add test for last change

	* test/lisp/emacs-lisp/package-tests.el (package-test-desc-from-buffer):
	Make sure the absence of the terminating comment does not matter.

2023-05-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/package.el (package-buffer-info): Fix last change

	The code that follows expects point to be at/near the end of the buffer.

2023-05-26  Alan Mackenzie  <acm@muc.de>

	Fontify Java constructor names and arglists

	This fixes bug#63328.

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): New
	variable got-stmt-block.  After scanning an arglist, set
	got-arglist to t.  When we have as yet no identifier,
	got-arglist, and scan an open brace, test the "type" for being
	the name of the enclosing class.
	(c-directly-in-class-called-p): Test the two names for
	equality, not merely one being the head of the other.

2023-05-26  Mattias Engdegård  <mattiase@acm.org>

	Add more function declarations

	* lisp/subr.el (buffer-narrowed-p, sha1, match-substitute-replacement)
	(version-to-list, version<, version<=, version=)
	(function-get, subregexp-context-p, split-string)
	(combine-and-quote-strings, split-string-and-unquote)
	(replace-regexp-in-string, syntax-after)
	(string-trim-left, string-trim):
	* lisp/emacs-lisp/subr-x.el (hash-table-empty-p, hash-table-keys)
	(hash-table-values, string-glyph-split)
	(string-clean-whitespace, string-fill, string-limit)
	(string-pixel-width):
	* lisp/env.el (substitute-env-vars, substitute-env-in-file-name)
	(setenv-internal):
	* lisp/emacs-lisp/rx.el (rx-to-string):
	* lisp/emacs-lisp/regexp-opt.el (regexp-opt-depth)
	(regexp-opt-charset):
	Add appropriate declarations: pure, side-effect-free, and/or
	important-return-value.

2023-05-26  Spencer Baugh  <sbaugh@janestreet.com>

	Support setting PAGER=cat in comint.el (bug#62958)

	Paging can be undesirable in comint-derived commands such as
	async-shell-command and M-x shell.  It is a frequent footgun for new
	Emacs users when they try to run commands which start a pager in such
	modes.

	Simply adding (setenv "PAGER" "cat") globally is not correct, since
	that will break modes like term, which support paging quite well.
	It's only and exactly the comint-derived modes which don't need
	paging.

	* lisp/comint.el (comint-pager): Add. (bug#62958)
	(comint-exec-1): Use comint-pager to set PAGER.

2023-05-26  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	aa5158630e7 Use 'font-lock-extend-region-functions' in python-mode
	b7b82ecb2b4 Fix python-info-docstring-p
	f42de74ebea ; * src/lread.c (read0, skip_lazy_string): Fix commentary...
	b6b384023a9 Fix cancellation of Wdired
	916c2a19bde Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	f535c0e49d5 Handle #@00 in new reader in a compatible way (bug#63722)
	40a758f5ceb ; Minor fixes in documentation of recently-changed VC com...
	c0d7447e9dc ; * etc/NEWS: Describe the Cairo XCB option.  (Bug#63589)
	42052686752 Don't mark selection request events
	9f5249d5c8d Disable cairo-xcb support by default
	e5f42706ce2 * lisp/progmodes/project.el: Move :safe from defcustom to...
	3afe4a42e90 * lisp/vc/vc-annotate.el (vc-annotate-mode-menu): Quote v...
	b62a2b08b80 Add vc-create/switch/print-branch to menu and update docu...
	d292d282292 Fix rare crashes in 'try_window_reusing_current_matrix'
	709d9020021 Make last Tramp change less invasive
	a72a1f24fcb ; Fix last change.
	5c6517a115d ; * lisp/menu-bar.el (popup-menu): Doc fix.
	212884f2bfe ; Fix last change.
	1b9812af80b ; * etc/PROBLEMS: Document problem with GnuPG 2.4.1.  (Bu...
	765edc204d4 ; Support SQLite3 extensions on macOS
	5aadb87d6f6 Fix 'use-dialog-box-p' and friends

	# Conflicts:
	#	etc/NEWS

2023-05-26  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	6f6071c5261 Avoid duplicate load-path entry when generating package a...
	117b29c6f66 ; Improve documentation of Isearch command properties
	a347b26cba2 Disable loading SQLite3 extensions when SQLite3 version i...
	fe22bf503fb ; * lisp/progmodes/project.el (project-switch-use-entire-...
	64dbbde3b77 Fix visiting HTML files encoded in iso-2022 variants
	5c95239aca2 ; Fix markup of some treesit vars in Elisp manual.
	6ad041939be Support 'isearch-allow-scroll' in 'pixel-scroll-precision...
	ecccdc07a09 shr: allow moving between adjacent anchors
	504ef25ef36 ; * etc/NEWS: Fix typos.
	d6fb868cdd3 Fix multihop file name expansion in Tramp
	dd3e4e14fdc Remove obsolete information from Gnus manual
	2a5c946f879 Preserve mark in comint-history-isearch
	6b60c8142ea Fix systemd unit completion for old versions of systemd
	8c56557cd9d Fix Skeletons menu-bar menu in Python modes
	58eb38cfb47 ; * etc/NEWS: missing definite article
	cf403628692 ; * etc/NEWS: PGTK cannot switch to -new automatically (b...
	ead3a2abbfc Fix loading SQLite extensions
	a6bddd17658 ; * etc/NEWS: Fix typos.
	f49fe936abd * etc/NEWS: Note dotimes loop variable scoping change (bu...
	cec9333dc52 Fix c-ts-mode--top-level-declarator
	f571e8f1bb6 Improve c-ts-mode font-lock for function names (bug#63390)
	42a28ffdc27 * lisp/tab-bar.el: Don't use 'minibuffer-selected-window'...
	8e61d23f71e Split windows horizontally in places that use split to cr...
	459d08c7fe7 Fix tree-sitter test (bug#63481)
	3bc5efb87e5 ; * lisp/emacs-lisp/benchmark.el (benchmark-progn): Fix d...

	# Conflicts:
	#	etc/NEWS

2023-05-26  Eli Zaretskii  <eliz@gnu.org>

	Fix emacsclient when there are irrecoverable file-visiting errors

	* lisp/server.el (server-process-filter, server-return-error):
	Display the error message to be sent to the client as a regular
	message, to give the user the opportunity to see it.  Delete the
	terminal immediately after sending the error message to the
	client, to make sure the terminal's modes are restored.
	(Bug#63629)

2023-05-26  Eshel Yaron  <me@eshelyaron.com>

	Add customization options for dictionary-search

	Allow users to customize 'dictionary-search' via several new
	customization options.

	* lisp/net/dictionary.el (dictionary-define-word)
	(dictionary-match-word, dictionary-completing-read-word)
	(dictionary-dictionaries, dictionary-completing-read-dictionary)
	(dictionary-display-definition-in-help-buffer): New functions.
	(dictionary-read-word-prompt)
	(dictionary-display-definition-function)
	(dictionary-read-word-function)
	(dictionary-read-dictionary-function)
	(dictionary-search-interface): New user options.
	(dictionary-search): Use them.
	(dictionary-read-dictionary-default)
	(dictionary-read-word-default): New functions, extracted from
	'dictionary-search'.
	* etc/NEWS: Announce.

2023-05-26  Po Lu  <luangruo@yahoo.com>

	Allow starting Emacs --debug-init on Android

	* doc/emacs/android.texi (Android Troubleshooting): Document
	`debug-init' option.
	* java/AndroidManifest.xml.in
	(EmacsLauncherPreferencesActivity): New activity.  Export on
	systems older than Android 7.0.
	* java/org/gnu/emacs/EmacsActivity.java (onCreate): Adjust for
	string startup argument.
	* java/org/gnu/emacs/EmacsLauncherPreferencesActivity.java: New
	file.
	* java/org/gnu/emacs/EmacsPreferencesActivity.java
	(EmacsPreferencesActivity): Don't make final.
	(startEmacsQ): Give start-up argument as an argument, not as a
	boolean.
	(startEmacsDebugInit): New function.
	(onCreate): Register new listener; make final.
	* java/org/gnu/emacs/EmacsService.java (onCreate): Pass
	extraStartupArgument.
	* java/org/gnu/emacs/EmacsThread.java (EmacsThread): Rename
	startDashQ to extraStartupArgument.
	(run): Adjust accordingly.
	* java/res/values-v24/bool.xml:
	* java/res/values/bool.xml:
	* java/res/values/strings.xml: New files.
	* java/res/xml/preferences.xml: Add new option.  Move string
	resources around.

2023-05-26  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-25  João Távora  <capitaomorte@archlinux2022.linuxvmimages.local>

	Eglot: fix execution of CodeAction commands

	Reported in
	https://github.com/joaotavora/eglot/discussions/1225.

	* lisp/progmodes/eglot.el (eglot-execute): Fix typo.

2023-05-25  Brian Leung  <leungbk@posteo.net>

	Eglot: Add nickel-mode configuration

	* lisp/progmodes/eglot.el (eglot-server-programs): Add nls for nickel-mode.

2023-05-25  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-24  Mattias Engdegård  <mattiase@acm.org>

	Fix apparently wrong `delete` and `delq` value discards (bug#61730)

	* lisp/startup.el (normal-top-level):
	Update process-environment in case the DISPLAY variable comes first.
	Also stop iterating over initial-environment once the first DISPLAY
	is found.
	* lisp/allout.el (allout-get-configvar-values):
	* lisp/org/org.el (org-display-inline-remove-overlay):
	* lisp/progmodes/gdb-mi.el (gdb-get-location):
	* lisp/progmodes/idlwave.el
	(idlwave-convert-xml-clean-routine-aliases)
	(idlwave-convert-xml-clean-sysvar-aliases):
	* lisp/textmodes/reftex.el (reftex-ref-style-toggle):
	Update the base variable after performing a destructive deletion,
	where it was obvious that this was intended.

2023-05-24  Michael Albinus  <michael.albinus@gmx.de>

	Use `small-temporary-file-directory' in Tramp

	* lisp/net/tramp-fuse.el (tramp-fuse-mount-point):
	* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options):
	Use `small-temporary-file-directory'.

2023-05-24  Andrea Corallo  <akrl@sdf.org>

	Fix nativecomp ICE compiling structure related code (bug#63674)

	* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Define the predicate to
	be effective at compile time as native comp relies on `cl-typep' that
	relies o predicates to work.

	* test/src/comp-resources/comp-test-funcs.el (cl-lib): Require.
	(comp-test-struct): Define struct.
	(comp-test-63674-1-f): Add new test.

2023-05-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/loadup.el: Don't accidentally reduce `max-lisp-eval-depth`

2023-05-24  Mattias Engdegård  <mattiase@acm.org>

	Use return values of assq-delete-all and assoc-delete-all

	* lisp/allout-widgets.el (allout-widgets-mode):
	* lisp/progmodes/eglot.el (eglot-handle-notification):
	Update variables with the new value, which was probably the intention
	here.

2023-05-24  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_decompose_compound_glyph): Allow decomposing
	up to 16 nested components.
	(CALL, LOOPCALL): Correctly error if no fdef storage exists.
	(sfnt_interpret_run): New label `next_instruction', for CALL.
	(sfnt_interpret_compound_glyph_1): Allow decomposing up to 16
	nested components.  Prevent crash if there are no end points or
	points.
	(sfnt_read_cvar_table): Prevent assigning uninitialized values.
	(sfnt_vary_simple_glyph): Update commentary.

2023-05-24  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-23  Andrea Corallo  <akrl@sdf.org>

	* test/src/comp-tests.el: Add some ret type tests for non builtin types

2023-05-23  Andrea Corallo  <akrl@sdf.org>

	comp: Propagate pre slot access type check

	* lisp/loadup.el (max-lisp-eval-depth): Increase
	`max-lisp-eval-depth' to 3400.

	* lisp/emacs-lisp/comp.el (comp-add-cond-cstrs): Pattern match pre
	slot access type check and add constraint.

	* lisp/emacs-lisp/comp-cstr.el (comp-cstr-cl-tag-p)
	(comp-cstr-cl-tag): New functions.

	* lisp/emacs-lisp/comp.el (make-comp-mvar): Add neg parameter.

2023-05-23  Andrea Corallo  <akrl@sdf.org>

	comp: Make use of predicates in propagation for non builtin types

	* lisp/emacs-lisp/comp-cstr.el (comp-cstr-ctxt): Add `pred-type-h'
	slot.
	* lisp/emacs-lisp/comp.el (comp-known-predicate-p)
	(comp-pred-to-cstr): Update.

2023-05-23  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (comp-fwprop-call): Extend to understand `record'

2023-05-23  Andrea Corallo  <akrl@sdf.org>

	comp: Account non builtin types in type hierarchy

	* lisp/emacs-lisp/cl-macs.el (cl--struct-all-parents): Add comment.

	* lisp/emacs-lisp/cl-preloaded.el (cl--struct-get-class): Likewise.

	* lisp/emacs-lisp/comp-cstr.el (comp--cl-class-hierarchy)
	(comp--all-classes): New functions.
	(comp-cstr-ctxt): Add `typeof-types' field.

	* lisp/emacs-lisp/comp-cstr.el (comp-supertypes)
	(comp-union-typesets): Update to use non builtin types.

2023-05-23  Michael Albinus  <michael.albinus@gmx.de>

	Improve check for ANSI control escape sequences in Tramp

	* lisp/net/tramp-sh.el (tramp-barf-if-no-shell-prompt):
	Remove `ansi-color-control-seq-regexp'.

	* lisp/net/tramp.el (tramp-terminal-type): Fix docstring.
	(tramp-process-one-action): Delete ANSI control escape sequences
	in buffer.  (Bug#63539)

2023-05-23  Robert Pluim  <rpluim@gmail.com>

	Stop adding the package directory to the load path

	The generated autoloads files for packages have been updating the
	load-path for the last decade.

	* lisp/emacs-lisp/package.el (package-activate-1): Don't update
	load-path with package directory.

2023-05-23  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-23  Spencer Baugh  <sbaugh@janestreet.com>

	Use faster option for running vc-hg status (Bug#63470)

	In modern Mercurial, removing the "re:" "-I" "." options provides a
	10x-20x speedup because it allows the Rust implementation of "hg
	status" to be used.

	* lisp/vc/vc-hg.el (vc-hg--program-version): Add.
	(vc-hg-dir-status-files): Use --config commands.status.relative=1 to
	make paths relative when available.

2023-05-22  Alan Mackenzie  <acm@muc.de>

	Fix syntax bugs involving escaped newlines in comments

	This fixes bug#63535

	* src/syntax.c (forw_comment): take the initial syntax from the
	argument PREV_SYNTAX rather than checking the buffer position
	for a backslash.  Update the state at each character scanned.
	(scan_sexps_forward): When the end position is escaped after a
	call to forw_comment, return this status to the caller.

2023-05-22  Mattias Engdegård  <mattiase@acm.org>

	Attempt to speed up filenotify-tests

	* test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
	Run with a lower `auto-revert-interval` (1 s) and adjust the
	a timeout value.  This should lower the time for this particular
	test from 25 to below 10 s.

2023-05-22  Michael Albinus  <michael.albinus@gmx.de>

	Support existing sshfs and rclone mount points in Tramp

	* lisp/net/tramp-fuse.el (tramp-fuse-mount-point, tramp-fuse-mounted-p):
	Support existing mount points.

2023-05-22  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-22  Michael Albinus  <michael.albinus@gmx.de>

	Mark failing filenotify test as :unstable

	* test/lisp/filenotify-tests.el (file-notify-test04-autorevert-remote):
	Tag as :unstable.

2023-05-22  Po Lu  <luangruo@yahoo.com>

	Plug various leaks and fix input method initialization

	* src/image.c (free_bitmap_record): Free bm->name correctly even
	if the display connection has been closed.
	* src/xfns.c (x_window): Use dpyinfo-specific `use_xim' flag.
	* src/xterm.c (use_xim): Remove global variable.
	(xim_destroy_callback): Free `xim_styles' if present, and set it
	to NULL to be on the safe side.
	(xim_open_dpy): Consult dpyinfo->use_xim instead.  Don't leak
	`xim_styles' if an IM was previously opened.
	(xim_initialize): Use dpyinfo-specific `use_xim' flag.
	(xim_close_dpy): Check if `dpyinfo->xim_callback_data' is set
	before unregistering the instantiation callback.
	(x_term_init): Determine whether or not to use XIM for each
	display opened, instead of using the resources of the last
	display opened to toggle a global flag.
	(x_delete_terminal): Always call `image_destroy_all_bitmaps' and
	`xim_close_dpy'.  Free storage used to hold bitmap records.
	* src/xterm.h (struct x_display_info): New field `use_xim'.

2023-05-22  F. Jason Park  <jp@neverwas.me>

	Fix custom type of erc-autojoin-channels-alist

	* lisp/erc/erc-join.el (erc-autojoin-channels-alist): In ERC 5.4, the
	type of this option changed to accept symbols signifying IRC network
	names.  However, the option's definition was not updated to reflect
	that.  See commit 9bb8d90cddf "Allow irc network symbols in
	erc-autojoin-channels-alist".

2023-05-22  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-21  Eli Zaretskii  <eliz@gnu.org>

	New Rmail commands for reading mailing-lists

	* lisp/mail/rmail.el (rmail--mailing-list-message): New internal
	function.
	(rmail-mailing-list-help, rmail-mailing-list-post)
	(rmail-mailing-list-unsubscribe, rmail-mailing-list-archive): New
	commands.
	(rmail-mode-map): Add menu items for the new commands.

	* etc/NEWS: Announce the new Rmail commands.

2023-05-21  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-20  Mattias Engdegård  <mattiase@acm.org>

	Declare more mutating functions

	* lisp/emacs-lisp/bytecomp.el (mutating-fns):
	Add assoc-delete-all, assq-delete-all and rassq-delete-all.
	* lisp/emacs-lisp/shortdoc.el (alist, list):
	Don't mutate constants in examples illustrating use of
	assoc-delete-all, assq-delete-all and rassq-delete-all.

2023-05-20  Mattias Engdegård  <mattiase@acm.org>

	Declare more functions as having important-return-value

	* lisp/subr.el (assoc-delete-all, assq-delete-all, rassq-delete-all)
	(alist-get): Declare as important-return-value.
	* lisp/emacs-lisp/bytecomp.el (important-return-value-fns):
	Add `assoc-string`.

2023-05-20  Mattias Engdegård  <mattiase@acm.org>

	Minor optimization of string-trim-left and string-trim-right

	* lisp/subr.el (string-trim-left, string-trim-right):
	Use a constant string when no REGEXP argument is given.

2023-05-20  Eli Zaretskii  <eliz@gnu.org>

	Fix async invocations in Dired with 'fish' shell

	* lisp/dired-aux.el (dired-shell-stuff-it): Separate '&' and ';'
	by blanks, for the sake of shells such as 'fish'.  Suggested by
	Lycomedes 1814 <lycomedes1814@yandex.com>.

2023-05-20  Michael Albinus  <michael.albinus@gmx.de>

	Improve handling of ANSI control sequences in Tramp

	* lisp/net/tramp-compat.el (ansi-color): Require.

	* lisp/net/tramp-sh.el (tramp-display-escape-sequence-regexp)
	(tramp-device-escape-sequence-regexp): Delete.
	(tramp-sh-handle-insert-directory, tramp-barf-if-no-shell-prompt)
	(tramp-wait-for-output): Use `ansi-color-control-seq-regexp'.

	* lisp/net/tramp.el (tramp-shell-prompt-pattern): Remove escape
	characters.
	(tramp-process-one-action, tramp-convert-file-attributes):
	Use `ansi-color-control-seq-regexp'.  (Bug#63539)

	* test/lisp/net/tramp-tests.el (tramp-display-escape-sequence-regexp):
	Don't declare.
	(tramp-test28-process-file, tramp-test32-shell-command):
	Use `ansi-color-control-seq-regexp'.
	(tramp-test45-asynchronous-requests): Adapt test.

2023-05-20  Mattias Engdegård  <mattiase@acm.org>

	Use `delq` return value (bug#61730)

	* lisp/calc/calc-graph.el (calc-graph-compute-2d):
	* lisp/calendar/appt.el (appt-activate):
	* lisp/progmodes/cc-styles.el (c-make-styles-buffer-local):
	Make use of what `delq` returns, to stave off possible mistakes or at
	least make clear that there isn't any.

2023-05-20  Po Lu  <luangruo@yahoo.com>

	Remove arbitrary process count limit

	* exec/trace.c (handle_clone_prepare):
	(handle_clone): When !REENTRANT, use malloc to allocate
	tracees after running out of static ones.

2023-05-20  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsView.java (swapBuffers): Restore
	missing damage rect code.
	(onDetachedFromWindow): Remove redundant synchronization.

2023-05-20  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-19  Mattias Engdegård  <mattiase@acm.org>

	Improved copy-tree documentation and test (bug#63509)

	* etc/NEWS: Move entry since it's an incompatible change.
	* lisp/emacs-lisp/shortdoc.el (vector): Make the example relevant.
	* lisp/subr.el (copy-tree): Rename second argument,
	since 'vector-like' is a term with a specific meaning in Emacs
	but not the one intended here.
	* doc/lispref/lists.texi (Building Lists): Rename second argument,
	and make it clear that the input must be acyclic.
	* doc/lispref/records.texi (Record Functions):
	Be more precise: `copy-sequence` is used to copy records,
	`copy-tree` copies trees made of records etc.
	* test/lisp/subr-tests.el (subr--copy-tree): Extend and strengthen the
	test considerably, using the print-circle trick to detect structure
	sharing precisely.

2023-05-19  Yuan Fu  <casouri@gmail.com>

	Implement treesit-forward-sexp correctly (bug#63487)

	* lisp/treesit.el (treesit-forward-sexp): Signal scan-error when we
	can't move across sexps further.

2023-05-19  Po Lu  <luangruo@yahoo.com>

	Make tapping on header lines behave reasonably

	* lisp/touch-screen.el (touch-screen-tap-header-line): New
	function.
	([header-line touchscreen-begin]): Define to
	`touch-screen-tap-header-line'.

2023-05-19  Eli Zaretskii  <eliz@gnu.org>

	Minor fixes of last change

	* etc/NEWS:
	* doc/lispref/records.texi (Record Functions): Improve wording.
	(Bug#63509)

2023-05-19  Joseph Turner  <joseph@breatheoutbreathe.in>

	Make 'copy-tree' work with records

	* doc/lispref/lists.texi (Building Cons Cells and Lists): Document
	new behavior of 'copy-tree'.
	* doc/lispref/records.texi (Record Functions): Cross-reference to
	lists.texi.
	* etc/NEWS: Mention change.  (Bug#63509)
	* lisp/emacs-lisp/shortdoc.el: Add 'copy-tree' example to vector
	group.
	* lisp/subr.el (copy-tree): Recurse into records as well as
	vectors when optional second argument is non-nil. Rename second
	argument from VECP to VECTOR-LIKE-P.
	* test/lisp/subr-tests.el: Test new behavior.

2023-05-19  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-18  Mattias Engdegård  <mattiase@acm.org>

	Try declaring `delq` and `delete` important-return-value (bug#61730)

	* lisp/emacs-lisp/bytecomp.el (important-return-value-fns):
	Add (uncomment) `delq` and `delete`.

2023-05-18  Basil L. Contovounesios  <contovob@tcd.ie>

	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.

2023-05-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	f8d9e40d2c1 Attempt to fix redisplay problems on macOS
	4daa6f70497 ; * lisp/simple.el (async-shell-command): Add commentary ...
	dc1a437d460 Clarify misleading comment in isearch.el
	af3b0dc53ff Improve documentation of package-menu commands
	d879847cd4d Fix M-x completion-predicate under python-ts-mode
	1e57b2b4c79 * Account for `byte-compile-warnings' during native compi...
	b5bfd808c6b Avoid duplicate VC packages in 'package-selected-packages'
	c18f9f155f6 * lisp/tab-bar.el (tab-bar-new-tab-to): Set 'window-side'...
	33485fe8f74 ; Better warning message when loading tree-sitter fails
	95a724abaac Update to Org 9.6.6
	c665ca79ff4 ; * admin/make-tarball.txt: Minor copyedits.
	3aef46e466f Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
	229af8e4b31 ; * lisp/progmodes/csharp-mode.el (csharp-ts-mode--defun-...

2023-05-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	229af8e4b31 ; * lisp/progmodes/csharp-mode.el (csharp-ts-mode--defun-...
	ce7d18cbc07 ; Minor fixes in ELisp manual
	5c8864fab4f ; * lisp/simple.el (async-shell-command): Doc fix.  (Bug#...
	b96dc472bcb Ignore current-prefix-arg in async-shell-command
	1e6a7594361 Fix building of VC package manuals with relative includes
	61659f36c88 Another fix for VHDL mode highlighting

2023-05-18  Po Lu  <luangruo@yahoo.com>

	* make-dist (possibly_non_vc_files): Add Android-specific files.

2023-05-18  Po Lu  <luangruo@yahoo.com>

	Allow interacting with the tab line from a touch screen

	* doc/emacs/frames.texi (Tab Bars): Explain how to interact with
	the tab bar from a touch screen.
	* doc/emacs/input.texi (Touchscreens): Document exactly what a
	``long press'' is.
	* doc/emacs/windows.texi (Tab Line): Likewise.
	* lisp/tab-line.el (tab-line-tab-map, tab-line-add-map)
	(tab-line-tab-close-map, tab-line-left-map, tab-line-right-map):
	Bind `touchscreen-begin' to each command.
	(tab-line-track-tap, tab-line-event-start): New functions.
	(tab-line-hscroll-right, tab-line-hscroll-left, tab-line-new-tab)
	(tab-line-select-tab, tab-line-close-tab): Use them.

2023-05-18  Mattias Engdegård  <mattiase@acm.org>

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

2023-05-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-18  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer C23 ckd_* to Gnulib *_WRAPV macros

	C23 has added ckd_add etc. macros with functionality equivalent to
	the older Gnulib INT_ADD_WRAPV macros, so switch to the
	more-standard names.
	* admin/merge-gnulib (GNULIB_MODULES): Add stdckdint.
	This merely makes the dependency explicit, as we were already
	using this Gnulib module indirectly.
	* lib-src/etags.c, src/lisp.h: Include stdckdint.h.
	* lib-src/etags.c (xnmalloc, xnrealloc):
	* src/alloc.c (xnmalloc, xnrealloc, xpalloc, Fmake_string)
	(mark_memory):
	* src/bignum.c (emacs_mpz_pow_ui):
	* src/buffer.c (record_overlay_string, overlay_strings):
	* src/bytecode.c (exec_byte_code):
	* src/casefiddle.c (do_casify_multibyte_string):
	* src/ccl.c (ccl_driver, Fccl_execute_on_string):
	* src/character.c (char_width, c_string_width)
	(lisp_string_width, count_size_as_multibyte)
	(string_escape_byte8):
	* src/cmds.c (internal_self_insert):
	* src/coding.c (coding_alloc_by_realloc, produce_chars):
	* src/data.c (arith_driver):
	* src/dispnew.c (realloc_glyph_pool, init_display_interactive):
	* src/doprnt.c (parse_format_integer):
	* src/editfns.c (Freplace_buffer_contents, str2num)
	(styled_format):
	* src/emacs-module.c (module_global_reference_p)
	(module_make_global_ref, module_funcall):
	* src/eval.c (max_ensure_room):
	* src/fileio.c (blocks_to_bytes):
	* src/fns.c (Ffillarray):
	* src/font.c (font_intern_prop):
	* src/frame.c (check_frame_pixels):
	* src/gnutls.c (gnutls_hex_string, gnutls_symmetric_aead):
	* src/gtkutil.c (get_utf8_string):
	* src/haikuterm.c (haiku_term_init):
	* src/image.c (xbm_scan, image_to_emacs_colors)
	(image_detect_edges, png_load_body):
	* src/keyboard.c (Frecursion_depth):
	* src/keymap.c (Flookup_key, Fkey_description):
	* src/lisp.h (modiff_incr, SAFE_ALLOCA_LISP_EXTRA):
	* src/lread.c (read_bool_vector):
	* src/pgtkterm.c (pgtk_term_init):
	* src/regex-emacs.c (regex_compile):
	* src/term.c (encode_terminal_code):
	* src/termcap.c (tputs):
	* src/textconv.c (textconv_query):
	* src/timefns.c (timespec_ticks, lisp_time_hz_ticks)
	(Fdecode_time, check_tm_member):
	* src/tparam.c (tparam1):
	* src/w32term.c (w32_initialize_display_info):
	* src/xdisp.c (fill_column_indicator_column, decode_mode_spec):
	* src/xselect.c (selection_data_size, x_property_data_to_lisp):
	* src/xsmfns.c (smc_save_yourself_CB):
	* src/xterm.c (xm_setup_dnd_targets, x_sync_get_monotonic_time)
	(x_sync_current_monotonic_time, x_sync_note_frame_times)
	(x_display_set_last_user_time, x_term_init):
	Prefer the C23 stdckdint macros to their
	Gnulib intprops.h counterparts, since C23 is standard.

2023-05-18  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2023-05-17  Paul Eggert  <eggert@cs.ucla.edu>

	Port modiff changes to GCC 4.8.5

	Problem reported by Spencer Baugh.
	* src/lisp.h (elogb): Now simply a function on unsigned long long int.
	This avoids problems porting to GCC 4.8.5 20150623 (Red Hat 4.8.5-44).
	There may be a minor runtime cost on 32-bit platforms but it’s
	not worth worrying about.

2023-05-17  Andrea Corallo  <akrl@sdf.org>

	* Fix missing `comp-files-queue' update (bug#63415).

	* lisp/emacs-lisp/comp.el (native--compile-async): Update
	`comp-files-queue' for real.

2023-05-17  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Fix eudc-ldap-no-wildcard-attributes docstring

	* lisp/net/eudc-vars.el (eudc-ldap-no-wildcard-attributes): Fix
	docstring.  (Bug#62721)

2023-05-17  Mattias Engdegård  <mattiase@acm.org>

	Mark proced-refine-with-update-test :unstable (bug#63550)

	* test/lisp/proced-tests.el (proced-refine-with-update-test):
	This test seems racy and often fails randomly in parallel
	`make check`.

2023-05-17  Mattias Engdegård  <mattiase@acm.org>

	Eliminate some mutation of program constants

	* lisp/foldout.el:
	* lisp/gnus/mml2015.el (mml2015-epg-key-image-to-string):
	* lisp/international/ja-dic-cnv.el (skkdic-set-postfix)
	(skkdic-set-prefix):
	* lisp/international/quail.el (quail-insert-kbd-layout):
	* lisp/mail/rmail.el (rmail-set-attribute-1):
	* lisp/net/tramp.el (tramp-handle-memory-info):
	* lisp/org/org-macs.el (org-replace-escapes):
	Work on newly created objects, or use non-destructive operations.

2023-05-17  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-16  Tony Zorman  <soliditsallgood@mailbox.org>

	Add :vc keyword to use-package for VC package support

	* lisp/use-package/use-package-core.el (use-package-keywords): Add :vc.
	(use-package-handler/:load-path): Insert 'load-path' into 'state'.
	(use-package-vc-install): Install the package with package-vc.el.
	(use-package-handler/:vc): Handler for the :vc keyword.
	(use-package-normalize--vc-arg): Normalization for more complex
	arguments to 'use-package-normalize/:vc', in order to make them
	compatible with the specification of 'package-vc-selected-packages'.
	(use-package-normalize/:vc): Normalizer for the :vc keyword.
	(use-package): Document :vc.
	* lisp/use-package/use-package-ensure.el (use-package-handler/:ensure):
	Do not ensure a package when :vc is used in the declaration.
	* test/lisp/use-package/use-package-tests.el (use-package-test/:vc-1):
	(use-package-test/:vc-2):
	(use-package-test/:vc-3):
	(use-package-test/:vc-4):
	(use-package-test/:vc-5):
	(use-package-test-normalize/:vc):
	Add tests for :vc.
	* etc/NEWS: Mention change.  (Bug#60418)

2023-05-16  Joseph Turner  <joseph@breatheoutbreathe.in>

	Support side-effects while building VC packages

	* doc/emacs/package.texi (Specifying Package Sources): Document new
	specification attributes.
	* lisp/emacs-lisp/package-vc.el (package-vc-allow-side-effects): Add
	new user option.
	(package-vc--make): Add handler for processing :make and
	:shell-command.
	(package-vc--unpack-1): Check 'package-vc-allow-side-effects' and
	invoke 'package-vc--make'.
	* etc/NEWS: Mention change.  (Bug#63336)

2023-05-16  João Távora  <joaotavora@gmail.com>

	Eglot: rework eglot-handle-request (bug#62116)

	Address comments in the bug tracker regarding widening, and
	prematurely reporting success to the server before knowing if the file
	can indeed be shown.

	https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62116#70
	https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62116#79

	* lisp/progmodes/eglot.el (eglot-handle-request): Rework.

2023-05-16  Juri Linkov  <juri@linkov.net>

	* lisp/windmove.el (windmove-swap-states-in-direction): Don't swap minibuffer.

	Guard against swapping the minibuffer when the minibuffer is in the selected
	window (bug#62427).  The function was already protected when the minibuffer
	is in other-window.

2023-05-16  Michael Albinus  <michael.albinus@gmx.de>

	Tweak tramp-test45-asynchronous-requests

	* test/lisp/net/tramp-tests.el (tramp-use-connection-share): Declare.
	(tramp--test-putty-p): New defun.
	(tramp-test45-asynchronous-requests): Tweak test.

2023-05-16  Po Lu  <luangruo@yahoo.com>

	Add touchscreen support to the tab bar

	* lisp/menu-bar.el (popup-menu-normalize-position): Normalize
	`touchscreen-begin' events correctly.
	* lisp/tab-bar.el (tab-bar-mouse-context-menu): New argument
	POSN.  Use it if specified.
	(touch-screen-track-tap, tab-bar-handle-timeout)
	(tab-bar-touchscreen-begin): New functions.
	(tab-bar-map): Bind [tab-bar touchscreen-begin].
	* lisp/touch-screen.el (touch-screen-track-drag): Fix doc
	string.
	* src/dispextern.h: Export `get_tab_bar_item_kbd'.
	* src/keyboard.c (coords_in_tab_bar_window): New function.
	(make_lispy_event): Adjust touchscreen begin event mouse
	position list for tab bar.
	* src/xdisp.c (tab_bar_item_info): Allow CLOSE_P to be NULL.
	(get_tab_bar_item): Adjust doc string.
	(get_tab_bar_item_kbd): New function.

2023-05-16  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2023-05-16  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-15  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Document disabling default LDAP wildcard expansion

	* lisp/net/eudc-vars.el (eudc-ldap-no-wildcard-attributes): Cover
	`eudc-query-form' and `eudc-expand-inline' behavior in the
	customization docstring.  (Bug#62721)

2023-05-15  Michael Albinus  <michael.albinus@gmx.de>

	Fix some minor Tramp problems

	* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-exists-p): New defun.
	(tramp-crypt-file-name-handler-alist): Add it.

	* lisp/net/tramp-smb.el (tramp-smb-handle-copy-file): Flush proper file
	properties.

	* test/lisp/net/tramp-archive-tests.el (tramp-archive--test-emacs28-p):
	New defun.
	(tramp-archive-test48-auto-load): Extend test.

2023-05-15  Eli Zaretskii  <eliz@gnu.org>

	Fix 'locale-info' on MS-Windows

	* nt/mingw-cfg.site (am_cv_langinfo_codeset): Rename from
	'emacs_cv_langinfo_codeset', to follow configure.ac.

2023-05-15  Po Lu  <luangruo@yahoo.com>

	Fix year 2038 code for Android 4.4 and earlier

	* configure.ac: Also disable enable_year2038.

2023-05-15  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* msdos/sed1v2.inp: Fix removal of ANDROID_BUILD_CFLAGS.
	* msdos/sedlibmk.inp: Clear DIR_HAS_FD_MEMBER and
	LOCALE_FR_UTF8.

2023-05-15  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer _WIDTH macros to sizeof in pdumper.c

	This is a bit clearer, and should work better on hypothetical
	platforms where integers have holes in their representation.
	* src/pdumper.c: Since the code no longer uses CHAR_BIT,
	don’t worry about whether it equals 8.
	(DUMP_OFF_WIDTH): New macro.
	(EMACS_RELOC_LENGTH_BITS, DUMP_RELOC_OFFSET_BITS): Use it.
	(DUMP_BITSET_WORD_WIDTH): New macro.
	(dump_bitsets_init, dump_bitset__bit_slot)
	(dump_bitset_bit_set_p, dump_bitset__set_bit_value): Use it.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer PTRDIFF_WIDTH in sort.c

	* src/sort.c (MAX_MERGE_PENDING):
	Prefer PTRDIFF_WIDTH to rolling our own substitute.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer UINTMAX_WIDTH in print_object

	* src/print.c (print_object):
	Prefer UINTMAX_WIDTH to rolling our own substitute.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Help GCC compute modiff_incr

	* src/floatfns.c: Don’t include count-leading-zeros.h,
	since we no longer use it directly.
	(ecount_leading_zeros): Remove.
	(Flogb): Use elogb instead of doing it by hand.
	* src/lisp.h: Include count-leading-zeros.h.
	(elogb): New macro.
	(modiff_incr): Use it so that on typical platforms we
	use a hardware instruction instead of a loop.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Work after 2038 on 32-bit GNU/Linux

	This adds support for 64-bit time_t on 32-bit GNU/Linux ARM and
	x86, where time_t was historically 32-bit.  The resulting Emacs
	should continue to work for timestamps after mid-January 2038.
	* admin/merge-gnulib (GNULIB_MODULES): Add year2038.
	* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 13 -Wnull-dereference in itree.c

	* src/itree.c (itree_remove_fix): Simplify code and remove a
	couple of eassume calls.  This works around GCC bug 109586.
	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109856

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 13 -Wanalyzer-out-of-bounds

	* src/alloc.c (NEAR_STACK_TOP): Hoist from here ...
	* src/thread.h: ... to here.
	* src/print.c (print_object): Use NEAR_STACK_TOP instead of raw
	buffer address.  This is more natural, and pacifies GCC 13.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Work around GCC bug 109847 in buffer.c

	* src/buffer.c: Ignore GCC 13+ -Wanalyzer-out-of-bounds.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Do not use -Wanalyzer-fd-leak

	* configure.ac: Append -Wno-analyzer-fd-leak to WARN_CFLAGS when
	configuring with --enable-gcc-warnings, to work around
	GCC bug 109847.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Work around GCC bug 109579 in ccl.c

	* src/ccl.c (POP_MAPPING_STACK):
	Ignore -Wanalyzer-out-of-bounds.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Work around GCC bug 109577

	* src/lisp.h (SAFE_ALLOCA_LISP_EXTRA):
	Ignore -Wanalyzer-allocation-size, as it generates many
	false alarms in GCC 13.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 13 -fanalyzer in tty_menu_activate

	* src/term.c (tty_menu_activate): Trivially reword comparison
	to pacify gcc -fanalyzer with GCC 13.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Fix movemail fd leak

	* lib-src/movemail.c (main) [!MAIL_USE_SYSTEM_LOCK]:
	Fix file descriptor leak, found by GCC 13 -Wanalyzer-fd-leak.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Fix ebrowse -f buffer overflow

	* lib-src/ebrowse.c (main): Fix buffer overflow when several -f
	options are given.  Found by GCC 13 -Wanalyzer-allocation-size.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid duplicate configure-time codeset tests

	* admin/merge-gnulib: Copy m4/codeset.m4 too.  This is mostly for
	documentation, as it’s now automatically copied by other modules.
	* configure.ac (EMACS_PAPER_WIDTH): New macro.  This relies on
	Gnulib, to avoid duplicate tests for HAVE_LANGINFO_CODESET.

2023-05-15  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

	* lib/dirent-private.h, m4/codeset.m4, m4/locale-fr.m4, m4/musl.m4:
	New files, from Gnulib.

2023-05-15  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-14  Mattias Engdegård  <mattiase@acm.org>

	* lisp/net/net-utils.el (finger): Fix botched logic.

	* lisp/w32-fns.el (w32--os-description): Fix minor logic error

2023-05-14  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp-gvfs.el (initialize): Ignore D-Bus errors.

2023-05-14  Po Lu  <luangruo@yahoo.com>

	Implement document moving on Android

	* java/org/gnu/emacs/EmacsDocumentsProvider.java
	(notifyChangeByName): New function.
	(queryDocument1): Set FLAG_SUPPORTS_MOVE where necessary.
	(moveDocument): Implement new function.

2023-05-14  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-13  Mattias Engdegård  <mattiase@acm.org>

	Fix regexp bugs

	* lisp/progmodes/idlwave.el (idlwave-make-tags):
	* lisp/obsolete/mantemp.el (mantemp-insert-cxx-syntax):
	Repair obviously over-escaped control characters.

2023-05-13  F. Jason Park  <jp@neverwas.me>

	Make some module toggles more resilient in ERC

	* lisp/erc/erc-goodies.el (erc-scrolltobottom-mode,
	erc-scrolltobottom-enable, erc-move-to-prompt-mode,
	erc-move-to-prompt-enable): Guard setup procedure behind
	`erc--updating-modules-p'.
	* lisp/erc/erc-imenu.el (erc-imenu-mode, erc-imenu-enable,
	erc-imenu-disable): Don't run setup when `erc--updating-modules-p' is
	non-nil.  Also, don't restrict teardown to buffers of the same
	process.
	* lisp/erc/erc-match.el (erc-match-mode, erc-match-enable): Run
	major-mode hook member immediately outside of `erc-update-modules' in
	`erc-open'.
	* lisp/erc/erc-spelling.el (erc-spelling-mode, erc-spelling-enable):
	Only conditionally run setup immediately.
	* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-enable,
	erc-stamp-disable): Run setup hook immediately.  Don't forget to
	kill local vars in all ERC buffers during teardown.
	* lisp/erc/erc.el (erc--updating-modules-p): New variable that global
	modules can use to provide their `erc-mode-hook'-deferred code on
	demand while shielding it from running during early ERC buffer
	initialization.
	(erc-open): Make `erc--updating-modules-p' non-nil while activating
	global modules.  (Bug#60936)

2023-05-13  F. Jason Park  <jp@neverwas.me>

	Optionally add spacing between ERC messages

	* etc/ERC-NEWS: Mention option `erc-fill-line-spacing'.
	* lisp/erc/erc-fill.el (erc-fill-line-spacing,
	erc-fill-spaced-commands): Add options to allow for extra spacing
	between messages.
	(erc-fill--function): Internal var allowing modules to override user
	option `erc-fill-function'.
	(erc-fill): Add extra line-spacing on certain types of messages.
	Prefer `erc-fill--function', when set, over `erc-fill-function'.
	(erc-fill--make-module-dependency-msg,
	erc-fill--wrap-ensure-dependencies): Rename former to latter and make
	more useful.
	(erc-fill-wrap-mode, erc-fill-wrap-enable, erc-fill-wrap-disable):
	Refactor.
	(erc-fill--wrap-fix): Remove unused function.
	(erc-fill-wrap-nudge): Remove reference to nonexistent function in doc
	string.
	* test/lisp/erc/erc-fill-tests.el: (erc-fill-tests--graphic-dir): New
	variable.
	(erc-fill-tests--compare): Look in `erc-fill-tests--graphic-dir' for
	graphical snapshots ignored by Git.
	(erc-fill-line-spacing): New test.
	* test/lisp/erc/resources/fill/snapshots/spacing-01-mono.eld: New
	file.  (Bug#60936)

2023-05-13  F. Jason Park  <jp@neverwas.me>

	Add helper for restoring local session vars in ERC

	* lisp/erc/erc-common.el (erc--input-split): Suppress warning for
	obsolete variable `erc-send-this' in init form.
	* lisp/erc/erc-goodies.el (erc--keep-place-indicator-setup): Use macro
	`erc--restore-initialize-priors' to preserve last session's indicator
	position, if any.
	(erc-keep-place-indicator-mode, erc-keep-place-indicator-enable): Use
	convenience function to show missing-dependency notice.
	* lisp/erc/erc-sasl.el (erc-sasl-auth-source-password-as-host): Merge
	redundant `when' forms for clarity.
	(erc-sasl--init): Remove unused function.
	(erc-sasl-mode, erc-sasl-enable): Use helper to restore
	`erc-sasl--options', essentially inlining the body of the now defunct
	`erc-sasl--init'.
	* lisp/erc/erc.el (erc--restore-initialize-priors): New macro to help
	local modules and mode hooks prefer existing state over initializing
	anew.
	(erc--warn-once-before-connect): Add helper function to display
	an "error notice" just after module setup.
	(erc-accidental-paste-threshold-seconds) Improve doc string.
	* test/lisp/erc/erc-goodies-tests.el
	(erc-controls-highlight--examples, erc-controls-highlight--inverse,
	erc-controls-highlight--motd, erc-keep-place-indicator-mode): Remove
	feature check.  For the latter, also start fake process and shadow
	`erc-connect-pre-hook'.
	* test/lisp/erc/erc-tests.el (erc--restore-initialize-priors): New
	test.  Also see test/lisp/erc/erc-scenarios-base-local-modules.el for
	a more realistic exercising of this functionality.  (Bug#60936)

2023-05-13  Peter Oliver  <git@mavit.org.uk>  (tiny change)

	Always default ediff-auto-refine to 'on

	* lisp/vc/ediff-diff.el (ediff-auto-refine): always default
	to 'on.  (Bug#63318)

2023-05-13  Mattias Engdegård  <mattiase@acm.org>

	Don't mutate constants in tests

	* test/lisp/emacs-lisp/cl-macs-tests.el
	(cl-macs-test--symbol-macrolet):
	* test/lisp/emacs-lisp/cl-print-tests.el
	(cl-print-tests-ellipsis-circular):
	* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
	(eieio-test-persist-interior-lists):
	* test/lisp/textmodes/reftex-tests.el (reftex-all-used-citation-keys):
	* test/src/xdisp-tests.el (xdisp-tests--minibuffer-resizing):
	* test/src/fns-tests.el (test-vector-delete):
	Mutate created objects, not constants.

	* test/lisp/emacs-lisp/subr-x-tests.el
	(subr-x-test-add-display-text-property): Mutate a created string, and
	compare using `equal-including-properties` without which the test was
	rather meaningless.

	* test/lisp/net/tramp-archive-tests.el
	(tramp-archive-test16-directory-files): Don't mutate.

2023-05-13  Mattias Engdegård  <mattiase@acm.org>

	Use `mutate-constant` as warning identifier

	* etc/NEWS:
	* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-warnings)
	(byte-compile-form):
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-test--with-suppressed-warnings):
	Use the new warning name `mutate-constant` instead of using the
	somewhat overloaded `suspicious`.

2023-05-13  Felicián Németh  <felician.nemeth@gmail.com>
	    João Távora

	Eglot: support window/showRequest (bug#62116)


	* lisp/progmodes/eglot.el (eglot-client-capabilities): Advertise
	window/showDocument.
	(eglot-handle-request window/showDocument): New handler.

2023-05-13  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	7acae22f42f Fix auto-filling in Texinfo mode
	4bda9627349 ; * admin/git-bisect-start: Update failing commits
	dcf8c011028 Merge branch 'scratch/long-lines-cleanup' into 'emacs-29'
	1e3a66df459 Add an assertion in, and a commentary for, 'get_nearby_bo...
	f0f08eeb05c Fix the return type of 'labeled_restrictions_get_bound'
	acf4763417e Fix mouse highlight with some fonts in Cairo builds
	32b42b333ca ; * etc/NEWS: Fix wording in last change.
	09d6070e56e ; Improve and update documentation of built-in package up...
	ba2c76fa2bc Ensure that package menu respects 'package-install-upgrad...
	6fa9332e7cd Ensure that EXTRA-DATA are always written when generating...
	60d5a015d1f Update to Transient v0.4.0
	b8bcd42cabc Revert "Don't have nntp-report signal an error"
	ef1f4068f6f ; * lisp/wid-edit.el (widget-specify-insert): Fix debug s...
	09bf4768360 Make c-emacs-features use the proper binding of parse-sex...
	c9e2a5ec26c ; * lisp/obsolete/autoload.el (make-directory-autoloads):...
	346f4ac3bf5 ; Fix example in ELisp manual
	91fff05ae35 ; Fix wording in Emacs manual
	2438fa2e6cc ; Fix minor documentation issue ion replace.el
	93005cd9dc2 with-display-message: Workaround for bug#63253
	6924c81a6d2 ; Don't use literal non-ASCII characters in Texinfo
	f1675df3d0c Fido-mode: never shadow 'external' completion style
	56d2949d44c ; * lisp/leim/quail/persian.el: Fix a typo in last commit.
	d94ea9efca6 Avoid crashes in --without-all build trying to scale non-...
	387ddc0ccc1 Improve instructions for dealing with Emacs crashes
	e6b4784a37f Improved transliterations + improved bidi insertion suppo...
	c1363a04bb2 Fix crash when creating a child frame in NS (bug#63107)
	7d6855c9ab6 Fix outgoing mime type regression (Bug#62815)
	e920dd2b6f9 define-minor-mode: sanitize mode function messages
	910a7b30dfd Fix beginning/end-of-defun with tree-sitter
	e205f68717e Fix indent for enums in csharp-mode
	dfde902f3b9 ; Expand 'package-vc-install' documentation
	71337843036 Teach c-ts-mode about the 'restrict' keyword
	15e06260ae8 * lisp/x-dnd.el (x-dnd-after-move-frame): Skip dead frame...
	a081b6625bd ; Updated Elispref-Manual: `nil' cannot be defun'ed
	97b818a4fb9 Fix doc strings of 'mark-sexp' and 'mark-word'
	6f910ad9322 ; * etc/EGLOT-NEWS: Fix misspellings.
	9b775ddc057 ; * etc/EGLOT-NEWS: Fix wording of last change.
	79a886ba368 (package-upgrade): Don't remove the package from 'package...
	c0ab4e9ca93 Eglot: re-rename eglot-upgrade to eglot-upgrade-eglot
	b4e90070f96 Fix arguments of xml.c functions as displayed in Help buf...
	b1bda8228e5 More fixes for NetBSD/vax
	a2d4cd06f45 Improve VHDL mode highlighting
	2f3a514b6db Clarify documentation wrt floating point division by zero...
	94e984e6700 Make loaddefs-generate slightly more tolerant
	aba41d2c4bb ; Minor doc cleanups in go-ts-mode.el
	b42ccb2e5c1 ; Minor grammar fix in treesit manual.
	ab44c8a6f9d Fix order of rcirc-connect arguments
	8eb6e33691d Fix rcirc messages printing in the wrong place
	2901a3443c7 Prevent unnecessary modifications of 'package-vc-selected...
	eaad302bd6f Rename eglot-update to eglot-upgrade
	eaf25b9c6ae go-ts-mode: Use iota query only if supported (Bug#63086)
	cc090294d77 (rng-complete-tag): Add the (ignored) argument to the :co...
	21ec6c1d5cc Update to Transient v0.3.7-219-g3ded15b
	8d5aa8df4ad Fix inserting selection data into Mozilla programs
	57562c3fd0a Recognize defstruct slot names in various eieio functions
	b93eb68cc30 Use 'calendar-buffer' instead of fixed string
	e338a8ac41d Handle point not at EOB in minibuffer-choose-completion
	fceaf230b06 Note that Emacs pauses when handling sentinel errors
	46392c1623b Fix vertical-motion when tab-line is displayed in a window
	0e52beeacea Update to Org 9.6.5-3-g2993f4
	dd21003878d Prevent generating empty autoload files
	2bcf11d0efe * lisp/org/org-macs.el (org--inhibit-version-check): Fix ...
	ca43435816b Fix redisplay of mode line after its format changes from nil
	610a7657e0a Fix c-ts-mode--emacs-c-range-query
	7f94558b775 Improve documentation of warnings
	5a3f0e2c558 ; Doc fix in c-ts-mode.el
	21361d05635 Fix FOR_EACH_TAIL fontification (bug#62951)
	d0df3404fde ; * etc/EGLOT-NEWS:  chsharp-le -> csharp-ls
	c229e83c3ce ; * etc/EGLOT-NEWS (https): Elglot -> Eglot.
	b4f2f499783 Fix documentation of libxml-parse-* functions
	5dd784961d1 ; * src/treesit.c (syms_of_treesit): Fix error messages.
	ddfa0d8da9a ; Remove some leftover text
	212e30f6789 ; Fix byte-compilation warnings in c-ts-mode.el
	1f2214dabd0 Skip over whitespace in annotation-top-cont check (bug#63...
	7e136c51f6f Update zh-CN tutorial translation
	d3ca0b3aa2e ; * lisp/progmodes/c-ts-mode.el: Fix comments and doc str...
	c6f15c24862 ; Fix last change.
	b9e06330f75 ; * etc/NEWS: Followup to bug#62720.
	b33d25f5967 ; Minor improvements in doc strings of package-upgrade co...
	c3a61870b94 Fix eglot.texi
	a40f1816237 Fix two crashes upon startup
	44ebd9cbd56 Eglot: explain how to update Eglot in manual (bug#62720)
	941ef044f2e Eglot: fix edge case when deleting inlay hint overlays
	a365984d9e1 package-upgrade[-all]: Expand docstrings to note the curr...
	f965f35b33b Rename all functions called package-*-update-* to package...
	31b58161bb5 Fix FOR_EACH_TAIL in c-ts-mode (bug#62951)
	0cf6e0998ba * Makefile.in (distclean): Remove the 'native-lisp' direc...
	933705d61e5 Improve greek-ibycus4 input method
	c46e93b1f50 Explain ERC 5.5 regressions in new version 5.5.0.29.1
	af43f0a2954 * doc/misc/erc.texi: Elaborate on upgrading via ELPA.
	10948948c12 Improve outline-default-state docstring
	b5ace2eed80 Document problems with /bin/sh on Solaris 10
	7b2ad8f199e ; Add missing <<inserted by help-with-tutorial>> line to ...
	524e161a536 Followup to addition of TUTORIAL.fa
	76f50df1539 Add Farsi/Persian translation of the tutorial
	8eacfaea6d8 Add Mongolian language environments
	fe8efbb8f75 Document the 'end-session' event on MS-Windows
	d80f959bede Update to Org 9.6.4-9-g8eb209
	98c6cfcbe4a Don't support versioned grammar libraries on MS-Windows
	8f71c1546df Accept versioned tree-sitter language grammar files
	99add09d5e1 tab-bar-new-tab: inhibit side-window checks
	087e8181947 * etc/NEWS: Fix outline level.  (Bug#63042)
	d7f38558c4c ; Improve font selection for Traditional Mongolian
	965c5e0231c Fix rendering of Traditional Mongolian script
	9a0f10b5f88 Fix line-number-at-pos when POSITION is out of narrowing
	4e0f4292aaf ; * etc/tutorials/TUTORIAL: Fix punctuation.
	dec2ac0c657 Fix exiting Emacs after saving a tutorial
	44145bf07e2 Add indentation style setting for c-ts-mode in .dir-local...
	e7db6c59cc6 ; * .dir-locals.el (c-ts-mode): Add settings.
	d041f01b02f ; Minor fix in Emacs Lisp Intro manual
	3899acbb336 ; * src/fringe.c: Fix description of large circle.  (Bug#...
	2b10e1827d3 sql: add missing postgresql types
	9ac12592781 Fix display of menu-bar bindings of commands in *Help* bu...
	ecdd3a9efac Improve Completion Example section in the Emacs manual
	626e1ac62b2 Improve 'message-server-alist' docstring
	327986936c3 Add index entry for fallback modes
	1c4783c3300 ; * etc/NEWS: Copyedits and grammar fixes.
	3d6f7553319 xref-search-program-alist: Fix searching larger file list...
	1b8b2cf61bd Fix typo and inaccuracy in the ELisp Reference manual
	df17682ebf1 ; Support 'dart-ts-mode' in Eglot
	e0dc60e0780 ; Fix typos in gdb-mi.el
	60560cc7adf Fix description of lexical environment's internals
	1456adf4248 ; Eglot: fix a typo in a customization type
	2f59595f5f4 ; * etc/NEWS: Grammar fixes.
	596b780ab71 Update to Org 9.6.4-2-g0f6ae7
	a0b04a22479 Documentation copyedits for 'package-install-upgrade-buil...
	580d8278c5f Allow upgrading built-in packages with 'package-install'
	329304c23fa ; * src/term.c (init_tty): Fix last change.  (Bug#62877)
	200dbf7d302 Minor changes in c-ts-mode.el's support of DEFUNs
	9686b015a0d Fix strike-through attribute support on TTY frames
	39035fbfc5f Avoid crashes in 'describe-keymap' due to shadowing
	b7023da6627 Make image-map bindings available on image links
	d9e96c029bb * CONTRIBUTE: Fix a typo
	3f71a2a0cf6 ; * lisp/progmodes/c-ts-mode.el (treesit-node-next-siblin...
	adf9c956c28 Add to Eglot support for additional language-servers.
	b3603b84bd9 Partial support for DEFUN in c-ts-mode (bug#62825)
	14e809ddff1 Fix style and unwinding code in treesit.c
	759cdf1e510 Catch signals produced by PRED in tree-sitter search func...
	864a4dc2363 Fix compilation of w32.c with old MinGW system headers
	a22eb9ae0f9 ruby-add-log-current-method: Reduce the use of 'nreverse'
	17d803d0a75 Fix detection of WebP images by their signature
	43290391ce2 ; Eglot: make version parseable by version-to-list
	6e6e8b5c974 Add more documentation for the keys of `package-vc-select...
	7972b76c2c7 ; vc-checkout: Wrap var lookup in 'bound-and-true-p'
	e9fef1d70ff vc-checkout: Try to use the vc-dir's backend first
	372e024accd ; Fix wallpaper-tests on XFCE
	7055fd8e43e Improve documentation related to 'ispell-complete-word'
	61fd017abde * configure.ac: Add -lbsd on Haiku.
	05971c4d9a4 Add menu to 'c-ts-mode' and 'c++-ts-mode'
	954e2d96a92 Update manual about `sort`
	c62afb10cf0 Fix wallpaper-tests on MS-Windows
	f2d212c6966 Fix a couple of eglot-tests
	338b3718b6c Fix visiting RPM files
	b4afee03193 Fix ff-quiet-mode doc
	2445100d7d6 ; Improve documentation of 'match-buffers'
	d4d0da96f0b ; Update make-tarball.txt for Emacs 29.
	9b0bf694da4 ; Fix ldefs-boot.el.
	0cb86a348c7 ; Update ChangeLog.4.
	5e039d5a6e9 * lisp/ldefs-boot.el: Regenerate.
	671abd0cc40 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
	4bc678ec9f4 Bump Emacs version to 29.0.90
	db8f207e52f Fix some cases of incomplete code's indentation [c/c++-ts...
	589959fb09d project-search: Pipe the list of files through 'file-regu...
	2b91567bf61 Update ChangeLog and AUTHORS for Emacs 29
	d6af1f14982 ; doc/lispref/windows.texi: Fix @pxref paren.
	57490fff6ec ; Backport: Eglot: fix misplaced parenthesis in last comm...
	2a62273f3bf Backport: Eglot: no more tests based on Pylsp (bug#62694)
	5ef7ff05736 ; Start a new ChangeLog.4 file.
	11126c6d30a Fix 'C-h k' for "Paste from Kill Menu" in context menus
	74ddfe811f9 ; * doc/misc/calc.texi (Rewrites Tutorial): Fix a typo (b...
	08cda286c3f Improve the documentation of the XDS support
	14d1c00e806 Allow reindentation of images inserted by 'mm-inline-image'
	b63a9eda01c Fix "C-h k" and "C-h c" with Paste from Kill Menu
	b36c21e27dc Change cursor color on NS port when it matches the face b...
	96714c106b7 Improve documentation of image-related commands
	6a2863ca016 Fix handling of sliced images
	5be79fd05a5 ; * etc/NEWS: Announce 'cyrillic-mongolian' IM.
	ca1a0fda98a ; Fix last change.
	ce63462dbda Add cyrillic-mongolian input method
	58801792706 ; Minor addition to the Emacs FAQ
	88847dee125 Jsonrpc: don't bind inhibit-read-only to t so early
	cb8c87a423a Allow active region when IM is used
	305246d9726 Add emoji-zoom-reset
	470d269ec1f Make emoji-zoom-{increase,decrease} set text properties c...
	63d4a86f8d1 Fix transforming sliced images
	5e1953a8f85 ; * etc/NEWS: Minor copyedits of entry for 'keymap-*' fun...
	6b9f9df9454 ; Improve documentation of 'declare-function'
	81d1f46d0fe ; Avoid compiler warning in eglot.el.
	38cdfcb2128 ; Fix description of new 'keymap-*' functions
	257090b8728 Adapt EMBA scripts.
	90c07d3fdd2 Another terminology fix in ELisp reference manual
	a832bc7090c Correct terminology in Elisp Reference Manual
	db308233cb3 Comment out GNUSTEP jobs on EMBA (again)
	8c1b1022439 ; * lisp/image.el (put-image): Doc fix.
	eda88c63adf ; * doc/emacs/trouble.texi (Checklist): Minor grammar fix.
	728bc09cf3c Fix regexp string escaping mistake in vhdl-mode.el (bug#6...
	479626dbac9 Update to Org 9.6.3-2-gf2949d
	5a1c9aace70 ; Add a bit more docstring to tsx-ts-mode (bug#62429)
	86cf9fd932c Eglot: don't watch directories that don't exist
	82d0b6c64ea ; * lisp/subr.el (use-dialog-box-p): Fix last change.
	3619663f982 Preserve peer information for web page in eww-readable
	cb8d6ab648f * lisp/subr.el (use-dialog-box-p): Fix conditions for GUI...
	fb2c4409207 ; * lisp/progmodes/c-ts-mode.el (c++-ts-mode): Add some n...
	c0b9530862c Another final fix to last changes
	0cc8d6826ad Three final fixes to last changes
	89e337c3fc9 ; Make sure 'eshell-command' tests don't prompt the user
	097c5ee8f55 Two further fixes to last changes
	b39c3cd1125 ; * etc/NEWS: Fix typos.
	dce08cf05cc Improve and fix last changes
	89ac5ba11c7 Fix ModelSim error regexp in vhdl-mode
	24ed9c7ae78 ; * doc/emacs/trouble.texi (Checklist): Minor copyedits (...
	d1d39a0f09c Document enhancements in handling of echo-area messages
	46209b2453b ; Fix last change
	21a4ee209c1 Fix new Eshell tests on MS-Windows
	e2ebf3995d0 ; Auto-commit of loaddefs files.
	6419d78fa6f Fix using background commands in 'eshell-command'
	3bdbb66efb9 ; CONTRIBUTE: Minor stylistic changes.
	d0eb12e8d3c Fix typo in section 14.1 of Emacs Manual
	b2fbec37f39 ; * etc/EGLOT-NEWS: Clarify scope of topmost section
	131ec049db0 Eglot: unbreak eglot-extend-to-xref on w32
	0622e1f29f6 Eglot: ensure server shutdown turns off eglot-inlay-hints...
	59f66ea3027 ; * lisp/emacs-lisp/package-vc.el: Remove completed item ...
	d23dc3dd7e3 ; * lisp/emacs-lisp/package-vc.el (package-vc): Fix manua...
	4508a024e81 ; Clarify documentation of 'cursor' text property
	d2e82817a3f Add two typescript-ts-mode faces (bug#62429)
	10918fc9d24 Fix scrolling window when point moves up
	9b32bc134c4 Improve documentation of 'defcustom's :set keyword
	ab4273056e0 Comp fix calls to redefined primitives with op-bytecode (b...
	c98929c7e18 ; Fix last change
	a14c3f62a67 ; Fix last change
	09fece5722f Fix duplicate defcustom in eww.el
	2093e010dc1 Fix cursor motion in character-only terminals
	e45bd10a3d9 Fix indentation regression in 'C-h l'
	46fd10a7600 * doc/misc/tramp.texi (Remote shell setup): Clarify use o...
	974e4f33333 Make get_medium_narrowing_begv/zv static
	afc2c6c13cb Improve accuracy of cursor motion commands in long lines
	7e26a5c774e Remove labeled restrictions before calling Fwiden
	85ed1c9ca6b Code cleanup for long line optimizations

	# Conflicts:
	#	etc/NEWS

2023-05-13  Mattias Engdegård  <mattiase@acm.org>

	Byte-compiler warning about mutation of constant values

	When we can easily detect mutation of constants (quoted lists, strings
	and vectors), warn.  For example,

	  (setcdr '(1 . 2) 3)
	  (nreverse [1 2 3])
	  (put-text-property 0 3 'face 'highlight "moo")

	Such code can result in surprising behavior and problems that
	are difficult to debug.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-form, mutating-fns):
	Add the warning and a list of functions to warn about.
	* etc/NEWS: Announce.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-test--with-suppressed-warnings): Add test cases.

2023-05-13  Po Lu  <luangruo@yahoo.com>

	Fix detection of tab bar windows on PGTK

	* src/dispnew.c (adjust_frame_glyphs_for_window_redisplay):
	Adjust commentary.
	* src/pgtkfns.c (pgtk_set_doc_edited): Remove unused function.
	* src/pgtkterm.c (pgtk_clear_under_internal_border): Clean up X
	related code.
	* src/pgtkterm.h: Update prototypes.
	* src/window.h: Define WIDNOW_TAB_BAR_P on PGTK.  (bug#63472)

2023-05-13  Po Lu  <luangruo@yahoo.com>

	Fix opaque region specification on no-toolkit builds

	* src/xterm.c (handle_one_xevent): Always specify opaque region
	on no-toolkit builds upon a configure event for any's window.

2023-05-13  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-12  Eli Zaretskii  <eliz@gnu.org>

	Fix files-tests broken by a recent change

	* test/lisp/files-tests.el
	(files-tests-safe-local-variable-directories): Fix this test:
	since we are now using 'file-equal-p' the directory used as a safe
	one should actually exist.  (Bug#61901)

2023-05-12  Antero Mejr  <antero@mailbox.org>

	Handle case-insensitivity for safe-local-variable-directories.

	* lisp/files.el (hack-local-variables-filter): Use
	'file-equal-p' when checking 'safe-local-variable-directories'.
	* doc/lispref/variables.texi (File Local Variables): Remove sentences
	in 'safe-local-variable-directories' description about case-sensitivity
	and trailing slash behaviors.
	* doc/emacs/custom.texi (Safe File Variables): Remove sentence about
	'safe-local-variable-directories' trailing slash behavior.
	(Bug#61901)

2023-05-12  Michael Albinus  <michael.albinus@gmx.de>

	Add trailing space to PROMPT in yes-or-no-p

	* doc/lispref/minibuf.texi (Yes-or-No Queries): Describe PROMPT
	massage for y-or-n-p and yes-or-no-p.

	* lisp/subr.el (y-or-n-p): Adapt docstring.

	* src/fns.c (Fyes_or_no_p): Add trailing space to PROMPT if
	needed.  (Bug#63399)

2023-05-12  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fontify function names after long stretches of macros.

	This fixes bug#63322.

	* lisp/progmodes/cc-engine.el (c-find-decl-spots): When a
	search back over syntactic whitespace hits its limit, set
	cfd-match-pos and cfd-continue-pos to cfd-start-pos.

	* lisp/progmodes/cc-mode.el (c-fl-decl-start): Remove an
	unneeded (and harmful) condition on (point)'s position in the
	main loop.

2023-05-12  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	soap-client.el: Bump version to 3.2.3

	* lisp/net/soap-client.el: Bump version to 3.2.3.

2023-05-12  Po Lu  <luangruo@yahoo.com>

	Don't set background_filled_p

	* src/haikufont.c (haikufont_draw): Don't set
	`background_filled_p' when filling the background.

2023-05-12  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify soap-decode-data-time use of encode-time

	* lisp/net/soap-client.el (soap-decode-date-time):
	Call encode-time directly instead of via ‘apply’.
	No need for the two nil args.

2023-05-12  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-11  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	soap-client.el: Bump version to 3.2.2

	* lisp/net/soap-client.el: Bump version to 3.2.2.

2023-05-11  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	soap-client.el: Revert dd0727e1ec1f, add compatibility comment

	* lisp/net/soap-client.el (soap-decode-date-time): Call
	encode-time using apply, for GNU ELPA backward compatibility.
	Remove some tabs.
	(soap-type-is-array?): Reword docstring to accommodate checkdoc.

2023-05-11  Antero Mejr  <antero@mailbox.org>

	Add safe-local-variable-directories variable.

	This variable can be set to automatically load risky dir-local
	variables from a list of trusted directories.

	* lisp/files.el (safe-local-variable-directories,
	hack-local-variables-filter, hack-local-variables-confirm): New
	variable and associated logic.
	* test/lisp/files-tests.el
	(files-tests-safe-local-variable-directories): Add tests for same.
	* doc/emacs/custom.texi (Safe File Variables): Add documentation for
	same.
	* doc/lispref/variables.texi (File Local Variables): Add documentation
	for same.
	* etc/NEWS (Lisp Changes in Emacs 30.1): Add news entry for
	same.  (Bug#61901)

2023-05-11  Mattias Engdegård  <mattiase@acm.org>

	More descriptive character escape syntax error messages (bug#63436)

	* src/lread.c (invalid_escape_syntax_error): Remove.
	(read_char_escape): Make certain messages more specific
	than just "Invalid escape character syntax" to help finding
	and understanding the error.

2023-05-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'emacs-29'

2023-05-10  Mattias Engdegård  <mattiase@acm.org>

	Clean up files created by arc-mode-tests

	* test/lisp/arc-mode-tests.el (arc-mode-test-zip-ensure-ext):
	Remove created files at the end of the test.

2023-05-10  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-09  Benson Chu  <bensonchu457@gmail.com>  (tiny change)

	tramp-ssh-controlmaster-options shouldn't return nil

	* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options):
	Should never return nil, but empty string.

2023-05-09  Mattias Engdegård  <mattiase@acm.org>

	Speed up skip-chars-{forward|reverse} with char classes

	* src/regex-emacs.h (re_wctype_t): Add RECC_NUM_CLASSES.
	* src/syntax.c (skip_chars, in_classes): Use an array on the stack
	instead of a Lisp list for storing character classes.
	Don't check all classes if there is a match in one.
	Remove useless handle_iso_classes argument.

2023-05-09  João Távora  <joaotavora@gmail.com>

	Eglot: Replace eglot-execute-command with new eglot-execute

	Hopefully helps with https://github.com/joaotavora/eglot/discussions/1070 and
	https://github.com/emacs-sideline/sideline/issues/5

	* lisp/progmodes/eglot.el (eglot-execute-command): Obsolete.
	(eglot-execute): New generic.
	(eglot--read-execute-code-action): Use eglot-execute.

2023-05-09  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-08  Yuan Fu  <casouri@gmail.com>

	Fix treesit-node-top-level (bug#63374)

	* lisp/treesit.el (treesit-node-top-level): Fix the use of
	rx-to-string.

2023-05-08  Philipp Uhl  <git@ph-uhl.com>

	Extend secrets.el by lock/unlock item

	* lisp/net/secrets.el (secrets-lock-item, secrets-unlock-item):
	New defuns.
	(secrets-get-secret): Use `secrets-unlock-item'.  (Bug#62952)

2023-05-08  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/Makefile.in (install_temp/assets/version): Fix generation
	in out of tree builds.

2023-05-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-08  Alan Third  <alan@idiocy.org>

	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.

2023-05-07  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsInputConnection.java
	(requestCursorUpdates):
	* java/org/gnu/emacs/EmacsNative.java (requestCursorUpdates):
	* java/org/gnu/emacs/EmacsService.java (updateCursorAnchorInfo):
	New functions.
	* src/android.c (struct android_emacs_service)
	(android_init_emacs_service): Add new method.
	(android_update_cursor_anchor_info): New function.
	* src/androidfns.c (android_set_preeditarea): New function.
	* src/androidgui.h (enum android_ime_operation): New operation
	`REQUEST_CURSOR_UPDATES'.
	(struct android_ime_event): Document new meaning of `length'.
	* src/androidterm.c (android_request_cursor_updates): New
	function.
	(android_handle_ime_event): Handle new operations.
	(handle_one_android_event, android_draw_window_cursor): Update
	the preedit area if needed, like on X.
	(requestCursorUpdates): New function.
	* src/androidterm.h (struct android_output): New field
	`need_cursor_updates'.

2023-05-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-06  Andreas Schwab  <schwab@linux-m68k.org>

	Simplify check for non-empty list

	* lisp/gnus/nntp.el (nntp-with-open-group): Simplify check for
	non-empty list.

2023-05-06  Po Lu  <luangruo@yahoo.com>

	Fix portability problem in lisp/Makefile.in

	* lisp/Makefile.in (check-defun-dups): Avoid POSIX command
	substitutions.

2023-05-06  Po Lu  <luangruo@yahoo.com>

	Fix portability problem in toplevel Makefile

	* Makefile.in (sanity-check, preferred-branch-is-current): Avoid
	POSIX command substitution, to make Makefile work with the SVR4
	shell.

2023-05-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac (LIBGMP_CFLAGS): Avoid non portable test
	expression.

2023-05-06  Eli Zaretskii  <eliz@gnu.org>

	Fix interactive forms in some Lisp packages

	* lisp/woman.el (woman-reset-emulation):
	* lisp/treesit.el (treesit--explorer-jump):
	* lisp/speedbar.el (speedbar-toggle-etags):
	* lisp/filesets.el (filesets-convert-patterns):
	* lisp/calculator.el (calculator-saved-move):
	* lisp/progmodes/gud.el (gud-basic-call):
	* lisp/progmodes/ebrowse.el (ebrowse-redraw-marks)
	(ebrowse-view-file-other-frame):
	* lisp/progmodes/dcl-mode.el (dcl-indent-to):
	* lisp/net/socks.el (socks-open-connection):
	* lisp/net/ntlm.el (ntlm-build-auth-request):
	* lisp/emacs-lisp/backtrace.el (backtrace-expand-ellipsis):
	* lisp/calc/calc-prog.el (calc-edit-macro-finish-edit):
	* lisp/calc/calc-misc.el (calc-info-goto-node):
	* lisp/net/dictionary.el (dictionary-new-search)
	(dictionary-definition, dictionary-switch-tooltip-mode): Fix
	interactive functions where the 'interactive' form did not supply
	the mandatory arguments.  (Bug#62864)

2023-05-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* cross/verbose.mk.android: Get rid of badly aligned ANDROID_CC
	messages.
	* java/org/gnu/emacs/EmacsInputConnection.java (syncAfterCommit)
	(extractAbsoluteOffsets): Add workarounds for several kinds of
	machines.
	(commitText, getExtractedText): Likewise.
	* src/textconv.c (really_commit_text): Improve definition of
	POSITION.
	(get_extracted_text): Default to providing at least 4
	characters.

2023-05-06  Andrew G Cohen  <cohen@andy.bu.edu>

	Allow X-Message-SMTP-Method to include more MTAs

	* lisp/gnus/message.el (message-multi-smtp-send-mail): Allow the
	X-Message-SMTP-Method header to override the default mailer with not
	only smtp and sendmail but other MTAs as well.
	* doc/misc/message.texi: Document changes to the usage of
	X-Message-SMTP-Method.

2023-05-06  Dmitry Gutov  <dmitry@gutov.dev>

	package-upgrade: Implement the upgrading of built-ins

	* lisp/emacs-lisp/package.el (package--upgradeable-packages):
	Add new argument.  When INCLUDE-BUILTINS is non-nil, also search
	among package--builtins (bug#62720).
	(package-upgrade): Use the new argument.  Bind
	package-install-upgrade-built-in when necessary.  Mark the package
	as selected if it was previously an "active built-in".
	(package-upgrade-all): Update the docstring.

2023-05-06  Dmitry Gutov  <dmitry@gutov.dev>

	Merge from origin/emacs-29

	79a886ba368 (package-upgrade): Don't remove the package from 'package...
	c0ab4e9ca93 Eglot: re-rename eglot-upgrade to eglot-upgrade-eglot
	b4e90070f96 Fix arguments of xml.c functions as displayed in Help buf...
	b1bda8228e5 More fixes for NetBSD/vax
	a2d4cd06f45 Improve VHDL mode highlighting
	2f3a514b6db Clarify documentation wrt floating point division by zero...
	94e984e6700 Make loaddefs-generate slightly more tolerant
	aba41d2c4bb ; Minor doc cleanups in go-ts-mode.el
	b42ccb2e5c1 ; Minor grammar fix in treesit manual.
	ab44c8a6f9d Fix order of rcirc-connect arguments
	8eb6e33691d Fix rcirc messages printing in the wrong place
	2901a3443c7 Prevent unnecessary modifications of 'package-vc-selected...
	eaad302bd6f Rename eglot-update to eglot-upgrade
	eaf25b9c6ae go-ts-mode: Use iota query only if supported (Bug#63086)
	cc090294d77 (rng-complete-tag): Add the (ignored) argument to the :co...
	21ec6c1d5cc Update to Transient v0.3.7-219-g3ded15b
	8d5aa8df4ad Fix inserting selection data into Mozilla programs
	57562c3fd0a Recognize defstruct slot names in various eieio functions
	b93eb68cc30 Use 'calendar-buffer' instead of fixed string

	# Conflicts:
	#	etc/EGLOT-NEWS

2023-05-06  Dmitry Gutov  <dmitry@gutov.dev>

	Merge from origin/emacs-29

	fceaf230b06 Note that Emacs pauses when handling sentinel errors

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Add interface for finding users in erc-server-PRIVMSG

	* lisp/erc/erc-backend.el (erc-server-PRIVMSG): Call new hook
	`erc--user-from-nick-function' for turning the sender's nick into a
	channel user, if any.
	* lisp/erc/erc-button.el (erc-button--add-phantom-speaker): Redo
	completely using simplified API.
	(erc-button--fallback-user-function): Add internal function-interface
	variable for finding an `erc-server-user' object when the usual places
	disappoint.
	(erc-button--get-phantom-user): Add new function, a getter for
	`erc-button--phantom-users'.
	(erc-button--phantom-users-mode): Replace advice subscription for
	`erc-button--modify-nick-function' with one for
	`erc-button--user-from-nick-function' and one for
	`erc-button--fallback-user-function'.
	(erc-button--get-user-from-speaker-naive): Remove unused function.
	(erc-button--add-nickname-buttons): Call
	`erc-button--fallback-user-function' when a user can't be found in
	`erc-server-users' or `erc-channel-users'.
	* lisp/erc/erc.el (erc--user-from-nick-function): New
	function-interface variable for determining an `erc-server-user'
	`erc-channel-user' pair from the sender's nick.
	(erc--examine-nick): Add new function to serve as default value for
	`erc--user-from-nick-function'.  (Bug#60933)

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Improve erc-button--modify-nick-function interface

	* lisp/erc/erc-button.el (erc-button--check-nicknames-entry): Remove
	unused let binding.
	(erc-button--preserve-bounds): Remove unused function.
	(erc-button--nick): New struct type to serve as collection plate for
	`erc-button--modify-nick-function' consumers.
	(erc-button--modify-nick-function): Reexplain interface, now based on
	`erc-button--nick' object.  Change default value to `identity'.
	(erc-button--add-phantom-speaker): Redo to expect `erc-button--nick'
	object.
	(erc-button-add-nickname-buttons): Rework slightly to construct an
	`erc-button--nick' object for feeding to
	`erc-button--modify-nick-function'.  Only run the latter when an
	`erc-server-user' has successfully been found.  (Bug#60933)

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Revise FORM-as-function interface in erc-button-alist

	* lisp/erc/erc-button.el (erc-button-alist): Remove redundant "<URL:
	foo>" entry, which adds nothing beyond highlighting the surrounding
	bookends at the expense of doubling up on face properties for no
	reason.  Revise the FORM-as-function interface by removing the dynamic
	binding of face options and treating all implementers as replacements
	for `erc-button-add-button'.
	(erc-button--maybe-warn-arbitrary-sexp): Make more robust by having it
	handle all accepted FORM types other than booleans.
	(erc-button-add-buttons-1): Rework to only check FORM field once.
	(erc-button--substitute-command-keys-in-region,
	erc-button--display-error-with-buttons): Rename former as latter and
	change signature to conform to new `erc-button-add-buttons' interface.
	(erc-button--display-error-notice-with-keys): Call renamed helper.
	* test/lisp/erc/erc-button-tests.el (erc-button-alist--url,
	erc-button-tests--form, erc-button-tests--some-var,
	erc-button-tests--erc-button-alist--function-as-form,
	erc-button-alist--function-as-form,
	erc-button-tests--erc-button-alist--nil-form,
	erc-button-alist---nil-form): Add tests and helpers.  (Bug#60933)

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Preprocess prompt input linewise in ERC

	* etc/ERC-NEWS: Mention revised role of `erc-pre-send-functions'
	relative to line splitting.
	* lisp/erc/erc-common.el (erc-input): Add new slot `refoldp' to allow
	`erc-pre-send-functions' members to indicate that splitting should
	occur a second time after all members have had their say.
	(erc--input-split): Specify some defaults for overridden slots and
	explicitly declare some types for good measure.
	* lisp/erc/erc-goodies.el (erc-noncommands-mode,
	erc-noncommands-enable, erc-noncommands-disable): Replace
	`erc-pre-send-functions' with `erc--input-review-functions'.
	* lisp/erc/erc-ring.el (erc-ring-enable, erc-ring-disable,
	erc-ring-mode): Subscribe to `erc--input-review-functions' instead of
	`erc-pre-send-functions' for `erc--add-to-input-ring'.
	* lisp/erc/erc.el (erc-pre-send-functions): Note some nuances
	regarding line splitting in doc string and note that a new slot is
	available.
	(erc--pre-send-split-functions, erc--input-review-functions): Rename
	former to latter, while also obsoleting.  Remove large comment.  Add
	new default member `erc--run-input-validation-checks'.
	(erc-send-modify-hook): Replace the obsolete `erc-send-pre-hook' and
	`erc-send-this' with `erc-pre-send-functions' in doc string.
	(erc--check-prompt-input-for-excess-lines): Don't trim trailing
	blanks.  Rework to also report overages in characters as well as
	lines.
	(erc--run-input-validation-hooks): New function to adapt an
	`erc--input-split' object to `erc--check-prompt-input-functions'.
	(erc-send-current-line): Run `erc--input-review-functions' in place of
	the validation hooks they've subsumed.  Call `erc--send-input-lines'
	instead of the now retired but not deprecated `erc-send-input'.
	(erc--run-send-hooks, erc--send-input-lines): New functions that
	together form an alternate version of `erc-send-input'.  They operate
	on input linewise but make accommodations for older interfaces.
	* test/lisp/erc/erc-tests.el (erc-ring-previous-command): Replace
	`erc-pre-send-functions' with `erc--input-review-functions'.
	(erc-tests--with-process-input-spy): Shadow
	`erc--input-review-functions'.
	(erc-check-prompt-input-for-excess-lines): Don't expect trailing
	blanks to be trimmed.
	(erc--run-send-hooks): New test.  (Bug#62947)

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Redo line splitting for outgoing messages in ERC

	* lisp/erc/erc-backend.el (erc--reject-unbreakable-lines): New
	variable, an escape hatch for somewhat regaining pre-5.6
	line-splitting behavior.
	(erc--split-line): New utility function that doesn't rely on
	column-oriented filling.
	* lisp/erc/erc.el (erc--pre-send-split-functions): Append
	`erc--split-lines' to value.
	(erc--split-lines): New function to re-split current selection of
	lines.
	(erc-send-input): Hard-code line preparation instead of calling
	`erc--pre-send-split-functions', in order to bake in traditional
	behavior before move to "pre-splitting".
	* test/lisp/erc/erc-scenarios-base-split-line.el: New file.
	* test/lisp/erc/erc-tests.el (erc--split-line): New test.
	(erc-send-current-line): Don't expect a flood argument when
	interpreting a command because it's not passed along to the command's
	handler.  This was previously misleading because it assigned undue
	significance to something that had no bearing on the fate of a
	command.
	* test/lisp/erc/resources/base/flood/ascii.eld: New file.
	* test/lisp/erc/resources/base/flood/koi8-r.eld: New file.
	* test/lisp/erc/resources/base/flood/utf-8.eld: New file.
	* test/lisp/erc/resources/erc-d/erc-d.el: Don't decode input.
	(Bug#62947)

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Don't send multiline commands as messages in ERC

	* lisp/erc/erc.el (erc-command-regexp): Relocate from further down in
	same file.
	(erc--check-prompt-input-for-multiline-command): Reject slash commands
	containing multiple lines during input validation and before running
	additional hooks.
	(erc--discard-trailing-multiline-nulls): Don't mark input that begins
	with a possible "slash command" as constituting a plain message just
	because it has a trailing newline.  It's relatively easy to add a
	newline by accident, which can result in the unintended sharing of a
	command line.  Also, ERC already has a /SAY command that allows a user
	to send a message starting a literal command.
	* test/lisp/erc/erc-tests.el (erc-send-whitespace-lines): Fix test to
	expect validation error when non-blank lines follow a slash command.
	(Bug#62947)

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Restore module var toggles in ERC's Custom buffers

	* lisp/erc/erc-common.el (erc--neuter-custom-variable-state): Remove
	function.  ERC famously toggles global minor-mode vars during normal
	operations, which adds noise to its customization buffers because
	`customize-variable-state' always sees an activated module's mode
	variable as having "CHANGED".  To suppress this annoyance, a
	workaround was employed that used a dishonest `:get' function to
	simply return the "saved value," when present.  While this improved
	the Customize experience, it also misled users, which likely wasn't
	justified.
	(erc--make-show-me-widget): Add helper to avoid forward declarations.
	(erc--prepare-custom-module-type): Don't deprive users of a working
	minor-mode toggle.
	(erc--find-feature): New function to guess the feature of a module's
	containing library.
	(define-erc-module): Remove `:get' keyword.  Specify `:require'
	instead, whose value may be nil.  Users who currently have mode vars
	in their `custom-file' won't be impacted by this addition because
	those `custom-set-variables' entries will still lack a REQUEST list
	and hence won't incur a startup penalty.  And new users intent on
	using the toggle will hopefully do so with the knowledge they're
	opting in to requiring ERC on startup, which is not the case if they
	follow the recommended practice of using `erc-modules' instead.
	(erc-with-server-buffer): Inline `erc-server-buffer'.
	* test/lisp/erc/erc-tests.el (erc-process-input-line): Use helper.
	(define-erc-module--global): Change expected expansion.  (Bug#60935)

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Simplify erc-button movement commands

	* etc/ERC-NEWS: Mention TAB being bound to new command `erc-tab' and
	`erc-previous-button' now stopping at the start of buttons.
	* lisp/erc/erc-button.el (erc-button-mode, erc-button-enable,
	erc-button-disable): Add and remove `erc-button-next' to
	`erc--tab-functions' hook, which is tantamount to binding the command
	in the read-only area of an ERC buffer.
	(erc-button-next-function): Deprecate and remove from client code path
	because this module doesn't concern itself with prompt input and thus
	no longer needs to conform to the `completion-at-point-functions'
	interface.
	(erc-button--prev-next-predicate-functions): New variable, a hook to
	determine whether to continue searching for a button.  Other modules
	should utilize this as needed.
	(erc-button--end-of-button-p): Add function to serve as default value
	for `erc-button--continue-predicate'.
	(erc--button-next): Add generalized button-movement function.
	(erc-button-next, erc-button-previous): Make `erc-button-previous'
	behave more predictably by having it land at the beginning of buttons.
	And remove roundabout appeal to HOF in `erc-button-next'.
	(erc-button-previous-of-nick): New command to jump to previous
	appearance of nick at point.
	* lisp/erc/erc-fill.el (erc-fill-wrap, erc-fill-wrap-enable,
	erc-fill-wrap-disable): Add and remove merge-related hookee from
	`erc-button--prev-next-predicate-functions'.
	(erc-fill--wrap-merged-button-p): New function to detect redundant
	speakers.
	* lisp/erc/erc.el (erc-complete-functions): Quote TAB in doc string.
	(erc-mode-map): Bind `erc-tab' to TAB.
	(erc--tab-functions, erc-tab): Add new command and hook to serve as
	unified dispatch for TAB-related operations.  It calls `c-a-p' in the
	input area and defers to module code in the read-only message area.
	* test/lisp/erc/erc-button-tests.el: New file.
	* test/lisp/erc/erc-fill-tests.el (erc-fill-tests--wrap-populate): Run
	finalizer for transient keymap timer.
	* test/lisp/erc/erc-tests.el
	(erc-button--display-error-notice-with-keys): Move to new dedicated
	test file for erc-button and fix expected behavior of
	`erc-button-previous'.  (Bug#62834)

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Add erc-timestamp property to invisible messages

	* lisp/erc/erc-fill.el (erc-fill--wrap-beginning-of-line): Pretend
	nicks with an empty string as a `display' prop are `invisible-p' and
	break out of hidden "merged" nicks after moving.  (Bug#60936.)
	* lisp/erc/erc-match.el (erc-hide-fools): Add comment.
	* lisp/erc/erc-stamp.el (erc-add-timestamp): Always add
	`erc-timestamp' and `cursor-sensor-functions' properties but respect
	tradition and don't actually stamp any invisible messages.

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Actually define erc-default-server-functions

	* lisp/erc/erc-backend.el: Remove top-level `add-hook' for
	`erc-default-server-functions'.
	* lisp/erc/erc.el (erc-default-server-hook,
	erc-default-server-functions): Officially deprecate the former and
	rename it to the latter.
	(erc-default-server-handler): Mark obsolete because its replacement
	took over years ago.
	(erc-debug-missing-hooks): Append instead of mutate.

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Ignore erc-reconnect-display after a timeout

	* lisp/erc/erc-backend.el (erc--server-reconnect-display-timer): New
	variable to store active timer that, upon firing, zeroes out
	`erc--server-last-reconnect-count'.
	(erc--server-last-reconnect-on-disconnect): New function to run on
	`erc-disconnected-hook'.
	(erc--server-last-reconnect-display-reset): New function to ensure the
	reconnect-display period ends.
	* lisp/erc/erc.el (erc-reconnect-display-timeout): New option to
	control how long `erc-reconnect-display' affects the displaying of new
	buffers following an automatic reconnection.
	(erc-process-input-line): Ensure user input marks the end of the
	reconnect-display period.
	(erc-cmd-JOIN): Don't bother resetting
	`erc--server-last-reconnect-count' because it's now handled by its
	sometime caller, `erc-process-input-line'.
	(erc-connection-established): Schedule timer and register hook to
	reset last-reconnect count and terminate the reconnect-display period.
	* test/lisp/erc/erc-scenarios-base-buffer-display.el:
	(erc-scenarios-base-buffer-display--reconnect-common): Add new args to
	test fixture to allow for asserting display properties at various
	stages throughout a session.
	(erc-scenarios-base-reconnect-options--buffer,
	erc-scenarios-base-buffer-display--defwin-recbury-intbuf): Rename
	former to latter and rework to better reflect realistic settings
	for the relevant display options.
	(erc-scenarios-base-reconnect-options--default,
	erc-scenarios-base-buffer-display--defwino-recbury-intbuf): Rename
	former to latter and rework to be more realistic.
	(erc-scenarios-base-buffer-display--count-reset-timeout): New
	test for new option `erc-reconnect-display-timeout'.  (Bug#62833)

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Extend erc-interactive-display to cover /JOINs

	* lisp/erc/erc.el (erc-display): Mention that buffer-related display
	options live in the customization group `erc-buffers'.
	(erc-buffer-display, erc-join-buffer): Swap alias and aliased so that
	the favored name, `erc-buffer-display', appears in the definition and
	in the Customize menu.  Also note related buffer-display options in
	the doc string.
	(erc-query-display, erc-interactive-display): Make the former an alias
	of the latter, new in ERC 5.6, because their roles were functionally
	redundant and thus confusing.  Inherit the default value from
	`erc-query-display' because users are more familiar with the pop-up
	window behavior than a single-window replacement.
	(erc-reconnect-display): Use preferred name for cross-referencing
	fallback option `erc-buffer-display' in doc string, and explain how
	/reconnect handling differs.
	(erc--setup-buffer-hook): Add new internal hook for modules that
	operate on windows and frames, such as erc-speedbar and
	erc-status-sidebar.
	(erc-open): Run `erc--setup-buffer-hook' after `erc-setup-buffer' so
	hook members know their code isn't tied to `erc-setup-buffer' itself,
	which may be used in other contexts, but rather to a new ERC buffer on
	which some display-related action has just been performed.
	(erc--called-as-input-p): New variable for "slash" commands, like
	`erc-cmd-FOO', to detect whether they're being called "interactively"
	as a result of input given at ERC's prompt.
	(erc-process-input-line): Bind `erc--called-as-input-p' when running
	slash commands.
	(erc-cmd-JOIN): When called interactively, schedule a callback to wrap
	the response handler and control how new buffers are thus displayed.
	(erc-cmd-QUERY): Use preferred alias for `erc-query-display'.
	* test/lisp/erc/erc-scenarios-base-buffer-display.el:
	(erc-scenarios-base-buffer-display--interactive-default): New test.
	* test/lisp/erc/erc-tests.el (erc-process-input-line,
	erc-select-read-args, erc-tls, erc--interactive): Change expected
	default value of `erc-interactive-display' from `buffer' to
	`window'.  (Bug#62833)

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Move ERC's buffer-display tests to separate file

	* test/lisp/erc/erc-scenarios-base-buffer-display.el: New file.
	* test/lisp/erc/erc-scenarios-base-reconnect.el
	(erc-scenarios-common--base-reconnect-options,
	erc-scenarios-base-reconnect-options--buffer,
	erc-scenarios-base-reconnect-options--default): Move to new file and
	rename.  (Bug#62833)
	* test/lisp/erc/resources/erc-d/erc-d-tests.el (erc-d-run-linger):
	Lengthen timeout.
	* test/lisp/erc/resources/erc-d/erc-d.el (erc-d--m): Ensure buffer is
	live before inserting.

2023-05-06  F. Jason Park  <jp@neverwas.me>

	Revive option erc-query-on-unjoined-chan-privmsg

	* etc/ERC-NEWS: Mention reinstated and renamed legacy option
	`erc-query-on-unjoined-chan-privmsg' as well as a change in behavior
	for `erc-auto-query', when nil.  Also fix erroneous ChangeLog
	reference in 5.5 section.
	* lisp/erc/erc-backend.el (erc-server-PRIVMSG): Consider flag
	`erc-receive-query-display-defer' and revived option
	`erc-query-unjoined-chan-privmsg' when deciding whether to create a
	new query buffer.  And only "open" a buffer for an unknown target when
	the latter option is non-nil.
	* lisp/erc/erc.el (erc-cmd-QUERY): Make error more informative.
	(erc-query): Revise deprecation message.
	(erc-auto-query, erc-receive-query-display): Swap alias and aliased
	and add option to `erc-buffers' group.  Mention the nonstandard
	meaning of nil and update package-version to signify a behavioral
	change, even though the default value remains untouched.
	(erc-receive-query-display-defer): Add new variable, a compatibility
	switch to access legacy behavior for `erc-auto-query'.
	(erc-query-on-unjoined-chan-privmsg,
	erc-ensure-target-buffer-on-privmsg): Revise doc string and add alias.
	Change package-version to ERC 5.6 due to slightly refined meaning.
	* test/lisp/erc/erc-scenarios-base-attach.el: New file.
	* test/lisp/erc/resources/base/channel-buffer-revival/reattach.eld:
	New file.  (Bug#62833)

2023-05-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-05  Mattias Engdegård  <mattiase@acm.org>

	Make old-struct test more robust

	* test/lisp/emacs-lisp/cl-lib-tests.el (old-struct):
	Use the `vector` constructor instead of vector literals to
	avoid failing because of `type-of` constant-folding.

2023-05-05  Mattias Engdegård  <mattiase@acm.org>

	Constant-propagate cons and vector literals

	* lisp/emacs-lisp/byte-opt.el (byte-optimize--substitutable-p):
	Allow quoted lists and conses, and vector literals, to be substituted
	from lexical variables.  This can eliminate variable bindings and
	create new constant folding opportunities.

2023-05-05  Mattias Engdegård  <mattiase@acm.org>

	Remove useless handling of erroneous code in Lisp optimizer

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
	((closure ...) ...) is a malformed function call; treat it as such.
	Better malformed function warning location.

2023-05-05  Mattias Engdegård  <mattiase@acm.org>

	Don't inline funcall to literal lambda form

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-funcall): Don't convert

	  (funcall '(lambda ...) ...) -> ((lambda ...) ...)

	because that would inline what is essentially an `eval` of a
	function using dynamic binding rules into lexbound code.

2023-05-05  João Távora  <joaotavora@gmail.com>

	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.

2023-05-05  Michael Albinus  <michael.albinus@gmx.de>

	Improve ange-ftp-file-remote-p

	* lisp/net/ange-ftp.el (ange-ftp-file-remote-p): Handle hop
	identification.

2023-05-05  Mattias Engdegård  <mattiase@acm.org>

	Fix dired and tramp where `ls` does not have the `-N` option

	This includes BSD ls, also used by macOS (bug#63142).

	* lisp/dired.el (dired-insert-directory):
	* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
	Test whether -N is understood by ls since that option is used along
	with --dired.  Remove -N when we remove --dired.

2023-05-05  Po Lu  <luangruo@yahoo.com>

	Fix execution of /proc/self/exe within child processes

	* exec/exec.h (struct exec_tracee): New field `new_child'.
	Also, make `waiting_for_syscall' a bitfield.
	* exec/trace.c (PTRACE_GETEVENTMSG): New declaration.
	(MAX_TRACEES): Bump to 4096.
	(handle_clone_prepare): New function.
	(handle_clone): If required, set `new_child' and wait for a
	ptrace event describing the parent to arrive.
	(after_fork): Clear new field.
	(exec_waitpid): Upon a ptrace event describing a clone, create
	the child's tracee if it doesn't already exist.  Otherwise, copy
	over the parent's cmdline and start running it.

2023-05-05  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Environment): Document lossage
	with SIGSTOP.
	* exec/exec.c (exec_0): Check X_OK on file being opened.  Also
	handle /proc/self/exe.

2023-05-05  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* exec/trace.c (SYS_SECCOMP): Define when not present.

2023-05-05  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-05  Spencer Baugh  <sbaugh@janestreet.com>

	Make vc-hg-annotate-command async

	There's no benefit in this running the process synchrounously, and
	it's annoying for it to block the Emacs UI.

	* lisp/vc/vc-hg.el (vc-hg-annotate-command):
	Run asynchronously (bug#63123).

2023-05-04  Michael Albinus  <michael.albinus@gmx.de>

	Suspend timers when reading Tramp process output

	* lisp/net/tramp-compat.el (xdg): Require.
	(tramp-compat-temporary-file-directory): Set it to
	$XDG_CACHE_HOME/emacs if possible.

	* lisp/net/tramp.el (tramp-debug-to-file): Fix docstring.
	(tramp-wrong-passwd-regexp): Add "Authentication failed" string
	(from doas).
	(tramp-debug-message): Simplify backtrace check.
	(with-tramp-locked-connection): Suppress timers.  (Bug#49954, Bug60534)

	* test/lisp/net/tramp-tests.el (tramp-test09-insert-file-contents):
	Adapt test.
	(tramp-test45-asynchronous-requests): Remove :unstable tag.
	Adapt test.

2023-05-04  Po Lu  <luangruo@yahoo.com>

	Document another misfeature of Android

	* doc/emacs/android.texi (Android Environment): Describe how to
	turn off process killing.

2023-05-04  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* exec/trace.c (check_signal): New function.
	(handle_exec, process_system_call): Handle signal-delivery-stop
	while waiting synchronously for syscall completion.

2023-05-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/package.el (package-buffer-info): Fix thinko

2023-05-03  Michael Albinus  <michael.albinus@gmx.de>

	Tramp code cleanup

	* doc/lispref/files.texi (Magic File Names): Order alphabetically.

	* lisp/net/tramp.el (tramp-file-name-for-operation):
	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	Order alphabetically.

	* lisp/net/tramp.el (tramp-handle-file-user-uid)
	(tramp-handle-file-group-gid, tramp-read-id-output):
	* lisp/net/tramp-archive.el (tramp-archive-handle-file-group-gid):
	(tramp-archive-handle-file-user-uid): Fix docstring.

	* test/lisp/net/tramp-archive-tests.el
	(tramp-archive-test44-user-group-ids): Fix docstring.

2023-05-03  Alan Mackenzie  <acm@muc.de>

	Fontify "extern foo ();" correctly inside a function

	This fixes bug#63224.

	* lisp/progmodes/cc-engine.el (c-forward-type): Handle the "("
	as a special case by trying to parse it with
	c-forward-declarator and accepting it as a typeless function
	when that fails.

2023-05-03  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* exec/config.h.in: Autoheader.
	* exec/configure.ac: Check for siginfo_t.si_syscall.
	* exec/trace.c (exec_waitpid): If SIGSYS is received, and caused by
	seccomp, drop it should the call number be the invalid system call
	used by Emacs.

2023-05-03  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* exec/config.h.in: Autoheader.
	* exec/configure.ac: Use system extensions.
	(HAVE_PROCESS_VM): Define if process_vm_readv and
	process_vm_writev are available.
	* exec/trace.c (read_memory, user_copy): Implement in terms of
	process_vm if possible.

2023-05-03  Jim Porter  <jporterbugs@gmail.com>

	Use connection-aware functions when getting the UID/GID in Eshell

	This means, for example, that when using Tramp to sudo in Eshell, "rm"
	queries the user before deleting anything (bug#63221).

	* lisp/eshell/esh-util.el (eshell-user-login-name): New function...
	* lisp/eshell/em-unix.el (eshell/whoami): ... use it.

	* lisp/eshell/em-ls.el (eshell-ls-applicable): Use 'file-user-uid' and
	'eshell-user-login-name'.
	(eshell-ls-decorated-name): Use 'file-user-uid'.

	* lisp/eshell/em-pred.el (eshell-predicate-alist): Use 'file-user-uid'
	and 'file-group-gid'.

	* lisp/eshell/em-unix.el (eshell-interactive-query): New widget...
	(eshell-rm-interactive-query, eshell-mv-interactive-query)
	(eshell-cp-interactive-query, eshell-ln-interactive-query): ... use
	it.
	(eshell-interactive-query-p): New function...
	(eshell/rm, eshell/mv, eshell/cp, eshell/ln): ... use it.

	* lisp/simple.el (file-group-gid): New function.

	* lisp/net/ange-ftp.el (ange-ftp-file-group-gid): New function...
	(file-group-gid): ... use it.

	* lisp/net/tramp.el (tramp-handle-file-group-gid):
	* lisp/net/tramp-archive.el (tramp-archive-handle-file-group-gid): New
	functions.

	* lisp/net/tramp.el (tramp-file-name-for-operation): Add
	'file-group-gid'.

	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	Add 'file-group-gid' mapping.

	* test/lisp/net/tramp-tests.el (tramp-test44-file-user-group-ids):
	* test/lisp/net/tramp-archive-tests.el
	(tramp-archive-test44-file-user-group-ids): Add tests for
	'file-group-gid'.

	* doc/lispref/files.texi (Magic File Names): Mention 'file-group-gid'.

	* doc/lispref/os.texi (User Identification): Document
	'file-group-gid', and move 'group-real-gid' to match the order of
	'user-real-uid'.

	* etc/NEWS: Announce 'file-group-gid'.

2023-05-03  Po Lu  <luangruo@yahoo.com>

	Remove extra debugging code

	* exec/loader-mipsel.s (__start): Remove extraneous debugging
	code.

2023-05-03  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* exec/Makefile.in: (.PHONY): Add `bootstrap-clean' and
	`extraclean'.
	(bootstrap-clean): New rule.

2023-05-03  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/Makefile.in (FIND_DELETE): New substitution.
	(clean): Use FIND_DELETE.

2023-05-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-02  Shynur  <one.last.kiss@outlook.com>

	Display matched offscreen open paren with a distinct face

	Propertize matched offscreen openparen that is showing in
	the echo area in order to make it prominent; use shadow
	face for non-context characters (i.e., 'Matches') for the
	same purpose.
	* lisp/simple.el (blink-matching-paren-offscreen): Add this
	face for highlighting.
	* lisp/simple.el (blink-matching-paren-highlight-offscreen): Add
	this option to toggle face `blink-matching-paren-offscreen'.
	* lisp/simple.el (blink-paren-open-paren-line-string): Propertize
	the matched offscreen openparen with a face conditionally.
	(Bug#63089)

2023-05-02  Eli Zaretskii  <eliz@gnu.org>

	Fix Dired when QUITING_STYLE is set in the environment

	* lisp/dired.el (dired-insert-directory): Ensure non-default
	quoting style of file names is not used by 'ls' when we invoke it
	with the --dired switch.  (Bug#63142)

2023-05-02  Po Lu  <luangruo@yahoo.com>

	* doc/emacs/android.texi (Android Environment): Improve doc.

2023-05-02  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	46392c1623b Fix vertical-motion when tab-line is displayed in a window
	0e52beeacea Update to Org 9.6.5-3-g2993f4
	dd21003878d Prevent generating empty autoload files
	2bcf11d0efe * lisp/org/org-macs.el (org--inhibit-version-check): Fix ...
	ca43435816b Fix redisplay of mode line after its format changes from nil
	610a7657e0a Fix c-ts-mode--emacs-c-range-query
	7f94558b775 Improve documentation of warnings
	5a3f0e2c558 ; Doc fix in c-ts-mode.el
	21361d05635 Fix FOR_EACH_TAIL fontification (bug#62951)
	d0df3404fde ; * etc/EGLOT-NEWS:  chsharp-le -> csharp-ls
	c229e83c3ce ; * etc/EGLOT-NEWS (https): Elglot -> Eglot.
	b4f2f499783 Fix documentation of libxml-parse-* functions
	5dd784961d1 ; * src/treesit.c (syms_of_treesit): Fix error messages.
	ddfa0d8da9a ; Remove some leftover text

2023-05-02  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* exec/config.h.in (__bool_true_false_are_defined):
	* exec/configure.ac (REENTRANT): New definition.
	(READLINKAT_SYSCALL, READLINK_SYSCALL): New defines.  Set on all
	hosts.
	* exec/exec.c (MIN, MAX): Remove redundant declarations.  Move
	to config.h.
	(exec_0): Copy name of executable into NAME when !REENTRANT.
	* exec/exec.h (struct exec_tracee): New struct `exec_file'.
	* exec/trace.c (remove_tracee, handle_exec, handle_readlinkat)
	(process_system_call, after_fork): Handle readlinkat system
	calls.

2023-05-02  Eli Zaretskii  <eliz@gnu.org>

	Revert "; * lisp/progmodes/c-ts-mode.el: allow loading file without treesit"

	This reverts commit 7d246c359cf3d25cab5134076e393c4d25015827.
	The same problem was already fixed on the release branch,and this
	change will just cause merge conflicts.

2023-05-02  Po Lu  <luangruo@yahoo.com>

	Fix ps name in Android subprocesses

	* exec/Makefile.in (.SUFFIXES): Include ., then `srcdir'.
	* exec/loader-aarch64.s (_start):
	* exec/loader-armeabi.s (_start):
	* exec/loader-mips64el.s (__start):
	* exec/loader-mipsel.s (__start):
	* exec/loader-x86.s (_start):
	* exec/loader-x86_64.s (_start): Get basename of opened exec
	file and make it the command name.  Fix envp skipping on x86
	and various leaks.

2023-05-02  Po Lu  <luangruo@yahoo.com>

	Port Android port to older Android systems

	* exec/config.h.in: Autoheader.
	* exec/configure.ac: Check for declarations of stpcpy and
	stpncpy.
	* exec/exec.c (stpcpy, stpncpy): Use replacements if
	declarations are not present; this happens when a new Android
	NDK is building for an old version of Android.

2023-05-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-01  Mattias Engdegård  <mattiase@acm.org>

	Declare `cl-delete` to have important-return-value (bug#61730)

	* lisp/emacs-lisp/cl-macs.el: Set property on `cl-delete`.
	* lisp/progmodes/python.el (python-shell--add-to-path-with-priority):
	Prevent warning by cleaner code.

2023-05-01  Mattias Engdegård  <mattiase@acm.org>

	Add the function declaration and property `important-return-value`

	Now the declaration

	 (declare (important-return-value t))

	can be used to have the byte-compiler warn when the return value from
	a call is discarded (bug#61730).

	* lisp/emacs-lisp/bytecomp.el (byte-compile-form)
	(important-return-value-fns): Use the function property
	`important-return-value` instead of looking through a static list.
	* lisp/emacs-lisp/byte-run.el (byte-run--set-important-return-value)
	(defun-declarations-alist): New function declaration, setting the
	property of the same name.
	* lisp/emacs-lisp/cl-macs.el:
	* lisp/subr.el (assoc-default): Set the property.
	* doc/lispref/functions.texi (Declare Form):
	* doc/lispref/symbols.texi (Standard Properties): Document.
	* etc/NEWS: Announce.

2023-05-01  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* exec/config.h.in: Update config.h.in.
	* exec/configure.ac: Check for stpcpy and stpncpy.
	* exec/exec.c (rpl_stpcpy, rpl_stpncpy): Define replacements
	when they are not present on the system.
	(process_program_header): Fill comment.

2023-05-01  Po Lu  <luangruo@yahoo.com>

	Fix cwd relative process execution on Android

	* exec/exec.c (format_pid): New function.
	(exec_0): Make cwd relative file names relative to
	/proc/pid/cwd.
	* exec/trace.c (handle_exec): Handle EINTR.
	(process_system_call): Report failure without clobbering x0.

2023-05-01  Po Lu  <luangruo@yahoo.com>

	Fix use dialog box regression on Android

	* lisp/subr.el (use-dialog-box-p): Always prefer dialog boxes.

2023-05-01  Po Lu  <luangruo@yahoo.com>

	Make it easier to quit on Android

	* src/android.c (android_write_event):
	(JNICALL): Raise SIGIO on key press and window action events.

2023-05-01  Po Lu  <luangruo@yahoo.com>

	Fix syscall error reporting on aarch64

	* exec/trace.c (process_system_call): Save and restore x0, x1
	and x2 regs after replacing them with an invalid file
	descriptor.

2023-05-01  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* Makefile.in (extraclean): Clean in exec as well.
	* configure.ac: Fix detection of absolute srcdir.  Also, pass
	CFLAGS.
	* exec/Makefile.in: (.c.o): Add -I. so config.h can be
	found.:(.s.o): Don't create m4 temporary in srcdir.
	* exec/config-mips.m4.in (DADDI2, DADDI3): New macros.  Define
	to substitute if as cannot assemble daddi.
	* exec/configure.ac (user_h): Look for user.h in asm/ as well.
	Use new user.h.  Also look in ptrace.h on arm systems.  Check if
	as supports daddi on mips64.
	* exec/exec.c (check_interpreter): Fix char signedness bug.
	* exec/loader-mips64el.s (__start): Use DADDI2 and DADDI3 for
	two- and 3-operand daddi.
	* exec/mipsel-user.h: Don't include sgidefs.h.
	* java/INSTALL: Document that m4 is now required.
	* src/android.c (android_rewrite_spawn_argv): Add missing NULL.

2023-05-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-05-01  Po Lu  <luangruo@yahoo.com>

	Work around system restrictions regarding exec

	* doc/emacs/android.texi (Android Environment): Document
	`android-use-exec-loader'.
	* exec/exec1.c (main): Set program group of child process.
	* src/android.c (android_rewrite_spawn_argv): New function.
	* src/android.h: Update prototypes.
	* src/androidfns.c (syms_of_androidfns): New variable
	`android_use_exec_loader'.
	* src/callproc.c (emacs_spawn): Rewrite the argument vector to
	use exec1 if necessary.

2023-05-01  F. Jason Park  <jp@neverwas.me>

	Compare case-folded nicks with erc-fill-wrap-merge

	* lisp/erc/erc-fill.el (erc-fill--wrap-continued-message-p): Downcase
	both current and previous speaker when comparing nicks.
	* test/lisp/erc/erc-fill-tests.el (erc-fill-wrap--merge): Add
	title-case nick to test.
	* test/lisp/erc/resources/fill/snapshots/merge-01-start.eld: Update
	snapshot.
	* test/lisp/erc/resources/fill/snapshots/merge-02-right.eld: Update
	snapshot.  (Bug#60936)

2023-05-01  Po Lu  <luangruo@yahoo.com>

	Remove exec/configure

	* exec/configure: Remove file.
	* .gitignore: Add exec/configure.

2023-04-30  Po Lu  <luangruo@yahoo.com>

	Add helper binary `exec1'

	* .gitignore: New files.
	* Makefile.in (mostlyclean_dirs): Add libexec, if its Makefile
	exists.
	* autogen.sh (do_git): Autoreconf in exec as well.
	* configure.ac: Configure libexec on Android.
	* exec/Makefile.in:
	* exec/README:
	* exec/config-mips.m4.in:
	* exec/config.guess:
	* exec/config.h.in:
	* exec/config.sub:
	* exec/configure:
	* exec/configure.ac:
	* exec/deps.mk:
	* exec/exec.c (MIN, struct exec_open_command)
	(struct exec_map_command, struct exec_jump_command)
	(write_open_command, write_load_command, process_interpreter_1)
	(process_interpreter, process_program_header, insert_args)
	(exec_0):
	* exec/exec.h (_EXEC_H_, struct elf_header_32)
	(struct program_header_32, struct dt_entry_32)
	(struct elf_header_64, struct program_header_64)
	(struct dt_entry_64, struct exec_tracee):
	* exec/exec1.c (main):
	* exec/install-sh (scriptversion):
	* exec/loader-aarch64.s (_start):
	* exec/loader-armeabi.s (_start):
	* exec/loader-mips64el.s (__start):
	* exec/loader-mipsel.s (__start):
	* exec/loader-x86.s (_start):
	* exec/loader-x86_64.s (_start):
	* exec/mipsel-user.h (_MIPSEL_USER_H_):
	* exec/mipsfpu.c (MIPS_ABI_FP_ANY, fpu_reqs, valid_abi_p)
	(fp_mode_for_abi, cpu_supports_fr0_p, determine_fpu_mode):
	* exec/mipsfpu.h (_MIPSFPU_H_, FP_FR0):
	* exec/test.c (print_usage, main):
	* exec/trace.c (MAX_TRACEES, aarch64_set_regs, read_memory)
	(user_alloca, user_copy, remove_tracee, handle_clone)
	(syscall_trap_p, handle_exec, process_system_call, tracing_execve)
	(after_fork, find_tracee, exec_waitpid, exec_init): New files.
	* java/Makefile.in (CROSS_EXEC_BINS): Add exec1 and
	loader.
	($(CROSS_EXEC_BINS) &): New target.

2023-04-30  Andrew G Cohen  <cohen@andy.bu.edu>

	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.

2023-04-30  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-30  João Távora  <joaotavora@gmail.com>

	Eglot: bump to 1.15

	* lisp/progmodes/eglot.el (Version): Bump to 1.15

	* etc/EGLOT-NEWS: Update.

2023-04-29  João Távora  <joaotavora@gmail.com>

	Eglot: unbreak for Emacs 26

	Emacs 26 doesn't have newer progress-reporter-update.
	I think I'll start using compat.el soon.

	* lisp/progmodes/eglot.el (eglot--apply-text-edits): Unbreak for
	Emacs 26 which doesn't have newer progress-reporter-update.

2023-04-29  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Improve call indentation for elixir-ts-mode

	* lisp/progmodes/elixir-ts-mode.el
	(elixir-ts--indent-rules): Change match order.
	(Bug#63110)

	* test/lisp/progmodes/elixir-ts-mode-resources/indent.erts:
	Add test case.

2023-04-29  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Add bitstring indentation and navigation for elixir-ts-mode

	* lisp/progmodes/elixir-ts-mode.el
	(elixir-ts--sexp-regexp): Add bistring.
	(elixir-ts--indent-rules): Handle bitstring indentation.
	(Bug#63109)

	* test/lisp/progmodes/elixir-ts-mode-resources/indent.erts:
	Add test case.

2023-04-29  Eli Zaretskii  <eliz@gnu.org>

	Optimize search for composable characters in redisplay

	* src/composite.c (composition_compute_stop_pos): Accept new
	argument INCLUDE_STATIC, and look for potential static
	compositions only if this argument is non-zero.
	* src/xdisp.c:
	* src/composite.c:
	* src/indent.c: All callers adjusted.
	* src/xdisp.c (compute_stop_pos): Don't search for static
	compositions.  Search for automatic compositions only after the
	iterator gets past the composition stop_pos computed last time.
	Use a better position for limiting search for automatic
	compositions.  (Bug#62780)

2023-04-29  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* build-aux/ndk-build-helper.mk (TARGET_ARCH): Define variable.
	* configure.ac (ENABLE_CHECKING, CHECK_STRUCTS)
	(GC_CHECK_STRING_OVERRUN, GC_CHECK_STRING_FREE_LIST, GLYPH_DEBUG)
	(GC_CHECK_STRING_BYTES): Enable checking correctly on Android.
	* java/README: Fix typos.
	* m4/ndk-build.m4 (ndk_run_test): Pass target arch.
	* src/android.c (android_get_content_name, android_close)
	(android_fclose, android_check_string): Fix various typos caught
	by checking.
	* src/charset.c (load_charset_map_from_file): Call emacs_fclose,
	not fclose.
	* src/image.c (image_set_transform): Fix thinko.
	(png_load_body, jpeg_load_body, gif_load): Call emacs_fclose,
	not fclose.  Use open instead of fdopen.
	* src/xfaces.c (Fx_load_color_file): Likewise.

2023-04-28  Jonas Bernoulli  <jonas@bernoul.li>

	Support displaying all package maintainers (Bug#62524)

	* lisp/emacs-lisp/package.el (describe-package-1): Use new
	:maintainers package extra property from "archive-contents",
	if non-nil.
	* (package-buffer-info): Fix docstring.

2023-04-28  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	212e30f6789 ; Fix byte-compilation warnings in c-ts-mode.el
	1f2214dabd0 Skip over whitespace in annotation-top-cont check (bug#63...
	7e136c51f6f Update zh-CN tutorial translation
	d3ca0b3aa2e ; * lisp/progmodes/c-ts-mode.el: Fix comments and doc str...
	c6f15c24862 ; Fix last change.
	b9e06330f75 ; * etc/NEWS: Followup to bug#62720.
	b33d25f5967 ; Minor improvements in doc strings of package-upgrade co...
	c3a61870b94 Fix eglot.texi

	# Conflicts:
	#	etc/NEWS

2023-04-28  Mattias Engdegård  <mattiase@acm.org>

	Use t for non-nil default values in boolean defcustom declarations

	* lisp/emulation/viper-ex.el (ex-unix-type-shell):
	* lisp/emulation/viper-init.el (viper-ms-style-os-p):
	* lisp/eshell/em-glob.el (eshell-glob-case-insensitive):
	* lisp/filecache.el (file-cache-ignore-case):
	* lisp/lpr.el (lpr-add-switches):
	* lisp/ls-lisp.el (ls-lisp-ignore-case):
	* lisp/mail/binhex.el (binhex-use-external):
	* lisp/progmodes/cperl-mode.el (cperl-electric-parens-mark):
	Normalize default values to nil or t.

2023-04-28  Po Lu  <luangruo@yahoo.com>

	Make mode-line behavior better with grayscale visuals

	* lisp/faces.el (mode-line, mode-line-inactive)
	(mode-line-highlight): Enable gray faces on grayscale visuals.

2023-04-28  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-28  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	a40f1816237 Fix two crashes upon startup
	44ebd9cbd56 Eglot: explain how to update Eglot in manual (bug#62720)
	941ef044f2e Eglot: fix edge case when deleting inlay hint overlays
	a365984d9e1 package-upgrade[-all]: Expand docstrings to note the curr...
	f965f35b33b Rename all functions called package-*-update-* to package...
	31b58161bb5 Fix FOR_EACH_TAIL in c-ts-mode (bug#62951)
	0cf6e0998ba * Makefile.in (distclean): Remove the 'native-lisp' direc...
	933705d61e5 Improve greek-ibycus4 input method

	# Conflicts:
	#	etc/NEWS

2023-04-28  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-27  Michael Albinus  <michael.albinus@gmx.de>

	Fix thinko in tramp-gvfs-maybe-open-connection

	* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
	Use `assoc-default'.

2023-04-27  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp bug#63102

	* lisp/net/tramp.el (tramp-remote-path): Add ;;;###tramp-autoload cookie.
	(Bug#63102)

2023-04-27  Mattias Engdegård  <mattiase@acm.org>

	Clarify `nconc` behavior for dotted lists (bug#63103)

	* doc/lispref/lists.texi (Rearrangement): Explicitly say that dotted
	lists are valid args to `nconc` and give an example.

2023-04-27  Mattias Engdegård  <mattiase@acm.org>

	Don't rewrite (nconc X nil) -> X for any X (bug#63103)

	Since the last cdr of a non-terminal argument to `nconc` is
	overwritten no matter its value:

	  (nconc (cons 1 2) nil) => (1)

	a terminating nil arg cannot just be eliminated unconditionally.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-nconc):
	Only eliminate a terminal nil arg to `nconc` if preceded by
	a nonempty proper list.  Right now we only bother to prove this
	for `(list ...)`, so that

	  (nconc (list 1 2 3) nil) -> (list 1 2 3)

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--test-cases): Add test cases.

2023-04-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/image.c (image_create_bitmap_from_data): Fix typo in
	preprocessor conditionals.

2023-04-27  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-27  Po Lu  <luangruo@yahoo.com>

	Fix bootstrap on Unix

	* admin/charsets/Makefile.in (${charsetdir}/JISX0201.map): Use
	run_mapconv, which uses the correct awk.
	* admin/charsets/mapconv (LC_ALL): Don't place assignment in
	same line as export.

2023-04-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android File System):
	(Android Windowing): Make Emacs manual more portable.

2023-04-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/commands.texi (Misc Events):
	* doc/lispref/frames.texi (Accessing Selections):
	(X Selections): Fix pieces of the Info manual.

2023-04-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	af43f0a2954 * doc/misc/erc.texi: Elaborate on upgrading via ELPA.
	10948948c12 Improve outline-default-state docstring
	b5ace2eed80 Document problems with /bin/sh on Solaris 10
	7b2ad8f199e ; Add missing <<inserted by help-with-tutorial>> line to ...

2023-04-27  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-26  Michael Albinus  <michael.albinus@gmx.de>

	New command 'tramp-cleanup-some-buffers'

	* doc/misc/tramp.texi (Cleanup remote connections):
	Document tramp-cleanup-some-buffers and
	tramp-cleanup-some-buffers-hook.

	* etc/NEWS: New command 'tramp-cleanup-some-buffers'.

	* lisp/net/tramp.el (tramp-handle-make-process):
	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	* lisp/net/tramp-sh.el (tramp-sh-handle-make-process):
	Use `tramp-taint-remote-process-buffer'.

	* lisp/net/tramp.el (tramp-post-process-creation): New defun.
	(tramp-handle-make-process):
	* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
	* lisp/net/tramp-crypt.el (tramp-crypt-maybe-open-connection):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch)
	(tramp-gvfs-maybe-open-connection):
	* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
	(tramp-sh-handle-file-notify-add-watch)
	(tramp-maybe-open-connection):
	* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
	(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl)
	(tramp-smb-maybe-open-connection):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection)
	(tramp-sudoedit-send-command): Use it.

	* lisp/net/tramp-cmds.el (tramp-tainted-remote-process-buffers):
	New defvar.
	(tramp-cleanup-dired-buffer-p)
	(tramp-delete-tainted-remote-process-buffer-function)
	(kill-buffer-hook, tramp-cleanup-remote-process-p)
	(tramp-cleanup-some-buffers): New defuns.
	(tramp-cleanup-some-buffers-hook): New defcustom.  Add
	`buffer-file-name', `tramp-cleanup-dired-buffer-p' and
	`tramp-cleanup-remote-process-p' to the hook.
	(kill-buffer-hook):
	Add `tramp-delete-tainted-remote-process-buffer-function'.
	(tramp-cleanup-all-buffers): Rework.

	* lisp/net/tramp-compat.el (tramp-compat-always): New defalias.

	* test/lisp/net/tramp-tests.el (tramp--test-always): Delete.
	(tramp-test10-write-region, tramp-test21-file-links)
	(tramp--test-deftest-direct-async-process)
	(tramp-test37-make-auto-save-file-name)
	(tramp-test38-find-backup-file-name)
	(tramp-test39-make-lock-file-name)
	(tramp-test39-detect-external-change): Use `tramp-compat-always'.

2023-04-26  Po Lu  <luangruo@yahoo.com>

	Make two well known amusements work on Android

	* lisp/play/doctor.el (text-conversion-style):
	(doctor-mode):
	* lisp/play/dunnet.el (text-conversion-style):
	(dun-mode): Set `text-conversion-style' to `action'.

2023-04-26  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-25  Eli Zaretskii  <eliz@gnu.org>

	Allow inserting #x6A58 using chinese-ctlaub IM

	* leim/MISC-DIC/CTLau-b5.html (CTLau-b5 : Hanzi input by Cantonese
	transcription (Lau style)): Add #x6A58 to GAT and GWAT.  (Bug#62898)

2023-04-25  Antero Mejr  <antero@mailbox.org>

	eww: Provide completions for bookmarks and suggested URIs.

	* lisp/net/eww.el (eww): Add the result of 'eww-suggest-uris' to the
	completion collection argument.
	(eww-bookmark-urls): New procedure.
	(eww-suggest-uris): Add "eww-bookmark-urls" to the default list.
	* etc/NEWS (EWW): Add NEWS entry for the change.  (Bug#62800)

2023-04-25  Antero Mejr  <antero@mailbox.org>

	eww: Enable completion in URL/keyword prompt.

	* lisp/net/eww.el (eww): Use 'completing-read' when prompting for a URL
	or keywords.
	(eww-minibuffer-url-keymap): New keymap for use in the URL/keyword
	prompt.
	* etc/NEWS (EWW): Add NEWS entry for the change.  (Bug#62800)

2023-04-25  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	524e161a536 Followup to addition of TUTORIAL.fa
	76f50df1539 Add Farsi/Persian translation of the tutorial
	8eacfaea6d8 Add Mongolian language environments
	fe8efbb8f75 Document the 'end-session' event on MS-Windows
	d80f959bede Update to Org 9.6.4-9-g8eb209
	98c6cfcbe4a Don't support versioned grammar libraries on MS-Windows
	8f71c1546df Accept versioned tree-sitter language grammar files
	99add09d5e1 tab-bar-new-tab: inhibit side-window checks
	087e8181947 * etc/NEWS: Fix outline level.  (Bug#63042)
	d7f38558c4c ; Improve font selection for Traditional Mongolian
	965c5e0231c Fix rendering of Traditional Mongolian script
	9a0f10b5f88 Fix line-number-at-pos when POSITION is out of narrowing
	4e0f4292aaf ; * etc/tutorials/TUTORIAL: Fix punctuation.
	dec2ac0c657 Fix exiting Emacs after saving a tutorial

	# Conflicts:
	#	etc/NEWS

2023-04-25  Po Lu  <luangruo@yahoo.com>

	Improve portability of pkg-config tests.

	* configure.ac: Fix problems found after pkg-config was
	installed on Solaris 10.

2023-04-25  Your Name  <you@example.com>

	Fix configure.ac for some Bourne shells

	This fixes running configure under /bin/sh on Solaris 10, and
	some other Unix systems.

	* configure.ac: Avoid POSIX style command substitutions.
	(emacs_major_version): Avoid POSIX style pattern substitution.
	(PORT_PACKAGE, MAC_FLAGS, MAC_LIBS): Avoid POSIX style command
	substitutions.

2023-04-25  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-24  Mattias Engdegård  <mattiase@acm.org>

	Require custom values of `boolean` type to be nil or t

	This helps detecting mistakes in types and/or initial values.

	* lisp/wid-edit.el (boolean): Add :match function.

2023-04-24  Eshel Yaron  <me@eshelyaron.com>

	Add option to control default outlining in 'C-h b'

	* lisp/help.el (describe-bindings-outline-rules): New user option.
	(describe-bindings): Use it instead of hardcoding "Key translations".
	(Bug#62708)

2023-04-24  Eli Zaretskii  <eliz@gnu.org>

	Fix build when Org's version changes

	* lisp/org/org-macs.el (org--inhibit-version-check): Rename from
	'org--built-in-p' and make it a defvar.  All users changed.
	(Bug#62762)

2023-04-24  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-23  Jim Porter  <jporterbugs@gmail.com>

	When examining merge commits in our Git hooks, only check the first parent

	This does two things:

	  1. We can properly validate log entries in merge commits.
	  2. We don't check commits that were merged in from other branches.

	* build-aux/git-hooks/commit-msg-files.awk (get_commit_changes): Get
	the changes compared to the first parent.

	* build-aux/git-hooks/pre-push: Only get the first parent of merge
	commits when returning the rev-list, and only check "master" or
	"emacs-NN" branches.

2023-04-23  Jim Porter  <jporterbugs@gmail.com>

	Improve the logic of the file entry Git hooks to support more cases

	In addition to starting with a "*", file entries now need a ":"
	somewhere in them.  This helps reduce false positives with bulleted
	lists.  Also, support multiple files separated by commas after a "*".

	* build-aux/git-hooks/commit-msg-files.awk (check_commit_msg_files):
	Accumulate file entries over multiple lines to support the above.

2023-04-23  Michael Albinus  <michael.albinus@gmx.de>

	Add new Tramp method "flatpak"

	* doc/misc/tramp.texi (Inline methods): Add flatpak.

	* etc/NEWS: Add new Tramp method "flatpak".  Fix typos.

	* lisp/net/tramp-container.el (tramp-flatpak-program): New defcustom.
	(tramp-flatpak-method): New defconst.
	(tramp-flatpak--completion-function): New defun.  Set it for "flatpak".
	(tramp-methods) <flatpak>: Add.
	(tramp-container-connection-local-default-flatpak-variables):
	New defconst.  Set respective connection-local variables.

2023-04-23  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-22  kobarity  <kobarity@gmail.com>

	Improve docstring of python-indent-def-block-scale

	* lisp/progmodes/python.el (python-indent-def-block-scale): Improve
	docstring.  (Bug#62696)

2023-04-22  kobarity  <kobarity@gmail.com>

	Add a new user option in Python mode to improve the indentation

	* lisp/progmodes/python.el (python-indent-block-paren-deeper): New
	user option.
	(python-indent-context): Add a new context :inside-paren-from-block.
	(python-indent--calculate-indentation): Modify according to
	`python-indent-block-paren-deeper' and :inside-paren-from-block.
	* test/lisp/progmodes/python-tests.el
	(python-indent-inside-paren-block-1)
	(python-indent-inside-paren-block-2)
	(python-indent-inside-paren-block-3)
	(python-indent-inside-paren-block-4): New tests.
	(python-indent-inside-paren-5, python-indent-dedenters-8): Modify
	according to the new context.
	* etc/NEWS: Document the new user option.  (Bug#62696)

2023-04-22  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	44145bf07e2 Add indentation style setting for c-ts-mode in .dir-local...
	e7db6c59cc6 ; * .dir-locals.el (c-ts-mode): Add settings.
	d041f01b02f ; Minor fix in Emacs Lisp Intro manual

2023-04-22  Mattias Engdegård  <mattiase@acm.org>

	Improved nconc and append compiler optimizations

	Add the transforms:

	  (nconc) -> nil
	  (nconc X) -> X

	and for arguments to `nconc`:

	  nil -> <elided>
	  (list X...) (list Y...) -> (list X... Y...)
	  (list X) Y -> (cons X Y)

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-nconc): New.
	(byte-optimize-append): Fix minor flaws and generalize.

2023-04-22  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-22  Dmitry Gutov  <dmitry@gutov.dev>

	project--read-project-buffer: Fixup default-directory if needed

	* lisp/progmodes/project.el (project--read-project-buffer):
	Make sure that when the read buffer is new, its default-directory
	belongs to the project (bug#62974).

2023-04-21  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	3899acbb336 ; * src/fringe.c: Fix description of large circle.  (Bug#...
	2b10e1827d3 sql: add missing postgresql types
	9ac12592781 Fix display of menu-bar bindings of commands in *Help* bu...
	ecdd3a9efac Improve Completion Example section in the Emacs manual
	626e1ac62b2 Improve 'message-server-alist' docstring
	327986936c3 Add index entry for fallback modes
	1c4783c3300 ; * etc/NEWS: Copyedits and grammar fixes.
	3d6f7553319 xref-search-program-alist: Fix searching larger file list...
	1b8b2cf61bd Fix typo and inaccuracy in the ELisp Reference manual
	df17682ebf1 ; Support 'dart-ts-mode' in Eglot
	e0dc60e0780 ; Fix typos in gdb-mi.el
	60560cc7adf Fix description of lexical environment's internals
	1456adf4248 ; Eglot: fix a typo in a customization type
	2f59595f5f4 ; * etc/NEWS: Grammar fixes.
	596b780ab71 Update to Org 9.6.4-2-g0f6ae7
	a0b04a22479 Documentation copyedits for 'package-install-upgrade-buil...
	580d8278c5f Allow upgrading built-in packages with 'package-install'
	329304c23fa ; * src/term.c (init_tty): Fix last change.  (Bug#62877)
	200dbf7d302 Minor changes in c-ts-mode.el's support of DEFUNs
	9686b015a0d Fix strike-through attribute support on TTY frames
	39035fbfc5f Avoid crashes in 'describe-keymap' due to shadowing

	# Conflicts:
	#	etc/NEWS
	#	lisp/progmodes/c-ts-mode.el
	#	lisp/progmodes/eglot.el

2023-04-21  Jim Porter  <jporterbugs@gmail.com>

	Add Git hooks to check filenames listed in the commit message

	See <https://lists.gnu.org/archive/html/emacs-devel/2023-04/msg00274.html>.

	* build-aux/git-hooks/commit-msg-files.awk:
	* build-aux/git-hooks/post-commit:
	* build-aux/git-hooks/pre-push: New files...
	* autogen.sh: ... add them.

2023-04-21  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/gv.el: Silly typo

2023-04-20  Ruijie Yu  <ruijie+git@netyu.xyz>

	Handle modifications in extensionless zip files (bug#61326)

	* lisp/arc-mode.el (archive-*-write-file-member)
	(archive-*-expunge): Refactor to correctly modify
	extensionless zip archives.
	(archive-expunge): Move implementation to a separate helper
	function to facilitate testing.
	(archive--act-files): New helper function to wrap around
	`call-process' calls.
	(archive--need-rename-p): New helper function to check whether
	a temporary rename is necessary.
	(archive--ensure-extension) (archive--maybe-rename): New helper
	functions to rename archive if the caller deems it necessary.
	(archive--with-ensure-extension): New helper function to handle
	writing an archive while ensuring extensionless archives work
	correctly by temporarily renaming them.

	* test/lisp/arc-mode-tests.el (arc-mode-test-zip-ensure-ext):
	New regression test for bug#61326.

2023-04-20  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-20  Yuan Fu  <casouri@gmail.com>

	Fix treesit-install-language-grammar for non-interactive call

	A continuation of bug#62704.

	* lisp/treesit.el (treesit-install-language-grammar): Differentiate
	between interactive and non-interactive call, and don't prompt when
	it's called non-interactively.

2023-04-19  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-19  Olivier Certner  <olce.emacs@certner.fr>

	VC: Allow `vc-default-revert' (and CVS) to revert a missing file

	* lisp/vc/vc.el (vc-default-revert): Fix reverting a missing file case
	by not trying to create a backup through `copy-file'.  Notably impacts
	CVS, where `vc-cvs-revert' calls `vc-default-revert'.

2023-04-19  Olivier Certner  <olce.emacs@certner.fr>

	VC: CVS: Fix parsing of 'cvs -qn update' for missing files for 1.12

	* lisp/vc/vc-cvs.el (vc-cvs-after-dir-status): Fix the name reported
	for missing files in the case of CVS 1.12.3+ where name is quoted in
	the warning line (it was not before this version).  Use instead the
	following U line, where the name is never quoted on all versions.

2023-04-19  Olivier Certner  <olce.emacs@certner.fr>

	VC: CVS: Fix "Root" file parsing

	The new "Root" file parsing has been based on CVS' documentation,
	which gives the following format for *remote* repositories:
	[:method:][[user][:password]@]hostname[:[port]]/pathname/to/repository
	and for local ones:
	:local:/pathname/to/repository
	or
	:local:c:/pathname/to/repository
	or alternatively ':local:' replaced by ':fork:', or ':local:' omitted
	when the path starts with a slash.

	[The actual parsing code in CVS is actually a bit more restrictive.
	See 'root.c'.]

	Most notably, the previous version could not parse an absolute
	pathname without an explicit :local: method or :pserver: lines with
	passwords.

	* lisp/vc/vc-cvs.el (vc-cvs-parse-root): Rewrite.

	(vc-cvs-repository-hostname): Cope with `vc-cvs-parse-root' returning
	an empty hostname (can only happen if the "Root" file is invalid),
	returning nil in this case.

	(vc-cvs-parse-uhp): Remove this standalone function formerly used only
	by `vc-cvs-parse-root' and which doesn't allow correct parsing anyway.

	* test/lisp/vc/vc-cvs-tests.el: New file, with tests for common "Root"
	file content.

2023-04-19  João Távora  <joaotavora@gmail.com>

	Eglot: unbreak activation/management of derived modes (bug#62907)

	After recent changes to how LSP "languageId" is computed from major
	modes and stored in the eglot-lsp-server object, the activation of the
	'eglot--managed-mode' minor mode in modes _derived_ from some
	major-mode mentioned in 'eglot-server-programs' was broken.

	This commit restores that by introducing a new helper which uses the
	same logic to provide the current-buffer's "languageId" to the server
	and to discover if the server should manage the mode at all.  This
	ensures the two things stay in sync.

	Also, this helper uses the function 'provided-mode-derived-p' to fix
	this bug#62907.

	* lisp/progmodes/eglot.el (eglot--languageId): New helper.
	(eglot-current-server, eglot--TextDocumentItem): Use it.

2023-04-19  Dmitry Gutov  <dmitry@gutov.dev>

	flymake-end-of-line-diagnostics-face: Tweak a little

	* lisp/progmodes/flymake.el
	(flymake-end-of-line-diagnostics-face):
	Use height 0.85 and ensure the box doesn't change the line height
	(https://debbugs.gnu.org/62029#86).

2023-04-18  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix verilog-diff-file-with-buffer

	* lisp/progmodes/verilog-mode.el: Fix commentary to avoid implying
	XEmacs defines diff-command.
	(verilog-diff-file-with-buffer): Claim compatibility with Emacs 21
	rather than XEmacs in commentary, since the latter does not seem to
	define diff-command.  Use get-buffer in place of likely thinko
	with-temp-buffer + BUFNAME + current-buffer.  Fix unused
	unwind-protect: move temporary file deletion to its unwind
	forms (bug#62620).  Avoid race condition between file existence
	check and deletion.  Handle list-valued diff-switches.  Avoid
	passing empty argument to diff-command.

2023-04-18  Michael Albinus  <michael.albinus@gmx.de>

	Fix :package-version in flymake.el

	* lisp/progmodes/flymake.el (flymake-end-of-line-diagnostics-face)
	(flymake-error-echo-at-eol, flymake-warning-echo-at-eol)
	(flymake-note-echo-at-eol): Fix :package-version.

2023-04-18  Andrew G Cohen  <cohen@andy.bu.edu>

	* lisp/gnus/gnus-sum.el (gnus-summary-refer-thread): Fix limiting

2023-04-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/gv.el (error): Add gv-expander

	This fixes incorrect expansion of (setf (case-exhaustive ..) ..),
	as found for example in `elpa-admin.el`.

2023-04-17  João Távora  <joaotavora@gmail.com>

	Flymake: improve new flymake-show-diagnostics-at-end-of-line feature

	* lisp/progmodes/flymake.el (flymake-end-of-line-diagnostics-face)
	(flymake-error-echo-at-eol, flymake-warning-echo-at-eol)
	(flymake-note-echo-at-eol): New faces
	(flymake-error, flymake-warning, flymake-note): Use new faces.
	(flymake--highlight-line): Rework.
	(flymake-after-change-function): Rework.

2023-04-17  Yuan Fu  <casouri@gmail.com>

	New helper function assq_no_signal

	* src/fns.c (assq_no_signal): New function.
	* src/lisp.h (assoc_no_signal): Declare it.
	* src/treesit.c (safe_assq): Remove function.
	(treesit_traverse_get_predicate): Change safe_assq to assq_no_signal.

2023-04-17  Andrew G Cohen  <cohen@andy.bu.edu>

	Include previous summary buffer articles in gnus thread referrals

	* lisp/gnus/gnus-search.el (gnus-search-thread): Include all the
	current articles along with the thread when searching outside the
	current group.

2023-04-17  João Távora  <joaotavora@gmail.com>

	Eglot: guard against empty 'textDocument/documentSymbol' response

	* lisp/progmodes/eglot.el (eglot-imenu): Protect against missing response.

2023-04-17  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-16  Mattias Engdegård  <mattiase@acm.org>

	Fit symbol_redirect snugly in two bits

	This allows the C compiler to do away with all default clauses when
	switching on the `redirect` field.

	* src/lisp.h (enum symbol_redirect): Use values in the 0..3 range,
	which also matches the old comment in struct Lisp_Symbol.
	(enum symbol_interned, enum symbol_redirect)
	(enum symbol_trapped_write): Comment members.  Remove explicit values.
	(struct Lisp_Symbol): Shrink the `redirect` member to 2 bits.
	Use the correct type for the `interned` field.
	Move value comments to their types.
	* src/pdumper.c (dump_symbol): Update hashes.

2023-04-16  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	b7023da6627 Make image-map bindings available on image links
	d9e96c029bb * CONTRIBUTE: Fix a typo
	3f71a2a0cf6 ; * lisp/progmodes/c-ts-mode.el (treesit-node-next-siblin...
	adf9c956c28 Add to Eglot support for additional language-servers.
	b3603b84bd9 Partial support for DEFUN in c-ts-mode (bug#62825)

	# Conflicts:
	#	lisp/progmodes/c-ts-mode.el

2023-04-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	864a4dc2363 Fix compilation of w32.c with old MinGW system headers
	a22eb9ae0f9 ruby-add-log-current-method: Reduce the use of 'nreverse'
	17d803d0a75 Fix detection of WebP images by their signature
	43290391ce2 ; Eglot: make version parseable by version-to-list
	6e6e8b5c974 Add more documentation for the keys of `package-vc-select...
	7972b76c2c7 ; vc-checkout: Wrap var lookup in 'bound-and-true-p'
	e9fef1d70ff vc-checkout: Try to use the vc-dir's backend first
	372e024accd ; Fix wallpaper-tests on XFCE
	7055fd8e43e Improve documentation related to 'ispell-complete-word'
	61fd017abde * configure.ac: Add -lbsd on Haiku.
	05971c4d9a4 Add menu to 'c-ts-mode' and 'c++-ts-mode'

	# Conflicts:
	#	lisp/progmodes/eglot.el
	#	lisp/progmodes/ruby-mode.el

2023-04-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	c62afb10cf0 Fix wallpaper-tests on MS-Windows
	f2d212c6966 Fix a couple of eglot-tests
	338b3718b6c Fix visiting RPM files
	b4afee03193 Fix ff-quiet-mode doc
	2445100d7d6 ; Improve documentation of 'match-buffers'
	d4d0da96f0b ; Update make-tarball.txt for Emacs 29.
	9b0bf694da4 ; Fix ldefs-boot.el.
	0cb86a348c7 ; Update ChangeLog.4.

	# Conflicts:
	#	ChangeLog.4

2023-04-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	671abd0cc40 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...

2023-04-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	db8f207e52f Fix some cases of incomplete code's indentation [c/c++-ts...
	589959fb09d project-search: Pipe the list of files through 'file-regu...

2023-04-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	d6af1f14982 ; doc/lispref/windows.texi: Fix @pxref paren.

2023-04-15  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	5ef7ff05736 ; Start a new ChangeLog.4 file.
	11126c6d30a Fix 'C-h k' for "Paste from Kill Menu" in context menus
	74ddfe811f9 ; * doc/misc/calc.texi (Rewrites Tutorial): Fix a typo (b...
	08cda286c3f Improve the documentation of the XDS support
	14d1c00e806 Allow reindentation of images inserted by 'mm-inline-image'
	b63a9eda01c Fix "C-h k" and "C-h c" with Paste from Kill Menu
	b36c21e27dc Change cursor color on NS port when it matches the face b...
	96714c106b7 Improve documentation of image-related commands
	6a2863ca016 Fix handling of sliced images
	5be79fd05a5 ; * etc/NEWS: Announce 'cyrillic-mongolian' IM.
	ca1a0fda98a ; Fix last change.
	ce63462dbda Add cyrillic-mongolian input method
	58801792706 ; Minor addition to the Emacs FAQ
	88847dee125 Jsonrpc: don't bind inhibit-read-only to t so early
	cb8c87a423a Allow active region when IM is used

	# Conflicts:
	#	etc/NEWS

2023-04-15  Eli Zaretskii  <eliz@gnu.org>

	Cleaner solution for Org version updates

	* lisp/Makefile.in (BYTE_COMPILE_FLAGS): Set org--built-in-p
	non-nil, to avoid aborting the build when Org's version is bumped.
	($(lisp)/org/org.elc): Remove dependencies of org-version.el, as
	no longer needed.  (Bug#62762)

2023-04-15  Andrew G Cohen  <cohen@andy.bu.edu>

	Fix errors when nnselect-always-regenerate is t (bug#61539)

	The group parameter nnselect-always-regenerate causes the list of
	articles in the group to be generated each time it is needed. For this
	to work reliably the list of articles has to be generated at the
	appropriate time and to have a reproducible ordering.

	* lisp/gnus/gnus-search.el (gnus-search-run-search): For nnselect
	groups if the article list has not been stored, regenerate it.
	* lisp/gnus/nnselect.el (nnselect-generate-artlist): Sort the
	generated list of articles by RSV, group, and number.  Store the
	artlist after generation. When the new optional argument INFO is
	non-nil, update the group info.
	(nnselect-compress-artlist, nnselect-uncompress-artlist): Preserve the
	article list ordering.
	(nnselect-get-artlist): Return nil when nnselect-always-regenerate is t.
	(nnselect-store-artlist): Store the group active range along with the
	artlist. Don't keep the artlist if nnselect-always-regenerate is t.
	(nnselect-request-group): The full article list isn't needed at this
	stage, only the active range.
	(nnselect-retrieve-headers): Regenerate the article list if there
	is no stored value. Inhibit gnus-demon while retrieving headers.
	(nnselect-request-group-scan): Don't generate the article list when
	nnselect-always-regenerate is t since it will be generated again later
	on.
	(nnselect-request-create-group): Allow the artlist to be passed as an
	argument to the function. Update the group info and store the artlist.

2023-04-15  Andrew G Cohen  <cohen@andy.bu.edu>

	Improve gnus thread-referral

	Allow thread referral to use search whenever possible, displaying the
	results in the current summary buffer if possible and a new nnselect
	buffer if not.

	* lisp/gnus/nnimap.el (nnimap-request-thread): Obsolete function.
	* lisp/gnus/gnus-search.el (gnus-search-thread): Allow detailed
	specification of how/where to search. Add found articles to the
	current summary buffer if possible, or create a new ephemeral nnselect
	group if not.
	* lisp/gnus/gnus-sum.el (gnus-refer-thread-use-search): Allow a list
	of servers and groups to search.
	(gnus-summary-refer-thread): Find thread-related articles by using a
	backend-specific method, gnus-search, or retrieving nearby headers in
	the current group.
	* lisp/gnus/nnselect.el (nnselect-search-thread): Obsolete function.
	(nnselect-request-thread): Allow thread referral from nnselect groups.
	* doc/misc/gnus.texi (Finding the Parent): Document changes to thread
	referral.

2023-04-15  Yuan Fu  <casouri@gmail.com>

	Support treesit-thing-settings in search functions

	* src/treesit.c (safe_assq)
	(treesit_traverse_get_predicate): New functions.
	(treesit_traverse_validate_predicate)
	(treesit_traverse_match_predicate): Support symbols.
	(Ftreesit_search_subtree)
	(Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree)
	(Ftreesit_node_match_p): Move validation down so we can pass LANGUAGE
	to it.

2023-04-15  Yuan Fu  <casouri@gmail.com>

	Add a recursion level limit for tree-sitter search predicates

	* src/treesit.c:
	(treesit_traverse_validate_predicate): Check for recursion level.
	(Ftreesit_search_subtree)
	(Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree)
	(Ftreesit_node_match_p): Update uses of
	treesit_traverse_validate_predicate.

2023-04-15  Yuan Fu  <casouri@gmail.com>

	Add treesit-thing-settings

	* lisp/treesit.el (treesit--things-around)
	(treesit--navigate-thing)
	(treesit-thing-at-point): Update docstring.
	* src/treesit.c (treesit_traverse_validate_predicate): Refer to
	treesit-thing-settings.
	(syms_of_treesit): Add Vtreesit_thing_settings.

2023-04-15  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-15  Yuan Fu  <casouri@gmail.com>

	Convert PATTERN and REGEXP to PRED in tree-sitter functions

	Just changing names.

	* lisp/treesit.el (treesit-beginning-of-thing):
	(treesit-end-of-thing)
	(treesit--things-around)
	(treesit--navigate-thing)
	(treesit-thing-at-point): Change REGEXP and PATTERN to PRED.

2023-04-15  Yuan Fu  <casouri@gmail.com>

	Make use of the new pred shapes in treesit.el

	treesit-search-forward and friends now accept more shapes for PRED,
	make use of it in navigation functions.

	* lisp/treesit.el (treesit-node-top-level): Use treesit-node-match-p.
	(treesit--thing-unpack-pattern): Remove function.
	(treesit-beginning-of-thing)
	(treesit-end-of-thing): Remove PRED argument.
	(treesit--things-around): Remove PRED argument, use
	treesit-node-match-p.
	(treesit--top-level-thing): Remove function.
	(treesit--navigate-thing): Remove PRED argument.
	(treesit-thing-at-point): Update docstring, don't unpack PATTERN.

	* test/src/treesit-tests.el:
	(treesit--ert-test-defun-navigation): Don't unpack pattern.

2023-04-15  Yuan Fu  <casouri@gmail.com>

	Add treesit-node-match-p

	* src/treesit.c (Ftreesit_node_match_p): New function.

2023-04-14  Mattias Engdegård  <mattiase@acm.org>

	Disallow creation of circular variable alias chains

	Make `defvaralias` signal an error upon attempts to create variable
	alias cycles.  This detects errors earlier and makes the alias
	traversal during execution simpler and faster since no cycle detection
	is needed elsewhere.
	Now variable and function aliases are handled identically in these
	respects.

	* src/lisp.h (indirect_variable): Remove declaration.
	* src/data.c (indirect_variable): Remove.
	(Findirect_variable): Update doc string.  Simplify alias resolution.
	(Fboundp, find_symbol_value, set_internal, default_value)
	(set_default_internal, Fmake_variable_buffer_local)
	(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p)
	(Flocal_variable_if_set_p, Fvariable_binding_locus):
	* src/buffer.c (buffer_local_value):
	* src/eval.c (specbind): Simplify variable alias resolution.
	(Fdefvaralias): Update doc string.  Check for cycles.
	* doc/lispref/variables.texi (Variable Aliases):
	Mention that `defvaralias` can signal `cyclic-variable-indirection`
	but `indirect-variable` cannot.
	* etc/NEWS: Announce the change.
	* test/src/eval-tests.el (eval-tests-defvaralias): New test.

2023-04-14  Alan Mackenzie  <acm@muc.de>

	Improve C++ concept indentation.

	This fixes bug #62386.

	* lisp/progmodes/cc-engine.el (c-forward-over-compound-identifier): Don't
	move forward over whitespace following the identifier.
	(c-forward-primary-expression): Add parameter stop-at-end meaning don't move
	forward over whitespace after the construct when non-nil.  Don't recognize a
	primary expression when an open brace follows a parenthesized expression.
	(c-forward-constraint-clause): Extracted from c-forward-c++-requires-clause.
	Add parameter stop-at-end as above.
	(c-forward-c++-requires-clause): New stop-at-end parameter as above.  Call the
	new function c-forward-constraint-clause.
	(c-forward-concept-fragment, c-looking-at-concept)
	(c-in-requires-or-at-end-of-clause, c-c++-vsemi-p): New functions.
	(c-guess-basic-syntax): New CASE 5A.7: "defun" open in a requires expression.
	CASE 5F: Close of a non-class declaration level block: Move to earlier in the
	function.
	CASE 5D: Also check for being in or at end of a constraint.
	New CASE 20: A C++ requires sub-clause.
	New CASE 16G: The closing brace of a requires clause.
	New CASE 17J: First "statement" inside a requires "function".
	(c-forward-primary-expression, c-forward-declarator, c-forward-decl-or-cast-1)
	(c-looking-at-or-maybe-in-bracelist): Amend the method of detecting end of
	symbol "requires" (aka c-fun-name-substitute-key).

	* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Amend the method
	of detecting end of symbol "requires".

	* lisp/progmodes/cc-langs.el (c-at-vsemi-p-fn): Change the C++ entry to
	c-c++-vsemi-p.
	(c-fun-name-substitute-key): Change to an unadorned regexp.

	* lisp/progmodes/cc-vars.el (c-offsets-alist): Add new syntactic symbol
	constraint-cont.

	* doc/misc/cc-mode.texi (Syntactic Symbols): Add an entry for contraint-cont.
	(Constraint Symbols): New node under Syntactic Symbols.

2023-04-14  Robert Pluim  <rpluim@gmail.com>

	* src/nsterm.m (check_native_fs): Add missing void arg.

2023-04-14  Mattias Engdegård  <mattiase@acm.org>

	Use BASE_EQ in treesit.c

	* src/treesit.c (Ftreesit_node_check, Ftreesit_pattern_expand)
	(Ftreesit_query_capture, treesit_traverse_validate_predicate)
	(treesit_traverse_match_predicate):
	Use BASE_EQ instead of EQ where this is obviously correct.

2023-04-14  Alan Mackenzie  <acm@muc.de>

	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-04-14  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter test

	* test/src/treesit-tests.el:
	(treesit-search-forward-predicate-invalid-predicate): Fix test.

2023-04-14  Yuan Fu  <casouri@gmail.com>

	Fix previous commit on tree-sitter

	* src/treesit.c:
	(treesit_traverse_validate_predicate): Don't accept symbols.
	(treesit_traverse_match_predicate): Don't accept symbols, and use
	correct variable for the regexp and pred check.

	* test/src/treesit-tests.el:
	(treesit-search-forward-predicate): Fix the test.

2023-04-14  Andrew G Cohen  <cohen@andy.bu.edu>

	Fix and cleanup nnselect-push-info

	* lisp/gnus/nnselect.el (nnselect-push-info): Don't update backend
	marks when quit-config is not nil since gnus-update-marks has already
	been called.  Move checking for unread articles outside the
	gnus-atomic block so it may be interrupted.  Replace let* with let.
	Cleanup code.

2023-04-14  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-14  Po Lu  <luangruo@yahoo.com>

	Fix bugs in treesit.o

	* src/treesit.c (treesit_traverse_match_predicate): Remove
	redundant cast.
	(treesit_search_forward, treesit_traverse_cleanup_cursor)
	(Ftreesit_search_subtree, Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree): Fix coding style and specpdl
	unwinding.

2023-04-14  Yuan Fu  <casouri@gmail.com>

	Support more predicates in tree-sitter search functions

	Right now we support regexp strings and predicate functions for the
	PRED argument. This change adds support for (not ...) (or ...)
	and (regexp . pred) predicates.

	I still need to find a place to document the supported shapes of a
	predicate.

	* src/treesit.c (treesit_traverse_validate_predicate): New function.
	(treesit_traverse_match_predicate): Support more predicate shapes.
	(treesit_search_dfs):
	(treesit_search_forward)
	(treesit_build_sparse_tree): Fix docstring (unrelated to this change).
	(Ftreesit_search_subtree)
	(Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree): Use the new function to validate
	predicate shape.
	(syms_of_treesit): New error Qtreesit_invalid_predicate.

	* test/src/treesit-tests.el:
	(treesit--ert-search-setup): Add edebug declaration.
	(treesit-search-forward-predicate)
	(treesit-search-forward-predicate-invalid-predicate): New tests.

2023-04-14  Yuan Fu  <casouri@gmail.com>

	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.

2023-04-14  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter tests

	After 2ce27563ecc, treesit--navigate-things takes a TACTIC argument
	instead of using treesit-defun-tactic, so the tests need to change
	from binding treesit-defun-tactic to passing the tactic argument,
	which is what this change does.

	* test/src/treesit-tests.el:
	(treesit--ert-insert-and-parse-marker): New argument TACTIC.
	(treesit-defun-navigation-nested-1)
	(treesit-defun-navigation-nested-2)
	(treesit-defun-navigation-nested-3)
	(treesit-defun-navigation-top-level): Pass TACTIC argument.

2023-04-13  Mattias Engdegård  <mattiase@acm.org>

	Faster and less wrong cl-defsubst inlining

	Always have inlining of functions defined by `cl-defsubst` let-bind
	arguments instead of making incorrect guesses when it might be safe to
	substitute them and then botching the substitution.

	This change generally results in better and safer code for all
	callers, in particular `cl-defstruct` constructors, accessors and
	mutators.

	* lisp/emacs-lisp/cl-macs.el (cl-defsubst): Remove outdated comment.
	(cl--defsubst-expand): Simplify: always let-bind.
	(cl--sublis): Remove.
	(cl-defstruct): Simplify: remove old hack that is no longer needed.

2023-04-13  João Távora  <joaotavora@gmail.com>

	Eldoc: don't overdisplay if using eldoc-documentation-compose

	bug#62816

	This is about a particular value for 'eldoc-documentation-strategy',
	'eldoc-documentation-compose'.  Its helper
	'eldoc--documentation-compose-1' was buggy.  It created the callback
	for all the backends in 'eldoc-documentation-functions', but arranged
	so that it could potentially be invoked immediately and trigger
	display, half-defeating the purpose of the "patience" and causing
	blinking in the echo area.

	Now it creates all the callbacks beforehand and only then passes them
	to the corresponding members of eldoc-documentation-functions.  This
	sets up the correct state in eldoc--invoke-strategy.

	* lisp/emacs-lisp/eldoc.el (eldoc--documentation-compose-1):
	Delete.
	(eldoc-documentation-compose)
	(eldoc-documentation-compose-eagerly): Rework.

2023-04-13  João Távora  <joaotavora@gmail.com>

	Eglot: fix LSP "languageId" detection

	This sweeping fix has been planned for a while, but a user recently
	hit this bug as described in
	https://github.com/joaotavora/eglot/discussions/1206.

	More and more servers today are "multi-language", meaning can handle
	more than one file type.  This relies on the ':languageId' string
	being set to the correct value for every buffer managed by Eglot
	(TextDocumentItem in LSP parlance).

	Previously this string was calculated based on an imperfect heuristic
	and was wrong quite often.  Many servers don't even care but some
	others do, so we have to fix it.

	* lisp/progmodes/eglot.el (eglot-lsp-server): Remove slots
	'major-modes' and 'language-id'.  Add slot 'languages'.
	(eglot--major-modes, eglot--language-ids): New helpers.
	(eglot--lookup-mode): Simplify or maybe complicate.
	(eglot--guess-contact): Use new eglot--looup-mode.  Change return
	value.
	(eglot): Rework docstring.
	(eglot-reconnect): Use eglot--language-ids, not id.
	(eglot--connect): Setup eglot--languages slot in server.
	(eglot--TextDocumentItem): Finally, get correct language id.

	* test/lisp/progmodes/eglot-tests.el (eglot--guessing-contact):
	Enhance macro.
	(eglot-test-server-programs-guess-lang): Update test.

2023-04-13  João Távora  <joaotavora@gmail.com>

	Flymake: add new flymake-show-diagnostics-at-end-of-line option

	Some editors have this.  Depending on your preference, this can either
	be wildly distracting and easily confused with actual code, or a
	significant early aid that relieves you from moving around or reaching
	for the mouse to consult an error message.  To be safe, hide this
	behind a customization variable and keep it disabled.

	Personally, I find it less obstrusive and more helpful than expected.

	* lisp/progmodes/flymake.el (flymake--delete-overlay): New helper.
	(flymake--highlight-line): Handle flymake-show-diagnostics-at-end-of-line.
	(flymake--clear-foreign-diags): Use flymake--delete-overlay.
	(flymake--publish-diagnostics): Use flymake--delete-overlay.
	(flymake-mode): Use flymake--delete-overlay.
	(flymake-error-echo)
	(flymake-warning-echo, flymake-note-echo): New faces.
	(flymake-show-diagnostics-at-end-of-line): New option.
	(Version): Bump to 1.3.4

	* doc/misc/flymake.texi:
	(Finding diagnostics): Mention flymake-show-diagnostics-at-end-of-line.
	(Customizable variables): Mention
	flymake-show-diagnostics-at-end-of-line and a few more relevant faces.

	* etc/NEWS (Flymake): Mention flymake-show-diagnostics-at-end-of-line.

2023-04-13  Mattias Engdegård  <mattiase@acm.org>

	Stronger checking in line-number-at-pos tests

	* test/lisp/simple-tests.el (line-number-at-pos-keeps-restriction)
	(line-number-at-pos-keeps-point): Check all return values.

2023-04-13  Mattias Engdegård  <mattiase@acm.org>

	Stop pretending that specpdl overflow can ever occur

	* src/eval.c (grow_specpdl_allocation): Remove impossible error.
	* src/data.c (syms_of_data): Note obsolence of
	`excessive-variable-binding`.

2023-04-13  Mattias Engdegård  <mattiase@acm.org>

	Update effect declarations for many built-in functions

	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns)
	(side-effect-and-error-free-fns, pure-fns): Add many functions.
	* lisp/subr.el (copy-tree): Declare error-free.

2023-04-13  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Fonts): Update documentation.
	* doc/lispref/frames.texi (Accessing Selections, X Selections):
	Fix typos.
	* src/sfntfont-android.c (system_font_directories)
	(init_sfntfont_android): Add `/product/fonts'.

2023-04-13  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(RE_SETUP_SYNTAX_TABLE_FOR_OBJECT): Simplify

	It turns out all calls to this function pass the same value
	for the `count` argument, and they're all in `regexp.c`.

	* src/syntax.c (RE_SETUP_SYNTAX_TABLE_FOR_OBJECT):
	Rename from `SETUP_SYNTAX_TABLE_FOR_OBJECT`.  Remove `count` argument.
	Move call to `RE_SYNTAX_TABLE_BYTE_TO_CHAR` to where its result is
	actually used.
	* src/regex-emacs.c (re_search_2, re_match_2): Adjust accordingly.

	* src/syntax.h (RE_SYNTAX_TABLE_BYTE_TO_CHAR): Rename from
	`SYNTAX_TABLE_BYTE_TO_CHAR` to clarify that it takes a byteoffset as
	used in the regexp engine and not a "bytepos".  Adjust all callers.

2023-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(SETUP_SYNTAX_TABLE_FOR_OBJECT): Take a byteoffset

	* src/syntax.c (SETUP_SYNTAX_TABLE_FOR_OBJECT): Take a byteoffset.
	* src/regex-emacs.c (re_search_2, re_match_2): Simplify accordingly.

2023-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/regex-emacs.c (POS_AS_IN_BUFFER): Delete macro

	That macro added 1 to buffer positions because:

	    Strings are 0-indexed, buffers are 1-indexed

	but the reality is that this 1 was added to the regexp engine's "byte
	offsets" which are not 1-based byte positions as used throughout
	the rest of Emacs, but they are BEGV_BYTE-relative offsets, so the two
	did not cancel out.

	* src/regex-emacs.c (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Delete macros;
	use `POINTER_TO_OFFSET` instead.
	(re_search_2, re_match_2, re_match_2_internal): Adjust accordingly.
	* src/syntax.h (SYNTAX_TABLE_BYTE_TO_CHAR): Don't remove 1 from buffer
	byteoffsets now that `POS_AS_IN_BUFFER` doesn't add it any more.

2023-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	(struct gl_state_s): Delete `offset` field

	`gl_state` had an `offset` field because:

	    For buffers, regex-emacs.c passes arguments to the
	    UPDATE_SYNTAX_TABLE functions which are relative to BEGV

	but the reality is that these arguments are byte offsets relative to
	BEGV_BYTE whereas `offset` was counted in chars, so the two didn't
	cancel each other out.

	* src/syntax.h (struct gl_state_s): Delete `offset` field.
	(UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD)
	(SYNTAX_TABLE_BYTE_TO_CHAR):
	* src/syntax.c (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT)
	(update_syntax_table, skip_syntaxes): Simplify accordingly.

2023-04-12  João Távora  <joaotavora@gmail.com>

	Flymake: further enhance echo-area appearance of diagnostics

	Also describe new 'echo-face' property in the Flymake manual, and fix
	it's mistaken mention of a non-existing 'flymake-severity' property.

	* doc/misc/flymake.texi:
	(Flymake error types): Describe new properties and correct mention
	of 'severity' property.

	* lisp/progmodes/flymake.el:
	(flymake-diagnostic-oneliner): Rework.
	(flymake-error, flymake-warning, flymake-note): Add new 'echo-face' property.
	(flymake--highlight-line)
	(flymake-eldoc-function)
	(flymake--tabulated-entries-1): Use flymake-diagnostic-oneliner
	(Version): Bump to 1.3.3

2023-04-12  Mattias Engdegård  <mattiase@acm.org>

	`byte-code-function-p` is error-free

	* lisp/emacs-lisp/byte-opt.el
	(side-effect-free-fns, side-effect-and-error-free-fns):
	Upgrade `byte-code-function-p` to error-free status.

2023-04-12  Mattias Engdegård  <mattiase@acm.org>

	Better compilation of arguments to `ignore`

	* lisp/emacs-lisp/bytecomp.el (byte-compile-form)
	(byte-compile-ignore):
	Instead of compiling each `ignore` argument for value which is then
	immediately discarded, compile it for effect but suppress
	ignore-return-value warnings by passing the special value
	`for-effect-no-warn` as for-effect parameter.
	Proposed by Stefan Monnier.

2023-04-12  Yuan Fu  <casouri@gmail.com>

	Prompt target dir in treesit-install-language-grammar (bug#62704)

	* lisp/treesit.el (treesit--check-repo-url): New variable.
	(treesit-install-language-grammar): Prompt for target directory.

2023-04-12  Yuan Fu  <casouri@gmail.com>

	Define sexp in c-ts-mode more broadly (bug#62302)

	* lisp/progmodes/c-ts-mode.el: Define sexp in c/c++-ts-mode as
	anything but delimiters.

2023-04-12  Yuan Fu  <casouri@gmail.com>

	Add 'restricted' tactic in tree-sitter navigation functions

	* lisp/treesit.el (treesit-forward-sexp): Add docstring.  Use
	'restricted' tactic.
	(treesit-transpose-sexps): Fix docstring.
	(treesit-beginning-of-thing)
	(treesit-end-of-thing): Add support for TACTIC.
	(treesit-beginning-of-defun)
	(treesit-end-of-defun): Supply treesit-defun-tactic as TACTIC.
	(treesit--navigate-thing): Add support for TACTIC.  Wrap the old form
	in a new (if (eq tactic 'restricted) (new-code) (old-form)), and
	supply the TACTIC parameter when recursing.

2023-04-12  Andrew G Cohen  <cohen@andy.bu.edu>

	Expunge immediately when moving articles from nnimap groups

	* lisp/gnus/nnselect.el (nnselect-request-move-article): Set
	nnimap-expunge to immediately.

2023-04-12  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Do not treat parenless calls' args as separate sexp

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--sexp-p): New function.
	(ruby-ts-mode): Use it in treesit-sexp-type-regexp (bug#62086).

2023-04-12  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-11  João Távora  <joaotavora@gmail.com>

	Flymake: take advantage of new Eldoc options

	Only echo the first line of a potentially very large error message.

	* lisp/progmodes/flymake.el:
	(flymake-diagnostic-oneliner): New helper.
	(flymake--tabulated-entries-1)
	(flymake-eldoc-function): Use it.
	(Version): Bump to 1.3.2.
	(Package-Requires): Use Eldoc 1.14.0.

2023-04-11  Mattias Engdegård  <mattiase@acm.org>

	nndiary.el: fix dodgy schedule code

	* lisp/gnus/nndiary.el (nndiary-last-occurrence):
	Don't sort a list and throw away the result because that leaves the
	list variable in an undefined state.  Just take the largest element
	because that was obviously what the author meant.

2023-04-11  Mattias Engdegård  <mattiase@acm.org>

	allout.el: fix subtree expose numbering bug

	* lisp/allout.el (allout-process-exposed): Reverse the list of indices
	properly so that the correct numbering for nodes in a subtree is used.
	Avoid destructive reversing; the list may be a constant (literal).
	This flaw was revealed by an ignored-return-value warning.

2023-04-11  Antero Mejr  <antero@mailbox.org>

	eshell: Add 'rgrep' builtin

	* lisp/eshell/em-unix.el (eshell/rgrep): New function.
	(eshell-unix-initialize): Add "rgrep" to 'eshell-complex-commands'.

	* etc/NEWS: Add NEWS entry for rgrep.

	* doc/misc/eshell.texi (Built-ins): Add documentation for rgrep.

2023-04-11  Andrew G Cohen  <cohen@andy.bu.edu>

	* lisp/gnus/nnselect.el (nnselect-push-info): Sort artlist

2023-04-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	(org-table-make-reference): Fix compiler warning

	* lisp/org/org-table.el (org-table-make-reference): Don't use `eq` to
	compare against literal strings.

2023-04-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-11  Spencer Baugh  <sbaugh@janestreet.com>

	Add support for prompting for projects by name

	* lisp/progmodes/project.el (project-prompter):
	New user option (bug#62759).
	(project-prompt-project-name): New function.

2023-04-10  Dmitry Gutov  <dgutov@yandex.ru>

	html-ts-mode--indent-rules: Use 'column-0' instead of 'point-min'

	* lisp/textmodes/html-ts-mode.el (html-ts-mode--indent-rules):
	Use 'column-0' instead of 'point-min' (bug#62752).

2023-04-10  F. Jason Park  <jp@neverwas.me>

	Take better care when setting margins in erc-stamp

	* lisp/erc/erc-stamp.el (erc-stamp--adjust-right-margin,
	erc-stamp--display-margin-mode): Prefer setting
	`fringes-outside-margins' to hiding right margin, and check whether
	current buffer is showing before adjusting anything.  (Bug#60936.)

2023-04-10  Mattias Engdegård  <mattiase@acm.org>

	Don't use `mapconcat` for effect

	* lisp/progmodes/make-mode.el (makefile-browser-fill):
	* lisp/url/url-mailto.el (url-mailto):
	Use `mapc` instead of `mapconcat`.

2023-04-10  Mattias Engdegård  <mattiase@acm.org>

	ebnf2ps: eliminate double nreverse

	* lisp/progmodes/ebnf-otz.el (ebnf-split-suffix): Simplify code that
	relied on a rather inobvious in-place reversal of a list twice for
	correctness, silencing a byte-compiler warning.

2023-04-10  Basil L. Contovounesios  <contovob@tcd.ie>

	Clarify process-environment in eglot-tests

	* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
	Clarify commentary (bug#61637).  Use null-device and briefer syntax.

2023-04-10  Basil L. Contovounesios  <contovob@tcd.ie>

	End default-directory with slash in eglot-tests

	* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
	Separate prefix from random part of temporary file name.  Ensure
	default-directory ends with a directory separator (bug#61637).

2023-04-10  Mattias Engdegård  <mattiase@acm.org>

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

2023-04-10  Basil L. Contovounesios  <contovob@tcd.ie>

	Tweak file/dir creation in eglot-tests

	* test/lisp/progmodes/eglot-tests.el (eglot--make-file-or-dir):
	Expand file name only once, under default-directory, avoiding
	duplicate dir separators.  Ensure default-directory ends with a dir
	separator.  Use with-temp-file.  (Bug#61637)

2023-04-10  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-10  Basil L. Contovounesios  <contovob@tcd.ie>

	Simplify let-bindings in eglot-tests

	* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
	Don't allow fixture elements to be symbol-value pairs (bug#61637).
	This feature was used in only one test.  The same effect can be
	achieved in a simpler way, and closer to the body, with plain
	let-bindings.
	(eglot--with-fixture): Adapt docstring accordingly.
	(eglot-test-ensure): Adapt c-mode-hook binding accordingly.
	(eglot--cleanup-after-test): Remove symbol restoring logic.

2023-04-10  Basil L. Contovounesios  <contovob@tcd.ie>

	Minor eglot-tests cosmetics

	* test/lisp/progmodes/eglot-tests.el:
	(eglot--eldoc-on-demand, eglot--tests-force-full-eldoc)
	(eglot-test-multiline-eldoc, eglot-test-rust-on-type-formatting)
	(eglot-test-path-to-uri-windows): Fix headings, commentary, and
	indentation (bug#61637).

2023-04-10  Basil L. Contovounesios  <contovob@tcd.ie>

	Avoid Git project in eglot-test-eclipse-connect

	* test/lisp/progmodes/eglot-tests.el (eglot-test-eclipse-connect):
	Avoid creating a Git project, which subsequently confuses
	project-files (bug#62741).

2023-04-09  Basil L. Contovounesios  <contovob@tcd.ie>

	Tweak ert-remote-temporary-file-directory in tests

	* lisp/emacs-lisp/ert-x.el (ert-remote-temporary-file-directory):
	Don't add trailing slash to HOME (bug#61637).  Reindent docstring.

2023-04-09  Basil L. Contovounesios  <contovob@tcd.ie>

	Pacify byte-compiler warnings in nadvice-tests

	* test/lisp/emacs-lisp/nadvice-tests.el
	(advice-test-called-interactively-p)
	(advice-test-called-interactively-p-around)
	(advice-test-called-interactively-p-filter-args)
	(advice-test-call-interactively): Heed advertised-calling-convention
	of called-interactively-p to pacify byte-compiler warnings.

2023-04-09  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp test

	* test/lisp/net/tramp-tests.el (tramp-test09-insert-file-contents):
	Adapt test.

2023-04-09  Mattias Engdegård  <mattiase@acm.org>

	Extend ignored-return-value warning to more functions (bug#61730)

	Warn when the return value of certain functions is unused.  Previously
	this was only done for side-effect-free functions, and for `mapcar`.

	These are functions where the return value is important for correct
	usage or where ignoring it is likely to indicate a mistake.  The exact
	set of functions is tentative and will be modified as we gain a better
	understanding of which ones to include.

	The current set comprises higher order functions such as `mapcar`
	which are not primarily called for the effects of their function
	arguments, and list-mutating functions like `nreverse` whose return
	value is essential.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-form): Add list of
	functions to warn about when their value is ignored.
	* etc/NEWS: Announce.

2023-04-09  Mattias Engdegård  <mattiase@acm.org>

	Remove unused values in effect context

	* lisp/net/eudcb-mab.el (eudc-mab-query-internal):
	* lisp/org/ob-core.el (org-babel-insert-result):
	* lisp/progmodes/prolog.el (prolog-smie-forward-token)
	(prolog-smie-backward-token):
	Silence ignored-return-value warnings about calls to side-effect-free
	functions in the last clause of `cond` statements whose values are
	unused.

2023-04-09  Mattias Engdegård  <mattiase@acm.org>

	Adjust side-effect-free declarations

	* lisp/emacs-lisp/byte-opt.el (side-effect-and-error-free-fns):
	Add `eql` here.
	* lisp/emacs-lisp/cl-macs.el (eql, cl-subst, cl-sublis):
	Don't set the `side-effect-free` property here.
	`cl-subst` and `cl-sublis` are not side-effect-free.
	* lisp/emacs-lisp/cl-extra.el (cl-revappend):
	Declare side-effect-free.
	* lisp/emacs-lisp/cl-lib.el (cl-copy-list):
	Declare side-effect-free and error-free.

2023-04-09  Michael Albinus  <michael.albinus@gmx.de>

	Fix scoping error in Tramp

	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-insert-file-contents):
	Move result out of unwindform.

2023-04-09  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/cl-extra.el (cl-parse-integer): side-effect-free.

2023-04-09  Andrew G Cohen  <cohen@andy.bu.edu>

	Update gnus/nnselect marks only for current articles

	* lisp/gnus/nnselect.el (nnselect-push-info): Restrict updating of
	marked articles to those whose headers have been retrieved, taking
	care to handle 'tuples.

2023-04-09  Andrew G Cohen  <cohen@andy.bu.edu>

	Compute gnus/nnselect read articles from summary variables

	* lisp/gnus/nnselect.el (nnselect-push-info): The current list of read
	articles should be computed from the summary buffer local variables,
	not from the group info.

2023-04-09  Andrew G Cohen  <cohen@andy.bu.edu>

	Don't modify gnus group info when gnus-newsgroup-selection is nil

	* lisp/gnus/nnselect.el (nnselect-push-info): Don't try to propagate
	info to component groups if gnus-newsgroup-selection is nil.
	* lisp/gnus/nnselect.el (nnselect-request-update-info): Don't update
	the nnselect group info if gnus-newsgroup-selection is nil.

2023-04-09  Andrew G Cohen  <cohen@andy.bu.edu>

	Keep the gnus active range current while getting articles

	* lisp/gnus/gnus-group.el (gnus-group-get-new-news-this-group):
	* lisp/gnus/gnus-group.el (gnus-get-unread-articles-in-group): Update
	the current value of the active range since it might have changed.

2023-04-09  Andrew G Cohen  <cohen@andy.bu.edu>

	* lisp/gnus/nnselect.el (nnselect-request-article): Check car of thread

2023-04-09  Spencer Baugh  <sbaugh@janestreet.com>

	project.el: Use project-name to calculate prefixed buffer name

	* lisp/progmodes/project.el (project-prefixed-buffer-name):
	Use project-name to calculate prefixed buffer name (bug#62548).
	(project-compilation-buffer-name-function): Update doc.

2023-04-09  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-09  João Távora  <joaotavora@gmail.com>

	Eglot: more work on eglot--sig-info (bug#62687)

	Simplify function and now also consider individual parameter
	documentation strings, which typescript-language-server seems to
	provide.

	* lisp/progmodes/eglot.el (eglot--sig-info): Rework.

2023-04-08  F. Jason Park  <jp@neverwas.me>

	* etc/ERC-NEWS: Add section for ERC 5.6.

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Allow erc-reuse-frames to favor connections

	* lisp/erc/erc.el (erc-reuse-frames): Add alternate value to favor
	existing frames already displaying buffers from the same connection.
	(erc--setup-buffer-first-window, erc--display-buffer-use-some-frame):
	Add helpers to support 'display' variant of `erc-resuse-frames'
	* test/lisp/erc/erc-tests.el (erc-tests--run-in-term,
	erc-tests--servars, erc-reuse-frames, erc-tests--erc-reuse-frames,
	erc-tests--erc-reuse-frames--t, erc-resuse-frames--t,
	erc-tests--erc-reuse-frames--displayed-single,
	erc-reuse-frames--displayed-single, erc-tests--assert-server-split,
	erc-tests--erc-reuse-frames--displayed-double,
	erc-reuse-frames--displayed-double,
	erc-tests--erc-reuse-frames--displayed-full,
	erc-reuse-frames--displayed-full): Add test case and supporting
	fixtures.  (Bug#55540.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Make auth-source erc-services tests more readable

	* lisp/erc/erc-common.el: (erc-with-server-buffer): Modify slightly to
	use `buffer-local-value' when possible.
	* test/lisp/erc/erc-services-tests.el
	(erc-services-tests--auth-source-plstore-standard-entries,
	erc-services-tests--auth-source-plstore-standard-secrets): Remove
	unused variables.
	(erc-services-tests--auth-source-plstore-standard-announced): Add new
	var to hold common plstore document.
	(erc--auth-source-search--plstore-standard,
	erc--auth-source-search--plstore-announced,
	erc--auth-source-search--plstore-overrides): Use string literals for
	text-document content.
	(erc-services-tests--auth-source-json-standard-entries): Remove unused
	variable.
	(erc-services-tests--auth-source-json-standard-announced): Add new
	variable.
	(erc--auth-source-search--json-standard,
	erc--auth-source-search--json-announced,
	erc--auth-source-search--json-overrides): Use string literals for
	text-document content.
	(erc-services-tests--secrets-search-items): Add new helper function.
	(erc--auth-source-search--secrets-standard,
	erc--auth-source-search--secrets-announced,
	erc--auth-source-search--secrets-overrides): Use helper to mock
	`secrets-search-items' instead of misleading lambda.
	* lisp/erc/erc-tests.el (erc-with-server-buffer): Add test.

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add erc-button helper for substituting command keys

	* lisp/erc/erc-button.el (erc-button-mode, erc-button-enable): Warn if
	`erc-button-alist' contains deprecated FORM field in `nicknames'
	entry.
	(erc-button-alist): Discourage arbitrary sexp form for third item of
	entries and offer more useful bounds-modifying function in its place.
	Mention that anything other than `erc-button-buttonize-nicks' is
	deprecated as the FORM field in a `nicknames' entry.  Bump
	package-version even though this doesn't introduce a visible change in
	the default value.
	(erc-button--maybe-warn-arbitrary-sexp): Add helper for validating
	third `erc-button-alist' field.
	(erc-button--check-nicknames-entry): Add helper to check for
	deprecated items in `erc-button-alist'.
	(erc-button--preserve-bounds): Add function to serve as default value
	for `erc-button--modify-nick-function).
	(erc-button--modify-nick-function): Add new variable to hold a
	function that filters nickname bounds when buttonizing.
	(erc-button--phantom-users, erc-button--add-phantom-speaker,
	erc-button--phantom-users-mode): Add new internal minor mode for
	treating unseen speakers of PRIVMSGs as known members of the server
	for things like coloring nicks during buffer playback.
	(erc-button--get-user-from-speaker-naive): Add temporary utility
	function to scrape nick from speaker in narrowed buffer.  This will be
	replaced by an account-aware version in next major ERC release.
	(erc-button-add-nickname-buttons): Accommodate function variant for
	"form" field of `erc-button-alist' entries.  Minor optimizations.
	This function will likely become the primary juncture for applying
	text properties that support nickname-related user-intelligence
	features.
	(erc-button-add-buttons-1): Show warning when arbitrary sexp for third
	"form" field encountered.  Accommodate binary function instead.
	(erc-button--substitute-command-keys-in-region): Add helper function
	for applying key substitutions in ERC warning messages.
	(erc-button--display-error-notice-with-keys): Add new helper function
	for displaying ad hoc warnings that possibly require key substitution.
	(erc-button--display-error-notice-with-keys-and-warn): Add variant of
	`erc-button--display-error-notice-with-keys' that also emits warnings.
	* lisp/erc/erc-networks.el (erc-networks--ensure-announced,
	erc-networks--on-MOTD-end): Use new key-substitutions helper from
	erc-button.
	* test/lisp/erc/erc-tests.el
	(erc-button--display-error-notice-with-keys): New test.
	* test/lisp/erc/resources/base/assoc/bouncer-history/foonet.eld: Add
	unknown speaker in channel for phantom store to handle.  Currently
	requires manual intervention to leverage.  (Bug#60933.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Replace Info-goto-node with info in erc-button-alist

	* lisp/erc/erc-button.el (erc-button-alist): Replace `Info-goto-node'
	with plain `info', which is autoloaded.  Expand regexp to recognize
	inline `info' function calls.
	* lisp/erc/erc-networks.el (erc-networks--set-name,
	erc-networks--warn-on-connect): Don't require `info'.  (Bug#60933.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add erc-fill style based on visual-line-mode

	* lisp/erc/erc-fill.el (erc-fill-function): Add new value
	`erc-fill-wrap'.
	(erc-fill-static-center): Extend meaning of option to also affect
	`erc-wrap-mode'.
	(erc-fill--wrap-value, erc-fill--wrap-visual-keys): New variables to
	support new local module.
	(erc-fill-wrap-visual-keys): New option to control how and where
	`visual-line-mode' keys are active.
	(erc-fill-wrap-merge): Add option for omitting a speaker's name if
	they just now spoke.  Enabled by default.
	(erc-fill--wrap-move): New helper function for fill-wrap movement
	commands.
	(erc-fill--wrap-kill-line, erc-fill--wrap-beginning-of-line,
	erc-fill--wrap-end-of-line): New movement commands.
	(erc-fill-wrap-cycle-visual-movement): New command to cycle local
	copy of `erc-fill-wrap-visual-keys'.
	(erc-fill-wrap-mode-map): New keymap based on `visual-line-mode-map'.
	(erc-fill--make-module-dependency-msg): Helper for
	`erc-fill-wrap-enable'.
	(erc-fill-wrap-mode, erc-fill-wrap-enable, erc-fill-wrap-disable): New
	local module.
	(erc-fill--wrap-length-function): Internal interface in the form of a
	function variable for other modules to control the fill-wrap overhang.
	(erc-fill--wrap-last-msg, erc-fill--wrap-max-lull,
	erc-fill--wrap-continued-message-p): Add items to support hiding of
	redundant speaker names in consecutive messages.
	(erc-fill--wrap-stamp-insert-prefixed-date): New function to add
	`line-prefix' property to inserted date stamp.
	(erc-fill-wrap): New function implementing the
	`erc-fill-function' (behavioral) interface.
	(erc-fill--wrap-fix): New, possibly temporary function for other
	modules to fix misalignment caused by fill-wrap.
	(erc-fill-wrap-nudge, erc-fill--wrap-nudge): New command and helper
	for growing and shrinking visual fill prefix.
	* test/lisp/erc/erc-fill-tests.el: New file.  (Bug#60936.)
	* test/lisp/erc/resources/fill/snapshots/merge-01-start.eld: New file.
	* test/lisp/erc/resources/fill/snapshots/merge-02-right.eld: New file.
	* test/lisp/erc/resources/fill/snapshots/monospace-01-start.eld: New file.
	* test/lisp/erc/resources/fill/snapshots/monospace-02-right.eld: New file.
	* test/lisp/erc/resources/fill/snapshots/monospace-03-left.eld: New file.
	* test/lisp/erc/resources/fill/snapshots/monospace-04-reset.eld: New file.

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add variant for erc-match invisibility spec

	* lisp/erc/erc-match.el (erc-match-mode, erc-match-enable,
	erc-match-disable): Arrange for possibly adding or removing
	`erc-match' from `buffer-invisibility-spec'.
	(erc-match--hide-fools-offset-bounds): Add new variable to serve as
	switch for activating invisibility on a modified interval that's
	offset toward `point-min' by one character.
	(erc-hide-fools): Optionally offset start and end of invisible region
	by minus one.
	(erc-match--modify-invisibility-spec): New housekeeping function to
	set up and tear down offset spec.  (Bug#60936.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Convert erc-fill minor mode into a proper module

	* lisp/erc/erc-fill.el (erc-fill-mode, erc-fill-enable,
	erc-fill-disable): Use API to create these.
	(erc-fill-static): Save restriction instead of caller's match
	data.  (Bug#60936.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Put display properties to better use in erc-stamp

	* lisp/erc/erc-log.el (erc-log-filter-function): Add new value
	`erc-stamp-prefix-log-filter'.
	* lisp/erc/erc-stamp.el (erc-timestamp-use-align-to): Enhance meaning
	of option to accept numeric value for dynamically aligned right-hand
	stamps.  Use `graphic-display-p' to determine default value even
	though, as stated in the manual, terminal Emacs also supports the
	"space" display spec.
	(erc-stamp-right-margin-width): New option to determine width of right
	margin when `erc-stamp--display-margin-mode' is active or
	`erc-timestamp-use-align-to' is set to `margin'.
	(erc-stamp--display-margin-force): Add new helper function for
	`erc-stamp--display-margin-mode'.
	(erc-stamp--adjust-right-margin): New function to adjust width of
	right margin.
	(erc-stamp-prefix-log-filter): New value for `erc-log-filter-function'
	compatible with modules that activate
	`erc-stamp--display-margin-mode'.
	(erc-stamp--display-margin-mode): Add internal minor mode to help
	other modules quickly ensure left-right, display-prop-oriented stamps
	are showing correctly.  Does not support left-hand-only stamps.
	(erc-insert-aligned): Deprecate function and remove from primary
	client code path.
	(erc-stamp--inherited-props): Add internal constant to hold properties
	that should be inherited from any stamp-bearing message being
	inserted.
	(erc-insert-timestamp-right): Account for new display-related values
	of `erc-timestamp-use-align-to'.
	* test/lisp/erc/erc-stamp-tests.el (erc-timestamp-use-align-to--nil,
	erc-timestamp-use-align-to--t): Adjust spacing for new default
	right-hand stamp, `erc-format-timestamp', which lacks a leading space.
	(erc-timestamp-use-align-to--integer,
	erc-timestamp-use-align-to--margin): New tests.  (Bug#60936.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Make some erc-stamp functions more limber

	* lisp/erc/erc-stamp.el (erc-timestamp-format-right): Deprecate option
	and change meaning of its nil value to fall through to
	`erc-timestamp-format'.  Do this to allow modules to predict what the
	right-hand stamp's final width will be.  This also saves
	`erc-insert-timestamp-left-and-right' from calling
	`erc-format-timestamp' again for every inserted message.
	(erc-stamp-mode, erc-stamp-enable, erc-stamp-disable): Add
	`erc-stamp--recover-on-reconnect' to `erc-mode-hook'.
	(erc-stamp--recover-on-reconnect): Add function to reuse last values
	of `erc-timestamp-last-inserted' and friends to avoid reprinting
	stamps when reconnecting.
	(erc-stamp--current-time): Add new generic function and method to
	return current time.  Default to calling `erc-current-time'.  Also add
	new internal variable of the same name to hold time value used to
	construct formatted stamps passed to `erc-insert-timestamp-function'.
	(erc-add-timestamp): Bind `erc-stamp--current-time' when calling
	`erc-insert-timestamp-function'.
	(erc-stamp--insert-date-function): New variable for modules to tweak
	date-insertion.
	(erc-insert-timestamp-left-and-right): Use STRING parameter and favor
	it over the now deprecated `erc-timestamp-format-right' to avoid
	formatting twice.  Also extract current time from the variable
	`erc-stamp--current-time' for similar reasons.  And defer to
	`erc-stamp--insert-date-function' to insert left stamp.  (Bug#60936.)
	(erc-stamp--tz): New internal variable.
	(erc-format-timestamp): Pass `erc-stamp--tz' as time-zone to
	`format-time-string'.

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Expose insertion time as text prop in erc-stamp

	* lisp/erc/erc-stamp.el (erc-add-timestamp): Add new text property
	`erc-timestamp' to store lisp time object formerly ensconced in a
	closure.  Instead of creating a new lambda for the cursor-sensor
	function of each message in a buffer, leave a gap between messages to
	trip the sensor function.  The motivation behind this change is to
	allow third parties access to valuable timestamp data already stored
	by ERC anyway.  Of secondary importance is discouraging the reliance
	on those lambdas as a means of detecting message bounds.  The gap now
	serves a similar purpose.  Basically, the final character in a
	message, a newline, will not have a timestamp or a sensor function.
	In the rare instance the stamps module isn't loaded, the new
	`erc-command' property can be used for this purpose instead.  Also,
	instead of looking for the `invisible' text property at point, which
	is normally `point-max' and thus outside the accessible portion of the
	buffer, look at the beginning of the inserted message.  This allows
	hook members running before this function to opt out of timestamps by
	marking a message as invisible.
	(erc-echo-timestamp): Make interactive and show timestamps even when
	the variable `erc-echo-timestamps' is nil.
	(erc--echo-ts-csf): Add new function to serve as value of
	cursor-sensor function text properties.
	* test/lisp/erc/erc-stamp-tests.el: New file.  (Bug#60936.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Adjust some old text properties in ERC buffers

	* lisp/erc/erc.el (erc-display-message): Replace `rear-sticky' text
	property, which has been around since 2002, with a more useful
	`erc-command' property.  It records the current IRC command as a
	symbol or a number, in the case of numerics.
	(erc--own-property-names, erc--remove-text-properties) Add variable
	and internal helper function for filtering values returned by
	`filter-buffer-substring-function'.
	(erc-display-prompt): Make the `field' text property more meaningful
	to aid in searching, although this makes the `erc-prompt' property
	somewhat redundant.
	(erc-put-text-property, erc-list): Alias these to subr functions.
	(erc-restore-text-properties): Don't forget tags when restoring.
	(erc--get-eq-comparable-cmd): New function to extract commands for use
	as more easily searchable text-property values.  (Bug#60936.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Refactor marker initialization in erc-open

	* lisp/erc/erc.el (erc--initialize-markers): New helper to ensure
	prompt and its associated markers are set up correctly.
	(erc-open): When determining whether a session is a logical
	continuation, leverage the work already performed by the
	`erc-networks' library to that effect.  Its verdicts are based on
	network context and thus reliable even when a user dials anew from an
	entry-point, which is not a simple reconnection because the user
	expects a clean slate for everything except an existing buffer's
	messages, meaning `erc--server-reconnecting' will be nil and
	local-module state variables need resetting.  Also remove the check
	for `erc-reuse-buffers' and instead trust that `erc-get-buffer-create'
	always does the right thing.  Replace all code involving marker and
	prompt setup by deferring to a new helper, `erc--initialize markers'.
	* test/lisp/erc/erc-scenarios-base-local-module-modes.el: New file.
	* test/lisp/erc/erc-scenarios-base-local-modules.el
	(erc-scenarios-base-local-modules--mode-persistence): Move test to
	separate file to help with parallel "-j" runs.
	* test/lisp/erc/erc-tests.el (erc-tests--send-prep): Replace
	redundant prompt-setup code.
	(erc--initialize-markers): New test.  (Bug#60936.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Preserve ERC prompt and its bounding markers

	* lisp/erc/erc.el (erc--assert-input-bounds): Add possibly temporary
	helper function to sync `process-mark' to `erc-insert-marker' in
	server buffer.
	(erc-display-line-1): Expect `erc-insert-marker' to always be
	initialized.  Assert some essential invariants regarding insert
	markers.
	(erc-send-current-line): Delete typed input but not the prompt.
	(erc-display-msg): Rework slightly to respect existing markers.
	* test/lisp/erc/erc-dcc-tests.el
	(erc-dcc-tests--dcc-handle-ctcp-send): Set insert marker.
	* test/lisp/erc/erc-networks-tests.el
	(erc-networks--rename-server-buffer--existing-live): Initialize
	markers to appease `erc--assert-input-bounds'.
	* test/lisp/erc/erc-tests.el (erc-ring-previous-command): Fix sloppy
	mock.  (Bug#60936.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add option to show visual erc-keep-place indicator

	* lisp/erc/erc-goodies.el (erc-keep-place-indicator-style,
	erc-keep-place-indicator-buffer-type,
	erc-keep-place-indicator-follow): New options for anchoring kept place
	visually.
	(erc-keep-place-indicator-line, erc-keep-place-indicator-arrow): New
	faces.
	(erc--keep-place-indicator-overlay): New internal variable.
	(erc--keep-place-indicator-on-window-configuration-change): New
	function to subscribe to `window-configuration-change-hook' and maybe
	update kept-place indicator.
	(erc--keep-place-indicator-setup): New function to initialize buffer
	for local module `keep-place-indicator'.
	(erc-keep-place-indicator-mode, erc-keep-place-indicator-enable,
	erc-keep-place-indicator-disable): New local ERC module.  Depends on
	"parent" module `keep-place'.  Like `fill-wrap', this is (for now)
	also deliberately left out of the widget menu for `erc-modules'.
	(erc-keep-place-move, erc-keep-place-goto): Add new commands for
	manually updating and jumping to keep-place indicator.
	(erc-keep-place): Move `erc--keep-place-overlay' when applicable.
	* test/lisp/erc/erc-goodies-tests.el (erc-keep-place-indicator-mode):
	Add test.
	(Bug#59943.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Optionally prompt for more ERC entry-point params

	* doc/misc/erc.texi: Update statement about availability of `:user'
	keyword param when entry points called interactively.
	* lisp/erc/erc-compat.el: Don't require `url-parse' when compiling.
	Add forward declaration for `url-type'.
	* lisp/erc/erc.el: Don't require `url-parse' when compiling.  Add
	forward declarations for accessors of `url' struct from `url-parse'
	library.
	(erc-select-read-args): Allow optionally calling entry points with a
	prefix arg to access params `user' and `:full-name'.
	(erc-tls): Update doc string.
	* test/lisp/erc/erc-tests.el (erc-select-read-args): Add test for
	extra args.  (Bug#60428.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add display option for interactive ERC invocations

	* lisp/erc/erc.el (erc-buffer-display, erc-receive-query-display):
	Add aliases for `erc-join-buffer' and `erc-auto-query'.
	(erc-interactive-display): Add new option to control display of server
	buffers during interactive entry-point invocations.
	(erc-select-read-args): Pass `erc-interactive-display' to entry
	points.
	* test/lisp/erc/erc-tests.el (erc-select-read-args): Expect
	buffer-display values from `erc-interactive-display'.
	(erc-tls, erc--interactive): Also check `erc-join-buffer' in
	environment when `erc-open' called.  (Bug#60428.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Be smarter about switching to TLS from M-x erc

	* lisp/erc/erc.el (erc--warn-unencrypted): Remove unused internal
	function.
	(erc-select-read-args): Offer to use TLS when user runs M-x erc and
	opts for default server and port or provides the well-known IANA TLS
	port or enters an ircs:// URL at the server prompt.  For the last two,
	do this immediately instead of calling `erc-tls' interactively and
	imposing a review of just-chosen values.  Also remove error warnings
	and ensure `erc-tls' still works by setting
	`erc-server-connect-function' to `erc-open-tls-stream' when
	appropriate.  Include the word "URL" in server prompt.
	(erc--with-entrypoint-environment): Add new macro for empowering an
	entry point's interactive form to bind special variables in their
	command's body without shadowing them in the lambda list.
	(erc, erc-tls): Add internal keyword argument for interactive use, but
	don't make it `keywordp' or advertise its presence.  Also use new
	helper macro, `erc--with-entrypoint-environment', to temporarily bind
	special vars given by interactive helper `erc-select-read-args'.
	* test/lisp/erc/erc-tests.el (erc--with-entrypoint-environment): Add
	new test.
	(erc-select-read-args): Modify return values to expect additional
	internal keyword argument where appropriate.
	(erc-tls): Make assertions about environment.
	(erc--interactive): New test.  (Bug#60428.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Ignore killed buffers when switching in erc-track

	* lisp/erc/erc-track.el (erc-track--switch-buffer): If the chosen
	buffer has been killed, remove it from `erc-modified-channels-alist'
	and try again.
	* test/lisp/erc/erc-scenarios-misc.el
	(erc-scenarios-base-kill-server-track): New test.  (Bug#60560.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Fill doc strings for ERC modules

	* lisp/erc/erc-common.el (erc--fill-module-docstring): Add helper to
	fill doc strings.
	(erc--assemble-toggle, define-erc-module): Use helper to fill doc
	string.
	* test/lisp/erc/erc-tests.el (define-minor-mode--global,
	define-minor-mode--local): Adjust expected output for generated doc
	strings.  (Bug#60935.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Warn when customizing minor-mode vars for ERC modules

	* lisp/erc/erc-common.el: (erc--inside-mode-toggle-p): Add global var
	to inhibit mode toggles from being run by `erc-update-modules'.  It
	must be non-nil inside custom-set functions for mode toggles created
	by `define-erc-module'.
	(erc--favor-changed-reverted-modules-state): Add new helper to show a
	"SET" Custom state for `erc-modules' except when reverting to the
	default value because \"STANDARD\" always takes precedence, as
	explained somewhat in bug#12864.
	(erc--assemble-toggle): Don't modify `erc-modules' when run from
	custom-set function.
	(erc--neuter-custom-variable-state): Add new function to serve as a
	phony getter that deceives Customize into thinking the variable is
	always set to its standard value.  The justification for this is that
	toggling a module's minor mode in Customize has never worked and has
	only sewn confusion in new users.  Without this hack, mode widgets
	show a state of "CHANGED outside Customize", which alone is probably
	preferable, except that they all end up toggled open, bringing them
	unwanted attention and distracting the user.
	(erc--tick-module-checkbox): Add helper to toggle the appropriate
	checkbox in the `erc-modules' widget when a user interactively toggles
	a minor-mode state variable.
	(erc--prepare-custom-module-type): Create spec for minor-mode Custom
	`:type', deferring various aspects until module-definition time.
	(define-erc-module): Add `:get' and `:type' keywords to be passed to
	`defcustom' definition for global modules.
	* lisp/erc/erc.el (erc-modules): Inhibit `erc-update-modules' when run
	from a minor-mode toggle's custom-set function.
	* test/lisp/erc/erc-tests.el (define-erc-module--global,
	define-erc-module--local): Update `erc-modules' mutations with
	`erc--inside-mode-toggle-p' guard conditions.  (Bug#60935.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Don't associate ERC modules with undefined groups

	* lisp/erc/erc-capab.el: Add property crutch to help ERC find module's
	Custom group.
	* lisp/erc/erc-common.el (erc--find-group): Add new function, a helper
	for finding an existing ERC module's Custom group based on
	`define-erc-module' params.  Prefer `group-documentation' as a
	sentinel over symbol properties owned by Customize because they might
	not be present if the group isn't yet associated with any custom
	variables.
	(define-erc-module): Set `:group' keyword value more accurately,
	falling back to `erc' when no associated group has been defined.
	* test/lisp/erc/erc-tests.el (erc--find-group, erc--find-group--real):
	New tests.
	(define-erc-module--global, define-erc-module--local): Expect the
	`:group' keyword to be the unevaluated `erc--find-group'
	form.  (Bug#60935.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Convert ERC's Imenu integration into proper module

	* lisp/erc/erc-goodies.el: Don't add Imenu hooks to `erc-mode-hook' at
	top level.  Remove autoload for `erc-create-imenu-index' because it
	already exists in the `erc-imenu' library.
	(erc-imenu-setup): Move to the erc-imenu library.
	* lisp/erc/erc-imenu.el (erc-unfill-notice): Allow modifications to
	read-only text.  Thanks to Yusef Aslam for reporting this bug.
	(erc-imenu-setup): Move here from goodies.
	(erc-imenu--create-index-function): New helper var to hold previous
	local value of `imenu-create-index-function'.  Perhaps advice should
	be used instead, but a cursory search of the Emacs code base reveals
	no such usage.
	(erc-imenu-mode, erc-imenu-enable, erc-imenu-disable): Create "new"
	ERC module for Imenu integration.
	* lisp/erc/erc.el (erc-modules): Add `imenu' to default value and
	create widget menu item.  Update package-version.
	* test/lisp/erc/erc-tests.el (erc-tests--modules): Add
	`imenu'.  (Bug#60954)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add missing colors to erc-irccontrols-mode

	* lisp/erc/erc-goodies.el (erc-spoiler-face): Add new face.
	(erc--controls-additional-colors): Add remaining 16-99 colors.
	(erc-get-bg-color-face, erc-get-fg-color-face): Look up extended
	colors in table.
	(erc-controls-remove-regexp, erc-controls-highlight-regexp): Convert
	to `rx' forms and move above first use to eliminate intra-file forward
	declarations.
	(erc-controls-propertize): Support spoilers.
	* test/lisp/erc/erc-goodies-tests.el: New file.  (Bug#60954.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Modify erc-mode-map in module definitions

	* lisp/erc/erc-button.el (erc-button-mode, erc-button-enable,
	erc-button-disable): Replace call to `erc-button-setup' with one to
	`erc--modify-local-map'.  This means `erc-button-setup' is now dead
	code from a client perspective.
	* lisp/erc/erc-goodies.el (erc-irccontrols-enable,
	erc-irccontrols-disable, erc-irccontrols-mode): Bind
	`erc-toggle-interpret-controls' in module definition so it's only
	available when the module is active.
	* lisp/erc/erc-log.el (erc-log-mode, erc-log-enable, erc-log-disable):
	Move top-level `define-key' into module definition.
	* lisp/erc/erc-match.el (erc-match-mode, erc-match-enable,
	erc-match-disable): Move top-level `define-key' into module
	definition.
	* lisp/erc/erc.el (erc-mode-map): Remove C-c C-c binding for
	`erc-toggle-interpret-controls'.
	(erc--modify-local-map): Add helper for global modules to use when
	modifying `erc-mode-map'.
	* test/lisp/erc/erc-tests.el (erc--modify-local-map): Add test.
	Ensure modifications to `erc-mode-map' on loading `erc' and via
	`erc-mode-hook' still work.  (Bug#60954.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Don't require erc-goodies in erc.el

	* lisp/erc/erc-goodies.el: Obviate the need for forward declarations
	by requiring `erc'.  Add minor-mode autoloads for `scrolltobottom',
	`readonly', `move-to-prompt', `keep-place', `noncommands',
	`irccontrols', `smiley', and `unmorse'.  Add Local variables footer
	with `generated-autoload-file'.
	(erc-controls-strip): Autoload this function.
	* lisp/erc/erc-ibuffer.el: Require `erc-goodies' for
	`erc-control-interpret'.  The justification for the blanket `require'
	is this module isn't a member of `erc-modules' by default.
	* lisp/erc/erc-page.el: (erc-ctcp-query-PAGE): Require `erc-goodies'
	and put forward declaration for `erc-control-interpret' atop file.
	* lisp/erc/erc-speedbar.el: Require `erc-goodies' for the same reason
	as erc-ibuffer.el.
	* lisp/erc/erc.el: Remove `require' for `erc-goodies' at end of file
	and `pp' at top of file because `pp-to-string' is autoloaded on Emacs
	27.  Also remove `require's for `thingatpt', `time-date', and
	`iso8601'.  They're all used sparingly and the latter two have only
	been around for one major release, so their removal likely won't cause
	much churn.  And `thingatpt' already has a call-site `require', so the
	top-level one is redundant, but autoload `word-at-point' anyway for
	the benefit of third-party libraries like `hl-nicks'.  Also wrap local
	loaddefs `require' call in `eval-and-compile'.
	(erc--read-time-period): Require dependencies.  (Bug#60954.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Leverage loaddefs for migrating ERC modules

	* lisp/erc/erc-common.el (erc--features-to-modules,
	erc--modules-to-features, erc--module-name-migrations): Remove unused
	internal functions.
	(erc--normalize-module-symbol): Make aware of new migration scheme
	based on symbol properties.
	* lisp/erc/erc-page.el: Add autoload cookie for module migration.
	* lisp/erc/erc-pcomplete.el: Add autoload cookies for module
	migration.
	* lisp/erc/erc-services.el: Add autoload cookie for module migration.
	* lisp/erc/erc-sound.el: Add autoload cookie for module migration.
	* lisp/erc/erc-stamp.el: Add autoload cookie for module migration.
	* lisp/erc/erc.el (erc-modules): Reorder default value, sorted by
	`string<' so that Customize does not consider the value to have been
	edited.  Remove non-existent module `hecomplete' from lineup and swap
	a couple more to maintain sorted order.  Change `:initialize' function
	to tag all symbols for built-in modules with an `erc--module'
	property.  In the `:set' function, ensure third-party modules appear
	after the sorted and normalized built-ins, but in user-defined order.
	Do this to prevent all modules, built-ins included, from ending up as
	populated form fields for the "other" checkbox in the Customize
	interface.
	(erc--find-mode): Add helper function for `erc--update-modules'.
	(erc--update-modules): Always resolve module names and only
	conditionally attempt to require corresponding features.
	* test/lisp/erc/erc-tests.el (erc-tests--modules): Add manifest for
	asserting built-in modules and features.  This is easier to verify
	visually than looking at the custom-type set for `erc-modules'.
	(erc-modules--initialize): New test.
	(erc-modules--internal-property): Add test.
	(erc--normalize-module-symbol): New test.
	(erc--find-mode): New test.
	(erc--update-modules) Adapt to new paradigm and make more
	comprehensive.  (Bug#60954.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Copy over upstream Compat macros to erc-compat

	* lisp/erc/erc-backend.el: (erc--get-isupport-entry): Replace call
	to `erc-compat--with-memoization' with the built-in
	`with-memoization'.
	* lisp/erc/erc-compat.el: (erc-compat-function, erc-compat-call): Add
	new macros from Compat 29.1.2.0.
	(erc-compat--with-memoization): Remove because it's now provided by
	Compat.  (Bug#60954.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Honor arbitrary CHANTYPES in ERC

	* lisp/erc/erc.el (erc-channel-p): Favor "CHANTYPES" ISUPPORT item
	before falling back to well known prefixes.
	* test/lisp/erc/erc-tests.el (erc-channel-p): Add test.  Arbitrarily
	bundled with bug#60954.

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add hook to regain nickname in ERC

	* lisp/erc/erc-backend.el (erc-server-reconnect-timeout): Mention
	`erc-nickname-in-use-functions' in doc string.
	* lisp/erc/erc.el (erc-nickname-in-use-functions,
	erc-regain-nick-on-connect): Add abnormal hook and possible value to
	handle stale connections preventing a desired nick from being reissued
	by the server.  Follows directly from bug#62044.
	(erc-nickname-in-use): Call `erc-nickname-in-use-functions'.
	* test/lisp/erc/erc-scenarios-base-renick.el
	(erc-scenarios-base-renick-auto-regain): New test.
	* test/lisp/erc/resources/base/renick/regain/normal-again.eld: New file.
	* test/lisp/erc/resources/base/renick/regain/normal.eld: New file.

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add probing erc-server-reconnect-function variant

	* lisp/erc/erc-backend.el (erc-server-reconnect-timeout): Replace
	questionable claim with recommendation for alternate value when
	experiencing nick rejections.
	(erc-server-reconnect-function): Add new, somewhat experimental value
	`erc-server-delayed-check-reconnect'.
	(erc--server-connect-function): Add variable for process-dialing
	monitor, a function.
	(erc--server-propagate-failed-connection): Add function to serve as
	default monitor to run on process creation and maybe execute failure
	handlers.
	(erc-server-connect): Run `erc--server-connect-function' for async
	processes one second after creation.
	(erc--server-reconnect-timeout, erc--server-reconnect-timeout-check,
	erc--server-reconnect-timeout-scale-function,
	erc--server-reconnect-timeout-double): Add supporting variables and
	functions for `erc-server-delayed-check-reconnect'.
	(erc-server-delayed-check-reconnect): Add possible alternate value for
	option `erc-server-reconnect-function' that only attempts to reconnect
	after hearing back from the server.
	(erc-schedule-reconnect): Ensure previous `erc-server-process' is
	deleted.
	* test/lisp/erc/erc-scenarios-base-auto-recon.el: New file.
	* test/lisp/erc/resources/base/reconnect/just-eof.eld: New file.
	* test/lisp/erc/resources/base/reconnect/just-ping.eld: New file.
	* test/lisp/erc/resources/base/reconnect/ping-pong.eld: New file.
	* test/lisp/erc/resources/base/reconnect/unexpected-disconnect.eld:
	New file.
	* test/lisp/erc/resources/erc-scenarios-common.el
	(erc-scenarios-common--make-bindings): Shadow
	`timer-list'.  (Bug#62044.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add MOTD command to ERC

	* lisp/erc/erc-backend.el (erc-server-402, erc-server-402-functions):
	Add new response handler and hook.
	* lisp/erc/erc.el (erc-cmd-MOTD): New function to shield erc-network
	from handling post-connection MOTD replies.  Thanks to Emanuel Berg
	for reporting this (bug#62151).
	(erc-message-english-s402): Define new ERR_NOSUCHSERVER message
	template.
	* test/lisp/erc/erc-scenarios-base-misc-regressions.el: New file.
	* test/lisp/erc/resources/base/commands/motd.eld: New file.

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Split overlong outgoing messages in erc-sasl

	* lisp/erc/erc-sasl.el: (erc-server-AUTHENTICATE): Account for
	client messages exceeding 400 bytes.  (Bug#62421.)
	* test/lisp/erc/erc-scenarios-sasl.el
	(erc-scenarios-sasl--plain-overlong-split,
	erc-scenarios-sasl--plain-overlong-aligned): Add tests.
	* test/lisp/erc/resources/sasl/plain-overlong-aligned.eld: New file.
	* test/lisp/erc/resources/sasl/plain-overlong-split.eld: New file.

2023-04-08  Daniel Pettersson  <daniel@dpettersson.net>

	Fix DCC GET flag parsing in erc-dcc

	* lisp/erc/erc-dcc.el (erc-cmd-DCC): Tokenize raw input line but also
	accommodate legacy invocation.
	(pcomplete/erc-mode/DCC): Quote file names when suggesting.  Account
	for double-hyphen "end-of-options"-like separator.
	(erc-dcc-do-GET-command): Simplify signature, subsuming NICK in
	variadic args, now ARGS instead of FILE, which changes the arity
	from (2 . many) to (1 . many).  Explain usage in doc string.  Honor an
	optional separator, "--", if present.  (Bug#62444.)
	* test/lisp/erc/erc-dcc-tests.el (erc-dcc-do-GET-command): Call new
	parameterized helper with various flag/file combinations.
	(erc-dcc-tests--erc-dcc-do-GET-command): New fixture function.
	(pcomplete/erc-mode/DCC--get-quoted,
	pcomplete/erc-mode/DCC--get-sep): New tests.

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add subcommand erc-cmd-HELP handler to erc-dcc

	* lisp/erc/erc-compat.el (erc-compat--28-split-string-shell-command,
	erc-compat--split-string-shell-command): New functions introduced in
	Emacs 28 for splitting pcomplete input.
	* lisp/erc/erc-dcc.el (erc-cmd-DCC): Elect to tokenize line specially.
	(erc-dcc--cmd-help): Add help handler.  (Bug#62444.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Add subcommand dispatch facility to erc-cmd-HELP

	* lisp/erc/erc.el (erc-cmd-HELP): Change signature by adding &rest
	parameter.  Look for symbol property `erc--cmd-help' and, if found,
	assume it's a function and call it with &rest args after attempting to
	autoload the primary command symbol.  (Bug#62444.)

2023-04-08  F. Jason Park  <jp@neverwas.me>

	Change ERC version to 5.6-git

	* lisp/erc/erc.el: Update main Version header and bump required Compat
	to latest release in Package-Requires header.  Also update entry in
	`customize-package-emacs-version-alist', mapping ERC 5.6 to Emacs
	30.1.
	(erc-version): Move to 5.6-git.

2023-04-08  João Távora  <joaotavora@gmail.com>

	Eglot: simplify eglot--sig-info and fix edge cases (bug#62687)

	The documentation of each signature was rarely rendered because of
	obsolete logic that skipped MarkupContent objects.

	The new function follows the principle that echo are gets as little as
	possible, while the *eldoc* buffer gets as much as possible (except,
	for the individual parameter documentation, as I couldn't find a
	single server that uses it).

	Tested with clangd, pylsp, jdtls, gopls, rust-analyzer, zls.

	* lisp/progmodes/eglot.el (eglot--sig-info): Simplify.

2023-04-08  Mattias Engdegård  <mattiase@acm.org>

	Consolidate existing warnings about unused return values

	Move the warning about unused return values from calls to
	side-effect-free functions from the source-level optimizer to the code
	generator, where it can be unified with the special-purpose warning
	about unused values from `mapcar`.  This change also cures spurious
	duplicate warnings about the same code, makes the warnings amenable to
	suppression through `with-suppressed-warnings`, and now warns about
	some unused values that weren't caught before.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
	Move warning away from here.
	* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-warnings):
	Doc string updates.
	(byte-compile-form): Put the new warnings here.
	(byte-compile-normal-call): Move mapcar warning away from here.
	* lisp/emacs-lisp/bytecomp.el (byte-compile-ignore):
	Compile args to `ignore` for value to avoid unused-value warnings, and
	then discard the generated values immediately thereafter.  Mostly this
	does not affect the generated code but in rare cases it might result
	in slightly worse code.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-test--with-suppressed-warnings): Adapt test.

2023-04-08  Basil L. Contovounesios  <contovob@tcd.ie>

	Improve ibuffer-diff-with-file

	* lisp/ibuf-ext.el (ibuffer-diff-with-file): Link to diff-command in
	docstring.  Make Diff buffer read-only from outset and inhibit as
	needed to avoid surprises.  Check whether diff-command
	supports --label.  Leave point at BOB and clean up any excess
	newline inserted by ibuffer-diff-buffer-with-file-1.  Prefer
	pop-to-buffer-same-window over switch-to-buffer.

	(ibuffer-diff-buffer-with-file-1): Add docstring.  Remove unused
	unwind-protect and copypasta from diff-no-select (bug#62599).  Use
	diff-file-local-copy, string-join, and redisplay in place of
	analogues.  Condition --label use on availability, and label buffers
	consistently with diff-no-select.  Leave empty line between runs.
	Let diff-sentinel delete temporary files.  Leave point at EOB for
	next run.

2023-04-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-08  Po Lu  <luangruo@yahoo.com>

	Document selections on Android more thoroughly

	* doc/lispref/elisp.texi (Top):
	* doc/lispref/frames.texi (Frames): Add ``Accessing Selections''
	to menu.
	(Accessing Selections, X Selections, Other Selections): New
	nodes.

2023-04-08  João Távora  <joaotavora@gmail.com>

	Eglot: fix problems after changes to eglot-imenu (bug#62718)

	* lisp/progmodes/eglot.el (eglot--imenu-SymbolInformation)
	(eglot--imenu-DocumentSymbol): Fix.

2023-04-07  João Távora  <joaotavora@gmail.com>

	Eglot: version strings must start with numbers (bug#62718)

	Even though Eglot is a :core ELPA package and as such is on a
	different release cycle than Emacs proper, the version strings used in
	'defcustom' and 'make-obsolete' must still follow the numeric format.

	* lisp/progmodes/eglot.el (eglot-report-progress): Adjust :version.
	(eglot-lsp-abiding-column)
	(eglot-current-column)
	(eglot-current-column-function)
	(eglot-move-to-current-column)
	(eglot-move-to-lsp-abiding-column)
	(eglot-move-to-column-function)
	(eglot-ignored-server-capabilites)
	(eglot-manual)
	(eglot--managed-mode-hook): Update "obsolete" spec.

2023-04-07  João Távora  <joaotavora@gmail.com>

	Eglot: use Eglot versions, not Emacs's in obsolete specs

	* lisp/progmodes/eglot.el (eglot-report-progress): Adjust :version.
	(eglot-lsp-abiding-column)
	(eglot-current-column)
	(eglot-current-column-function)
	(eglot-move-to-current-column)
	(eglot-move-to-lsp-abiding-column)
	(eglot-move-to-column-function)
	(eglot-ignored-server-capabilites)
	(eglot-manual)
	(eglot--managed-mode-hook): Update "obsolete" spec.

2023-04-07  João Távora  <joaotavora@gmail.com>

	Eglot: require optional text-property-search.el

	Originally reported in
	https://github.com/joaotavora/eglot/discussions/1201.

	Also check for text-property-search-forward before using it, so we
	won't break on Emacs 26.3.  At this point, better start relying on
	compat.el, I guess.

	* lisp/progmodes/eglot.el (eglot--format-markup): Check for
	text-property-search-forward.

2023-04-07  João Távora  <joaotavora@gmail.com>

	Eglot: be careful about gfm-view-mode read-only buffers

	Although in most situations this doesn't error, it's only because of
	the very wide binding of inhibit-read-only in jsonrpc--process-filter.
	That binding will soon be narrowed, so better not rely on it.

	Originally reported in
	https://github.com/joaotavora/eglot/discussions/1202.

	* lisp/progmodes/eglot.el (eglot--format-markup): Inhibit
	read-only before touching buffer potentially in gfm-view-mode.

2023-04-07  Mattias Engdegård  <mattiase@acm.org>

	Remove useless unwind-protect forms, or make them useful as intended

	* lisp/imenu.el (imenu--generic-function):
	* lisp/mail/yenc.el (yenc-decode-region):
	* lisp/textmodes/table.el (table-recognize-region):
	* test/lisp/dired-tests.el (dired-test-directory-files):
	* test/lisp/hl-line-tests.el (hl-line-tests-sticky):
	Fix unwind-protect bracketing mistakes that caused the unwind code to
	be misplaced.
	* lisp/strokes.el (strokes-read-stroke): Fix a bracketing mistake that
	misplaced the unwind code, and another one that misplaced the
	else-clause of an `if` form.
	* test/lisp/gnus/mml-sec-tests.el (mml-secure-test-fixture): Fix a
	bracketing mistake that misplaced the unwind code, and remove
	superfluous condition-case.

	* lisp/mwheel.el (mouse-wheel-global-text-scale):
	* lisp/speedbar.el (speedbar-stealthy-updates)
	(speedbar-fetch-dynamic-etags):
	* lisp/emacs-lisp/edebug.el (edebug--recursive-edit):
	* lisp/emacs-lisp/package.el (package--read-pkg-desc):
	* lisp/cedet/semantic.el (semantic-refresh-tags-safe):
	* lisp/emulation/viper-cmd.el (viper-escape-to-state):
	* lisp/emulation/viper-cmd.el (viper-file-add-suffix):
	* lisp/gnus/mail-source.el (mail-source-movemail):
	* lisp/mail/feedmail.el (feedmail-send-it-immediately)
	(feedmail-deduce-address-list):
	* lisp/mail/mailclient.el (mailclient-send-it):
	* lisp/mail/smtpmail.el (smtpmail-deduce-address-list):
	* lisp/mh-e/mh-print.el (mh-ps-print-range):
	* lisp/textmodes/reftex-index.el (reftex-index-this-phrase):
	* test/lisp/emacs-lisp/ert-tests.el (ert-test-run-tests-batch):
	(ert-test-run-tests-batch-expensive):
	Remove unwind-protect forms that are apparently useless, some since a
	prior edit that removed their purpose, some since their first
	appearance.

	* test/lisp/subr-tests.el (subr-test--frames-2):
	Insert dummy unwind form in backtrace test code.

2023-04-07  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-eglot):  Adapt software selection.

2023-04-07  João Távora  <joaotavora@gmail.com>

	Eglot: no more tests based on Pylsp (bug#62694)

	The functionality under test in eglot.el is exactly the same, but use
	the clangd server only, as that is used in more tests, and it is much
	easier to check if it misbehaves or not.

	Tests pass with clangd version 15.

	* test/lisp/progmodes/eglot-tests.el (python): Don't require it.
	(eglot--call-with-fixture): Simplify.
	(eglot--wait-for-clangd): New helper.
	(eglot-test-basic-completions)
	(eglot-test-non-unique-completions, eglot-test-basic-xref)
	(eglot-test-snippet-completions)
	(eglot-test-snippet-completions-with-company)
	(eglot-test-eldoc-after-completions, eglot-test-multiline-eldoc):
	Use clangd, not pylsp.
	(eglot-test-formatting): Renamed from
	eglot-test-python-autopep-formatting.
	(eglot-test-python-yapf-formatting): Remove.

2023-04-07  João Távora  <joaotavora@gmail.com>

	Eglot: rework eglot-imenu

	Most newer servers return a vector of 'DocumentSymbol' as a response
	to 'textDocument/documentSymbol'.  It's not worth trying to dumb this
	down to imenu format of 'SymbolInformation' vectors.

	This lays groundwork for the forthcoming "breadcrumb" feature of
	bug#58431.

	* lisp/progmodes/eglot.el
	(eglot--imenu-SymbolInformation, eglot--imenu-DocumentSymbol): New
	helpers.
	(eglot-imenu): Rework.

2023-04-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-06  Eli Zaretskii  <eliz@gnu.org>

	Avoid failing the build when org-version.el is updated

	* lisp/Makefile.in: Force recompilation of all Org files when
	org-version.el is updated with a new Org version.

2023-04-06  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	305246d9726 Add emoji-zoom-reset
	470d269ec1f Make emoji-zoom-{increase,decrease} set text properties c...
	63d4a86f8d1 Fix transforming sliced images
	5e1953a8f85 ; * etc/NEWS: Minor copyedits of entry for 'keymap-*' fun...
	6b9f9df9454 ; Improve documentation of 'declare-function'
	81d1f46d0fe ; Avoid compiler warning in eglot.el.
	38cdfcb2128 ; Fix description of new 'keymap-*' functions
	257090b8728 Adapt EMBA scripts.
	90c07d3fdd2 Another terminology fix in ELisp reference manual
	a832bc7090c Correct terminology in Elisp Reference Manual
	db308233cb3 Comment out GNUSTEP jobs on EMBA (again)
	8c1b1022439 ; * lisp/image.el (put-image): Doc fix.
	eda88c63adf ; * doc/emacs/trouble.texi (Checklist): Minor grammar fix.
	728bc09cf3c Fix regexp string escaping mistake in vhdl-mode.el (bug#6...
	479626dbac9 Update to Org 9.6.3-2-gf2949d
	5a1c9aace70 ; Add a bit more docstring to tsx-ts-mode (bug#62429)
	86cf9fd932c Eglot: don't watch directories that don't exist
	82d0b6c64ea ; * lisp/subr.el (use-dialog-box-p): Fix last change.
	3619663f982 Preserve peer information for web page in eww-readable
	cb8d6ab648f * lisp/subr.el (use-dialog-box-p): Fix conditions for GUI...
	fb2c4409207 ; * lisp/progmodes/c-ts-mode.el (c++-ts-mode): Add some n...

	# Conflicts:
	#	etc/NEWS

2023-04-06  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	b39c3cd1125 ; * etc/NEWS: Fix typos.
	89ac5ba11c7 Fix ModelSim error regexp in vhdl-mode
	24ed9c7ae78 ; * doc/emacs/trouble.texi (Checklist): Minor copyedits (...
	d1d39a0f09c Document enhancements in handling of echo-area messages

	# Conflicts:
	#	etc/NEWS

2023-04-06  Michael Albinus  <michael.albinus@gmx.de>

	Describe how to run Emba tests locally

	* admin/notes/emba: Describe how to run Emba tests locally.

	* test/infra/Dockerfile.emba (emacs-eglot):  Adapt software selection.

2023-04-06  Liu Hui  <liuhui1610@gmail.com>

	Restore positions reliably for abbreviated file names in saveplace.el

	* lisp/saveplace.el (save-place-abbreviate-file-names): Add setter
	function for rewriting `save-place-alist'.  Update docstring.
	(save-place-to-alist): Save Abbreviated dired-filename.
	(save-place-load-alist-from-file): Move this function above
	`save-place-abbreviate-file-names' since it is used in the :set
	function.
	(save-place-find-file-hook):
	(save-place-dired-hook): Use abbreviated file name when
	`save-place-abbreviate-file-names' is non-nil.
	(Bug#62413)

2023-04-06  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Handle electric heredocs pairs in elixir-ts-mode

	* lisp/progmodes/elixir-ts-mode.el
	(elixir-ts--electric-pair-string-delimiter): New helper.
	(elixir-ts-mode): Add post-self-insert-hook.  (Bug#62536)

2023-04-06  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Propertize heredocs in elixir-ts-mode

	* lisp/progmodes/elixir-ts-mode.el
	(elixir-ts--syntax-propertize-query): New variable.
	(elixir-ts--syntax-propertize): New helper.
	(elixir-ts-mode): Set syntax-propertize-function.  (Bug#62536)

2023-04-06  Alan Mackenzie  <acm@muc.de>

	CC Mode: Miscellaneous coding fixes in c-forward-type

	This fixes bug #62339.

	* lisp/progmodes/cc-engine.el (c-forward-type): In the implicit int handling,
	respect the setting of the parameter stop-at-end.  In the case "normal
	identifier", insert a missing (c-forward-syntactic-ws); this fixes the bug.
	Here, correct the wrong return value `prefix' to t.

2023-04-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-06  Po Lu  <luangruo@yahoo.com>

	Implement `yank-media' on Android

	* doc/emacs/android.texi (Android Windowing): Update selection
	restrictions.
	* java/org/gnu/emacs/EmacsClipboard.java (EmacsClipboard): New
	functions `getClipboardTargets' and `getClipboardData'.
	* java/org/gnu/emacs/EmacsSdk11Clipboard.java
	(EmacsSdk11Clipboard, getClipboardTargets, getClipboardData):
	Implement.
	* java/org/gnu/emacs/EmacsSdk8Clipboard.java: Stub out new
	functions.

	* lisp/term/android-win.el (android-get-clipboard-1): Implement
	MIME type targets.
	* src/android.c (android_exception_check)
	(android_exception_check_1, android_exception_check_2): Fix
	punctuation in warning message.
	(android_exception_check_nonnull_1): New function.
	* src/android.h: Update prototypes.
	* src/androidselect.c (struct android_emacs_clipboard): New
	methods.
	(android_init_emacs_clipboard): Initialize new methods.
	(Fandroid_get_clipboard_targets, android_xfree_inside)
	(Fandroid_get_clipboard_data): New functions.
	(syms_of_androidselect): Define new subrs.

2023-04-05  Andrea Corallo  <akrl@sdf.org>

	Comp: Fix limplification pass (bug#62537)

	* test/src/comp-resources/comp-test-funcs.el (comp-test-62537-1-f)
	(comp-test-62537-2-f): New functions.

	* lisp/emacs-lisp/comp.el (comp-jump-table-optimizable): Make it
	stricter add a comment.

2023-04-05  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix fontification problems shown by test file templates-20.cc

	Also fix one problem evident in test file decls-10.cc.

	* lisp/progmodes/cc-engine.el (c-brace-stack-at): Bind
	c-record-type-identifiers to nil to prevent called functions recording
	identifiers spuriously.
	(c-forward-<>-arglist-recur): Revert the ill-advised optimization from autumn
	2022 which attempted to avoid re-marking c-type text properties inside angle
	bracket arglists.
	(c-forward-decl-or-cast-1): Accept the semicolon at the end of "t8 * id;" as
	sufficient evidence to fontify as a declaration (not a multiplication).

	* lisp/progmodes/cc-fonts.el (c-font-lock-c++-using): No longer fontify the
	last component of foo::bar with c-reference-face-name.

2023-04-05  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Improve sigil fontification for elixir-ts-mode

	* lisp/progmodes/elixir-ts-mode.el:
	(elixir-ts--font-lock-settings): Update sigil queries.

2023-04-05  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Improve list indentation for elixir-ts-mode

	* lisp/progmodes/elixir-ts-mode.el:
	(elixir-ts--argument-indent-offset): Add empty line check.
	(elixir-ts--argument-indent-anchor): Change ERROR offset.
	* test/lisp/progmodes/elixir-ts-mode-resources/indent.erts:
	Add test.

2023-04-05  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Add more constructs to treesit-sexp-type-regexp

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Add more
	constructs to treesit-sexp-type-regexp (bug#62086).

2023-04-05  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-04  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp robustness

	* lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
	Check for `tramp-string-empty-or-nil-p'.

2023-04-04  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/subr.el (read-char-from-minibuffer): Don't use undefined
	variable.  Reported by Robert Pluim.

2023-04-04  Michael Albinus  <michael.albinus@gmx.de>

	Display unlock-file warning only when file locks are enabled

	* lisp/files.el (remote-file-name-inhibit-locks): Fix docstring.

	* lisp/userlock.el (userlock--handle-unlock-error):
	Display warning only when `create-lockfiles' is non-nil.  (Bug#62614)

	* lisp/net/tramp.el (tramp-handle-unlock-file): Raise a warning
	only when `create-lockfiles' is non-nil or
	`remote-file-name-inhibit-locks' is nil.

2023-04-04  Juri Linkov  <juri@linkov.net>

	ruby-ts-mode: Recognize more nodes as sexps

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
	Add "unless" to 'treesit-sexp-type-regexp'.

2023-04-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-03  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Recognize more nodes as sexps

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Argument
	treesit-sexp-type-regexp with interpolation, instance_variable,
	global_variable (bug#62086, bug#62416).

2023-04-03  Michael Albinus  <michael.albinus@gmx.de>

	Fix some `unwind-protect' forms

	* lisp/net/tramp-smb.el (tramp-smb-handle-file-acl)
	(tramp-smb-handle-set-file-acl): Remove superfluous `unwind-protect'.

	* test/lisp/auth-source-tests.el
	(auth-source-test-secrets-create-secret): Fix `unwind-protect' handler.

	* test/lisp/net/tramp-tests.el (tramp-test38-find-backup-file-name):
	Add dummy cleanup form.

2023-04-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-03  Po Lu  <luangruo@yahoo.com>

	Improve portability of newly added icons

	* etc/images/symbols/README: Document what to do with changed icons.
	* etc/images/symbols: Add portable variants of SVG icons.

2023-04-03  Yuan Fu  <casouri@gmail.com>

	Modify chevron icons and add some more

	* etc/images/symbols/chevron_left_16.svg:
	* etc/images/symbols/chevron_right_16.svg: Make them shorter so that
	they appear roughly the same size as up and down chevrons.
	* etc/images/symbols/cross_circle_fill_16.svg:
	* etc/images/symbols/heart_16.svg:
	* etc/images/symbols/heart_fill_16.svg:
	* etc/images/symbols/heart_half_16.svg:
	* etc/images/symbols/minus_circle_fill_16.svg:
	* etc/images/symbols/plus_circle_fill_16.svg: New icons.

2023-04-03  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_normalize_vector): Don't rely on undefined
	sign extension semantics.

2023-04-03  João Távora  <joaotavora@gmail.com>

	Eglot: Bump to 1.14

	* lisp/progmodes/eglot.el (Version): Bump to 1.14
	(Package-Requires): Require ElDoc 1.14.0

	* etc/EGLOT-NEWS: Update.

2023-04-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-03  João Távora  <joaotavora@gmail.com>

	Merge from origin/emacs-29

	3bdbb66efb9 ; CONTRIBUTE: Minor stylistic changes.
	d0eb12e8d3c Fix typo in section 14.1 of Emacs Manual
	b2fbec37f39 ; * etc/EGLOT-NEWS: Clarify scope of topmost section
	131ec049db0 Eglot: unbreak eglot-extend-to-xref on w32
	0622e1f29f6 Eglot: ensure server shutdown turns off eglot-inlay-hints...
	59f66ea3027 ; * lisp/emacs-lisp/package-vc.el: Remove completed item ...
	d23dc3dd7e3 ; * lisp/emacs-lisp/package-vc.el (package-vc): Fix manua...
	4508a024e81 ; Clarify documentation of 'cursor' text property
	d2e82817a3f Add two typescript-ts-mode faces (bug#62429)
	10918fc9d24 Fix scrolling window when point moves up
	9b32bc134c4 Improve documentation of 'defcustom's :set keyword
	ab4273056e0 Comp fix calls to redefined primitives with op-bytecode (b...
	c98929c7e18 ; Fix last change
	a14c3f62a67 ; Fix last change
	09fece5722f Fix duplicate defcustom in eww.el
	e45bd10a3d9 Fix indentation regression in 'C-h l'
	46fd10a7600 * doc/misc/tramp.texi (Remote shell setup): Clarify use o...

2023-04-03  João Távora  <joaotavora@gmail.com>

	Eldoc: bump package version to 1.14.0

	* lisp/emacs-lisp/eldoc.el (Version): Bump to 1.14.0

2023-04-03  João Távora  <joaotavora@gmail.com>

	Eglot: load built-in GNU ELPA dependencies explicitly

	Because of outstanding bug#62576, it's way to easy for users to get
	confused by the M-x package-install process for Eglot.

	Whenever an Eglot release depends on a new version of a GNU ELPA :core
	package which is _also_ provided built-in, M-x package-install will
	install that dependency, but will not always load it on top of the
	built-in one.

	The solution is to not use "require" for now.  This may potentially
	lead to double "loads", but that should in principle be idempotent.

	* lisp/progmodes/eglot.el (project, eldoc, seq, flymake, xref, jsonrpc)
	(external-completion): Load, don't require.

2023-04-03  João Távora  <joaotavora@gmail.com>

	Eglot: improve caching in eglot-completion-at-point

	When answering the :textDocument/completion request, LSP servers
	provide a :isIncomplete flag in the response, which allows Eglot to
	know if "further typing should result in recomputing [the completions]
	list.

	If :isIncomplete is false (i.e. the full set was returned), Eglot
	caches the response in a global variable eglot--capf-cache that
	persists for the duration of the "completion session", taken to be the
	interval between two calls to completion-in-region-mode.

	If the cache has been set, and Eglot detects that "further typing" has
	happened, it is safe to use the cache instead of making a request to
	the server.

	Thus eglot--capf-cache-flush, added to completion-in-region-mode-hook,
	is used to flush this cache.  Since the popular Company completion
	package doesn't use completion-in-region-mode, eglot--capf-cache-flush
	is also added to its company-after-completion-hook.

	* lisp/progmodes/eglot.el (eglot--managed-mode): Set
	'completion-in-region-mode-hook and company-after-completion-hook.
	(eglot--capf-cache): New variable.
	(eglot--capf-cache-flush): New function.
	(eglot-completion-at-point): Rework.

	* etc/EGLOT-NEWS: Update.

2023-04-03  João Távora  <joaotavora@gmail.com>

	Eglot: take advantage of new Eldoc options for signature doc

	Only echo the "active signature", send all the other signatures for
	the *eldoc* buffer.

	* lisp/progmodes/eglot.el (eglot--sig-info): Rework protocol.
	(eglot-signature-eldoc-function): Rework.

2023-04-03  João Távora  <joaotavora@gmail.com>

	Eglot: declare support for markdown also for signatures

	* lisp/progmodes/eglot.el
	(eglot--accepted-formats): new helper.
	(eglot-client-capabilities): use it.

2023-04-03  João Távora  <joaotavora@gmail.com>

	Eglot: define eglot--ensure-list with defalias

	This avoids annoying obsoletion warnings when compiling the whole buffer.

	* lisp/progmodes/eglot.el (eglot--ensure-list): define with defalias.

2023-04-03  João Távora  <joaotavora@gmail.com>

	Eglot: remove hacky advice of jsonrpc-request

	The vast majority of Eglot sync requests to the server need to inform
	the server of any pending changes to the buffer beforehand, so that
	the server has up-to-date information to do its job.

	But doing so at the expense of ugly advice of jsonrpc-request is ill
	advised.  Introduce eglot--request helper instead and use that.

	Use this opportunity to conduct a review of Eglot sync requests and
	come to the conclusion that all need to send any changes beforehand.
	Nevertheless, an IMMEDIATE kwarg to eglot--request was added to
	bypassing this.

	* lisp/progmodes/eglot.el
	(eglot--request): New helper.
	(eglot-shutdown)
	(eglot-execute-command)
	(eglot-workspace-configuration)
	(eglot--signal-textDocument/willSave)
	(eglot--workspace-symbols)
	(eglot--lsp-xrefs-for-method)
	(xref-backend-apropos)
	(eglot-format)
	(eglot-completion-at-point)
	(eglot-imenu)
	(eglot-rename)
	(eglot-code-actions): Use eglot--request.

2023-04-03  Jim Porter  <jporterbugs@gmail.com>

	Use the 'interactive' spec to set arguments for 'eshell-command'

	* lisp/eshell/eshell.el (eshell-read-command): New function...
	(eshell-command): ... use it.  Additionally, require the COMMAND
	argument, and rename ARG to TO-CURRENT-BUFFER.

2023-04-03  Jim Porter  <jporterbugs@gmail.com>

	Fix using background commands in 'eshell-command'

	This regressed due to the patch for bug#53715, which changed how
	Eshell pipelines return the processes in the pipeline (bug#62556).

	* lisp/eshell/esh-cmd.el (eshell-parse-command): When creating
	background commands, wrap the process(es) in a cons cell whose CAR is
	':eshell-background'.  This lets us use fewer heuristics...
	(eshell-eval-command): ... here.  Additionally, keep the result and
	the incomplete delimiter separate.

	* lisp/eshell/eshell.el (eshell-command): Check ':eshell-background'
	and use a more-robust method for setting the output target.

	* test/lisp/eshell/eshell-tests.el (eshell-test/eshell-command/simple)
	(eshell-test/eshell-command/pipeline)
	(eshell-test/eshell-command/background)
	(eshell-test/eshell-command/background-pipeline): New tests.

2023-04-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/simple.el (inhibit-auto-fill): New var

	* lisp/simple.el (inhibit-auto-fill): New var.
	(internal-auto-fill): Obey it.
	(newline): Use it instead of binding `auto-fill-function`, so
	as to avoid messing up the state if something wants to enable/disable
	`auto-fill-mode` during the course of the let binding (bug#62419).

2023-04-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/eval.c: Fix bug#62419

	Yup, almost 40 years after ELisp first combined them, buffer-local
	and let bindings still don't work quite right :-(

	The "automatically buffer-local if set" semantics should follow the
	principle that it becomes buffer-local iff the var's current binding
	refers to the top-level/global/non-let binding.

	* src/eval.c (let_shadows_buffer_binding_p): Disregard non-global
	let-bindings.

	* test/src/eval-tests.el (eval-test--bug62419): New test.

2023-04-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-02  Jim Porter  <jporterbugs@gmail.com>

	Avoid shadowing variables in some Eshell command forms

	* lisp/eshell/esh-cmd.el (eshell-rewrite-for-command): Make
	'for-items' an uninterned symbol.
	(eshell-as-subcommand): Correct docstring.
	(eshell-do-command-to-value): Mark obsolete.
	(eshell-command-to-value): Move binding of 'value' outside of the
	macro's result, and remove call to 'eshell-do-command-to-value'.

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/subcommand-shadow-value)
	(esh-cmd-test/for-loop-for-items-shadow): New tests.
	(esh-cmd-test/for-name-loop, esh-cmd-test/for-name-shadow-loop):
	Rename to...
	(esh-cmd-test/for-loop-name, esh-cmd-test/for-loop-name-shadow):
	... these.

2023-04-01  Yuan Fu  <casouri@gmail.com>

	Add some icons (bug#62562)

	* etc/images/symbols/README: New file.
	* etc/images/symbols/*.svg: New icons.

2023-04-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

	Merge remote-tracking branch 'origin/master' into feature/android

2023-04-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2023-03-18 16:17:52 UTC.

2023-04-01  Andrew G Cohen  <cohen@andy.bu.edu>

	Allow null date in gnus-icalendar-event--decode-datefield

	* lisp/gnus/gnus-icalendar.el:
	(gnus-icalendar-event--decode-datefield): Don't throw an error if the
	event date is missing.

2023-04-01  Andrew G Cohen  <cohen@andy.bu.edu>

	Reset 'gnus-current-window-configuration' on edit-form exit.

	* lisp/gnus/gnus.el: New variable gnus-prev-cwc.
	* lisp/gnus/gnus-art.el (gnus-article-edit-mode):
	New local variable gnus-prev-cwc.
	(gnus-article-edit-article):  Store original
	gnus-current-window-configuration as gnus-prev-cwc.
	(gnus-article-edit-done, gnus-article-edit-exit): Restore
	gnus-current-window-configuration from gnus-prev-cwc.
	* lisp/gnus/gnus-eform.el (gnus-edit-form-mode):
	New local variable gnus-prev-cwc.
	(gnus-edit-form):  Store original
	gnus-current-window-configuration as gnus-prev-cwc.
	(gnus-edit-form-done, gnus-edit-form-exit): Restore
	gnus-current-window-configuration from gnus-prev-cwc.

2023-04-01  Andrew G Cohen  <cohen@andy.bu.edu>

	Use completion when mark limiting in gnus summary buffers

	* lisp/gnus/gnus-sum.el (gnus-summary-limit-to-marks)
	(gnus-summary-limit-exclude-marks): Use completing-read to complete on
	marks in the current summary buffer.

2023-04-01  Andrew G Cohen  <cohen@andy.bu.edu>

	Track article while moving between gnus groups

	* lisp/gnus/gnus-sum.el (gnus-current-move-article): New variable to
	track article while moving.
	(gnus-summary-move-article): Set gnus-current-move-article when
	moving/copying/crossposting or respooling.

2023-04-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-31  Mattias Engdegård  <mattiase@acm.org>

	Make string-lessp vectorization safer

	Use memcpy for loading unaligned words on platforms where this can be
	done efficiently.  This guards against problems arising from future
	compiler autovectorization improvements that might cause instructions
	that require aligned addresses to be emitted, and should also work
	with an address sanitizer enabled.

	* src/fns.c (HAVE_FAST_UNALIGNED_ACCESS): Only define when optimizing.
	(load_unaligned_size_t): New.
	(Fstring_lessp): Use load_unaligned_size_t.
	* src/lisp.h (UNALIGNED_LOAD_SIZE): Remove now unused macro.

2023-03-31  Bob Rogers  <rogers@rgrjr.com>

	Allow old input to include continuation lines in shell-mode

	* lisp/shell.el (shell-get-old-input-include-continuation-lines): New
	defcustom (default nil).
	(shell-get-old-input): New function.  Like
	'comint-get-old-input-default' but include all continuation lines if
	'shell-get-old-input-include-continuation-lines' is non-nil.
	(shell-mode): Install shell-get-old-input.  (Bug#61069)

	* etc/NEWS: Advertise the new defcustom.

2023-03-31  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.

	* lisp/net/tramp.el (tramp-accept-process-output): Use `with-local-quit'.

2023-03-31  Yuan Fu  <casouri@gmail.com>

	Add treesit-node-get

	* doc/lispref/parsing.texi (Retrieving Nodes): Add manual entry.
	* lisp/treesit.el (treesit-node--get): New function.

2023-03-31  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-30  Justin Burkett  <justin@burkett.cc>

	Catch errors in kbd

	Fixes #346

2023-03-30  Po Lu  <luangruo@yahoo.com>

	Tweak outline cache stuff

	* src/sfntfont.c: Adjust font cache size constants.

2023-03-30  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_make_interpreter): New argument `fvar'.  Set
	axis count.
	(SCANCTRL): Implement selector bit 8.
	(GXAXIS): New instruction.
	(SFVTPV): Validate graphics state after changing freedom vector.
	(sfnt_line_to_vector): Implement `original'.
	(sfnt_move): Remove redundant division.
	(sfnt_interpret_run): Implement distortable font related GXAXIS
	instruction (0x91).
	(sfnt_vary_interpreter): Set naxis and norm_coords.
	(sfnt_make_test_interpreter, pushb_test_args, pushw_test_args)
	(sfnt_name_instruction, main): Adjust accordingly.
	* src/sfnt.h (struct sfnt_interpreter, PROTOTYPE):
	* src/sfntfont.c (sfntfont_setup_interpreter, sfntfont_open):
	Set up distortion information.

2023-03-30  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-29  Michael Albinus  <michael.albinus@gmx.de>

	Rework zeroconf integration into tramp-gvfs.el

	* lisp/net/tramp-gvfs.el (tramp-gvfs-enabled): Do not check for
	:system bus.
	(tramp-gvfs-mounttypes): New defconst.
	(tramp-gvfs-maybe-open-connection): Use it.
	(top): Call zeroconf only when :system bus is available.

2023-03-29  Mattias Engdegård  <mattiase@acm.org>

	Avoid unwind-protect without unwind forms in cl-letf

	* lisp/emacs-lisp/cl-macs.el (cl--letf): Use unwind-protect only if
	necessary, avoiding a warning.

2023-03-29  Mattias Engdegård  <mattiase@acm.org>

	Warn about unwind-protect without unwind forms

	`unwind-protect` without unwind forms is not just pointless but often
	indicates a mistake where the intended unwind part is misplaced, as in

	    (unwind-protect (progn PROT-FORMS UNWIND-FORMS))   ; oops

	or

	    (unwind-protect PROT-FORM) UNWIND-FORMS            ; also oops

	or entirely forgotten for that matter.  Warning about this makes
	sense, and the warning can always be silenced by removing the
	`unwind-protect` altogether if it shouldn't be there in the first
	place.

	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Implement
	warning.
	* etc/NEWS: Announce.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-test--with-suppressed-warnings): Add test case.

2023-03-29  Michael Albinus  <michael.albinus@gmx.de>

	Fix D-Bus event loop when executing a keyboard macro

	* lisp/net/dbus.el (dbus-call-method): Don't loop for events when
	`executing-kbd-macro' is non-nil.  (Bug#62018)

2023-03-29  Po Lu  <luangruo@yahoo.com>

	Improve rules for enumerating user fonts

	* doc/emacs/android.texi (Android Fonts): Document distortable
	font replacement rules.
	* src/sfntfont.c (sfnt_replace_fonts_p): New function.
	(sfnt_enum_font_1): Call it.

2023-03-29  dannyfreeman  <danny@dfreeman.email>

	Add clojure-ts-mode to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add
	clojure-ts-mode.  (Bug#62449)

2023-03-29  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.

2023-03-29  Po Lu  <luangruo@yahoo.com>

	Fix optimized move functions

	* src/sfnt.c (sfnt_move_x):
	(sfnt_move_y):
	(sfnt_move): Set N flags and don't forget to
	set N points too.

2023-03-29  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfntfont.c (sfntfont_setup_interpreter): Don't create
	interpreter for blatantly broken fonts.

2023-03-29  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	3965c65d5e2 ; * lisp/subr.el (read-char-choice): Fix last change.
	c1eac5b6586 Improve documentation of 'read-choice' and related symbols
	a8c9283e170 Revert "Comp fix calls to redefined primitives with op-byt...
	8b66d8abd01 Revert "* lisp/emacs-lisp/comp.el (comp-emit-set-call-sub...
	4ec4f614c71 ; Fix incompatibility in 'display-buffer-assq-regexp'
	ba3ade58f3b Skip ruby-ts-imenu-index test if needed
	9133446db87 Fix Eglot Tramp tests on EMBA
	5b351bc7fa9 * test/infra/Dockerfile.emba (emacs-gnustep): Instrument ...

2023-03-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfntfont.c (sfntfont_open): Avoid specifying redundant
	blends.

2023-03-29  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_validate_gs): Fix validation of projection
	vector.

2023-03-29  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Rehash which nodes should be treated as sexps

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Recognize smaller
	syntactic elements as sexps too (bug#62416).  Also do that for
	heredocs, regexps and symbol arrays.  But drop binary expressions
	(including assignments) since they led to non-intuitive behavior.

2023-03-28  Jim Porter  <jporterbugs@gmail.com>

	Avoid parsing some Eshell forms when performing completion

	During completion, we want to evaluate most Eshell forms
	(e.g. variable references), but skip others (e.g. globbing,
	subcommands).  For globbing, we want to pass the literal glob to
	Pcomplete so it can use the glob for selecting completion candidates.
	For subcommands (including Lisp forms), we especially want to avoid
	evaluation, since they can produce arbitrary side effects!  (Bug#50470)

	* lisp/eshell/esh-cmd.el (eshell-allow-commands): New variable...
	(eshell-commands-forbidden): New error...
	(eshell-named-command, eshell-lisp-command): ... use them.

	* lisp/eshell/em-cmpl.el (eshell-complete--eval-argument-form):
	Disallow command forms and handle errors ourselves.
	(eshell-complete-parse-arguments): Don't parse glob characters.

	* test/lisp/eshell/em-cmpl-tests.el
	(em-cmpl-test/parse-arguments/unevaluated-subcommand)
	(em-cmpl-test/parse-arguments/unevaluated-lisp-form)
	(em-cmpl-test/parse-arguments/unevaluated-inner-subcommand)
	(em-cmpl-test/file-completion/glob, em-cmpl-test/command-completion)
	(em-cmpl-test/subcommand-completion): New tests.
	(em-cmpl-test/parse-arguments/pipeline): Remove superfluous
	let-binding.
	(em-cmpl-test/file-completion/after-list): Use a list variable rather
	than a subexpression; the latter is no longer evaluated during
	completion.
	(em-cmpl-test/lisp-function-completion): Check "$(func)" syntax.

2023-03-28  Jim Porter  <jporterbugs@gmail.com>

	Simplify parsing subcommands slightly

	This mainly reduces some overly-deep indentation, but also fixes some
	minor issues with the "$<subcmd>" form: it unnecessarily added " >
	TEMP" (we already set this later via 'eshell-create-handles'), and it
	didn't properly unescape inner double quotes.

	* lisp/eshell/esh-cmd.el (eshell-parse-subcommand-argument): Simplify.

	* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Simplify and
	fix edge cases in "$<subcmd>".

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/quoted-interp-temp-cmd): Adjust test to check behavior
	of inner double quotes.

2023-03-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_vary_compound_glyph):
	* src/sfntfont.c (sfntfont_get_glyph)
	(sfntfont_get_glyph_outline): Avoid clobbering offset size flag
	when varying compound glyph.

2023-03-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_vary_simple_glyph, sfnt_vary_compound_glyph):
	Fix application of intermediate tuples.
	* src/sfntfont.c (sfntfont_open): Set xlfd name after applying
	distortion.

2023-03-28  Po Lu  <luangruo@yahoo.com>

	Correctly round lbearing values

	* src/sfnt.h (SFNT_ROUND_FIXED):
	* src/sfntfont.c (sfntfont_probe_widths):
	(sfntfont_measure_pcm): Round lbearing properly.

2023-03-28  Jim Porter  <jporterbugs@gmail.com>

	Fix expansion of globs that contain a ~USER reference

	This regressed from the fix to bug#28064, and was discovered here:
	<https://lists.gnu.org/archive/html/bug-gnu-emacs/2023-03/msg01744.html>.

	* lisp/eshell/em-dirs.el (eshell-expand-user-reference): Let FILE be a
	list, and move the implementation to...
	(eshell-expand-user-reference-1): ... here.

	* lisp/eshell/em-glob.el (eshell-add-glob-modifier): Remove special
	handling for expanding user references; it's better to keep it in
	"em-dirs.el".

2023-03-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfntfont.c (sfnt_open_tables): Fix typos in non-HarfBuzz
	code.

2023-03-28  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidterm.c (android_draw_image_glyph_string): Restore
	potentially clobbered GC clipping.
	* src/sfnt.c (sfnt_large_integer_add, sfnt_multiply_divide_round)
	(sfnt_mul_fixed_round): New functions.
	(sfnt_build_glyph_outline): Take unscaled glyph metrics.
	(sfnt_prepare_raster, sfnt_vary_simple_glyph)
	(sfnt_vary_compound_glyph, sfnt_vary_interpreter): Use rounding
	multiplication to scale deltas.
	(main): Adjust tests.
	* src/sfntfont.c (sfntfont_get_glyph_outline)
	(sfntfont_probe_widths, sfntfont_open, sfntfont_measure_pcm)
	(sfntfont_draw): More minor fixes to variable fonts.

2023-03-28  Ken Brown  <kbrown@cornell.edu>

	Enable ASLR for dynamic libraries on Cygwin

	This seems to avoid the fork failures described in etc/PROBLEMS
	("Fork failures in a build with native compilation").

	* lisp/treesit.el (treesit--install-language-grammar-1):
	* lisp/emacs-lisp/comp.el (native-comp-driver-options): Add the
	linker flag "-Wl,-dynamicbase" on Cygwin.

2023-03-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge from origin/emacs-29

	edc460e3b6c Fix accidental backward-incompatible change (bug#62417)
	cbef1422fe3 ruby-ts-mode: Fix/simplify Imenu index generation
	a0d5fba74a6 (ruby-ts--align-chain): Use 'equal' to check for an exact...

2023-03-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge from origin/emacs-29

	0337131bfa1 Update to Transient v0.3.7-218-g3dbb22a
	a8c23677d39 Update to Org 9.6.2
	45b16bfb496 Skip failing tests on Cygwin with native compilation (bug...
	8b4a494d8d4 Fix GNUSTEP tests on EMBA

	# Conflicts:
	#	test/infra/gitlab-ci.yml

2023-03-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge from origin/emacs-29

	b08bf828605 ; Fix :version of the new defcustom
	d941666d859 ; Fix last change
	e19b7da7b09 Add 'eww-default-download-directory'.
	564c26bdbeb ; Fix edebug spec for 'gv-define-simple-setter' (bug#62256)

2023-03-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge from origin/emacs-29

	8f42db010d1 Improve indenting "case" in Python
	c4d490490dc ; * test/src/fns-tests.el: Fix last change
	875e77a66a6 * test/infra/Dockerfile.emba (emacs-native-comp): Add zli...
	64a2b0d36fe Fix failure of fns-tests-collate-strings on Cygwin
	90fc6b987ad * lisp/savehist.el (savehist-save): Preserve shared struc...
	08fbc133756 Adapt Tramp manual
	accb3871668 Fix system time sampling on MS-Windows
	33d436eefa1 Fix treesit_ensure_parsed (bug#62333)
	d93a439846f * lisp/help-fns.el (find-lisp-object-file-name): Fix bug#...
	be8147c53f9 Improve "Bugs" in the Emacs manual

2023-03-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge commit '1bc9dfc5bee'

2023-03-27  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.

2023-03-27  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp error messages

	* lisp/net/tramp.el:
	* lisp/net/tramp-cmds.el:
	* lisp/net/tramp-crypt.el:
	* lisp/net/tramp-gvfs.el:
	* lisp/net/tramp-sh.el:
	* lisp/net/tramp-smb.el: Fix error messages.

2023-03-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_normalize_blend): Don't crash when axis
	variations are not present.

2023-03-27  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-27  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac (HAVE_OTF_GET_VARIATION_GLYPHS): Check for
	`hb_font_set_var_named_instance'.
	* src/sfnt.c (main): Update tests.
	* src/sfntfont-android.c (Fandroid_enumerate_fonts): Blacklist
	bad font.
	* src/sfntfont.c (struct sfnt_font_tables, struct sfnt_font_desc)
	(sfnt_decode_instance_name, sfnt_weight_descriptions)
	(sfnt_enum_font_1, sfntfont_list_1, sfntfont_desc_to_entity)
	(sfntfont_list, struct sfntfont_get_glyph_outline_dcontext)
	(sfntfont_get_glyph, sfntfont_get_glyph_outline)
	(struct sfnt_font_info, sfnt_close_tables, sfnt_open_tables)
	(sfntfont_open, sfntfont_measure_pcm, sfntfont_close)
	(sfntfont_draw, sfntfont_begin_hb_font, syms_of_sfntfont)
	(mark_sfntfont): Handle variable fonts correctly.

2023-03-27  Po Lu  <luangruo@yahoo.com>

	Refactor sfntfont.c

	* src/sfnt.c (sfnt_build_glyph_outline): Take scale, not head
	and pixel size.
	(sfnt_scale_metrics_to_pixel_size): Delete function.
	(sfnt_get_scale): New function.
	(main): Update tests.
	* src/sfnt.h (PROTOTYPE): Update prototypes.
	* src/sfntfont.c (struct sfnt_outline_cache)
	(sfntfont_get_glyph_outline, struct sfnt_font_info)
	(sfntfont_open): Save scale in font information and use it.
	(sfntfont_measure_instructed_pcm): Delete function.
	(sfntfont_measure_pcm): Make this the only ``measure pcm''
	function.
	(sfntfont_draw): Rely on sfntfont_get_glyph_outline for the
	scale.

2023-03-27  Po Lu  <luangruo@yahoo.com>

	Refactor sfntfont.c

	* src/sfntfont.c (struct sfnt_font_tables): New structure.
	(struct sfnt_font_desc): New field `tables'.
	(struct sfnt_font_info): New field `desc'.
	(sfntfont_setup_interpreter): Drop fd arguments and don't try to
	load interpreter tables.
	(sfnt_open_tables, sfnt_close_tables): New functions.
	(sfnt_reference_font_tables, sfnt_dereference_font_tables): New
	functions.
	(sfntfont_open, sfntfont_close): Implement in terms of those
	functions in order to share tables.

2023-03-27  Philip Kaludercic  <philipk@posteo.net>

	Have Xref inherit input method when reading identifiers

	* lisp/progmodes/xref.el (xref--read-identifier): Set
	INHERIT-INPUT-METHOD flag to non-nil.  (Bug#61299)

2023-03-27  Philip Kaludercic  <philip.kaludercic@fau.de>

	Add option to register packages as projects

	* lisp/emacs-lisp/package-vc.el (package-vc-register-as-project): Add
	new option.
	(project-remember-projects-under): Declare function for usage in
	'package-vc--clone'.
	(package-vc--clone): Respect 'package-vc-register-as-project'.
	* etc/NEWS: Document the feature.

2023-03-26  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.

2023-03-26  Michael Albinus  <michael.albinus@gmx.de>

	Add sanity check in tramp-gvfs.el

	* lisp/net/tramp-gvfs.el (tramp-gvfs-listmountableinfo)
	(tramp-gvfs-listmounttypes): New defconst.
	(tramp-gvfs-maybe-open-connection): Add sanity check whether GVFS
	backend is available.

2023-03-26  Ken Brown  <kbrown@cornell.edu>

	Implement list-system-processes on Cygwin

	* configure.ac (HAVE_PROCFS): Define to 1 on Cygwin.  (Bug#62462)

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	* lisp/term.el (term-mouse-paste) Do not treat as a yank command (bug#58608)

	This command sends the primary selection to the inferior process
	rather than inserting it into the buffer, and it's entirely up to the
	process as to whether anything at all gets inserted into the buffer as
	a result, so this is not a `yank' as far as Emacs is concerned.

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	Fix primary selection modification during `term-mouse-paste' (bug#58608)

	* lisp/term.el (term-mouse-paste): Prevent the primary selection from
	being changed in the process of sending it to the inferior process.

2023-03-26  Evgeni Kolev  <evgenysw@gmail.com>

	Fix 'go-ts-mode's incorrect docstring inserted for methods

	The docstring inserted with go-ts-mode's C-c C-d was incorrectly
	prefixed with the receiver "(myStruct).":

	    // (myStruct).act
	    func (m *myStruct) act () {...}

	The above docstring is not correct because the receiver "myStruct"
	should not be in the docstring.  This commit fixes the incorrect
	behavior.
	* lisp/progmodes/go-ts-mode.el (go-ts-mode--defun-name): New
	optional argument SKIP-PREFIX.
	(go-ts-mode-docstring): Call (go-ts-mode--defun-name t)
	instead of (treesit-defun-name).  (Bug#62371)

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	* src/buffer.c (mode-line-format): Reorder and reformat %-construct docs

	The original formatting dates back to the earliest commits.  It saved
	a few lines but was harder to follow.  As windows are typically taller
	now than the terminals of the time, this reformatting now makes better
	sense for readabiity.  See bug#57080.

	* doc/lispref/modes.texi: Order change for consistency.  Add index.

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	* doc/lispref/modes.texi: Improve docs for obsolete '%m' construct

	Bug #57080.

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	Improve docs for global-mode-string / %M construct

	* src/xdisp.c (global-mode-string): Update docstring.
	* doc/lispref/modes.texi: Update manual.

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	* src/buffer.c (mode-line-format): Document %o and %q constructs

	Missed from commit b0b02ca7f3e06d0f092df6f81babd1277bf93b0f.

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	* src/buffer.c (mode-line-format): Remove docs for obsolete %t construct

	This documentation had been previously removed in 1999 in [1]
	but was subsequently restored again in a different form in 2006
	in [2] as the construct was still supported on some systems.
	However it looks like it hasn't done what that documentation
	indicated since [3] in 2011, and the final remnant of this
	functionality was removed in [4] in 2013; so it seems clear that
	it's no longer supported and shouldn't be documented now.

	[1] commit 08de62001945d4dd32a3d6af44da05804cb296d5
	[2] commit dafbe726b89a36010f3f24bb1efe4ace0a5f7f0f
	[3] commit 05c652517317d10690aaf0a6aa0bc876382b9d82
	[4] commit 8549f9e89bd9288c4c709d183a5bf8f07dbeed3d

2023-03-26  Mattias Engdegård  <mattiase@acm.org>

	Use string-search instead of string-match[-p] when possible

	* lisp/progmodes/c-ts-mode.el
	(c-ts-mode--standalone-parent-skip-preproc):
	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-chain):
	* lisp/treesit.el (treesit-max-buffer-size)
	(treesit--check-manual-coverage):
	Use the much faster string-search when just searching for a substring.

2023-03-26  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-26  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_table_names): Add avar.
	(sfnt_read_glyph): Clear distortion fields.
	(sfnt_build_glyph_outline): Calculate the outline origin point.
	(sfnt_prepare_raster): Apply the origin point to the X axis
	offset.
	(sfnt_scale_metrics_to_pixel_size): New function.
	(sfnt_build_instructed_outline): Use instructed origin phantom
	point to determine the outline origin.
	(sfnt_compute_phantom_points): Apply origin and advance
	distortion.
	(struct sfnt_variation_axis, struct sfnt_instance)
	(struct sfnt_fvar_table, sfnt_read_fvar_table)
	(struct sfnt_gvar_table, sfnt_read_gvar_table)
	(sfnt_read_avar_table, struct sfnt_blend, sfnt_init_blend)
	(sfnt_free_blend, sfnt_normalize_blend, struct sfnt_tuple_header)
	(struct sfnt_gvar_glyph_header, sfnt_read_packed_deltas)
	(sfnt_compute_tuple_scale, sfnt_read_cvar_table)
	(sfnt_infer_deltas_1, sfnt_vary_simple_glyph, sfnt_infer_deltas)
	(sfnt_vary_glyph, sfnt_vary_compound_glyph)
	(sfnt_vary_interpreter): New functions.  Add structs to
	sfntfont.h.
	(struct sfnt_test_dcontext, sfnt_test_get_glyph, main): Test
	distortable font handling.

	* src/sfnt.h (SFNT_ENABLE_HINTING):
	(enum sfnt_table):
	(struct sfnt_glyph):
	(struct sfnt_glyph_outline):
	(struct sfnt_raster):
	(struct sfnt_default_uvs_table):
	(struct sfnt_unicode_value_range):
	(struct sfnt_nondefault_uvs_table):
	(struct sfnt_uvs_mapping):
	(struct sfnt_mapped_variation_selector_record):
	(struct sfnt_table_offset_rec):
	(struct sfnt_uvs_context):
	(struct sfnt_mapped_table):
	(struct sfnt_variation_axis):
	(struct sfnt_instance):
	(struct sfnt_fvar_table):
	(struct sfnt_short_frac_correspondence):
	(struct sfnt_short_frac_segment):
	(struct sfnt_avar_table):
	(struct sfnt_tuple_variation):
	(struct sfnt_cvar_table):
	(struct sfnt_gvar_table):
	(struct sfnt_blend):
	(struct sfnt_metrics_distortion):
	(PROTOTYPE): Update prototypes.

	* src/sfntfont.c (sfntfont_get_glyph_outline):
	(sfntfont_measure_pcm): Adjust calls.

2023-03-26  Andrew G Cohen  <cohen@andy.bu.edu>

	* lisp/gnus/nnselect.el (nnselect-request-thread): Correctly parse queries.

2023-03-25  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.

2023-03-25  Michael Albinus  <michael.albinus@gmx.de>

	Connection-local variables are applied in buffers visiting a remote file

	* etc/NEWS: Connection-local variables are applied in buffers
	visiting a remote file.

	* test/lisp/net/tramp-tests.el (tramp-test34-connection-local-variables):
	Fix test.

2023-03-25  Mattias Engdegård  <mattiase@acm.org>

	Fix shortdoc-tests when Unicode arrows can be displayed

	New shortdoc functions use Unicode arrows when possible, which caused
	some tests to fail if run under such circumstances.

	* test/lisp/emacs-lisp/shortdoc-tests.el
	(shortdoc-tests--to-ascii): New function.
	(shortdoc-function-examples-test)
	(shortdoc-help-fns-examples-function-test): Call it.

2023-03-25  Mattias Engdegård  <mattiase@acm.org>

	Generalize a LAP optimization rule

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Accept (stack-set 1) as equivalent to (discardN-preserve-tos 1) in a
	rule previously overlooked.  This is usually beneficial in code size
	and almost always shortens dynamic paths.

2023-03-24  Yuan Fu  <casouri@gmail.com>

	Switch buffer in Ftreesit_query_capture

	This way both #pred and #match predicates runs in the node's buffer by
	default.

	* src/treesit.c:
	(treesit_predicate_match): No need to switch buffer anymore.
	(Ftreesit_query_capture): Switch buffer.

	* doc/lispref/parsing.texi (Pattern Matching): Update manual.

2023-03-24  Yuan Fu  <casouri@gmail.com>

	Handle signals gracefully in tree-sitter query predicates

	Before this change, predicate functions can signal, which will cause
	Ftreesit_query_capture to skip freeing the query and cursor object.
	We make predicate functions return the signal data rather than
	directly signal.

	* src/treesit.c (treesit_predicate_capture_name_to_node)
	(treesit_predicate_capture_name_to_text)
	(treesit_predicate_equal)
	(treesit_predicate_match)
	(treesit_predicate_pred)
	(treesit_eval_predicates): Return signal rather than signaling
	directly.
	(Ftreesit_query_capture): Check for returned signal data.

2023-03-24  Yuan Fu  <casouri@gmail.com>

	Refactor Ftreesit_query_capture

	Refactor some part of Ftreesit_query_capture out into separate
	functions, to pave the way for other query-based functions.

	* src/treesit.c (treesit_resolve_node): New function.
	(treesit_initialize_query): New function.
	(Ftreesit_query_capture): Refactor some part into new functions.

2023-03-24  Eli Zaretskii  <eliz@gnu.org>

	Fix invocation of elixir LSP server on MS-Windows

	* lisp/progmodes/eglot.el (eglot-server-programs): Invoke the
	elixir-ls LSP via a batch file if using an MS-Windows shell.
	(Bug#62407)

2023-03-24  João Távora  <joaotavora@gmail.com>

	Allow users to customize eldoc buffer separator (bug#62029)

	* lisp/emacs-lisp/eldoc.el (eldoc-doc-buffer-separator): New
	variable.
	(eldoc--format-doc-buffer): Use it.

2023-03-24  João Távora  <joaotavora@gmail.com>

	Eldoc: slightly enhance meaning of :echo option

	Can now be a string to echo instead of a larger docstring.

	* lisp/emacs-lisp/eldoc.el (eldoc-documentation-functions):
	Describe :echo.
	(eldoc--echo-area-render): Allow :echo to be string.

2023-03-24  Mattias Engdegård  <mattiase@acm.org>

	* etc/NEWS: Mention that \x without hex digits is an error.

2023-03-24  João Távora  <joaotavora@gmail.com>

	Eldoc: fix bug recently introduced in "old" protocol

	In the "old" protocol, eldoc-documentation-strategy is actually used
	as the deprecated eldoc-documentation-function and it is itself the
	"origin" of the doc snippet to be displayed.

	* lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy): Fix.

2023-03-24  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-24  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_table_names): Add fvar, gvar, cvar.
	(sfnt_read_maxp_table): Call xmalloc, not malloc.
	(sfnt_read_simple_glyph): Avoid use-after-free if simple is
	invalid.
	(sfnt_fill_span): Fix max coverage.
	(sfnt_normalize_vector): Fail if magnitude is zero.
	(sfnt_measure_distance): Fix opcode order.
	(sfnt_dot_fix_14): Fix implementation.
	(struct sfnt_variation_axis, struct sfnt_instance)
	(struct sfnt_fvar_table, struct sfnt_gvar_table)
	(sfnt_read_fvar_table, sfnt_read_gvar_table, struct sfnt_blend)
	(sfnt_init_blend, sfnt_free_blend, sfnt_normalize_blend)
	(struct sfnt_tuple_header, struct sfnt_gvar_glyph_header)
	(sfnt_read_packed_points, sfnt_read_packed_deltas)
	(sfnt_compute_tuple_scale, sfnt_infer_deltas_1, sfnt_infer_deltas)
	(sfnt_vary_glyph): Add WIP variation glyph implementation.
	* src/sfnt.h (enum sfnt_table, struct sfnt_simple_glyph):
	Likewise.

2023-03-23  JD Smith  <jdtsmith@gmail.com>  (tiny change)

	Eglot: let user opt-in to plaintext LSP docs (bug#61373)

	* lisp/progmodes/eglot.el
	(eglot-prefer-plaintext): New variable.
	(eglot-client-capabilities): Use it.

2023-03-23  João Távora  <joaotavora@gmail.com>

	Eglot: don't send invisible text to Eldoc

	Eglot's rendering of Markdown is imperfect and based on gfm-view-mode.
	To make it slightly better, don't send invisible text in
	eglot-hover-eldoc-function.

	* lisp/progmodes/eglot.el (eglot--format-markup): Hide invisible text.

2023-03-23  João Távora  <joaotavora@gmail.com>

	Eglot: inform ElDoc about overly long 'hover' docs

	* lisp/progmodes/eglot.el (eglot-hover-eldoc-function): Include :echo
	  info in return value.

2023-03-23  João Távora  <joaotavora@gmail.com>

	ElDoc: rework rendering of echo area (bug#62029)

	Previously, the display function 'eldoc-display-in-echo-area' reused
	the same buffer as 'eldoc-display-in-doc-buffer', but that made it
	harder to render documentation items differently depending on the
	specific constraints of each display functions.

	Allow documentation-generating backends to pass an :echo-area property
	for tweaking the echo area display of certain documentation items.

	* lisp/emacs-lisp/eldoc.el (eldoc-documentation-functions): Update docstring.
	(eldoc--doc-buffer-docs): Remove.
	(eldoc--format-doc-buffer): Simplify.
	(eldoc--echo-area-render): New helper.
	(eldoc-display-in-echo-area): Use 'eldoc--echo-area-render'.

2023-03-23  João Távora  <joaotavora@gmail.com>

	ElDoc: remember origin backend in doc snippets (bug#62029)

	This lays groundwork for discriminating between different
	documentation providers in ElDoc display outlets, i.e. members
	of eldoc-display-functions

	* lisp/emacs-lisp/eldoc.el (eldoc--make-callback): Take extra origin arg.
	(eldoc-documentation-compose-1)
	(eldoc-documentation-compose-eagerly)
	(eldoc-documentation-default): Pass extra arg to eglot--make-callback.
	(eldoc--invoke-strategy): Rework.
	(eldoc-documentation-functions): Work docstring.

2023-03-23  João Távora  <joaotavora@gmail.com>

	Eglot: rework progress indicators

	Show progress indicator in Eglot's mode line by default.

	* lisp/progmodes/eglot.el (eglot-report-progress): Work docstring.
	(eglot--mode-line-format): Rework.
	(eglot-handle-notification $/progress): Rework.

2023-03-23  João Távora  <joaotavora@gmail.com>

	Eglot: more leniently handle 'window/showMessageRequest'

	Some servers mess up this message's arguments.

	* lisp/progmodes/eglot.el (eglot-handle-request): Fix.

2023-03-23  Michael Albinus  <michael.albinus@gmx.de>

	New user option remote-file-name-inhibit-auto-save

	* doc/misc/tramp.texi (Auto-save File Lock and Backup):
	Mention remote-file-name-inhibit-auto-save.
	(Frequently Asked Questions): Describe, how to suppress auto-save.

	* etc/NEWS: Add remote-file-name-inhibit-auto-save.

	* lisp/simple.el (remote-file-name-inhibit-auto-save): New defcustom.
	(auto-save-mode): Handle it.  (Bug#62260)

	* lisp/net/tramp-integration.el
	(tramp-set-connection-local-variables-for-buffer): Declare.
	(find-file-hook): Add `tramp-set-connection-local-variables-for-buffer'.

2023-03-23  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-eglot): Install wget.

2023-03-23  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Add heex-ts-mode to eglot-server-programs (bug#62327)

	The same language server is used for elixir and heex modes.

	* lisp/progmodes/eglot.el (eglot-server-programs): Add heex-ts-mode.

2023-03-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	6de00e4df99 ; Fix xref-match's :version since the default value did c...
	db355b420b6 Use libgccjit-10-dev on EMBA
	84963956535 * lisp/outline.el (outline--fix-buttons-after-change): Ad...
	3d3bbaace69 Align concatenated strings to the first sibling in c-ts-mode
	f856468e457 Only fill the current paragraph in c-ts-common--fill-bloc...
	df669c5a11f Add missing indent rule for c-ts-mode

2023-03-22  Sean Whitton  <spwhitton@spwhitton.name>

	Make icomplete-tidy-shadowed-file-names into a defcustom

	lisp/icomplete.el (icomplete-tidy-shadowed-file-names): Make variable
	into a defcustom.

2023-03-22  Felician Nemeth  <felician.nemeth@gmail.com>

	Subject: send clientInfo during the initialize request

	'clientInfo' arrived in LSP 3.15.0.  LSP clients can use clientInfo to
	identify themselves in the initialize request.  This is generally
	useful for various debugging tasks.

	* lisp/progmodes/eglot.el (eglot--connect): Send clientInfo.
	Author:

2023-03-22  Eli Zaretskii  <eliz@gnu.org>

	Fix compilation of lib-src/movemail

	* lib-src/movemail.c: Include timespec.h.  Reported by Andreas
	Schwab <schwab@linux-m68k.org>.

2023-03-22  Michael Albinus  <michael.albinus@gmx.de>

	Add platform for Eglot tests on EMBA

	* test/infra/Dockerfile.emba (emacs-eglot): New image.

	* test/infra/gitlab-ci.yml (.eglot-template): New template.
	(build-image-eglot, test-eglot): New jobs.

2023-03-22  Robert Pluim  <rpluim@gmail.com>

	Make eglot--clangd-version more robust

	* test/lisp/progmodes/eglot-tests.el (eglot--clangd-version): Check
	for 'version ' followed by a combination of numbers and dots to
	extract the clangd version.

2023-03-22  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	8b6a0de964d Improve docstring of treesit-parent-while (bug#62301)
	35648a86730 ; Delete accidental leftover '()' Eglot function
	47d8e4b0d38 Eglot: report window/workDoneProgress capability to langu...
	4a7a0c9a9f5 * lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Impr...
	4a6eefb93a5 Expand defvar-keymap documentation
	7a1272168af * lisp/treesit.el (treesit-end-of-defun): Guard arg again...
	263d6c38539 Comp fix calls to redefined primitives with op-bytecode (b...
	6bf441ff115 Warn package authors away from keymap-unset with REMOVE
	786de66ec3c Comment out jobs on EMBA
	eed240bc022 Improve defvar-keymap docstring.

2023-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	(describe-function): Load file for `...' references

	To fix bug#62300, we do the same for `...' as we already did for \[...]

	* lisp/help-fns.el (describe-function-1): Look for `...'
	references in addition to key substitution markup.

2023-03-21  Paul Eggert  <eggert@cs.ucla.edu>

	Sleep less in update-game-score

	This is mostly to avoid interface hassles with time/srand/rand.
	* lib-src/update-game-score.c (main): Don’t use ‘srand’ or ‘time’.
	(lock_file): Don’t sleep if we unlocked the lock file.  When
	sleeping, always just sleep 1 s.  This avoids the need for calling
	‘time’ and ‘rand’, the utility of which was dubious anyway.

2023-03-21  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid backwards clock in movemail timestamps

	* lib-src/movemail.c (mbx_delimit_begin): Use ‘current_timespec’
	instead of ‘time’ to generate the user-visible timestamp.
	This works around the minor glitch caused by glibc bug 30200
	<https://sourceware.org/bugzilla/show_bug.cgi?id=30200>.

2023-03-21  Michael Albinus  <michael.albinus@gmx.de>

	Invert variable alias declaration in Tramp

	* lisp/net/tramp-sh.el (tramp-use-ssh-controlmaster-options):
	Invert alias declaration.  (Bug#62295, Bug#62329)

2023-03-21  João Távora  <joaotavora@gmail.com>

	Skip Eglot test if using very old clangd

	* test/lisp/progmodes/eglot-tests.el (eglot--clangd-version): New
	helper.
	(eglot-test-diagnostic-tags-unnecessary-code): Use it.

2023-03-21  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp backward compatibility

	* lisp/net/tramp-gvfs.el (while-no-input-ignore-events):
	Add `dbus-event' for older Emacs versions.

2023-03-20  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-20  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac: Add support for HarfBuzz on Android.
	* java/INSTALL: Document where to get Emacs with HarfBuzz.
	* lisp/subr.el (overriding-text-conversion-style, y-or-n-p):
	Correctly set text conversion style if y-or-n-p is called inside
	the minibuffer.
	* src/sfnt.c (sfnt_read_cmap_format_8)
	(sfnt_read_cmap_format_12): Fix typos.
	(sfnt_read_24, sfnt_read_cmap_format_14): New function.
	(sfnt_read_cmap_table_1, sfnt_read_cmap_table): Handle format 14
	cmap tables.
	(sfnt_read_default_uvs_table, sfnt_read_nondefault_uvs_table)
	(sfnt_compare_table_offsets, sfnt_create_uvs_context)
	(sfnt_free_uvs_context, sfnt_compare_uvs_mapping)
	(sfnt_variation_glyph_for_char, sfnt_map_table, sfnt_unmap_table)
	(sfnt_read_table, sfnt_test_uvs): New functions.
	(main): Add UVS tests.
	* src/sfnt.h (struct sfnt_cmap_format_14)
	(struct sfnt_variation_selector_record)
	(struct sfnt_default_uvs_table, struct sfnt_unicode_value_range)
	(struct sfnt_nondefault_uvs_table, struct sfnt_uvs_mapping)
	(struct sfnt_mapped_variation_selector_record)
	(struct sfnt_table_offset_rec, struct sfnt_uvs_context)
	(struct sfnt_mapped_table): New structures.  Update prototypes.
	* src/sfntfont-android.c (android_sfntfont_driver): Register
	HarfBuzz callbacks where required.
	* src/sfntfont.c (sfntfont_select_cmap): Look for a format 14
	table.  Save it in new arg FORMAT14.
	(sfntfont_read_cmap): Adjust accordingly.
	(struct sfnt_font_info): New field `uvs'.  New fields `hb_font',
	`fd' and `directory'.
	(sfntfont_open): Open uvs context.  Under HarfBuzz, don't close
	the fd or subtable, but save them in the font info instead.
	(sfntfont_close): Free UVS context.  Close font fd and table
	directory and HarfBuzz font.
	(sfntfont_draw): Handle case where s->padding_p.
	(sfntfont_get_variation_glyphs): New function.
	(sfntfont_unmap_blob, sfntfont_get_font_table)
	(sfntfont_begin_hb_font): New functions.
	* src/sfntfont.h: Update prototypes.
	* src/textconv.c (Fset_text_conversion_style): Fix doc string.

2023-03-20  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	b7f03333551 Improve warning about changing the string returned by sym...
	e62f8b0239d Fix visiting XBM/XPM files when 'c-ts-mode' is active
	94d1c81cf07 * lisp/mpc.el (mpc-format): Fix oversight in commit 48b6c...
	a4d97811ed4 Bail early from eglot--apply-text-edits if nothing to do
	61d571760b3 ; Clarify in-code commentary of eglot--after-change
	5bbbd70f56e Improve ergonomics of Eglot's inlay hints
	c3a543123ab Protect against too large size of 'recent-keys' vector
	231190b37f8 * lisp/net/tramp.el (tramp-yn-prompt-regexp): Fix regexp.
	0bebd0e5f09 ; Remove 'build-module' and 'html-manual' directories fro...
	6674c362ad9 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	829e5dfabea Update to Org 9.6.1-48-g92471e
	e84f878e19a ; * admin/notes/tree-sitter/starter-guide: Update starter...
	ea0949853f8 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	11592bcfda6 ; * lisp/nxml/xmltok.el (xmltok-scan-attributes): Fix las...
	e388a77cf0b ; Minor copyedits of recent changes in ELisp reference ma...
	33a26703689 ; Minor fixes in recent Eglot changes
	d2cf1386fa4 ; * doc/misc/eglot.texi (Eglot Commands): Improve indexing.
	b75e489362b ; Again correct node reference casing in doc/misc/eglot.texi
	a55d2edc5a9 ; Remove overly verbose commentary
	22a70451f34 Merge confusing duplicate sections on commands in Eglot m...
	3293f939882 Don't take over mouse-1 binding on Eglot diagnostics (bug...
	013057e3512 ; Prefer "language server" to "LSP server" in Eglot manual
	94a21c88647 * lisp/progmodes/eglot.el (eglot--connect): Improve Tramp...
	0eddfa28ebd Avoid slowdowns in xmltok-scan-attributes
	647c6bf2a6c ; * test/lisp/abbrev-tests.el (abbrev--possibly-save-test...
	531f8f7103a ; * admin/git-bisect-start: Update failing commits

	# Conflicts:
	#	admin/notes/tree-sitter/build-module/batch.sh
	#	admin/notes/tree-sitter/build-module/build.sh

2023-03-20  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	aedb9e3ec37 Add tests for Bug#62207
	faee8d50738 ; Fix 'make-obsolete-variable' forms

2023-03-20  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	ea87c54f359 ; * lisp/subr.el (setq-local): Add missing period (bug#62...
	90362f87d58 ; Correct last commit, downcase node reference
	38067f05b92 Enhance section about troubleshooting in Eglot manual.
	6f82596b490 Fix Eglot's snippet insertion to follow the manual
	c54bda15e35 Reset abbrevs-changed after saving abbrevs (bug#62208)
	e8cee15f780 ; Fix markup in previous change
	e4a7d0cd6ea Document `keymap-unset' in lispref
	bb3e0ded9eb Don't add a key binding when REMOVE is non-nil
	a4a9ffdd80a Fix the documentation of various aspects of adding Xref h...
	a2222b9a9bf ; Minor wording fix in ELisp reference manual
	5cf1de683b2 Fix python-fill-paragraph problems on filling strings (bu...
	7385c991dff Also exempt eglot-inlay-hints-mode from desktop.el's fumb...
	1961bdb52ed ; Add WebDAV entry to index in Tramp manual
	dfb36d36230 Refer to EWW instead of w3 and w3m
	9d3fdf7e0d4 Fix Eglot's command generation for code actions

	# Conflicts:
	#	etc/NEWS

2023-03-20  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	028f1102738 Fix quoting of font-family in 'hfy-family'
	4cb8a850b08 ; Tweak doc/misc/eglot.texi
	d5d4959ed7d Document how to construct JSONRPC arrays in Eglot manual
	078cf512eef * test/infra/Dockerfile.emba: Use debian:bullseye.
	61adb44318a * configure.ac: Fix native comp compatibility check (bug#...
	d814c249f44 * test/infra/Dockerfile.emba: Install clangd.
	27edd7f88cb Remove 'package-vc--query-spec'
	39fea115515 Do not store :lisp-dir in package descriptors
	168165178f3 Use 'package-vc-selected-packages' to store package specs

2023-03-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	(textsec-bidi-controls-suspicious-p): Minor tweak

	* lisp/international/textsec.el (textsec-bidi-controls-suspicious-p):
	Don't assume point-min==1 (and point-min is marginally more
	efficient, to boot).

2023-03-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/frame.el (handle-move-frame): Fix corner case error

2023-03-19  Michael Albinus  <michael.albinus@gmx.de>

	Rename tramp-use-ssh-controlmaster-options to tramp-use-connection-share

	* doc/misc/tramp.texi (Ssh setup): Use tramp-use-connection-share.
	Describe its settings for PuTTY.
	(Remote processes): Use tramp-use-connection-share.

	* etc/NEWS: Renamed user option tramp-use-connection-share.

	* lisp/net/tramp-integration.el
	(tramp-compile-disable-ssh-controlmaster-options):
	Use `tramp-use-connection-share'.

	* lisp/net/tramp-sh.el (tramp-use-connection-share):
	Rename from `tramp-use-ssh-controlmaster-options'.  Make it a
	defvaralias to `tramp-use-ssh-controlmaster-options'.
	(tramp-ssh-controlmaster-options): Adapt docstring.
	(tramp-methods) <plink, plinkx, pscp, psftp>: Adapt.
	(tramp-ssh-controlmaster-options): Add plink implementation.

2023-03-19  Jim Porter  <jporterbugs@gmail.com>

	Don't over-normalize file names starting with "~" in Eshell

	Previously, this would call 'expand-file-name' on the file name, but
	that normalizes the value, turning something like "~/." into
	"/home/user".  As a result, Pcomplete didn't work for dotfiles after
	"~/" (bug#28064).

	* lisp/eshell/em-dirs.el (eshell-expand-user-reference): New
	function...
	(eshell-expand-user-reference): ... use it.

2023-03-19  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-18  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsView.java (onAttachedToWindow): Send
	measured width and height in exposures again.

2023-03-18  Michael Albinus  <michael.albinus@gmx.de>

	Prefix Tramp internal process properties with "tramp-".

	* lisp/net/tramp.el (tramp-get-process, tramp-message)
	(tramp-handle-make-process, tramp-handle-file-notify-valid-p)
	(tramp-process-actions, tramp-accept-process-output)
	(tramp-process-sentinel, tramp-read-passwd)
	(tramp-interrupt-process, tramp-signal-process):
	* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
	* lisp/net/tramp-cmds.el (tramp-cleanup-connection):
	* lisp/net/tramp-crypt.el (tramp-crypt-maybe-open-connection):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch)
	(tramp-gvfs-monitor-process-filter)
	(tramp-gvfs-maybe-open-connection):
	* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
	(tramp-sh-handle-file-notify-add-watch)
	(tramp-sh-gio-monitor-process-filter)
	(tramp-sh-inotifywait-process-filter)
	(tramp-barf-if-no-shell-prompt, tramp-maybe-open-connection):
	* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
	(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl)
	(tramp-smb-maybe-open-connection):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection)
	(tramp-sudoedit-send-command): Prefix internal process properties
	with "tramp-".

2023-03-18  Alan Mackenzie  <acm@muc.de>

	CC Mode: Eliminate duplicate function c-list-of-strings

	Replace it with the existing c-string-list-p.  Also put an autoload cookie in
	front of c-string-list-p so that it will not be signaled as undefined by
	loaddefs.el.

	lisp/progmodes/cc-vars.el (c-string-list-p): Make this autoload.
	(c-list-of-strings): Remove.
	(c-font-lock-extra-types, c++-font-lock-extra-types)
	(objc-font-lock-extra-types, java-font-lock-extra-types)
	(idl-font-lock-extra-types, pike-font-lock-extra-types): In the autoload
	cookies, replace c-list-of-strings with c-string-list-p.

2023-03-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-18  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix 'find-ls-option-default-ls' for BSD/MacOS (bug#62096)

	* lisp/find-dired.el (find-gnu-find-p): New variable to determine
	if "find" is a GNU find.
	(find-ls-option-default-ls): Use 'find-gnu-find-p' and adapt to a
	value that works with the default "find" on *BSD and Darwin/MacOS.
	Tested on OpenBSD and MacOS.

2023-03-18  Po Lu  <luangruo@yahoo.com>

	Remove extraneous debugging code

	* src/androidterm.c (handle_one_android_event): Don't log expose
	events.

2023-03-18  Po Lu  <luangruo@yahoo.com>

	Work around pselect lossage on Android

	* src/android.c (android_run_select_thread): New flag.  Use it
	rather than the rc of pselect and errno to determine whether or
	not it has been interrupted.
	(android_handle_sigusr1): Set said flag.

2023-03-18  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsView.java (EmacsView)
	(prepareForLayout): New function.  Call this prior to mapping
	the view.
	(onGlobalLayout): New function.  Register as global layout
	listener.
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow)
	(notifyContentRectPosition): New function.  Use specified
	xPosition and yPosition when reporting the offsets of children
	of the root window.
	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
	(registerWindow): Specify activity launch bounds if necessary.
	* src/androidterm.c (handle_one_android_event): Send
	MOVE_FRAME_EVENT where necessary.

2023-03-17  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-17  Po Lu  <luangruo@yahoo.com>

	Include more information in Android bug reports

	* src/androidfns.c (Fx_server_vendor, Fx_server_version): New
	functions.
	(syms_of_androidfns): Define new functions.
	* src/androidterm.c (android_set_build_fingerprint)
	(syms_of_androidterm): Set new variable
	Vandroid_build_manufacturer.
	* src/xfns.c (Fx_server_vendor, Fx_server_version): Update doc
	strings.

2023-03-17  Po Lu  <luangruo@yahoo.com>

	Fix WINDOWSNT build of fileio.c and image.c

	* src/fileio.c (emacs_fd_to_int): Don't define on WINDOWSNT.
	* src/image.c (image_create_bitmap_from_data): Don't abort if
	!defined HAVE_ANDROID.

2023-03-17  Mattias Engdegård  <mattiase@acm.org>

	* lisp/subr.el (string-prefix-p, string-suffix-p): Not pure.

	The `ignore-case` arguments prevent these functions from being pure.

2023-03-17  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac:
	* m4/ndk-build.m4 (ndk_INIT):
	(ndk_LATE): Avoid AC_REQUIRE magic.

2023-03-17  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-17  Jim Porter  <jporterbugs@gmail.com>

	Simplify usage of 'while' forms in Eshell's iterative evaluation

	Now, 'eshell-do-eval' rewrites 'while' forms to let-bind variables for
	the command and test bodies.  This means that external code, such as
	command rewriting hooks, no longer has to worry about this, making it
	easier to pass "normal" Lisp forms to 'eshell-do-eval' (bug#61954).

	* lisp/eshell/esh-cmd.el (eshell-command-body, eshell-test-body): No
	longer used outside of 'eshell-do-eval', so rename to...
	(eshell--command-body, eshell--test-body): ... these.
	(Command evaluation macros): Remove obsolete description about 'if'
	and 'while' forms.
	(eshell-rewrite-for-command, eshell-structure-basic-command): Remove
	'eshell-command-body' and 'eshell-test-body'.
	(eshell-do-eval): Reimplement handling of 'while' forms.

2023-03-17  Jim Porter  <jporterbugs@gmail.com>

	Simplify how Eshell's iterative evaluation handles 'if' forms

	The previous implementation used 'eshell-test-body' and
	'eshell-command-body' to track the condition and the then/else forms,
	but those special variables are only needed for looping.  'if' only
	evaluates each form once at most (bug#61954).

	* lisp/eshell/esh-cmd.el (Command evaluation macros): Remove 'if' from
	the notes about 'eshell-test-body' and 'eshell-command-body'.
	(eshell-do-eval): Reimplement evaluation of 'if' forms.
	(eshell-eval-command): Don't let-bind 'eshell-command-body' and
	'eshell-test-body'; they're no longer needed here.

2023-03-17  Jim Porter  <jporterbugs@gmail.com>

	Simplify iteration in Eshell for loops

	The previous code fixed an issue in Eshell's iterative evaluation
	where deferred commands caused an infinite loop (see bug#12571).
	However, with the fix to unwinding let forms in 'eshell-do-eval' (see
	bug#59469), we can just write this code as we normally would
	(bug#61954).

	* lisp/eshell/esh-cmd.el (eshell-rewrite-for-command): Simplify.

2023-03-17  Po Lu  <luangruo@yahoo.com>

	Improve radio button appearance in Android menus

	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu):
	New field `lastGroupId'.
	(Item): New field `isRadio'.
	(addItem): New arg `isRadio'.
	(inflateMenuItems): Apply an empty radio button group if
	required.
	* src/androidmenu.c (android_init_emacs_context_menu): Adjust
	accordingly.
	(android_menu_show): Likewise.

2023-03-17  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsView.java (cancelPopupMenu): Dismiss
	context menu correctly.
	(isOpaque): New function.
	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java: Make
	consumer list public.

2023-03-16  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-16  Michael Albinus  <michael.albinus@gmx.de>

	Fix regression in Tramp (bug#62194)

	* lisp/net/tramp.el (tramp-handle-make-process):
	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
	(tramp-sh-handle-file-notify-add-watch)
	(tramp-maybe-open-connection): Don't set process property
	`shared-socket'.  (Bug#62194)

2023-03-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/frame.el (android-detect-mouse):
	* lisp/term/android-win.el (android-get-connection): Add
	function declarations.

2023-03-16  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Fix elixir-ts-mode.elc warning (bug#62155)

	* lisp/progmodes/elixir-ts-mode.el: Only require heex-ts-mode once
	elixir-ts-mode loads to avoid calling (treesit-ready-p 'heex)
	during byte-compilation.

2023-03-16  Po Lu  <luangruo@yahoo.com>

	Make ANDROID_CC and SDK_BUILD_TOOLS precious variables

	* configure.ac (AUTO_DEPEND, ANDROID_STUBIFY, ANDROID_LDFLAGS):
	* lib/Makefile.in (ANDROID_CFLAGS, ANDROID_BUILD_CFLAGS)
	(ALL_CFLAGS):
	* lib/gnulib.mk.in (AM_DEFAULT_VERBOSITY):
	* msdos/sed1v2.inp:
	* msdos/sedlibmk.inp:
	* src/Makefile.in (ANDROID_OBJ, EMACS_CFLAGS): Make those
	variables precious.  Rename ANDROID_CFLAGS substitution to
	ANDROID_BUILD_CFLAGS.

2023-03-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* nt/mingw-cfg.site: Suppress build of gnulib printf.

2023-03-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsDocumentsProvider.java (queryRoots): Add
	icon to document root.

2023-03-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/loadup.el (current-load-list): Set to empty load list
	after startup.
	* src/lread.c (build_load_history): Revert earlier changes.

2023-03-16  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-15  Michael Albinus  <michael.albinus@gmx.de>

	Minor Tramp cleanup

	* lisp/net/tramp-sh.el (tramp-run-test): Add VEC argument.
	(tramp-sh-handle-file-executable-p)
	(tramp-sh-handle-file-readable-p)
	(tramp-sh-handle-file-directory-p)
	(tramp-sh-handle-file-writable-p): Adapt callees.

2023-03-15  Philip Kaludercic  <philipk@posteo.net>

	Always display the "Archive" column in the package list

	* lisp/emacs-lisp/package.el (package-menu-mode): Always display
	column.
	(package-menu--print-info-simple): Always provide column information.

	Since NonGNU ELPA has been added to the default value of
	'package-archives', this condition is practically never satisfied,
	meaning the code can be simplified.

2023-03-15  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac: Improve portability.

2023-03-15  João Távora  <joaotavora@gmail.com>

	Unbreak Eglot (as a :core ELPA package) on Emacs 26.3

	Because of the lack of regular automated testing on a CI system, many
	recent developments in and outside Eglot had wrecked this
	compatibility.

	The GitHub CI available at https://github.com/joaotavora/eglot/actions
	can be used to run this combination of eglot.el + eglot-tests.el on
	26.3, 27.2 and 28.2.

	* etc/EGLOT-NEWS: Mention new version.

	* lisp/progmodes/eglot.el (eglot--reporter-update): New
	compatibility shim.
	(eglot-handle-notification $/progress): Use it.
	(eglot-handle-notification textDocument/publishDiagnostics): Use
	two-arg assoc-delete-all.
	(Version): Bump to 1.13.

	* test/lisp/progmodes/eglot-tests.el
	(Commentary): Tweak.
	(tramp): Tweak require;
	(eglot-test-diagnostic-tags-unnecessary-code): Use
	jsonrpc--encode.
	(eglot--call-with-tramp-test): Adjust dependency on
	ert-remote-temporary-file-directory.
	(eglot-test-rust-on-type-formatting)
	(eglot-test-project-wide-diagnostics-rust-analyzer): Wait longer.

2023-03-15  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-15  Robert Pluim  <rpluim@gmail.com>

	Fix typos in Android port

	* src/fileio.c (Finsert_file_contents):
	* src/window.c (replace_buffer_in_windows): Call Fboundp, not
	boundp.

2023-03-15  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* cross/Makefile.in (lib/gnulib.mk): Edit out
	build-aux stuff.
	* m4/ndk-build.m4: Also look for cross ranlib.

2023-03-15  Po Lu  <luangruo@yahoo.com>

	Port to systems without endian.h

	* lib-src/asset-directory-tool.c (main_2): Port to systems
	without htole32.

2023-03-15  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac (XCONFIGURE): Disable NS.
	* cross/Makefile.in (lib-src/config.h):

	(lib/libgnu.a):
	(src/android-emacs): Port sed invocation to Mac OS without GNU
	sed.

2023-03-15  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/commands.texi (Misc Events): Document variable
	`disable-inhibit-text-conversion'.
	* java/org/gnu/emacs/EmacsDialog.java (display1): Try an
	activity that is certain to be focused first.
	* lisp/touch-screen.el (touch-screen-track-tap)
	(touch-screen-track-drag): Bind
	`disable-inhibit-text-conversion'.
	* src/keyboard.c (read_key_sequence): Only disable text
	conversion if an actual function or numeric key is found in the
	key sequence.
	(syms_of_keyboard): New variable
	`disable-inhibit-text-conversion'.
	* src/lread.c (read_filtered_event): Check new variable.
	* src/textconv.c (textconv_query): Remove unused label.

2023-03-15  João Távora  <joaotavora@gmail.com>

	More fixes to Eglot tests

	* test/lisp/progmodes/eglot-tests.el
	(eglot-test-project-wide-diagnostics-rust-analyzer): Make even more
	robust.
	(eglot--wait-for): flush-standard-output doesn't exist in older
	Emacsen.
	(eglot-test-basic-diagnostics): Increase timeout.

2023-03-15  Po Lu  <luangruo@yahoo.com>

	Omit gnulib modules added by Android port on MinGW

	* nt/gnulib-cfg.mk: Omit new gnulib modules.

2023-03-14  João Távora  <joaotavora@gmail.com>

	Improve debug output of Eglot tests

	* test/lisp/progmodes/eglot-tests.el
	(eglot--test-message): New helper.
	(eglot--call-with-fixture): Use it.
	(eglot--cleanup-after-test): Use it.
	(eglot--wait-for): Use it.  Clean mistaken docstring.

2023-03-14  João Távora  <joaotavora@gmail.com>

	Robustify some Eglot tests involving rust-analyzer

	* eglot-tests.el (eglot-test-diagnostics-tags-unnecessary-code): Use
	clangd instead of rust-analyzer.
	(eglot-test-project-wide-diagnostics-rust-analyzer): Don't count
	diagnostics, just check they come from unvisited file.
	(eglot-test-rust-analyzer-watches-files): Wait a bit more time..

2023-03-14  João Távora  <joaotavora@gmail.com>

	Check before using bleeding edge ERT sym in Eglot tests

	Else, these tests won't run on Emacs versions that Eglot runs on, like
	26.3.

	* test/lisp/progmodes/eglot-tests.el
	(eglot--call-with-tramp-test):  check for
	ert-remote-temporary-file-directory before using.

2023-03-14  João Távora  <joaotavora@gmail.com>

	Better jsonrpc.el workaround for debug-on-error check

	Some extensions, notably ert.el, set `debug-on-error' to non-nil,
	which makes it hard to test the behavior catching of the Elisp
	error when processing a request and replying to the endpoint with
	an JSONRPC-error.

	The previous workaround relied on requiring lisp/emacs-lisp/ert.el in
	lisp/jsonrpc.el, which really doesn't make sense.

	This is better.  For the single test of that behavior, set a new
	variable, jsonrpc-inhibit-debug-on-error.

	Not only is this cleaner, it allows us to use ert.el's useful
	debug-on-error setting.

	* lisp/jsonrpc.el (ert): Don't require it.
	(jsonrpc-inhibit-debug-on-error): New variable.
	(jsonrpc-connection-receive): Use it.
	(Package-Requires): Bump to 1.0.17

	* test/lisp/jsonrpc-tests.el (signals-an--32603-JSONRPC-error):
	Bind jsonrpc-inhibit-debug-on-error.

2023-03-14  João Távora  <joaotavora@gmail.com>

	Merge from origin/emacs-29

	4b6f2a7028b * lisp/progmodes/xref.el: Bump the version.
	24c8b146bbc * lisp/progmodes/xref.el (xref--xref-buffer-mode): Split ...
	46f9e53c3da Fix import of keys in buffer created by epa-search-keys
	36ade0704e1 Fix connection-local variables settings
	e759905d2e0 ; Minor copyedits in EGLOT-NEWS
	ba22a2c346b Bump Eglot version to 1.12
	54e123a5055 Update Eglot's manual about eglot-workspace-configuration
	812597f864c ; * lisp/novice.el (disabled-command-function): Add note ...
	4a603c98499 Amend last Eglot commit (bug#62065)
	b916ec88b2f Make eglot-ensure's post-command-hook run a bit later (bu...
	1c05175c21a Fix display of disabled-command help text
	3ce37db9882 Remove mention of old dotted-list reader quirk from manual
	42335c2c1f1 Fix value history shown for 'gc-cons-percentage'
	fffbce29349 TRework fix for bug#62106
	8bc12a27362 ; * etc/NEWS: Fix last change.
	2ac068d294e ; Remove 'ns-popup-font-panel' from documentation
	5bc32d008fb Add missing indentation rule for rust-ts-mode (Bug#62109)
	0404924930d ; One more improvement to ELisp "internals" appendix.
	c857775ca61 Fix bug#62106
	0fedbfa6a9d ; Minor improvement of documentation of GC thresholds
	b0b24ad2fc5 Add missing rust-ts-mode highlight query for scoped_type_...
	c0cf69f7a17 Make "case" keyword a dedenter in Python
	db178517ce7 ; * lisp/arc-mode.el (w32-get-console-codepage): Declare.
	157a91b54be Fix decoding non-ASCII file names in zip archives on MS-W...
	4803f972047 Fix copying binary files from zip archives
	679f528b953 Skip ruby-ts-syntax-propertize-symbol unless treesitter i...
	081cc7aa8e0 ; * doc/misc/eglot.texi (Project-specific configuration):...
	1de513a29fa Fix enums and unions appearing as structs in c-ts-base-mo...
	ecdfd584a52 ruby-ts-mode: Fine-tune s-p-f on symbols (bug#62086)
	29228e24f20 python-info-dedenter-opening-block-positions: Fix to supp...
	01b65d442ad Autoload Eglot helper function eglot--debbugs-or-github-bu...
	50a3559c5a7 Add chapter on advanced server configuration to Eglot manual
	2e7460c2315 ; * lisp/progmodes/java-ts-mode.el (treesit-query-capture...
	255eeee0e06 java-ts-mode: detect if text_block is supported.
	6fe9075ff38 Revert workaround introduced in Bug#56271
	f175141aead Fix searching for end of string in python-nav-end-of-stat...

	# Conflicts:
	#	etc/NEWS

2023-03-14  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* lisp/minibuffer.el (minibuffer-setup-on-screen-keyboard):
	Handle cases where last-event-frame is a kbd macro.
	* src/keyboard.c (lispy_function_keys): Remove duplicates.

2023-03-14  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp tests

	* test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion):
	Fix test.
	(tramp-test45-asynchronous-requests): Mark it :unstable.

2023-03-14  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp processes to accept output over the same socket

	* lisp/net/tramp.el (tramp-accept-process-output): Don't use TIMEOUT
	anymore, default it to 0.  When the connection uses a shared
	socket possibly, accept also the output from other processes over
	the same connection.  (Bug#61350)
	(tramp-handle-file-notify-rm-watch, tramp-action-process-alive)
	(tramp-action-out-of-band, tramp-process-one-action)
	(tramp-interrupt-process):
	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
	* lisp/net/tramp-smb.el (tramp-smb-action-get-acl)
	(tramp-smb-action-set-acl, tramp-smb-wait-for-output):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-action-sudo):
	Adapt callees.

	* lisp/net/tramp.el (tramp-handle-make-process):
	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
	(tramp-sh-handle-file-notify-add-watch)
	(tramp-maybe-open-connection): Set `shared-socket' property.

2023-03-14  Robert Pluim  <rpluim@gmail.com>

	* lisp/server.el (server-eval-at): Improve docstring

2023-03-14  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* msdos/sed1v2.inp:
	* msdos/sed3v2.inp:
	* msdos/sedlibcf.inp:
	* msdos/sedlibmk.inp: Update for Android port and new Gnulib
	modules.

2023-03-14  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsWindow.java (figureChange): Detect
	mice on up events as well.
	(onSomeKindOfMotionEvent): Work past framework bug.
	* src/androidterm.c (android_perform_conversion_query):
	* src/textconv.c (textconv_query):
	* src/textconv.h (TEXTCONV_SKIP_ACTIVE_REGION): Remove unused
	code.

2023-03-14  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Windowing): Document how to
	display dialogs when Emacs is in the background.
	* java/org/gnu/emacs/EmacsDialog.java (display1): Use system
	dialogs if possible.

2023-03-14  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-13  Alan Mackenzie  <acm@muc.de>

	CC Mode: Allow lists of strings as safe values for *-font-lock-extra-types

	* lisp/progmodes/cc-vars.el (c-list-of-strings): New function.
	(c-font-lock-extra-types, c++-font-lock-extra-types)
	(objc-font-lock-extra-types, java-font-lock-extra-types)
	(idl-font-lock-extra-types, pike-font-lock-extra-types): Add a :safe entry
	into each of these defcustoms for c-list-of-string.
	(Top level): Add an autoload entry for each of the above.

2023-03-13  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* etc/NEWS: Announce new option.
	* lisp/menu-bar.el (menu-bar-close-window): New option.
	(kill-this-buffer):
	(kill-this-buffer-enabled-p): Adjust accordingly.
	* src/keyboard.c (lispy_function_keys): Add more silly
	keys.

2023-03-13  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_check_string, android_build_string):
	Reduce consing when building menu bar strings.

2023-03-13  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Startup): Document changes to
	emacsclient wrapper.
	* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity)
	(startEmacsClient): Open EmacsActivity if the service is not
	running.
	* java/org/gnu/emacs/EmacsService.java (onCreate):
	* java/org/gnu/emacs/EmacsThread.java (EmacsThread, run): Pass
	any file to open to Emacs.
	* lisp/term/android-win.el (handle-args-function): Implement.

2023-03-13  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/image.c (image_create_bitmap_from_file, image_find_image_fd)
	(close_android_fd, slurp_file): Return and use `struct
	android_fd_or_asset' on Android.
	(xbm_load, xpm_load, pbm_load, png_load_body, jpeg_load_body)
	(webp_load, svg_load): Adjust accordingly.

2023-03-13  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-12  Mattias Engdegård  <mattiase@acm.org>

	Repair and speed up safe-copy-tree and make it internal (bug#61962)

	There is no particular requirement for safe-copy-tree so let's make it
	internal for now.  The new implementation is faster and more correct.

	* doc/lispref/lists.texi (Building Lists):
	* etc/NEWS:  Remove doc and announcement.
	* lisp/subr.el (safe-copy-tree--seen, safe-copy-tree--1)
	(safe-copy-tree): Remove old version.
	* lisp/emacs-lisp/bytecomp.el (bytecomp--copy-tree-seen)
	(bytecomp--copy-tree-1, bytecomp--copy-tree): Add new version.
	(byte-compile-initial-macro-environment): Use it.
	* test/lisp/subr-tests.el (subr--safe-copy-tree):
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp--copy-tree):
	Move and improve tests.

2023-03-12  Michael Albinus  <michael.albinus@gmx.de>

	Make Tramp file name completion more quiet for all backends

	* lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions):
	* lisp/net/tramp-archive.el
	(tramp-archive-handle-file-name-all-completions):
	* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-name-all-completions):
	* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions):
	* lisp/net/tramp-smb.el (tramp-smb-handle-file-name-all-completions):
	* lisp/net/tramp-sudoedit.el
	(tramp-sudoedit-handle-file-name-all-completions):
	Return nil when DIRECTORY is missing.  (Bug#61890)

2023-03-12  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Add elixir-ts-mode (Bug#61996)

	* etc/NEWS: Mention the new mode.
	* lisp/progmodes/elixir-ts-mode.el: New file.
	* test/lisp/progmodes/elixir-ts-mode-tests.el: New file.
	* test/lisp/progmodes/elixir-ts-mode-resources/indent.erts: New file.
	* admin/notes/tree-sitter/build-module/batch.sh:
	* admin/notes/tree-sitter/build-module/build.sh: Add Elixir support.
	* lisp/progmodes/eglot.el (eglot-server-programs): Add elixir-ts-mode.

2023-03-12  Wilhelm H Kirschbaum  <wkirschbaum@gmail.com>

	Add heex-ts-mode (Bug#61996)

	* etc/NEWS: Mention the new mode.
	* lisp/progmodes/heex-ts-mode.el: New file.
	* test/lisp/progmodes/heex-ts-mode-tests.el: New file.
	* test/lisp/progmodes/heex-ts-mode-resources/indent.erts: New file.
	* admin/notes/tree-sitter/build-module/batch.sh:
	* admin/notes/tree-sitter/build-module/build.sh: Add HEEx support.

2023-03-12  Daniel Martín  <mardani29@yahoo.es>

	Fix pluralization in shortdoc-help-fns-examples-function

	* lisp/emacs-lisp/shortdoc.el (shortdoc-help-fns-examples-function):
	Implement a better logic to pluralize "Example", by counting the
	number of arrow characters in the example string. (Bug#61877)
	* test/lisp/emacs-lisp/shortdoc-tests.el
	(shortdoc-help-fns-examples-function-test): Add a test.

2023-03-12  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_get_screen_width):
	(android_get_screen_height):
	(android_get_mm_width):
	(android_get_mm_height):
	(android_detect_mouse): Correctly handle Java exceptions.

2023-03-12  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-12  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_check_if_event):
	* src/androidgui.h: New function.
	* src/androidterm.c (android_event_is_for_frame): New function.
	(android_reset_conversion): Free and unqueue all text conversion
	events for the given frame.

2023-03-12  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/androidterm.c (NATIVE_NAME, JNICALL)
	(android_build_extracted_text, android_update_selection): Use
	0-based indices for Android buffer positions.  Also, report
	surrounding text relative to the region, not to the cursor.
	* src/textconv.c (textconv_query): Accept new values of
	position.
	(really_set_composing_text): Use ephemeral last point.

2023-03-12  Daniel Martín  <mardani29@yahoo.es>

	Add functions to query Emacs Lisp examples registered in shortdoc

	* lisp/emacs-lisp/shortdoc.el (shortdoc--display-function): Add
	a new shortdoc-example text property so that ELisp examples can
	be searched for later.
	(shortdoc--insert-group-in-buffer): New function extracted from
	the buffer insertion code in 'shortdoc-display-group'.
	(shortdoc-display-group): Implement in terms of
	'shortdoc--insert-group-in-buffer'.
	(shortdoc-function-examples): New function that returns an alist
	of Emacs Lisp examples from shortdoc.
	(shortdoc-help-fns-examples-function): New function to insert
	Emacs Lisp function examples in *Help* buffers, if added to
	'help-fns-describe-function-functions'.
	*
	test/lisp/emacs-lisp/shortdoc-tests.el (shortdoc-function-examples-test):
	Test it.
	* doc/emacs/help.texi (Name Help): Document in the user manual.
	* doc/lispref/help.texi (Documentation Groups): Document it.
	* etc/NEWS: Advertise it. (Bug#61877)

2023-03-12  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-12  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity)
	(onCancel): New function.
	(displayFailureDialog): Handle dialog cancellation.
	* src/sfntfont.c (sfnt_parse_languages): Look for SLNG tag if
	DLNG is not present.

2023-03-12  Po Lu  <luangruo@yahoo.com>

	Add Super modifier support to Android port

	* src/androidgui.h (enum android_modifier_mask): New modifier
	ANDROID_SUPER_MASK.
	* src/androidterm.c (android_android_to_emacs_modifiers)
	(android_emacs_to_android_modifiers): Add new modifier.

2023-03-12  Jim Porter  <jporterbugs@gmail.com>

	Add support for completing special references (e.g. buffers) in Eshell

	* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Handle
	special references.

	* lisp/eshell/em-arg.el (eshell-parse-special-reference): Ensure point
	is just after the "#<" when incomplete, and handle backslash escapes
	more thoroughly.
	(eshell-complete-special-reference): New function.

	* test/lisp/eshell/esh-arg-tests.el
	(esh-arg-test/special-reference/default)
	(esh-arg-test/special-reference/buffer)
	(esh-arg-test/special-reference/special):
	* test/lisp/eshell/em-cmpl-tests.el
	(em-cmpl-test/special-ref-completion/type)
	(em-cmpl-test/special-ref-completion/implicit-buffer)
	(em-cmpl-test/special-ref-completion/buffer): New tests.

2023-03-12  Po Lu  <luangruo@yahoo.com>

	Fix crash during androidterm init

	* src/androidterm.c (syms_of_androidterm): Initialize
	Vandroid_build_fingerprint in case GC happens.

2023-03-12  Po Lu  <luangruo@yahoo.com>

	Clean up emacs-module.c

	* src/emacs-module.c (MODULE_HANDLE_NONLOCAL_EXIT)
	(module_make_global_ref, module_free_global_ref)
	(module_make_function, module_get_function_finalizer)
	(module_set_function_finalizer, module_make_interactive)
	(module_funcall, module_intern, module_type_of)
	(module_extract_integer, module_make_integer, module_extract_float)
	(module_make_float, module_copy_string_contents)
	(module_make_string, module_make_unibyte_string)
	(module_make_user_ptr, module_get_user_ptr, module_set_user_ptr)
	(module_get_user_finalizer, module_set_user_finalizer)
	(module_vec_set, module_vec_get, module_vec_size)
	(module_process_input, module_extract_time, module_make_time)
	(module_extract_big_integer, module_make_big_integer)
	(module_open_channel, module_reset_handlerlist): Adjust as
	recommended by Paul Eggert <eggert@cs.ucla.edu>.

2023-03-12  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac: Take option `--with-shared-user-id' and give it
	to AndroidManifest.xml.in.
	* java/AndroidManifest.xml.in: Substitute that into the
	application info.
	* java/INSTALL (BUILDING WITH A SHARED USER ID): New section.

2023-03-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-11  Po Lu  <luangruo@yahoo.com>

	Improve default value of `with_mailutils' on Android

	* configure.ac: Default to off on Android.

2023-03-11  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac (HAVE_MAILUTILS, with_mailutils)
	(ANDROID_SDK_8_OR_EARLIER, XCONFIGURE): Fix POP and mailutils
	configuration on Android.
	* java/Makefile.in:
	* src/callproc.c (syms_of_callproc): Avoid using built-in
	movemail when --with-mailutils.

2023-03-11  Mattias Engdegård  <mattiase@acm.org>

	Remove recursion from character escape handling in reader

	This cures a C stack overflow when reading certain long (crafted)
	strings (bug#62039) and improves performance of reading escaped
	characters in character and string literals.
	Reported by Bruno Haible.

	* src/lread.c (invalid_escape_syntax_error): New.
	(read_escape): Rename to...
	(read_char_escape): ...this.  Remove recursion.  Pass read-ahead char
	as argument.  Improve code performance and clarity.
	(read_char_literal, read_string_literal): Update calls.
	* test/src/lread-tests.el (lread-char-modifiers)
	(lread-many-modifiers): Add test cases.

2023-03-11  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_resolve_handle)
	(android_resolve_handle2): Don't perform checking done by
	CheckJNI by default.
	(android_copy_area): Check for errors here because CopyArea can
	perform a lot of consing.
	(android_define_cursor): Remove redundant code.

2023-03-11  Po Lu  <luangruo@yahoo.com>

	Fix problems with the menu bar on large screen Android devices

	* java/org/gnu/emacs/EmacsActivity.java (onContextMenuClosed):
	Process submenu closing normally if it happens more than 300 ms
	after a submenu item was selected.
	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu)
	(onMenuItemClick, display1): Give `wasSubmenuSelected' different
	values depending on how the submenu was selected.

2023-03-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-11  Po Lu  <luangruo@yahoo.com>

	Don't use GCC extensions in src/emacs-module.c

	* configure.ac: Default modules to on.  Remove check for
	__attribute__((cleanup)).  However, keep the new `ifavailable'
	value for systems without dlopen.

	* src/emacs-module.c (MODULE_HANDLE_NONLOCAL_EXIT): Don't rely
	on cleanup attribute and correctly reset handlerlist upon
	longjmp.
	(MODULE_INTERNAL_CLEANUP): New macro.
	(module_make_global_ref, module_free_global_ref)
	(module_make_function, module_get_function_finalizer)
	(module_set_function_finalizer, module_make_interactive)
	(module_funcall, module_intern, module_type_of)
	(module_extract_integer, module_make_integer, module_extract_float)
	(module_make_float, module_copy_string_contents)
	(module_make_string, module_make_unibyte_string)
	(module_make_user_ptr, module_get_user_ptr, module_set_user_ptr)
	(module_get_user_finalizer, module_set_user_finalizer)
	(module_vec_set, module_vec_get, module_vec_size)
	(module_process_input, module_extract_time, module_make_time)
	(module_extract_big_integer, module_make_big_integer)
	(module_open_channel): Call MODULE_INTERNAL_CLEANUP prior to
	returning.

2023-03-11  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

	Run admin/merge-gnulib along with the following change:
	* admin/merge-gnulib (GNULIB_MODULES): Replace ‘time’ with
	‘time-h’, adjusting to a recent renaming in Gnulib modules.
	Emacs doesn’t appear to need the new Gnulib ‘time’ module.

2023-03-11  Po Lu  <luangruo@yahoo.com>

	Implement hourglass cursor on Android

	* lisp/term/android-win.el (x-pointer-arrow, x-pointer-left-ptr)
	(x-pointer-left-side, x-pointer-sb-h-double-arrow)
	(x-pointer-sb-v-double-arrow, x-pointer-watch, x-pointer-xterm)
	(x-pointer-invisible): New constants.
	* src/androidterm.c (android_show_hourglass)
	(android_hide_hourglass): New functions.
	(android_toggle_visible_pointer, android_define_frame_cursor):
	Define or don't define hourglass cursor if x->hourglass.
	(android_redisplay_interface): Add new functions.
	* src/androidterm.h (struct android_output): New field
	`hourglass'.

2023-03-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/profiler.c: Keep track of the discarded counts

	When the table overflows and wh evict entries, keep track of those
	counts in a global counter so we can see the proportion of
	samples this represents.

	* src/profiler.c (struct profiler_log): Add `discarded` field.
	(evict_lower_half): Change arg to be `struct profiler_log`.
	Transfer counts to the new `discarded` field.
	(record_backtrace): Change arg to be `struct profiler_log`.
	(add_sample): Adjust call accordingly.
	(export_log): Add `discarded` counts to the result.
	Onle add the GC and `discarded` counts if they're non-zero.
	(syms_of_profiler): Define new symbol `Discarded Samples`.

2023-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/profiler.c: Share more code between CPU and Memory profilers

	* src/profiler.c (struct profiler_log): New type.
	(make_log): Use it.
	(cpu, memory): New vars to replace cpu_log, memory_log, cpu_gc_count,
	and mem_gc_count.
	(add_sample): New function, extracted from `handle_profiler_signal`.
	(handle_profiler_signal, malloc_probe): Use it.
	(Fprofiler_cpu_start, Fprofiler_memory_start): Adjust call to `make_log`.
	(export_log): New function, extracted from `Fprofiler_cpu_log`.
	(Fprofiler_cpu_log, Fprofiler_memory_log): Use it.
	(syms_of_profiler, syms_of_profiler_for_pdumper): Adjust to new `cpu`
	and `memory` vars.

2023-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/profiler.c: Try and fix occasional assertion failures

	Apparently the (>= match imatch) test fails sometimes in `profiler.el`.
	Not sure where this comes from, but this patch should remove one
	possible source.

	* src/profiler.c (Fprofiler_cpu_log, Fprofiler_memory_log):
	Change the special Automatic_GC backtrace to make it clear that it's
	a *sibling* of the call tree (i.e. it's at the (its own) root).
	(malloc_probe): Obey `size` when incrementing the gc_counter.

2023-03-10  Eli Zaretskii  <eliz@gnu.org>

	src/profiler.c: Keep track of allocations during GC

	Cargo-cult the `cpu_gc_count` code to `memory_gc_count`.

	* src/profiler.c (mem_gc_count): New var.
	(Fprofiler_memory_start): Initialize it.
	(Fprofiler_memory_log): Increment it.
	(Fprofiler_memory_log): Use it.

2023-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/gud.el (gud-minor-menu-map): Fix thinko in last change

2023-03-10  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Windowing): Document how to
	pass multimedia keys to the system.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	function.
	* java/org/gnu/emacs/EmacsView.java (onKeyDown, onKeyMultiple)
	(onKeyUp): Check that function.
	* java/org/gnu/emacs/EmacsWindow.java (defineCursor): Handle
	cases where cursor is NULL.
	* src/android.c (NATIVE_NAME): New function.
	* src/androidfns.c (syms_of_androidfns): New variable.
	* src/keyboard.c (lispy_function_keys): Add volume keys.

2023-03-10  Robert Pluim  <rpluim@gmail.com>

	Improve thing-at-point email detection

	* lisp/thingatpt.el (thing-at-point-email-regexp): Allow numbers at
	the start of the user portion, and disallow '.' at the start.  Also
	disallow '.' at the start of the domain portion.
	* test/lisp/thingatpt-tests.el (thing-at-point-test-data): Add various
	email tests.

	Bug#61519

2023-03-10  Po Lu  <luangruo@yahoo.com>

	* java/org/gnu/emacs/EmacsCursor.java: New file.

2023-03-10  Po Lu  <luangruo@yahoo.com>

	Implement mouse cursors on Android 7.0 and later

	* java/org/gnu/emacs/EmacsWindow.java (defineCursor): New
	function.
	* src/android.c (struct android_emacs_cursor): New struct.
	(android_init_emacs_cursor): New function.
	(JNICALL): Call it.
	(android_create_font_cursor, android_define_cursor)
	(android_free_cursor): New functions.
	* src/android.h (enum android_handle_type): Add cursor handle
	type.
	* src/androidfns.c (Fx_create_frame, android_create_tip_frame)
	(enum mouse_cursor, struct mouse_cursor_types, mouse_cursor_types)
	(struct mouse_cursor_data, android_set_mouse_color)
	(syms_of_androidfns):
	* src/androidgui.h (enum android_cursor_shape):
	* src/androidterm.c (make_invisible_cursor)
	(android_toggle_invisible_pointer, android_free_frame_resources)
	(android_define_frame_cursor):
	* src/androidterm.h (struct android_display_info)
	(struct android_output): Port mouse cursor code over from X.

2023-03-10  Po Lu  <luangruo@yahoo.com>

	Avoid using Linux sysfs APIs to access battery state on Android

	* lisp/battery.el (battery-status-function): Don't look for /sys,
	/proc* on Android.  Explain why.

2023-03-10  Po Lu  <luangruo@yahoo.com>

	Port Android battery status to Android 4.4 and earlier

	* java/org/gnu/emacs/EmacsService.java (EmacsService)
	(queryBattery19): New function.
	(queryBattery): Call it on old systems.  Also, return AC line
	status and temperature.
	* lisp/battery.el (battery-android): Implement more format
	directives.
	* src/android.c (android_query_battery): Handle new status
	fields.
	* src/android.h (struct android_battery_state): Add `plugged'
	and `temperature'.
	* src/androidfns.c (Fandroid_query_battery): Return new fields.

2023-03-10  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	gud.el: Bring back the pseudo-tool-bar in text frames (bug#62041)

	commit 8bb5c1bfec0929f2ba419e1c503f5acc01c336c2 accidentally
	threw away the pseudo-tool-bar implemented in the text frames'
	menu-bar of gud-minor-mode buffers.
	Bring it back, and while we're at it, improve it so it also works
	right when you have both text and GUI frames.

	Also fix a misunderstanding in last change (`gud-mode-map` does need
	to have a Gud menu, because `gud-mode` buffers already have it by
	virtue of being in `gud-minor-mode` as well).

	* lisp/progmodes/gud.el (gud-text-menu-bar-map): New keymap.
	(gud-menu-mode-map): Rename from `gud-shared-mode-map`.
	(gud-menu-map): Adjust accordingly.
	(gud-minor-mode-map): Use them.
	(gud-mode-map): Don't inherit from the shared/menu keymap.

2023-03-09  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-09  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_destroy_handle): Handle OOM errors in
	android_destroy_handle.

2023-03-09  Manuel Giraud  <manuel@ledu-giraud.fr>

	Use a face for DocView SVG

	* lisp/doc-view.el (doc-view-svg-face): New face for SVG images.
	(doc-view-insert-image): Use it.  (Bug#61816)

2023-03-09  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix out of sync counters in image-dired

	* lisp/image/image-dired.el (image-dired-delete-char): Update
	thumbnails counter upon deletion.
	(image-dired--update-header-line): Compute thumbnail index
	dynamically.
	(image-dired-insert-thumbnail): Remove now unused image-number
	text property.  (Bug#61922)

2023-03-09  Po Lu  <luangruo@yahoo.com>

	Fix menu and popup race conditions on Android

	* java/org/gnu/emacs/EmacsActivity.java (onContextMenuClosed):
	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu)
	(onMenuItemClick, run):
	* java/org/gnu/emacs/EmacsDialog.java (EmacsDialog, onClick)
	(createDialog, onDismiss): Take menu event serial, and pass it
	along in context menu events.
	* java/org/gnu/emacs/EmacsNative.java (sendContextMenu): New
	argument.
	* src/android.c (sendContextMenu): Pass serial number in event.

	* src/androidgui.h (struct android_menu_event): New field
	`menu_event_serial'.
	* src/androidmenu.c (FIND_METHOD_STATIC)
	(android_init_emacs_context_menu): Adjust method declarations.
	(android_menu_show, android_dialog_show):
	* src/androidterm.c (handle_one_android_event): Expect serial in
	context menu events.
	* src/androidterm.h: Update prototypes.

2023-03-09  Po Lu  <luangruo@yahoo.com>

	Fix webp test for Android

	* configure.ac (HAVE_WEBP): Disable WebPGetInfo check when
	REALLY_ANDROID.

2023-03-09  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-09  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/debug.sh (is_root): Port to android versions which don't
	support `chmod +x'.
	* src/android.c (android_content_name_p): Disable before API
	level 19.

2023-03-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	7e1012765c4 Fix libwebp check for some webp installations
	c2ca009da4c Avoid potential infloop
	34c14430e9d Don't misindent 'else:' after 'if re.match:' in Python
	8a2a554192a * Make sure `default-directory' exists before spawning pr...
	1862e7eb7ef Fix sed expression in install-etc make target
	c8ec0017cb9 Avoid using bash in the emacsclient desktop file
	a588937094f Fix documentation of the 'line-height' text property
	971ded31c4f Add 'declare' specs to with- and without-restriction

2023-03-09  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu)
	(addItem): New argument `tooltip'.

2023-03-09  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_build_string): Convert the text to
	UTF-16, and create the Java string using that.
	(android_build_jstring): Update comment.
	* src/androidmenu.c (android_init_emacs_context_menu): Add
	String argument to `addItem'.
	(android_menu_show): Correctly pass help strings in regular menu
	items.
	* src/sfnt.c (_sfnt_swap16, _sfnt_swap32): Avoid reserved names.

2023-03-09  Po Lu  <luangruo@yahoo.com>

	Fix crash upon restoring desktop

	* src/android.c (android_set_input_focus): Don't call method on
	window using service class.

2023-03-09  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-09  Sean Whitton  <spwhitton@spwhitton.name>

	server-eval-at: Signal more specific condition on unreadable result

	* lisp/server.el (server-return-invalid-read-syntax): New error
	signal.
	(server-eval-at): Re-signal invalid-read-syntax as
	server-return-invalid-read-syntax (bug#61658).

2023-03-08  Jim Porter  <jporterbugs@gmail.com>

	Fix Pcompletion of "tar" when using unrecognized arguments

	Previously, arguments to tar like "--warning=no-timestamp" would cause
	Pcompletion to hang (bug#58921).

	This simplifies the logic flow by moving all the cases for "--"
	arguments inside the THEN form of '(if (pcomplete-match "^--" 0)', and
	for all "-" arguments inside the ELSE form.

	* lisp/pcmpl-gnu.el (pcmpl-gnu--tar-long-options): New variable.
	(pcomplete/tar): Properly handle completion of arguments that look
	like "--ARG=", even if they're not recognized by this function.

2023-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	gud.el: Fix bug#62041

	Add a new `gud-shared-mode-map` where we put the bindings
	shared between `gud-minor-mode-map` and `gud-mode-map`.

	* lisp/progmodes/gud.el (gud-shared-mode-map): New keymap.
	(gud-mode-map, gud-minor-mode-map): Use it as parent.
	(gud-menu-map): Put the menu in that new keymap.
	(gud-speedbar-buttons, gdb-script-font-lock-syntactic-face)
	(gdb-script-indent-line): Skip obsolete face variables.

2023-03-08  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/fileio.c (Fcopy_file): On Android, ignore ENOSYS and
	ENOTSUP when restoring file times, as the system call used is
	supported by many kernels.

2023-03-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-08  Po Lu  <luangruo@yahoo.com>

	Fix occasional crash

	* src/androidterm.c (android_build_extracted_text): Return NULL
	if text class not initialized.
	(android_update_selection): Check that EXTRACTED is not NULL.

2023-03-08  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android File System): Document what
	`temp~unlinked' means in the temporary files directory.
	* java/org/gnu/emacs/EmacsService.java (updateExtractedText):
	New function.
	* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
	Ask the input method nicely to not display the extracted text
	UI.
	* src/android.c (struct android_emacs_service): New method
	`updateExtractedText'.
	(android_hack_asset_fd_fallback): Improve naming convention.
	Fix typo.
	(android_init_emacs_service): Add new method.
	(android_update_extracted_text): New function.
	(android_open_asset): Fix typo.
	* src/androidgui.h: Update prototypes.
	* src/androidterm.c (struct android_get_extracted_text_context):
	New field `flags'.
	(android_get_extracted_text): Set flags on the frame's output
	data.
	(android_build_extracted_text): New function.
	(getExtractedText): Move out class structures.
	(android_update_selection): Send updates to extracted text if
	the input method asked for them.
	(android_reset_conversion): Clear extracted text flags.
	* src/androidterm.h (struct android_output): New fields for
	storing extracted text data.

2023-03-08  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	f9b7913656f Fix empty line indentation in c-ts-mode (bug#61997)
	90504f9d898 Fix tree-sitter indent preset prev-line (bug#61998)
	ed3bab3cc72 Revert 'forward-sentence-default-function' to return poin...
	bfe62b10413 ; * etc/NEWS: Fix typos.
	3c1693d08b0 Fix Elisp code injection vulnerability in emacsclient-mai...
	ab417c8a6ee Fix problem with debuginfod queries in "M-x gdb"

	# Conflicts:
	#	etc/NEWS

2023-03-08  Po Lu  <luangruo@yahoo.com>

	Fix double free upon encountering invalid font

	* src/sfnt.c (sfnt_read_cmap_table): Don't allocate too big
	data.  Also, free elements of (*data), not offsets into data
	itself.

2023-03-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-07  Alan Mackenzie  <acm@muc.de>

	* test/lisp/subr-tests.el (subr--safe-copy-tree): New tests for safe-copy-tree

2023-03-07  Alan Mackenzie  <acm@muc.de>

	safe-copy-tree.  Correct mistakes from earlier patch.

	* lisp/emacs-lisp/bytecomp.el (compile-defun): Remove unintended change.

	* lisp/subr.el (safe-copy-tree--seen): Correct grammatical error in doc
	string.
	(safe-copy-tree): Delete hash table at end of function.

	* doc/lispref/lists.texi (Building Lists): Add an "@end defun" line.

2023-03-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-07  Po Lu  <luangruo@yahoo.com>

	Save build timestamps in Android builds

	* java/Makefile.in (install_temp/assets/build_info): New
	rule.:(emacs.apk-in): Depend on that file.
	* lisp/version.el (android-read-build-system)
	(android-read-build-time): New functions.
	(emacs-build-system, emacs-build-time): Use those functions on
	Android, as dumping is done after installation on Android.
	* src/fileio.c (Finsert_file_contents):
	* src/window.c (replace_buffer_in_windows): Don't call functions
	if they are not defined, which can happen during loadup.

2023-03-07  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsWindow.java (onSomeKindOfMotionEvent):
	Dismiss splurious LeaveNotify events from button presses.
	* src/android.c (android_change_window_attributes)
	(android_change_gc, android_set_clip_rectangles)
	(android_reparent_window, android_clear_window, android_map_window)
	(android_unmap_window, android_resize_window, android_move_window)
	(android_swap_buffers, android_fill_rectangle, android_copy_area)
	(android_fill_polygon, android_draw_rectangle, android_draw_point)
	(android_draw_line, android_clear_area, android_bell)
	(android_set_input_focus, android_raise_window)
	(android_lower_window, android_set_dont_focus_on_map)
	(android_set_dont_accept_focus, android_get_keysym_name)
	(android_toggle_on_screen_keyboard, android_restart_emacs)
	(android_display_toast, android_update_ic, android_reset_ic)
	(android_set_fullscreen): Optimize by specifying the class
	explicitly when calling a method.

2023-03-07  Alan Mackenzie  <acm@muc.de>

	eval-and-compile: Strip symbol positions for eval but not for compile.

	This fixes bug #61962.

	* lisp/subr.el (safe-copy-tree): New function.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): Amend
	the entry for eval-and-compile to use safe-copy-tree and
	byte-run-strip-symbol-positions for the eval part.

	* doc/lispref/lists.texi (Building Lists): Document safe-copy-tree.

	* etc/NEWS: Note the new function safe-copy-tree.

2023-03-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-07  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/lread.c (lread_fd, file_tell, infile, skip_dyn_bytes)
	(skip_dyn_eof, readbyte_from_stdio, safe_to_load_version)
	(close_infile_unwind, close_file_unwind_android_fd): New
	function.
	(Fload, Flocate_file_internal, openp): New argument PLATFORM.
	All callers changed.
	(skip_lazy_string): Add optimized versions of various functions
	for accessing Android assets.

2023-03-07  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	bd07cec8442 Fix regression in Fido mode (bug#62015)
	0e3c7ac13da * Fix `emacs-lisp-native-compile-and-load' for (bug#61917)
	4a7e657389a * lisp/emacs-lisp/comp.el (comp-prettyformat-insn): Fix (...
	8a8a994cfab Revert "Fix configuration of webp libraries"
	de4277af009 Fix configuration of webp libraries

2023-03-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-06  Vibhav Pant  <vibhavp@gmail.com>

	Don't modify interactive closures destructively (Bug#60974).

	* lisp/emacs-lisp/cconv.el (cconv-convert): When form is an
	interactive lambda form, don't destructively modify it, as it might be
	a constant literal. Instead, create a new list with the relevant
	place(s) changed.

	* test/lisp/emacs-lisp/cconv-tests.el
	(cconv-tests-interactive-form-modify-bug60974): New test.

2023-03-06  Michael Albinus  <michael.albinus@gmx.de>

	Add tramp-use-ssh-controlmaster-options value `suppress'.

	* doc/misc/tramp.texi (Ssh setup):
	Explain tramp-use-ssh-controlmaster-options value `suppress'.
	(Remote processes): Add reference to "Using ssh connection sharing".

	* etc/NEWS: Extend 'tramp-use-ssh-controlmaster-options' values.
	;; Fix typos.

	* lisp/net/tramp-sh.el (tramp-use-ssh-controlmaster-options):
	Allow new value `suppress'.
	(tramp-ssh-option-exists-p): New defun.
	(tramp-ssh-controlmaster-options): Implement `suppress' actions.

2023-03-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	function requestSelectionUpdate.
	* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
	Call it instead of losing if getting the current selection
	fails.
	* src/android-asset.h (AAsset_seek): Define stub.
	* src/android.c (android_open): Take mode_t.
	(android_open_asset, android_close_asset, android_asset_read_quit)
	(android_asset_read, android_asset_lseek, android_asset_fstat):
	New functions.
	* src/android.h (struct android_fd_or_asset): Update prototypes.
	* src/androidgui.h (enum android_ime_operation): Add new
	operation to update the selection position.
	* src/androidterm.c (android_handle_ime_event): Handle new
	operation.
	(requestSelectionUpdate): New function.
	* src/fileio.c (close_file_unwind_emacs_fd): New function.
	(Fcopy_file, union read_non_regular, read_non_regular)
	(Finsert_file_contents): Use optimized codepath to insert
	Android asset files.
	* src/frame.h (enum text_conversion_operation): New operation.
	* src/textconv.c (really_request_point_update)
	(handle_pending_conversion_events_1, request_point_update): New
	functions.
	* src/textconv.h: Update prototypes.

2023-03-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	1c67e4f895f Fix c-ts-mode indentation
	d724d7d6785 Fix c-ts-mode indentation
	7292b24c801 Fix c-ts-mode indentation
	75cdc1afbe5 ; Change font-lock-variable-name-face to font-lock-variab...
	b1b3af5b90b Update to Org 9.6.1-40-g3d817c
	80e1037df44 Add string-interpolation feature to bash-ts-mode
	5b8e0b31548 Fix tramp-sh-handle-insert-directory
	2258ed01f42 ; Minor fix of last change
	9c18af0cfaf * Warn when certain primitives are redefined (bug#61880)
	5af695c7479 ; * lib-src/etags.c (print_help): Fix indentation.

2023-03-06  Po Lu  <luangruo@yahoo.com>

	* src/conf_post.h: Avoid macro redeclaration.

2023-03-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsService.java (sync): Delete function.
	* java/org/gnu/emacs/EmacsView.java (handleDirtyBitmap): Erase
	with window background.
	(onDetachedFromWindow): Only recycle bitmap if non-NULL.
	* java/org/gnu/emacs/EmacsWindow.java (background): New field.
	(changeWindowBackground): Set it.
	* src/android.c (struct android_emacs_service): Remove `sync'.
	(android_init_emacs_service): Likewise.
	(android_sync): Delete function.
	* src/androidfns.c (android_create_tip_frame): Set frame
	background color correctly.
	(Fx_show_tip): Make the tip frame visible.
	* src/androidgui.h: Update prototypes.
	* src/androidterm.c (handle_one_android_event): Handle tooltip
	movement correctly.

2023-03-05  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-05  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsActivity.java (onCreate):
	* java/org/gnu/emacs/EmacsContextMenu.java:
	* java/org/gnu/emacs/EmacsDocumentsProvider.java (getMimeType):
	* java/org/gnu/emacs/EmacsDrawLine.java (perform):
	* java/org/gnu/emacs/EmacsDrawRectangle.java (perform):
	* java/org/gnu/emacs/EmacsFillPolygon.java:
	* java/org/gnu/emacs/EmacsFontDriver.java:
	* java/org/gnu/emacs/EmacsHandleObject.java:
	* java/org/gnu/emacs/EmacsInputConnection.java:
	* java/org/gnu/emacs/EmacsMultitaskActivity.java
	(EmacsMultitaskActivity):
	* java/org/gnu/emacs/EmacsNative.java:
	* java/org/gnu/emacs/EmacsNoninteractive.java
	(EmacsNoninteractive, main):
	* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity)
	(startEmacsClient):
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java:
	* java/org/gnu/emacs/EmacsSdk8Clipboard.java:
	* java/org/gnu/emacs/EmacsService.java (EmacsService, onCreate):
	* java/org/gnu/emacs/EmacsView.java (EmacsView, onLayout):
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow):
	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
	(EmacsWindowAttachmentManager): Remove redundant includes.
	Reorganize some functions around, remove duplicate `getLibDir'
	functions, and remove unused local variables.

2023-03-05  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Don't
	set the style here.
	* java/res/values-v11/style.xml:
	* java/res/values-v14/style.xml:
	* java/res/values-v29/style.xml:
	* java/res/values/style.xml: Define styles for the emacsclient
	wrapper.
	* src/keyboard.c (read_key_sequence): Don't disable text
	conversion if use_mouse_menu or if a menu bar prefix key is
	being displayed.

2023-03-05  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* etc/PROBLEMS: Document problem with default monospace font.
	* src/fileio.c (check_mutable_filename): Check /content as well.
	(Fcopy_file, Fdelete_directory_internal, Fdelete_file)
	(Frename_file, Fadd_name_to_file, Fmake_symbolic_link)
	(Fset_file_modes, Fset_file_times, Ffile_newer_than_file_p)
	(write_region): Adjust accordingly.
	(Fset_visited_file_modtime): Remove unnecessary restriction.
	* src/filelock.c (make_lock_file_name): Don't interlock files
	under /assets and /content.
	* src/inotify.c (Finotify_add_watch): Fix typo.

2023-03-05  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	836044f329a Fix c-ts-mode preproc directive indentation
	64980a59b65 ; * lisp/files.el (hack-local-variables): Fix typo in the...
	a7cd125d490 More robustly unspoof HOME in Eglot tests (bug#61637)
	6c66dbd02c7 Turn on Eglot inlay hints by default
	246f5b541c5 Update ts modes missed in 4c16fd3a512 to use column-0
	0bfba49ca7c Robustify Eglot for "transient" projects
	ea5fd375bb2 Fix documentation of 'normal-mode' in buffers that don't ...
	4c16fd3a512 Change tree-sitter indent anchor 'point-min' to 'column-0'
	f47b3930158 Fix go-ts-mode multi-line string indentation (bug#61923)
	e0bf2da3db6 ; More accurate doc strings for 'window-at' and 'window-a...

2023-03-05  Po Lu  <luangruo@yahoo.com>

	Fix cross compilation of cross/lib in some cases

	* cross/Makefile.in: (config.status): Depend on
	top_builddir/config.status instead.

2023-03-05  Po Lu  <luangruo@yahoo.com>

	Remove redundant gnulib files

	* cross/lib: Delete.  Make configure generate it instead.

2023-03-05  Po Lu  <luangruo@yahoo.com>

	Remove redundant second copy of gnulib

	* .gitignore: Simplify cross/lib rule.
	* admin/merge-gnulib (avoided_flags): Stop copying to cross/lib.
	* configure.ac: Link gnulib source and header files to
	cross/lib.
	* cross/Makefile.in (LIB_SRCDIR): Make relative to builddir.
	(maintainer-clean): Merge with distclean.  Remove links created
	by configure.

2023-03-05  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-04  Eli Zaretskii  <eliz@gnu.org>

	Unbreak the unexec build

	* src/alloc.c (BLOCK_ALIGN) [HAVE_UNEXEC]: Reset back to 1024.
	(Bug#61960)

2023-03-04  Po Lu  <luangruo@yahoo.com>

	Fix x86_64 builds of libjpeg on Android

	* cross/ndk-build/ndk-build-shared-library.mk:
	* cross/ndk-build/ndk-build-static-library.mk: Specify right ELF
	format for 64 bit executables.

2023-03-04  Po Lu  <luangruo@yahoo.com>

	Fix calls to nasm in cross/ndk-build

	* cross/ndk-build/ndk-build-shared-library.mk:
	* cross/ndk-build/ndk-build-static-library.mk: Ensure nasm
	generates ELF objects.

2023-03-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-04  Po Lu  <luangruo@yahoo.com>

	Fix out of bound write after poly of single pixel span

	* src/sfnt.c (sfnt_fill_span): Specifically handle spans that
	span a single pixel by computing the coverage in the center.

2023-03-04  Konstantin Kharlamov  <Hi-Angel@yandex.ru>

	bug#61489: Increase BLOCK_ALIGN from 1024 to 32768

	Originally discovered by Tyler Dodge in his article "Significant Garbage
	Collection Improvement For Emacs".

	While testing this change on Archlinux system with Intel i5-7200U CPU,
	average time of garbage collection gets reduced by ≈25%. Other users
	report improvements up to 50%. While monitoring PSS of emacs with and
	without customizations loaded before and after the patch, no
	statistically significant differences were discovered. So overall, this
	change is a win.
	* src/alloc.c (BLOCK_ALIGN): increase from 1024 to 32768.

2023-03-04  Po Lu  <luangruo@yahoo.com>

	Improve context menus on old versions of Android

	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): New
	field `lastClosedMenu'.
	(onContextMenuClosed): Don't send event if a menu is closed
	twice in a row.  Also, clear wasSubmenuSelected immediately.
	* java/org/gnu/emacs/EmacsContextMenu.java: Display submenus
	manually in Android 6.0 and earlier.
	* java/org/gnu/emacs/EmacsView.java (onCreateContextMenu)
	(popupMenu): Adjust accordingly.

2023-03-04  Po Lu  <luangruo@yahoo.com>

	Port to broken Android NDK version

	* configure.ac: Check for __ctype_get_mb_cur_max.
	Then see if MB_CUR_MAX is defined to it, and define
	REPLACEMENT_MB_CUR_MAX if so and it does not link.
	* java/INSTALL: Update documentation.
	* src/conf_post.h (MB_CUR_MAX): Define replacement if
	necessary.

2023-03-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	bd5115e1347 Remove Eglot activation check from find-file-hook
	adc04ad5247 * src/intervals.c (set_intervals_multibyte_1): Fix bug#61887
	b3e930d328e Revert inadvertent change to lisp/icomplete.el in previou...
	da8e4b6fe43 Revert previous change in go-ts-mode.el
	7548446194a Release ERC 5.5
	585faf4c173 ; More doc improvements for OClosures
	2840895c1ae Don't create GUI frames in batch sessions
	452b5ed1030 ; Fix wrong error name in erc-server-908 doc string.
	1e9484f2fd1 ; * etc/ERC-NEWS: Mention more deprecations.
	119b3a4dba1 Minor copyedits of documentation of OClosures
	3a651773d29 Eglot: pay better attention to hints' paddingLeft/Right (...

	# Conflicts:
	#	etc/NEWS

2023-03-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-04  Po Lu  <luangruo@yahoo.com>

	Improve support for building Android C++ dependencies

	* configure.ac: Call ndk_LATE after gl_EARLY.
	* cross/ndk-build/Makefile.in (NDK_BUILD_CXX): New variable.
	* cross/ndk-build/ndk-build-shared-library.mk:
	* cross/ndk-build/ndk-build-static-library.mk: Use it.
	* java/INSTALL: Describe how to build C++ dependencies.
	* m4/ndk-build.m4 (ndk_LATE): New macro.
	(ndk_INIT): Try to find a suitable C++ compiler.
	(ndk_CHECK_MODULES): Make sure the C++ compiler works before
	allowing C++ dependencies.

2023-03-04  Sean Whitton  <spwhitton@spwhitton.name>

	* lisp/icomplete.el (icomplete-in-buffer): Make into a defcustom.

2023-03-04  Po Lu  <luangruo@yahoo.com>

	Fix cross-compilation of C++ code with old NDK versions

	* cross/ndk-build/Makefile.in (NDK_BUILD_CFLAGS_CXX): New variable.
	* cross/ndk-build/ndk-build-shared-library.mk
	($(call objname,$(LOCAL_MODULE),$(basename $(1)))):
	* cross/ndk-build/ndk-build-static-library.mk
	($(call objname,$(LOCAL_MODULE),$(basename $(1)))): Use it to build
	C++ code.

2023-03-04  Dmitry Gutov  <dgutov@yandex.ru>

	Redirect eldoc messages to the mode-line when in edebug-mode

	* lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message): Redirect
	eldoc messages to the mode-line when in edebug-mode (bug#56459).
	(eldoc-minibuffer--cleanup): New function, used in above.

2023-03-04  Dmitry Gutov  <dgutov@yandex.ru>

	Revert "Revert "Don't disable eldoc when doing edebug""

	This reverts commit 99df815c153265706edc839b7467fb3ae3b6e1b1.

2023-03-03  Po Lu  <luangruo@yahoo.com>

	Minor fixes to configury

	* configure.ac (ANDROID_SDK_8_OR_EARLIER): Pass through
	`--with-ndk-cxx-shared'.
	* m4/ndk-build.m4: Fix quoting of $CC.

2023-03-03  Po Lu  <luangruo@yahoo.com>

	Fix out-of-tree builds with native dependencies

	* cross/ndk-build/ndk-build-shared-library.mk:
	* cross/ndk-build/ndk-build-static-library.mk: Include
	ndk-resolve.mk in srcdir.

2023-03-03  Po Lu  <luangruo@yahoo.com>

	Improve ndk-build implementation

	* build-aux/ndk-build-helper.mk: Define in terms of BUILD_AUXDIR.
	* m4/ndk-build.m4 (ndk_INIT): Find right build-aux directory.
	Remove uses of unportable shell constructs.

2023-03-03  Mattias Engdegård  <mattiase@acm.org>

	Remove ineffective uses of condition-case

	* lisp/gnus/message.el (message-setup-1):
	* lisp/progmodes/cc-engine.el (c-forward-single-comment):
	* lisp/progmodes/ruby-mode.el (ruby-add-log-current-method):
	Eliminate uses of condition-case without handlers.  These seem to have
	been there for quite a long time.  This change does not affect the
	behavior of the code and makes some warnings go away.

2023-03-03  Po Lu  <luangruo@yahoo.com>

	Fix visiting and saving writable content provider files

	* java/org/gnu/emacs/EmacsService.java (checkContentUri):
	Improve debug output.
	* lisp/files.el (basic-save-buffer): Check whether or not file
	itself exists before checking for the existence of the directory
	containing it.
	* src/android.c (android_open): Don't forget to set errno after
	open_content_uri fails.

2023-03-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-03  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity)
	(onCreate): Add view tree observer.
	(onGlobalLayout): Sync fullscreen state.
	(syncFullscreenWith): Improve visibility flag setting.

	* src/textconv.c (select_window): New function.
	(textconv_query):
	(restore_selected_window):
	(really_commit_text):
	(really_set_composing_text):
	(really_set_composing_region):
	(really_delete_surrounding_text):
	(really_set_point_and_mark):
	(get_extracted_text): Call it instead of Fselect_window
	to avoid selecting the mini window if it is no longer active.

2023-03-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	9e105d483fa Fix c-ts-mode indentation for statement after preproc (bu...
	a72a55e3e49 Fix c/c++-ts-mode's mode lighter
	67befc1f5a5 Eglot: use shell-file-name in eglot--cmd (bug#61748)
	1c7b2673bdd Avoid signaling errors in url-basic-auth when password is...
	756225e3778 Fix wdired-tests on MS-Windows
	a137f71c67e Improvements to xwidget on macOS (bug#60703)
	3f43a16bc63 ; Avoid byte-compilation warning in c-ts-mode.el

2023-03-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-02  Mattias Engdegård  <mattiase@acm.org>

	Fix `cond` miscompilation bug

	This fixes a bug that miscompiled

	  (cond ... C S1...Sn)

	where S1...Sn are switch clauses (that can be compiled into a switch
	op) and C a non-switch clause, by tucking on an extra copy of C at the
	end.  This was a serious wrong-code bug when the condition of C had
	side-effects; otherwise it was only a waste of time and space.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-cond): Fix.
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
	Add test case.

2023-03-02  Mattias Engdegård  <mattiase@acm.org>

	Small unwind-protect optimization improvement

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
	Use the current for-effect mode when optimizing the body form,
	instead of always optimizing it for value.

2023-03-02  Michael Albinus  <michael.albinus@gmx.de>

	Tramp cleanup

	* lisp/net/tramp.el (tramp-handle-unlock-file): Raise a warning
	only when `create-lockfiles'.

	* test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion):
	Extend test.

2023-03-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-02  Po Lu  <luangruo@yahoo.com>

	Fix bootstrap failure

	* lisp/man.el (Man-prefer-synchronous-call): Fix version
	specification.

2023-03-02  Augusto Stoffel  <arstoffel@gmail.com>

	Add option to keep some columns in dired-hide-details-mode

	* lisp/dired.el (dired-hide-details-preserved-columns): New user
	option.
	(dired-insert-set-properties): Use it.  (Bug#61785)

2023-03-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-02  Sebastian Tennant  <sdt@sebyte.me>  (tiny change)

	Add new user option Man-prefer-synchronous-call

	* lisp/man.el (Man-getpage-in-background): Add new defcustom
	Man-prefer-synchronous-call and modify #'Man-getpage-in-background.
	Only call #'start-process when 'make-process satisfies #'fboundp AND
	Man-prefer-synchronous-call is bound to nil.  (Bug#61552)

2023-03-02  Philippe Altherr  <philippe.altherr@gmail.com>

	Add support for Zsh's case branches ;|.

	* lisp/progmodes/sh-script.el (sh-font-lock-paren)
	(sh-smie-sh-grammar, sh-smie-sh-rules, sh-smie-rc-grammar):
	Support case branches ending with ";|", per Zsh.  (Bug#60833)

	* test/manual/indent/shell.sh (bar): Add ";|".

2023-03-02  Philippe Altherr  <philippe.altherr@gmail.com>

	Use 'sh-indent-for-continuation' for continued lines in 'sh-script-mode'

	* lisp/progmodes/sh-script.el (sh-smie--indent-continuation): Use
	'sh-indent-for-continuation' instead of 'sh-basic-offset'.
	(Bug#60832)

	* test/lisp/progmodes/sh-script-tests.el
	(test-indent-after-continuation): New test.

2023-03-02  Po Lu  <luangruo@yahoo.com>

	Summary: Update Android port

	* INSTALL: Document where to find Android installation
	instructions.
	* configure.ac (CHECK_LISP_OBJECT_TYPE): Pacify
	-Wsuggest-attribute=noreturn only on Android.
	* cross/ndk-build/README: New file.
	* doc/emacs/android.texi (Android):
	* doc/emacs/emacs.texi (Top):
	* doc/emacs/input.texi (Other Input Devices): Untabify menus.
	* etc/NEWS: Move INSTALL.android to java/INSTALL.
	* java/INSTALL: New file.
	* java/README:
	* src/coding.c (from_unicode_buffer): Make Android specific code
	only build on Android.

2023-03-02  Po Lu  <luangruo@yahoo.com>

	* INSTALL.android: Remove file.

2023-03-02  Po Lu  <luangruo@yahoo.com>

	Fix Makefile race conditions

	* configure.ac: Make cross/* and related directories.
	* cross/Makefile.in (src/verbose.mk, lib/libgnu.a)
	(src/config.h): Stop making directories here.
	(lib-src/config.h): New config.h rule.
	($(LIBSRC_BINARIES)): Add it.
	(clean): Don't remove CLEAN_SUBDIRS, but clean inside.

2023-03-02  Po Lu  <luangruo@yahoo.com>

	Fix Android handle wraparound

	* src/android.c (android_alloc_id): Return correct values upon
	wraparound.

2023-03-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	59365f92856 * lisp/progmodes/go-ts-mode.el: Use treesit-language-avai...
	56cd810b9d1 Don’t signal warning when loading go-ts-mode.el without g...
	b06d5519664 Fix c-ts-mode empty line indentation (bug#61893)
	6b2720778dc Improve tree-sitter's prev-sibling indent anchor

2023-03-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	07f3236133b * src/profiler.c (malloc_probe): Make it safe for GC (bug...
	1f1d36fa808 * lisp/emacs-lisp/debug-early.el (debug-early-backtrace):...
	99df815c153 Revert "Don't disable eldoc when doing edebug"
	0a4b1c0102d ; Eglot: improve bug-reference-url-format/bug-reference-u...
	40c9fc8e3b3 Eglot: work around Tramp instability bug#61350
	4a6db125b9e Fix treesit-indent-region
	7ef9a8210c9 Replace C++ comments with C style equivalents

2023-03-02  Po Lu  <luangruo@yahoo.com>

	Improve criteria for restoring fullscreen state on Android

	* java/Makefile.in ($(CLASS_FILES) &): Touch all class files,
	even those javac chose not to rebuild.

	* java/org/gnu/emacs/EmacsActivity.java (onWindowFocusChanged):
	Restore fullscreen state here.
	(onResume): And not here.

2023-03-02  Po Lu  <luangruo@yahoo.com>

	Fix sectioning of android texi files

	* doc/emacs/android.texi (Android):
	* doc/emacs/emacs.texi (Top, GNU Free Documentation License):
	Rearrange menu and sectioning.

2023-03-02  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Windowing): Reword
	documentation.
	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity):
	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu):
	* java/org/gnu/emacs/EmacsFontDriver.java (EmacsFontDriver):
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java
	(EmacsSdk7FontDriver):
	* java/org/gnu/emacs/EmacsService.java (queryBattery):
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow): Make
	functions final and classes static where necessary.
	* src/android.c (struct android_emacs_service): New method
	`display_toast'.
	(android_init_emacs_service): Load new method.
	(android_display_toast): New function.
	* src/android.h: Export.
	* src/androidfns.c (Fandroid_detect_mouse):
	* src/androidselect.c (Fandroid_clipboard_owner_p)
	(Fandroid_set_clipboard, Fandroid_get_clipboard)
	(Fandroid_browse_url): Prevent crashes when called from
	libandroid-emacs.so.
	* src/androidterm.c (handle_one_android_event): Fix out of date
	commentary.

2023-03-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-01  Michael Albinus  <michael.albinus@gmx.de>

	Make Tramp file name completion more quiet

	* lisp/net/tramp-sh.el (tramp-perl-file-name-all-completions):
	Don't print status message.
	(tramp-sh-handle-file-name-all-completions): Return nil when check
	fails.  (Bug#61890)

	* test/lisp/net/tramp-tests.el
	(tramp-test26-file-name-completion-with-perl):
	(tramp-test26-file-name-completion-with-ls): New tests.

2023-03-01  Mattias Engdegård  <mattiase@acm.org>

	Simplify effect-free code elimination

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
	Simplify overly defensive code.  This does not affect code generation.

2023-03-01  Po Lu  <luangruo@yahoo.com>

	Fix out-of-tree Android builds

	* configure.ac (JAVA_PUSH_LINT): Push to WARN_JAVAFLAGS instead
	of JAVAFLAGS.
	(cross/lib): Always AS_MKDIR_P.
	* cross/Makefile.in (srcdir): New variable.
	(LIB_SRCDIR): Take realpath relative to srcdir, not
	.:(src/verbose.mk): Depend on verbose.mk.android in srcdir.
	(lib/Makefile): Edit srcdir and VPATH to LIB_SRCDIR.
	(src/Makefile): Edit -I$$(top_srcdir) to -I../$(srcdir)/lib,
	instead of omitting it.
	(clean): Allow ndk-build clean to fail.

	* java/Makefile.in (builddir): New variable.
	(WARN_JAVAFLAGS): Likewise.
	(JAVAFLAGS): Define in terms of WARN_JAVAFLAGS.
	(SIGN_EMACS, SIGN_EMACS_V2): Use emacs.keystore relative to
	srcdir.  Allow inclusion of ndk-build.mk to fail.
	(install_temp, emacs.apk-in)
	(../config.status): Depend relative to top_srcdir.
	(AndroidManifest.xml, $(APK_NAME)): Likewise.
	(RESOURCE_FILE, CLASS_FILES, classes.dex): Output class files
	to $(srcdir); these are arch independents, so this is okay.

2023-03-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-03-01  Po Lu  <luangruo@yahoo.com>

	Fix mostlyclean rules

	* cross/Makefile.in: Remove outdated comment.
	* src/Makefile.in: (.PHONY): Clean android-emacs and
	libemacs.so, not emacs.so and aemacs.

2023-03-01  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android File System): Document new
	behavior of starting a subprocess from /assets.
	* java/org/gnu/emacs/EmacsWindow.java (onSomeKindOfMotionEvent):
	Don't use isFromSource where not present.
	* src/androidterm.c (android_scroll_run): Avoid undefined
	behavior writing to bitfields.
	* src/callproc.c (get_current_directory): When trying to run a
	subprocess inside /assets, run it from the home directory
	instead.

2023-03-01  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/AndroidManifest.xml.in: Specify @style/EmacsStyle.
	* java/org/gnu/emacs/EmacsActivity.java (onCreate): Stop setting
	the theme here.
	* java/res/values-v11/style.xml:
	* java/res/values-v14/style.xml:
	* java/res/values-v29/style.xml:
	* java/res/values/style.xml: Extract style resources into
	res/values.

2023-03-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	97a83ff31fa Eglot: fix M-x eglot-show-workspace-configuration (bug#61...
	48a0804d10d ruby-mode: Fix method call indentation in rhs of multiple...
	16d012cf3bd * lisp/net/tramp.el (tramp-remote-path): Improve docstring.
	b371697cdca Minor change in 'dired--find-possibly-alternative-file'
	c2b5c6acc58 Implement prefix arg for 'c-ts-mode-toggle-comment-style'
	eb2ab52fb01 Defaults to zero for image-dired--number-of-thumbnails
	5dc163f592a ; Add a doc string for 'ediff-window-display-p' obsolescence

2023-03-01  Stefan Kangas  <stefankangas@gmail.com>

	Update SKK-JISYO.L from upstream

	* leim/SKK-DIC/SKK-JISYO.L: Update from
	https://raw.githubusercontent.com/skk-dev/dict/master/SKK-JISYO.L

2023-03-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2023-02-28 02:16:27 UTC.

2023-03-01  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/Makefile.in (ETAGS, clean): New rules to generate tags.
	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity):
	* java/org/gnu/emacs/EmacsApplication.java (EmacsApplication):
	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu):
	* java/org/gnu/emacs/EmacsCopyArea.java (EmacsCopyArea):
	* java/org/gnu/emacs/EmacsDialog.java (EmacsDialog)::(dialog.
	Then):
	* java/org/gnu/emacs/EmacsDocumentsProvider.java
	(EmacsDocumentsProvider):
	* java/org/gnu/emacs/EmacsDrawLine.java (EmacsDrawLine):
	* java/org/gnu/emacs/EmacsDrawPoint.java (EmacsDrawPoint):
	* java/org/gnu/emacs/EmacsDrawRectangle.java
	(EmacsDrawRectangle):
	* java/org/gnu/emacs/EmacsFillPolygon.java (EmacsFillPolygon):
	* java/org/gnu/emacs/EmacsFillRectangle.java
	(EmacsFillRectangle):
	* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
	* java/org/gnu/emacs/EmacsInputConnection.java
	(EmacsInputConnection):
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative):
	* java/org/gnu/emacs/EmacsNoninteractive.java
	(EmacsNoninteractive):
	* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity):
	* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
	* java/org/gnu/emacs/EmacsPreferencesActivity.java
	(EmacsPreferencesActivity):
	* java/org/gnu/emacs/EmacsSdk11Clipboard.java
	(EmacsSdk11Clipboard):
	* java/org/gnu/emacs/EmacsSdk23FontDriver.java
	(EmacsSdk23FontDriver):
	* java/org/gnu/emacs/EmacsSdk8Clipboard.java
	(EmacsSdk8Clipboard):
	* java/org/gnu/emacs/EmacsService.java (EmacsService):
	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView)
	(buffers):
	* java/org/gnu/emacs/EmacsView.java (EmacsView, ViewGroup):
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, drawables):
	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
	(EmacsWindowAttachmentManager): Make classes final where
	appropriate.

2023-03-01  Po Lu  <luangruo@yahoo.com>

	More fixes to JNI error checking

	* src/android.c (android_query_tree, android_get_geometry)
	(android_translate_coordinates, android_query_battery):
	Correctly handle result of GetTArrayElements.
	(android_exception_check_nonnull): New function.
	* src/android.h:
	* src/androidselect.c (Fandroid_get_clipboard): Likewise.

2023-03-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-28  Mattias Engdegård  <mattiase@acm.org>

	Fix some useless condition-case forms

	* lisp/progmodes/cperl-mode.el (cperl-calculate-indent):
	* lisp/progmodes/verilog-mode.el (verilog--suppressed-warnings):
	Add error handler, seemingly the intention here.
	* lisp/url/url-gw.el (url-open-stream): Remove condition-case;
	it was neutered in 2006.

2023-02-28  Michael Albinus  <michael.albinus@gmx.de>

	Improve warning in tramp-handle-unlock-file

	* lisp/net/tramp.el (tramp-connectable-p): Simplify.
	(tramp-handle-unlock-file): Improve warning.

2023-02-28  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (main):
	* src/sfntfont.c (sfntfont_get_glyph_outline): Remove outdated
	comment.

2023-02-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	613de662811 Rename the newly added -ref- faces to -use-
	f601e9666d8 Eglot: support multiple labels in same inlay hint
	4a5eda7ed2a Eglot: don't paint hints outside requested region (bug#61...
	11c1aa1eb12 ; * doc/misc/gnus.texi: Fix last change.
	44949c292f9 ; Add `nnimap-user' to Gnus manual
	6c7078c66f4 ; * lisp/progmodes/c-ts-mode.el (treesit-node-prev-siblin...
	3d0a6c9baa6 Eglot: protect against unintended field text motion (bug#...
	647e40f4a0c ; And yet another fix to eglot-current-linepos-function's...
	9d0f856a167 Fix description of 'desktop-save-mode'
	aee10ca1cbe Adjust tree-sitter defun navigation (bug#61617)
	edf5b976869 Simplify c-ts-mode--top-level-label-matcher
	0f15286c539 New tree-sitter indent anchor standalone-parent used by c...

	# Conflicts:
	#	etc/NEWS

2023-02-27  Augusto Stoffel  <arstoffel@gmail.com>

	New user option 'grep-use-headings'

	* lisp/progmodes/grep.el (grep-heading-regexp): New user option.
	(grep-heading): New face (bug#59888).
	(grep--heading-format, grep--heading-state, grep--heading-filter):
	Filter function for grep processes and supporting variables.
	(grep-use-headings): New user option.
	(grep-mode): Use the above, if applicable.

2023-02-27  Augusto Stoffel  <arstoffel@gmail.com>

	Introduce 'compilation-annotation' text property

	It is meant to mark parts of compilation buffers which do not
	correspond to process output (bug#59888).

	* lisp/progmodes/compile.el (compilation-insert-annotation): New
	function.
	(compilation-start, compilation-handle-exit): Use it.
	(compilation--ensure-parse) Rely on 'compilation-annotation' property
	instead of 'compilation-header-end'.

2023-02-27  João Távora  <joaotavora@gmail.com>

	* lisp/icomplete.el (fido-mode): Enable in-buffer completion (bug#45763).

2023-02-27  Juri Linkov  <juri@linkov.net>

	* lisp/icomplete.el: Fix in-buffer completion.

	(icomplete-force-complete-and-exit, icomplete-force-complete): Use
	'icomplete--field-beg/end' when not in the minibuffer to not erase
	the current buffer.  Also disable 'completion-in-region-mode' instead
	of calling 'exit-minibuffer' (bug#45764, bug#51575, bug#61479).

2023-02-27  Mattias Engdegård  <mattiase@acm.org>

	Adjust some `pure` and `side-effect-free` function declarations

	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns):
	Add `format-message` and `substring-no-properties`.
	* lisp/subr.el (number-sequence, copy-tree, looking-at-p)
	(string-match-p, string-trim-right, string-lines):
	Declare side-effect-free.
	(syntax-class, version-list-<, version-list-=, version-list-<=)
	(version-list-not-zero): Declare pure and side-effect-free.
	(ensure-list): Declare side-effect-free and error-free.
	(string-equal-ignore-case): Remove `pure` declaration.
	We may want it to be pure but right now it's not.

2023-02-27  Mattias Engdegård  <mattiase@acm.org>

	Warn about `condition-case` without handlers

	Omitting handlers from a `condition-case` form makes it useless
	since no errors are caught.

	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): New warning.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-test--with-suppressed-warnings): Add test case.
	* etc/NEWS: Announce.

2023-02-27  Mattias Engdegård  <mattiase@acm.org>

	* lisp/calc/calc.el (calcDigit-backspace): Hush warning.

2023-02-27  Mattias Engdegård  <mattiase@acm.org>

	Improve delete-consecutive-dups doc precision and add test

	* lisp/subr.el (delete-consecutive-dups): Document which element of
	each run is retained (the earliest in the list).  This matters because
	it makes it safe to ignore the return value.
	* test/lisp/subr-tests.el (subr--delete-dups)
	(subr--delete-consecutive-dups): Add tests.

2023-02-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	267fc6d00c4 ruby-smie-rules: Fix misindentation of a method call afte...
	0fde314f6f6 * lib-src/etags.c (process_file_name): Free malloc'ed var...
	dde9d149af3 ; Improve documentation of loading *.eln files
	7c552be89da ; Another doc fix in eglot.el
	75c65fcc98e ; Fix last change
	a3d15c1f749 ; Fix last change
	ca79b138d42 Eglot: rename and redocument encoding-related functions (...
	3e3e6d71be7 Eglot: support positionEncoding LSP capability (bug#61726)
	b0e87e930e8 Eglot: use faster strategy for moving to LSP positions (b...
	5b174b96834 Fix mule-tests in UTF-8 locales
	5256392a7ec Fix 'vertical-motion' when display strings are around
	0db88d625a7 ; * src/treesit.c (treesit_predicate_match): Fix typo.

2023-02-26  Michael Albinus  <michael.albinus@gmx.de>

	Tramp: Do not unlock when connection is broken

	* lisp/net/tramp.el (tramp-handle-unlock-file): Do not unlock when
	connection is broken.  (Bug#61663)

	* test/lisp/net/tramp-tests.el (tramp-test39-make-lock-file-name):
	Extend test.

2023-02-26  Po Lu  <luangruo@yahoo.com>

	Get rid of android_lookup_method

	* src/android.c (struct android_emacs_window): New methods.
	(android_init_emacs_window): Add new methods.
	(android_lookup_method): Delete now-unused function.
	(android_change_window_attributes, android_reparent_window)
	(android_map_window, android_unmap_window, android_resize_window)
	(android_move_window, android_set_input_focus)
	(android_raise_window, android_lower_window, android_get_geometry)
	(android_translate_coordinates, android_set_dont_focus_on_map)
	(android_set_dont_accept_focus): Don't look up the class and
	method each time when calling a function; that's just waste.

2023-02-26  Paul Eggert  <eggert@cs.ucla.edu>

	Disable xattr test on MS-Windows.

	* nt/mingw-cfg.site (enable_xattr): Set to "no".  (Bug#61782)

2023-02-26  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* msdos/sedlibmk.inp: Update getopt.h conditions.

2023-02-26  Po Lu  <luangruo@yahoo.com>

	Update from gnulib

	* cross/lib/unistd.in.h:
	* lib/gnulib.mk.in (INT64_MAX_EQ_LONG_MAX):
	* m4/gnulib-comp.m4 (gl_EARLY): Update from gnulib.

2023-02-26  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-26  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	3cae0e3d96a python-ts-mode: Fix single-quote string fontification
	68d753e3712 ; * etc/NEWS: Fix typos.
	ab0cc4e7811 Fix infloop in bidi.c
	3b8b23f66df ; Fix doc string of 'emacs-lisp-byte-compile'

	# Conflicts:
	#	etc/NEWS

2023-02-26  Jim Porter  <jporterbugs@gmail.com>

	Be more cautious in completing Eshell variable assignments

	Previously, Eshell treated cases like the second argument in "tar
	--directory=dir" as a variable assignment, but that prevented
	'pcomplete/tar' from implementing its own completion for that
	argument (bug#61778).

	* lisp/eshell/esh-var.el (eshell-complete-variable-assignment): Only
	handle completion when all initial arguments are variable assignments.

	* test/lisp/eshell/em-cmpl-tests.el
	(em-cmpl-test/variable-assign-completion/non-assignment): New test.

2023-02-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	(bytecomp-warn--ignore): New test

	Add tests for the interaction of `ignore` with warnings.

	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-warn--ignore): New test.
	(bytecomp--with-warning-test): Really make it a function.

2023-02-26  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/commands.texi (Misc Events): Update documentation.
	* java/org/gnu/emacs/EmacsService.java (EmacsService)
	(onStartCommand): Improve notification message.
	* src/android.c (android_hack_asset_fd): Detect if ashmem is
	available dynamically.
	(android_detect_ashmem): New function.
	* src/textconv.c (record_buffer_change): Use markers to
	represent BEG and END instead.
	(syms_of_textconv): Update doc string.

2023-02-26  Paul Eggert  <eggert@cs.ucla.edu>

	Omit no-longer-needed SEEK_END workaround

	* lib-src/ebrowse.c (SEEK_END): Remove; no longer needed
	on any supported SunOS version.

2023-02-26  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2023-02-26  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	bytecomp--with-warning-test: Make it a function

	* lisp/emacs-lisp/bytecomp.el (bytecomp--with-warning-test):
	Make it a function.

2023-02-25  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/debug.sh (is_root): Fix tee detection again for old
	systems which don't return exit codes from adb shell.
	* src/android.c (android_run_select_thread, NATIVE_NAME,
	JNICALL):
	* src/android.h (NATIVE_NAME):
	* src/androidterm.c (JNICALL, NATIVE_NAME): Apply stack
	alignment to all JNICALL functions.

2023-02-25  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsNoninteractive.java (main): Port to
	Android 2.2.
	* src/android-asset.h (AAsset_openFileDescriptor): Delete stub
	function.
	* src/android.c (android_check_compressed_file): Delete
	function.
	(android_open): Stop trying to find compressed files or to use
	the system provided file descriptor.  Explain why.

2023-02-25  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Startup, Android File System)
	(Android Environment, Android Windowing, Android
	Troubleshooting): Improve documentation; fix typos.
	* doc/lispref/commands.texi (Misc Events): Likewise.
	* java/org/gnu/emacs/EmacsService.java (queryBattery): New
	function.
	* lisp/battery.el (battery-status-function): Set appropriately
	for Android.
	(battery-android): New function.
	* src/android.c (struct android_emacs_service): New method
	`query_battery'.
	(android_check_content_access): Improve exception checking.
	(android_init_emacs_service): Look up new method.
	(android_destroy_handle, android_create_window)
	(android_init_android_rect_class, android_init_emacs_gc_class)
	(android_set_clip_rectangles)
	(android_create_pixmap_from_bitmap_data, android_fill_polygon)
	(android_get_image, android_put_image, android_bell)
	(android_set_input_focus, android_raise_window)
	(android_lower_window, android_query_tree, android_get_geometry)
	(android_translate_coordinates, android_wc_lookup_string)
	(android_damage_window, android_build_string)
	(android_build_jstring, android_exception_check_1)
	(android_exception_check_2): New functions.
	(android_browse_url): Improve exception handling.  Always use
	android_exception_check and don't leak local refs.
	(android_query_battery): New function.
	* src/android.h (struct android_battery_state): New struct.
	* src/androidfns.c (Fandroid_query_battery, syms_of_androidfns):
	New function.
	* src/androidfont.c (androidfont_from_lisp, DO_SYMBOL_FIELD)
	(DO_CARDINAL_FIELD, androidfont_list, androidfont_match)
	(androidfont_draw, androidfont_open_font)
	(androidfont_close_font):
	* src/androidselect.c (Fandroid_set_clipboard)
	(Fandroid_get_clipboard):
	* src/sfnt.c (sfnt_map_glyf_table):
	* src/sfntfont.c (sfntfont_free_outline_cache)
	(sfntfont_free_raster_cache, sfntfont_close): Allow font close
	functions to be called twice.

2023-02-25  Michael Heerdegen  <michael_heerdegen@web.de>

	Make also 'diary-lunar-phases' report eclipses

	* lisp/calendar/lunar.el (diary-lunar-phases): Report eclipses.
	(calendar-lunar-phases): Tweak.

2023-02-25  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-25  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	5cf50d60041 Check the anchor along with the offset in treesit-indent-...
	497018dd5c3 ; Fix typos in docstrings in c-ts-common.el
	03072bbdd38 ; Set indent-tabs-mode to nil in c-ts-mode indent preproc...
	4a25fa4586c Align to prev sibling for c-ts-mode indentation
	d25f24fe57b Fix c-ts-common-statement-offset and c-ts-common--node-is
	c92360c7a3b typescript-ts-mode: Highlight non-shorthand destructuring...
	a795c51f605 Add more/finer faces for tree-sitter
	146bce49321 Avoid crashes in batch mode due to lack of frame face cache
	244a73cd729 Add Tramp version integrated in Emacs 28.3

	# Conflicts:
	#	etc/NEWS

2023-02-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	kmacro: Simplify register code and recent change

	While reviewing uses of `last-kbd-macro` for more problems like
	those of bug#61700 I noticed that we don't need the `kmacro-register`
	type any more (we can directly use the new `kmacro` type instead).
	Also `macros.el` requires `kmacro` so rather than autoload
	`macro--string-to-vector` it's simpler to move the function to
	`kmacro.el`.  And while at it fold into it the `stringp` test that's used
	before every call to that function.

	* lisp/kmacro.el (kmacro--to-vector): Rename from
	`macro--string-to-vector`, move from `mcros.el`, and make it work for
	vectors.
	(kmacro-ring-head, kmacro-lambda-form): Simplify accordingly.
	(cl-print-object): Remove unused declaration.
	(kmacro-register): Delete type.  Use `kmacro` objects instead.
	(register-val-jump-to, register-val-describe, register-val-insert):
	Rewrite accordingly.
	(kmacro-to-register): Put the `kmacro` object.

	* lisp/macros.el (macro--string-to-vector): Move to `kmacro.el`.
	(insert-kbd-macro): Use `kmacro--to-vector`.

	* src/macros.c (end_kbd_macro): Always generate a vector.

2023-02-24  Michael Albinus  <michael.albinus@gmx.de>

	Tramp cleanup

	* lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names): Ignore errors.

	* test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion)
	(tramp-test26-interactive-file-name-completion)
	(tramp-test29-start-file-process, tramp-test30-make-process): Fix tests.

2023-02-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'emacs-29'

2023-02-24  Mattias Engdegård  <mattiase@acm.org>

	More accurate suppression of ignored return value warning

	* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defalias):
	Be careful to propagate the for-effect mode through a
	`with-suppressed-warnings` form when compiling, so that a form
	inside isn't erroneously considered to have its value 'used'
	by the surrounding warning suppression form itself.

2023-02-24  Mattias Engdegård  <mattiase@acm.org>

	Fix unsafep for aliases to side-effect-free functions

	* lisp/emacs-lisp/unsafep.el (unsafep-function):
	Follow aliases when reading the `side-effect-free` property.

2023-02-24  Mattias Engdegård  <mattiase@acm.org>

	Follow function aliases for `side-effect-free` and `pure` properties

	This way we don't need to set these properties on aliases at all;
	it was always easy to forget doing so.

	* lisp/emacs-lisp/byte-opt.el (byte-opt--fget): New function.
	(byte-optimize-form-code-walker, byte-optimize-form): Use it.
	(side-effect-free-fns, side-effect-and-error-free-fns, pure-fns):
	Remove aliases from lists, leaving only built-in functions.

2023-02-24  Po Lu  <luangruo@yahoo.com>

	Improve Android configury

	* configure.ac (JAVA_PUSH_LINT): New macro.
	(JAVAFLAGS): New variable.  Check for various lint flags and
	macros and enable them.
	* java/Makefile.in (ANDROID_ABI):
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java: Remove compiler
	warning.

2023-02-24  Po Lu  <luangruo@yahoo.com>

	Enable normal-erase-is-backspace on Android

	* lisp/frame.el (display-symbol-keys-p):
	* lisp/simple.el (normal-erase-is-backspace-setup-frame): Return
	appropriate values on Android.

2023-02-24  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-24  Po Lu  <luangruo@yahoo.com>

	Fix auto-revert-mode on Android

	* src/inotify.c (Finotify_add_watch): Handle asset files.

2023-02-24  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	b0cbd5590b2 Eglot: simplify inlay hints implementation with jit-lock
	91e24c5b5a6 Eglot: update inlay hints on window configuration changes
	79fead1709f ; Fix a typo in a doc string in c-ts-common.el (bug#61736).
	a0b273ef300 ; Clarify documentation of 'file-modes-number-to-symbolic'
	5c2be6a2632 ; Fix recently-added doc strings in eglot.el
	e3be0dbf85c Eglot: display completion label when safe
	5286111ea1f Improve documentation of VC commands, including in Dired
	990f4027131 * doc/emacs/maintaining.texi: More mentions of marked fil...

2023-02-24  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-23  Jim Porter  <jporterbugs@gmail.com>

	Don't add a space after the trailing slash when completing ~USER in Eshell

	This provides a programmed completion function that works similarly to
	~USER completion in 'completion-file-name-table'.

	* lisp/eshell/em-dirs.el (eshell-complete-user-reference): Throw a
	programmed completion function.

	* test/lisp/eshell/em-cmpl-tests.el
	(em-cmpl-test/user-ref-completion): Update test.

2023-02-23  Jim Porter  <jporterbugs@gmail.com>

	Add support for completing quoted variables in Eshell like $'FOO'

	This also adds the ability for Pcomplete handlers to set their own
	exit functions that will get called as appropriate.

	* lisp/pcomplete.el (pcomplete-default-exit-function): New function.
	(pcomplete-exit-function): New variable...
	(pcomplete-completions-at-point): ... let-bind and use it.

	* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Handle
	quoted variables.  We also build the 'posns' list from right-to-left
	now.

	* lisp/eshell/esh-var.el (eshell-envvar-names): Ensure that variable
	aliases are included in this list.
	(eshell-complete-variable-reference): Handle quoted variables and set
	the exit function on the completions.
	(eshell-variables-list): Simplify.  We now add the trailing slash for
	directories in the exit function inside
	'eshell-complete-variable-reference'.

	* test/lisp/eshell/em-cmpl-tests.el
	(em-cmpl-test/quoted-variable-ref-completion)
	(em-cmpl-test/variable-ref-completion/directory): New tests.

2023-02-23  andrés ramírez  <rrandresf@hotmail.com>

	Additional change for Bug#61432

	* lisp/emulation/viper-cmd.el (viper-set-mode-vars-for): Check
	'viper-enable-minibuffer-faces' before enabling minibuffer overlays.

2023-02-23  Po Lu  <luangruo@yahoo.com>

	Make sure scroll-bar.el is loaded on Android

	* lisp/loadup.el: Update commentary.
	* src/androidterm.c (syms_of_androidterm): Define
	Vx_toolkit_scroll_bars.
	* src/xterm.c (syms_of_xterm): Update doc string.xf64

2023-02-23  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-23  Po Lu  <luangruo@yahoo.com>

	Fix ImageMagick build on Android

	* INSTALL.android (-linux_arm_sources):
	* build-aux/ndk-build-helper-1.mk:
	(NDK_$(LOCAL_MODULE)_STATIC_LIBRARIES)::(NDK_CXX_FLAG_$(LOCAL_MODULE)):
	* build-aux/ndk-build-helper-2.mk:
	(NDK_$(LOCAL_MODULE)_STATIC_LIBRARIES)::(NDK_CXX_FLAG_$(LOCAL_MODULE)):
	* cross/ndk-build/ndk-build-shared-library.mk (objname)::($(call
	objname,$(LOCAL_MODULE),$(basename
	$(1))))::(ALL_OBJECT_FILES$(LOCAL_MODULE)):
	* cross/ndk-build/ndk-build-static-library.mk (objname)::($(call
	objname,$(LOCAL_MODULE),$(basename
	$(1))))::(ALL_OBJECT_FILES$(LOCAL_MODULE)):
	(ALL_SOURCE_FILES): Update ImageMagick build instructions and
	C++ module detection.

2023-02-23  Po Lu  <luangruo@yahoo.com>

	Make android_select more robust

	* src/android.c (android_run_select_thread): Lock select_mutex
	before signaling condition variable.
	(android_select): Unlock event queue mutex prior to waiting for
	it.

2023-02-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	94e70ed4261 ; * lisp/emacs-lisp/eldoc.el (eldoc-display-in-echo-area)...
	1841299a11d Eglot: implement inlay hints (bug#61412, bug#61066)
	28ed0d1840f Eglot: run eglot-managed-mode-hook after LSP didOpen
	7ad5d9babed Eglot: restore eldoc-documentation-functions on shutdown
	711a775ba76 Eglot: simplify capability-checking code
	ea7251ad6df Eglot: go back to setting eldoc-documentation-strategy again
	6016f1982d3 ; * etc/NEWS: Fix typo again
	d411b4d1fd3 ; * etc/NEWS (C-x v !): Additional text.
	a0b67252346 ; * doc/emacs/vc1-xtra.texi (Preparing Patches): Wording ...
	43c4dd6f962 ; * doc/emacs/anti.texi (Antinews): Adjust to latest chan...
	20c654b6f8f Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
	177d0cf2a9a ; * etc/NEWS: Fix typos.
	db7096a532c Yield to erc-move-to-prompt before unhiding prompt
	db21c84bc94 ; Improve doc string of 'C-q'
	a6be0be1db6 ; Clarify "kill files" in Gnus manual
	d816429e2f2 * lisp/progmodes/python.el (python--import-sources): Fix ...
	1f4886fdb09 Do not error out on non image file (bug#61639)
	003759a6dca Explain effect of variable-pitch fonts on fill-column
	ba91a76659b Avoid division by zero in get_narrowed_* functions
	fb5dbf6de73 ; Fix documentation of 'icon-title-format'.
	48c9a507713 * etc/NEWS: Mention new buffer display action alist entries
	4dc1f2b9a01 ; * src/xterm.c (x_update_end): Condition on HAVE_XDBE
	f1c83898060 Fix build --without-xdbe
	ef38774c02c Improve dnd-direct-save-remote-files docstring
	cf53e62a791 Add 'process-status' to process shortdoc
	68df9e5953c * lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename)...
	06ba9484166 Improve text about deleting windows
	1976ca1634d Make 'emacs-news-cycle-tag' work at all levels

	# Conflicts:
	#	etc/NEWS

2023-02-22  Protesilaos Stavrou  <info@protesilaos.com>

	Update Modus themes to version 4.1.0

	* doc/misc/modus-themes.org: Update the manual.

	* etc/themes/modus-operandi-deuteranopia-theme.el:
	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-operandi-tinted-theme.el:
	* etc/themes/modus-vivendi-deuteranopia-theme.el:
	* etc/themes/modus-vivendi-theme.el:
	* etc/themes/modus-vivendi-tinted-theme.el: Update theme files.

	* etc/themes/modus-themes.el: Update main file to the latest version.

	Detailed release notes here:
	<https://protesilaos.com/codelog/2023-02-22-modus-themes-4-1-0/>.

2023-02-22  Mattias Engdegård  <mattiase@acm.org>

	Declare `indirect-function` to be side-effect-free and error-free

	* lisp/emacs-lisp/byte-opt.el (side-effect-and-error-free-fns):
	Add `indirect-function` which is now error-free.

2023-02-22  Po Lu  <luangruo@yahoo.com>

	* src/image.c (imagemagick_load_image): Check HAVE_DECL_xxx.

2023-02-22  Po Lu  <luangruo@yahoo.com>

	Update Android port

	ImageMagick now builds but does not link yet some of the time.

	* INSTALL.android: Document ImageMagick and caveats.
	* build-aux/ndk-build-helper-1.mk (NDK_SO_NAMES):
	* build-aux/ndk-build-helper-2.mk (NDK_A_NAMES):
	* build-aux/ndk-build-helper.mk (TARGET_ARCH_ABI): Define architecture
	and don't respect explicitly specified library names.
	* configure.ac: Enable ImageMagick and lcms2 on Android.
	* cross/ndk-build/ndk-build-shared-library.mk (objname)::($(call
	objname,$(LOCAL_MODULE),$(basename
	$(1))))::(ALL_OBJECT_FILES$(LOCAL_MODULE)):
	* cross/ndk-build/ndk-build-static-library.mk (objname)::($(call
	objname,$(LOCAL_MODULE),$(basename $(1)))):
	(NDK_CFLAGS, ALL_SOURCE_FILES): Handle sources files which start with
	$(LOCAL_PATH).
	* cross/ndk-build/ndk-clear-vars.mk: Don't undefine; clear variables
	instead.
	* m4/ndk-build.m4 (ndk_SEARCH_MODULE): Redirect make stderr to
	config.log.xf64

2023-02-22  Mattias Engdegård  <mattiase@acm.org>

	Use delete-char instead of backward-delete-char

	* lisp/bs.el (bs-delete):
	* lisp/dired-aux.el (dired-show-file-type):
	* lisp/emulation/viper-cmd.el (viper-insert-prev-from-insertion-ring):
	* lisp/man.el (Man-fontify-manpage, Man-cleanup-manpage):
	* lisp/net/mailcap.el (mailcap-parse-mailcap):
	* lisp/progmodes/antlr-mode.el (antlr-insert-makefile-rules):
	* lisp/textmodes/reftex-ref.el (reftex-reference):
	* lisp/vc/emerge.el:
	* lisp/woman.el (woman-man-buffer):
	* test/src/fns-tests.el (fns-tests-hash-buffer):
	Replace some calls to backward-delete-char with delete-char (negating
	the argument) since the former is intended for interactive use.
	This silences most of the interactive-only warnings.

2023-02-22  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/input.texi (On-Screen Keyboards): Document changes
	to text conversion.
	* java/org/gnu/emacs/EmacsInputConnection.java (getExtractedText)
	(EmacsInputConnection):
	* src/keyboard.c (read_key_sequence): Disable text conversion
	after reading prefix key.
	* src/textconv.c (get_extracted_text): Fix returned value when
	request length is zero.

2023-02-22  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-22  Po Lu  <luangruo@yahoo.com>

	Add cross-compilation test for cleanup attribute

	* configure.ac: Per title.

2023-02-22  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* INSTALL.android: Port to MIPS.
	* configure.ac (modules): Default to ifavailable.
	Write actual test for __attribute__((cleanup)).
	* m4/ndk-build.m4: Recognize mips and mips64.
	* src/emacs-module.c: Remove broken HAS_ATTRIBUTE test.

2023-02-21  Mattias Engdegård  <mattiase@acm.org>

	Remove stray quotes

	* lisp/emacs-lisp/bytecomp.el (byte-compile-form):
	* lisp/help-fns.el (help-fns--interactive-only): Fix obvious mistake.
	Since `interactive-only` is not supposed to be anything other than
	a symbol at these points it was not a very consequential bug.

2023-02-21  Robert Pluim  <rpluim@gmail.com>

	Say whether we're using X11 double buffering

	* configure.ac (EMACS_CONFIG_FEATURES): Output value of HAVE_XDBE.

2023-02-21  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-21  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu)
	(addSubmenu, inflateMenuItems): Handle tooltips correctly.
	* src/android.c (android_scan_directory_tree): Fix limit
	generation for root directory.
	* src/androidmenu.c (android_init_emacs_context_menu)
	(android_menu_show): Implement menu item help text on Android
	8.0 and later.

2023-02-21  Mattias Engdegård  <mattiase@acm.org>

	Follow aliases for `interactive-only` declarations

	Make `interactive-only` declarations apply to aliases of the same
	function as well since this quality isn't in the name but in what
	the function does.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-form):
	* lisp/help-fns.el (help-fns--interactive-only):
	Follow aliases when retrieving the `interactive-only` property.

2023-02-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	5a864f23eb8 regex-emacs.c: Reduce the use of backtracking a bit further
	e83c78b8c77 Eglot: respect user's Eldoc configuration by default
	5d0b45cd67b Make the native compiler always use `make-temp-file' for ...
	88ee92e61d7 ; * lisp/progmodes/rust-ts-mode.el (treesit-node-end): De...
	02aba20d528 Update to Transient v0.3.7-216-gfe40342
	d7010d64b21 Add declaration_list to c-ts-common-indent-type-regexp-alist
	19480aa30e3 Typescript-ts-mode: Add switch case handling
	dfc850ca022 Fix object initializer for csharp-mode (bug#61541)
	fc4bfa76db9 Update to Org 9.6.1-34-geea8da
	afbce8bb467 Improve tree-sitter indent anchor prev-adaptive-prefix (b...
	2e6093b425e Adjust jsx indentation
	c544df4fa3f Cleanup preproc indent for c-ts-mode (bug#61558)
	d397f3d5084 Add comment style toggle for c-ts-mode (bug#61550)
	683961cd733 * lisp/simple.el (choose-completion): Check for completio...
	1ac05eac74b rust-ts-mode--font-lock-settings: Avoid the explicit 'def...
	b5bea14ca17 * lisp/progmodes/xref.el: Bump the version.

	# Conflicts:
	#	src/comp.c

2023-02-21  Mattias Engdegård  <mattiase@acm.org>

	Detect and prevent function alias loops in `fset` and `defalias`

	Make `fset` and `defalias` signal an error on attempts to create
	circular alias chains.  This is more effective, efficient and
	convenient than permitting alias loops to be created and trying to
	detect them at run time each time a function is called, which is what
	we have been doing until now, badly.

	* lisp/help-fns.el (help-fns--analyze-function):
	Don't pass obsolete argument.
	* lisp/subr.el (function-alias-p):
	* src/data.c (indirect_function, Findirect_function): Simplify.
	Now error-free, second argument obsolete.
	(Ffset): Detect loops.
	* test/lisp/help-fns-tests.el (help-fns--analyze-function-recursive):
	* test/lisp/subr-tests.el (test-alias-p):
	Adapt tests.
	* test/src/data-tests.el (data-tests-fset, data-tests-defalias): New.
	* doc/lispref/eval.texi (Function Indirection):
	* doc/lispref/functions.texi (Defining Functions, Function Cells):
	Update manual.
	* etc/NEWS: Announce.

2023-02-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	ad6c6a3a115 ; Merge from origin/emacs-28
	9a6f22fd0b4 Merge from origin/emacs-28
	a44d906740f ; Commit files changed by "autoreconf -i -I m4 --force"
	f5a99945b6f ; Update ChangeLog for Emacs 28.3
	f7bd5ac5521 Update HISTORY for Emacs 28.3

	# Conflicts:
	#	build-aux/config.guess
	#	build-aux/config.sub

2023-02-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	1630bfb5d08 Merge from origin/emacs-28
	e2ac0d416b9 ; Merge from origin/emacs-28
	068b53500e2 ; Improve image-dired-thumbnail-storage docstring
	497ed0fb42e ; * doc/emacs/dired.texi (Image-Dired): Fix last change.
	4aa397e71b2 More doc on image-dired-dired-* (bug#61624)
	893ddd5903e Eglot: improve treatment of completion items without :sor...
	4a77fcb1478 Update ChangeLog and AUTHORS for Emacs 28.3
	e339926272a Fix etags local command injection vulnerability
	5d05ea803e9 Fixed ctags local command execute vulnerability
	22fb5ff5126 Fix ruby-mode.el local command injection vulnerability (b...
	807d2d5b3a7 Fix htmlfontify.el command injection vulnerability.
	ae9bfed50db Fix storing email into nnmail by Gnus

2023-02-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	f5a99945b6f ; Update ChangeLog for Emacs 28.3
	f7bd5ac5521 Update HISTORY for Emacs 28.3

2023-02-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

2023-02-21  Po Lu  <luangruo@yahoo.com>

	Update from gnulib

	* admin/merge-gnulib (GNULIB_MODULES):
	* cross/lib/getopt-pfx-core.h (optind):
	* cross/lib/limits.in.h (BOOL_WIDTH):
	* cross/lib/math.in.h:
	* cross/lib/stpncpy.c (__stpncpy):
	* cross/lib/string.in.h:
	* lib/getopt-pfx-core.h (optind):
	* lib/gnulib.mk.in (ANDROID_MIN_SDK):
	(GL_COND_OBJ_STDIO_READ_CONDITION):
	(LIBS):
	(NDK_BUILD_AR):
	(REPLACE__EXIT):
	(libgnu_a_SOURCES):
	* lib/limits.in.h (BOOL_WIDTH):
	* lib/math.in.h:
	* lib/strncpy.c (__stpncpy):
	* lib/string.in.h:
	* m4/assert_h.m4 (gl_ASSERT_H):
	* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR):
	* m4/getdelim.m4 (gl_FUNC_GETDELIM):
	* m4/getline.m4 (gl_FUNC_GETLINE):
	* m4/gnulib-common.m4 (gl_COMMON_BODY):
	(gl_CONDITIONAL_HEADER):
	(gl_CHECK_FUNCS_ANDROID):
	* m4/gnulib-comp.m4 (gl_EARLY):
	(gl_INIT):
	(gl_FILE_LIST):
	* m4/limits-h.m4:
	* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK):
	* m4/malloc.m4 (_AC_FUNC_MALLOC_IF):
	* m4/printf.m4 (gl_PRINTF_SIZES_C99):
	(gl_PRINTF_INFINITE):
	(gl_PRINTF_INFINITE_LONG_DOUBLE):
	(gl_PRINTF_DIRECTIVE_A):
	(gl_PRINTF_DIRECTIVE_F):
	(gl_PRINTF_FLAG_ZERO):
	(gl_SNPRINTF_PRESENCE):
	(gl_SNPRINTF_DIRECTIVE_N):
	(gl_VSNPRINTF_ZEROSIZE_C99):
	* m4/pselect.m4 (gl_FUNC_PSELECT):
	* m4/readlink.m4 (gl_FUNC_READLINK):
	* m4/realloc.m4 (_AC_FUNC_REALLOC_IF):
	* m4/signbit.m4 (gl_SIGNBIT):
	* m4/stpncpy.m4 (gl_FUNC_STPNCPY):
	* m4/symlink.m4 (gl_FUNC_SYMLINK): Add gnulib module stpncpy.
	* src/android.c: Include string.h.

2023-02-21  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Startup): Document `content'
	special directory.
	* java/debug.sh (is_root): Improve /bin/tee detection.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	function `dup'.
	* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity)
	(checkReadableOrCopy, onCreate): Create content directory names
	when the file is not readable.
	* java/org/gnu/emacs/EmacsService.java (EmacsService)
	(openContentUri, checkContentUri): New functions.
	* src/android.c (struct android_emacs_service): New methods.
	(android_content_name_p, android_get_content_name)
	(android_check_content_access): New function.
	(android_fstatat, android_open): Implement opening content URIs.
	(dup): Export to Java.
	(android_init_emacs_service): Initialize new methods.
	(android_faccessat): Implement content file names.

2023-02-21  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure): Tweak
	docstring

2023-02-20  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-20  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* INSTALL.android: Explain where to get tree-sitter.

	* configure.ac: Add support for dynamic modules and tree-sitter.

	* doc/emacs/android.texi (Android Windowing):
	* java/org/gnu/emacs/EmacsSdk11Clipboard.java
	(EmacsSdk11Clipboard, ownsClipboard): Improve clipboard handling
	and documentation.

2023-02-20  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/macroexp.el (mapcan): Set funarg-positions.

2023-02-20  Mattias Engdegård  <mattiase@acm.org>

	Repair mistake in a previous edmacro-sanitize-string change

	* lisp/edmacro.el (edmacro-sanitize-for-string):
	This condition should not have been 'repaired' but removed altogether.
	Do so now, fixing bug#61647.

	Reported by Eduardo Ochs.

2023-02-20  Po Lu  <luangruo@yahoo.com>

	Fix crash inside font-list-family

	* src/androidfont.c (androidfont_list_family): Don't
	unconditionally initialize the Android font driver.

2023-02-20  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-20  Po Lu  <luangruo@yahoo.com>

	Improve SFNT driver lookup efficiency

	* src/fontset.c (fontset_find_font): Add compatibility test to
	registry strangeness case.
	* src/sfnt.c (sfnt_read_cmap_table): Don't read subtable data if
	DATA is NULL.
	* src/sfntfont.c (struct sfnt_font_desc): New field `registry'.
	(sfnt_registry_for_subtable): New function.
	(sfntfont_identify_cmap): Move above sfnt_grok_registry.
	(sfnt_grok_registry): New function.
	(sfnt_enum_font_1): Call it.
	(sfntfont_registries_compatible_p): New function.
	(sfntfont_list_1): Check registry compatibility.
	(sfntfont_registry_for_desc): New function.
	(mark_sfntfont): Mark desc->registry.

2023-02-20  Po Lu  <luangruo@yahoo.com>

	Improve reliability of Java code rebuilds

	* java/Makefile.in ($(CLASS_FILES)): Depend on the Java
	compiler's internal dependency tracking.

2023-02-20  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Help Elisp xref recognize defclass parent classes

	* lisp/progmodes/elisp-mode.el (elisp--xref-infer-namespace):
	Handle defclass parents (bug#61640).

	* test/lisp/progmodes/elisp-mode-tests.el (elisp-mode-infer-namespace):
	New case in the test.

2023-02-19  Michael Albinus  <michael.albinus@gmx.de>

	Tramp cleanup

	* lisp/net/tramp-smb.el (tramp-smb-action-get-acl)
	(tramp-smb-action-set-acl): Use timeout.

	* test/lisp/net/tramp-tests.el
	(tramp-test26-interactive-file-name-completion): Fix test.

2023-02-19  Alan Mackenzie  <acm@muc.de>

	imenu: Make the test for a single category of map (e.g. "Class") rigorous

	This fixes bug #61629.

	* lisp/imenu.el (imenu--mouse-menu): Test (consp (cdadr menu)) to avoid
	confusion with a single entry for a single function.
	(imenu-update-menubar): Change the code to match that above.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Match font registry after font is opened

	* src/fontset.c (fontset_find_font): Work around TrueType
	performance problem.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

	* cross/Makefile.in (src/libemacs.so): Depend on libgnu.a.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	More fixes to parallel Make

	* cross/ndk-build/ndk-build.mk.in (NDK_BUILD_MODULES)
	(NDK_BUILD_SHARED, NDK_BUILD_STATIC): Define group rule to build
	all files so that they are built within one make process.
	* java/Makefile.in: Reorganize cross compilation and make sure
	there is only one make subprocess for each subdirectory of
	cross.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	More parallel build fixes

	* cross/Makefile.in: (.PHONY):
	* java/Makefile.in: (.PHONY):
	* src/Makefile.in: (libemacs.so): Avoid calling ndk-build from
	two places at once.  Build android-emacs separately from
	libemacs.so.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Fix parallel compilation of Android port

	* cross/Makefile.in ($(top_builddir)/lib/libgnu.a):
	* java/Makefile.in (CROSS_LIBS): Explicitly depend on gnulib
	to prevent it from being built at the same time from different
	jobs.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Fix sfntfont.c build without mmap

	* src/sfntfont.c (sfntfont_close): Don't unlink font if mmap is
	not available.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Improve Android documentation

	* INSTALL.android: Say where building Emacs is supported.
	* doc/emacs/android.texi (Android Startup): Describe how to
	connect via ADB.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Report both sides of the region to the input method upon setup

	* java/org/gnu/emacs/EmacsNative.java (getSelection): Return
	array of ints.
	* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
	Adjust accordingly.
	* src/androidterm.c (struct android_get_selection_context): New
	field `mark'.
	(android_get_selection): Set the mark field as appropriate.
	(getSelection): Adjust accordingly.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Fix gamegrid.el with high resolution displays

	* lisp/play/gamegrid.el (gamegrid-setup-default-font): Clamp
	font size at eight.

2023-02-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	871cf33a450 ; * admin/make-tarball.txt: Minor copyedit.
	4faebba2fed Fix invocation of File->Close from the menu bar
	cd05fca5f78 ; Improve documentation of 'native-comp-enable-subr-tramp...
	c61a30e1601 Update thumbnail buffer's header more
	4c49452cdef (treesit-query-validate): Fix reusing the output buffer
	d560dc5044a (rust-ts-mode--font-lock-settings): Highlight closure par...
	c15bc91e1bf * Fix `native-comp-enable-subr-trampolines' semantic
	774051873d5 Fix documentation of 'just-one-space' and 'delete-horizon...
	7337f072500 ; Remove NEWS entry about deleted variable.
	fb5299ba099 ; Fix wording of last change.
	9f508cef85d Fix 'display-buffer-use-least-recent-window'
	5190ea6259a Fix point moving when calling python-shell-send-region
	6c0d8210175 (project-try-vc): Remove unused defvar/require
	4f9862e4356 ; Fix typo
	a638c79bc5c Delete redundant question from Gnus FAQ
	4a90d67eb68 Slightly improve hashcash documentation
	6ea3c105ab1 Fix cursor motion when there's line-prefix and display st...
	e985466556c Fix comment in treesit_record_change (bug#61369)
	1e5cebc88bb Spell out RPN abbreviation in Calc manual intro

	# Conflicts:
	#	etc/NEWS
	#	lisp/window.el

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Allow opening more files in emacsclient on Android

	* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity)
	(checkReadableOrCopy): New function.
	(onCreate): If the file specified is not readable from C, read
	it into a temporary file and ask Emacs to open that.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Implement `fullscreen' on Android 4.0 and later

	* doc/emacs/android.texi (Android Windowing): Document what new
	frame parameters are now supported.
	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): New
	field `isFullscreen'.
	(detachWindow, attachWindow): Sync fullscreen state.
	(onWindowFocusChanged): Add more logging.
	(onResume): Restore previous fullscreen state.
	(syncFullscreen): New function.
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow)
	(setFullscreen): New function.
	* src/android.c (struct android_emacs_window): Add new method.
	(android_init_emacs_window): Look up new method.
	(android_set_fullscreen): New function.
	* src/androidgui.h:
	* src/androidterm.c (android_fullscreen_hook): Implement
	accordingly.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Fix crashes in desktop-save-mode

	* lisp/subr.el (overriding-text-conversion-style, y-or-n-p):
	Disable text conversion when reading from minibuffer.
	* src/androidfns.c (android_make_monitor_attribute_list): New
	function.
	(Fandroid_display_monitor_attributes_list): Call it to set
	monitor_frames, which avoids a NULL pointer dereference.
	Reported by Angelo Graziosi <angelo.g0@libero.it>.

2023-02-19  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	Don't rely on dynamic scoping to fix bug#59213

	Rather than look up a dynamically scoped var to decide whether to trim
	closures, use an ad-hoc marker on those closures which should not be trimmed.

	* lisp/emacs-lisp/cconv.el (cconv-dont-trim-unused-variables): Delete var.
	(cconv-make-interpreted-closure): Use a `:closure-dont-trim-context`
	markers instead.

	* lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper): Use
	`:closure-dont-trim-context` rather than `cconv-dont-trim-unused-variables`.

	* lisp/emacs-lisp/testcover.el (testcover-analyze-coverage): Remove
	workaround for `cconv-dont-trim-unused-variables`.

	* test/lisp/emacs-lisp/cconv-tests.el (cconv-safe-for-space): New test.

2023-02-18  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp's user and host name completion

	* lisp/net/tramp.el (tramp-completion-handle-file-exists-p):
	Improve user name completion.
	(tramp-skeleton-file-exists-p): New defmacro, which also handles
	host name completion.
	(tramp-handle-file-exists-p):
	* lisp/net/tramp-adb.el (tramp-adb-handle-file-exists-p):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-exists-p):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-exists-p):
	Use it.

2023-02-18  andrés ramírez  <rrandresf@hotmail.com>  (tiny change)

	Allow disabling viper faces in the minibuffer

	* lisp/emulation/viper-cmd.el (viper-enable-minibuffer-faces): New
	defcustom.
	(viper-set-mode-vars-for): Use it to decide whether to use
	distinct faces in the minibuffer.  (Bug#61432)

2023-02-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-18  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/input.texi (On-Screen Keyboards): Document
	`touch-screen-always-display'.
	* doc/lispref/commands.texi (Misc Events): Improve documentation
	of text conversion events.
	* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog, display1):
	Reorder buttons to make more sense.
	* lisp/elec-pair.el (electric-pair-analyze-conversion): New
	function.
	* lisp/simple.el (analyze-text-conversion): Improve integration
	with electric pair modes.
	* lisp/term.el (term-mode): Always display the onscreen
	keyboard.
	* lisp/touch-screen.el (touch-screen-display-keyboard)
	(touch-screen-handle-point-up): Respect new options.
	* src/textconv.c (really_set_composing_text): Stop widenining
	unnecessarily.
	(really_delete_surrounding_text): Really delete surrounding
	text.  Give text conversion analyzers the buffer text.
	(syms_of_textconv): Update doc string.

2023-02-18  Stefan Kangas  <stefankangas@gmail.com>

	Remove redundant requires from package.el

	* lisp/emacs-lisp/package.el (package-check-signature)
	(package-untar-buffer): Simplify by removing redundant require for
	autoloaded function.

2023-02-18  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	1769a588300 Fix some uses of 'use-dialog-box'
	deef41a8259 Fix hi-lock-tests when 'use-dialog-box' is non-nil
	5093a534960 Fix regression due to change in face sort order by 'face-...
	3e747630999 * lisp/files.el (file-equal-p): Work around Haiku stat bug.
	13fd7667f9c ; * src/treesit.c: Improve sectioning.
	a40b1745d4a (project-vc-backend-markers-alist): Add entry for vc-got
	18e96ed7c8a project.el: Extract backend->marker association for a defvar
	0a5615669a4 Don't completely clip into visible range in treesit_recor...
	5b34fc07085 * lisp/treesit.el (treesit-node-at): Update docstring (bu...
	1c7d7623781 ; Minor copyedit of NEWS wrt *-ts-modes
	09fad246de8 * lisp/calc/calc.el (calc-mode): Improve docstring.
	8aad8d75aa9 ; Improve and update documentation of native compilation
	d6e4f243720 Merge 'emacs-29' into 'feature/inhibit-native-comp-cleanup'
	a555abc56d5 Fix order of faces in 'face-list'
	b44a7ff85dc Allow 'icon-title-format' to have the value t
	f1f571e72ae Add electric indent for preproc directives
	83af806ab7c Rename 'emacs-news-toggle-tag' to 'emacs-news-cycle-tag'
	5bc88b3b175 Add menu to news-mode
	40f4bc4e0aa ; Avoid installing VC package dependencies multiple times
	1c9d81a2b42 Attempt to recognize if a VC package has no Elisp files
	2550e8bb0b0 Fix mule-tests under en_US.UTF-8 locale
	32795309939 Move block closer above declaration_list rule (bug#61531)
	b18754bb179 Minor improvements in c-ts-mode and docs
	3c6b726a7b4 Add super node as a keyword
	1917c51fe68 ; Prevent ERC-induced false positive in JUnit report
	b16965ef7e6 Delete perplexing paragraph from Gnus manual
	43c62a4732d ; Fix typo
	fdac69b45e6 ; Auto-commit of loaddefs files.
	7678b7e46f2 Eglot: check server capability before sending didSave (bu...
	a3a1ef7bd5e Fix rust-ts-mode type and module highlighting (Bug#61302)
	477aa047ee7 rust-ts-mode: Highlight variable reassignments
	5206a551c16 Improve backward compatibility of save-restriction
	accd88d5545 Don't indent template_string contents (bug#61503)
	d97a3839967 csharp-ts-mode: fontify compiler directives (bug#61512)
	420d2cae846 Update to Transient v0.3.7-209-gdab1dfa
	a3751b5d0c1 ; Raise an error if a VC package checkout is empty
	6a32ba8b69c ; Fix the installation of dependencies for VC packages
	4eac80fcc39 ; Prepare to update ERC version to 5.5
	4f099a72173 ; Remove failing erc-reuse-buffers test
	ce4a066ed1e * Generate trampolines in a temporary directory if no oth...
	4bb27a5ca93 ; Minor docs copyedits
	13bcff3da5c Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	3d572ae0d50 Rename with/without-narrowing to with/without-restriction
	d806b0e33cf * lisp/repeat.el: Rename internal function and variable (...
	1a64f326e0a * Fix previous change
	95692f6754c Rename native-comp-deferred-compilation-deny-list
	8d8464bd5a9 Rename native-comp-deferred-compilation into native-comp-...
	5d0912f1445 Rename comp-enable-subr-trampolines into native-comp-enab...
	dd8b720ee74 ; * etc/NEWS: Fix typos.
	909bd04cf5f ; * lisp/calendar/lunar.el: Add comments. (bug#61460)
	10f2aedea9a ; * lisp/progmodes/c-ts-mode.el (c-ts-base-mode): delete ...
	abfd00e5c02 * lisp/emacs-lisp/comp.el (native-comp-never-optimize-fun...
	1795839babc Support `comp-enable-subr-trampolines' as string value
	865758130a1 ; * admin/git-bisect-start: Update failing commits
	b948d0d7efe Merge branch 'scratch/fix-locked-narrowing'
	b6e2799aa1c * Some more `inhibit-native-compile' clean-up
	dcb2379a463 Minor improvements to labeled narrowing
	c0681cd3477 Revert "Add new variable 'inhibit-native-compilation'"
	3969a34fa1b Revert "Rename to inhibit-automatic-native-compilation"
	4297039bd13 Save and restore the absence of narrowing locks
	2956e54b1dd Add an extensive test for labeled (locked) narrowing
	79ce185ad13 Update the documentation about labeled (locked) narrowing
	a6cd4553d48 Rename two long line optimizations variables
	0d73e4aa261 Add specific symbols for narrowings
	d8438e2bb44 Add 'without-narrowing' macro
	97314447e60 Make 'narrowing-lock' and 'narrowing-unlock' internal
	a4aa32bdfff Fix 'save-restriction' for narrowing locks

2023-02-18  Protesilaos Stavrou  <info@protesilaos.com>

	Rename 'display-time-time-and-date-indicator' to 'display-time-date-and-time' (bug#61567)

	* etc/NEWS:
	* lisp/time.el (display-time-time-and-date-indicator)
	(display-time-date-and-time, display-time-string-forms): Update symbol.

2023-02-18  Po Lu  <luangruo@yahoo.com>

	Notify input methods when editing fails

	* INSTALL.android: Clarify build instructions.
	* src/textconv.c (struct complete_edit_check_context): New
	structure.
	(complete_edit_check): New function.
	(handle_pending_conversion_events_1): If the window is known,
	then ensure that any editing failures are reported to the input
	method.

2023-02-18  Po Lu  <luangruo@yahoo.com>

	* configure.ac: Fix typo.

2023-02-18  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac: Check for madvise.
	* lisp/international/fontset.el (script-representative-chars):
	Improve detection of CJK fonts.
	* src/pdumper.c (dump_discard_mem): Use madvise if possible.
	* src/sfnt.c (sfnt_map_glyf_table, sfnt_unmap_glyf_table): New
	functions.
	* src/sfnt.h (struct sfnt_glyf_table): New field.
	* src/sfntfont.c (struct sfnt_font_info, sfntfont_open)
	(sfntfont_close, sfntfont_detect_sigbus): Allow mmapping fonts
	if possible.
	* src/sfntfont.h: Update prototypes.
	* src/sysdep.c (handle_sigbus, init_sigbus, init_signals):
	Initialize SIGBUS correctly.

2023-02-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-17  Stefan Kangas  <stefankangas@gmail.com>

	Use more recent public_suffix_list.dat where possible

	* lisp/url/url-domsuf.el (url-domsuf--public-suffix-file): New
	function to look for a more recent version of public_suffix_list.dat
	on the system than the one that is shipped with Emacs.
	(url-domsuf-parse-file): Use above new function.
	* test/lisp/url/url-domsuf-tests.el
	(url-domsuf--public-suffix-file): New test.

2023-02-17  Alan Mackenzie  <acm@muc.de>

	Make the byte compiler give correct warning positions in eval-and-compile

	This fixes bug #61579.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-environment): Remove a
	spurious `byte-run-strip-symbol-position' from the core form of the
	eval-and-compile element.

2023-02-17  Stefan Kangas  <stefankangas@gmail.com>

	Use substitute-command-keys more in Calc help

	* lisp/calc/calc-ext.el (calc-do-prefix-help):
	* lisp/calc/calc-help.el (calc-help-prefix, calc-help-for-help)
	(calc-h-prefix-help, calc-inverse-prefix-help)
	(calc-hyperbolic-prefix-help, calc-inv-hyp-prefix-help)
	(calc-f-prefix-help, calc-s-prefix-help, calc-r-prefix-help)
	(calc-j-prefix-help, calc-a-prefix-help, calc-b-prefix-help)
	(calc-c-prefix-help, calc-d-prefix-help, calc-g-prefix-help)
	(calc-k-prefix-help, calc-m-prefix-help, calc-t-prefix-help)
	(calc-u-prefix-help, calc-l-prefix-help, calc-v-prefix-help):
	* lisp/calc/calc-misc.el (calc-dispatch-help, calc-help):
	* lisp/calc/calc.el (calc-do-dispatch): Use substitute-command keys.

2023-02-17  Mattias Engdegård  <mattiase@acm.org>

	Move side-effect-free and pure declarations to function definitions

	Some Lisp functions still had their `side-effect-free` and `pure`
	properties declared in byte-opt.el; do it at their definition instead.
	The lists in byte-opt.el now only contain functions implemented in C
	and function aliases.

	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns)
	(side-effect-and-error-free-fns, pure-fns):
	Remove functions whose properties are now declared elsewhere
	and some obsolete entries.
	* lisp/custom.el (custom-variable-p):
	* lisp/emacs-lisp/lisp.el (buffer-end):
	* lisp/emacs-lisp/regexp-opt.el (regexp-opt):
	* lisp/env.el (getenv):
	* lisp/simple.el (count-lines, mark, string-empty-p, lax-plist-get):
	* lisp/subr.el (ignore, always, zerop, fixnump, bignump, lsh, last)
	(eventp, mouse-movement-p, log10, memory-limit, string-greaterp)
	(interactive-p):
	* lisp/window.el (get-lru-window, get-largest-window, (window-edges)
	(window-body-edges, window-pixel-edges, window-body-pixel-edges)
	(window-absolute-pixel-edges, window-absolute-body-pixel-edges)
	(one-window-p):
	Declare functions `side-effect-free` and/or `pure` as appropriate.

2023-02-17  Po Lu  <luangruo@yahoo.com>

	Work around race condition bug in Android 13's input manager

	* src/androidterm.c (android_get_selection): Use ephemeral last
	point.
	* src/textconv.c (report_selected_window_change): Set
	w->ephemeral_last_point to the window's point now.

2023-02-17  Po Lu  <luangruo@yahoo.com>

	Update emacsbug and version.el for the Android port

	* java/Makefile.in (install_temp/assets/version): New generated
	file.
	* lisp/loadup.el: Set emacs versions appropriately prior to
	dumping on Android.
	* lisp/mail/emacsbug.el (emacs-build-description): Insert
	Android build fingerprint.
	* lisp/version.el (emacs-repository-version-android)
	(emacs-repository-get-version, emacs-repository-get-branch):
	Implement for Android.
	* src/androidterm.c (android_set_build_fingerprint): New
	function.
	(syms_of_androidterm): New variable `android-build-fingerprint'.

2023-02-17  Po Lu  <luangruo@yahoo.com>

	* src/android.c (android_exception_check): Fix typo.

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-17  Po Lu  <luangruo@yahoo.com>

	Improve logging of Java exceptions

	* src/android.c (android_exception_check): Print more detailed
	information.

2023-02-17  Po Lu  <luangruo@yahoo.com>

	Fix crash on old versions of Android

	* java/org/gnu/emacs/EmacsService.java (nameKeysym): Implement
	stub on Android 3.0 and earlier.

2023-02-17  Protesilaos Stavrou  <info@protesilaos.com>

	Define 'display-time-time-and-date-indicator' face

	* etc/NEWS: Announce the new face for the 'display-time-format'.
	* lisp/time.el (display-time-time-and-date-indicator): Define new face.
	(display-time-string-forms): Use the new face. (Bug#61567)

2023-02-17  Alan Mackenzie  <acm@muc.de>

	Add handling of the C11 _Generic construct to C Mode

	This fixes bug #61481.

	* lisp/progmodes/cc-engine.el (c-guess-basic-syntax): Add a new CASE 6 for
	_Generic.

	* lisp/progmodes/cc-fonts.el (c-fontify-types-and-refs): Use `let*' rather
	than `let'.
	(c-get-fontification-context): Add the new result `generic', and add handling
	to determine it.
	(c-font-lock-declarations): Call c-font-lock-c11-generic-clause when needed.
	(c-font-lock-c11-generic-clause): New function.

	* lisp/progmodes/cc-langs.el (c-generic-kwds, c-generic-key): New lang
	constants/variable.

2023-02-17  Po Lu  <luangruo@yahoo.com>

	Fix build and running on Android 2.2

	* INSTALL.android: Document that Android 2.2 is now supported,
	with caveats.
	* configure.ac (ANDROID_MIN_SDK, ANDROID_SDK_18_OR_EARLIER)
	(SYSTEM_TYPE, ANDROID_STUBIFY, SIZEOF_LONG): Correctly detect
	things missing on Android 2.2.
	* java/Makefile.in (ANDROID_JAR, JARSIGNER_FLAGS):
	* java/debug.sh (jdb, gdbserver, line):
	* java/org/gnu/emacs/EmacsApplication.java (findDumpFile):
	* java/org/gnu/emacs/EmacsService.java (onCreate):
	* java/org/gnu/emacs/EmacsThread.java (EmacsThread, run): Run
	parameter initialization on main thread.
	* src/android-asset.h (struct android_asset_manager)
	(struct android_asset, AAssetManager_fromJava, AAssetManager_open)
	(AAsset_close, android_asset_create_stream)
	(android_asset_read_internal, AAsset_openFileDescriptor)
	(AAsset_getLength, AAsset_getBuffer, AAsset_read): New file.
	* src/android.c (android_user_full_name, android_hack_asset_fd)
	(android_check_compressed_file): Implement for Android 2.2.
	* src/process.c (Fprocess_send_eof): Don't call tcdrain if
	unavailable.
	* src/sfntfont-android.c (system_font_directories): Fix compiler
	warning.
	* src/sfntfont.c (sfntfont_read_cmap): Correctly test rc of
	emacs_open.
	* src/textconv.c (handle_pending_conversion_events_1): Mark
	buffer UNINIT.

2023-02-17  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	f1f571e72ae Add electric indent for preproc directives
	83af806ab7c Rename 'emacs-news-toggle-tag' to 'emacs-news-cycle-tag'
	5bc88b3b175 Add menu to news-mode
	40f4bc4e0aa ; Avoid installing VC package dependencies multiple times
	1c9d81a2b42 Attempt to recognize if a VC package has no Elisp files

2023-02-16  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Fonts):
	* doc/emacs/input.texi (On-Screen Keyboards):
	* doc/lispref/commands.texi (Misc Events): Update documentation.
	* java/org/gnu/emacs/EmacsInputConnection.java (setSelection):
	New function.
	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView)
	(reconfigureFrontBuffer): Make bitmap references weak
	references.
	* java/org/gnu/emacs/EmacsView.java (handleDirtyBitmap): Don't
	clear surfaceView bitmap.
	* lisp/comint.el (comint-mode):
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Improve detection of CJK fonts.
	* lisp/isearch.el (set-text-conversion-style): New variable.
	(isearch-mode, isearch-done): Save and restore the text
	conversion style.
	* lisp/minibuffer.el (minibuffer-mode): Set an appropriate text
	conversion style.
	* lisp/simple.el (analyze-text-conversion): Run
	post-self-insert-hook properly.
	* lisp/subr.el (read-char-from-minibuffer): Disable text
	conversion when reading character.
	* src/androidterm.c (show_back_buffer): Don't check that F is
	not garbaged.
	(android_update_selection, android_reset_conversion): Use the
	ephemeral last point and handle text conversion being disabled.
	* src/buffer.c (syms_of_buffer): Convert old style DEFVAR.
	* src/keyboard.c (kbd_buffer_get_event): Handle text conversion
	first.
	* src/lisp.h: Update prototypes.
	* src/lread.c (read_filtered_event): Temporarily disable text
	conversion.
	* src/sfnt.c (sfnt_decompose_glyph_1, sfnt_decompose_glyph_2):
	New functions.
	(sfnt_decompose_glyph, sfnt_decompose_instructed_outline):
	Refactor contour decomposition to those two functions.
	(main): Update tests.
	* src/sfntfont-android.c (system_font_directories): Add empty
	field.
	(Fandroid_enumerate_fonts, init_sfntfont_android): Enumerate
	fonts in a user fonts directory.
	* src/sfntfont.c (struct sfnt_font_desc): New field
	`num_glyphs'.
	(sfnt_enum_font_1): Set num_glyphs and avoid duplicate fonts.
	(sfntfont_glyph_valid): New function.
	(sfntfont_lookup_char, sfntfont_list_1): Make sure glyphs found
	are valid.

	* src/textconv.c (sync_overlay, really_commit_text)
	(really_set_composing_text, really_set_composing_region)
	(really_delete_surrounding_text, really_set_point_and_mark)
	(handle_pending_conversion_events_1)
	(handle_pending_conversion_events, conversion_disabled_p)
	(disable_text_conversion, resume_text_conversion)
	(Fset_text_conversion_style, syms_of_textconv): Update to
	respect new options.
	* src/textconv.h:
	* src/window.h (GCALIGNED_STRUCT): New field
	`ephemeral_last_point'.
	* src/xdisp.c (mark_window_display_accurate_1): Set it.

2023-02-16  Mattias Engdegård  <mattiase@acm.org>

	Fix test errors when run with fancy charset (bug#61534)

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--unescaped-char-literals, test-suppression):
	Bind `text-quoting-style` to `grave` around tests to force
	generation of ASCII quotes.
	* test/src/lread-tests.el (lread-tests--unescaped-char-literals):
	Subject the reference string to the same text styling as that
	under scrutiny.

2023-02-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	2550e8bb0b0 Fix mule-tests under en_US.UTF-8 locale
	32795309939 Move block closer above declaration_list rule (bug#61531)
	b18754bb179 Minor improvements in c-ts-mode and docs
	3c6b726a7b4 Add super node as a keyword
	1917c51fe68 ; Prevent ERC-induced false positive in JUnit report
	b16965ef7e6 Delete perplexing paragraph from Gnus manual
	43c62a4732d ; Fix typo

2023-02-16  Jim Porter  <jporterbugs@gmail.com>

	Allow unloading Eshell

	* lisp/eshell/em-extpipe.el (eshell-extpipe):
	* lisp/eshell/esh-opt.el (eshell-opt): New groups.  Eshell uses these
	to identify modules to unload.

	* lisp/eshell/em-hist.el (eshell-hist-unload-hook):
	* lisp/eshell/em-ls.el (eshell-ls-unload-hook):
	* lisp/eshell/em-smart.el (eshell-smart-unload-hook):
	* lisp/eshell/eshell.el (eshell-unload-hook): Make obsolete and move
	to...

	* lisp/eshell/em-smart.el (em-smart-unload-function):
	* lisp/eshell/em-hist.el (em-hist-unload-function):
	* lisp/eshell/em-ls.el (em-ls-unload-function):
	* lisp/eshell/eshell.el (eshell-unload-function): ... these.

	* lisp/eshell/esh-mode.el (eshell-mode-unload-hook):
	* lisp/eshell/esh-module.el (eshell-module-unload-hook): Make
	obsolete.

	* lisp/eshell/em-ls.el (eshell-ls-enable-in-dired,
	eshell-ls-disable-in-dired): New functions...
	(eshell-ls-use-in-dired): ... use them.

	* lisp/eshell/esh-module.el (eshell-module--feature-name,
	eshell-unload-modules): New functions.
	(eshell-unload-extension-modules): Use 'eshell-unload-modules'.

	* lisp/eshell/eshell.el (eshell-unload-all-modules): Remove.

	* test/lisp/eshell/eshell-tests-unload.el: New file.

	* doc/misc/eshell.texi (Bugs and ideas): Remove item about unloading
	Eshell not working.

	* etc/NEWS: Announce this change (bug#61501).

2023-02-15  Robert Pluim  <rpluim@gmail.com>

	Describe the effect of 'guess' for 'ido-use-filename-at-point'

	* lisp/ido.el (ido-use-filename-at-point): Document 'guess' value better.

2023-02-15  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/input.texi (On-Screen Keyboards):
	* doc/lispref/commands.texi (Misc Events): Improve documentation
	of text conversion stuff.
	* java/org/gnu/emacs/EmacsInputConnection.java (beginBatchEdit)
	(endBatchEdit, commitCompletion, commitText, deleteSurroundingText)
	(finishComposingText, getSelectedText, getTextAfterCursor)
	(EmacsInputConnection, setComposingRegion, performEditorAction)
	(getExtractedText): Condition debug code on DEBUG_IC.
	* java/org/gnu/emacs/EmacsService.java (EmacsService, updateIC):
	Likewise.
	* lisp/bindings.el (global-map):
	* lisp/electric.el (global-map): Make `text-conversion'
	`analyze-text-conversion'.
	* lisp/progmodes/prog-mode.el (prog-mode): Enable text
	conversion in input methods.
	* lisp/simple.el (analyze-text-conversion): New function.
	* lisp/textmodes/text-mode.el (text-conversion-style)
	(text-mode): Likewise.
	* src/androidterm.c (android_handle_ime_event): Handle
	set_point_and_mark.
	(android_sync_edit): Give Emacs 100 ms instead.
	(android_perform_conversion_query): Skip the active region, not
	the conversion region.
	(getSelectedText): Implement properly.
	(android_update_selection): Expose mark to input methods.
	(android_reset_conversion): Handle `text-conversion-style'.
	* src/buffer.c (init_buffer_once, syms_of_buffer): Add buffer
	local variable `text-conversion-style'.
	* src/buffer.h (struct buffer, bset_text_conversion_style): New
	fields.
	* src/emacs.c (android_emacs_init): Call syms_of_textconv.
	* src/frame.h (enum text_conversion_operation): Rename
	TEXTCONV_SET_POINT.
	* src/lisp.h: Export syms_of_textconv.

	* src/marker.c (set_marker_internal): Force redisplay when the
	mark is set and the buffer is visible on builds that use text
	conversion.  Explain why.

	* src/textconv.c (copy_buffer): Fix copying past gap.
	(get_mark): New function.
	(textconv_query): Implement new flag.
	(sync_overlay): New function.  Display conversion text in an
	overlay.
	(record_buffer_change, really_commit_text)
	(really_set_composing_text, really_set_composing_region)
	(really_delete_surrounding_text, really_set_point)
	(handle_pending_conversion_events_1, decrement_inside)
	(handle_pending_conversion_events, textconv_set_point)
	(get_extracted_text, register_textconv_interface): Various fixes
	and improvements.

	* src/textconv.h (struct textconv_interface): Update
	documentation.
	* src/window.h (GCALIGNED_STRUCT): New field `prev_mark'.
	* src/xdisp.c (mark_window_display_accurate_1): Handle
	prev_mark.

2023-02-15  Robert Pluim  <rpluim@gmail.com>

	New option 'diff-ignore-whitespace-switches'

	Allows specifying the switches to use when ignoring whitespace for
	those of us who don't like "-b".

	* lisp/vc/diff-mode.el (diff-ignore-whitespace-switches): New defcustom.
	(diff-refresh-hunk): Use it when ignoring whitespace.
	* doc/emacs/files.texi (Diff Mode): Describe the new option.
	* etc/NEWS: Announce the new option.

2023-02-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	7678b7e46f2 Eglot: check server capability before sending didSave (bu...
	a3a1ef7bd5e Fix rust-ts-mode type and module highlighting (Bug#61302)
	477aa047ee7 rust-ts-mode: Highlight variable reassignments
	5206a551c16 Improve backward compatibility of save-restriction
	accd88d5545 Don't indent template_string contents (bug#61503)
	d97a3839967 csharp-ts-mode: fontify compiler directives (bug#61512)
	420d2cae846 Update to Transient v0.3.7-209-gdab1dfa
	a3751b5d0c1 ; Raise an error if a VC package checkout is empty
	6a32ba8b69c ; Fix the installation of dependencies for VC packages
	4eac80fcc39 ; Prepare to update ERC version to 5.5
	4f099a72173 ; Remove failing erc-reuse-buffers test
	4bb27a5ca93 ; Minor docs copyedits
	13bcff3da5c Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	3d572ae0d50 Rename with/without-narrowing to with/without-restriction
	d806b0e33cf * lisp/repeat.el: Rename internal function and variable (...
	dd8b720ee74 ; * etc/NEWS: Fix typos.
	909bd04cf5f ; * lisp/calendar/lunar.el: Add comments. (bug#61460)
	10f2aedea9a ; * lisp/progmodes/c-ts-mode.el (c-ts-base-mode): delete ...
	865758130a1 ; * admin/git-bisect-start: Update failing commits
	b948d0d7efe Merge branch 'scratch/fix-locked-narrowing'
	dcb2379a463 Minor improvements to labeled narrowing
	cc30422825a Fix spurious display of eclipses in Calendar
	f2114e8d89f Fix indentation for closing bracket in c-ts-mode (bug#61398)
	f49caaa8925 ; * src/pdumper.c (dump_buffer): Update hash.
	fe2ea5ddd8d Update to Org 9.6.1-31-gaf1bb1
	8280d721d7c * src/.gdbinit (nextcons): Amend $.u.cdr to $.u.s.u.cdr (...
	eb2b0931cf1 Add lambda_expression to c-ts-common-indent-type-regexp-a...
	2da05876edb ; Use the right name when specifying VC packages
	d4fc7012978 Tolerate missing elpa-packages.eld files
	8bc1b7d0b27 Avoid warning about 'load-path' in non-interactive sessions
	3d17aee13d9 ; Fix installation of dependencies for VC packages
	86ca7df6a34 ; Mention Hunspell private-dictionary misfeature in doc s...
	7287b7b53a1 Support webkit2gtk-4.1
	048a2dabfc4 ; Fix typo
	8f3091defb3 ; Fix typo in buffer.h
	4da398d8b57 ; Fix typos
	074008ee2d2 ; Fix doc strings in lisp/image/ directory
	2d1e43436da ; Improve documentation of hash functions.
	900f7e07275 ; Remove extraneous local variables from image-dired-*.el...
	4297039bd13 Save and restore the absence of narrowing locks
	4f053afe8e7 bug-reference: prevent match-data clobbering (bug#61395)
	10af9fbcad1 ; * admin/notes/tree-sitter/starter-guide: Typos.
	9ac242ce93d ; Fix recent changes in treesit docs
	f5789aefc2e Rename LIMIT to DEPTH in tree-sitter functions (bug#61231)
	b39821fdcef ; Fix incorrect function name in treesit manual
	51901736965 Add 'live' property to treesit-node-check (bug#61235)
	56960a6558b Update to Transient v0.3.7-205-gb8ad0da
	68a6b364d1c Fix 'rmail-summary-output'
	67c6ec25590 lisp-mode: add docstring recognition for more common lisp...
	417a8ed8b05 ; Improve discoverability of empty file names handling
	e47cf6ca15a Update to Transient v0.3.7-204-gecff8c2
	b04cce02ff4 Fix Scala entry in Eglot's DB of LSP servers
	973c1d24c6a ruby-ts-mode: Also don't reindent 'identifier' when insid...
	a5651c0c403 ruby-ts-mode: Fix indentation inside empty if/unless/case...
	2956e54b1dd Add an extensive test for labeled (locked) narrowing
	79ce185ad13 Update the documentation about labeled (locked) narrowing
	a6cd4553d48 Rename two long line optimizations variables
	0d73e4aa261 Add specific symbols for narrowings
	d8438e2bb44 Add 'without-narrowing' macro
	97314447e60 Make 'narrowing-lock' and 'narrowing-unlock' internal
	a4aa32bdfff Fix 'save-restriction' for narrowing locks

	# Conflicts:
	#	etc/NEWS

2023-02-15  Robert Pluim  <rpluim@gmail.com>

	Teach 'diff-ignore-whitespace-hunk' how to regenerate all hunks

	This implements the request from Bug#58516.

	* lisp/vc/diff-mode.el (diff--ignore-whitespace-all-hunks): New
	function.  Iterate over all hunks, regenerate ignoring whitespace
	changes.
	(diff-ignore-whitespace-hunk): Call `diff--ignore-whitespace-all-hunks'
	when called with a prefix arg.

	* doc/emacs/files.texi (Diff Mode): Describe new functionality.
	* etc/NEWS: Announce the change.

2023-02-15  Mattias Engdegård  <mattiase@acm.org>

	Add some `pure` and `side-effect-free` declarations

	* lisp/subr.el (string-to-list, string-to-vector, string-or-null-p)
	(booleanp, special-form-p, plistp, macrop, compiled-function-p)
	(flatten-tree):
	* lisp/emacs-lisp/subr-x.el (string-join, string-truncate-left)
	(string-blank-p, string-remove-prefix, string-remove-suffix)
	(string-pad, string-chop-newline):
	Declare functions pure, side-effect-free, and/or error-free.

2023-02-15  Po Lu  <luangruo@yahoo.com>

	Make debug.sh detect adb running as root

	* java/debug.sh: Run gdbserver directly if possible.

2023-02-15  Po Lu  <luangruo@yahoo.com>

	Fix small bugs

	* src/androidterm.c (android_handle_ime_event): Pacify compiler
	warnings.
	* src/textconv.c (really_set_composing_text)
	(handle_pending_conversion_events, get_extracted_text): Fix
	reentrancy problems and uses of uninitialized values.

2023-02-15  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-15  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac (HAVE_TEXT_CONVERSION): Define on Android.
	* doc/emacs/input.texi (On-Screen Keyboards): Document ``text
	conversion'' slightly.
	* doc/lispref/commands.texi (Misc Events): Document new
	`text-conversion' event.
	* java/org/gnu/emacs/EmacsContextMenu.java (display): Use
	`syncRunnable'.
	* java/org/gnu/emacs/EmacsDialog.java (display): Likewise.
	* java/org/gnu/emacs/EmacsEditable.java: Delete file.
	* java/org/gnu/emacs/EmacsInputConnection.java
	(EmacsInputConnection): Reimplement from scratch.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Add new
	functions.
	* java/org/gnu/emacs/EmacsService.java (EmacsService, getEmacsView)
	(getLocationOnScreen, sync, getClipboardManager, restartEmacs):
	Use syncRunnable.
	(syncRunnable): New function.
	(updateIC, resetIC): New functions.

	* java/org/gnu/emacs/EmacsView.java (EmacsView): New field
	`inputConnection' and `icMode'.
	(onCreateInputConnection): Update accordingly.
	(setICMode, getICMode): New functions.

	* lisp/bindings.el (global-map): Ignore text conversion events.
	* src/alloc.c (mark_frame): Mark text conversion data.
	* src/android.c (struct android_emacs_service): New fields
	`update_ic' and `reset_ic'.
	(event_serial): Export.
	(android_query_sem): New function.
	(android_init_events): Initialize new semaphore.
	(android_write_event): Export.
	(android_select): Check for UI thread code.
	(setEmacsParams, android_init_emacs_service): Initialize new
	methods.
	(android_check_query, android_begin_query, android_end_query)
	(android_run_in_emacs_thread):
	(android_update_ic, android_reset_ic): New functions for
	managing synchronous queries from one thread to another.

	* src/android.h: Export new functions.
	* src/androidgui.h (enum android_event_type): Add input method
	events.
	(enum android_ime_operation, struct android_ime_event)
	(union android_event, enum android_ic_mode): New structs and
	enums.

	* src/androidterm.c (android_window_to_frame): Allow DPYINFO to
	be NULL.
	(android_decode_utf16, android_handle_ime_event)
	(handle_one_android_event, android_sync_edit)
	(android_copy_java_string, beginBatchEdit, endBatchEdit)
	(commitCompletion, deleteSurroundingText, finishComposingText)
	(getSelectedtext, getTextAfterCursor, getTextBeforeCursor)
	(setComposingText, setComposingRegion, setSelection, getSelection)
	(performEditorAction, getExtractedText): New functions.
	(struct android_conversion_query_context):
	(android_perform_conversion_query):
	(android_text_to_string):
	(struct android_get_selection_context):
	(android_get_selection):
	(struct android_get_extracted_text_context):
	(android_get_extracted_text):
	(struct android_extracted_text_request_class):
	(struct android_extracted_text_class):
	(android_update_selection):
	(android_reset_conversion):
	(android_set_point):
	(android_compose_region_changed):
	(android_notify_conversion):
	(text_conversion_interface): New functions and structures.
	(android_term_init): Initialize text conversion.

	* src/coding.c (syms_of_coding): Define Qutf_16le on Android.
	* src/frame.c (make_frame): Clear conversion data.
	(delete_frame): Reset conversion state.

	* src/frame.h (enum text_conversion_operation)
	(struct text_conversion_action, struct text_conversion_state)
	(GCALIGNED_STRUCT): Update structures.
	* src/keyboard.c (read_char, readable_events, kbd_buffer_get_event)
	(syms_of_keyboard): Handle text conversion events.
	* src/lisp.h:
	* src/process.c: Fix includes.

	* src/textconv.c (enum textconv_batch_edit_flags, textconv_query)
	(reset_frame_state, detect_conversion_events)
	(restore_selected_window, really_commit_text)
	(really_finish_composing_text, really_set_composing_text)
	(really_set_composing_region, really_delete_surrounding_text)
	(really_set_point, complete_edit)
	(handle_pending_conversion_events_1)
	(handle_pending_conversion_events, start_batch_edit)
	(end_batch_edit, commit_text, finish_composing_text)
	(set_composing_text, set_composing_region, textconv_set_point)
	(delete_surrounding_text, get_extracted_text)
	(report_selected_window_change, report_point_change)
	(register_texconv_interface): New functions.

	* src/textconv.h (struct textconv_interface)
	(TEXTCONV_SKIP_CONVERSION_REGION): Update prototype.
	* src/xdisp.c (mark_window_display_accurate_1):
	* src/xfns.c (xic_string_conversion_callback):
	* src/xterm.c (init_xterm): Adjust accordingly.

2023-02-14  Jonas Bernoulli  <jonas@bernoul.li>

	Rewrite emoji's usage of transient

	* lisp/international/emoji.el:
	(emoji--done-derived): Remove variable.
	(emoji-insert, emoji-recent, emoji-search, emoji-list-select):
	Define using 'transient-define-prefix'.  Use a base suffix group
	whose value is calculated dynamically.
	(emoji--setup-prefix, emoji--setup-suffixes, emoji-group-description):
	New functions used to dynamically calculate suffixes.
	(emoji--narrow): New suffix class, used to pass state to recursive,
	narrowed invocations of the prefix command the user initially invoked.
	(emoji-insert-glyph): New suffix command that is used for all glyphs
	that have no derivations.  Previously a separate command was define
	for each glyph.
	(emoji--fontify-glyph): Replace 'inhibit-derived' argument with
	'done-derived' argument.
	(emoji--define-transient): Remove function.
	(emoji--layout): New function, replacing 'emoji--define-transient'.
	Return the suffixes in 'define-transient-prefix' format.  Unlike
	the replaced function, do not define any new commands, instead use
	either the current prefix command or 'emoji-insert-glyph'.
	(emoji--recent-transient): Remove function.
	(emoji--char-sequence): New function.
	(emoji--add-recent): Remove all text properties from glyph.
	(emoji--choose-emoji): Remove function.

2023-02-14  Michael Albinus  <michael.albinus@gmx.de>

	Tramp cleanup

	* lisp/net/tramp.el:
	* lisp/net/tramp-integration.el:
	* lisp/net/tramp-sh.el: Use `string-join'.

	* test/lisp/net/tramp-tests.el: Use `string-join'.

2023-02-14  Mattias Engdegård  <mattiase@acm.org>

	Fix recent LAP optimizer error

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Fix a flaw in the

	  dup (varset|varbind|stack-set) discard -> (varset|varbind|stack-set)

	rule: don't match stack-set(1) which is dealt with elsewhere, and
	generalize to discard(N).

2023-02-14  Andrea Corallo  <akrl@sdf.org>

	* src/comp.c (Fcomp__compile_ctxt_to_file): Don't create output file twice

2023-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Fix insert-file-contents on /proc files

	This should fix Bug#9800 (2011-10-19).
	* src/fileio.c (Finsert_file_contents):
	Do not trust st_size even on regular files, as the file might
	be a Linux /proc file, or it might be growing.
	Instead, always read to EOF when END is nil.

2023-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Fix src/fileio.c comment

	* src/fileio.c (Finsert_file_contents): Fix comment.
	Since the code relies on st_size, it’s limited to
	regular files, not to seekable files.

2023-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Don’t scan text twice to guess coding system

	* src/fileio.c (Finsert_file_contents): If the file shrank
	below 4 KiB, don’t read duplicate text into READ_BUF.
	This also removes a use of SEEK_END, which Linux /proc
	file systems do not support (not that we should get here
	with /proc).

2023-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Improve insert-file-contents on non-regular files

	* src/fileio.c (Finsert_file_contents):
	If the file is not a regular file, check REPLACE and VISIT
	before doing further syscalls that won’t matter in this case.

2023-02-13  Paul Eggert  <eggert@cs.ucla.edu>

	Improve insert-file-contents checking

	* src/fileio.c (Finsert_file_contents): Check BEG, END,
	REPLACE for validity before launching into opening files etc.

2023-02-13  Mattias Engdegård  <mattiase@acm.org>

	LAP optimizer: more stack reduction hoisting

	Hoisting stack reduction ops allows them to coalesce and/or cancel out
	pushing ops, and for useful operations to sink and combine, such as
	not + goto-if-[not-]nil.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Add the rule

	  UNARY discardN-preserve-tos --> discardN-preserve-tos UNARY

	where UNARY pops and pushes one value.

	Generalize the rule

	  const discardN-preserve-tos --> discardN const

	to any 0-ary op, not just const: varref, point, etc.

2023-02-13  Michael Albinus  <michael.albinus@gmx.de>

	Add new user option password-colon-equivalents

	* lisp/international/mule-conf.el (password-colon-equivalents):
	New defcustom.

	* lisp/comint.el (comint-password-prompt-regexp):
	* lisp/eshell/esh-mode.el (eshell-password-prompt-regexp): Use it.

	* lisp/net/tramp-compat.el (tramp-compat-password-colon-equivalents):
	New variable.

	* lisp/net/tramp.el (tramp-password-prompt-regexp): Use it.

2023-02-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	f2114e8d89f Fix indentation for closing bracket in c-ts-mode (bug#61398)
	f49caaa8925 ; * src/pdumper.c (dump_buffer): Update hash.
	fe2ea5ddd8d Update to Org 9.6.1-31-gaf1bb1

2023-02-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	eb2b0931cf1 Add lambda_expression to c-ts-common-indent-type-regexp-a...
	2da05876edb ; Use the right name when specifying VC packages
	d4fc7012978 Tolerate missing elpa-packages.eld files
	8bc1b7d0b27 Avoid warning about 'load-path' in non-interactive sessions
	3d17aee13d9 ; Fix installation of dependencies for VC packages
	86ca7df6a34 ; Mention Hunspell private-dictionary misfeature in doc s...
	7287b7b53a1 Support webkit2gtk-4.1
	048a2dabfc4 ; Fix typo

2023-02-12  Michael Albinus  <michael.albinus@gmx.de>

	Support Tramp multi-hop completion

	* lisp/net/tramp.el (tramp-completion-handle-expand-file-name)
	(tramp-completion-handle-file-exists-p)
	(tramp-completion-handle-file-name-directory): Support multi-hop
	completion.

	* test/lisp/net/tramp-tests.el
	(tramp-test26-interactive-file-name-completion): Fix test.

2023-02-12  Alan Mackenzie  <acm@muc.de>

	* src/.gdbinit (nextcons): Amend $.u.cdr to $.u.s.u.cdr

2023-02-12  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-12  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Environment): Document
	notifications permission.
	* java/org/gnu/emacs/EmacsEditable.java (EmacsEditable):
	* java/org/gnu/emacs/EmacsInputConnection.java
	(EmacsInputConnection): New files.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Load
	library dependencies in a less verbose fashion.
	* java/org/gnu/emacs/EmacsView.java (EmacsView): Make imManager
	public.
	(onCreateInputConnection): Set InputType to TYPE_NULL for now.
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, onKeyDown)
	(onKeyUp, getEventUnicodeChar): Correctly handle key events with
	strings.
	* lisp/term/android-win.el (android-clear-preedit-text)
	(android-preedit-text): New special event handlers.
	* src/android.c (struct android_emacs_window): Add function
	lookup_string.
	(android_init_emacs_window): Adjust accordingly.
	(android_wc_lookup_string): New function.
	* src/androidgui.h (struct android_key_event): Improve
	commentary.
	(enum android_lookup_status): New enum.
	* src/androidterm.c (handle_one_android_event): Synchronize IM
	lookup code with X.
	* src/coding.c (from_unicode_buffer): Implement on Android.
	* src/coding.h:
	* src/sfnt.c: Fix commentary.

2023-02-12  Po Lu  <luangruo@yahoo.com>

	Check in new files

	* src/textconv.c (copy_buffer):
	(textconv_query):
	(report_selected_window_change):
	(register_texconv_interface):
	* src/textconv.h (struct textconv_interface):
	(enum textconv_caret_direction):
	(enum textconv_operation):
	(struct textconv_conversion_text):
	(struct textconv_callback_struct): New files.

2023-02-12  Po Lu  <luangruo@yahoo.com>

	Support input method ``text conversion'' on X Windows

	* configure.ac (HAVE_TEXT_CONVERSION): Define on X.
	* etc/NEWS: Announce new change.
	* src/emacs.c (main): Always call init_xterm.
	* src/frame.c (do_switch_frame): Use `fset_selected_window'.
	* src/insdel.c (struct safe_del_range_context): New structure.
	(safe_del_range_1, safe_del_range_2, safe_del_range): New
	functions.
	* src/lisp.h: Export new functions.
	* src/window.c (run_window_change_functions): Report selected
	window and buffer changes so that the input method can be reset.
	* src/xfns.c (XICCallback, Xxic_preedit_caret_callback)
	(Xxic_preedit_done_callback, Xxic_preedit_start_callback)
	(Xxic_preedit_draw_callback): Fix coding style.
	(Xxic_string_conversion_callback): New callback.
	(create_frame_xic): Register string conversion callback.
	(struct x_xim_text_conversion_data): New field `size'.
	(x_encode_xim_text_1, x_encode_xim_text): New functions.
	(xic_string_conversion_callback): New function.
	* src/xterm.c (x_reset_conversion): New function.
	(text_conversion_interface): New variable.
	(init_xterm): Initialize text conversion interface.

2023-02-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	8f3091defb3 ; Fix typo in buffer.h

2023-02-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	4da398d8b57 ; Fix typos
	074008ee2d2 ; Fix doc strings in lisp/image/ directory
	2d1e43436da ; Improve documentation of hash functions.
	900f7e07275 ; Remove extraneous local variables from image-dired-*.el...
	4f053afe8e7 bug-reference: prevent match-data clobbering (bug#61395)
	10af9fbcad1 ; * admin/notes/tree-sitter/starter-guide: Typos.
	9ac242ce93d ; Fix recent changes in treesit docs
	f5789aefc2e Rename LIMIT to DEPTH in tree-sitter functions (bug#61231)
	b39821fdcef ; Fix incorrect function name in treesit manual
	51901736965 Add 'live' property to treesit-node-check (bug#61235)
	56960a6558b Update to Transient v0.3.7-205-gb8ad0da
	68a6b364d1c Fix 'rmail-summary-output'
	67c6ec25590 lisp-mode: add docstring recognition for more common lisp...
	417a8ed8b05 ; Improve discoverability of empty file names handling
	e47cf6ca15a Update to Transient v0.3.7-204-gecff8c2
	b04cce02ff4 Fix Scala entry in Eglot's DB of LSP servers

	# Conflicts:
	#	lisp/transient.el

2023-02-11  Jim Porter  <jporterbugs@gmail.com>

	Make sure core Eshell modules are loaded

	Previously, if you removed all (or most) extension modules from
	Eshell, it failed to load esh-var.el, meaning that you couldn't use
	variable expansions.  To avoid this issue, we now explicitly load the
	core modules in esh-mode.el.

	* lisp/eshell/esh-mode.el: Explicitly require core Eshell modules.

2023-02-11  Michael Albinus  <michael.albinus@gmx.de>

	Support Tramp user name completion

	* lisp/net/tramp.el (tramp-build-completion-file-name-regexp)
	(tramp-completion-handle-expand-file-name)
	(tramp-completion-handle-file-name-directory): Support user name
	completion.

	* test/lisp/net/tramp-tests.el
	(tramp-test26-interactive-file-name-completion): Fix test.

2023-02-11  Mattias Engdegård  <mattiase@acm.org>

	LAP peephole optimizer improvementsa

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Make the improvements:

	- Add the rule

	    stack-ref(X) discardN-preserve-tos(Y)
	    --> discard(Y) stack-ref(X-Y),                X≥Y
	        discard(X) discardN-preserve-tos(Y-X-1),  X<Y

	  with the usual equivalences:

	    stack-set(1) = discardN-preserve-tos(1)
	    stack-ref(0) = dup
	    discard(0) = discardN-preserve-tos(0) = no-op

	  This rule hoists stack reduction to where it is more likely to be
	  exploited further, may reduce the op size through smaller
	  immediates, and sometimes removes either or both operations
	  outright.

	  The rule is inhibited by an immediately following `return` op
	  because other rules will produce better code in that case.

	- Add the rule

	    (discardN-preserve-tos|dup) OP return --> OP return

	  where OP is a unary operation such as `not` or `car`.

	- Generalize a previous rule to

	    NOEFFECT PRODUCER return  -->  PRODUCER return

	  where PRODUCER is now any op that pushes a value without looking at
	  the stack: const, varref, point etc.

2023-02-11  Alan Mackenzie  <acm@muc.de>

	Make edebug see unused variables when lexical-binding is non-nil

	This fixes bug #59213.

	* lisp/emacs-lisp/cconv.el (cconv-dont-trim-unused-variables): New variable.
	(cconv-fv, cconv-make-interpreted-closure): Add/amend doc strings.
	(cconv-make-interpreted-closure): Test cconv-dont-trim-unused-variables, and
	if non-nil, don't "optimize" the lexical environment.

	* lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper): Compile a binding of
	cconv-dont-trim-unused-variables to t around the call of edebug-enter.

	* lisp/emacs-lisp/testcover.el (testcover-analyze-coverage): Add a new arm to
	the pcase form to handle the new form of edebug-enter.

2023-02-11  Po Lu  <luangruo@yahoo.com>

	Fix displaying popup menus from a menu entry on Android

	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity, onDestroy)
	(onWindowFocusChanged): Keep track of the last focused activity.
	* java/org/gnu/emacs/EmacsDialog.java (display1): Use it if
	there is no current focus.

2023-02-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-10  Theodor Thornhill  <theo@thornhill.no>

	Add more java indentation tests

	* test/lisp/progmodes/java-ts-mode-resources/indent.erts: Use default
	indent offset, and tweak the indentation examples.

2023-02-10  Michael Albinus  <michael.albinus@gmx.de>

	Fix last change

2023-02-10  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp file name completion

	* lisp/net/tramp.el (tramp-completion-handle-expand-file-name):
	Reimplement.  It must also work for the non-Tramp case.

	* test/lisp/net/tramp-tests.el
	(tramp-test26-interactive-file-name-completion): Fix test.

2023-02-10  Po Lu  <luangruo@yahoo.com>

	Improve appearance of the Android preferences screen

	* .gitignore: Add org/gnu/emacs/R.java.
	* cross/Makefile.in (top_builddir): Include verbose.mk.  Rewrite
	rules to print nice looking statements.
	* doc/emacs/android.texi (Android, Android Startup)
	(Android Environment, Android Windowing, Android Fonts):
	* doc/emacs/emacs.texi (Top): Add an extra ``Android
	Troubleshooting'' node and move troubleshooting details there.
	* java/Makefile.in: Generate R.java; improve appearance by using
	verbose.mk.

	* java/org/gnu/emacs/EmacsPreferencesActivity.java: Reimplement
	in terms of PreferencesActivity.
	* java/org/gnu/emacs/EmacsView.java (handleDirtyBitmap): Avoid
	flicker.
	* java/res/xml/preferences.xml: New file.
	* src/verbose.mk.in (AM_V_AAPT, AM_V_SILENT): New variables.

2023-02-10  Po Lu  <luangruo@yahoo.com>

	Implement more features for the Emacs ``documents provider''

	* java/org/gnu/emacs/EmacsDocumentsProvider.java (queryRoots):
	Implement isChild.
	(getNotificationUri, notifyChange): New functions.
	(queryDocument1): Set rename and remove flags.
	(queryDocument, queryChildDocuments): Allow the requester to
	detect changes in the directory hierarchy.
	(createDocument, deleteDocument, removeDocument): Signal changes
	to the directory hierarchy.

2023-02-10  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-10  Po Lu  <luangruo@yahoo.com>

	Fix buffer swapping on Android 7.1 and earlier

	* java/org/gnu/emacs/EmacsSurfaceView.java
	(reconfigureFrontBuffer): Don't use function only present on
	Android 8.0 and later.

2023-02-10  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Windowing): Remove yet another
	limitation.
	* java/debug.sh: Make this work on systems which prohibit
	attaching to app processes from adbd.
	* java/org/gnu/emacs/EmacsCopyArea.java (perform): Avoid
	creating copies whenever possible.
	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
	Remove SurfaceView based implementation and use manual double
	buffering with invalidate instead.
	* java/org/gnu/emacs/EmacsView.java (EmacsView, handleDirtyBitmap)
	(raise, lower, onDetachedFromWindow): Adjust accordingly.
	* java/org/gnu/emacs/EmacsWindow.java (windowUpdated): Remove
	function.
	* src/sfntfont.c (sfntfont_open): Set font->max_width correctly.

2023-02-10  Po Lu  <luangruo@yahoo.com>

	Fix IUP for contours which start past end

	Found with Droid Sans Mono hinted with ttfautohint 1.8.4.

	* src/sfnt.c (IUP_SINGLE_PAIR): If i is initially more than end,
	make it start.
	(sfnt_verbose): Handle cases where interpreter->glyph_zone is
	NULL.
	(main): Update tests.

2023-02-10  Jim Porter  <jporterbugs@gmail.com>

	Ensure that Eshell users can run lines of command output as input

	Previously, this failed to work properly because any additional input
	the user entered would have no 'field' property, confusing
	'eshell-get-old-input'.  To fix this, we simply ensure that any
	user-entered text in the output field retains said output field
	(bug#61310).

	* lisp/eshell/esh-util.el (eshell-command-output-properties): New
	variable.
	(eshell--mark-as-output, eshell--mark-yanked-as-output): New
	functions, mostly copied from comint.

	* lisp/eshell/esh-proc.el (eshell-interactive-process-filter):
	* lisp/eshell/esh-mode.el (eshell-interactive-print): Call
	'eshell--mark-as-output'.
	(eshell-get-old-input): Remove properties from the returned string
	just to be safe.

	* test/lisp/eshell/eshell-tests.el (eshell-test-value): New variable.
	(eshell-test/get-old-input/rerun-command)
	(eshell-test/get-old-input/run-output): New tests.

	* test/lisp/eshell/em-prompt-tests.el
	(em-prompt-test/field-properties)
	(em-prompt-test/field-properties/no-highlight): Use
	'eshell-command-output-properties'.

2023-02-10  Jim Porter  <jporterbugs@gmail.com>

	Ensure that deferred commands don't make Eshell forget let-bound values

	* lisp/eshell/esh-cmd.el (Command evaluation macros): Expand this
	documentation to list allowed special forms and caveats for working
	with 'if' and 'while'.
	(eshell-do-eval): Provide more detail in docstring.  Handle
	'eshell-defer' inside 'let' forms.

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/let-rebinds-after-defer): New test (bug#59469).

2023-02-10  Po Lu  <luangruo@yahoo.com>

	Fix typo

	* src/sfnt.c (sfnt_read_cmap_table): Fix typo.
	(main): Update tests.

2023-02-09  Dmitry Gutov  <dgutov@yandex.ru>

	xref--insert-xrefs: Use 'shadow' for the line number colon

	* lisp/progmodes/xref.el (xref--insert-xrefs): Use face 'shadow' for
	the line number colon instead of continuing it face (bug#61340).

2023-02-09  Juri Linkov  <juri@linkov.net>

	* lisp/icomplete.el (icomplete-exhibit): Check validity of the current buffer.

	This function is applicable only in buffers where functions like
	icomplete--field-beg can be called, and they expects either non-nil
	completion-in-region--data or window-minibuffer-p (bug#61308).

2023-02-09  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-09  Po Lu  <luangruo@yahoo.com>

	Allow other text editors to edit files in Emacs' home directory

	* java/AndroidManifest.xml.in: Declare the new documents
	provider.
	* java/README: Describe the meaning of files in res/values.
	* java/org/gnu/emacs/EmacsDocumentsProvider.java
	(EmacsDocumentsProvider): New file.
	* java/res/values-v19/bool.xml:
	* java/res/values/bool.xml: New files.

2023-02-09  Po Lu  <luangruo@yahoo.com>

	Implement instructing compound glyphs

	* src/sfnt.c (sfnt_read_simple_glyph, sfnt_read_compound_glyph)
	(sfnt_read_glyph): Take size_t offsets.
	(struct sfnt_compound_glyph_context)
	(sfnt_expand_compound_glyph_context)
	(sfnt_decompose_compound_glyph): Take size_t contour offsets.
	(sfnt_decompose_glyph): Always close contour even if the first
	point isn't on-curve.
	(sfnt_build_outline_edges): Fix coding style.
	(sfnt_interpret_iup): Skip phantom points during IUP.
	(sfnt_decompose_instructed_outline): Clarify documentation.
	Always close contour even if the first point isn't on-curve.
	(struct sfnt_test_dcontext, sfnt_test_move_to, sfnt_test_line_to)
	(sfnt_test_curve_to, sfnt_transform_f26dot6, sfnt_test_get_glyph)
	(sfnt_test_free_glyph, sfnt_test_span, sfnt_test_edge_ignore)
	(sfnt_interpret_compound_glyph_2, sfnt_test_edges, main): Update
	tests.

	* src/sfnt.h: Export new function.

	* src/sfntfont.c (sfntfont_get_glyph_outline): Handle compound
	glyphs.
	(sfntfont_measure_instructed_pcm, sfntfont_measure_pcm)
	(sfntfont_draw): Update accordingly.

2023-02-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	973c1d24c6a ruby-ts-mode: Also don't reindent 'identifier' when insid...
	a5651c0c403 ruby-ts-mode: Fix indentation inside empty if/unless/case...
	0ec0a610ed2 * lisp/iimage.el (iimage-mode-buffer): Handle multiple re...
	d11d7aee1a6 ; Fix memory leak in treesit.c

2023-02-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	31bf35935f2 ; Fix doc strings in iimage.el

2023-02-08  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (SCFS): Fix order of arguments.
	(sfnt_normalize_vector): Make sure vx and vy are within a
	reasonable range.
	(sfnt_move): Don't move when vectors are orthogonal.
	(main): Update.

2023-02-08  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Startup): Fix typos.
	* src/sfnt.c (sfnt_interpret_msirp): Fix order in which operands
	to MSIRP are popped.
	(main): Reduce ppem values.

2023-02-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-08  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/lispref/frames.texi (On-Screen Keyboards): Describe return
	value of `frame-toggle-on-screen-keyboard'.
	* java/org/gnu/emacs/EmacsSurfaceView.java (surfaceChanged)
	(surfaceCreated, EmacsSurfaceView): Remove useless
	synchronization code.  The framework doesn't seem to look at
	this at all.

	* java/org/gnu/emacs/EmacsView.java (EmacsView):
	(onLayout): Lay out the window after children.
	(swapBuffers): Properly implement `force'.
	(windowUpdated): Delete function.

	* lisp/frame.el (frame-toggle-on-screen-keyboard): Return
	whether or not the on screen keyboard might've been displayed.

	* lisp/minibuffer.el (minibuffer-on-screen-keyboard-timer):
	(minibuffer-on-screen-keyboard-displayed):
	(minibuffer-setup-on-screen-keyboard):
	(minibuffer-exit-on-screen-keyboard): Improve OSK dismissal when
	there are consecutive minibuffers.

	* lisp/touch-screen.el (touch-screen-window-selection-changed):
	New function.
	(touch-screen-handle-point-up): Register it as a window
	selection changed function.

	* src/android.c (struct android_emacs_window)
	(android_init_emacs_window): Remove references to
	`windowUpdated'.
	(android_window_updated): Delete function.
	* src/android.h (struct android_output): Remove
	`last_configure_serial'.
	* src/androidterm.c (handle_one_android_event)
	(android_frame_up_to_date):
	* src/androidterm.h (struct android_output): Remove frame
	synchronization, as that does not work on Android.

2023-02-08  Mattias Engdegård  <mattiase@acm.org>

	Flatten nested `concat` calls

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-concat):
	Flatten nested forms; concat is associative.  This reduces the number
	of calls and may coalesce adjacent constant strings.

2023-02-08  Mattias Engdegård  <mattiase@acm.org>

	Simplify and speed up parts of elisp optimizer

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-constant-args): Simplify.
	(byte-optimize--constant-symbol-p): Speed up.
	(byteopt--eval-const): New.
	(byte-optimize-member, byte-optimize-concat, byte-optimize-append):
	Use byteopt--eval-const instead of eval which is much slower.

2023-02-08  Po Lu  <luangruo@yahoo.com>

	Fix graphics state when instructing glyphs

	* src/sfntfont.c (sfntfont_get_glyph_outline): Take new argument
	STATE and restore it prior to instructing the glyph.
	(sfntfont_measure_instructed_pcm, sfntfont_measure_pcm)
	(sfntfont_draw): Adjust accordingly.

2023-02-08  Po Lu  <luangruo@yahoo.com>

	Correctly round bearing values while computing pcm

	* src/sfntfont.c (sfntfont_measure_instructed_pcm)
	(sfntfont_measure_pcm): Ceil rbearing value.

2023-02-08  Po Lu  <luangruo@yahoo.com>

	Improve text display on Android port

	* src/sfnt.c (sfnt_build_glyph_outline): Clear
	build_outline_context.
	(sfnt_poly_coverage): Extend coverage map.
	(sfnt_prepare_raster): Always floor coordinates, since the
	increase in coverage makes this hack unnecessary.
	(sfnt_build_outline_edges): Likewise.
	(sfnt_compare_edges): Remove function.
	(sfnt_edge_sort): New function.  Since edges are already
	partially sorted, and there are not many, insertion sort
	suffices.
	(sfnt_poly_edges): Use sfnt_edge_sort.
	(sfnt_fill_span): Stop rounding x0 and x1 to the grid, and make
	coverage computation static.
	(sfnt_lookup_glyph_metrics): Fix return code for unscaled
	metrics.
	(sfnt_scale_metrics): New function.
	(SFNT_ENABLE_HINTING): Remove define.
	(struct sfnt_cvt_table, struct sfnt_fpgm_table)
	(struct sfnt_prep_table): Move to sfnt.h.
	(sfnt_read_cvt_table):
	(sfnt_read_fpgm_table, sfnt_read_prep_table): Make TEST_STATIC.
	(struct sfnt_unit_vector, struct sfnt_interpreter_definition)
	(struct sfnt_interpreter_zone, struct sfnt_graphics_state):
	(struct sfnt_interpreter): Move to sfnt.h.
	(sfnt_make_interpreter): Make TEST_STATIC.
	(POP, PUSH, DELTAP1, DELTAP2, DELTAP3): When TEST, define to
	regular push and pop.
	(sfnt_deltac):
	(sfnt_deltap): Fix order of arguments.
	(IUP_SINGLE_PAIR): Fix interpolation loop wraparound.
	(sfnt_interpret_font_program):
	(sfnt_interpret_control_value_program): Make TEST_STATIC.
	(struct sfnt_instructed_outline): Move to sfnt.h.
	(sfnt_build_instructed_outline): Make TEST_STATIC.
	(sfnt_interpret_simple_glyph):
	(sfnt_x_raster):
	(sfnt_test_raster):
	(all_tests):
	(sfnt_verbose):
	(main): Improve test code.

	* src/sfnt.h (SFNT_ENABLE_HINTING, struct sfnt_cvt_table)
	(struct sfnt_fpgm_table, struct sfnt_prep_table)
	(struct sfnt_unit_vector, struct sfnt_interpreter_definition)
	(struct sfnt_interpreter_zone, struct sfnt_graphics_state)
	(struct sfnt_interpreter, struct sfnt_instructed_outline)
	(PROTOTYPE): New definitions.
	* src/sfntfont-android.c (sfntfont_android_put_glyphs): Make
	coordinate generation more straightforward.
	* src/sfntfont.c (sfntfont_get_glyph_outline): New arguments
	INTERPRETER and METRICS.
	(struct sfnt_font_info): New tables.
	(sfntfont_setup_interpreter): New function.
	(sfntfont_open): Avoid memory leak.  Set up interpreter.
	(sfntfont_measure_instructed_pcm): New function.
	(sfntfont_measure_pcm): Delegate to measure_instructed_pcm where
	appropriate.
	(sfntfont_close): Free new tables.
	(sfntfont_draw): Scale metrics properly.

2023-02-08  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/xref.el (xref--insert-xrefs): Remove extra space (bug#61340).

2023-02-08  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	c9ba05af8df Fix crashes inside 'xfree' called from treesit.c
	746748f5c28 Make java-ts-mode use the c-ts-common-indent-type-regexp-...
	87d39a30b12 Fix c-ts-mode indentation
	7cb92b53987 Fix c-ts-mode indentation
	d68ff6016d0 Fix c-ts-mode indentation (bug#61291)
	2ac8c4bbd6f (eglot-completion-at-point): Return correct values in :co...
	321cbd9a601 Tighten and simplify typescript compilation-mode regexps ...
	97533e73ad6 ; * lisp/progmodes/c-ts-common.el (treesit-node-prev-sibl...
	9dfccb89fc5 Clarify bug-reference-auto-setup-functions docstring.
	17ab426670a * lisp/treesit.el (treesit): Fix shortdoc example form (b...
	5a6dfab1e4d Use c-ts-common-statement-offset in java-ts-mode (bug#61142)
	c3262216abb Add array_initializer to java-ts-mode
	79ab62e0bb5 go-ts-mode: Highlight variable declarations
	1fab91d852e go-ts-mode: Fix highlighting of function name in call_exp...
	07ffe902c63 c-ts-mode: Highlight "property functions" as functions
	a529b0d6463 rust-ts-mode: Fix highlighting of function name in call_e...
	088425538f2 rust-ts-mode--font-lock-settings: Improve consistency
	793c24a6ac7 Make sure 'M-x show-paren-local-mode' turns on right away
	60089dcfe06 Add to bug-reference-auto-setup-functions after its decla...
	26e947ccb14 * lisp/vc/vc.el (vc-find-revision-no-save): Fix parens (b...
	948e343496b ; Fix byte-compilation warning
	6568a1aaf9a Fix inability to turn show-paren-local-mode on manually (...
	24085ba6105 ; go-ts-mode--indent-rules: Indent to 0 at top level
	0862a79fef5 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	bb999df5d6f ; Fix whitespace of last change
	929daafa1d6 ; Fix trivial mistake in emoji--choose-emoji
	d7b4a8487f6 ; * lisp/isearch.el (emoji--read-emoji): Avoid compilatio...
	e38ff004631 rust-ts-mode: Highlight variable declarations
	d12727057d4 rust-ts-mode--indent-rules: Indent to 0 at top level
	85705a7059f ; Move misplaces parenthesis in emoji--choose-emoji
	18c43bb9d6c Ensure upper bound of font-lock region is less than point...
	94f291d1505 ; * lisp/paren.el (show-paren-predicate): Doc fix.  (Bug#...
	3ffd0eddce6 Highlight more complex function parameters
	58dc03ba7e4 No longer use transient in isearch-emoji-by-name
	0c125fcc67a Make highlighting more regular across TS modes (bug#61205)
	1dd751c3ac4 ; Improve documentation of 'proper-list-p'
	96181ed3f09 Document 'plistp'
	03d9d18513b Fix display of raised/lowered composed text
	f13479d9556 Fix installation of tree-sitter grammar on MS-Windows
	0358267204d Update the Emacs FAQ for Emacs 29
	2c33e2889b4 Fix byte-compilation of *-ts-mode.el files
	b40a929a3f2 ; ruby-ts--syntax-propertize: Amend commentary
	b80f36b88c7 Make c-ts-mode-set-style's effect local (bug#61245)
	671e5d9fad5 ; * lisp/treesit.el (treesit--font-lock-level-setter): Mi...
	69380a88e92 c-ts-mode: Highlight name in parameter declarations
	89b550eac29 Fix switch statement indentation for go-ts-mode (bug#61238)
	1a123feb181 Fix bidi reordering of sequence of whitespace characters ...
	8870b54db99 Add tests for compilation support for TypeScript (bug#61104)
	873a0a15085 Add support for TypeScript compilation to compile.el (bug...
	3a64f81ebc1 Don't clobber match data in 'y-or-n-p'
	4c765d93ab3 Refine the previous change
	d99b5151f8c Add syntax-propertize-function to ruby-ts-mode
	f25c15ceb7d ; Fix typos
	35e238cae8b Improve documentation of 'header-line-indent-mode'
	c3f58a66514 Don't casemap erc-sasl-user when set to :nick
	e444115d026 Improve keymap-global-set and keymap-local-set interactiv...

	# Conflicts:
	#	etc/NEWS

2023-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/edmacro.el (edit-kbd-macro): Fix thinko (bug#61333)

2023-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cconv-convert): Fix regression

	* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyze-form):
	Since we can't always remove the wrapper, make sure the wrapper
	accepts the expected calling convention (i.e. called with no args).

2023-02-07  Mattias Engdegård  <mattiase@acm.org>

	Remove unnecessary cons in lexical eval

	* src/eval.c (list_of_t): New.
	(Feval): Use list_of_t instead of consing every time.
	(syms_of_eval): Set list_of_t to (t) and staticpro it.

2023-02-07  Michael Albinus  <michael.albinus@gmx.de>

	Fix last Tramp commit

	* lisp/net/tramp.el (tramp-completion-file-name-handler): Run only
	when `minibuffer-completing-file-name' is non-nil.

	* test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion):
	Fix test.

2023-02-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-07  Po Lu  <luangruo@yahoo.com>

	Remove junk from instruction table

	* src/sfnt.c (sfnt_name_instruction): Do so.

2023-02-07  Po Lu  <luangruo@yahoo.com>

	Remove bresenham stuff

	* src/sfnt.c (sfnt_step_edge, sfnt_step_edge_n)
	(sfnt_build_outline_edges, sfnt_test_edge, main):
	* src/sfnt.h (struct sfnt_edge): Stop using error corrected line
	drawing, as it's actually slower.

2023-02-07  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* INSTALL.android: Describe patches for BoringSSL on ARM.

	* src/sfnt.c (sfnt_build_glyph_outline): Remove redundant
	multiplication.
	(sfnt_prepare_raster): Update offset calculation for changes.
	(sfnt_step_edge, sfnt_step_edge_n): Handle bresenham terms.
	(sfnt_build_outline_edges): Don't subtract floored xmin, just
	xmin.
	(sfnt_saturate_short): Make clang generate better code.
	(sfnt_fill_span): Stop rounding coordinates.
	(sfnt_poly_span): Poly consecutive on transitions all in one go.
	(sfnt_lookup_glyph_metrics): Remove redundant multiplication.
	(struct sfnt_interpreter): New hooks for debugging.
	(sfnt_large_integer_add): New function.
	(sfnt_mul_f26dot6_fixed): Round product.
	(sfnt_make_interpreter): Remove redundant multiplication.

	(CHECK_STACK_ELEMENTS, POP_UNCHECKED, PUSH_UNCHECKED): New
	macros.
	(MOVE, POP, SWAP, CINDEX, RS, RCVT, LT, LTEQ, GT, GTEQ, EQ, NEQ)
	(EVEN, AND, OR, NOT, ADD, SUB, DIV, MUL, ABS, NEG, FLOOR, CEILING)
	(GETINFO, ROLL, _MAX, _MIN, ROUND, NROUND, GC, MD): Don't check
	SP redundantly, especially when pushing an element right after
	popping one.
	(sfnt_move_glyph_zone): Don't touch points by passing NULL as
	flags.
	(sfnt_direct_move_zp2): Touch P in the directions of the
	movement.
	(sfnt_interpret_scfs): Fix coding style.
	(sfnt_interpret_simple_glyph): Don't round Y coordinates.
	(sfnt_test_span, sfnt_test_edges, sfnt_debug_edges, sfnt_test_edge)
	(sfnt_x_raster, sfnt_test_raster, rcvt_test_args)
	(deltac1_test_args, deltac2_test_args, deltac3_test_args)
	(roll_1_test_args, sfnt_run_hook, sfnt_identify_instruction)
	(sfnt_verbose, main): Improve debug code and tests.

	* src/sfnt.h (struct sfnt_edge): Add bresenham terms.

2023-02-06  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp file name completion

	This fixes Bug#51386, Bug#52758, Bug#53513, Bug#54042 and Bug#60505.

	* doc/misc/tramp.texi (File name completion): Remove completion
	styles restrictions.

	* lisp/minibuffer.el (completion-styles): Fix docstring.

	* lisp/net/tramp.el (tramp-methods) <->: Add.
	(tramp-completion-file-name-handler-alist):
	Add `expand-file-name', `file-exists-p', `file-name-directory' and
	`file-name-nondirectory'.
	(tramp-dissect-file-name): Do not extra check for
	`tramp-default-method-marker'.
	(tramp-completion-handle-expand-file-name)
	(tramp-completion-handle-file-exists-p)
	(tramp-completion-handle-file-name-directory)
	(tramp-completion-handle-file-name-nondirectory): New defuns.
	(tramp-completion-handle-file-name-all-completions): Remove duplicates.

	* test/lisp/net/tramp-tests.el
	(tramp-test26-interactive-file-name-completion): New test.

2023-02-06  Eli Zaretskii  <eliz@gnu.org>

	Fix 'hack-local-variables' when EOL conversion is inhibited

	* lisp/files.el (hack-local-variables--find-variables): Replace
	CRs with newlines only if the original buffer is under explicit
	selective-display.  (Bug#61321)

2023-02-06  Po Lu  <luangruo@yahoo.com>

	Port emacsclient wrapper to Android 7.1 and earlier

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Load every
	native library on which Emacs depends prior to loading libemacs
	itself.

	* java/org/gnu/emacs/EmacsOpenActivity.java (readEmacsClientLog)
	(EmacsOpenActivity, startEmacsClient): Don't use redirectError
	on Android 7.1 and earlier.

2023-02-06  Po Lu  <luangruo@yahoo.com>

	Adjust ndk-build implementation for old NDK versions

	* configure.ac: Pass ANDROID_CFLAGS to ndk_INIT.
	* cross/ndk-build/Makefile.in (NDK_BUILD_CFLAGS):
	* cross/ndk-build/ndk-build-shared-library.mk
	($(call objname,$(LOCAL_MODULE),$(basename $(1)))):
	($$(error Unsupported suffix):
	* cross/ndk-build/ndk-build-static-library.mk
	($(call objname,$(LOCAL_MODULE),$(basename $(1)))):
	($$(error Unsupported suffix): Use NDK_BUILD_CFLAGS.
	* m4/ndk-build.m4 (ndk_INIT): Accept cflags.
	(ndk_CONFIG_FILES): Export NDK_BUILD_CFLAGS.

2023-02-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/AndroidManifest.xml.in: Prevent the Emacs activity from
	being overlaid by the emacsclient wrapper.
	* java/org/gnu/emacs/EmacsOpenActivity.java (run): Likewise.
	(onCreate): Set an appropriate theme on ICS and up.

	* java/org/gnu/emacs/EmacsWindow.java (onTouchEvent): Handle
	ACTION_CANCEL correctly.

2023-02-06  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (struct sfnt_build_glyph_outline_context)
	(sfnt_build_glyph_outline, sfnt_fill_span): Improve glyph
	appearance by rounding coordinate values.

	(struct sfnt_interpreter): New fields `twilight_original_x',
	`twilight_original_y'.
	(sfnt_make_interpreter): Set new fields.
	(DELTAP1, DELTAP2, DELTAP3, SVTCAy, SPVTL, SFVTL, MD): Implement
	instructions.
	(sfnt_save_projection_vector): New argument `dual_only'.  All
	callers changed.
	(sfnt_address_zp2, sfnt_address_zp1, sfnt_address_zp0): Obtain
	original positions in the twilight zone as well.
	(sfnt_check_zp1, sfnt_interpret_fliprgoff, sfnt_interpret_fliprgon)
	(sfnt_interpret_flippt, sfnt_interpret_scfs, sfnt_interpret_miap)
	(sfnt_interpret_alignrp, sfnt_line_to_vector, P)
	(sfnt_interpret_msirp, sfnt_interpret_ip, sfnt_interpret_call)
	(load_point, sfnt_interpret_iup_1, sfnt_interpret_iup)
	(sfnt_interpret_run, struct sfnt_scaled_outline)
	(struct sfnt_instructed_outline, sfnt_decompose_instructed_outline)
	(sfnt_build_instructed_outline, sfnt_compute_phantom_points)
	(sfnt_interpret_simple_glyph, all_tests, sfnt_setup_debugger)
	(sfnt_name_instruction, sfnt_draw_debugger, sfnt_run_hook)
	(sfnt_verbose, main): Make glyph instructing work.

	* src/sfnt.h (SFNT_POLY_ROUND): New enumerator.

2023-02-05  Alan Mackenzie  <acm@muc.de>

	CC Mode: Prevent infinite recursion in c-determine-limit.

	This was happening particularly with long-lines, possibly because the position
	was inside a literal when calling c-determine-limit.

	* lisp/progmodes/cc-engine.el (c-determine-limit): Guard a recursive call by
	checking (- base try-size).

2023-02-05  Mattias Engdegård  <mattiase@acm.org>

	Fix misleading LAP optimizer debug log message

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Correct message in a conditional jump threading rule.

2023-02-05  Mattias Engdegård  <mattiase@acm.org>

	Allow unbind to commute with discardN and discardN-preserve-tos

	* lisp/emacs-lisp/byte-opt.el (byte-after-unbind-ops):
	Add discardN and discardN-preserve-tos, both of which
	commute with unbind.  This enables subsequent optimizations.

2023-02-05  Mattias Engdegård  <mattiase@acm.org>

	Remove compatibility hacks in LAP optimizer

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Remove code forcing forward motion after applying certain
	transformations; these were only there to keep output identical across
	refactorings.

2023-02-05  Mattias Engdegård  <mattiase@acm.org>

	LAP optimizer: bind local variables instead of mutating them

	This is a refactoring step: there is no change in how the optimizer
	works.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Instead of reusing local variables through mutation, bind them at
	point of use.  This ensures that there is no value leakage by mistake
	and actually reduces the static size of the bytecode of this function
	somewhat.
	The lousy variable names (tmp, tmp2 etc) are retained but
	can at least now be changed into something more descriptive.

2023-02-05  Mattias Engdegård  <mattiase@acm.org>

	Get rid of delq in LAP optimizer

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Instead of using the O(n) `delq' to remove single instructions, use
	the O(1) `setcdr'. To do this, anchor the instruction list in a cons
	cell and use the predecessor cell in iteration.

2023-02-05  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* INSTALL.android: Explain how to build selinux.
	* configure.ac: Enable selinux on Android.
	* cross/ndk-build/ndk-build-shared-library.mk: ($(call
	objname,$(LOCAL_MODULE),$(basename $(1))))::($$(error
	Unsupported suffix)::(NDK_CFLAGS_$(LOCAL_MODULE)):
	* cross/ndk-build/ndk-build-static-library.mk: ($(call
	objname,$(LOCAL_MODULE),$(basename $(1))))::($$(error
	Unsupported suffix)::(NDK_CFLAGS_$(LOCAL_MODULE)): Correctly
	handle files with a .cc suffix, and clang-specific asflags.
	* cross/ndk-build/ndk-clear-vars.mk: Handle AOSP extensions
	LOCAL_ADDITIONAL_DEPENDENCIES,
	LOCAL_CLANG_ASFLAGS_$(NDK_BUILD_ARCH) and LOCAL_IS_HOST_MODULE.

	* doc/emacs/android.texi (Android Startup): Explain emacsclient
	wrapper.

	* java/org/gnu/emacs/EmacsView.java (EmacsView): New flag
	`isCurrentlyTextEditor'.
	(showOnScreenKeyboard, hideOnScreenKeyboard): Set as
	appropriate.
	(onCheckIsTextEditor): Return its value.

	* lisp/touch-screen.el (touch-screen-handle-scroll): Don't ding
	at buffer limits.
	* m4/ndk-build.m4: Improve doc.

	* src/Makefile.in (LIBSELINUX_CFLAGS): New variable.
	(EMACS_CFLAGS): Add it.

2023-02-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cconv.el (cconv-convert): Fix thinko

2023-02-05  Po Lu  <luangruo@yahoo.com>

	Update from gnulib

	* admin/merge-gnulib (avoided_flags):
	* cross/lib/cdefs.h (__bos):
	(__glibc_unsigned_or_positive):
	(__glibc_unsafe_len):
	(__glibc_fortify):
	(__glibc_fortify_n):
	* cross/lib/isnan.c:
	* cross/lib/libc-config.h:
	* cross/lib/openat-proc.c (openat_proc_name):
	* cross/lib/vasnprintf.c (VASNPRINTF):
	* cross/lib/verify.h (_Static_assert):
	(_GL_SA3):
	* lib/gnulib.mk.in (HAVE_GRANTPT):
	(HAVE_SPAWN_H):
	(NEXT_AS_FIRST_DIRECTIVE_LIMITS_H):
	(NEXT_LIMITS_H):
	(REPLACE_GETSUBOPT):
	(REPLACE_ILOGB):
	(SYSTEM_TYPE):
	(BUILT_SOURCES):
	* lib/isnan.c:
	* lib/vasnprintf.c (VASNPRINTF):
	* lib/verify.h (_GL_SA3):
	* m4/gnulib-common.m4 (gl_COMMON_BODY):
	* m4/gnulib-comp.m4 (gl_INIT): Update from gnulib.

2023-02-05  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-05  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (struct sfnt_graphics_state):
	(LOOPCALL):
	(DELTAC3):
	(PROJECT):
	(SHPIX):
	(sfnt_save_projection_vector):
	(sfnt_check_zp0):
	(sfnt_dual_project_vector):
	(sfnt_interpret_scfs):
	(sfnt_round_symmetric):
	(sfnt_interpret_miap):
	(sfnt_interpret_alignrp_1):
	(sfnt_interpret_alignrp):
	(sfnt_measure_distance):
	(sfnt_interpret_msirp):
	(sfnt_interpret_ip):
	(sfnt_interpret_mdap):
	(sfnt_deltap):
	(sfnt_dual_project_onto_any_vector):
	(sfnt_validate_gs):
	(sfnt_set_projection_vector):
	(sfnt_interpret_shp):
	(sfnt_interpret_run):
	(sfnt_check_sloop):
	(main): Check in more WIP font code.

2023-02-05  Paul Eggert  <eggert@cs.ucla.edu>

	Update some commentary for C23

2023-02-05  Paul Eggert  <eggert@cs.ucla.edu>

	Use Gnulib module alignasof instead of stdalign

	* admin/merge-gnulib (GNULIB_MODULES):
	Replace obsolescent Gnulib module stdalign with alignasof.
	* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
	* lib/stdalign.in.h: Remove; no longer needed.

2023-02-05  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2023-02-05  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer https: to git: URIs

	Prefer https: to git: URIs on Savannah.
	The idea is to avoid some adversary-in-the-middle attacks
	on developers.

2023-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	nadvice: Fix bug#61179

	Advising interactive forms relies on the ability to distinguish
	interactive forms that do nothing else than return a function.
	So, be careful to preserve this info.
	Furthermore, interactive forms are expected to be evaluated in
	the lexical context captured by the closure to which they belong,
	so be careful to preserve that context when manipulating those forms.

	* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyze-form) <lambda>:
	Preserve the info that an interactive form does nothing else than
	return a function.

	* lisp/emacs-lisp/nadvice.el (advice--interactive-form-1): New function.
	(advice--interactive-form): Use it.
	(advice--make-interactive-form): Refine to also accept function values
	quoted with `quote`.  Remove obsolete TODO.

	* test/lisp/emacs-lisp/nadvice-tests.el: Don't disallow byte-compilation.
	(advice-test-bug61179): New test.

	* lisp/emacs-lisp/oclosure.el (cconv--interactive-helper): Allow
	the `if` arg to be a form.
	* lisp/simple.el (oclosure-interactive-form): Adjust accordingly.

2023-02-04  Po Lu  <luangruo@yahoo.com>

	Add emacsclient desktop file equivalent on Android

	* doc/emacs/android.texi (Android File System):
	* java/AndroidManifest.xml.in: Update with new activity.  Remove
	Android 10 restrictions through a special flag.

	* java/org/gnu/emacs/EmacsNative.java (getProcName): New
	function.
	* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity):
	New file.
	* java/org/gnu/emacs/EmacsService.java (getLibraryDirection):
	Remove unused annotation.
	* lib-src/emacsclient.c (decode_options): Set alt_display on
	Android.
	* src/android.c (android_proc_name): New function.
	(NATIVE_NAME): Export via JNI.

2023-02-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-04  Po Lu  <luangruo@yahoo.com>

	Add additional permissions to Android port

	* doc/emacs/android.texi (Android Environment):
	* java/AndroidManifest.xml.in: Add network state permissions.

2023-02-04  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (sfnt_multiply_divide_signed):
	(struct sfnt_interpreter_zone):
	(struct sfnt_graphics_state):
	(struct sfnt_interpreter):
	(sfnt_mul_f2dot14):
	(sfnt_interpret_trap):
	(WCVTF):
	(ALIGNPTS):
	(sfnt_scale_by_freedom_vector):
	(sfnt_interpret_utp):
	(sfnt_address_zp2):
	(sfnt_address_zp1):
	(sfnt_address_zp0):
	(sfnt_check_zp2):
	(sfnt_move_zp0):
	(sfnt_move_zp1):
	(sfnt_move_glyph_zone):
	(sfnt_move_twilight_zone):
	(sfnt_direct_move_zp2):
	(sfnt_interpret_alignpts):
	(sfnt_interpret_isect):
	(sfnt_line_to_vector):
	(sfnt_deltac):
	(sfnt_interpret_mdap):
	(sfnt_interpret_call):
	(sfnt_dot_fix_14):
	(sfnt_move_x):
	(sfnt_move_y):
	(sfnt_move):
	(sfnt_validate_gs):
	(sfnt_interpret_shz):
	(sfnt_interpret_shc):
	(sfnt_interpret_shp):
	(sfnt_interpret_iup_1):
	(sfnt_interpret_iup):
	(sfnt_interpret_run):
	(sfnt_interpret_font_program):
	(sfnt_interpret_control_value_program):
	(sfnt_interpret_simple_glyph):
	(jrot_test_args):
	(jrof_test_args):
	(all_tests):
	(main): Check in more WIP code.

2023-02-04  Theodor Thornhill  <theo@thornhill.no>

	Add test for java indentation (bug#61115)

	* test/lisp/progmodes/java-ts-mode-resources/indent.erts: Add new test
	case.

2023-02-03  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fontify a certain foo * bar class by the asymmetric space heuristic

	This fixes bug #61144.  If the space around the * is "symmetric" we leave foo
	* bar unfontified, a multiplication operation.  If it is "asymmetric" we
	fontify it as a pointer declaration.

	* lisp/progmodes/cc-engine.el (c-fdoc-assymetric-space-about-asterisk): New
	macro, extracted from c-forward-decl-or-cast-1.
	(c-forward-decl-or-cast-1): Invoke the new macro twice, in CASE 16 (new) and
	CASE 17.5 (the source of the macro).  In CASE 16, additionally set
	unsafe-maybe when appropriate.

2023-02-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	96ea27278b4 ; Fix c-ts-mode indent test
	d963a8f1355 Make c-ts-mode indent tests side-effect-free
	8a6bdf88b4b Call treesit_record_change in insert_from_gap_1
	a2b77c79dcc Use c-ts-common-statement-offset for closing brackets too
	74e715cb729 ; Go back to original point when filling comments in c-ts...
	b8009bbf2d8 ; Fix error where we pass t to treesit-node-type in c-ts-...
	88ccf78b206 ; * src/treesit.c (treesit_predicate_match): Simplify las...
	20454128b8b Minor improvements in sqlite.c
	3b3c47d977b (treesit_predicate_match): Match node text against regexp...
	e8334781c9f Improve documentation of gdb-mi's dedicated windows
	c4988840598 Avoid spurious pause in kill-ring-save (Bug#60841)
	382ab516cef Change the default of 'treesit-defun-tactic' for 'c-ts-mode'
	4d3428e95a9 Fix docstring fontification of CL's 'defstruct'
	1c125baa3f0 Teach 'hs-minor-mode' about tree-sitter based modes
	2de0ab5cbd3 ; Doc fixes in keymap.el
	c6660a6d6de Improve documentation of 'repeat-mode' and related variables
	be304bb3286 ; * etc/NEWS: Mention the 'utf-8-auto' bugfix (bug#60750).

	# Conflicts:
	#	etc/NEWS

2023-02-02  Mattias Engdegård  <mattiase@acm.org>

	LAP peephole optimization improvements

	- Since discardN-preserve-tos(1) and stack-set(1) have the same
	  effect, treat them as equivalent in all transformations.

	- Move the rule

	        discardN-preserve-tos(X) discardN-preserve-tos(Y)
	    --> discardN-preserve-tos(X+Y)

	  from the final pass to the main iteration since it may enable
	  further optimizations.

	- Don't apply the rule

	    goto(X) ... X: DISCARD --> DISCARD goto(Y) ... X: DISCARD Y:

	  when DISCARD could be merged or deleted instead, which is even better.

	- Add the rule

	    OP const return -> <deleted> const return

	  where OP is effect-free.

	- Generalize the push-pop annihilation rule to

	    PUSH(K) discard(N) -> discard(N-K), N>K
	    PUSH(K) discard(N) -> <deleted>,    N=K

	  to any N, not just N=1.

	- Add the rule

	    OP goto(X) Y: OP X: -> <deleted> Y: OP X:

	  for any operation OP.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Make the changes described above.

2023-02-02  Mattias Engdegård  <mattiase@acm.org>

	Clean up LAP peephole logging

	Make `byte-compile-log-lap` more robust and produce nicer output.
	This is of interest for Elisp compiler maintainers only.

	* lisp/emacs-lisp/byte-opt.el (bytecomp--log-lap-arg): New.
	(byte-compile-log-lap-1): Extract argument conversion and rewrite
	in a more modern way, fixing bugs.  In particular, tags are now
	displayed as "X:" where X is the tag number, and that tag number
	is shown as argument to goto-like ops.
	(byte-optimize-lapcode): Clean up and simplify logging, producing
	useful information when `byte-optimize-log` is `byte` as intended.

2023-02-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	9715715ac16 (eshell--complete-commands-list): Fix regression in fix t...
	ea1bb263153 * doc/emacs/basic.texi (Repeating): Mention describe-repe...
	f91bf9df892 Unbreak the MS-Windows build

2023-02-02  Po Lu  <luangruo@yahoo.com>

	Add Emacs icon for Android package

	* java/AndroidManifest.xml.in: Add new icon.
	* java/Makefile.in (srcdir): New variable.
	(JAVA_FILES, RESOURCE_FILES): Update variables.
	(emacs.apk-in): Apply resources.
	* java/README: Describe directory tree.

2023-02-02  Po Lu  <luangruo@yahoo.com>

	Add Emacs icon for Android

	* java/res/drawable/emacs.png: New file.

2023-02-02  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_get_current_api_level): New function.
	* src/android.h: Export it.
	* src/sfntfont-android.c (init_sfntfont_android): Make device
	API level detection always work.

2023-02-02  Po Lu  <luangruo@yahoo.com>

	Clean up compiler warnings

	* src/sfnt.c (sfnt_multiply_divide_signed): Add MAYBE_UNUSED.

2023-02-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-02-02  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/sfnt.c (xmalloc, xrealloc): Improve behavior upon
	allocation failures during test.
	(sfnt_table_names): Add prep.
	(sfnt_transform_coordinates): Allow applying offsets during
	coordinate transform.
	(sfnt_decompose_compound_glyph): Defer offset computation until
	any component compound glyph is loaded, then apply it during the
	transform process.

	(sfnt_multiply_divide): Make available everywhere.  Implement on
	64 bit systems.
	(sfnt_multiply_divide_signed): New function.
	(sfnt_mul_fixed): Fix division overflow.

	(sfnt_curve_to_and_build_1, sfnt_build_glyph_outline): Remove
	outdated comment.
	(sfnt_build_outline_edges): Fix coding style.
	(sfnt_lookup_glyph_metrics): Allow looking up metrics without
	scaling.
	(struct sfnt_cvt_table): Fix type of cvt values.
	(struct sfnt_prep_table): New structure.
	(sfnt_read_cvt_table): Read cvt values in terms of fwords, not
	longs (as Apple's doc seems to say).
	(sfnt_read_fpgm_table): Fix memory allocation for font program
	table.
	(sfnt_read_prep_table): New function.
	(struct sfnt_interpreter_zone): New structure.
	(struct sfnt_interpreter_graphics_state): New fields `project',
	`move', `vector_dot_product'.  Rename to `sfnt_graphics_state'.
	(struct sfnt_interpreter, sfnt_mul_f26dot6): Stop doing rounding
	division.
	(sfnt_init_graphics_state):
	(sfnt_make_interpreter):
	(MOVE):
	(SSW):
	(RAW):
	(SDS):
	(ADD):
	(SUB):
	(ABS):
	(NEG):
	(WCVTF):
	(_MIN):
	(S45ROUND):
	(SVTCAx):
	(sfnt_set_srounding_state):
	(sfnt_skip_code):
	(sfnt_interpret_unimplemented):
	(sfnt_interpret_fdef):
	(sfnt_interpret_idef):
	(sfnt_interpret_if):
	(sfnt_interpret_else):
	(sfnt_round_none):
	(sfnt_round_to_grid):
	(sfnt_round_to_double_grid):
	(sfnt_round_down_to_grid):
	(sfnt_round_up_to_grid):
	(sfnt_round_to_half_grid):
	(sfnt_round_super):
	(sfnt_validate_gs):
	(sfnt_interpret_run):
	(sfnt_interpret_font_program):
	(struct sfnt_test_dcontext):
	(sfnt_test_move_to):
	(sfnt_test_line_to):
	(sfnt_test_curve_to):
	(sfnt_test_get_glyph):
	(sfnt_test_free_glyph):
	(sfnt_test_span):
	(sfnt_test_edge_ignore):
	(sfnt_test_edge):
	(sfnt_test_raster):
	(test_interpreter_profile):
	(test_cvt_values):
	(test_interpreter_cvt):
	(test_interpreter_head):
	(sfnt_make_test_interpreter):
	(struct sfnt_interpreter_test):
	(sfnt_run_interpreter_test):
	(struct sfnt_generic_test_args):
	(sfnt_generic_check):
	(sfnt_check_srp0):
	(sfnt_check_szp0):
	(sfnt_check_sloop):
	(struct sfnt_rounding_test_args):
	(sfnt_check_rounding):
	(sfnt_check_smd):
	(sfnt_check_scvtci):
	(sfnt_check_sswci):
	(sfnt_check_ssw):
	(sfnt_check_flipon):
	(sfnt_check_flipoff):
	(npushb_test_args):
	(npushw_test_args):
	(pushb_test_args):
	(pushw_test_args):
	(stack_overflow_test_args):
	(stack_underflow_test_args):
	(rtg_test_args):
	(rtg_symmetric_test_args):
	(rtg_1_test_args):
	(rtg_1_symmetric_test_args):
	(rthg_test_args):
	(rthg_1_test_args):
	(rtdg_test_args):
	(rtdg_1_test_args):
	(rtdg_2_test_args):
	(rtdg_3_test_args):
	(else_test_args):
	(jmpr_test_args):
	(dup_test_args):
	(pop_test_args):
	(clear_test_args):
	(swap_test_args):
	(depth_test_args):
	(cindex_test_args):
	(mindex_test_args):
	(raw_test_args):
	(loopcall_test_args):
	(call_test_args):
	(fdef_test_args):
	(fdef_1_test_args):
	(endf_test_args):
	(ws_test_args):
	(rs_test_args):
	(wcvtp_test_args):
	(rcvt_test_args):
	(mppem_test_args):
	(mps_test_args):
	(debug_test_args):
	(lt_test_args):
	(all_tests):
	(main): Implement more instructions.

	* src/sfnt.h (enum sfnt_table, struct sfnt_glyph_metrics): Add
	new tables.  Add comment.

2023-02-01  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/ruby-ts-mode.el: Extend treesit-sexp-type-regexp.

	(ruby-ts-mode): Add more node types to treesit-sexp-type-regexp.

2023-02-01  Michael Albinus  <michael.albinus@gmx.de>

	Handle large process output strings for Tramp

	* lisp/net/tramp-sh.el (tramp-sh-handle-make-process):
	Improve handling of connection-type `pipe'.

	* test/lisp/tramp-tests.el (tramp-test29-start-file-process)
	(tramp-test30-make-process): Extend tests.

2023-02-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	66aa9cb450a ; (Ftreesit_query_capture): Fix typo
	f711f4e99f7 (Ftreesit_query_capture): Cache list of predicates for gi...
	47ab9ba55d7 * lisp/keymap.el (keymap-global-unset): Correct prompt
	49b61405582 Fix cursor-in-echo-area on TTY frames

2023-01-31  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	1684e254a3b Update to Transient v0.3.7-196-gb91f509
	327941b2112 CC Mode: Fix a coding bug in c-make-keywords-re.  This sh...
	2f3683cd4dc * lisp/isearch.el (isearch-emoji-by-name): Disable derive...
	86b03046c00 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	e866490a077 Fix keymap inheritance in descendants of 'c-ts-base-mode'
	f67a9a12b7b Fix interactive use of `keymap-local-set' and `keymap-glo...

2023-01-31  Jim Porter  <jporterbugs@gmail.com>

	During completion, convert all Eshell arguments to strings

	Eshell was already converting some types (numbers, nil) to strings, as
	well as fixing up multiple-dot forms like ".../", so this way is more
	consistent and should produce fewer problems for Pcomplete functions.

	* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Always
	convert parsed arguments to strings.

	* test/lisp/eshell/em-cmpl-tests.el (eshell-arguments-equal,
	eshell-arguments-equal--equal-explainer): New functions.
	(em-cmpl-test/parse-arguments/pipeline)
	(em-cmpl-test/parse-arguments/multiple-dots)
	(em-cmpl-test/parse-arguments/variable/numeric)
	(em-cmpl-test/parse-arguments/variable/nil)
	(em-cmpl-test/parse-arguments/variable/list)
	(em-cmpl-test/parse-arguments/variable/splice): Use
	'eshell-arguments-equal'.

2023-01-31  Jim Porter  <jporterbugs@gmail.com>

	Properly parse Eshell variable splices for interactive completion

	Previously, the code simply ignored the splice operator, which usually
	worked, but isn't actually correct.

	* lisp/eshell/em-cmpl.el (eshell-complete-eval-argument-form): New
	function.
	(eshell-complete-parse-arguments): Properly parse variable splices.

	* test/lisp/eshell/em-cmpl-tests.el
	(em-cmpl-test/parse-arguments/variable/splice): New test.

2023-01-31  Jim Porter  <jporterbugs@gmail.com>

	Add regression tests for Eshell completions

	* lisp/eshell/esh-cmd.el (eshell-complete-lisp-symbols): Fix
	docstring.

	* test/lisp/eshell/em-cmpl-tests.el: New file.

2023-01-30  Eli Zaretskii  <eliz@gnu.org>

	Revert "Fix incremental build failures with tree-sitter"

	This reverts commit 176830fe2bb1c80ee128e515f6223cddc8b0a2ca.
	That commit isn't needed, since the problem was fixed
	in another way, in the defcustom's :set function.

2023-01-30  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Gnus nnimap date search string must use C locale

	* lisp/gnus/gnus-search.el (gnus-search-imap-handle-date): The %b
	needs to be the English month name for IMAP search.

2023-01-30  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-30  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	f67a9a12b7b Fix interactive use of `keymap-local-set' and `keymap-glo...
	dda4baa58b7 ; Fix build and startup without tree-sitter

2023-01-30  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-30  Po Lu  <luangruo@yahoo.com>

	Fix incremental build failures with tree-sitter

	* lisp/treesit.el (treesit-subtree-stat): Declare missing
	function.
	(treesit-buffer-root-node): Return nil if tree-sitter not
	present.

2023-01-30  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-30  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* cross/ndk-build/ndk-build-shared-library.mk: ($(call
	objname,$(LOCAL_MODULE),$(basename $(1)))):
	* cross/ndk-build/ndk-build-static-library.mk: ($(call
	objname,$(LOCAL_MODULE),$(basename $(1)))): Revert broken typo
	fixes.
	* src/sfnt.c (TEST_STATIC): Define ARRAYELTS.
	(sfnt_table_names): New CVT and FPGM tables.
	(sfnt_decompose_compound_glyph, sfnt_decompose_glyph)
	(struct sfnt_large_integer, sfnt_multiply_divide_1)
	(sfnt_count_leading_zero_bits, sfnt_multiply_divide_2)
	(sfnt_multiply_divide, sfnt_mul_fixed, sfnt_div_fixed)
	(sfnt_ceil_fixed, sfnt_build_glyph_outline): Fix fixed point
	multiplication routines on systems without 64 bit long long
	type.
	(SFNT_ENABLE_HINTING, struct sfnt_test_dcontext, sfnt_test_move_to)
	(sfnt_test_line_to, sfnt_test_curve_to, sfnt_test_get_glyph)
	(sfnt_test_free_glyph, sfnt_test_span, sfnt_test_edge_ignore)
	(sfnt_read_cvt_table, sfnt_test_edge, sfnt_test_raster)
	(sfnt_read_fpgm_table, struct sfnt_unit_vector)
	(struct sfnt_interpreter_definition)
	(struct sfnt_interpreter_graphics_state, struct sfnt_interpreter)
	(sfnt_div_f26dot6, sfnt_mul_f26dot6, sfnt_floor_f26dot6)
	(sfnt_ceil_f26dot6, sfnt_round_f26dot6, sfnt_init_graphics_state)
	(sfnt_make_interpreter, enum sfnt_interpreter_run_context)
	(sfnt_interpret_trap, STACKSIZE, sfnt_set_srounding_state)
	(sfnt_skip_code, sfnt_interpret_unimplemented, sfnt_interpret_fdef)
	(sfnt_interpret_idef, sfnt_interpret_if, sfnt_interpret_else)
	(sfnt_round_none, sfnt_round_to_grid, sfnt_round_to_double_grid)
	(sfnt_round_down_to_grid, sfnt_round_up_to_grid)
	(sfnt_round_to_half_grid, sfnt_round_super, sfnt_validate_gs)
	(sfnt_interpret_run, sfnt_interpret_font_program)
	(test_interpreter_profile, test_cvt_values, test_interpreter_cvt)
	(test_interpreter_head, sfnt_make_test_interpreter)
	(struct sfnt_interpreter_test, sfnt_run_interpreter_test)
	(struct sfnt_generic_test_args, sfnt_generic_check)
	(sfnt_check_srp0, sfnt_check_szp0, sfnt_check_sloop)
	(struct sfnt_rounding_test_args, sfnt_check_rounding)
	(sfnt_check_smd, sfnt_check_scvtci, sfnt_check_sswci)
	(sfnt_check_ssw, sfnt_check_flipon, sfnt_check_flipoff)
	(npushb_test_args, npushw_test_args, pushb_test_args)
	(pushw_test_args, stack_overflow_test_args)
	(stack_underflow_test_args, rtg_test_args, rtg_symmetric_test_args)
	(rtg_1_test_args, rtg_1_symmetric_test_args, rthg_test_args)
	(rthg_1_test_args, rtdg_test_args, rtdg_1_test_args)
	(rtdg_2_test_args, rtdg_3_test_args, else_test_args)
	(jmpr_test_args, dup_test_args, pop_test_args, clear_test_args)
	(swap_test_args, depth_test_args, cindex_test_args)
	(mindex_test_args, raw_test_args, loopcall_test_args)
	(call_test_args, fdef_test_args, fdef_1_test_args, endf_test_args)
	(ws_test_args, rs_test_args, wcvtp_test_args, rcvt_test_args)
	(mppem_test_args, mps_test_args, debug_test_args, lt_test_args)
	(all_tests, main): Check in WIP hinting code.

	* src/sfnt.h (enum sfnt_table): Add `cvt ' and `fpgm' tables.

2023-01-30  Michael Albinus  <michael.albinus@gmx.de>

	Fix password prompt in Tramp

	* lisp/net/tramp.el (tramp-password-prompt-regexp):
	Allow alternative trailing colons.  (Bug#61168)

2023-01-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	8360e12f0ea Update to Org 9.6.1-23-gc45a05
	9058601308d ; * doc/emacs/misc.texi (Document View): Remove @footnote...
	197f994384c Document tree-sitter features in the user manual
	b73539832d9 ; Remove treesit--font-lock-fast-mode-grace-count
	64fee21d5f8 Fix dockerfile-ts-mode line continuation indentation (bug...
	1970726e26a Use treesit-subtree-stat to determine treesit--font-lock-...
	382e018856a Add treesit-subtree-stat
	a3003492ace Move c-ts-mode--statement-offset to c-ts-common.el
	4b1714571c8 ; Fix byte-compile warnings in c-ts-mode.el
	f50cb7d7c4b ; Improve docstring of c-ts-mode--indent-style-setter
	1c3ca3bb649 Fix <> syntax in rust-ts-mode
	56e8607dc99 Fix spurious errors on Windows when deleting temporary *....
	2bd0b947538 Fix java class member without access modifier (bug#61115)
	1de6ebf2878 Make treesit-font-lock-level a defcustom
	6e50ee8bbb5 Add c-ts-mode-set-style and :set for c-ts-mode-indent-style
	450db0587a9 Minor documentation improvements for outline-minor-mode (...
	578e8926713 ; * doc/lispref/variables.texi (File Local Variables): Im...
	bc5ee2b7bf0 ; * src/comp.c: Remove Local Variables section to avoid w...
	362678d90e1 python.el: Use correct regexp when enabling python-ts-mode
	76bb46db9df ; * doc/emacs/frames.texi (Mouse References): Improve ind...

	# Conflicts:
	#	doc/emacs/programs.texi
	#	etc/NEWS
	#	lisp/progmodes/c-ts-mode.el

2023-01-29  Mattias Engdegård  <mattiase@acm.org>

	Better commutative binary numerical op codegen

	* lisp/emacs-lisp/bytecomp.el (byte-compile-variadic-numeric):
	Put a constant argument last for better LAP code opportunities.
	This applies to commutative binary operations (+ and *).
	`min` and `max` are not included being not quite commutative.

2023-01-29  Mattias Engdegård  <mattiase@acm.org>

	Better compilation of n-ary comparisons

	Transform n-ary comparisons to a chain of binary comparisons in the
	Lisp optimizer instead of in codegen, to allow for subsequent
	optimizations.  This generalizes the transform, so that

	   (< 1 X 10)  ->  (let ((x X)) (and (< 1 x) (< x 10)))

	where (< 1 x) is then flipped to (> x 1) in codegen since it's
	slightly more efficient to have the constant argument last.  Arguments
	that are neither constants nor variables are given temporary bindings.

	This results in about 2× speedup for 3-ary comparisons of fixnums with
	nontrivial arguments, and also improves the code slightly for binary
	comparisons with a constant first argument.

	* lisp/emacs-lisp/byte-opt.el (byte-opt--nary-comparison): New,
	set as the `byte-optimizer` property for =, <, <=, >, and >=.
	* lisp/emacs-lisp/bytecomp.el (byte-compile-and-folded):
	Rename to...
	(byte-compile-cmp): ...and rewrite.

2023-01-29  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-29  Michael Albinus  <michael.albinus@gmx.de>

	Fix host name completion for Tramp "podman" method

	* lisp/net/tramp-container.el (tramp-container--completion-function):
	Rename from `tramp-docker--completion-function'.  Add argument
	PROGRAM.  Use it for "docker" and "podman" host name completion.

	* lisp/net/tramp.el (tramp-set-completion-function): Check, that
	cdr of FUNCTION-LIST entries is a string.

2023-01-29  Eli Zaretskii  <eliz@gnu.org>

	* src/comp.c (F_RELOC_MAX_SIZE): Bump to 1600 (bug#60996).

2023-01-29  Po Lu  <luangruo@yahoo.com>

	Check in missing files

	* .gitignore:
	* cross/lib/_Noreturn.h (_Noreturn): Add missing gnulib files.

2023-01-29  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* INSTALL.android (module_target): Clarify documentation.
	* cross/ndk-build/ndk-build-shared-library.mk:
	* cross/ndk-build/ndk-build-static-library.mk: Fix building Neon objects.
	* java/AndroidManifest.xml.in: Add a version code.

2023-01-28  Po Lu  <luangruo@yahoo.com>

	Implement `restart-emacs' on Android

	* java/org/gnu/emacs/EmacsService.java (restartEmacs): New
	function.
	* src/android.c (struct android_emacs_service)
	(android_init_emacs_service): Add new method.
	(android_restart_emacs): New function.
	* src/android.h: Update prototypes.
	* src/emacs.c (Fkill_emacs): Call android_restart_emacs whenever
	appropriate.

2023-01-28  Po Lu  <luangruo@yahoo.com>

	Add libtiff support to Android port

	* INSTALL.android: Document how to build with libtiff.

	* build-aux/ndk-build-helper-1.mk (NDK_SO_NAME):
	* build-aux/ndk-build-helper-2.mk (NDK_A_NAME):
	* build-aux/ndk-build-helper-4.mk: Decrease number of duplicate
	dependencies found.
	* configure.ac (ANDROID_SDK_18_OR_EARLIER, XCONFIGURE, PNG_CFLAGS)
	(HAVE_TIFF): Allow using libtiff on Android.
	* cross/ndk-build/ndk-clear-vars.mk: Undefine additional
	variables.
	* cross/ndk-build/ndk-resolve.mk: Split CFLAGS resolution from
	a-name resolution, and do not recursively add archive or shared
	object names for dependencies of shared libraries.

	* src/Makefile.in (TIFF_CFLAGS): New variable.
	(EMACS_CFLAGS): Use it.

2023-01-28  Michael Albinus  <michael.albinus@gmx.de>

	Tramp cleanup from recent test campaign

	* lisp/net/tramp.el (tramp-barf-if-file-missing): Fix docstring.
	(tramp-handle-file-directory-p): Don't suppress errors.
	(tramp-handle-shell-command):
	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	Make insertion of a stderr file more robust.

	* lisp/net/tramp-archive.el (tramp-archive-handle-directory-files):
	Use `tramp-barf-if-file-missing'.

	* lisp/net/tramp-sudoedit.el
	(tramp-sudoedit-handle-file-name-all-completions): Protect against
	errors from `file-directory-p'.

	* lisp/net/tramp.el (tramp-wrong-passwd-regexp):
	* lisp/net/tramp-adb.el (tramp-adb-prompt):
	* lisp/net/tramp-sh.el (tramp-sh-inotifywait-process-filter):
	* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Unify regexps.

	* test/lisp/net/tramp-tests.el (tramp-test48-auto-load)
	(tramp-test48-delay-load): Unify regexps.

2023-01-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android File System): Describe an
	easier way to disable scoped storage.
	* java/AndroidManifest.xml.in: Add new permission to allow that.
	* java/README: Add more text describing Java.
	* java/org/gnu/emacs/EmacsContextMenu.java (Item): New fields
	`isCheckable' and `isChecked'.
	(EmacsContextMenu, addItem): New arguments.
	(inflateMenuItems): Set checked status as appropriate.

	* java/org/gnu/emacs/EmacsCopyArea.java (perform): Disallow
	operations where width and height are less than or equal to
	zero.
	* lisp/menu-bar.el (menu-bar-edit-menu): Make
	execute-extended-command available as a menu item.
	* src/androidmenu.c (android_init_emacs_context_menu)
	(android_menu_show):
	* src/menu.c (have_boxes): Implement menu check boxes.

2023-01-28  Po Lu  <luangruo@yahoo.com>

	Set up fontset stuff on Android

	* lisp/term/android-win.el (window-system-initialization):
	Create default fontset.

2023-01-28  Po Lu  <luangruo@yahoo.com>

	Fix file descriptor leaks

	* src/sfntfont.c (sfntfont_read_cmap):
	(sfntfont_open): Fix leaks of file descriptors.

2023-01-28  Po Lu  <luangruo@yahoo.com>

	Update from gnulib

	* cross/lib/stdalign.in.h (_GL_STDALIGN_H):
	(_):
	(__alignof_is_defined):
	* cross/lib/vasnprintf.c:
	* lib/gnulib.mk.in (ANDROID_MIN_SDK):
	(HAVE_SPAWN_H):
	(LIBGCCJIT_LIBS):
	(NATIVE_COMPILATION_AOT):
	(NEXT_AS_FIRST_DIRECTIVE_LIMITS_H):
	(NEXT_LIMITS_H):
	(SIZEOF_LONG):
	(stdalign.h):
	* lib/stdalign.in.h (_GL_STDALIGN_H):
	(_):
	(__alignof_is_defined):
	* lib/vasnprintf.c:
	* m4/gnulib-common.m4 (gl_COMMON_BODY):
	* m4/stdalign.m4 (gl_ALIGNASOF):
	* m4/stddef_h.m4: Update from gnulib.

2023-01-28  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-28  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* INSTALL.android: Document support for gnutls and libgmp.
	* build-aux/ndk-build-helper-1.mk (NDK_SO_NAMES, NDK_INCLUDES)
	(SYSTEM_LIBRARIES):
	* build-aux/ndk-build-helper-2.mk: Recursively resolve and add
	shared library dependencies; even those of static libraries.
	* build-aux/ndk-module-extract.awk: Fix makefile_imports code.
	* configure.ac (ANDROID_SDK_18_OR_EARLIER, XCONFIGURE)
	(LIBGMP_CFLAGS): Enable GMP and gnutls on Android.

	* cross/ndk-build/Makefile.in (LOCAL_EXPORT_C_INCLUDES):
	* cross/ndk-build/ndk-build-shared-library.mk: ($(call
	objname,$(LOCAL_MODULE),$(basename $(1))))::($$(error
	Unsupported suffix)::($(LOCAL_MODULE_FILENAME)):
	* cross/ndk-build/ndk-build-static-library.mk: ($(call
	objname,$(LOCAL_MODULE),$(basename $(1))))::($$(error
	Unsupported suffix):
	* cross/ndk-build/ndk-clear-vars.mk:
	* cross/ndk-build/ndk-resolve.mk (NDK_SYSTEM_LIBRARIES):
	(NDK_LOCAL_EXPORT_C_INCLUDES_$(LOCAL_MODULE)):
	(NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)):
	Implement ``LOCAL_ASM_RULE'' and ``LOCAL_C_ADDITIONAL_FLAGS''
	extensions for libgmp.

	* doc/emacs/input.texi (Touchscreens): Document how to
	horizontally scroll.
	* java/org/gnu/emacs/EmacsActivity.java (attachWindow): Give the
	view focus again if necessary.
	(onPause): Call right super function.
	* java/org/gnu/emacs/EmacsPreferencesActivity.java (onClick):
	Clear dumpFileName lest Emacs try to load a nonexistent dump
	file.
	* java/org/gnu/emacs/EmacsView.java (onDetachedFromWindow)
	(onAttachedToWindow): Call super functions.
	(onCreateInputConnection): Make sure the IME never obscures
	Emacs.
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, onKeyDown)
	(onKeyUp): Improve tracking of quit keys.

	* lisp/isearch.el (isearch-mode): Bring up the onscreen
	keyboard.
	* lisp/touch-screen.el (touch-screen-current-tool): Add three
	fields.
	(touch-screen-handle-scroll): Allow hscrolling as well.
	(touch-screen-handle-touch): Add additional fields to
	`touch-screen-current-tool'.
	* src/Makefile.in (LIBGMP_CFLAGS, EMACS_CFLAGS): Add new
	variable.
	* src/android.c (android_run_select_thread):
	(android_write_event): Use pthread_cond_broadcast because
	pthread_cond_signal does nothing on some Android
	versions/devices?

2023-01-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	128a999bfe7 Make project-current not error out inside non-existent dirs
	194bc97879d Improve documentation of 'shell-command-dont-erase-buffer'
	00629c03964 Fix errors in fontification of JavaScript import-statemen...
	fd145499bbd Fix fontification TypeScript of import-statements (bug#61...
	752c526585f ; Fix typos

2023-01-28  Jim Porter  <jporterbugs@gmail.com>

	Make 'eshell-number-regexp' into a regular defvar

	This isn't a very useful thing to customize, since it needs to detect
	numbers that can successfully be parsed by 'string-to-number'.
	Changes to this variable would therefore likely requiring adjusting
	'eshell-convert-to-number' as well.

	* lisp/eshell/esh-util.el (eshell-number-regexp): Make into a defvar
	and improve the regexp to support more numbers (including infinity and
	NaN).

	* test/lisp/eshell/esh-util-tests.el
	(esh-util-test/eshell-convert-to-number/floating-point)
	(esh-util-test/eshell-convert-to-number/floating-point-exponent)
	(esh-util-test/eshell-convert-to-number/non-numeric)
	(esh-util-test/eshell-convert-to-number/no-convert): New tests.

2023-01-28  Jim Porter  <jporterbugs@gmail.com>

	Add support for negative indices and index ranges in Eshell

	* lisp/eshell/esh-util.el (eshell-integer-regexp): New defvar.

	* lisp/eshell/esh-var.el (eshell-parse-indices): Expand docstring.
	(eshell-parse-index): New function.
	(eshell-apply-indices): Use 'eshell-parse-index' to determine whether
	to treat the first index as a regexp.  Simplify the implementation a
	bit.
	(eshell-index-range): New pcase macro...
	(eshell-index-value): ... use it, and restructure the implementation.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-indices):
	New function...
	(esh-var-test/interp-var-indices/list)
	(esh-var-test/interp-var-indices/vector)
	(esh-var-test/interp-var-indices/ring)
	(esh-var-test/interp-var-indices/split): ... use it.
	(esh-var-test/interp-var-string-split-indices)
	(esh-var-test/interp-var-regexp-split-indices)
	(esh-var-test/interp-var-assoc): Expand tests to cover things that
	look like numbers or ranges, but aren't.

	* doc/misc/eshell.texi (Variables): Describe how to get all arguments
	of the last command.
	(Dollars Expansion): Explain negative indices and index ranges.
	(Bugs and ideas): Remove now-implemented ideas.

	* etc/NEWS: Announce this change.

2023-01-27  Mattias Engdegård  <mattiase@acm.org>

	Repair hideif regexp problems

	* lisp/progmodes/hideif.el (hif-white-regexp, hif-tokenize):
	Avoid superlinear backtracking behavior by rewriting regexps
	to avoid nested repetitions and make positive progress each time.
	Use lazy matching of the innards of /*...*/ comments to avoid
	matching too much.

2023-01-27  Mattias Engdegård  <mattiase@acm.org>

	Don't inhibit LAP-level DCE when switch ops are present

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Allow removal of unreachable basic blocks in the LAP peephole
	optimizer even when switch ops are present.  The origins of
	this apparently unnecessary condition are unclear.

2023-01-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	5859413df23 ; * lisp/progmodes/cc-engine.el: Delete trailing whitespace.
	f72a394716f Work around package.el transitive dependency bug

2023-01-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	f8c95d1a768 Fix xt-mouse on terminals that report UTF-8 encoded coord...
	4bf7cb71edc Fix go-ts-mode indentation and set indent offset to 8 (Bu...
	ff9498624fc ; * src/insdel.c (insert_from_buffer): Fix assertions.
	41f497c8bee Fix doc strings of window-splitting commands
	cdf74254ffa Fix indentation for c-ts-mode (bug#61026)
	4bd06ce2a9f Fix call to treesit_record_change in insdel.c
	00675aa724a Add support for building tree-sitter modules with MinGW
	af28191b04f * lisp/net/tramp.el (tramp-wrong-passwd-regexp): Fix regexp.
	42e02480c2b * doc/emacs/text.texi (Outline Minor Mode): New node spli...
	37c1c924666 ; * etc/NEWS: Minor reordering.
	cfb180329b5 ruby-ts-mode: Don't reindent when "class" or "def" is und...
	abb3becb9fb treesit-install-language-grammar: Provide default repo url
	c6613403e5c Fix Dired face for directory symlinks
	37454de0c8f Pacify --without-x unused function warning
	9a21cb10751 ; * etc/NEWS: Fix typos.
	f30a4f51fef Announce outline.el keymaps
	8198803f660 ; Don't mention in the Gnus manual user options that were...
	8a1498c01f7 Fix fontification of function-valued variables (bug#61053)
	cfe26f31893 Add new java indent rules
	987e53f3e2d ; * doc/misc/erc.texi: Improve Local Modules section.
	3846e79c93b ; Fix filename mismatches in prop lines of ERC tests
	ecf500b5e34 Handle relative file names in vc-resynch-window and vc-re...
	695e9f71c3f Use named keymaps for outline buttons
	e31a5623965 * lisp/vc/vc-bzr.el (vc-bzr--pushpull): Return buffer's p...
	deee3a92623 ; Fix last change in etc/NEWS
	bc78285e686 ; * etc/NEWS: Fix typos.
	c15c0f7f018 CC Mode: Change the default value of objc-font-lock-extra...
	7f438ff543b Don't try to make a pipe process for remote processes in ...
	cb9628373a8 * lisp/startup.el (command-line): Fix warning message.  (...
	e6c5f32e77d * lisp/find-dired.el (find-dired): Fix bug where M-p skip...

	# Conflicts:
	#	etc/NEWS

2023-01-27  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (comp-trampoline-compile): Improve readability

2023-01-26  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

	* doc/emacs/input.texi (On-Screen Keyboards): Fix typo.

2023-01-26  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* INSTALL.android: Describe that apksigner is also required.
	* configure.ac: Correctly add cross/Makefile to
	SUBDIR_MAKEFILES.
	* cross/Makefile.in: (config.status): Depend on
	$(top_srcdir)/config.status.
	* doc/emacs/input.texi (On-Screen Keyboards): Document how to
	quit without a physical keyboard.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	function `quit'.
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow): New field
	`lastVolumeButtonPress'.
	(onKeyDown): Quit if necessary.
	* m4/ndk-build.m4 (ndk_where_cc): Fix search if CC is not a
	single word.
	* src/android.c (android_open): Remove unused variable.
	(quit): New function.
	* src/androidmenu.c (android_process_events_for_menu): Allow
	quitting the menu.
	* src/xterm.c (handle_one_xevent, x_term_init, syms_of_xterm):
	Implement features described above, so they work on free
	operating systems.
	* src/xterm.h (struct x_display_info): New fields `quit_keysym',
	`quit_keysym_time'.

2023-01-26  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* INSTALL.android: Document how to install sqlite3.
	* build-aux/ndk-build-helper-1.mk (SYSTEM_LIBRARIES):
	* build-aux/ndk-build-helper-2.mk (SYSTEM_LIBRARIES): Add liblog
	and libandroid.
	* configure.ac (SQLITE3_LIBS, HAVE_SQLITE3)
	(HAVE_SQLITE3_LOAD_EXTENSION): Support on Android.
	(APKSIGNER): Look for this new required binary.

	* cross/ndk-build/ndk-build-shared-library.mk (objname):
	* cross/ndk-build/ndk-build-static-library.mk (objname): Avoid
	duplicate rules by prefixing objects with module type.

	* cross/ndk-build/ndk-build.mk.in (NDK_BUILD_SHARED): Fix
	definition.
	* cross/ndk-build/ndk-resolve.mk:
	(NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)): Handle new system
	libraries.

	* doc/emacs/android.texi (Android File System): Document Android
	10 system restriction.

	* java/AndroidManifest.xml.in: Target Android 33, not 28.
	* java/Makefile.in (SIGN_EMACS_V2, APKSIGNER): New variables.
	($(APK_NAME)): Make sure to apply a ``version 2 signature'' to
	the package as well.

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	argument apiLevel.
	* java/org/gnu/emacs/EmacsNoninteractive.java (main):
	* java/org/gnu/emacs/EmacsThread.java (run): Pass API level.
	* m4/ndk-build.m4 (ndk_package_mape): Add package mapping for
	sqlite3.
	* src/Makefile.in (SQLITE3_CFLAGS): New substitution.
	(EMACS_CFLAGS): Add that variable.

	* src/android.c (android_api_level): New variable.
	(initEmacs): Set it.
	(android_file_access_p): Make static.
	(android_hack_asset_fd): Adjust for restrictions in Android 29
	and later.
	(android_close_on_exec): New function.
	(android_open): Adjust to not duplicate file descriptor even if
	CLOEXEC.
	(android_faccessat): Use fstatat at-func emulation.

	* src/android.h: Update prototypes.
	* src/dired.c (file_name_completion_dirp):
	* src/fileio.c (file_access_p, Faccess_file): Now that
	sys_faccessat takes care of everything, stop calling
	android_file_access_p.

2023-01-26  Mattias Engdegård  <mattiase@acm.org>

	Fix xref-clear-marker-stack refactoring mistake

	* lisp/progmodes/xref.el (xref-clear-marker-stack):
	Clear the history correctly.  Changing a lexical variable has no effect.

2023-01-26  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* .gitignore: Ignore lib/math.h.
	* INSTALL.android: Update accordingly.
	* build-aux/ndk-build-helper-1.mk:
	* build-aux/ndk-build-helper-2.mk:
	* build-aux/ndk-build-helper.mk:
	* build-aux/ndk-module-extract.awk: Handle C++ modules.
	* configure.ac: Enable libxml2 on Android.

	* cross/ndk-build/Makefile.in:
	* cross/ndk-build/ndk-build-shared-library.mk:
	* cross/ndk-build/ndk-build-static-library.mk:
	* cross/ndk-build/ndk-build.mk.in:
	* cross/ndk-build/ndk-resolve.mk: Fix dependency resolution of
	includes.

	* java/org/gnu/emacs/EmacsView.java (popupMenu): Fix minimum SDK
	version for actual popup menus.
	* lib/math.h: Delete file.

	* m4/ndk-build.m4 (ndk_SEARCH_MODULE, ndk_CHECK_MODULES): Look
	for nasm and C++ libraries.

	* src/android.c (faccessat): Rename to `android_faccessat'.
	* src/android.h: Update prototypes.
	* src/dired.c (file_name_completion_dirp):
	* src/fileio.c (file_access_p, Faccess_file, file_directory_p):
	* src/lisp.h:
	* src/lread.c (openp):
	* src/process.c (allocate_pty): Use sys_faccessat.
	* src/sysdep.c (sys_faccessat): New function.

2023-01-26  Po Lu  <luangruo@yahoo.com>

	Remove unused file

	* cross/ndk-build/ndk-build.in: Delete unused file.

2023-01-26  Po Lu  <luangruo@yahoo.com>

	Increase DUMPED_HEAP_SIZE

	* src/w32heap.c (DUMPED_HEAP_SIZE): Add 5 megabytes.

2023-01-25  Richard Stallman  <rms@gnu.org>

	When base64-decoding part of decrypted text, save the decoding
	  permanently if we save the decryption permanently.

	(rmail-epa-decode): Take arguments BEG and BACK-FROM-END to designate region.
	(rmail-epa-decrypt-1): Call rmail-epa-decode from here, when decrypting one
	encrypted passage.
	(rmail-epa-decrypt): Not from here.

2023-01-25  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/org/gnu/emacs/EmacsDrawLine.java: Fix this again.  Gosh,
	how does Android do this.
	* java/org/gnu/emacs/EmacsNoninteractive.java (main): Port to
	Android 2.3.3.

	* java/org/gnu/emacs/EmacsSdk11Clipboard.java
	(EmacsSdk11Clipboard): Port to Android 4.0.3.
	* java/org/gnu/emacs/EmacsService.java (getClipboardManager):
	New function.

	* src/alloc.c (find_string_data_in_pure): Fix Android alignment
	issue.

	* src/android-emacs.c (main): Port to Android 4.4.
	* src/android.c (initEmacs): Align stack to 32 bytes, so it ends
	up aligned to 16 even though gcc thinks the stack is already
	aligned to 16 bytes.

	* src/callproc.c (init_callproc): Use /system/bin/sh instead of
	/bin/sh by default.

2023-01-25  Po Lu  <luangruo@yahoo.com>

	Remove extra header

	* cross/lib/math.h: Delete header.

2023-01-25  Po Lu  <luangruo@yahoo.com>

	Minor fixes to Android port

	* java/Makefile.in: (emacs.apk-in): Don't call cp with empty
	args.
	* java/org/gnu/emacs/EmacsDrawLine.java (perform): Fix for
	PostScript filling semantics.
	* src/Makefile.in (android-emacs): Build android-emacs directly.

2023-01-25  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-25  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Startup, Android Environment):
	Document that restrictions on starting Emacs have been lifted.

	* java/README: Document Java for Emacs developers and how the
	Android port works.

	* java/org/gnu/emacs/EmacsApplication.java (EmacsApplication)
	(findDumpFile): New function.
	(onCreate): Factor out dump file finding functions to there.

	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Update
	function declarations.
	* java/org/gnu/emacs/EmacsNoninteractive.java
	(EmacsNoninteractive): New class.

	* java/org/gnu/emacs/EmacsService.java (EmacsService, getApkFile)
	(onCreate): Pass classpath to setEmacsParams.
	* java/org/gnu/emacs/EmacsThread.java (EmacsThread): Make run an
	override.
	* lisp/loadup.el: Don't dump on Android when noninteractive.
	* lisp/shell.el (shell--command-completion-data): Handle
	inaccessible directories.
	* src/Makefile.in (android-emacs): Link with gnulib.
	* src/android-emacs.c (main): Implement to launch app-process
	and then EmacsNoninteractive.
	* src/android.c (setEmacsParams): New argument `class_path'.
	Don't set stuff up when running noninteractive.
	* src/android.h (initEmacs): Likewise.
	* src/androidfont.c (init_androidfont):
	* src/androidselect.c (init_androidselect): Don't initialize
	when running noninteractive.
	* src/emacs.c (load_pdump): New argument `dump_file'.
	(android_emacs_init): Give new argument `dump_file' to
	`load_pdump'.
	* src/sfntfont-android.c (init_sfntfont_android): Don't
	initialize when running noninteractive.

2023-01-25  Po Lu  <luangruo@yahoo.com>

	Import gnulib modules printf-posix and vasprintf-posix

	These are necessary because Android's printf is missing basic format
	modifiers such as t.

	* admin/merge-gnulib (GNULIB_MODULES): Add printf-posix and
	vasprintf-posix.  Update from gnulib.
	* configure.ac (CFLAGS): Add -DHAVE_CONFIG_H.

2023-01-25  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify Apple clang version 13.0.0 (clang-1300.0.29.30):

	* src/coding.c: When compiling with Apple clang, ignore
	-Wunused-but-set-variable only in Clang 14 and greater.
	Problem reported by Mattias Engdegård.

2023-01-24  Po Lu  <luangruo@yahoo.com>

	Make binaries distributed with Emacs work on Android

	* doc/lispref/processes.texi (Subprocess Creation): Document
	variables containing program names.
	* etc/NEWS: Document new variables.
	* java/Makefile.in (CROSS_BINS): Add missing etags binary.
	* lisp/cedet/semantic/db-ebrowse.el
	(semanticdb-create-ebrowse-database):
	* lisp/gnus/mail-source.el (mail-source-movemail-program):
	* lisp/hexl.el (hexl-program):
	* lisp/htmlfontify.el (hfy-etags-bin):
	* lisp/ielm.el (inferior-emacs-lisp-mode):
	* lisp/mail/rmail.el (rmail-autodetect):
	(rmail-insert-inbox-text):
	* lisp/org/org-ctags.el (org-ctags-path-to-ctags):
	* lisp/progmodes/cperl-mode.el (cperl-etags):
	* lisp/speedbar.el (speedbar-fetch-etags-command):
	* lisp/textmodes/reftex-global.el (reftex-create-tags-file): Use
	new variables.
	* src/callproc.c (syms_of_callproc): New variables naming
	binaries redistributed with Emacs.

2023-01-24  Po Lu  <luangruo@yahoo.com>

	Enable libjpeg on Android

	* INSTALL.android: Update documentation.
	* build-aux/ndk-build-helper-1.mk: When building shared
	libraries, do not link libemacs.so with dependent archive files.
	* build-aux/ndk-build-helper-2.mk: Add whole archive
	dependencies as well.

	* configure.ac (HAVE_JPEG): Enable on Android.

	* cross/ndk-build/ndk-build-shared-library.mk: Link the shared
	object with archive file dependencies.
	* cross/ndk-build/ndk-build-static-library.mk: Build all code
	position-independently.
	* cross/ndk-build/ndk-resolve.mk: Separately resolve a names of
	archive and whole archive dependencies.

	* src/Makefile.in (JPEG_CFLAGS): New variable.
	(EMACS_CFLAGS): Add it.

2023-01-24  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* INSTALL.android: Update.
	* build-aux/ndk-build-helper-1.mk: Fix typo.
	* configure.ac: Enable --with-json on Android.
	* cross/ndk-build/ndk-build-shared-library.mk:
	(NDK_CFLAGS_$(LOCAL_MODULE)):
	(LOCAL_MODULE_FILENAME):
	* cross/ndk-build/ndk-build-static-library.mk:
	(ALL_OBJECT_FILES$(LOCAL_MODULE)):
	(LOCAL_MODULE_FILENAME): Recursively resolve dependencies.
	* cross/ndk-build/ndk-resolve.mk: New function.

	* doc/emacs/android.texi (Android Startup): Document how Emacs
	is dumped during initial startup.

	* java/Makefile.in (filename): Fix build with multiple shared
	libraries.
	* java/README: Improve commentary.
	* java/org/gnu/emacs/EmacsApplication.java (onCreate): Look and
	set dump file.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	function getFingerprint.
	* java/org/gnu/emacs/EmacsPreferencesActivity.java (onCreate):
	Add option to erase the dump file.
	* java/org/gnu/emacs/EmacsService.java (browseUrl): New
	function.
	* java/org/gnu/emacs/EmacsThread.java (run): Specify dump file
	if found.
	* lisp/loadup.el: Always dump during loadup on Android.

	* lisp/net/browse-url.el (browse-url--browser-defcustom-type):
	(browse-url-default-browser):
	(browse-url-default-android-browser): New browse url type.

	* m4/ndk-build.m4 (ndk_package_map): Map jansson to libjansson.
	* src/android.c (struct android_emacs_service): New method
	`browse_url'.
	(getFingerprint): New function.
	(android_init_emacs_service): Initialize new method.
	(android_browse_url): New function.

	* src/android.h: Update prototypes.

	* src/androidselect.c (Fandroid_browse_url): New function.
	(syms_of_androidselect): Define it.

	* src/emacs.c (load_pdump): Don't look in fancy places on
	Android.
	* src/pdumper.c (Fdump_emacs_portable): Allow dumping while
	interactive on Android.
	(syms_of_pdumper): New variable `pdumper-fingerprint'.

	* src/sfntfont-android.c (sfntfont_android_composite_bitmap):
	Fix unused variables.

2023-01-24  Po Lu  <luangruo@yahoo.com>

	Update from gnulib

	Update from gnulib.  In addition,

	* admin/merge-gnulib: Fix paths for rename.

2023-01-24  Po Lu  <luangruo@yahoo.com>

	Improve lib-src/Makefile.in

	* lib-src/Makefile.in (DONT_INSTALL):
	(clean): Correctly define asset-directory-tool.

2023-01-24  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-24  Po Lu  <luangruo@yahoo.com>

	Fix distclean target

	* cross/Makefile.in (distclean bootstrap-clean): Remove Makefile.

2023-01-24  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* .gitignore: Update with new files.  Do not ignore std*.in.h.
	* INSTALL.android: Explain how to build Emacs with external
	dependencies.

	* Makefile.in (xcompile, cross): Rename to `cross'.
	(clean_dirs): Clean cross, not xcompile.

	* README: Document new directories.

	* build-aux/ndk-build-helper-1.mk (build_kind, NDK_SO_NAMES):
	* build-aux/ndk-build-helper-2.mk (build_kind, NDK_SO_NAMES):
	* build-aux/ndk-build-helper-3.mk (build_kind):
	* build-aux/ndk-build-helper-4.mk:
	* build-aux/ndk-build-helper.mk (NDK_BUILD_DIR, my-dir):
	* build-aux/ndk-module-extract.awk: New files.
	* configure.ac: Set up libgif, libwebp, and libpng for
	ndk-build.
	* cross/ndk-build/Makefile.in (srcdir, NDK_BUILD_ANDROID_MK):
	* cross/ndk-build/ndk-build-executable.mk:
	* cross/ndk-build/ndk-build-shared-library.mk (eq, objname):
	* cross/ndk-build/ndk-build-static-library.mk (eq, objname):
	* cross/ndk-build/ndk-build.in (NDK_BUILD_MODULES):
	* cross/ndk-build/ndk-build.mk.in (NDK_BUILD_MODULES)
	(NDK_BUILD_SHARED):
	* cross/ndk-build/ndk-clear-vars.mk:
	* cross/ndk-build/ndk-prebuilt-shared-library.mk:
	* cross/ndk-build/ndk-prebuilt-static-library.mk: New files.
	* doc/emacs/android.texi (Android, Android Environment):
	Document clipboard support on Android.
	* doc/emacs/emacs.texi (Top): Update menus.
	* etc/MACHINES: Document Android.
	* java/AndroidManifest.xml.in: Respect new
	`--with-android-debug' option.
	* java/Makefile.in (CROSS_BINS, CROSS_LIBS): Adjust for rename.
	Include ndk-build.mk.:(emacs.apk-in): Depend on shared
	libraries.  Then, package shared libraries.
	* java/org/gnu/emacs/EmacsClipboard.java (EmacsClipboard): New
	class.
	* java/org/gnu/emacs/EmacsFontDriver.java: Update comment to say
	this is unused.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	function `sendExpose'.
	* java/org/gnu/emacs/EmacsSdk11Clipboard.java
	(EmacsSdk11Clipboard):
	* java/org/gnu/emacs/EmacsSdk8Clipboard.java
	(EmacsSdk8Clipboard): New classes.
	* java/org/gnu/emacs/EmacsView.java (EmacsView, handleDirtyBitmap)
	(onDetachedFromWindow): When window is reattached, expose the
	frame.

	* lib/Makefile.in (VPATH):
	(ALL_CFLAGS): Adjust for rename.

	* lisp/term/android-win.el (android-clipboard-exists-p)
	(android-get-clipboard, android-set-clipboard)
	(android-clipboard-owner-p, android-primary-selection)
	(android-get-clipboard-1, android-get-primary)
	(android-selection-bounds, android-encode-select-string)
	(gui-backend-get-selection, gui-backend-selection-exists-p)
	(gui-backend-selection-owner-p, gui-backend-set-selection): New
	functions.

	* m4/ndk-build.m4: New file.
	* src/Makefile.in (GIF_CFLAGS, ANDROID_LDFLAGS): New variables.
	(EMACS_CFLAGS): Add GIF_CFLAGS.  Include
	ndk-build.mk.
	(libemacs.so): Depend on and link with required
	libraries.

	* src/android.c (android_check_compressed_file): New function.
	(android_open): Work around Android platform bug.
	(sendExpose): New function.
	(android_readdir): Set d_type if this is a directory.

	* src/androidgui.h (enum android_event_type)
	(struct android_expose_event, union android_event): Add expose
	events.

	* src/androidselect.c (struct android_emacs_clipboard)
	(android_init_emacs_clipboard, Fandroid_clipboard_owner_p)
	(Fandroid_set_clipboard, Fandroid_get_clipboard)
	(Fandroid_clipboard_exists_p, init_androidselect)
	(syms_of_androidselect): New file.

	* src/androidterm.c (handle_one_android_event): Handle
	exposures.
	* src/androidterm.h: Update prototypes.
	* src/emacs.c (android_emacs_init): Initialize androidselect.

2023-01-24  Po Lu  <luangruo@yahoo.com>

	Update android port

	* xcompile: Move to cross.
	* cross: New directory.

2023-01-24  Po Lu  <luangruo@yahoo.com>

	Update android port

	* xcompile: Move to cross.
	* cross: New directory.

2023-01-23  Alan Mackenzie  <acm@muc.de>

	CC Mode: Don't do c-backward-syntactic-ws following a forward movement

	This was happening in, e.g., c-forward-type, which moves over whitespace at
	the end of the scanned type.  This WS movement can exit a comment or a macro,
	such that a c-backward-syntactic-ws does not return to the desired point, but
	to before the entire comment/macro.

	* lisp/progmodes/cc-engine.el (c-forward-keyword-prefixed-id)
	(c-forward-id-comma-list, c-forward-noise-clause, c-forward-keyword-clause)
	(c-forward-name, c-forward-type): Add a new &optional parameter `stop-at-end'
	which when non-nil means "do not move over syntactic WS after performing the
	main job", and adapt the internals of these macros and functions accordingly.
	(c-forward-declarator, c-forward-decl-or-cast-1): In the calls to
	c-forward-type and c-forward-name, set the stop-at-end argument to t, and call
	c-forward-sytactic-ws later.

2023-01-23  Theodor Thornhill  <theo@thornhill.no>

	Swap tag and element in html-ts-mode (bug#60972)

	* lisp/textmodes/html-ts-mode.el: New values for
	'treesit-sentence-type-regexp' and 'treesit-sexp-type-regexp'.

2023-01-23  Michael Albinus  <michael.albinus@gmx.de>

	Factor out some Tramp code

	* lisp/net/tramp-compat.el (tramp-file-name-handler): Don't declare.

	* lisp/net/tramp.el (tramp-skeleton-file-truename)
	(tramp-skeleton-handle-make-symbolic-link): New defmacros.
	(tramp-handle-file-truename):
	* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
	(tramp-sh-handle-file-truename):
	* lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-truename)
	(tramp-sudoedit-handle-make-symbolic-link): Use them.

	* lisp/net/tramp.el (tramp-call-process, tramp-call-process-region):
	Let-bind `temporary-file-directory'.

	* test/lisp/net/tramp-tests.el (tramp-action-yesno):
	Suppress run in tests.
	(tramp-test21-file-links, tramp-test29-start-file-process)
	(tramp-test30-make-process, tramp-test42-utf8): Adapt tests.

2023-01-23  Robert Pluim  <rpluim@gmail.com>

	Add `yes-or-no-prompt' user option

	This implements Bug#60312

	* src/fns.c (syms_of_fns): Define `yes-or-no-prompt' Lisp variable.
	(Fyes_or_no_p): Use `yes-or-no-prompt' instead of a hard-coded string.
	* lisp/cus-start.el (standard): Add custom specification for it.

	* doc/emacs/mini.texi (Yes or No Prompts): Document `yes-or-no-prompt'
	* doc/lispref/minibuf.texi (Yes-or-No Queries): And here.

	* etc/NEWS: Announce the new option.

2023-01-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	647cc9c65e7 Update to Org 9.6.1-16-ge37e9b

2023-01-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	b3814b43f60 (ruby-ts--predefined-variables): Fix the $` and $' entries
	db02cbdfe02 * lisp/find-dired.el (find-dired-with-command): Quote fin...
	2343a067c3d Generalize vc-pull-and-push to support more backends (bug...
	846838dbab8 Add test suite for sgml-html-meta-auto-coding-function
	0fb90f524db Fix decoding HTML files from archives
	c854ef7a187 ; Fix last change (bug#60556).
	8e83604dfe0 Avoid crashes in batch Emacs sub-processes on MS-Windows
	808e101fabe Tweak BSD style indentation (bug#60984)
	204519a2e73 Fix typo of exposed symbol name
	9296e0c6495 Fix typo after move to common lib (bug#61001)
	e74ba72a6a3 ruby-ts-mode: Fix two additional cases with ruby-method-c...
	ae7e28a4372 ruby-mode.el: Expand some docstrings with examples
	89cb3c3f157 Minor fixes for Haiku
	6adc193ad66 Move c-like common utils into own library (bug#60961)

	# Conflicts:
	#	lisp/progmodes/typescript-ts-mode.el

2023-01-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	b875c9bf67e Fix file-regular-p in Tramp
	63fa225d443 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	9f5d6c541e5 ; * doc/emacs/custom.texi (Init Rebinding): Fix wording i...
	a91b435d0d5 ; Reword user documentation on binding keys in Lisp
	0400de6a7de Fix typo in c-ts-mode (bug#60932)

2023-01-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	b3de81a6ee3 MH-E: handle removal of mhparam libdir from nmh 1.8
	d63e1a89518 Use point-min to anchor top-level constructs (bug#60602)
	34793337783 * lisp/org/ob-ruby.el: Fix outdated comments.
	472f1425985 ; ruby-ts-mode: Add a Version tag
	0cf053648a4 ; ruby-ts-mode: Update font-lock features list in Commentary
	67ee627c38d (project-try-vc): Add string-start and string-end anchors...
	06953fc8e1d Make `keymap-set-after' work for menus
	dcd59457b48 Use `key-parse' in `keymap-lookup'
	8904a26a9d2 Improve `keymap-set-after' documentation
	c7e02eaa3d9 Handle after arg correctly in `keymap-set-after'
	628b6241763 Don't load erc-goodies atop erc.el
	40cf494b7ce ; * etc/NEWS: Fix typos.
	6b2f85caa6c Make tree-sitter based modes optional
	b56cf28b325 ; (ruby-ts--predefined-variables): Make it a little shorter
	d94dc606a09 ruby-ts-mode: Claw back half of the performance drop from...
	d0d34514097 (ruby-ts-mode): Rename 'builtin-functions' to 'builtin-fu...
	d66ac5285f7 ruby-ts-mode: Highlight builtin methods
	370b1ac99ec ; ruby-ts-mode.el: Add customize-group mention to commentary
	7b7b2b95138 Fix c-ts-mode indent (bug#60873)
	7ca71d66dc7 Fix various problems in treesit-explore-mode (bug#60800)
	b7d6bb47ee5 ; * lisp/treesit.el (treesit-font-lock-fontify-region): M...
	0c6bfeddb21 ; Update tree-sitter major mode manual
	c289786886b ; Add commentary and dostring in c-ts-mode

	# Conflicts:
	#	etc/NEWS
	#	lisp/progmodes/c-ts-mode.el
	#	lisp/progmodes/go-ts-mode.el

2023-01-22  Theodor Thornhill  <theo@thornhill.no>

	Use element as a sentence in html-ts-mode

	* lisp/textmodes/html-ts-mode.el (html-ts-mode): Tweak the regexp.

2023-01-21  Evgeni Kolev  <evgenysw@gmail.com>

	Extend go-ts-mode with command to add docstring to function

	go-ts-mode is extended with command go-ts-mode-docstring which adds
	docstring comment to the defun at point. If a comment already exists,
	the point is instead moved to the top-most comment line. The command
	is bound to "C-c C-d".

	* lisp/progmodes/go-ts-mode.el (go-ts-mode): Extend docstring.
	(go-ts-mode-docstring): New function.
	(go-ts-mode--comment-on-previous-line-p): New function.
	(go-ts-mode-map): New map variable.
	* etc/NEWS: Mention the change.

	(bug#60805)

2023-01-21  Theodor Thornhill  <theo@thornhill.no>

	Add sexp navigation to js/typescript/tsx-ts-mode

	* lisp/progmodes/js.el (js--treesit-sexp-nodes): Add node types.
	(js-ts-mode): Set 'treesit-sexp-type-regexp'.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--sexp-nodes): Add node types.
	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode): Set
	'treesit-sexp-type-regexp'.
	(tsx-ts-mode): Add in jsx nodes.

2023-01-21  Po Lu  <luangruo@yahoo.com>

	Improve touch-screen support

	* doc/lispref/commands.texi (Touchscreen Events): Document
	changes.
	* lisp/touch-screen.el (touch-screen-current-tool): Update doc
	string.
	(touch-screen-precision-scroll): New user option.
	(touch-screen-handle-scroll): Use traditional scrolling by
	default.
	(touch-screen-handle-touch): Adjust format of
	touch-screen-current-tool.
	(touch-screen-track-tap): Don't print waiting for events.
	(touch-screen-track-drag): Likewise.  Also, don't call UPDATE
	until threshold is reached.
	(touch-screen-drag-mode-line-1, touch-screen-drag-mode-line):
	Improve window dragging.

2023-01-21  Theodor Thornhill  <theo@thornhill.no>

	Add sentence and sexp movement to c-ts-mode

	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Add
	'treesit-sentence-type-regexp' and 'treesit-sexp-type-regexp' node
	types.

2023-01-21  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-21  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android File System): Document that
	ls-lisp is now used by default.
	* java/org/gnu/emacs/EmacsThread.java (EmacsThread): Name the
	thread something meaningful.
	* lisp/loadup.el (featurep): Load ls-lisp on Android.
	* lisp/ls-lisp.el (ls-lisp-use-insert-directory-program):
	Default to off on Android.
	* src/android.c (android_is_directory): New function.
	(android_fstatat): Handle directories created by
	`android_opendir'.
	(android_open): Return meaningful file mode.
	(struct android_dir): New fields `next', `asset_file' and `fd'.
	(android_opendir): Populate those fields.
	(android_dirfd): New function.
	(android_closedir): Close file descriptor if set.
	(android_lookup_asset_directory_fd): New function.

	* src/android.h: Update prototypes.
	* src/androidfont.c (androidfont_check_init): New function.
	(androidfont_list, androidfont_match, androidfont_draw)
	(androidfont_open_font, androidfont_close_font)
	(androidfont_has_char, androidfont_encode_char)
	(androidfont_text_extents, androidfont_list_family): Initialize
	font driver if necessary.
	(init_androidfont): Don't initialize Java font if necessary.

	* src/dired.c (open_directory): Return android_dirfd if
	appropriate.
	(directory_files_internal, file_name_completion_dirp): Implement
	correctly for Android.

	* src/fileio.c (check_mutable_filename): New function.
	(Fcopy_file, Fdelete_directory_internal, Fdelete_file)
	(Frename_file, Fadd_name_to_file, Fmake_symbolic_link)
	(Fset_file_modes, Fset_file_times, Ffile_newer_than_file_p)
	(Fverify_visited_file_modtime, Fset_visited_file_modtime): Check
	that files being written to do not lie in /assets.

	* src/sfntfont-android.c (GET_SCANLINE_BUFFER)
	(sfntfont_android_u255to256, sfntfont_android_over_8888_1)
	(sfntfont_android_over_8888, sfntfont_android_composite_bitmap):
	Optimize on 64-bit ARM devices.
	(sfntfont_android_put_glyphs): Optimize away memset if
	background need not be filled.

2023-01-20  Theodor Thornhill  <theo@thornhill.no>

	Change top-level anchor to point-min

	* lisp/textmodes/html-ts-mode.el (html-ts-mode--indent-rules): Anchor
	to point-min.

2023-01-20  Theodor Thornhill  <theo@thornhill.no>

	Fix typo in c-ts-mode (bug#60932)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-block-type-regexp):
	Fix typo for "enumerator".

2023-01-20  Theodor Thornhill  <theo@thornhill.no>

	Add html-ts-mode (bug#60972)

	* lisp/textmodes/html-ts-mode.el: New major mode for HTML support
	powered by Tree-sitter.
	* etc/NEWS: Mention it in NEWS.

2023-01-20  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-20  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_run_select_thread, android_select)
	(android_ftruncate):
	* src/android.h (ftruncate): Fix compilation on Android 16 and
	up.

2023-01-20  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* src/android.c (android_run_select_thread, android_init_events)
	(android_select): Add alternative android_select implementation
	for API 16 and lower.
	* src/androidterm.c (handle_one_android_event): Fix
	use-after-frees.

2023-01-20  Po Lu  <luangruo@yahoo.com>

	Remove unused file

	* xcompile/lib/gnulib.mk.in: Delete.

2023-01-20  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* .gitignore: Don't ignore verbose.mk.android.
	* doc/emacs/Makefile.in (EMACSSOURCES): Add android.texi and
	input.texi.
	* doc/emacs/android.texi (Android): Document support for the
	on-screen keyboard.
	(Android Startup): Document how to start Emacs with -Q on
	Android.
	(Android Environment): Document how Emacs works around the
	system ``task killer''.  Document changes to frame deletion
	behavior.
	* doc/emacs/emacs.texi (Top):
	* doc/emacs/input.texi (Other Input Devices, On-Screen
	Keyboards): Document how to use Emacs with virtual keyboards.
	* doc/lispref/commands.texi (Touchscreen Events): Document
	changes to `touch-screen-track-drag'.
	* doc/lispref/frames.texi (Frames, On-Screen Keyboards): New
	node.
	* java/AndroidManifest.xml.in: Add settings activity and
	appropriate OSK adjustment mode.
	* java/org/gnu/emacs/EmacsActivity.java (onCreate): Allow
	creating Emacs with -Q.
	(onDestroy): Don't remove if killed by the system.
	* java/org/gnu/emacs/EmacsContextMenu.java (inflateMenuItems):
	Fix context menus again.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Make all
	event sending functions return long.
	* java/org/gnu/emacs/EmacsPreferencesActivity.java
	(EmacsPreferencesActivity): New class.
	* java/org/gnu/emacs/EmacsService.java (EmacsService)
	(onStartCommand, onCreate, startEmacsService): Start as a
	foreground service if necessary to bypass system restrictions.
	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
	* java/org/gnu/emacs/EmacsThread.java (EmacsThread, run):
	* java/org/gnu/emacs/EmacsView.java (EmacsView, onLayout)
	(onDetachedFromWindow):
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, viewLayout):
	Implement frame resize synchronization..
	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
	(EmacsWindowAttachmentManager, removeWindowConsumer): Adjust
	accordingly for changes to frame deletion behavior.
	* lisp/frame.el (android-toggle-on-screen-keyboard)
	(frame-toggle-on-screen-keyboard): New function.
	* lisp/minibuffer.el (minibuffer-setup-on-screen-keyboard)
	(minibuffer-exit-on-screen-keyboard): New functions.
	(minibuffer-setup-hook, minibuffer-exit-hook): Add new functions
	to hooks.

	* lisp/touch-screen.el (touch-screen-relative-xy): Accept new
	value of window `frame'.  Return frame coordinates in that case.
	(touch-screen-set-point-commands): New variable.
	(touch-screen-handle-point-up): Respect that variable.
	(touch-screen-track-drag): Return `no-drag' where appropriate.
	(touch-screen-drag-mode-line-1, touch-screen-drag-mode-line):
	Refactor to use `no-drag'.

	* src/android.c (struct android_emacs_window): New methods.
	Make all event sending functions return the event serial.
	(android_toggle_on_screen_keyboard, android_window_updated): New
	functions.
	* src/android.h: Update prototypes.
	* src/androidfns.c (Fandroid_toggle_on_screen_keyboard)
	(syms_of_androidfns): New function.
	* src/androidgui.h (struct android_any_event)
	(struct android_key_event, struct android_configure_event)
	(struct android_focus_event, struct android_window_action_event)
	(struct android_crossing_event, struct android_motion_event)
	(struct android_button_event, struct android_touch_event)
	(struct android_wheel_event, struct android_iconify_event)
	(struct android_menu_event): Add `serial' fields.

	* src/androidterm.c (handle_one_android_event)
	(android_frame_up_to_date):
	* src/androidterm.h (struct android_output): Implement frame
	resize synchronization.

2023-01-20  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	78b83a744fa ; * etc/NEWS: Rearrange instructions for building tree-si...
	fb82d4e3286 (treesit-simple-indent-presets): Have n-p-gp check for gr...
	25ddb3f7d99 ; ruby-ts--indent-rules: Minor cleanup
	a0ce569d3b7 ruby-toggle-block: Fix in ruby-ts-mode
	0d3b6518e39 (ruby-ts--indent-rules): Indent inside empty parens properly
	7fb69ce233b ; * doc/emacs/modes.texi (Choosing Modes): Add index entr...

	# Conflicts:
	#	etc/NEWS

2023-01-20  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	21be03cccb6 CC Mode: Prevent two classes of "type" prematurely enteri...

2023-01-20  Andrea Corallo  <andrea.corallo@arm.com>

	Add new command `kill-matching-buffers-no-ask' (bug#60714)

	* lisp/files.el (kill-matching-buffers-no-ask): New function.
	* etc/NEWS: Announce `kill-matching-buffers-no-ask'.

2023-01-20  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify clang 15.0.6 on Fedora 37

	* configure.ac: Suppress clang -Wbitwise-instead-of-logical,
	as there’s nothing wrong with using & and | on bool.
	* src/coding.c: Suppress -Wunused-but-set-variable in this file,
	as it’s too much trouble to recode to pacify clang.

2023-01-20  Jim Porter  <jporterbugs@gmail.com>

	Fix evaluation of asynchronous expansions in Eshell indices

	Previously, this code passed the indices to a separate function, which
	called 'eval' on them, but it should instead make an S-expr that
	'eshell-do-eval' can evaluate (bug#60942).

	* lisp/eshell/esh-var.el (eshell-eval-indices): Mark obsolete.
	(eshell-prepare-indices): New function...
	(eshell-parse-variable): ... use it.  Also, remove irrelevant comment.
	(eshell-parse-variable-ref): Fix quoting in docstring.
	(eshell-parse-indices): Fix typo in docstring.

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/interp-var-indices-subcommand)
	(esh-var-test/quoted-interp-var-indices-subcommand): New tests.

2023-01-20  Po Lu  <luangruo@yahoo.com>

	Check in missing file

	* xcompile/verbose.mk.android: New file.

2023-01-19  Theodor Thornhill  <theo@thornhill.no>

	Add treesit-forward-sexp (bug#60894)

	* lisp/progmodes/java-ts-mode.el (java-ts-mode): Use
	treesit-sexp-type-regexp.
	* lisp/treesit.el (treesit-sexp-type-regexp): New defvar.
	(treesit-forward-sexp): New command.
	(treesit-major-mode-setup): Conditionally set forward-sexp-function.
	* lisp/progmodes/ruby-ts-mode.el: Add some types to ruby-ts-mode.
	* doc/lispref/positions.texi (List Motion): Mention the change in the
	manual.
	* etc/NEWS: Mention the change.

2023-01-19  Michael Heerdegen  <michael_heerdegen@web.de>

	Fix an oversight in advice.el

	This fixes an oversight from 77c3c464a16: "* lisp/emacs-lisp/advice.el
	(ad-advised-functions): Make it a plain list" that caused an issue as
	reported in Bug#60893.

	* lisp/emacs-lisp/advice.el (ad-read-advised-function): Adjust to
	handle the new type of elements of `ad-advised-functions'.

2023-01-19  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-19  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* .gitignore: Add new files.
	* INSTALL.android: Explain how to build Emacs for ancient
	versions of Android.
	* admin/merge-gnulib (GNULIB_MODULES): Add getdelim.
	* build-aux/config.guess (timestamp, version):
	* build-aux/config.sub (timestamp, version): Autoupdate.
	* configure.ac (BUILD_DETAILS, ANDROID_MIN_SDK):
	(ANDROID_STUBIFY): Allow specifying CFLAGS via ANDROID_CFLAGS.
	Add new configure tests for Android API version when not
	explicitly specified.

	* doc/emacs/android.texi (Android): Add reference to ``Other
	Input Devices''.
	(Android File System): Remove restrictions on directory-files on
	the assets directory.
	* doc/emacs/emacs.texi (Top): Add Other Input Devices to menu.
	* doc/emacs/input.texi (Other Input Devices): New node.
	* doc/lispref/commands.texi (Touchscreen Events): Document
	changes to touchscreen input events.
	* doc/lispref/frames.texi (Pop-Up Menus): Likewise.
	* etc/NEWS: Announce changes.
	* java/Makefile.in: Use lib-src/asset-directory-tool to generate
	an `directory-tree' file placed in /assets.
	* java/debug.sh: Large adjustments to support Android 2.2 and
	later.

	* java/org/gnu/emacs/EmacsContextMenu.java (inflateMenuItems):
	* java/org/gnu/emacs/EmacsCopyArea.java (perform):
	* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog):
	* java/org/gnu/emacs/EmacsDrawLine.java (perform):
	* java/org/gnu/emacs/EmacsDrawRectangle.java (perform):
	* java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable):
	* java/org/gnu/emacs/EmacsFillPolygon.java (perform):
	* java/org/gnu/emacs/EmacsFillRectangle.java (perform):
	* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
	* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
	(destroyHandle):
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java (draw): Avoid
	redundant canvas saves and restores.
	* java/org/gnu/emacs/EmacsService.java (run):
	* java/org/gnu/emacs/EmacsView.java (EmacsView):
	(handleDirtyBitmap):
	* java/org/gnu/emacs/EmacsWindow.java (changeWindowBackground)
	(EmacsWindow): Make compatible with Android 2.2 and later.

	* lib-src/Makefile.in (DONT_INSTALL): Add asset-directory-tool
	on Android.:(asset-directory-tool{EXEEXT}): New target.
	* lib-src/asset-directory-tool.c (struct directory_tree, xmalloc)
	(main_1, main_2, main): New file.

	* lib, m4: Merge from gnulib.  This will be reverted before
	merging to master.

	* lisp/button.el (button-map):
	(push-button):
	* lisp/frame.el (display-popup-menus-p): Improve touchscreen
	support.
	* lisp/subr.el (event-start):
	(event-end): Handle touchscreen events.
	* lisp/touch-screen.el (touch-screen-handle-timeout):
	(touch-screen-handle-point-update):
	(touch-screen-handle-point-up):
	(touch-screen-track-tap):
	(touch-screen-track-drag):
	(touch-screen-drag-mode-line-1):
	(touch-screen-drag-mode-line): New functions.
	([mode-line touchscreen-begin]):
	([bottom-divider touchscreen-begin]): Bind new events.

	* lisp/wid-edit.el (widget-event-point):
	(widget-keymap):
	(widget-event-start):
	(widget-button--check-and-call-button):
	(widget-button-click): Improve touchscreen support.

	* src/alloc.c (make_lisp_symbol): Avoid ICE on Android NDK GCC.
	(mark_pinned_symbols): Likewise.

	* src/android.c (struct android_emacs_window): New struct.
	(window_class): New variable.
	(android_run_select_thread): Add workaround for Android platform
	bug.
	(android_extract_long, android_scan_directory_tree): New
	functions.
	(android_file_access_p): Use those functions instead.
	(android_init_emacs_window): New function.
	(android_init_emacs_gc_class): Update signature of `markDirty'.
	(android_change_gc, android_set_clip_rectangles): Tell the GC
	whether or not clip rects were dirtied.
	(android_swap_buffers): Do not look up method every time.
	(struct android_dir): Adjust for new directory tree lookup.
	(android_opendir, android_readdir, android_closedir): Likewise.
	(android_four_corners_bilinear): Fix coding style.
	(android_ftruncate): New function.
	* src/android.h: Update prototypes.  Replace ftruncate with
	android_ftruncate when necessary.

	* src/androidterm.c (handle_one_android_event): Pacify GCC.  Fix
	touch screen tool bar bug.
	* src/emacs.c (using_utf8): Fix compilation error.
	* src/fileio.c (Ffile_system_info): Return Qnil when fsusage.o
	is not built.
	* src/filelock.c (BOOT_TIME_FILE): Fix definition for Android.
	* src/frame.c (Fx_parse_geometry): Fix uninitialized variable
	uses.
	* src/keyboard.c (lispy_function_keys): Fix `back'.
	* src/menu.c (x_popup_menu_1): Handle touch screen events.
	(Fx_popup_menu): Document changes.

	* src/sfnt.c (main): Improve tests.

	* src/sfntfont-android.c (sfntfont_android_put_glyphs): Fix
	minor problem.
	(init_sfntfont_android): Check for
	HAVE_DECL_ANDROID_GET_DEVICE_API_LEVEL.
	* src/sfntfont.c (struct sfnt_font_desc): New fields `adstyle'
	and `languages'.
	(sfnt_parse_style): Append tokens to adstyle.
	(sfnt_parse_languages): New function.
	(sfnt_enum_font_1): Parse supported languages and adstyle.
	(sfntfont_list_1): Handle new fields.
	(sfntfont_text_extents): Fix uninitialized variable use.
	(syms_of_sfntfont, mark_sfntfont): Adjust accordingly.

2023-01-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	db727873803 ruby-ts-mode: Use font-lock-constant-face for true/false/nil
	819719330ad (ruby-ts--indent-rules): Add a rule for continuation of a...
	94b9cbf96fb (ruby-ts--parent-call-or-bol): Handle more cases with nes...
	ba33b83ce4b (ruby-ts--statement-container-regexp): Remove "parenthesi...
	f2bedf695c1 ruby-ts-mode: Handle indent in parenless calls much close...
	758ac5eabbe Fix split-window-below for the case when split-window-kee...
	8e9783b4ce4 Rebind in read-regexp-map ‘M-c’ to ‘M-s c’ compatible wit...
	78f93d92b28 * lisp/vc/vc-dir.el: Make keys ‘% m’ and ‘* %’ compatible...
	dc3f85fd4b0 Use proper types for Eshell warnings
	6a8338a8bc8 ; Avoid byte-compiler warning in cc-fonts.el.
	9186be20aeb ; Clarify doc strings of some functions in files.el
	bd5ef3ef95e Improve the documentation of 'auto-mode-alist' search
	1798ff5a663 ; Fix minor mistakes in documentation
	faee7e1f1bd ; * lisp/treesit.el (treesit-font-lock-fontify-region): M...
	24f0dfd3731 Revert "Revert "Add c-or-c++-ts-mode (bug#59613)""
	ac3bc775b6f Make it harder to misactivate tree-sitter font-lock fast ...
	bdd82fa7977 ; * src/treesit.c: Remove unused boilerplate.
	343b9b3dfe3 ruby-ts-mode: Obey the option ruby-method-call-indent
	045404d1aac ruby-ts-mode: Obey the option ruby-after-operator-indent
	300ca6ac372 ruby-ts-mode: Fix indent after operator or conditional
	ac5516bd7d5 ruby-ts-mode: Fix/change indentation of a continuation me...
	5e2e68a0c2d ruby-ts-mode: Fix indent inside parenthesized_expr and el...
	9ed9ff4690a ruby-ts-mode: Fix the rules for hanging arrays and hashes
	c4f0b6ccea1 Add more detail about how to invoke Eshell commands
	dbac923b9df CC Mode: On removal of "typedef", remove pertinent types ...
	56d69c2fc47 ; Relax timeouts for failing ERC test
	183e7492702 Don't preserve non-module minor modes in erc-open
	7b8322f6285 Use correct buffer for local-module vars in erc-open
	7b13422298a ; Avoid plist-get as generalized var in erc-compat
	09e9d7c7496 Fix display of warnings on w32 console
	bd094207c76 Fix buffer-list-update-hook for indirect buffers
	9e7a5d58eea ; Fix tree-sitter indent anchor preset
	7c61a304104 Fix treesit-node-first-child-for-pos (bug#60127)
	b36cc7e7bbb ; * src/treesit.c (Ftreesit_induce_sparse_tree): Minor ch...

	# Conflicts:
	#	etc/NEWS

2023-01-18  Mattias Engdegård  <mattiase@acm.org>

	Improved docstring single quote warning

	* lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-style-warn):
	More robust regexp.  More explicit warning message.

2023-01-18  Mattias Engdegård  <mattiase@acm.org>

	Better lambda quote warning

	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
	Avoid `...` shown backslash-escaped as a symbol, and render an empty
	argument list as `()` instead of `nil`.

2023-01-18  Paul Eggert  <eggert@cs.ucla.edu>

	Port xattr handling to Fedora 9

	Problem reported by Po Lu (Bug#60843).
	* m4/xattr.m4: Sync from Gnulib.

2023-01-17  Michael Albinus  <michael.albinus@gmx.de>

	Complete implementation of `file-user-id'

	* lisp/net/ange-ftp.el (ange-ftp-file-user-uid): New defun.  Mark
	it as file name handler for `file-user-uid'.

	* lisp/net/tramp-archive.el (tramp-archive-handle-file-user-uid):
	Move up.  Protect `file-user-id' call for older Emacs versions.

	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	Remove 'file-user-uid'.

	* test/lisp/net/tramp-archive-tests.el
	(tramp-archive-test44-file-user-uid): New test.
	(tramp-archive-test48-auto-load)
	(tramp-archive-test48-delay-load): Rename.

	* test/lisp/net/tramp-tests.el (tramp-test44-file-user-uid): New test.
	(tramp--test-asynchronous-requests-timeout): Adapt docstring.
	(tramp-test45-asynchronous-requests)
	(tramp-test46-dired-compress-file)
	(tramp-test46-dired-compress-dir, tramp-test47-read-password)
	(tramp-test48-auto-load, tramp-test48-delay-load)
	(tramp-test48-recursive-load, tramp-test48-remote-load-path)
	(tramp-test49-unload): Rename.

2023-01-17  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-17  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android Fonts): Document that TTC
	format fonts are now supported.
	* doc/emacs/emacs.texi (Top): Fix menus.
	* doc/lispref/commands.texi (Touchscreen Events)
	(Key Sequence Input): Document changes to touchscreen events.
	* etc/DEBUG: Describe how to debug 64 bit binaries on Android.

	* java/org/gnu/emacs/EmacsCopyArea.java (perform): Explicitly
	recycle copy bitmap.
	* java/org/gnu/emacs/EmacsDialog.java (EmacsDialog): New class.
	* java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Use 5
	point PolyLine like X, because Android behaves like Postscript
	on some devices and X elsewhere.
	* java/org/gnu/emacs/EmacsFillRectangle.java (perform):
	Explicitly recycle copy bitmap.
	* java/org/gnu/emacs/EmacsPixmap.java (destroyHandle):
	Explicitly recycle bitmap and GC if it is big.
	* java/org/gnu/emacs/EmacsView.java (EmacsView): Make
	`bitmapDirty' a boolean.
	(handleDirtyBitmap): Reimplement in terms of that boolean.
	Explicitly recycle old bitmap and GC.
	(onLayout): Fix lock up.
	(onDetachedFromWindow): Recycle bitmap and GC.

	* java/org/gnu/emacs/EmacsWindow.java (requestViewLayout):
	Update call to explicitlyDirtyBitmap.

	* src/android.c (android_run_select_thread, android_select):
	Really fix android_select.
	(android_build_jstring): New function.
	* src/android.h: Update prototypes.
	* src/androidmenu.c (android_process_events_for_menu): Totally
	unblock input before process_pending_signals.
	(android_menu_show): Remove redundant unblock_input and
	debugging code.
	(struct android_emacs_dialog, android_init_emacs_dialog)
	(android_dialog_show, android_popup_dialog, init_androidmenu):
	Implement popup dialogs on Android.

	* src/androidterm.c (android_update_tools)
	(handle_one_android_event, android_frame_up_to_date): Allow
	tapping tool bar items.
	(android_create_terminal): Add dialog hook.
	(android_wait_for_event): Adjust call to android_select.
	* src/androidterm.h (struct android_touch_point): New field
	`tool_bar_p'.
	* src/keyboard.c (read_key_sequence, head_table)
	(syms_of_keyboard): Prefix touchscreen events with posn.
	* src/keyboard.h (EVENT_HEAD): Handle touchscreen events.
	* src/process.c (wait_reading_process_output): Adjust call to
	android_select.
	* src/sfnt.c (sfnt_read_table_directory): If the first long
	turns out to be ttcf, return -1.
	(sfnt_read_ttc_header): New function.
	(main): Test TTC support.

	* src/sfnt.h (struct sfnt_ttc_header): New structure.
	(enum sfnt_ttc_tag): New enum.

	* src/sfntfont-android.c (struct
	sfntfont_android_scanline_buffer): New structure.
	(GET_SCANLINE_BUFFER): New macro.  Try to avoid so much malloc
	upon accessing the scanline buffer.
	(sfntfont_android_put_glyphs): Do not use SAFE_ALLOCA to
	allocate the scaline buffer.
	(Fandroid_enumerate_fonts): Enumerate ttc fonts too.

	* src/sfntfont.c (struct sfnt_font_desc): New field `offset'.
	(sfnt_enum_font_1): Split out enumeration code from
	sfnt_enum_font.
	(sfnt_enum_font): Read TTC tables and enumerate each font
	therein.
	(sfntfont_open): Seek to the offset specified.

	* xcompile/Makefile.in (maintainer-clean): Fix depends here.

2023-01-17  Po Lu  <luangruo@yahoo.com>

	Make tool bar highlight work correctly during touch events

	* src/xterm.c (handle_one_xevent): Before activating the tool
	bar in response to a touch event, set the mouse highlight to
	that location.  After the touch ends, clear the mouse highlight.

2023-01-17  Po Lu  <luangruo@yahoo.com>

	Correctly handle touches on the tool bar

	* src/xterm.c (xi_link_touch_point): New argument `frame'.  Set
	new field `touchpoint->frame' to it.
	(xi_unlink_touch_points): New function.
	(xi_disable_devices): Clear the tool bar device on frames whose
	tool bar device matches this field.
	(handle_one_xevent): If an XI_TouchBegin event lands on the tool
	bar, then simulate a pointer click.  Ignore future events from
	that touchpoint from there onwards.
	(x_make_frame_invisible, x_free_frame_resources): Unlink touch
	points associated with the frame.

	* src/xterm.h (struct xi_touch_point_t): New field `frame'.
	(struct x_output): New fields for keeping track of tool bar
	touches.

2023-01-17  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	e8c77d9abda Fix hfy-exclude-file-rules (bug#60562)
	c1d32d9a20d CC Mode: Prevent ids in temporary "declarators" getting i...
	140824dc099 ; Fix more quoting in w32fns.c.
	f367ba3ed03 ; Avoid byte-compiler warning in eglot.el
	1b458aced72 ; * lisp/progmodes/eglot.el: Remove stray space.
	7c8eac8fbcb ; * src/w32fns.c: Fix quoting.  Patch by Arash Esbati <ar...
	67df34c143d Fix M-x eglot prompt when connection already exists (bug#...
	3d1e74c82a8 Fix tree-sitter indent preset function (bug#60270)
	352e41016bc ruby-ts-mode: Support the option ruby-block-indent
	44c9cb8653d Improve indentation for jsx
	82ae9caaddb * lisp/subr.el (while-let): Fix docs if-let->if-let* (bug...
	f16bd1ead43 Revert "* lisp/subr.el (while-let): Use if-let, not if-le...
	c8d54809727 Bump use-package version for Emacs 29.1

2023-01-17  Jim Porter  <jporterbugs@gmail.com>

	Add 'file-user-uid' to get the connection-local effective UID

	In particular, this lets Eshell show a "#" root prompt sigil when the
	user has sudo'ed via "cd /sudo::" (bug#60722).

	* lisp/simple.el (file-user-uid): New function.

	* lisp/net/tramp.el (tramp-file-name-for-operation): Add
	'file-user-uid'.
	(tramp-handle-file-user-uid): New function.

	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	Add 'file-user-uid'.

	* lisp/net/tramp-archive.el (tramp-archive-handle-file-user-uid): New
	function...
	(tramp-archive-file-name-handler-alist): ... use it.

	* lisp/eshell/em-prompt.el (eshell-prompt-function): Use
	'file-user-uid'.

	* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Add '$UID'.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/uid-var): New test.

	* doc/lispref/os.texi (User Identification): Document 'file-user-uid'.

	* doc/lispref/files.texi (Magic File Names): Mention 'file-user-uid'.

	* doc/misc/eshell.texi (Variables): Document '$UID'.  Add a missing
	index entry for '$INSIDE_EMACS'.

	* etc/NEWS: Announce 'file-user-uid'.

2023-01-16  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/bytecomp.el (format-message): Warn on bad arity.

2023-01-16  Mattias Engdegård  <mattiase@acm.org>

	Optimize `apply` with `cons` in tail argument

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-apply): Transform

	  (apply F ... (cons X Y)) -> (apply F ... X Y)

	This pattern is seen both in hand-written code and in backquote
	expansions.

2023-01-16  Theodor Thornhill  <theo@thornhill.no>

	Add sentence node regexp to json-ts-mode

	* lisp/progmodes/json-ts-mode.el (json-ts-mode): Add pair for sentence
	movement.

2023-01-16  Theodor Thornhill  <theo@thornhill.no>

	Add some basic tests for java-ts-mode and typescript-ts-mode

	* test/lisp/progmodes/java-ts-mode-resources/indent.erts: New file
	with tests for indentation.
	* test/lisp/progmodes/java-ts-mode-resources/movement.erts: New file
	with tests for movement.
	* test/lisp/progmodes/java-ts-mode-tests.el: New tests.
	* test/lisp/progmodes/typescript-ts-mode-resources/indent.erts: New
	file with tests for indentation.
	* test/lisp/progmodes/typescript-ts-mode-tests.el: New tests.

2023-01-16  Theodor Thornhill  <theo@thornhill.no>

	Add sentence-nodes to dockerfile-ts-mode

	* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode): Catch all
	instructions.

2023-01-16  Po Lu  <luangruo@yahoo.com>

	Fix display of glyphs with word-sized component offsets on Android

	* src/sfnt.c (sfnt_decompose_compound_glyph): Handle correctly
	the Y offset in components with ARG_1_AND_2_ARE_WORDS.
	(main): Update debugging code.

2023-01-16  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-16  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* doc/emacs/android.texi (Android, Android Environment): Improve
	documentation.
	* doc/lispref/commands.texi (Touchscreen Events): Document
	changes to touchscreen support.
	* doc/lispref/display.texi (Defining Faces, Window Systems):
	* doc/lispref/frames.texi (Frame Layout, Font and Color
	Parameters):
	* doc/lispref/os.texi (System Environment): Document Android in
	various places.

	* java/org/gnu/emacs/EmacsWindow.java (figureChange): Fix crash.
	* lisp/loadup.el: ("touch-screen"): Load touch-screen.el.
	* lisp/pixel-scroll.el: Autoload two functions.
	* lisp/term/android-win.el: Add require 'touch-screen.
	* lisp/touch-screen.el (touch-screen-current-tool)
	(touch-screen-current-timer, touch-screen-delay)
	(touch-screen-relative-xy, touch-screen-handle-scroll)
	(touch-screen-handle-timeout, touch-screen-handle-point-update)
	(touch-screen-handle-point-up, touch-screen-handle-touch)
	(global-map, touch-screen): New file.
	* src/android.c (android_run_debug_thread): Fix build on 64 bit
	systems.
	(JNICALL, android_put_pixel): Likewise.
	(android_transform_coordinates, android_four_corners_bilinear)
	(android_fetch_pixel_bilinear, android_project_image_bilinear)
	(android_fetch_pixel_nearest_24, android_fetch_pixel_nearest_1)
	(android_project_image_nearest): New functions.
	* src/androidgui.h (struct android_transform): New structure.
	* src/androidterm.c (android_note_mouse_movement): Remove
	obsolete TODO.
	(android_get_scale_factor): New function.
	(android_draw_underwave): Scale underwave correctly.
	* src/dispextern.h: Support native image transforms on Android.
	* src/image.c (matrix_identity, matrix_rotate)
	(matrix_mirror_horizontal, matrix_translate): New functions.
	(image_set_transform): Implement native image transforms on
	Android.
	(Fimage_transforms_p): Implement on Android.

	* src/keyboard.c (make_lispy_event, syms_of_keyboard): Handle
	touch screen- menu bar events.
	* src/sfnt.c: Fix typo in comment.
	* src/sfntfont-android.c (sfntfont_android_blend, U255TO256)
	(sfntfont_android_put_glyphs): Avoid redundant swizzling.
	* src/sfntfont.c (sfntfont_lookup_char): Fix build on 64 bit
	systems.

2023-01-16  Alex Bochannek  <alex@bochannek.com>

	Run newsticker's ticker only periodically (bug#59856)

	* doc/misc/newsticker.texi (Frontends, Configuration): Add
	newsticker-ticker-period
	* lisp/net/newst-ticker.el (newsticker--ticker-period-timer): New.
	(newsticker--ticker-timer): Modify doc string.
	(newsticker-ticker-interval): Modify doc string.
	(newsticker-ticker-period): New
	(newsticker--display-tick, newsticker--display-jump)
	(newsticker--display-scroll, newsticker-start-ticker)
	(newsticker-stop-ticker): Use newsticker--ticker-timer and
	newsticker--ticker-period-timer.

2023-01-16  Theodor Thornhill  <theo@thornhill.no>

	Rename variables from last change

	* lisp/progmodes/js.el (js--treesit-sentence-nodes): Rename variable
	from 'js--treesit-sentence-type-regexp'.
	(js-ts-mode): Refer to it.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--sentence-nodes): Rename variable from
	'typescript-ts-mode--sentence-type-regexp'.
	(typescript-ts-base-mode, tsx-ts-mode): Refer to it.

2023-01-15  Theodor Thornhill  <theo@thornhill.no>

	Add treesit-sentence-type-regexp

	* lisp/progmodes/js.el (js--treesit-sentence-type-regexp): New defvar
	with sentence nodes.
	(js-ts-mode): Use the new defvar for treesit-sentence-type-regexp.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--sentence-type-regexp): New defvar with sentence
	nodes.
	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode): Use
	the new defvar for treesit-sentence-type-regexp.
	(tsx-ts-mode): Extend treesit-sentence-type-regexp with jsx nodes.

2023-01-15  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp robustness

	* lisp/net/tramp-cmds.el (tramp-cleanup-connection):
	Protect `delete-process'.

	* test/lisp/net/tramp-tests.el (tramp-test29-start-file-process)
	(tramp-test30-make-process): Don't test disabled process filter.

2023-01-15  Michael Albinus  <michael.albinus@gmx.de>

	Upgrade to length* functions in Tramp

	* lisp/net/tramp-compat.el (tramp-compat-replace-regexp-in-region):
	Move up.
	(tramp-compat-length<, tramp-compat-length>)
	(tramp-compat-length=): New defaliases.
	(tramp-compat-file-name-unquote, tramp-compat-take)
	(tramp-compat-ntake): Use them.

	* lisp/net/tramp.el (tramp-string-empty-or-nil-p): New defsubst.
	(tramp-find-host, tramp-buffer-name, tramp-make-tramp-file-name)
	(tramp-completion-make-tramp-file-name, tramp-debug-buffer-name)
	(tramp-completion-handle-file-name-all-completions)
	(tramp-handle-directory-file-name)
	(tramp-handle-expand-file-name)
	(tramp-handle-file-name-as-directory)
	(tramp-handle-file-name-completion)
	(tramp-direct-async-process-p, tramp-call-process)
	(tramp-read-passwd):
	* lisp/net/tramp-adb.el (tramp-adb-get-device)
	(tramp-adb-execute-adb-command, tramp-adb-maybe-open-connection):
	* lisp/net/tramp-archive.el (tramp-archive-handle-directory-file-name):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name)
	(tramp-gvfs-monitor-process-filter)
	(tramp-gvfs-handle-get-home-directory)
	(tramp-gvfs-handler-askpassword)
	(tramp-gvfs-maybe-open-connection, tramp-get-media-devices):
	* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-directory-p)
	(tramp-sh-handle-insert-directory)
	(tramp-sh-handle-expand-file-name, tramp-sh-handle-make-process)
	(tramp-sh-gio-monitor-process-filter, tramp-set-remote-path)
	(tramp-open-connection-setup-interactive-shell)
	(tramp-maybe-open-connection, tramp-make-copy-program-file-name):
	* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
	(tramp-smb-handle-expand-file-name, tramp-smb-handle-file-acl)
	(tramp-smb-handle-insert-directory)
	(tramp-smb-handle-set-file-acl)
	(tramp-smb-handle-get-home-directory)
	(tramp-smb-maybe-open-connection):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name)
	(tramp-sudoedit-handle-file-name-all-completions): Use the new
	functions.

	* test/lisp/net/tramp-archive-tests.el
	(tramp-archive-test43-file-system-info):
	* test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion)
	(tramp-test31-memory-info, tramp-test35-remote-path)
	(tramp-test43-file-system-info): Use new compat functions.

2023-01-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	9f5008b9b2a Improve error message from sqlite-mode.el
	73b304bb740 ; Fix last change: remove unused @anchor.
	d2efee31edb ; Update htmlfontify documentation
	72d2604d1fd Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	cf311826841 ; * lisp/files.el (insert-directory-wildcard-in-dir-p): D...
	3fa10f6e54d ; Add more c-ts-mode indent and filling tests
	25a5575f161 Fix c-ts-mode block comment indentation (bug#60270)
	252b2c01af0 Fix c-ts-mode label indent
	189d976dbae Fix statement indent for c-ts-mode (bug#59686) (bug#60280)
	c78e19d99c0 Allow offset in tree-sitter indent rules to be functions
	d13a329acff ; Minor change in c-ts-mode--indent-styles
	d428d510664 Support filling line comments in c-ts-mode
	f02998939c6 ; Fix c-ts-mode filling
	b365a7cc32e Fix expansion of wildcards in ls-lisp.el
	b5e0260f425 Fix messages displayed when diary is shown

2023-01-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	920a7d38e96 ; Fix typos
	48a62c55465 Add constructor_declaration as java-ts-mode defun
	72c45fa9109 Further improvement for non-string values in pcomplete
	1ef359095ec ; * etc/NEWS (--with-native-compilation=aot): Tweak wording.
	a8eb9dd4006 Fix the case in first-completion revealed by minibuffer-t...

	# Conflicts:
	#	doc/misc/modus-themes.org
	#	etc/NEWS

2023-01-15  Po Lu  <luangruo@yahoo.com>

	Implement submenus on Android

	* java/org/gnu/emacs/EmacsActivity.java (onCreate): Set the
	default theme to Theme.DeviceDefault.NoActionBar if possible.
	(onContextMenuClosed): Add hack for Android bug.
	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu)
	(onMenuItemClick): Set flag upon submenu selection.
	(inflateMenuItems): Set onClickListener for submenus as well.
	(display1): Clear new flag.
	* java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Fix
	rectangle bounds.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative):
	* java/org/gnu/emacs/EmacsService.java (onCreate): Pass cache
	directory.
	(sync): New function.
	* src/android.c (struct android_emacs_service): New method
	`sync'.
	(setEmacsParams, initEmacs): Handle cache directory.
	(android_init_emacs_service): Initialize new method `sync'.
	(android_sync): New function.
	* src/androidfns.c (Fx_show_tip): Call both functions.
	* src/androidgui.h: Update prototypes.
	* src/androidmenu.c (struct android_menu_subprefix)
	(android_free_subprefixes, android_menu_show): Handle submenu
	prefixes correctly.
	* src/androidterm.c (handle_one_android_event): Clear help echo
	on MotionNotify like on X.
	* src/menu.c (single_menu_item): Enable submenus on Android.

2023-01-15  Luke Lee  <luke.yx.lee@gmail.com>

	hideif.el: Support C99 and GNU style variadic macros

	* lisp/progmodes/hideif.el (hif-end-of-line, hif-cpp-prefix)
	(hif-ifx-regexp, hif-macro-expr-prefix-regexp, hif-white-regexp)
	(hif-macroref-regexp, hif-tokenize, hif-find-any-ifX)
	(hif-find-next-relevant, hif-find-previous-relevant, hif-find-range)
	(hif-parse-macro-arglist, hif-add-new-defines, hide-ifdef-guts):
	Variadic macro parsing, comments and multi-line parsing.
	(hif-line-concat, hif-etc-regexp): New regexp for better macro scans.
	(hif-expand-token-list, hif-get-argument-list, hif-delimit)
	(hif-macro-supply-arguments, hif-canonicalize, hif-find-define):
	Variadic macro argument replacement and expansion.
	(hif-display-macro): Display variadic macros.
	(hif-is-in-comment, hif-search-ifX-regexp): New functions to better
	handle macros in comments and comments in macros.

2023-01-15  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-15  Po Lu  <luangruo@yahoo.com>

	Implement toolkit menus on Android

	* java/org/gnu/emacs/EmacsActivity.java (onContextMenuClosed):
	New function.
	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu):
	New field `itemAlreadySelected'.
	(onMenuItemClick): New function.
	(inflateMenuItems): Attach onClickListener as appropriate.
	(display1): Clear itemAlreadySelected.
	(display): Fix runnable synchronization.
	* java/org/gnu/emacs/EmacsNative.java (sendContextMenu): New
	function.
	* java/org/gnu/emacs/EmacsView.java (popupMenu):
	(cancelPopupMenu): Set popupactive correctly.

	* src/android.c (android_run_select_thread): Fix android_select
	again.
	(android_wait_event): New function.
	* src/android.h: Update prototypes.
	* src/androidgui.h (enum android_event_type): New
	`ANDROID_CONTEXT_MENU' event.
	(struct android_menu_event, union android_event): Add new event.

	* src/androidmenu.c (struct android_emacs_context_menu): New
	structure.
	(android_init_emacs_context_menu): Add `dismiss' method.
	(struct android_dismiss_menu_data): New structure.
	(android_dismiss_menu, android_process_events_for_menu): New
	functions.
	(android_menu_show): Set an actual item ID.
	(popup_activated): Define when stubify as well.
	(Fmenu_or_popup_active_p): New function.
	(syms_of_androidmenu): New function.

	* src/androidterm.c (handle_one_android_event): Handle context
	menu events.
	* src/androidterm.h (struct android_display_info): New field for
	menu item ID.
	* src/emacs.c (android_emacs_init): Call syms_of_androidmenu.
	* src/xdisp.c (note_mouse_highlight): Return if popup_activated
	on Android as well.

2023-01-15  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* msdos/sed1v2.inp: Edit out QCOPY_ACL_LIB.

2023-01-14  Theodor Thornhill  <theo@thornhill.no>

	Use treesit-sentence-type-regexp in java-ts-mode

	Initial support for forward/backward-sentence movement with
	tree-sitter.  Include all statements, and some declarations.  Don't
	include the bigger declarations we don't want to jump over too big
	blocks of code.

	* lisp/progmodes/java-ts-mode.el (java-ts-mode): Add relevant node
	types to treesit-sentence-type-regexp.

2023-01-14  Jim Porter  <jporterbugs@gmail.com>

	Use the 'field' property to navigate through Eshell prompts

	* lisp/eshell/esh-mode.el (eshell-skip-prompt-function): Make
	obsolete.

	* lisp/eshell/em-prompt.el (eshell-prompt-regexp): Update docstring.
	(eshell-prompt-initialize): Don't set 'eshell-skip-prompt-function'.
	(eshell-next-prompt): Search for the 'field' property set to 'prompt'
	to find the next prompt.
	(eshell-previous-prompt): Move 'forward-line' call into
	'eshell-next-prompt'.
	(eshell-forward-matching-input, eshell-backward-matching-input):
	Reimplement on top of 'eshell-next-prompt'.
	(eshell-skip-prompt): Make obsolete.

	* test/lisp/eshell/em-prompt-tests.el
	(em-prompt-test/next-previous-prompt): New test.

2023-01-14  Jim Porter  <jporterbugs@gmail.com>

	Make 'eshell-bol' obsolete

	Now that Eshell uses fields for its output, 'eshell-bol' is no longer
	needed, and we can just use 'beginning-of-line'.

	* lisp/eshell/esh-mode.el (eshell-bol): Mark obsolete.
	(eshell-mode-map): Remove 'C-a' mapping.
	(eshell-command-map): Use 'move-beginning-of-line'.
	(eshell-move-argument, eshell-kill-input): Use 'beginning-of-line'.
	(eshell-get-old-input): Remove unnecessary call to
	'eshell-skip-prompt-function'.

	* lisp/eshell/em-rebind.el (eshell-rebind-keys-alist): Remove 'C-a'
	and '<home>' mappings; the global mapping for these
	('move-beginning-of-line') does the same thing now.

	* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments):
	* lisp/eshell/em-elecslash.el (eshell-electric-forward-slash):
	* lisp/eshell/em-hist.el (eshell-hist-word-reference)
	(eshell-previous-matching-input-from-input, eshell-test-imatch):
	* lisp/eshell/em-prompt.el (eshell-backward-matching-input):
	* lisp/eshell/em-rebind.el (eshell-point-within-input-p):
	* test/lisp/eshell/eshell-tests.el (eshell-test/forward-arg): Use
	'beginning-of-line'.

	* test/lisp/eshell/eshell-tests.el (eshell-test/run-old-command):
	Rename to...
	(eshell-test/get-old-input): ... this, and expand the test.

2023-01-14  Jim Porter  <jporterbugs@gmail.com>

	Set the 'field' property for Eshell output

	This makes Eshell work more like 'M-x shell', and lets the <home> key
	move to the beginning of the user's input at the prompt (bug#60666).

	* lisp/eshell/em-prompt.el (eshell-emit-prompt): Add 'field' property
	to prompt.
	(eshell-bol-ignoring-prompt): New function.

	* lisp/eshell/esh-io.el: Declare 'eshell-interactive-print'...
	(eshell-output-object-to-target): ... use it.

	* lisp/eshell/esh-mode.el (eshell-output-filter-functions): Update
	docstring.
	(eshell-interactive-print): Set the output to have a field value of
	'command-output'.
	(eshell-output-filter): Rename to...
	(eshell-interactive-filter): ... this, and take a buffer instead of a
	process.

	* lisp/eshell/esh-proc.el (eshell-interactive-process-filter): New
	function, adapted from 'eshell-output-filter'...
	(eshell-gather-process-output): ... use it.

	* test/lisp/eshell/em-prompt-tests.el: New file.

	* etc/NEWS: Announce this change.

2023-01-14  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	fd77de542d8 ; * etc/NEWS: Fix typos.
	195afb68e31 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	cd83bc930ca ; * lisp/htmlfontify.el (hfy-exclude-file-rules): Fix :ve...
	8d7ad656658 Fix indent and font-lock for annotation_type

	# Conflicts:
	#	etc/NEWS

2023-01-14  Po Lu  <luangruo@yahoo.com>

	Fix android_select

	* src/android.c (android_run_select_thread, android_select):
	Handle EINTR in sem_wait and fix sigsets.

2023-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	(apropos-documentation): Don't try to parse .elc files

	The old code scanned for #@ in .elc files, assuming they're
	docstrings and then looking around them to try and guess to which
	definition that docstring belongs, making many assumptions about how
	the code happens to be laid out by bytecomp.
	Replace that with code which relies on the (FILE . POS) info to
	extract the docstring knowing already where they are and what def they
	belong to.

	* lisp/apropos.el (apropos-documentation-check-elc-file): Delete function.
	(apropos--documentation-add-from-elc): New function to replace it.
	(apropos--documentation-add): New function, extracted from
	`apropos-documentation`.
	(apropos-documentation): Use them.  Let-bind `apropos-accumulator` and
	`apropos-files-scanned`.
	(apropos-documentation-internal): Don't handle the `cons` case any more.
	(apropos-item): Don't declare as global var.
	(apropos-documentation-check-doc-file): Use `apropos-item` as a local
	var rather than a global var.
	(apropos-print-doc): Receive `apropos-item` as arg rather than refer to
	it as a global variable.
	(apropos-print): Adjust calls accordingly.

2023-01-14  Po Lu  <luangruo@yahoo.com>

	Add temporary gnulib patch

	* xcompile/lib/fpending.c (__fpending): Fix gnulib problem.

2023-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge from origin/emacs-29

	96601cd90ba apropos.el: Fix bug#60628
	10032f424cc Fix indentation of some declarations and statements
	e2e937300f5 Fix indentation of object_expressions in csharp-ts-mode
	0116e27b26c ; Fix NEWS markup
	435ba92ccc4 ; Fix last change in htmlfontify.el
	7100ecd7a47 Replace 'hfy-find-cmd' with 'directory-files-recursively'.
	f102145d381 ; * etc/PROBLEMS: Describe problems with MuPDF 1.21.  (Bu...

2023-01-14  Po Lu  <luangruo@yahoo.com>

	Drop unneeded changes to gnulib

	* xcompile/lib/fpending.c (__fpending):
	* xcompile/lib/open.c:
	* xcompile/lib/unistd.c (_GL_UNISTD_INLINE): Remove Android
	patches.

2023-01-14  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-14  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* java/Makefile.in (clean): Fix distclean and bootstrap-clean rules.
	* java/debug.sh (jdb_port):
	(attach_existing):
	(num_pids):
	(line): Add new options to upload a gdbserver binary to the device.

	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): Make
	focusedActivities public.
	* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu):
	New class.
	* java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Fix
	bounds computation.
	* java/org/gnu/emacs/EmacsGC.java (markDirty): Set stroke width
	explicitly.
	* java/org/gnu/emacs/EmacsService.java (EmacsService)
	(getLocationOnScreen, nameKeysym): New functions.
	* java/org/gnu/emacs/EmacsView.java (EmacsView): Disable focus
	highlight.
	(onCreateContextMenu, popupMenu, cancelPopupMenu): New
	functions.
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow): Implement a
	kind of ``override redirect'' window for tooltips.
	* src/android.c (struct android_emacs_service): New method
	`name_keysym'.
	(android_run_select_thread, android_init_events):
	(android_select): Release select thread on semaphores instead of
	signals to avoid one nasty race on SIGUSR2 delivery.
	(android_init_emacs_service): Initialize new method.
	(android_create_window): Handle CW_OVERRIDE_REDIRECT.
	(android_move_resize_window, android_map_raised)
	(android_translate_coordinates, android_get_keysym_name)
	(android_build_string, android_exception_check): New functions.
	* src/android.h: Update prototypes.

	* src/androidfns.c (android_set_parent_frame, Fx_create_frame)
	(unwind_create_tip_frame, android_create_tip_frame)
	(android_hide_tip, compute_tip_xy, Fx_show_tip, Fx_hide_tip)
	(syms_of_androidfns): Implement tooltips and iconification
	reporting.

	* src/androidgui.h (enum android_window_value_mask): Add
	CWOverrideRedirect.
	(struct android_set_window_attributes): Add `override_redirect'.
	(ANDROID_IS_MODIFIER_KEY): Recognize Caps Lock.

	* src/androidmenu.c (struct android_emacs_context_menu): New
	struct.
	(android_init_emacs_context_menu, android_unwind_local_frame)
	(android_push_local_frame, android_menu_show, init_androidmenu):
	New functions.

	* src/androidterm.c (handle_one_android_event): Fix NULL pointer
	dereference.
	(android_fullscreen_hook): Handle fullscreen correctly.
	(android_draw_box_rect): Fix top line.
	(get_keysym_name): Implement function.
	(android_create_terminal): Remove scroll bar stubs and add menu
	hook.

	* src/androidterm.h: Update prototypes.
	* src/emacs.c (android_emacs_init): Initialize androidmenu.c.
	* xcompile/Makefile.in: Fix clean rules.

2023-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge from origin/emacs-29

	f1032bf24e7 Eglot: don't use "nil" as minibuffer initial input
	1b9ffd28116 Fix dependency bug when building lwlib
	dc33a122230 Fix use of build_pure_c_string in treesit.c

2023-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge from origin/emacs-29

	861556c1339 Fix minibuffer-completion tests
	c0578edc8fc ; * doc/misc/eglot.texi (Troubleshooting Eglot): Fix typo...
	c6bbf9cc270 Add c-ts-mode tests
	a760364f5f3 Fix c-ts-mode--fill-paragraph
	2a2b1d09ac7 Fix minor issues with 'pp' and related commands
	dfb38fb2ee6 ; Improve documentation of tree-sitter node comparison
	e8a89a18b69 ; Fix non-tree-sitter builds
	f27a330b99e ; Fix typo in ert-with-temp-file
	956889d8ff1 Equal now recognizes tree-sitter nodes (bug#60659)
	8f446c2d397 Fix c-ts-mode comment indentation (bug#60270)
	083badc9c12 * lisp/subr.el (while-let): Use if-let, not if-let* (bug#...
	9ecebcdded1 * lisp/simple.el (next-completion): Handle first completi...
	cfd2b3504ab Fix encoding with 'utf-8-auto'
	53b47df8229 Report cursor correctly on PGTK when there is a margin

	# Conflicts:
	#	etc/NEWS

2023-01-14  Eli Zaretskii  <eliz@gnu.org>

	Teach 'eww-open-file' about prefix argument

	* lisp/net/eww.el (eww-open-file): Accept a new optional argument
	NEW-BUFFER to show FILE in a new buffer.  (Bug#60809)

	* etc/NEWS:
	* doc/misc/eww.texi (Basics): Document the new feature.

2023-01-14  Laurence Warne  <laurencewarne@gmail.com>

	Preserve the window position with proced (bug#60381)

	Preserve the window position for windows which display a proced
	buffer, but are not the selected window when a proced buffer is
	updated.  Previously, the window position would be set to the
	start of the buffer when a proced buffer was updated and it was
	not displayed in the selected window.

	Similarly, preserve the position in proced buffers which are not
	displayed in any window by setting
	'switch-to-buffer-preserve-window-point' to nil in proced buffers.

	* lisp/proced.el (proced-auto-update-timer): Only update a given
	proced buffer if it is displayed in a window.
	(proced-update): Set the window position if the proced buffer is
	displayed in a window.
	(proced--position-info, proced--determine-pos): New Functions.
	(proced-mode): Set 'switch-to-buffer-preserve-window-point' to
	nil in proced buffers.
	* test/lisp/proced-tests.el
	(proced-update-preserves-pid-at-point-test): New test.

2023-01-14  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

	This adds a new file m4/xattr.m4 from Gnulib,
	for NFS v4 attribute copying.
	Also, do these changes by hand:
	* configure.ac: Mention $LIB_XATTR" in ACL summary.
	* src/Makefile.in (QCOPY_ACL_LIB): New macro.
	(LIBES): Use it.

2023-01-14  Po Lu  <luangruo@yahoo.com>

	Improve reliability of Android build system

	* .gitignore: Add new files.
	* INSTALL.android: New file.
	* Makefile.in (clean_dirs): Clean xcompile as well.
	* admin/merge-gnulib (avoided_flags): Import gnulib into Android
	directory as well.
	* doc/emacs/android.texi (Android):
	* doc/emacs/emacs.texi (Top): New node `Android'.
	* java/org/gnu/emacs/EmacsThread.java (run): Use right
	executable name.
	* lib/Makefile.in (ANDROID_CFLAGS): Use better way to refer to
	/src.
	(vpath): Delete ugly block of vpath statements.
	(mostlyclean): Remove Makefile.android.
	* lib/fpending.c (__fpending):
	* lib/open.c:
	* lib/unistd.c (_GL_UNISTD_INLINE): Revert changes to gnulib in
	lib/.
	* src/android.h:
	* src/androidterm.c: Fix build.
	* xcompile/Makefile.in (LIB_SRCDIR):
	(LIBSRC_BINARIES, src/verbose.mk):
	(PRE_BUILD_DEPS, PHONY): Use gnulib in xcompile/lib/ as opposed
	to lib/.
	* xcompile/README: Adjust README.

2023-01-14  Po Lu  <luangruo@yahoo.com>

	Check in gnulib with Android patches

	* xcompile/lib: Check-in gnulib with patches for Android.

2023-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/apropos.el (apropos-safe-documentation): Use `function-documentation`

2023-01-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	(function-documentation): Make it work for the remaining cases

	* lisp/simple.el (function-documentation):
	Use `internal-subr-documentation` and make it work also with symbols
	and macros.

	* src/doc.c (Fsubr_documentation): New function, extracted
	from Fdocumentation.
	(syms_of_doc): defsubr it.
	(Fdocumentation): Don't handle subrs and module functions here.

2023-01-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/reveal.el (reveal-open-new-overlays): Use `invisible-p`

2023-01-13  Gregory Heytings  <gregory@heytings.org>

	undo-tests.el: Tests for bug#60467

	* test/src/undo-tests.el (undo-test-combine-change-calls-1)
	(undo-test-combine-change-calls-2, undo-test-combine-change-calls-3):
	New tests.

2023-01-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/subr.el (combine-change-calls-1): Fix bug#60467

	Don't stop at timestamps.
	Also Don't burp about breakage just because (cdr old-bul) is nil.

2023-01-13  Michael Albinus  <michael.albinus@gmx.de>

	Adapt tramp-tests.el

	* test/lisp/net/tramp-tests.el (tramp--test-container-p):
	Rename from `tramp--test-docker-p'.  Handle also "podman" method.
	Adapt callees.

2023-01-13  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-13  Po Lu  <luangruo@yahoo.com>

	Fix crashes in Android port

	* java/org/gnu/emacs/EmacsService.java (queryTree): Fix NULL
	pointer dereference.
	* src/android.c (android_query_tree): Set *nchildren_return.

2023-01-13  Po Lu  <luangruo@yahoo.com>

	* .gitignore: Add AndroidManifest.xml.

	* java/AndroidManifest.xml: Remove file that is now generated.

	* src/frame.c (make_monitor_attribute_list): Allow source to be NULL.

2023-01-13  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* configure.ac (ANDROID_MIN_SDK): New variable.
	(DX): Remove and replace with D8.
	(XCONFIGURE): Check for the minimum version of Android the cross
	compiler compiles for.  Generate java/AndroidManifest.xml from
	java/AndroidManifest.xml.in.  Allow using Zlib on Android.

	* java/AndroidManifest.xml.in: New file.  Use the minimum SDK
	detected by configure.

	* java/Makefile.in (top_srcdir, version): New variables.
	(DX, D8): Replace with D8.
	(ANDROID_MIN_SDK, APK_NAME): New variables.
	(.PHONY):
	(.PRECIOUS):
	(classes.dex):
	(emacs.apk): Generate $(APK_NAME) instead of `emacs.apk'.

	* java/debug.sh: New option --attach-existing.  Attach to an
	existing Emacs instance when specified.

	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): New
	field `isPaused'.
	(invalidateFocus1): Fix infinite recursion.
	(detachWindow): Deiconify window.
	(attachWindow): Iconify the window if the activity is paused.
	(onCreate): Use the ``no title bar'' theme.
	(onPause, onResume): New functions.
	* java/org/gnu/emacs/EmacsNative.java (sendTouchUp, sendTouchDown)
	(sendTouchMove, sendWheel, sendIconified, sendDeiconified): New
	functions.
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java (Sdk7Typeface):
	(list): Remove logging for code that is mostly going to be unused.
	* java/org/gnu/emacs/EmacsService.java (ringBell, queryTree)
	(getScreenWidth, getScreenHeight, detectMouse): New functions.
	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView)
	(surfaceChanged, surfaceCreated, surfaceDestroyed): Add extra
	debug logging.  Avoid deadlock in surfaceCreated.

	* java/org/gnu/emacs/EmacsView.java (EmacsView): Try very hard
	to make the SurfaceView respect Z order.  It didn't work.
	(handleDirtyBitmap): Copy over the contents from the old bitmap.
	(explicitlyDirtyBitmap): New function.
	(onLayout): Don't dirty bitmap if unnecessary.
	(damageRect, swapBuffers): Don't synchronize so hard.
	(onTouchEvent): Call window.onTouchEvent instead.
	(moveChildToBack, raise, lower): New functions.

	* java/org/gnu/emacs/EmacsWindow.java (Coordinate): New
	subclass.
	(pointerMap, isMapped, isIconified, dontFocusOnMap)
	(dontAcceptFocus): New fields.
	(EmacsWindow): Don't immediately register unmapped window.
	(viewLayout): Send configure event outside the lock.
	(requestViewLayout): Explicitly dirty the bitmap.
	(mapWindow): Register the window now.  Respect dontFocusOnMap.
	(unmapWindow): Unregister the window now.
	(figureChange, onTouchEvent): New functions.
	(onSomeKindOfMotionEvent): Handle scroll wheel events.
	(reparentTo, makeInputFocus, raise, lower, getWindowGeometry)
	(noticeIconified, noticeDeiconified, setDontAcceptFocus)
	(setDontFocusOnMap, getDontFocusOnMap): New functions.
	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
	(registerWindow, detachWindow): Synchronize.
	(noticeIconified, noticeDeiconified): New functions.
	(copyWindows): New function.

	* lisp/frame.el (frame-geometry, frame-edges)
	(mouse-absolute-pixel-position, set-mouse-absolute-pixel-position)
	(frame-list-z-order, frame-restack, display-mouse-p)
	(display-monitor-attributes-list): Implement on Android.

	* lisp/mwheel.el (mouse-wheel-down-event):
	(mouse-wheel-up-event):
	(mouse-wheel-left-event):
	(mouse-wheel-right-event): Define on Android.

	* src/android.c (struct android_emacs_service): New methods
	`ringBell', `queryTree', `getScreenWidth', `getScreenHeight',
	and `detectMouse'.
	(struct android_event_queue, android_init_events)
	(android_next_event, android_write_event): Remove write limit.
	(android_file_access_p): Handle directories correctly.
	(android_close): Fix coding style.
	(android_fclose): New function.
	(android_init_emacs_service): Initialize new methods.
	(android_reparent_window): Implement function.
	(android_bell, android_set_input_focus, android_raise_window)
	(android_lower_window, android_query_tree, android_get_geometry)
	(android_get_screen_width, android_get_screen_height)
	(android_get_mm_width, android_get_mm_height, android_detect_mouse)
	(android_set_dont_focus_on_map, android_set_dont_accept_focus):
	New functions.
	(struct android_dir): New structure.
	(android_opendir, android_readdir, android_closedir): New
	functions.
	(emacs_abort): Implement here on Android and poke debuggerd into
	generating a tombstone.

	* src/android.h: Update prototypes.

	* src/androidfns.c (android_set_parent_frame): New function.
	(android_default_font_parameter): Use sane font size by default.
	(Fx_display_pixel_width, Fx_display_pixel_height)
	(Fx_display_mm_width, Fx_display_mm_height)
	(Fx_display_monitor_attributes_list): Rename to start with
	`android-'.  Implement.  Fiddle with documentation to introduce
	Android specific nuances.
	(Fandroid_display_monitor_attributes_list): New function.
	(Fx_frame_geometry, frame_geometry): New function.
	(Fandroid_frame_geometry): Implement correctly.
	(Fx_frame_list_z_order): Rename to start with `android-'.
	(android_frame_list_z_order, Fandroid_frame_list_z_order):
	Implement.
	(Fx_frame_restack): Rename to start with `android-'.
	(Fandroid_frame_restack): ``Implement''.
	(Fx_mouse_absolute_pixel_position): Rename to start with
	`android-'.
	(Fandroid_mouse_absolute_pixel_position): ``Implement''.
	(Fx_set_mouse_absolute_pixel_position): Rename to start with
	`android-'.
	(Fandroid_set_mouse_absolute_pixel_position): ``Implement''.
	(Fandroid_detect_mouse): New function.
	(android_set_menu_bar_lines): Use FRAME_ANDROID_DRAWABLE when
	clearing area.
	(android_set_no_focus_on_map, android_set_no_accept_focus): New
	functions.
	(android_frame_parm_handlers): Register new frame parameter
	handlers.
	(syms_of_androidfns): Update appropriately.

	* src/androidfont.c (androidfont_draw): Use
	FRAME_ANDROID_DRAWABLE instead of FRAME_ANDROID_WINDOW.

	* src/androidgui.h (enum android_event_type): New events.
	(struct android_touch_event, struct android_wheel_event)
	(struct android_iconify_event): New structures.
	(union android_event): Add new events.

	* src/androidterm.c (android_clear_frame): Use
	FRAME_ANDROID_DRAWABLE instead of FRAME_ANDROID_WINDOW.
	(android_flash, android_ring_bell): Implement bell ringing.
	(android_toggle_invisible_pointer): Don't TODO function that
	can't be implemented.
	(show_back_buffer, android_flush_dirty_back_buffer_on): Check if
	a buffer flip is required before doing the flip.
	(android_lower_frame, android_raise_frame): Implement functions.
	(android_update_tools, android_find_tool): New functions.
	(handle_one_android_event): Handle new iconification, wheel and
	touch events.
	(android_read_socket): Implement pending-autoraise-frames.
	(android_frame_up_to_date): Implement bell ringing.
	(android_buffer_flipping_unblocked_hook): Check if a buffer flip
	is required before doing the flip.
	(android_focus_frame, android_frame_highlight)
	(android_frame_unhighlight): New function.
	(android_frame_rehighlight): Implement functions.
	(android_iconify_frame): Always display error.
	(android_set_alpha): Update commentary.
	(android_free_frame_resources): Free frame touch points.
	(android_scroll_run, android_flip_and_flush)
	(android_clear_rectangle, android_draw_fringe_bitmap)
	(android_draw_glyph_string_background, android_fill_triangle)
	(android_clear_point, android_draw_relief_rect)
	(android_draw_box_rect, android_draw_glyph_string_bg_rect)
	(android_draw_image_foreground, android_draw_stretch_glyph_string)
	(android_draw_underwave, android_draw_glyph_string_foreground)
	(android_draw_composite_glyph_string_foreground)
	(android_draw_glyphless_glyph_string_foreground)
	(android_draw_glyph_string, android_clear_frame_area)
	(android_clear_under_internal_border, android_draw_hollow_cursor)
	(android_draw_bar_cursor, android_draw_vertical_window_border)
	(android_draw_window_divider): Use FRAME_ANDROID_DRAWABLE
	instead of FRAME_ANDROID_WINDOW for drawing operations.

	* src/androidterm.h (struct android_touch_point): New structure.
	(struct android_output): New fields.
	(FRAME_ANDROID_NEED_BUFFER_FLIP): New macro.

	* src/dired.c (emacs_readdir, open_directory)
	(directory_files_internal_unwind, read_dirent)
	(directory_files_internal, file_name_completion): Add
	indirection over readdir and opendir.  Use android variants on
	Android.

	* src/dispnew.c (Fopen_termscript):
	* src/fileio.c (fclose_unwind): Use emacs_fclose.
	(Faccess_file): Call android_file_access_p.
	(file_accessible_directory_p): Append right suffix to Android
	assets directory.
	(do_auto_save_unwind): Use emacs_fclose.
	* src/keyboard.c (lispy_function_keys): Use right function key
	for page up and page down.
	(Fopen_dribble_file): Use emacs_fclose.

	* src/lisp.h: New prototype emacs_fclose.

	* src/lread.c (close_infile_unwind): Use emacs_fclose.

	* src/sfnt.c (sfnt_curve_is_flat): Fix area-squared computation.
	(sfnt_prepare_raster): Compute raster width and height
	consistently with outline building.
	(sfnt_build_outline_edges): Use the same offsets used to set
	offy and offx.
	(main): Adjust debug code.

	* src/sfntfont-android.c (sfntfont_android_saturate32): Delete
	function.
	(sfntfont_android_blend, sfntfont_android_blendrgb): Remove
	unnecessary debug code.
	(sfntfont_android_composite_bitmap): Prevent out of bounds
	write.
	(sfntfont_android_put_glyphs): Use FRAME_ANDROID_DRAWABLE.
	(init_sfntfont_android): Initialize Monospace Serif font to
	something sensible.
	* src/sfntfont.c (sfntfont_text_extents): Clear glyph metrics
	before summing up pcm.
	(sfntfont_draw): Use s->font instead of s->face->font.

	* src/sysdep.c (emacs_fclose): Wrap around android_fclose on
	android.

	* src/term.c (Fsuspend_tty):
	(delete_tty): Use emacs_fclose.
	* src/verbose.mk.in (AM_V_DX): Replace with D8 version.

2023-01-13  Dimitri Belopopsky  <dimitri@belopopsky.com>  (tiny change)

	Remove deprecated RLS server from eglot server list

	* lisp/progmodes/eglot.el (eglot-server-programs) Remove deprecated
	RLS server from list since it is no longer maintained.  (Bug#60761)
	Ref: https://github.com/rust-lang/rls

2023-01-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	f4f30ff4c44 Update to Org 9.6.1
	09f7a920644 Add support for annotation_type_declaration
	4a8891a462e * etc/NEWS: Mention incompatible changes in 'outline-mino...
	384504edf35 Ensure VC package names are not empty
	70947da708c Handle missing package description when unpacking vc pack...

	# Conflicts:
	#	etc/NEWS

2023-01-11  Theodor Thornhill  <theo@thornhill.no>

	Add forward-sentence with tree sitter support (bug#60623)

	* etc/NEWS: Mention the new changes.
	* lisp/textmodes/paragraphs.el (forward-sentence-default-function):
	Move old implementation to its own function.
	(forward-sentence-function): New defvar defaulting to old behavior.
	(forward-sentence): Use the variable in this function unconditionally.
	* lisp/treesit.el (treesit-sentence-type-regexp): New defvar.
	(treesit-forward-sentence): New defun.
	(treesit-major-mode-setup): Conditionally set
	forward-sentence-function.
	* doc/emacs/programs.texi (Defuns): Add new subsection.
	(Moving by Sentences): Add some documentation with xrefs to the elisp
	manual and related nodes.
	* doc/lispref/positions.texi (List Motion): Mention
	treesit-sentence-type-regexp and describe how to enable this
	functionality.

2023-01-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-11  Po Lu  <luangruo@yahoo.com>

	Bring up the sfnt-android font driver

	* configure.ac (ANDROID_CFLAGS): Add sfnt-related font objects
	to ANDROID_OBJ when not building stubs.
	* lisp/startup.el (android-fonts-enumerated): New variable.
	(normal-top-level): Set it.  Also enumerate fonts as early as
	possible upon startup.

	* src/alloc.c (cleanup_vector): Only finalize Android font
	entities.
	(garbage_collect): Mark sfntfont.c.

	* src/android.c (struct android_emacs_drawable): New field
	`damage_rect'.
	(android_init_emacs_drawable): Initialize
	Lorg/gnu/emacs/EmacsDrawable;#damageRect(Landroid/graphics/rect;)V.
	(android_create_gc): Initialize cached GC fields.
	(android_free_gc): Free cached GC clip rectangles.
	(android_change_gc): Cache fields as appropriate.
	(android_set_clip_rectangles): Set cached clip rectangles for
	easy access from C.
	(android_get_gc_values): Use cached values.
	(android_get_image): Remove obsolete comment.
	(android_lock_bitmap, android_damage_window): New functions that
	don't parallel anything on X.

	* src/android.h: Update prototypes.

	* src/androidfns.c (android_default_font_parameter): Set Droid
	Sans Mono as the default monospace font.
	(Fx_create_frame): Register the sfntfont driver.

	* src/androidgui.h (struct android_gc): Add C side caches for
	clip rectangles and the foreground and background colors.

	* src/androidterm.h: Update prototypes.

	* src/dispextern.h (struct gui_box): New struct.
	(gui_union_rectangles): New function.

	* src/emacs.c (android_emacs_init): Initialize Android font
	stuff late.
	* src/font.c (font_make_entity): Clear `is_android' field on
	Android.
	(font_make_entity_android): Set `is_android' field.
	* src/font.h (struct font_entity): New field `is_android'.

	* src/print.c (print_vectorlike): Don't print private data,
	which could include Lisp_Misc.

	* src/sfnt.c (sfnt_read_cmap_format_0, sfnt_read_cmap_format_2)
	(sfnt_read_cmap_format_4, sfnt_read_cmap_format_6)
	(sfnt_read_cmap_format_8, sfnt_read_cmap_format_12): Remove
	buggy pragmas.
	(sfnt_lookup_glyph_4_1): New function.
	(sfnt_lookup_glyph_4): Handle malformed lookup tables found on
	Android.
	(sfnt_lookup_glyph): Fix overflow problems in glyph checks.
	(sfnt_read_glyph): Handle empty glyphs.  This implements some
	behavior which everyone else seems to as well, but I can't find
	documented in the TrueType Reference Manual.
	(sfnt_free_glyph): Export correctly.
	(sfnt_transform_coordinates): Make faster.
	(sfnt_lerp_half): Fix lerping in some cases.
	(sfnt_decompose_glyph): Handle empty glyphs correctly.  Close
	contours manually instead of waiting for the edge building
	process to do that.  This lets curves be handled correctly.
	(struct sfnt_build_glyph_outline_context): Move internal struct
	back to sfnt.c.
	(sfnt_build_append): Fix detection of initial entry.
	(sfnt_curve_to_and_build_1): Fix De Casteljau implementation.
	(sfnt_curve_to_and_build): Use fixed point arithmetic to scale
	outlines.
	(sfnt_build_glyph_outline): Clear reference counts.  Use fixed
	point arithmetic.
	(sfnt_prepare_raster): Align rasters to 4 bytes,
	SFNT_POLY_ALIGNMENT.  Fix calculation of offx and offy.
	(sfnt_step_edge_by): Step edge by previously computed step_x.
	(sfnt_build_outline_edges): Adjust for already closed contours.
	Ignore edges abandoned after grid fit.  Also precompute step_x
	to avoid multiplication on each span rastered.
	(sfnt_poly_edges): Improve alignment.
	(sfnt_fill_span): Rewrite to avoid control flow in while loop.
	(sfnt_poly_span): Remove unnecessary code.
	(sfnt_raster_glyph_outline): Use raster stride instead of width.
	(sfnt_test_edge, sfnt_test_raster, main): Improve debugging
	code.

	* src/sfnt.h (struct sfnt_glyph_outline): Add refcount field to
	outline.
	(struct sfnt_build_glyph_outline_context): Remove private
	struct.
	(struct sfnt_raster): Add refcount field to raster.
	(struct sfnt_edge): Improve doc.  Add `source_x' field used when
	built with TEST.
	(SFNT_CEIL_FIXED): New macro.

	* src/sfntfont-android.c (sfntfont_android_saturate32)
	(sfntfont_android_scale32, sfntfont_android_mul8x2)
	(sfntfont_android_blend, U255TO256)
	(sfntfont_android_composite_bitmap, sfntfont_android_union_boxes)
	(sfntfont_android_put_glyphs, sfntfont_android_get_cache): New
	functions.
	(android_sfntfont_driver): New font driver.
	(Fandroid_enumerate_fonts): New function.
	(syms_of_sfntfont_android_for_pdumper, init_sfntfont_android)
	(syms_of_sfntfont_android): Initialize default fonts, special
	family mapping and font driver.
	* src/sfntfont.c (struct sfnt_font_desc): New fields
	`char_cache', `cmap_invalid' and `subtable'.
	(sfnt_setup_coding_system): Improve commentary.  Add default
	branch.  Fix return value.
	(sfnt_safe_encode_coding_object_1)
	(sfnt_safe_encode_coding_object_2):
	(sfnt_safe_encode_coding_object): Use decode_coding_object
	instead of encode_coding_object.
	(sfnt_decode_font_string): Adjust for rename.
	(sfnt_decode_foundry_name): New function.
	(sfnt_weight_descriptions, sfnt_slant_descriptions)
	(sfnt_width_descriptions): Fix definitions.
	(sfnt_parse_style): Make function work.
	(sfnt_enum_font): Initialize designer, char-cache and subtable
	platform ID.
	(sfntfont_charset_for_name, mark_sfntfont)
	(sfntfont_charset_for_cmap): New functions.
	(syms_of_sfntfont): New variable `sfnt-default-family-alist'.

	* src/sfntfont.h (_SFNTFONT_H_): Update prototypes.

	* src/xdisp.c (gui_union_rectangles): New function.

2023-01-11  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	1cbc22b9c7f CC Mode: partially revert commit from 2022-10-04
	136c0272215 Fix reftex-citation docstring (bug#60710)
	64fe6bdb618 Improve 'describe-char-fold-equivalences' docstring
	fda1ad4a9ec Remove obsolete server buffers on MOTD in erc-track
	bb98666d03f ; Fix wrong type in erc-ignore hide-list options
	c267cd01517 ; Kill some stray buffers left behind by ERC tests
	f31e65694ca Fix completion-auto-help docstring (bug#60709)

2023-01-10  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	55aabfea4ac Fix c-ts-mode comment indent
	8377ed5298f Highlight identifier in import statements in js-ts-mode
	aa9df1260c3 Don't print named tree-sitter nodes with parenthesizes (b...
	e385c099b8c Improve fontification for import-statements in typescript...
	28dd6021384 Fix c-ts-mode indentation for 2nd line in block comment (...
	8a36a0f44aa ; xref.el: Bump version
	f16cc7c49c7 ; project.el: Bump version
	ebc5263667b ; * src/callint.c (Finteractive): Doc string clarification.
	c1401d1c6c8 * lisp/vc/diff-mode.el (diff-font-lock-keywords): Check f...
	1f8ad353d9f Minor improvement for tree-sitter explorer
	ef87c755660 Make sure NODE is not the root node in tree-sitter indent...
	1238fa8e49b Fix label indent of GNU and Linux style in c-ts-mode (bug...
	dc911e4ba5c Improve go-ts-mode Imenu, navigation and electric pair (b...
	20f36c8f6f9 ; ruby.rb: Fix pattern matching syntax and extend the exa...
	d46f7f4edcc Revert "Add c-or-c++-ts-mode (bug#59613)"
	1469aac20d8 ; * src/pgtkfns.c (parse_resource_key): Use recursive sch...
	da96a1fd741 Add back renamed function 'font-lock-fontify-syntacticall...
	b1aa720671e ; * lisp/progmodes/ruby-ts-mode.el: Fix compilation warni...
	5cb01ac5d78 ; * src/callint.c (Finteractive): Fix the doc string (bug...
	53e64cfb852 Improve options and docs of M-x command completion
	fef4f18cc33 ; Fix NEWS
	e04b3d41bb4 Update to Org 9.6-90-ga6523f
	e3d806b4172 Fix string fontification on python-ts-mode (bug#60599)
	800e15e3be0 Fix string-interpolation feature of python-ts-mode (bug#6...
	38b63f4c3ce Add indentation rule for concatenated_string (bug#60572)
	2cdd75a18ff Fix highlighting of variable-declarations in typescript-t...
	73168793c01 Fix label indentation for Linux style in c-ts-mode (bug#6...
	8575043f56b Remove duplicate entries in c-ts-mode's Imenu
	ef7f3c6388b Fix use of treesit-ready-p in c/c++-ts-mode
	cc1de953d4f ; * lisp/progmodes/gud.el (gud-tooltip-modes): Add ts- mo...
	16f1e47ca8b ; * lisp/align.el (align-c++-modes): Add c/c++-ts-mode.
	508389ad2bb Add documentation for c/c++-ts-mode (bug#60443)
	ee3e8d3f927 (ruby-ts--font-lock-settings): Improve highlighting in pa...
	614f8c431d3 Optionally include the namespace in c-ts-mode--declarator...
	7c356934fbb Support namespaces in c++-ts-mode (bug#60397)
	757c2c25922 Fix c-ts-mode--looking-at-star
	1df2826639c Add c-or-c++-ts-mode (bug#59613)
	0cb686ffb6b Document the 'definition-name' property.
	7f855b5297b ; Fix description of etc/DOC
	e9341119fe4 ; Fix documentation of etc/DOC
	86a3462e3d2 (treesit-simple-indent-presets): Do that for 'or' as well.
	e0fef510b00 ; Minor rewording of tree-sitter terminology
	f58452e3ae7 Fix 'python-shell-buffer-substring' when START is in midd...
	7f9588685a0 ; Fix last change
	e8b85f225d9 Rearrange the "Saving Emacs Sessions" section of the user...

	# Conflicts:
	#	etc/NEWS
	#	lisp/progmodes/c-ts-mode.el

2023-01-09  Theodor Thornhill  <theo@thornhill.no>

	Add named defun for transpose-sexps-default-function (bug#60654)

	* lisp/simple.el (transpose-sexps-default-function): Move the lambda
	into its own function.
	(transpose-sexps-function): Refer to it by name.
	* etc/NEWS: Mention the change.

2023-01-09  Eli Zaretskii  <eliz@gnu.org>

	Remove unneeded restriction in using AEAD ciphers with GnuTLS

	* src/gnutls.c (gnutls_symmetric_aead): Disable the enforcement of
	block size on input data.  (Bug#60693)

2023-01-08  Michael Albinus  <michael.albinus@gmx.de>

	Add remote-file-name-inhibit-delete-by-moving-to-trash

	* doc/emacs/files.texi (Misc File Ops):
	* doc/lispref/files.texi (Changing Files):
	* doc/misc/tramp.texi (Frequently Asked Questions):
	* etc/NEWS: Explain remote-file-name-inhibit-delete-by-moving-to-trash.

	* lisp/files.el (remote-file-name-inhibit-delete-by-moving-to-trash):
	New defcustom.  (Bug#60460)

	* lisp/net/ange-ftp.el (ange-ftp-delete-file):
	* lisp/net/tramp.el (tramp-skeleton-delete-directory):
	Handle `remote-file-name-inhibit-delete-by-moving-to-trash'.
	(tramp-skeleton-delete-file): New defmacro.

	* lisp/net/tramp-adb.el (tramp-adb-handle-delete-file):
	* lisp/net/tramp-fuse.el (tramp-fuse-handle-delete-file):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-delete-file):
	* lisp/net/tramp-sh.el (tramp-sh-handle-delete-file):
	* lisp/net/tramp-smb.el (tramp-smb-handle-delete-file):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-delete-file): Use it.

	* lisp/net/tramp-crypt.el (tramp-crypt-handle-delete-directory)
	(tramp-crypt-handle-delete-file): Rearrange.

	* lisp/net/tramp-fuse.el (tramp-fuse-handle-delete-directory):
	Use `tramp-skeleton-delete-directory'.

	* test/lisp/net/tramp-tests.el
	(remote-file-name-inhibit-delete-by-moving-to-trash): Declare.
	(tramp-test07-file-exists-p, tramp-test14-delete-directory)
	(tramp-test48-unload): Extend tests.

2023-01-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

	* configure.ac (ANDROID_OBJS): Add sfntfont files.

2023-01-08  Po Lu  <luangruo@yahoo.com>

	Check in new files

	* src/sfnt.h:
	* src/sfntfont-android.c:
	* src/sfntfont.c:
	* src/sfntfont.h: New files.

2023-01-08  Po Lu  <luangruo@yahoo.com>

	Update Android port

	Note that the port currently does not work as of this check-in.

	* src/android.c (android_change_gc): Fix situations where clip
	rects are cleared.
	(android_create_pixmap_from_bitmap_data): Fix bitmap data
	iteration.
	* src/androidfns.c (Fx_show_tip, Fx_hide_tip): Remove annoying
	errors.

	* src/androidgui.h (enum android_event_type):
	(struct android_crossing_event):
	(struct android_motion_event):
	(struct android_button_event):
	(union android_event): New crossing, motion and button events.

	* src/androidterm.c (android_note_mouse_movement)
	(mouse_or_wdesc_frame, android_construct_mouse_click)
	(handle_one_android_event, android_mouse_position)
	(android_wait_for_event, android_set_window_size_1)
	(android_bitmap_icon, android_free_frame_resources)
	(syms_of_androidterm): New functions.  Handle crossing, motion
	and button events.

	* src/androidterm.h (struct android_display_info): New field
	`last_mouse_movement_time'.
	(struct android_output): Remove unused `need_buffer_flip' field.

	* src/emacs.c (android_emacs_init): Initialize sfntfont.
	* src/frame.c (syms_of_frame): Set frame_inhibit_implied_resize
	to some reasonable value.
	* src/frame.h (GCALIGNED_STRUCT): Set wait_event_type on
	Android.

	* src/sfnt.c (eassert):
	(TEST_STATIC):
	(available):
	(enum sfnt_table):
	(sfnt_table_names):
	(SFNT_ENDOF):
	(struct sfnt_table_directory):
	(enum sfnt_scaler_type):
	(sfnt_coerce_fixed):
	(struct sfnt_hhea_table):
	(struct sfnt_cmap_table):
	(enum sfnt_platform_id):
	(enum sfnt_unicode_platform_specific_id):
	(enum sfnt_macintosh_platform_specific_id):
	(enum sfnt_microsoft_platform_specific_id):
	(struct sfnt_cmap_encoding_subtable):
	(struct sfnt_cmap_encoding_subtable_data):
	(struct sfnt_cmap_format_0):
	(struct sfnt_cmap_format_2_subheader):
	(struct sfnt_cmap_format_2):
	(struct sfnt_cmap_format_4):
	(struct sfnt_cmap_format_6):
	(struct sfnt_cmap_format_8_or_12_group):
	(struct sfnt_cmap_format_8):
	(struct sfnt_cmap_format_12):
	(struct sfnt_maxp_table):
	(struct sfnt_loca_table_short):
	(struct sfnt_loca_table_long):
	(struct sfnt_glyf_table):
	(struct sfnt_simple_glyph):
	(struct sfnt_compound_glyph_component):
	(struct sfnt_compound_glyph):
	(struct sfnt_glyph):
	(sfnt_read_table_directory):
	(file):
	(sfnt_read_cmap_table):
	(sfnt_read_head_table):
	(success):
	(sfnt_read_hhea_table):
	(sfnt_read_loca_table_short):
	(sfnt_read_loca_table_long):
	(sfnt_read_maxp_table):
	(sfnt_read_glyf_table):
	(sfnt_read_compound_glyph):
	(sfnt_read_glyph):
	(struct sfnt_point):
	(sfnt_expand_compound_glyph_context):
	(sfnt_decompose_compound_glyph):
	(struct sfnt_glyph_outline):
	(enum sfnt_glyph_outline_flags):
	(struct sfnt_build_glyph_outline_context):
	(sfnt_build_append):
	(sfnt_build_glyph_outline):
	(struct sfnt_raster):
	(struct sfnt_edge):
	(sfnt_prepare_raster):
	(sfnt_build_outline_edges):
	(sfnt_raster_glyph_outline): Move structures to sfnt.h.

	(struct sfnt_long_hor_metric):
	(struct sfnt_hmtx_table):
	(struct sfnt_glyph_metrics):
	(sfnt_read_hmtx_table):
	(sfnt_lookup_glyph_metrics):
	(sfnt_read_name_table):
	(sfnt_find_name):
	(sfnt_read_meta_table):
	(sfnt_find_metadata):
	(sfnt_test_edge_ignore): New functions.
	(main): Add new tests.
	* src/xdisp.c (redisplay_tool_bar):

2023-01-08  Po Lu  <luangruo@yahoo.com>

	Delete unused files

	* java/org/gnu/emacs/EmacsPaintQueue.java
	* java/org/gnu/emacs/EmacsPaintReq.java: Remove files.

2023-01-08  Po Lu  <luangruo@yahoo.com>

	Update Java part of Android port

	* java/org/gnu/emacs/EmacsCopyArea.java (EmacsCopyArea, perform)
	(paintTo):
	* java/org/gnu/emacs/EmacsDrawLine.java (EmacsDrawLine):
	* java/org/gnu/emacs/EmacsDrawPoint.java (EmacsDrawPoint):
	* java/org/gnu/emacs/EmacsDrawRectangle.java (EmacsDrawRectangle)
	(paintTo):
	* java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable):
	* java/org/gnu/emacs/EmacsFillPolygon.java (EmacsFillPolygon):
	* java/org/gnu/emacs/EmacsFillRectangle.java
	(EmacsFillRectangle):
	* java/org/gnu/emacs/EmacsFontDriver.java (EmacsFontDriver):
	* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative):
	* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
	* java/org/gnu/emacs/EmacsSdk23FontDriver.java
	(EmacsSdk23FontDriver):
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java
	(EmacsSdk7FontDriver, textExtents1, textExtents, draw):
	* java/org/gnu/emacs/EmacsService.java (EmacsService, copyArea):
	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
	* java/org/gnu/emacs/EmacsView.java (EmacsView, onLayout)
	(onFocusChanged):
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, run)
	(resizeWindow, lockCanvas, getBitmap, onKeyDown, onKeyUp)
	(onActivityDetached): Move rendering to main thread.  Make
	drawing operations completely static.

2023-01-08  Po Lu  <luangruo@yahoo.com>

	Check in new file androidmenu.c

	* src/androidmenu.c: New file.

2023-01-08  Paul Eggert  <eggert@cs.ucla.edu>

	Adjust to recent Gnulib macro renaming

	Also, remove some references to unused Gnulib macros.

2023-01-08  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2023-01-07  Po Lu  <luangruo@yahoo.com>

	Check in new file sfnt.c

	* src/sfnt.c (xmalloc, xrealloc, xfree, eassert, MIN)
	(sfnt_table_names, SFNT_ENDOF, struct sfnt_table_directory)
	(enum sfnt_scaler_type, sfnt_coerce_fixed, struct sfnt_hhea_table)
	(struct sfnt_cmap_table, enum sfnt_platform_id)
	(enum sfnt_unicode_platform_specific_id)
	(enum sfnt_macintosh_platform_specific_id)
	(enum sfnt_microsoft_platform_specific_id)
	(struct sfnt_cmap_encoding_subtable)
	(struct sfnt_cmap_encoding_subtable_data)
	(struct sfnt_cmap_format_0, struct sfnt_cmap_format_2_subheader)
	(struct sfnt_cmap_format_2, struct sfnt_cmap_format_4)
	(struct sfnt_cmap_format_6, struct sfnt_cmap_format_8_or_12_group)
	(struct sfnt_cmap_format_8, struct sfnt_cmap_format_12)
	(struct sfnt_maxp_table, struct sfnt_loca_table_short)
	(struct sfnt_loca_table_long, struct sfnt_glyf_table)
	(struct sfnt_simple_glyph, struct sfnt_compound_glyph_component)
	(struct sfnt_compound_glyph, struct sfnt_glyph, _sfnt_swap16)
	(_sfnt_swap32, sfnt_swap16, sfnt_find_table)
	(sfnt_read_cmap_format_0, sfnt_read_cmap_format_2)
	(sfnt_read_cmap_format_4, sfnt_read_cmap_format_6)
	(sfnt_read_cmap_format_8, sfnt_read_cmap_format_12)
	(sfnt_read_cmap_table_1, sfnt_read_cmap_table, sfnt_lookup_glyph_0)
	(sfnt_lookup_glyph_2, sfnt_bsearch_above, sfnt_compare_uint16)
	(sfnt_lookup_glyph_4, sfnt_lookup_glyph_6, sfnt_lookup_glyph_8)
	(sfnt_lookup_glyph_12, sfnt_lookup_glyph, sfnt_read_head_table)
	(sfnt_read_hhea_table, sfnt_read_loca_table_short)
	(sfnt_read_loca_table_long, sfnt_read_maxp_table)
	(sfnt_read_glyf_table, sfnt_read_simple_glyph)
	(sfnt_read_compound_glyph, sfnt_read_glyph, sfnt_free_glyph)
	(struct sfnt_point, sfnt_transform_coordinates)
	(struct sfnt_compound_glyph_context)
	(sfnt_expand_compound_glyph_context, sfnt_round_fixed)
	(sfnt_decompose_compound_glyph, sfnt_lerp_half)
	(sfnt_decompose_glyph, struct sfnt_glyph_outline)
	(enum sfnt_glyph_outline_flags)
	(struct sfnt_build_glyph_outline_context, sfnt_build_append)
	(sfnt_move_to_and_build, sfnt_line_to_and_build, sfnt_mul_fixed)
	(sfnt_div_fixed, sfnt_ceil_fixed, sfnt_floor_fixed)
	(sfnt_curve_is_flat, sfnt_curve_to_and_build_1)
	(sfnt_curve_to_and_build, sfnt_build_glyph_outline)
	(struct sfnt_raster, struct sfnt_edge, sfnt_poly_coverage)
	(sfnt_poly_grid_ceil, sfnt_prepare_raster, sfnt_step_edge_by)
	(sfnt_build_outline_edges, sfnt_compare_edges, sfnt_poly_edges)
	(sfnt_saturate_short, sfnt_fill_span, sfnt_poly_span)
	(sfnt_raster_span, sfnt_raster_edge, sfnt_raster_glyph_outline)
	(struct sfnt_long_hor_metric, struct sfnt_hmtx_table)
	(struct sfnt_glyph_metrics, sfnt_read_hmtx_table)
	(sfnt_lookup_glyph_metrics, struct sfnt_test_dcontext)
	(sfnt_test_move_to, sfnt_test_line_to, sfnt_test_curve_to)
	(sfnt_test_get_glyph, sfnt_test_free_glyph, sfnt_test_span)
	(sfnt_test_edge, sfnt_test_raster, main): Check in
	5000-line-long file written by me for reading TrueType and
	OpenType fonts with TrueType outlines.

2023-01-07  Michael Albinus  <michael.albinus@gmx.de>

	Add new Tramp method "toolbox"

	* doc/misc/tramp.texi (Inline methods): Add toolbox.

	* etc/NEWS: Add new Tramp method "toolbox".

	* lisp/net/tramp-container.el (tramp-toolbox-program): New defcustom.
	(tramp-toolbox-method): New defconst.
	(tramp-toolbox--completion-function): New defun.  Set it for "toolbox".
	(tramp-methods) <toolbox>: Add.
	(tramp-default-host-alist): Add rule for "toolbox".

2023-01-07  Michael Albinus  <michael.albinus@gmx.de>

	Minor tramp-archive.el fix

	* lisp/net/tramp-archive.el (tramp-archive-file-name-regexp):
	Use `ignore-errors'.

2023-01-07  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	9d410f8de64 (treesit-simple-indent-presets): Ensure 'and' works for a...
	ff66a5d324b (treesit--indent-rules-optimize): Optimize 'and' and 'or'...
	f2ebe43362c (treesit-simple-indent-presets): Short-circuit 'and' and ...
	2ea6ee5cbfa (font-lock-regexp-face): New face
	5ab03bcc433 Unify the string interpolation delimiters face across ts ...
	92e8c0c091c ruby-ts-mode: Highlight more kinds of parameters
	7420b6dcc37 Fix `pr-interface'
	699711786ac Further generic-related improvements in csharp-ts-mode (b...

	# Conflicts:
	#	etc/NEWS

2023-01-07  Paul Eggert  <eggert@cs.ucla.edu>

	Port to current Gnulib file-has-acl

	* lib-src/Makefile.in (FILE_HAS_ACL_LIB): Rename from LIB_HAS_ACL,
	to adjust to recent Gnulib renaming.  All uses changed.

2023-01-07  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2023-01-06  Paul Eggert  <eggert@cs.ucla.edu>

	Add new SI prefixes R, Q in other places

	* lisp/dired-x.el (dired-x--string-to-number, dired-mark-sexp):
	* lisp/dired.el (dired-re-inode-size):
	* lisp/files.el (directory-listing-before-filename-regexp):
	* src/xdisp.c (power_letter):
	* src/xdisp.c: Include stdint.h.
	Check that the prefixes suffice for ptrdiff_t.

2023-01-06  Michael Albinus  <michael.albinus@gmx.de>

	Remove Emacs 26 compatibility from Tramp

	* doc/misc/tramp.texi (Remote processes): Don't mention Emacs version.
	(Frequently Asked Questions): Adapt supported Emacs versions.

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el: Change version to "2.7.0-pre".

	* lisp/net/tramp-compat.el (tramp-compat-file-name-quoted-p)
	(tramp-compat-file-name-quote, tramp-compat-file-name-unquote)
	(tramp-compat-tramp-syntax, tramp-compat-exec-path)
	(tramp-compat-time-equal-p, tramp-compat-flatten-tree)
	(tramp-compat-progress-reporter-update)
	(tramp-compat-ignore-error, tramp-compat-rx--transform-item)
	(tramp-compat-rx--transform, tramp-compat-rx): Remove.

	* lisp/net/tramp-adb.el:
	* lisp/net/tramp-archive.el:
	* lisp/net/tramp-cache.el:
	* lisp/net/tramp-cmds.el:
	* lisp/net/tramp-crypt.el:
	* lisp/net/tramp-fuse.el:
	* lisp/net/tramp-gvfs.el:
	* lisp/net/tramp-integration.el:
	* lisp/net/tramp-rclone.el:
	* lisp/net/tramp-sh.el:
	* lisp/net/tramp-smb.el:
	* lisp/net/tramp-sshfs.el:
	* lisp/net/tramp-sudoedit.el:
	* lisp/net/tramp.el:
	* lisp/net/trampver.el: Replace the removed `tramp-compat-*' items
	by their real definition.  Don't use `tramp-compat-funcall' when
	not needed.  Remove `with-no-warnings' and `ignore-errors' where
	appropriate.

	* lisp/net/tramp.el (tramp-file-name-for-operation): Rearrange list.
	(tramp-handle-file-newer-than-file-p): Simplify.
	(tramp-get-process-attributes): Don't check for existence of
	`connection-local-criteria-for-default-directory'.
	(tramp-handle-shell-command): Don't check for existence of
	`shell-command-save-pos-or-erase', `async-shell-command-width' and
	`shell-command-set-point-after-cmd'.
	(tramp-handle-start-file-process): Call `make-process' directly.
	(tramp-defined-time): New defsubst.
	(tramp-get-local-gid): Don't check for existence of `group-name'.

	* lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times):
	Use `tramp-defined-time'.
	(tramp-adb-get-signal-strings): Don't bind `shell-file-name' and
	`shell-command-switch'.

	* lisp/net/tramp-archive.el (top, tramp-archive-file-name-handler):
	Don't bind `max-specpdl-size' any longer.
	(tramp-archive-autoload-file-name-regexp): Remove Emacs 26
	specific code.
	(top): Don't call `tramp-register-archive-autoload-file-name-handler'.

	* lisp/net/tramp-gvfs.el (top): Don't bind `max-specpdl-size' any longer.
	(tramp-gvfs-handle-set-file-times): Use `tramp-defined-time'.

	* lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times):
	Use `tramp-defined-time'.

	* test/lisp/net/tramp-archive-tests.el (tramp-archive--test-emacs27-p):
	Remove.
	(all):
	* test/lisp/net/tramp-tests.el (all): Don't skip for Emacs 26.
	Replace the removed `tramp-compat-*' items by their real
	definition.  Don't use `tramp-compat-funcall' when not needed.
	Remove `with-no-warnings' and `ignore-errors' where appropriate.
	(with-connection-local-variables)
	(shell-command-dont-erase-buffer): Don't declare.
	(tramp-test10-write-region): Don't check for `make-empty-file'.
	(tramp-test32-shell-command): Simplify.
	(tramp-test34-explicit-shell-file-name): Don't protect
	`explicit-shell-file-name' any longer.
	(tramp--test-emacs27-p): Remove.

2023-01-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	0f5e74f1734 ruby-ts-mode: Highlight method and block parameters
	f1aa306f915 ruby-ts-mode: Highlight variable assignments
	089b08eb3eb ruby-ts-mode: Move 'self' and 'super' from constants to k...
	7ede600273c (ruby-ts-mode): Split font-lock feature 'builtin' into two
	ec172d748f3 Avoid assertion violation due to fill-column indicator face
	62c2963ce60 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	2e6070f16c4 ; Another review of etc/NEWS
	16eca92415b ; * src/gnutls.c (Fgnutls_deinit): Fix typo in doc string...
	4753b587868 * lisp/cedet/semantic/symref/grep.el: Support ts-modes (b...
	8a18369afdc ; Another fix for doc strings of 2 treesit.el functions
	3fc68833517 ; Fix the doc strings of 2 treesit.el functions
	83ce7c861e1 Make 'toml-ts-mode' optional

	# Conflicts:
	#	etc/NEWS

2023-01-05  Michael Albinus  <michael.albinus@gmx.de>

	Remove obsolete Tramp items

	* etc/NEWS: Obsolete user option
	'tramp-completion-reread-directory-timeout' has been removed.  Fix typos.

	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	Ignore `make-directory-internal'.

	* lisp/net/tramp-sh.el (tramp-get-remote-trash): Remove.

	* lisp/net/tramp-smb.el (tramp-smb-handle-make-directory-internal):
	Remove.

	* lisp/net/tramp.el (tramp-default-user): Fix docstring.
	(tramp-completion-reread-directory-timeout): Remove.

2023-01-05  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	92f753dc190 ; * etc/NEWS: Fix wording in last change.
	cef875f6c51 ; * etc/NEWS: Instructions for builds without tree-sitter...
	8d530ca6542 ; Fix documentation of y-or-n-p/yes-or-no-p
	c18878ee0a2 Fix bug in Tramp multi-hop
	7eed8e050a9 * lisp/files.el (find-sibling-rules): Fix docstring.
	6b5831c6964 Tree-sitter doc fixes (bug#60524)
	651927ac391 ; Fix function reference in comment in c-ts-mode.el (bug#...
	c786afcbb9f Fontify C++ function definitions in c-ts-mode (bug#60529)

	# Conflicts:
	#	etc/NEWS

2023-01-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	0d98fac6bbc (ruby-ts-add-log-current-function): Fix when between two ...
	da69f116bfc ; * doc/lispref/positions.texi (List Motion): Minor wordi...
	0b0eae0bf76 ; Improve documentation of 'treesit-language-source-alist'
	ae0d218d0b3 ; * etc/NEWS: Mention treesit-install-language-grammar.
	de3df3bc51e * lisp/vc/vc-git.el (vc-git-checkin): Pass vc-git-diff-sw...

	# Conflicts:
	#	etc/NEWS

2023-01-03  Mattias Engdegård  <mattiase@acm.org>

	Styled quotes in compiler warnings

	* lisp/emacs-lisp/byte-run.el (byte-run--parse-body)
	(byte-run--unescaped-character-literals-warning):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment)
	(byte-compile-form, bytecomp--warn-dodgy-eq-arg):
	* lisp/emacs-lisp/cconv.el (cconv--warn-unused-msg):
	* lisp/emacs-lisp/cl-macs.el (cl-defstruct):
	* lisp/emacs-lisp/easy-mmode.el (define-minor-mode):
	* lisp/emacs-lisp/eieio.el (defclass):
	* lisp/emacs-lisp/macroexp.el (macroexp--unfold-lambda)
	(macroexp--expand-all):
	* lisp/emacs-lisp/pcase.el (pcase--u1):
	* lisp/subr.el (when, unless, ignore-error, lsh, sit-for)
	(with-demoted-errors):
	Use format-message to ensure properly styled quotes in compiler
	warning messages.

2023-01-03  Mattias Engdegård  <mattiase@acm.org>

	Data argument to `signal` should be a list

	* lisp/calendar/iso8601.el (iso8601-parse, iso8601-parse-date)
	(iso8601-parse-time, iso8601-parse-zone, iso8601-parse-duration)
	(iso8601-parse-interval):
	* lisp/emacs-lisp/cl-lib.el (cl-values-list):
	* lisp/emacs-lisp/comp.el (comp-decrypt-arg-list)
	(comp-spill-lap-function, comp-emit-switch)
	(comp-compute-dominator-tree, comp-final):
	* lisp/image.el (image-type):
	* lisp/image/exif.el (exif--parse-jpeg, exif--parse-exif-chunk)
	(exif--parse-directory, exif--read-chunk, exif--read-number-be)
	(exif--read-number-le):
	* lisp/vc/vc.el (vc-default-last-change):
	Wrap obvious non-list data arguments to `signal` in a list.

2023-01-03  Po Lu  <luangruo@yahoo.com>

	Fix potential crash with fast mouse position enabled

	* src/xterm.c (x_free_frame_resources): Clear
	last_mouse_motion_frame and last_mouse_frame if required.

2023-01-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	6dd3e352f44 Extract common code into ruby-base-mode to derive from
	94e330243e1 ruby-ts-mode: Indentation fixes
	9b24417dda8 ruby-ts--font-lock-settings: Use more standard faces
	9e6536e4d96 ruby-ts-mode: Standardize the string literal highlights
	1a9a1fdebf6 Improve fontification in java-ts-mode (bug#60492)
	dfdf9c21cbe Fontification improvements in typescript-ts-mode (bug#60500)
	68e68dfeefe Improve fontification consistency in js-ts-mode (bug#60503)
	aef869e74f4 ; Update tree-sitter manual
	4ef12cfb1fc ; Fix tree-sitter manual title case
	aab8ddca5e1 ; nt/INSTALL: Update for Emacs 29.
	809fbb0e8c4 ; Update copyright notice in tramp-sh.el
	f8f5202487c (typescript/tsx-ts-mode): Split font-lock feature list in...
	a86a213e1ac js-ts-mode: Move 'string-interpolation' to font-lock level 3
	d26b523886e Fix shrinking of the tab-bar
	3f7ea621b90 ; Fix typos in ruby-ts-mode.el
	9599b054316 ; Skip ruby-ts tests if grammar is not available
	ff35ac9dfab Fix default-port regression in erc-select-read-args
	b7ad0b40148 ; Clarify doc strings of 'call-process' and 'call-process...

2023-01-02  Paul Eggert  <eggert@cs.ucla.edu>

	Improve interactive file-saving performance

	* src/fileio.c (init_fileio):
	No longer any need to set write-region-inhibit-fsync here.
	(syms_of_fileio): Default write-region-inhibit-fsync to t (Bug#60474).

2023-01-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2023-01-02  Po Lu  <luangruo@yahoo.com>

	Update Android port

	* Makefile.in (java): Depend on info.
	(MAKEFILE_NAME):
	(config.status): Remove unneeded changes.
	* configure.ac (BUILD_DETAILS, ANDROID_STUBIFY): Don't require a
	C++ compiler on Android.
	* java/AndroidManifest.xml: <EmacsActivity>: Set launchMode
	appropriately.  <EmacsMultitaskActivity>: New activity.
	* java/Makefile.in (CROSS_BINS): Add EmacsClient.
	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity)
	(onCreate): Use the window attachment manager.
	* java/org/gnu/emacs/EmacsCopyArea.java (EmacsCopyArea)
	(paintTo): Implement clip masks correctly.
	* java/org/gnu/emacs/EmacsDrawRectangle.java (getRect, paintTo):
	Fix damage tracking rectangles.
	* java/org/gnu/emacs/EmacsFontDriver.java (FontSpec, toString):
	New function.
	(FontMetrics, EmacsFontDriver): Fix signature of textExtents.
	* java/org/gnu/emacs/EmacsMultitaskActivity.java
	(EmacsMultitaskActivity): New file.
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
	functions sendFocusIn, sendFocusOut, sendWindowAction.
	* java/org/gnu/emacs/EmacsPaintQueue.java (run): Fix clipping
	handling.
	* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap): Add
	constructor for mutable pixmaps.
	* java/org/gnu/emacs/EmacsSdk23FontDriver.java
	(EmacsSdk23FontDriver): New file.
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java
	(EmacsSdk7FontDriver, Sdk7Typeface, Sdk7FontEntity, Sdk7FontObject)
	(checkMatch, hasChar, encodeChar): Implement text display and
	fix font metrics semantics.

	* java/org/gnu/emacs/EmacsService.java (EmacsService): Remove
	availableChildren.
	(getLibraryDirectory, onCreate): Pass pixel density to Emacs.
	(clearArea): Fix arguments.  Switch to using the window
	attachment manager.
	* java/org/gnu/emacs/EmacsSurfaceView.java (surfaceChanged)
	(surfaceCreated): Flip buffers on surface attachment.
	* java/org/gnu/emacs/EmacsView.java (EmacsView, swapBuffers):
	New argument FORCE.  Always swap if it is true.
	(onKeyMultiple, onFocusChanged): New functions.

	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, destroyHandle)
	(run): Switch to using the window attachment manager.
	* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
	(EmacsWindowAttachmentManager): New file.

	* lisp/cus-edit.el (custom-button, custom-button-mouse)
	(custom-button-pressed):
	* lisp/faces.el (tool-bar): Define faces correctly on Android.
	* src/android.c (struct android_emacs_pixmap): Add mutable
	constructor.
	(struct android_emacs_drawable): New structure.
	(android_write_event): Check if event queue hasn't yet been
	initialized.
	(android_select): Set errno to EINTR if pselect fails.
	(android_close): Remove unused debugging code.
	(android_get_home_directory): New function.
	(Java_org_gnu_emacs_EmacsNative_setEmacsParams): Set pixel
	density and compute game path.
	(android_init_emacs_drawable): New function.
	(Java_org_gnu_emacs_EmacsNative_sendKeyPress): New argument
	`unicode_char'.  Pass it in events.
	(Java_org_gnu_emacs_EmacsNative_sendKeyRelease): Likewise.
	(Java_org_gnu_emacs_EmacsNative_sendFocusIn)
	(Java_org_gnu_emacs_EmacsNative_sendFocusOut)
	(Java_org_gnu_emacs_EmacsNative_sendWindowAction): New
	functions.
	(android_resolve_handle): Export function.
	(android_change_gc): Clear clip rects under the right
	circumstances.  Set right clip mask field.
	(android_create_pixmap_from_bitmap_data): Use correct alpha
	channels.
	(android_create_pixmap): Create mutable pixmap and avoid
	redundant color array allocation.
	(android_create_bitmap_from_data, android_create_image)
	(android_destroy_image, android_put_pixel, android_get_pixel)
	(android_get_image, android_put_image, faccessat): New
	functions.

	* src/android.h: Update prototypes.

	* src/androidfns.c (android_default_font_parameter): Prefer
	monospace to Droid Sans Mono.
	* src/androidfont.c (struct android_emacs_font_driver): New
	method `draw'.
	(struct android_emacs_font_spec): New field `dpi'.
	(struct androidfont_info): Add font metrics cache.
	(android_init_font_driver, android_init_font_spec): Adjust
	accordingly.
	(androidfont_from_lisp, androidfont_from_java): Handle new
	fields.
	(androidfont_draw): Implement function.
	(androidfont_open_font): Set pixel size correctly.
	(androidfont_close_font): Free metrics cache.
	(androidfont_cache_text_extents)
	(androidfont_check_cached_extents): New functions.
	(androidfont_text_extents): Cache glyph metrics somewhere for
	future use.
	(androidfont_list_family): Implement function.

	* src/androidgui.h (enum android_event_type): New focus and
	window action events.
	(enum android_modifier_mask): New masks.
	(struct android_key_event): New field `unicode_char'.
	(ANDROID_IS_MODIFIER_KEY): Newmacro.
	(struct android_focus_event, struct
	android_window_action_event): New structs.
	(union android_event): Add new fields.
	(enum android_image_format, struct android_image): New enums and
	structs.

	* src/androidterm.c (android_android_to_emacs_modifiers)
	(android_emacs_to_android_modifiers, android_lower_frame)
	(android_raise_frame, android_new_focus_frame)
	(android_focus_changed, android_detect_focus_change): New
	functions.
	(handle_one_android_event): Implement focus and key event
	handling.
	(android_frame_rehighlight): New function.
	(android_frame_raise_lower): Implement accordingly.
	(android_make_frame_invisible): Clear highlight_frame if
	required.
	(android_free_frame_resources): Clear x_focus_event_frame if
	required.
	(android_draw_fringe_bitmap, android_draw_image_foreground)
	(android_draw_image_foreground_1)
	(android_draw_image_glyph_string): Remove unnecessary code.
	(android_create_terminal, android_term_init): Set the baud rate
	to something sensible.
	* src/androidterm.h (struct android_bitmap_record): Make
	structure the same as on X.
	(struct android_display_info): New focus tracking fields.
	(struct android_output): Likewise.
	* src/dispextern.h (struct image): Add ximg and mask_img on
	Android.

	* src/emacs.c (android_emacs_init): Fix argc sorting iteration.

	* src/fileio.c (user_homedir):
	(get_homedir): Implement correctly on Android.

	* src/font.h (PT_PER_INCH): Define correctly on Android.

	* src/fringe.c (X, swap_nibble, init_fringe_bitmap): Swap fringe
	bitmaps correctly on Android.

	* src/image.c (GET_PIXEL, image_create_bitmap_from_data)
	(image_create_bitmap_from_file, free_bitmap_record)
	(image_unget_x_image_or_dc, struct image_type)
	(prepare_image_for_display, image_clear_image_1)
	(image_size_in_bytes, x_check_image_size)
	(x_create_x_image_and_pixmap, x_destroy_x_image)
	(image_check_image_size, image_create_x_image_and_pixmap_1)
	(image_destroy_x_image, gui_put_x_image, image_put_x_image)
	(image_get_x_image, image_unget_x_image)
	(Create_Pixmap_From_Bitmap_Data, image_pixmap_draw_cross)
	(MaskForeground, image_types, syms_of_image): Implement all of
	the above on Android in terms of an API very similar to X.

	* src/keyboard.c (FUNCTION_KEY_OFFSET, lispy_function_keys):
	Define on Android to something sensible.

	* src/lread.c (build_load_history): Fix problem.

2023-01-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	4520f09dd8b ; * admin/git-bisect-start: Update failing commits
	2569ede9c49 Update to Org 9.6-81-g563a43
	d9ed736f0a7 ruby-ts-mode: Remove some currently unused functions
	45618447203 ruby-ts-mode: Highlight singleton method definitions and ...
	0562006da3b Add ruby-ts-mode
	84e7c2fbc85 Fix fontification of C++ reference return types (bug#60441)
	1864b65af60 ; Minor fix for treesit--install-language-grammar-1 (bug#...
	8994f87ad40 Adjust function-call fontification in csharp-ts-mode (bug...
	411647a3f65 ; Fix NEWS.
	7b0b17df67e Rewrite Antinews in ELisp manual for Emacs 29
	f12f72b0e09 ; * lisp/simple.el (primitive-undo): Clarify error messag...
	7fd822e7f52 Update Antinews in the user manual for Emacs 29
	da77d70deeb ; * test/lisp/emacs-lisp/copyright-tests.el: Fix and futu...
	2baf9e107c1 Fix shortdoc-tests failure with respect to regexp-opt-cha...
	5aeb8de32ee ; Fix copyright years in 2 more files.

	# Conflicts:
	#	etc/NEWS

2023-01-02  Andreas Schwab  <schwab@linux-m68k.org>

	Fix build with older versions of gnutls

	* src/gnutls.c (key_file2_aux): Use GNUTLS_PKCS_* constants only
	if defined.

2023-01-01  Protesilaos Stavrou  <info@protesilaos.com>

	Update Modus themes to version 4 and add new themes

	* etc/NEWS: Document the addition of four new Modus themes.

	* doc/misc/modus-themes.org: Update the manual.

	* etc/themes/modus-operandi-deuteranopia-theme.el:
	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-operandi-tinted-theme.el:
	* etc/themes/modus-vivendi-deuteranopia-theme.el:
	* etc/themes/modus-vivendi-theme.el:
	* etc/themes/modus-vivendi-tinted-theme.el: Add theme files.

	* etc/themes/modus-themes.el: Update main file to the latest version.

	Detailed release notes here:
	<https://protesilaos.com/codelog/2023-01-01-modus-themes-4-0-0/>.

	The inclusion of the four new Modus themes was discussed on
	emacs-devel:
	<https://lists.gnu.org/archive/html/emacs-devel/2022-12/msg00834.html>.

2023-01-01  Po Lu  <luangruo@yahoo.com>

	Improve Haiku font size fallback

	* src/haikufont.c (haikufont_open): If pixel_size is zero, don't
	use a font parameter that doesn't exist.

2023-01-01  Eli Zaretskii  <eliz@gnu.org>

	Fix copyright years of NEWS.29.

2023-01-01  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	cae528457c ; Add 2023 to copyright years.
	b394359261 Improve documentation of 'isearch-open-overlay-temporary'
	ab3210e709 Document 'use-package' in the 2 main manuals

	# Conflicts:
	#	etc/refcards/ru-refcard.tex
	#	lib/explicit_bzero.c
	#	m4/explicit_bzero.m4

2023-01-01  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	72a81e2022 ; * lisp/treesit.el (treesit-simple-indent-presets): Fix t...
	ddfeee3e8a Build recipe interactively in treesit-install-language-gra...
	6837469780 ; Add REVISION to treesit-language-source-alist
	0dc788aa01 ; Remove GRAMMAR-DIR from treesit-language-source-alist
	f9aef67c36 Tweak csharp-mode font-lock-settings (bug#60376)
	46362c0a3a ; * doc/lispref/tips.texi (Documentation Tips): Add indexing.
	9a386b682e Revert a recent change which causes errors
	9871ee8b14 ; More fixes for documentation of 'defalias'
	f309651b67 ; Fix handling of 'not' by 'buffer-match-p'
	9292f595a7 ; Fix typos
	43c7e05a2a Fix misspelled functions in shortdoc groups
	01acecc79c Simplify introduction of use-package manual
	2a7e072e53 ; Fix documentation of 'defalias'
	eee2aeca25 Fix python-shell-buffer-substring when retrieving a single...
	bfdad6c4e5 ; Fix recent treesit-related changes

2023-01-01  Sean Whitton  <spwhitton@spwhitton.name>

	vc-git-dir-extra-headers: Improve detection of rebases

	* lisp/vc/vc-git.el (vc-git--cmds-in-progress): New function.
	(vc-git-dir-extra-headers): Use it.

2023-01-01  Sean Whitton  <spwhitton@spwhitton.name>

	vc-git: Don't assume .git is a directory

	* lisp/vc/vc-git.el (vc-git--git-path): New function.
	(vc-git-dir-extra-headers)
	(vc-git-merge-branch)
	(vc-git-resolve-when-done): Use it.

2023-01-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-12-19 14:09:50 UTC.

2022-12-31  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/android

2022-12-31  Po Lu  <luangruo@yahoo.com>

	Bring up the Android operating system and its window system

	* .dir-locals.el (c-mode): Add ANDROID_EXPORT noise macro.
	* .gitignore: Add new files to ignore.
	* Makefile.in: Adjust for Android.
	* admin/merge-gnulib: Add new warning.
	* configure.ac: Detect Android.  Run cross-configuration for
	Android when appropriate.

	* etc/DEBUG: Document how to debug Emacs on Android.

	* java/AndroidManifest.xml:
	* java/Makefile.in:
	* java/README:
	* java/debug.sh:
	* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity):
	* java/org/gnu/emacs/EmacsApplication.java (EmacsApplication):
	* java/org/gnu/emacs/EmacsCopyArea.java (EmacsCopyArea):
	* java/org/gnu/emacs/EmacsDrawLine.java (EmacsDrawLine):
	* java/org/gnu/emacs/EmacsDrawPoint.java (EmacsDrawPoint):
	* java/org/gnu/emacs/EmacsDrawRectangle.java
	(EmacsDrawRectangle):
	* java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable):
	* java/org/gnu/emacs/EmacsFillPolygon.java (EmacsFillPolygon):
	* java/org/gnu/emacs/EmacsFillRectangle.java
	(EmacsFillRectangle):
	* java/org/gnu/emacs/EmacsFontDriver.java (EmacsFontDriver):
	* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
	* java/org/gnu/emacs/EmacsHandleObject.java (EmacsHandleObject):
	* java/org/gnu/emacs/EmacsNative.java (EmacsNative):
	* java/org/gnu/emacs/EmacsPaintQueue.java (EmacsPaintQueue):
	* java/org/gnu/emacs/EmacsPaintReq.java (EmacsPaintReq):
	* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
	* java/org/gnu/emacs/EmacsSdk7FontDriver.java
	(EmacsSdk7FontDriver):
	* java/org/gnu/emacs/EmacsService.java (class Holder<T>)
	(EmacsService):
	* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
	* java/org/gnu/emacs/EmacsThread.java (EmacsThread):
	* java/org/gnu/emacs/EmacsView.java (EmacsView):
	* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow): New files
	and classes.

	* lib-src/Makefile.in (srcdir):
	* lib/Makefile.in (VPATH):
	(HAVE_NATIVE_COMP):
	(libgnu_a_SOURCES):
	(DEPFLAGS): Configure correctly for cross-compiling.

	* lib/faccessat.c:
	* lib/fpending.c (__fpending):
	* lib/open.c:
	* lib/unistd.c (_GL_UNISTD_INLINE): Temporary adjustments to
	gnulib.

	* lisp/frame.el (display-graphic-p):
	(display-screens):
	(display-pixel-height):
	(display-pixel-width):
	(display-mm-height):
	(display-mm-width):
	(display-backing-store):
	(display-save-under):
	(display-planes):
	(display-color-cells):
	(display-visual-class): Adjust for new window system `android'.

	* lisp/image/wallpaper.el (x-open-connection): Add declaration.
	* lisp/loadup.el (featurep): Load up files for Android.
	* lisp/net/eww.el (eww-form-submit, eww-form-file)
	(eww-form-checkbox, eww-form-select): Adjust faces for android.
	* lisp/term/android-win.el: New file.
	* src/Makefile.in: Add new targets emacs.so and android-emacs,
	then adjust for cross compilation.
	* src/alloc.c (cleanup_vector): Clean up Android font entities
	as well.
	(garbage_collect): Mark androidterm.
	* src/android-emacs.c (main):
	* src/android.c (ANDROID_THROW, enum android_fd_table_entry_flags)
	(struct android_emacs_service, struct android_emacs_pixmap)
	(struct android_graphics_point, struct android_event_container)
	(struct android_event_queue, android_run_select_thread)
	(android_handle_sigusr1, android_init_events, android_pending)
	(android_next_event, android_write_event, android_select)
	(android_run_debug_thread, android_user_full_name)
	(android_get_asset_name, android_fstat, android_fstatat)
	(android_file_access_p, android_hack_asset_fd, android_open)
	(android_close, JNICALL, android_init_emacs_service)
	(android_init_emacs_pixmap, android_init_graphics_point)
	(MAX_HANDLE, struct android_handle_entry, android_alloc_id)
	(android_destroy_handle, android_resolve_handle)
	(android_resolve_handle2, android_change_window_attributes)
	(android_create_window, android_set_window_background)
	(android_destroy_window, android_init_android_rect_class)
	(android_init_emacs_gc_class, android_create_gc, android_free_gc)
	(android_change_gc, android_set_clip_rectangles)
	(android_reparent_window, android_lookup_method)
	(android_clear_window, android_map_window, android_unmap_window)
	(android_resize_window, android_move_window, android_swap_buffers)
	(android_get_gc_values, android_set_foreground)
	(android_fill_rectangle, android_create_pixmap_from_bitmap_data)
	(android_set_clip_mask, android_set_fill_style, android_copy_area)
	(android_free_pixmap, android_set_background, android_fill_polygon)
	(android_draw_rectangle, android_draw_point, android_draw_line)
	(android_create_pixmap, android_set_ts_origin, android_clear_area):
	* src/android.h (ANDROID_EXPORT):
	* src/androidfns.c (android_display_info_for_name)
	(check_android_display_info, check_x_display_info, gamma_correct)
	(android_defined_color, android_decode_color)
	(android_implicitly_set_name, android_explicitly_set_name)
	(android_set_tool_bar_lines, android_change_tool_bar_height)
	(android_set_tab_bar_lines, android_change_tab_bar_height)
	(android_set_scroll_bar_default_height)
	(android_set_scroll_bar_default_width, android_icon_verify)
	(android_icon, android_make_gc, android_free_gcs)
	(unwind_create_frame, do_unwind_create_frame)
	(android_default_font_parameter, android_create_frame_window)
	(Fx_create_frame, Fxw_color_defined_p, Fxw_color_values)
	(Fxw_display_color_p, Fx_display_grayscale_p)
	(Fx_display_pixel_width, Fx_display_pixel_height)
	(Fx_display_planes, Fx_display_color_cells, Fx_display_screens)
	(Fx_display_mm_width, Fx_display_mm_height)
	(Fx_display_backing_store, Fx_display_visual_class)
	(Fx_display_monitor_attributes_list, Fx_frame_geometry)
	(Fx_frame_list_z_order, Fx_frame_restack)
	(Fx_mouse_absolute_pixel_position)
	(Fx_set_mouse_absolute_pixel_position, Fandroid_get_connection)
	(Fx_display_list, Fx_show_tip, Fx_hide_tip)
	(android_set_background_color, android_set_border_color)
	(android_set_cursor_color, android_set_cursor_type)
	(android_set_foreground_color)
	(android_set_child_frame_border_width)
	(android_set_internal_border_width, android_set_menu_bar_lines)
	(android_set_mouse_color, android_set_title, android_set_alpha)
	(android_frame_parm_handlers, syms_of_androidfns):
	* src/androidfont.c (struct android_emacs_font_driver)
	(struct android_emacs_font_spec, struct android_emacs_font_metrics)
	(struct android_emacs_font_object, struct android_integer)
	(struct androidfont_info, struct androidfont_entity)
	(android_init_font_driver, android_init_font_spec)
	(android_init_font_metrics, android_init_integer)
	(android_init_font_object, androidfont_get_cache)
	(androidfont_from_lisp, androidfont_from_java, androidfont_list)
	(androidfont_match, androidfont_draw, androidfont_open_font)
	(androidfont_close_font, androidfont_has_char)
	(androidfont_encode_char, androidfont_text_extents)
	(androidfont_list_family, androidfont_driver)
	(syms_of_androidfont_for_pdumper, syms_of_androidfont)
	(init_androidfont, android_finalize_font_entity):
	* src/androidgui.h (_ANDROID_GUI_H_, struct android_rectangle)
	(struct android_point, enum android_gc_function)
	(enum android_gc_value_mask, enum android_fill_style)
	(enum android_window_value_mask)
	(struct android_set_window_attributes, struct android_gc_values)
	(struct android_gc, enum android_swap_action, enum android_shape)
	(enum android_coord_mode, struct android_swap_info)
	(NativeRectangle, struct android_any_event)
	(struct android_key_event, struct android_configure_event)
	(union android_event):
	* src/androidterm.c (android_window_to_frame, android_clear_frame)
	(android_ring_bell, android_toggle_invisible_pointer)
	(android_update_begin, android_update_end, show_back_buffer)
	(android_flush_dirty_back_buffer_on, handle_one_android_event)
	(android_read_socket, android_frame_up_to_date)
	(android_buffer_flipping_unblocked_hook)
	(android_query_frame_background_color, android_parse_color)
	(android_alloc_nearest_color, android_query_colors)
	(android_mouse_position, android_get_focus_frame)
	(android_focus_frame, android_frame_rehighlight)
	(android_frame_raise_lower, android_make_frame_visible)
	(android_make_frame_invisible)
	(android_make_frame_visible_invisible, android_fullscreen_hook)
	(android_iconify_frame, android_set_window_size_1)
	(android_set_window_size, android_set_offset, android_set_alpha)
	(android_new_font, android_bitmap_icon, android_free_pixmap_hook)
	(android_free_frame_resources, android_delete_frame)
	(android_delete_terminal, android_scroll_run)
	(android_after_update_window_line, android_flip_and_flush)
	(android_clear_rectangle, android_reset_clip_rectangles)
	(android_clip_to_row, android_draw_fringe_bitmap)
	(android_set_cursor_gc, android_set_mouse_face_gc)
	(android_set_mode_line_face_gc, android_set_glyph_string_gc)
	(android_set_glyph_string_clipping)
	(android_set_glyph_string_clipping_exactly)
	(android_compute_glyph_string_overhangs)
	(android_clear_glyph_string_rect)
	(android_draw_glyph_string_background, android_fill_triangle)
	(android_make_point, android_inside_rect_p, android_clear_point)
	(android_draw_relief_rect, android_draw_box_rect)
	(HIGHLIGHT_COLOR_DARK_BOOST_LIMIT, android_setup_relief_color)
	(android_setup_relief_colors, android_draw_glyph_string_box)
	(android_draw_glyph_string_bg_rect, android_draw_image_relief)
	(android_draw_image_foreground, android_draw_image_foreground_1)
	(android_draw_image_glyph_string)
	(android_draw_stretch_glyph_string, android_draw_underwave)
	(android_draw_glyph_string_foreground)
	(android_draw_composite_glyph_string_foreground)
	(android_draw_glyphless_glyph_string_foreground)
	(android_draw_glyph_string, android_define_frame_cursor)
	(android_clear_frame_area, android_clear_under_internal_border)
	(android_draw_hollow_cursor, android_draw_bar_cursor)
	(android_draw_window_cursor, android_draw_vertical_window_border)
	(android_draw_window_divider, android_redisplay_interface)
	(frame_set_mouse_pixel_position, get_keysym_name)
	(android_create_terminal, android_term_init, syms_of_androidterm)
	(mark_androidterm):
	* src/androidterm.h (_ANDROID_TERM_H_, struct android_display_info)
	(struct android_output, FRAME_ANDROID_OUTPUT, XSCROLL_BAR): New
	files.
	* src/dired.c (file_attributes): Do not use openat on Android.
	* src/dispextern.h (No_Cursor): Define appropriately on Android.
	(struct glyph_string, struct face): Make gc field of type struct
	android_gc on Android.
	* src/dispnew.c (clear_current_matrices, clear_desired_matrices)
	(adjust_frame_glyphs_for_window_redisplay, free_glyphs)
	(update_frame, scrolling, char_ins_del_cost, update_frame_line)
	(init_display_interactive): Disable text terminal support
	completely on Android.  Fix non-toolkit menus for non-X systems.
	* src/editfns.c (Fuser_full_name): Call android_user_full_name.
	* src/emacs.c (android_emacs_init): Make main this on Android.
	Prohibit argv sorting from exceeding end of argv.
	* src/epaths.in: Add path definitions for Android.

	* src/fileio.c (file_access_p): Call android_file_access_p.
	(file_name_directory): Avoid using openat on Android.
	(Fcopy_file): Adjust to call sys_fstat instead.
	(file_directory_p):
	(Finsert_file_contents):
	(write_region): Likewise.
	* src/filelock.c:
	* src/fns.c (Flocale_info): Pacify warning on Android.
	* src/font.c (font_make_entity_android): New function.
	* src/font.h:
	* src/frame.c (Fframep):
	(Fwindow_system): Handle new window system `android'.  Update doc strings.
	(Fmake_terminal_frame): Disable on Android.
	(gui_display_get_resource): Disable get_string_resource_hook on Android.
	(syms_of_frame): New defsym `android'.

	* src/frame.h (GCALIGNED_STRUCT): Add new output data for
	Android.
	(ENUM_BF): Expand enumerator size.
	(FRAME_ANDROID_P, FRAME_WINDOW_P, MOUSE_HL_INFO): Add
	definitions for Android.

	* src/image.c (GET_PIXEL):
	(image_create_bitmap_from_file):
	(image_create_x_image_and_pixmap_1):
	(image_get_x_image):
	(slurp_file):
	(lookup_rgb_color):
	(image_to_emacs_colors):
	(image_from_emacs_colors):
	(image_pixmap_draw_cross):
	(image_disable_image):
	(MaskForeground):
	(gif_load): Add stubs for Android.

	* src/lisp.h:
	* src/lread.c (safe_to_load_version, maybe_swap_for_eln1, openp):
	* src/pdumper.c (pdumper_load): Call sys_fstat instead of fstat.
	* src/process.c (wait_reading_process_output): Use
	android_select instead of pselect.
	* src/scroll.c: Disable on Android.
	* src/sysdep.c (widen_foreground_group, reset_sys_modes)
	(init_signals, emacs_fstatat, sys_fstat): New function.
	(emacs_open, emacs_open_noquit, emacs_close): Implement
	differently on Android.
	(close_output_streams): Disable what is not required on Android.

	* src/term.c (OUTPUT1_IF, encode_terminal_code, string_cost)
	(string_cost_one_line, per_line_cost, calculate_costs)
	(struct fkey_table, tty_append_glyph, produce_glyphs)
	(tty_capable_p, Fsuspend_tty, Fresume_tty, device, init_tty)
	(maybe_fatal, syms_of_term): Disable text terminal support on
	Android.

	* src/termhooks.h (enum output_method): Add android output
	method.
	(GCALIGNED_STRUCT, TERMINAL_FONT_CACHE): Define for Android.

	* src/terminal.c (Fterminal_live_p): Implement for Android.

	* src/verbose.mk.in (AM_V_GLOBALS): Add JAVAC and DX.
	* src/xdisp.c (redisplay_internal): Disable text terminals on Android.
	(display_menu_bar):
	(display_tty_menu_item):
	(draw_row_with_mouse_face):
	(expose_frame): Make the non toolkit menu bar work on Android.

	* src/xfaces.c (GCGraphicsExposures):
	(x_create_gc):
	(x_free_gc):
	(Fx_load_color_file): Define for Android.

	* xcompile/Makefile.in (top_srcdir):
	(top_builddir):
	* xcompile/README:
	* xcompile/langinfo.h (nl_langinfo): New files.

2022-12-31  Richard Hansen  <rhansen@rhansen.org>

	whitespace: Use `define-globalized-minor-mode' for global mode

	* lisp/whitespace.el (global-whitespace-mode): Fix interoperability
	between `whitespace-mode' and `global-whitespace-mode' by using
	`define-globalized-minor-mode'.  (Bug#60334)
	* test/lisp/whitespace-tests.el (whitespace-tests--global): Add a
	regression test.

2022-12-31  Eli Zaretskii  <eliz@gnu.org>

	Fix the build broken by latest GnuTLS-related changes

	* src/gnutls.c (key_file2_aux): Don't use GNUTLS_PKCS_PBES2_*
	constants that are defined only in latest versions of GnuTLS.
	(Bug#50507)
	(Fgnutls_boot): Mention in the doc string that some flags of
	'gnutls_certificate_set_x509_key_file2' are only supported since
	GnuTLS 3.6.3.

2022-12-31  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	ab1f245f1a1 Show tree-sitter query source when signaling query error
	0b58ea0e602 ; * lisp/treesit.el (treesit--install-language-grammar-1)...
	724da28763c Add version tags and mention the new options in NEWS
	8675f4136c7 Add new options for Ruby code indentation
	4922de626f0 ; Fix doc strings of 'treesit-install-language-grammar'
	69b2aaaaded ; Fix recently modified docs of 'set-face-attribute' (bug...
	0248fc9e1ac Add treesit-install-language-grammar
	0237c5927e9 Add treesit-language-abi-version
	312f82d36f0 Change "language definition" to "language grammar" in man...
	fba35657da5 ; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragrap...
	dec1b37a32b ; * doc/lispref/parsing.texi (Accessing Node Information)...
	39265abf0cc * test/lisp/net/tramp-tests.el (tramp-test32-shell-comman...
	ebf65c7e7e3 * lisp/eshell/em-tramp.el (tramp): Require also at runtim...

	# Conflicts:
	#	etc/NEWS

2022-12-31  Po Lu  <luangruo@yahoo.com>

	Fix last change in gnutls.c

	* src/gnutls.c (Fgnutls_boot): Pacify
	--enable-check-lisp-object-type and Haiku GCC warning involving
	`key_file2_aux'.

2022-12-30  Mattias Engdegård  <mattiase@acm.org>

	Correct suppression of suspicious eq type warning

	* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings):
	* lisp/emacs-lisp/bytecomp.el (bytecomp--warn-dodgy-eq-arg):
	Suppress warning using (suspicious FUNCTION), where FUNCTION is
	not always `eq`.

2022-12-30  Nikolaos Chatzikonstantinou  <nchatz314@gmail.com>

	Add :pass and :flags to gnutls-boot for :keylist

	* lisp/net/gnutls.el (gnutls-boot-parameters): Add the keys :pass and
	:flags, and update the documentation.
	* src/gnutls.c (gnutls-boot): Add the keys :pass and :flags, and
	update the documentation.
	(syms_of_gnutls): Add the symbols :pass, :flags, and the symbols that
	correspond to the enumeration constants of the GnuTLS enum
	`gnutls_pkcs_encrypt_flags_t'.
	(key_file2_aux): Private helper function that translates a list of
	symbols to its corresponding `unsigned int' value of the GnuTLS C enum
	`gnutls_pkcs_encrypt_flags_t'.

	(Bug#50507)

2022-12-30  Jim Porter  <jporterbugs@gmail.com>

	Fix reference-counting of Eshell I/O handles

	This ensures that output targets in Eshell are only closed when Eshell
	is actually done with them.  In particular, this means that
	"{ echo foo; echo bar } | rev" prints "raboof" as expected
	(bug#59545).

	* lisp/eshell/esh-io.el (eshell-create-handles): Structure the handles
	differently so the targets and their ref-count can be shared.
	(eshell-duplicate-handles): Reimplement this to share targets between
	the original and new handle sets.  Add STEAL-P argument.
	(eshell-protect-handles, eshell-copy-output-handle)
	(eshell-interactive-output-p, eshell-output-object): Account for
	changes to the handle structure.
	(eshell-close-handle): New function...
	(eshell-close-handles, eshell-set-output-handle): ... use it.
	(eshell-get-targets): Remove.  This only existed to make the previous
	implementation of 'eshell-duplicate-handles' work.

	* lisp/eshell/esh-cmd.el (eshell-with-copied-handles): New argument
	STEAL-P.
	(eshell-do-pipelines): Use STEAL-P for the last item in the pipeline.
	(eshell-parse-command): Don't copy handles for the last command in the
	list; explain why we can't use STEAL-P here.
	(eshell-eval-command): When queuing input, set 'eshell-command-body'
	and 'eshell-test-body' for the 'if' conditional (see
	'eshell-do-eval').

	* test/lisp/eshell/esh-io-tests.el (esh-io-test/redirect-pipe): Split
	into...
	(esh-io-test/pipeline/default, esh-io-test/pipeline/all): ... these.
	(esh-io-test/pipeline/subcommands): New test.

	* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop-pipe)
	(esh-cmd-test/while-loop-pipe, esh-cmd-test/if-statement-pipe)
	esh-cmd-test/if-else-statement-pipe): New tests.
	(esh-cmd-test/while-loop): Use 'pop' to simplify the test a bit.

	* test/lisp/eshell/eshell-tests-helpers.el
	(eshell-test--max-subprocess-time): Rename to...
	(eshell-test--max-wait-time): ... this.
	(eshell-wait-for): New function...
	(eshell-wait-for-subprocess): ... use it.

	* test/lisp/eshell/eshell-tests.el (eshell-test/queue-input): Fix this
	test.  Previously, it didn't correctly verify that the original
	command completed.

	* test/lisp/eshell/em-tramp-tests.el
	(em-tramp-test/should-replace-command): New macro...
	(em-tramp-test/su-default, em-tramp-test/su-user)
	(em-tramp-test/su-login, em-tramp-test/sudo-shell)
	(em-tramp-test/sudo-user-shell, em-tramp-test/doas-shell)
	(em-tramp-test/doas-user-shell): ... use it.

2022-12-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	644c71d6788 lisp/textmodes/bibtex.el: fix bibtex-beginning-of-entry (...
	ab38abfdf75 lisp/textmodes/bibtex.el: Treat $ as punctuation in BibTe...
	d086cd6cf87 Clarify the documentation of 'set-face-attribute'
	dafa6d6badd Handle non-string values in pcomplete
	beed746f944 Fix completion when completion-auto-select is set
	7ccb88486eb ; * etc/DEBUG: Update MS-Windows specifics for GDB 13 and...
	558b59d81b9 Add color fontification in css-ts-mode (bug#60405)
	a96a7c81151 ; * lisp/textmodes/css-mode.el (css-ts-mode): Fix imenu s...
	793641a3db5 ; * lisp/progmodes/js.el: Fix byte-compile warning.
	0aea1cf8190 * lisp/hi-lock.el (hi-lock--regexps-at-point): Fix bug (b...
	60418e6f09c * src/keyboard.c (echo_add_key): Use recently rebound C-h...
	706ed852855 Avoid assertion violations in treesit.c with --enable-che...
	38c35bf0f6a Clean up treesit-default-defun-skipper and add comments
	9371d488be6 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	9d814bea460 ; whitespace.el: Use the new 'ert-with-buffer-selected' i...
	784e509bded Fix c-ts-mode bracket indentation (bug#60398)

2022-12-30  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid some obsolescent tz abbrevs in doc.

2022-12-30  Paul Eggert  <eggert@cs.ucla.edu>

	Document calc-time-zone abbreviation obsolescence

	* doc/misc/calc.texi (Time Zones): Document that alphabetic
	time zone abbreviations are obsolescent and in some cases wrong.

2022-12-30  Paul Eggert  <eggert@cs.ucla.edu>

	Use RFC 822 abbrevs in sunrise-sunset strings

	* lisp/calendar/solar.el (sunrise-sunset): Use RFC 822 time zone
	abbreviations like "+0530" instead of idiosyncratic abbreviations
	like "UTC+330min".

2022-12-30  Paul Eggert  <eggert@cs.ucla.edu>

	Add nndiary-headers obsolescence comment

	* lisp/gnus/nndiary.el (nndiary-headers): Add comment
	about alphabetic time zone names being obsolescent.

2022-12-30  Paul Eggert  <eggert@cs.ucla.edu>

	Default mbox "From " time zone to -0000

	* lisp/mail/rmailout.el (rmail-nuke-pinhead-header):
	Default the time zone to "-0000" instead of "EST", as "-0000" is
	the RFC-2822-and-later standard for unknown time zones.

2022-12-30  Paul Eggert  <eggert@cs.ucla.edu>

	In cal-dst, be consistent re default to UTC

	* lisp/calendar/cal-dst.el (calendar-standard-time-zone-name)
	(calendar-daylight-time-zone-name):
	When using alphabetic time zone abbreviations, default to "UTC"
	rather than to "EST" or "EDT", to be consistent with the behavior
	when using numeric time zone abbreviations.
	Also, in the numeric time zone use "-0000" rather than "+0000"
	to show that the time zone is unknown; this is the RFC 5322
	standard.

2022-12-30  LdBeth  <andpuke@foxmail.com>  (tiny change)

	Fix newsticker timezone decode

	'newsticker--decode-rfc822-date' has the regex pattern for
	North American timezones but the actual timezone conversion
	for them was not implemented. Now cond cases are added to
	handle them as specified in RFC822.

2022-12-29  Theodor Thornhill  <theo@thornhill.no>

	Allow for indentation in prog-fill-reindent-defun (bug#60322)

	* lisp/progmodes/prog-mode.el (prog-fill-reindent-defun):
	Adjust regexp.

2022-12-29  Mattias Engdegård  <mattiase@acm.org>

	* etc/NEWS: Mention some recently added byte-compiler warnings

2022-12-29  Mattias Engdegård  <mattiase@acm.org>

	Consistent empty-body warning messages for let and let*

	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-test--with-suppressed-warnings):
	Make warning messages for let and let* consistent with other
	empty-body warnings.

2022-12-29  Mattias Engdegård  <mattiase@acm.org>

	Add empty-body warning for when, unless etc

	Warn about code like (when SOME-CONDITION) because these may indicate
	bugs.  Warnings currently apply to `when`, `unless`, `ignore-error`,
	`with-suppressed-warnings` and (as before) `let` and `let*`.

	* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings):
	Update doc string.
	* lisp/emacs-lisp/bytecomp.el: (byte-compile-warning-types)
	(byte-compile-warnings): Add empty-body.
	(byte-compile-initial-macro-environment):
	Add empty-body warning for with-suppressed-warnings.
	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
	Use the empty-body category for let and let*.
	* lisp/subr.el (when, unless, ignore-error): Add empty-body warning.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-test--with-suppressed-warnings): Add test cases.

2022-12-29  Mattias Engdegård  <mattiase@acm.org>

	Warn about `condition-case' with quoted condition names

	* lisp/emacs-lisp/bytecomp.el (byte-compile-condition-case):
	Add warning.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-warn-quoted-condition): Add test case.

2022-12-29  Mattias Engdegård  <mattiase@acm.org>

	Warn about `ignore-error` with quoted condition argument

	* lisp/subr.el (ignore-error):
	Clarify condition argument in doc string and add warning.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-warn-quoted-condition): New test.

2022-12-29  Mattias Engdegård  <mattiase@acm.org>

	* lisp/subr.el (with-demoted-errors): Better message and location.

2022-12-29  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	909091d7578 ; Minor cleanup for tree-sitter font-lock rules in js-ts-...
	e78e69b3318 Clean up font-lock rules in js-ts-mode
	0a61e4e2b71 ; * doc/lispref/parsing.texi (Using Parser): Minor improv...
	398ed75c276 ; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragrap...
	19b8733aa27 Fix syntax for < and > in c++-ts-mode (bug#60351)
	f509246ba12 Call tree-sitter parser notifier on the first parse
	ec6feeaa191 Fix tree-sitter parser notifier recursion

2022-12-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	db96b1282f9 * lisp/help.el: Use 'C-h C-q' to toggle 'help-quick' wind...
	489865c21e4 ; Improve markup of long key sequences
	d42c2668cf3 ; * etc/NEWS: Fix wording of a recently edited entry.
	7a0eaee1980 * lisp/isearch.el: Small fixes.
	b69bffeec05 * lisp/vc/diff-mode.el (diff-minor-mode-prefix): Replace ...
	9263847ab76 ; * etc/NEWS: Move the paragraph with 'C-u RET' closer to...
	62fb2dc37da * doc/emacs/display.texi (Text Scale): Improve section ab...
	70480d3b6b7 * lisp/repeat.el (repeat-echo-function): Suggest 'add-fun...
	fd48201ffe7 * lisp/tab-line.el (tab-line-cache-key-default): More cac...
	b1646602602 * etc/package-keyring.gpg: Update with new key
	c0be51389eb ; Yet another declare-function to avoid treesit-related w...
	8676bec51de ; * lisp/treesit.el (treesit--simple-imenu-1): Doc fix; w...
	2ddc480f441 Warn of absent networks module in ERC
	19d00fab9aa Avoid "already compiled" warning in erc-compat
	2d8f7b66bcc ; Fix one more treesit byte-compilation warning.
	2d0a9214863 ; Avoid treesit-related byte-compiler warnings
	8503b370be1 (python--treesit-settings): Remove duplicate matcher
	b464e6c490b Make last change of w32 GUI dialogs conditional and rever...
	eedc9d79aed Fix tree-sitter typos
	248c13dcfe1 Update tree-sitter major modes to use the new Imenu facility
	b39dc7ab27a Add tree-sitter helper functions for Imenu
	ba1ddea9dab Fix treesit--things-around (bug#60355)
	7512b9025a1 ; * lisp/treesit.el (treesit-traverse-parent): Remove alias.
	5326b041982 Improve treesit-node-top-level and treesit-parent-until
	637f5b164f2 ; Add "src" to the heuristic sub-directory heuristic
	8ab6df0c9fd ; * lisp/epa-ks.el (epa-ks-do-key-to-fetch): Fix 'when' u...
	2b55a48d3e3 * src/w32menu.c (simple_dialog_show): Use MB_YESNOCANCEL ...
	8b8b7915679 ; Improve documentation of TAB/SPC indentation
	624e3822110 ; Improve doc strings of some new faces
	41f12e1019b ; * lisp/elide-head.el (elide-head): Doc fix to silence c...
	e3b4cd0ac1d ; * lisp/htmlfontify.el (hfy-text-p): Fix whitespace.
	1b4dc4691c1 Fix htmlfontify.el command injection vulnerability.
	1fe4b98b4d5 Improve support for Scheme R6RS and R7RS libraries (bug#5...
	2347f37f677 ; * test/src/treesit-tests.el: remove dead store (bytecom...
	a6d961ae2fd Add a new tree-sitter query predicate 'pred'
	835a80dcc48 ; Fix tree-sitter defun tests
	a14821d6151 Improve gnutls-min-prime-bits docstring
	b14bbd108e4 Improve handling of tab-bar height.
	669160d47b2 ; * nt/INSTALL.W64: More fixes and updates.
	26b2ec7cb8c Simplify last change (bug#60311)
	082fc6e3088 Fix 'json-available-p' on MS-Windows
	6c86faec29e loaddefs-gen: Group results by absolute file name
	d90d7d15f2f ; Fix vindexes in parsing.texi
	eb268728376 Fix imenu for c-ts-mode (bug#60296)
	8f68b6497ee Clean up python-ts-mode font-lock features
	28f26b11a1e Add comment indent and filling to other tree-sitter major...
	c6b02826450 ; Remove unused function in c-ts-mode
	6e52a9fcadc ; * doc/lispref/modes.texi (Parser-based Font Lock): Mino...
	2bcd1e9a99d ; * doc/lispref/parsing.texi (Retrieving Nodes): Add notice.
	7c7950fe006 Add maintainer stub for tree-sitter files
	cf327766226 ; * doc/lispref/parsing.texi (Using Parser): Remove delet...

	# Conflicts:
	#	etc/NEWS
	#	lisp/progmodes/c-ts-mode.el
	#	lisp/progmodes/typescript-ts-mode.el
	#	lisp/treesit.el

2022-12-28  Theodor Thornhill  <theo@thornhill.no>

	Add treesit-transpose-sexps (bug#60128)

	We don't really need to rely on forward-sexp to define what to
	transpose.  In tree-sitter we can consider siblings as "balanced
	expressions", and swap them without doing any movement to calculate
	where the siblings in question are.

	* lisp/simple.el (transpose-sexps-function): New defvar-local.
	(transpose-sexps): Use the new defvar-local if available.
	(transpose-subr): Check whether the mover function returns a cons of
	conses, then run transpose-subr-1 on the position-pairs.
	* lisp/treesit.el (treesit-transpose-sexps): New function.

2022-12-28  Theodor Thornhill  <theo@thornhill.no>

	Fixes in prog-fill-reindent-defun

	Ensure that we don't consider lines such as

	    switch (foo) {
	        case 2:  // If point on 'c' in 'case'
	            return 2;

	not to be considered for filling.

	Also make sure we check for the active region, to replicate the normal
	fill-paragraph behavior.

	* lisp/progmodes/prog-mode.el (prog-fill-reindent-defun): Adjust
	regex, and make sure fill-paragraph checks for active region.

	(bug#60360, bug#60322)

2022-12-27  Stefan Kangas  <stefankangas@gmail.com>

	Support Apache License 2.0 in elide-head-mode

	* lisp/elide-head.el (elide-head-headers-to-hide): Add the Apache
	License, Version 2.0.
	* test/lisp/elide-head-tests.el (apache1-1): New test.

2022-12-27  Stefan Kangas  <stefankangas@gmail.com>

	Make elide-head-headers-to-hide more forgiving

	* lisp/elide-head.el (elide-head-headers-to-hide): Make regexp
	more forgiving of line breaks and comment characters in address.
	* test/lisp/elide-head-tests.el (gpl3-6): New test.

2022-12-26  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid duplicate inclusion of stdalign.h

	* src/lisp.h: Do not include stdalign.h, as Gnulib now
	approximates C23 (where stdalign.h does nothing) and config.h
	already includes stdalign.h as needed on pre-C23 platforms.

2022-12-26  Po Lu  <luangruo@yahoo.com>

	Redisplay "invisible" frames that are actually visible on modern X

	* etc/NEWS: Document that "invisible" frames are now redisplayed
	if the compositing manager is still displaying it as part of a
	thumbnail out of Emacs's control.

	* src/dispnew.c (Fredraw_display): Use FRAME_REDISPLAY_P.
	* src/frame.h (FRAME_REDISPLAY_P): New macro.

	* src/xdisp.c (clear_garbaged_frames, echo_area_display)
	(prepare_menu_bars, redisplay_internal, display_and_set_cursor)
	(gui_clear_cursor): Use FRAME_REDISPLAY_P to determine whether
	or not a frame should be redisplayed.
	* src/xfns.c (Fx_create_frame): Set visibility state initially.
	* src/xterm.c (handle_one_xevent): Likewise.
	* src/xterm.h (struct x_output): New field `visibility_state'.

2022-12-26  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	6c00d126e7f Remove remaining mentions of 'eval-current-buffer'
	1073e96170b ; * doc/lispref/text.texi (Database): Fix a typo.  (Bug#6...
	b1e68a33d89 Update to Org 9.6-61-g63e073f
	dad73e4de19 ; Review and fix NEWS and related documentation
	72786ae237e ; Restore ARGS argument in c-ts-mode--fontify-declarator
	940ab2423ca ; Always consider :lisp-dir when locating main file of VC...
	9ab98cd42aa Add heuristic to locate lisp code in source packages
	dda011c78d1 ; * doc/lispref/parsing.texi (Tree-sitter major modes): F...
	d62b634d8fc ; * src/process.c (Fprocess_running_child_p): Doc fix.
	f6c5b3d635e ; * doc/lispref/parsing.texi: Add a reminder.
	e6c49c0454e ; Fix byte-copmiler warning in c-ts-mode--fontify-declarator
	4234033a47a ; * lisp/treesit.el: Add some comments.
	79584a206b9 Further generalize treesit-defun functions
	a819ca5a93c Generalize treesit-defun functions to "things"
	e8b34109eeb Reorder optional arguments to 'package-vc-install'
	b38e56d8a98 Handle missing dependencies for source packages
	7bc7b6b4dd9 ; Partial revert of f3e7820b
	2cec78254ea ; * nt/INSTALL.W64: Fix wording.
	ecee3bd4209 ; Fix recent changes in treesit documentation

	# Conflicts:
	#	etc/NEWS

2022-12-25  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	c36fe3df17b Fix c-ts-mode imenu defun name (bug#60296)
	a24e350170e Fix treesit--children-covering-range-recurse (bug#60301)
	fbb4eb919b4 Support treesit-defun-name in tree-sitter major modes
	6253184afc2 ; * lisp/treesit.el (treesit-defun-at-point): Guard again...
	f8e219ebfaa Add treesit-defun-name and friends
	35c2ca2ca64 Make treesit-node-at/on guess language at point
	7f7def2ae62 ; Add treesit-no-parser error
	b6a2e1ddf66 * nt/INSTALL.W64: update instructions for setting up W64 ...
	265b91d891a Revert "; Bump minimum supported Windows version for MinG...
	75155e45860 ; Bump minimum supported Windows version for MinGW64 to W...
	677f6c79eb9 ; Update minimum requirements of MinGW-w64
	7723af5e4aa ; * lisp/progmodes/c-ts-mode.el: quote literal string in ...
	38866510c7c ; * src/xdisp.c (redisplay_internal): Reinstate the FRAME...
	a825aa0b135 Fix definition of CNS 11643-15 charset
	a42b20dd95e ; * lisp/progmodes/c-ts-mode.el: Add outline section head...
	e4e36345399 Improve c-ts-mode block comment indent (bug#60270)
	e30621caa2c ; Add treesit_recursion_limit
	6a43af58802 Fix block comment indent and filling for c-ts-mode (bug#5...
	e492c21e810 Fix treesit_cursor_helper (bug#60267)
	4437dbedf7b Fix restart-emacs alarms (Bug#60220)
	121a9ff9f6f Fix alternate stack test in configure
	84888080eea Add more functions to "string" shortdoc
	c90f97d4e5d Make the Contour terminal an alias of xterm-256color
	c3fac9465fa ; Fix punctuation in last change.
	756bb422a49 Correct wrong info in (info)Go to node
	a8c3424d28b Fix typo in TUTORIAL.fr (bug#60261)
	24cd2f0daf1 Add some diff-fixup-modifs tests
	d32091199ae Fix quoted argument in emacsclient-mail.desktop Exec key
	286c48137f6 ert-x: Move window selection logic to its own macro
	823c49cea85 ; ert-x: Simplify `ert-with-test-buffer-selected'
	38c6abe4d0b ; ert-x: Add test for buffer read-only state
	0e39ad6fa56 Fix crash after X error

2022-12-24  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Fix the recent removal of substring as a gv-place.

	(tab-bar-auto-width): Copy more logic from 'cl--set-substring' (bug#60297).

2022-12-24  Mattias Engdegård  <mattiase@acm.org>

	Fix condition-case empty success handler misinterpretation

	(condition-case X E (:success)) should return nil; the compiler
	behaves correctly in this case.

	* src/eval.c (internal_lisp_condition_case):
	Evaluate an empty :success handler as nil instead of pretending it
	isn't there.
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
	Add test case.

2022-12-24  Mattias Engdegård  <mattiase@acm.org>

	Fix condition-case body for-effect miscompilation

	(condition-case x A (:success B)) should not compile A for-effect even
	if the entire form is in for-effect context.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
	Don't optimize the condition-case body form for effect (potentially
	discarding its value) if there is a success handler and a variable.
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
	Add test cases.

2022-12-24  Paul Eggert  <eggert@cs.ucla.edu>

	Assume make-directory handler follows new API

	Suggested by Michael Albinus (Bug#58919#56).
	* lisp/files.el (files--ensure-directory): Omit recently-added arg
	MKDIR, since it is now always make-directory again.  All uses
	changed.
	(make-directory): Assume the make-directory handler follows the
	new API where it yields non-nil if DIR already exists.  This
	reverts some of the recent changes in this area, and simplifies
	this function.

2022-12-24  Florian Weimer  <fweimer@redhat.com>

	configure: Remove obsolete check for -b i486-linuxaout

	If there are still a.out system arounds, they shouldn't need this
	anymore because the toolchain has been fixed.

	* configure.ac (emacs_cv_b_link): Remove obsolete check.

2022-12-24  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2022-12-24  Po Lu  <luangruo@yahoo.com>

	Print out more X error details

	* src/xterm.c (x_error_quitter): Print the failing resource ID
	and minor code on an X error.

2022-12-24  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	9a3b08061fe Fix ruby-mode.el local command injection vulnerability (b...
	4b44a395b3c ; * etc/NEWS: Fix typos.
	458e1752701 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
	eccb813a943 Fix "C-h k" in recursive minibuffers
	6dda2106ece ; Improve documentation of "C-x @"
	a0738e8ad13 ; * etc/NEWS: Announce the new behavior of 'C-h f'.  (Bug...
	86b11981b0d Update Tramp version (don't merge with master)

	# Conflicts:
	#	etc/NEWS

2022-12-24  Sean Whitton  <spwhitton@spwhitton.name>

	vc-git-checkin: Stash other staged changes

	* lisp/vc/vc-git.el (vc-git--stash-staged-changes): New function.
	(vc-git-checkin): Use new function to avoid needing to unstage changes
	unrelated to the patch we want to commit (bug#60126).

2022-12-23  Po Lu  <luangruo@yahoo.com>

	Speed up completion plugins over slow networks

	* src/xterm.c (x_make_frame_invisible): Do not sync if
	`x-lax-frame-positioning' is enabled.
	(syms_of_xterm): Update doc string.

2022-12-23  Paul Eggert  <eggert@cs.ucla.edu>

	Leap seconds are planned to go away by the year 2035.

2022-12-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	0754173c923 ; Fix docstring
	014232d3840 Eglot: eglot--servers-by-xrefed-file doesn't need to be v...
	bbe35c280c2 Prevent stale servers when using eglot-extend-to-xref
	9bf13a3fb9e ; * src/alloc.c (Fmemory_info): Doc fix.
	baa33a5c054 * etc/tutorials/TUTORIAL.cn: Fix typos.  (Bug#60221)
	98d7f76b451 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	a488a6870ac Add alias for removed font-lock function
	02e046566e2 Set beginning/end-of-defun-function in treesit-major-mode...
	7dea58b88db Add treesit-defun-at-point and fix c-ts-mode-indent-defun
	69123d4aa4e ; Fix treesit--defuns-around
	05d8310fb5d Use the new keyword ':repeat' in repeatable keymaps.

2022-12-22  Jim Porter  <jporterbugs@gmail.com>

	Simplify handling of /dev/null redirection in Eshell

	This also fixes an issue where "echo hi > foo > /dev/null" didn't
	write to the file "foo".  (Note that users can still use their
	system's null device name when redirecting; Eshell doesn't need to do
	anything special to support that.)

	* lisp/eshell/esh-io.el (eshell-virtual-targets): Add "/dev/null".
	(eshell-set-output-handle): Handle 'eshell-null-device'.

	* test/lisp/eshell/esh-io-tests.el
	(esh-io-test/redirect-subcommands/dev-null)
	(esh-io-test/virtual/dev-null, esh-io-test/virtual/dev-null/multiple):
	New tests.

2022-12-22  Jim Porter  <jporterbugs@gmail.com>

	Fix handling of output handles in nested Eshell forms

	Previously, the output handles in nested forms would be reset to the
	default, leading to wrong behavior for commands like

	  {echo a; echo b} > file

	"b" would be written to "file" as expected, but "a" would go to
	standard output (bug#59545).

	* lisp/eshell/esh-cmd.el (eshell-parse-command): Use
	'eshell-with-copied-handles' for each statement within the whole
	Eshell command.

	* test/lisp/eshell/esh-io-tests.el (esh-io-test/redirect-subcommands)
	(esh-io-test/redirect-subcommands/override)
	(esh-io-test/redirect-subcommands/interpolated): New tests.

	* test/lisp/eshell/em-script-tests.el
	(em-script-test/source-script/redirect)
	(em-script-test/source-script/redirect/dev-null): New tests.
	(em-script-test/source-script, em-script-test/source-script/arg-vars)
	(em-script-test/source-script/all-args-var): Tweak names/docstrings.

	* test/lisp/eshell/em-extpipe-tests.el (em-extpipe-tests--deftest):
	Skip over the newly-added 'eshell-with-copied-handles' form when
	checking the parse results.

	* test/lisp/eshell/em-tramp-tests.el (em-tramp-test/su-default)
	(em-tramp-test/su-user, em-tramp-test/su-login)
	(em-tramp-test/sudo-shell, em-tramp-test/sudo-user-shell)
	(em-tramp-test/doas-shell, em-tramp-test/doas-user-shell): Update
	expected command forms.

2022-12-22  Jim Porter  <jporterbugs@gmail.com>

	Add 'eshell-duplicate-handles' to return a copy of file handles

	* lisp/eshell/esh-io.el (eshell-create-handles): Support creating with
	multiple targets for stdout and/or stderr.  Make the targets for a
	handle always be a list, and store whether the targets are the default
	in a separate 'default' field.
	(eshell-protect-handles, eshell-close-handles)
	(eshell-copy-output-handle, eshell-interactive-output-p)
	(eshell-output-object): Update for changes in 'eshell-create-handles'.
	(eshell-duplicate-handles, eshell-get-targets): New functions.

	* lisp/eshell/esh-cmd.el (eshell-copy-handles): Rename and alias to...
	(eshell-with-copied-handles): ... this function, and use
	'eshell-duplicate-handles'.
	(eshell-execute-pipeline): Use 'eshell-duplicate-handles'.

2022-12-22  Michael Albinus  <michael.albinus@gmx.de>

	Handle make-directory return values in file name handlers

	* lisp/net/ange-ftp.el (ange-ftp-make-directory): Handle return
	values.

	* lisp/net/tramp.el (tramp-skeleton-make-directory): New defmacro.
	Handle also return values.
	* lisp/net/tramp-adb.el (tramp-adb-handle-make-directory):
	* lisp/net/tramp-crypt.el (tramp-crypt-handle-make-directory):
	* lisp/net/tramp-fuse.el (tramp-fuse-handle-make-directory):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-make-directory):
	* lisp/net/tramp-sh.el (tramp-sh-handle-make-directory):
	* lisp/net/tramp-smb.el (tramp-smb-handle-make-directory):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-directory):
	Use it.

	* test/lisp/net/tramp-tests.el (tramp-test13-make-directory):
	Handle return values.

2022-12-22  Po Lu  <luangruo@yahoo.com>

	Simplify X premultipled pixel allocation code

	* src/xterm.c (x_premultiply_pixel): New function.
	(x_query_colors): Improve documentation.
	(x_draw_fringe_bitmap, x_query_frame_background_color): Use
	x_premultiply_pixel.

2022-12-22  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	e59216d3be8 * Invoke spawned Emacs processes with '-Q' when native com...
	777b383dd0f Fix Eshell electric slash when used from the root directo...
	c088cdad9e9 Fix the --without-all build with tree-sitter
	ec9fbad908d Fix write-region to null device on MS-Windows
	f35da111990 message: Do not default to eudc-capf-complete yet
	98c16a8c883 ; * lisp/tab-bar.el: Remaining renaming of "fixed-width" ...
	d76d7a3bebf whitespace: Avoid mutating original buffer's markers in c...

2022-12-21  Mattias Engdegård  <mattiase@acm.org>

	Fix broken eww desktop restore reload prompt message insertion

	* lisp/net/eww.el (eww-restore-desktop): Repair a malformed `cl-case`
	clause.  This code probably never worked as intended.

2022-12-21  Mattias Engdegård  <mattiase@acm.org>

	soap-client: fix validation against byte[]

	* lisp/net/soap-client.el (soap-validate-xs-basic-type):
	`byte[]` is read as the two Lisp values `byte` and `[]` but here the
	symbol `byte[]` is intended: the brackets need escaping.

2022-12-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	12b2b8864c2 Fix empty pairs in js tree-sitter imenu alist (bug#59945)
	6d9f367ead3 ; * lisp/treesit.el (treesit-simple-indent-presets): Fix ...

2022-12-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	d3a76db88b4 * lisp/repeat.el: Fix repeat-keep-prefix to allow customi...
	8ef3777d544 Correct capitalization of Lisp in the manual (bug#60222)
	d03ea893780 eglot.el: Add vscode-json-languageserver to eglot-server-...
	8550a993785 ; * src/emacs-module.h.in (enum emacs_funcall_exit): Fix ...
	fb7f3999c59 ; Fix ruby-method-params-indent's :version value
	cfbfd393b45 * lisp/progmodes/project.el (project--read-file-cpd-relat...
	2b1fdbffcb5 ruby-method-params-indent: New user option
	b9e813f79f2 ; ruby-indent-level: Improve the docstring
	399433cc2b9 * lisp/progmodes/project.el: Filter out empty strings fro...
	23f7c9c2a92 Fix storing email into nnmail by Gnus
	63cdbd986bb ; Really respect browse-url var in erc-compat
	64163618d21 whitespace: Fix unintended change in buffer modification ...
	a75d1da911c Make emacsclient add abbreviated file names to file-name-...
	b3e7768a0ee Repair setopt test after error demotion to warning

2022-12-21  Sean Whitton  <spwhitton@spwhitton.name>

	vc-git-checkin: Don't try to apply an empty patch

	* lisp/vc/vc-git.el (vc-git-checkin): Don't try to apply an empty
	patch to the index, because in that case 'git apply' fails.

2022-12-21  Sean Whitton  <spwhitton@spwhitton.name>

	vc-git-checkin: Offer to unstage conflicting changes

	* lisp/vc/vc-git.el (vc-git-checkin): When committing a patch, if
	conflicting changes are already staged, offer to clear them, instead
	of just immediately failing with "Index not empty" (bug#60126).

2022-12-20  Vibhav Pant  <vibhavp@gmail.com>

	Ensure that we are not aset-ing Lisp records in purespace.

	* src/data.c (Faset): Enforce that Lisp records passed to aset are
	impure with CHECK_IMPURE.

2022-12-20  Po Lu  <luangruo@yahoo.com>

	Improve safety of calls to vendor-specific-keysyms

	* src/xterm.c (x_term_init): Wrap call to
	vendor-specific-keysyms inside safe_call.

2022-12-20  Sean Whitton  <spwhitton@spwhitton.name>

	vc-prepare-patch: Number the attached patches

	* lisp/gnus/mml.el (mml-attach-buffer): New FILENAME argument.
	* lisp/vc/vc.el (vc--subject-to-file-name): New function.
	(vc-prepare-patch): When vc-prepare-patches-separately is nil,
	generate file names for the attached patches.
	Call vc--subject-to-file-name, and then prepend numbers indicating the
	ordering of the patches (bug#60147).

2022-12-19  Mattias Engdegård  <mattiase@acm.org>

	called-interactively-p: cut broken comparison

	* lisp/subr.el (called-interactively-p): Remove attempt to detect
	`byte-code` frames; it wasn't done right but also does not seem
	to be necessary.  Adjust comment that was out of date.

2022-12-19  Vibhav Pant  <vibhavp@gmail.com>

	Add support for additional memory checks using AddressSanitizer.

	When Emacs is compiled with AddressSanitizer support, enable
	poisoning/unpoisoning freed/unused Lisp objects and other internal
	memory management structures. If enabled, this will mark freed bytes
	that have been put on free lists for future use and initially
	allocated memory blocks/chunks as "poisoned", triggering an ASan error
	if they are accessed improperly. Structures are unpoisoned when they
	have been taken off their respective free lists. Additionally, add
	optional macros for performing unaligned loads, which when enabled by
	defining USE_SANITIZER_UNALIGNED_LOAD will use ASan provided functions
	for loading from unaligned addresses, which may help catch bugs that
	AddressSanitizer might otherwise miss.

	* configure.ac: Check for the existence of address and common
	sanitizer API headers.

	* src/lisp.h (UNALIGNED_LOAD_SIZE): New macro. If enabled, and the
	necessary sanitizer API is available, define it to
	__sanitizer_unaligned_load(64|32) depending on the word size of the
	architecture.

	* src/fns.c [HAVE_FAST_UNALIGNED_ACCESS] (Fstring_lessp): Use
	'UNALIGNED_LOAD_SIZE' to perform unaligned loads from the two strings.

	* src/alloc.c (ASAN_POISON_ABLOCK, ASAN_UNPOISON_ABLOCK)
	(ASAN_POISON_INTERVAL_BLOCK, ASAN_UNPOISON_INTERVAL_BLOCK)
	(ASAN_POISON_INTERVAL, ASAN_UNPOISON_INTERVAL)
	(ASAN_PREPARE_DEAD_SDATA, ASAN_PREPARE_LIVE_SDATA)
	(ASAN_POISON_SBLOCK_DATA, ASAN_POISON_STRING_BLOCK)
	(ASAN_UNPOISON_STRING_BLOCK, ASAN_POISON_STRING)
	(ASAN_UNPOISON_STRING, ASAN_POISON_FLOAT_BLOCK)
	(ASAN_UNPOISON_FLOAT_BLOCK, ASAN_POISON_FLOAT)
	(ASAN_UNPOISON_FLOAT, ASAN_POISON_CONS_BLOCK)
	(ASAN_POISON_CONS, ASAN_UNPOISON_CONS)
	(ASAN_POISON_VECTOR_CONTENTS, ASAN_UNPOISON_VECTOR_CONTENTS)
	(ASAN_UNPOISON_VECTOR_BLOCK, ASAN_POISON_SYMBOL_BLOCK)
	(ASAN_UNPOISON_SYMBOL_BLOCK, ASAN_POISON_SYMBOL)
	(ASAN_UNPOISON_SYMBOL) [ADDRESS_SANITIZER]: New macros. When
	address sanitization is enabled, define them to poison/unpoison
	objects.

	(lisp_align_malloc): Poison newly allocated blocks on `free_ablock',
	unpoison ablocks taken from it respectively.
	(lisp_align_free): Poison individual ablocks when they are put on the
	free list, unpoison them when an entire `ablocks' chunk is being
	freed.

	(make_interval): Poison interval blocks on initial allocation,
	unpoison individual intervals on allocation and removal from
	`interval_free_list'.
	(sweep_intervals): Unpoison interval blocks before sweeping, poison
	dead/unmarked intervals.

	(allocate_string): Poison string blocks on initial allocation,
	unpoison Lisp_Strings on removal from the free list.
	(allocate_string_data): Poison `sblock' data on initial allocation,
	unpoison individual `sdata' contents on allocation or removal from the
	free list. Call `ASAN_PREPARE_LIVE_SDATA' on the new `sdata' struct.
	(sweep_strings): Unpoison string blocks before sweeping them,
	poisoning dead strings and their sdata afterwards.
	(compact_small_strings): Call `ASAN_PREPARE_LIVE_DATA' on the `sdata'
	to where compacted strings to moved to.
	(pin_string): Call `ASAN_PREPARE_DEAD_SDATA' on `old_sdata'.

	(make_float): Poison float blocks on allocation, unpoisoning
	individual Lisp_Floats on allocation or removal from
	`float_free_list'.
	(sweep_floats): Unpoison float blocks before sweeping, poison
	dead/unmarked floats.

	(free_cons): Poison `ptr'.
	(Fcons): Poison cons blocks on allocation, unpoisoning individual
	Lisp_Cons on allocation or removal from `cons_free_list'.
	(sweep_conses): Poison dead/unmarked conses.

	(setup_free_list): Poison vectors put on `vector_free_lists'.
	(allocate_vector_from_block): Unpoison vectors taken from the free
	list, poison excess vector bytes when vectors allocated from the free
	list are larger than requested.
	(sweep_vectors): Unpoison vector blocks before sweeping them.

	(Fmake_symbol): Poison symbol blocks on initial allocation,
	unpoisoning individual Lisp_Symbols on allocation or removal from
	`symbol_free_list'.
	(sweep_symbols): Unpoison symbol blocks before sweeping, poisoning
	dead/unmarked symbols.

	(live_string_holding, live_cons_holding, live_symbol_holding)
	(live_float_holding): When compiling with address sanitization and GC
	poisoning enabled, return NULL if the passed address is poisoned, or
	if the Lisp object it resides in is poisoned, avoiding a
	use-after-poison trigger if these functions are called on a pointer
	that might be referring to a now dead/swept object.

	* etc/DEBUG: Add information about enabling ASan memory poisoning.

2022-12-19  Mattias Engdegård  <mattiase@acm.org>

	Use equal and member instead of eq and memq

	* lisp/cedet/semantic/complete.el (semantic-displayer-show-request):
	* lisp/descr-text.el (describe-char-categories):
	* lisp/mh-e/mh-identity.el (mh-select-identity):
	* lisp/transient.el (transient--delay-post-command)
	(transient--post-command):
	* lisp/vc/vc-git.el (vc-git-create-tag):
	* test/lisp/emacs-lisp/cl-lib-tests.el
	(cl-lib-nth-value-test-multiple-values):
	* lisp/emulation/viper-cmd.el (viper-preserve-cursor-color):
	Use `equal` instead of `eq` and `member` instead of `memq` where
	the comparison is with literals without guaranteed identity.
	In some cases this change corrects evident bugs, in others it is
	mostly cosmetic.

2022-12-19  Mattias Engdegård  <mattiase@acm.org>

	Elide broken but unnecessary `if` optimizations

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-if):
	Remove explicit clauses purposing to simplify

	    (if X nil t) -> (not X)
	    (if X t nil) -> (not (not X))

	but never did so because of a coding mistake (eq instead of equal),
	found by a recently added warning.  They weren't actually needed
	thanks to the optimizer's fixpoint iteration: we eventually get the
	same results through

	    (if X nil t) -> (if (not X) t nil) -> (if (not X) t) -> (not X)
	    (if X t nil) -> (if X t) -> (not (not X))

2022-12-19  Mattias Engdegård  <mattiase@acm.org>

	alist-get testfn argument evaluation correction

	* lisp/emacs-lisp/gv.el (alist-get):
	Evaluate TESTFN exactly once (previously up to 3 times).
	Reduce the macro-expansion to include a call to either assoc or assq,
	not both; this reduces the generated code size in some cases.

2022-12-19  Michael Albinus  <michael.albinus@gmx.de>

	Ignore some handlers in ange-ftp.el

	* lisp/net/ange-ftp.el: Return nil for `file-acl',
	`file-notify-add-watch', `file-notify-rm-watch',
	`file-notify-valid-p', `file-system-info',
	`list-system-processes', `memory-info', `process-attributes',
	`set-file-acl', `set-file-selinux-context'.

2022-12-19  Po Lu  <luangruo@yahoo.com>

	Improve earlier changes to xterm.c

	* etc/PROBLEMS: Update for renamed variable.
	* src/xterm.c (x_make_frame_visible): Better respect
	`x-lax-frame-positioning'.

2022-12-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	12e26cc0c1b ; * admin/git-bisect-start: Add mistakenly omitted commi...
	9a751e0a38b ruby-mode: Support endless singleton method definitions too
	ce7b7e5af3d Remove comment-start-skip preset in tree-sitter indentati...
	c1e015ae320 Fix recent change in tramp-smb.el
	cf1b771864a ; * etc/NEWS: Fix typos.
	50d18bb6ea7 Make tramp-archive autoloads robust for older Emacs versions
	3941cc29df3 ; Improve documentation of 'setopt'
	6f88de109c8 ruby-mode: Support endless methods (bug#54702)
	91dd893e343 ; * lisp/progmodes/sql.el (sql-product-interactive): Doc ...
	138d9dc4cb0 * lisp/cus-edit.el (setopt--set): Warn instead of raising ...
	d1e0542f336 Allow customizing windmove user options with an empty prefix
	c2375e77914 Improve and extend admin/git-bisect-start
	7cc2313eb0a Make 'rmail-summary-by-thread' faster
	88e59b16cbe ; Improve documentation of installing tree-sitter and gra...
	897f33bf316 Fix the MS-DOS build
	660e941235d Avoid crashes in PGTK build due to signal in 'note_mouse_...
	0fc5fb2d054 Fix MS-Windows build broken by recent treesit.c changes
	5b2e6d04ce2 Fix wrong capture in typescript-ts-mode (bug#60167)
	cb8ccdd2670 Add rust-ts-mode (Bug#60136)
	9fcf764dd73 Indentation fixes for jsx/tsx (bug#60169)
	69f2c71135f Fix treesit-query-validate problem with view-mode
	1fc7535546c Use cursor API in treesit-node-parent
	5f0286c0afa Switch to use cursor API in treesit.c
	a275e436df4 Add treesit_assume_true and treesit_cursor_helper
	a54c7a8df0c Remove file-exists-in-trash-p
	3e02029642c Update to Org 9.6-49-g47d129
	4a8ff671b0e Don’t assume make-directory handler returns nil
	44c83b239d3 Fix copy-directory bug when dest dir exists
	bef1edc9cac make-directory now returns t if dir already exists
	8a9579ca29d Use make-directory handlers uniformly
	627e7e0243d Improve documentation of 'file-exists-p'
	c9015ef55ff Fix resizing of mini-windows by 'set-minibuffer-message'
	5a245bc786e Prevent Abort dialogs from async-compiling jobs on Windows
	4d1e4a48938 Fix 'window-max-chars-per-line' when there are no fringes
	d65beb820cc ; Revert "; * lisp/subr.el (internal--with-narrowing): Si...
	1c0b90e5f7d ruby-mode: Recognize instance or global var as first arg ...
	3356c0cb163 Fix end-of-defun in ruby-mode

	# Conflicts:
	#	etc/NEWS

2022-12-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	67bc96c9d94 Remove treesit-defun-prefer-top-level and friends
	4f9bccef556 Add yaml-ts-mode (Bug#60105)
	f9cb144d45a Fix indentation in json-ts-mode (bug#60123)
	3d348c46e78 ; Handle nil ARG in treesit-beginning/end-of-defun
	1a66435dda3 New input method 'cyrillic-chuvash'
	b9227c502d7 ; Improve wording of 'format' doc string

2022-12-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	de2239a584a Revert "alist-get testfn argument evaluation correction"
	856d889f3a8 Revert "Elide broken but unnecessary `if` optimizations"
	8e42e20ed7f Revert "Use equal and member instead of eq and memq"

2022-12-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	b01d0246d71 * lisp/term/xterm.el (xterm-function-map): Add M-SPC.  (B...
	303d6ac1423 Fix moving to trash files that overwrite dangling symlink...
	dc78779c0cd Fix SVG scaling (bug#59802)
	10415d9651b ; Add useful hint to which-func documentation
	c26ab22cf4e ; Improve doc strings of minibuffer-history commands
	80f410d281c ; Fix last changes in buffer.c
	f04680e067b Fix some naming issues involving query buffers in ERC
	173e02f4eb4 ; Fix doc string in ERC's module-activation commands
	5a9263a8725 Increment erc-debug-irc-protocol-version to 2
	89f54e81576 A better fix for bug#60096
	1b9ca1e5e64 ; Fix printing Lisp types in .gdbinit
	7575c85efd2 Bump Eglot version to 1.10
	a0806bc7ea9 Eglot: fix discrepant eglot-guess-contact/eglot-command-h...
	8bf4cdcf79b Avoid recursive process filters in lisp/jsonrpc.el (bug#6...

2022-12-19  Juanma Barranquero  <lekktu@gmail.com>

	bs.el: Use the right buffer context to compute the mode name

	* lisp/bs.el (bs--get-mode-name): The function is already called
	with the correct buffer as current-buffer; and anyway, START-BUFFER
	is usually the wrong one to pass to `format-mode-line'.  This fixes
	a bug introduced in 48d33090d0 and c2699583be (back in 2008-01-04).

2022-12-18  Paul Eggert  <eggert@cs.ucla.edu>

	Improve rename-file fix (bug#34069)

	* src/fileio.c (Frename_file): No need for a special case to
	rename a fifo, since we already tried and failed to rename it.
	Also improve symlink handling, in that if readlink fails report an
	error rather than trying to treat the link as a regular file.

2022-12-18  Paul Eggert  <eggert@cs.ucla.edu>

	Don’t hang when copying FIFOs

	* src/fileio.c (Fcopy_file): Open the input file with O_NONBLOCK.
	This prevents a hang if the input file is a FIFO.
	If it’s a regular file O_NONBLOCK has no effect;
	otherwise the file is soon rejected anyway.

2022-12-18  Mattias Engdegård  <mattiase@acm.org>

	Suppress memql warning in test

	* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-adjoin-test):
	Suppress warning about `memql` argument inside expansion of
	`cl-adjoin`.

2022-12-18  Mattias Engdegård  <mattiase@acm.org>

	Warn about lambda expressions in comparisons

	Lambda expressions are not comparable; warn about calls such as
	(eq x (lambda ...)) etc.

	* lisp/emacs-lisp/bytecomp.el (bytecomp--dodgy-eq-arg): Rename to...
	(bytecomp--dodgy-eq-arg-p): ...this.  Use pcase.  Add lambda checks.
	(bytecomp--value-type-description, bytecomp--arg-type-description)
	(bytecomp--check-eq-args, bytecomp--check-memq-args): Add function
	checks.  Update calls.  Make compiler-macro arguments optional to
	avoid crashes in malformed code.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp--with-warning-test): Simplify argument.  Run each
	compilation with a fresh (empty) warning cache.  Add ert-info for
	easier debugging.
	(bytecomp-warn-dodgy-args-eq, bytecomp-warn-dodgy-args-memq):
	Add lambda tests.

2022-12-18  Mattias Engdegård  <mattiase@acm.org>

	Fix compiler macro expansion bug

	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
	When a compiler-macro handler is re-invoked (after macro-expanding
	arguments), actually use the result instead of pointlessly dropping it
	on the floor.

2022-12-18  Paul Eggert  <eggert@cs.ucla.edu>

	Remove Gnulib explicit_bzero module

	It’s no longer needed, as it is now merely a thin layer around
	C23-style memset_explicit and we might as well just call the
	C23 standard function; that’s more forward-looking.
	* admin/merge-gnulib (GNULIB_MODULES):
	Remove explicit_bzero, and add memset_explicit.
	* lib/explicit_bzero.c, m4/explicit_bzero.m4:
	Remove these files, which were copied from Gnulib.
	* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
	* src/gnutls.c (gnutls_symmetric_aead):
	Use memset_explicit instead of explicit_bzero.

2022-12-18  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2022-12-18  Paul Eggert  <eggert@cs.ucla.edu>

	Port better to glibc 2.28+ renameat2

	* configure.ac: Check for renameat2.
	* src/sysdep.c (renameat_noreplace): Prefer renameat2 (supplied by
	glibc 2.28 and later) to doing the syscall by hand.

2022-12-17  Philip Kaludercic  <philipk@posteo.net>

	* lisp/emacs-lisp/package.el (package-report-bug): Autoload it.

2022-12-17  Po Lu  <luangruo@yahoo.com>

	Minor improvements to frame synchronization

	* src/xterm.c (x_sync_wait_for_frame_drawn_event): Update
	compositor bypass property if frame synchronization is being
	disabled.

2022-12-16  Mattias Engdegård  <mattiase@acm.org>

	Use equal and member instead of eq and memq

	* lisp/cedet/semantic/complete.el (semantic-displayer-show-request):
	* lisp/descr-text.el (describe-char-categories):
	* lisp/mh-e/mh-identity.el (mh-select-identity):
	* lisp/transient.el (transient--delay-post-command)
	(transient--post-command):
	* lisp/vc/vc-git.el (vc-git-create-tag):
	* test/lisp/emacs-lisp/cl-lib-tests.el
	(cl-lib-nth-value-test-multiple-values):
	* lisp/emulation/viper-cmd.el (viper-preserve-cursor-color):
	Use `equal` instead of `eq` and `member` instead of `memq` where
	the comparison is with literals without guaranteed identity.
	In some cases this change corrects evident bugs, in others it is
	mostly cosmetic.

2022-12-16  Mattias Engdegård  <mattiase@acm.org>

	Elide broken but unnecessary `if` optimizations

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-if):
	Remove explicit clauses purposing to simplify

	    (if X nil t) -> (not X)
	    (if X t nil) -> (not (not X))

	but never did so because of a coding mistake (eq instead of equal),
	found by a recently added warning.  They weren't actually needed
	thanks to the optimizer's fixpoint iteration: we eventually get the
	same results through

	    (if X nil t) -> (if (not X) t nil) -> (if (not X) t) -> (not X)
	    (if X t nil) -> (if X t) -> (not (not X))

2022-12-16  Mattias Engdegård  <mattiase@acm.org>

	alist-get testfn argument evaluation correction

	* lisp/emacs-lisp/gv.el (alist-get):
	Evaluate TESTFN exactly once (previously up to 3 times).
	Reduce the macro-expansion to include a call to either assoc or assq,
	not both; this reduces the generated code size in some cases.

2022-12-16  Eli Zaretskii  <eliz@gnu.org>

	New option for selecting symbols by double-clicking

	* lisp/mouse.el (mouse-1-double-click-prefer-symbols): New user
	option.
	(mouse-skip-word): If 'mouse-1-double-click-prefer-symbols' is
	non-nil, skip over the entire symbol at point.  (Bug#60080)

2022-12-16  Mattias Engdegård  <mattiase@acm.org>

	Closures are always non-nil

	* lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp):
	Treat closures as true in boolean context.

2022-12-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	tab-bar.el: Fix "void-function cl--set-substring" error

	* lisp/tab-bar.el: Use #' to quote function names.
	Try and fit within 80 columns.
	(tab-bar--load-buttons): Silence compiler warnings about `icons` functions.
	(tab-bar-auto-width): Avoid the use of `substring` as a gv-place
	because it requires `cl-lib` which we don't (want to) preload.
	[ Maybe a better solution would be to not preload tab-bar.el.  ]

2022-12-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	033071692c7 ; Fix typos
	f4a513344d9 Add lambda_expression-rule to java-ts-mode (bug#60091)
	546aed35434 eglot: Add support for new language server csharp-ls
	cb761eb7ac4 Use the new tree-sitter commands
	037407ad95a Add "function" feature to python-ts-mode (bug#59977)
	fee2efe1b03 Add go-ts-mode and go-mod-ts-mode (Bug#60025)
	e8f7ab67ad1 Add basic support for hideshow in python-ts-mode (bug#60044)
	cac070b23e4 Add "this" keyword to java-ts-mode (bug#60086)
	c8d75046a2f When completing relative project file names, use relative...
	3b618d0e3ed Avoid segfaults due to invalid selected-window's buffer

	# Conflicts:
	#	lisp/progmodes/sh-script.el

2022-12-16  Stefan Kangas  <stefankangas@gmail.com>

	Fix typo in rcirc function name

	* lisp/net/rcirc.el (rcirc-format-strike-through): Rename from
	'rcirc-format-strike-trough'.  Make old name into obsolete
	function alias.  Update all uses.

2022-12-16  Stefan Kangas  <stefankangas@gmail.com>

	Fix typo in rcirc variable name

	* lisp/net/rcirc.el (rcirc-track-abbreviate-flag): Rename from
	misspelled 'rcirc-track-abbrevate-flag'.  Make old name into
	obsolete variable alias.
	* doc/misc/rcirc.texi (Channels): Update above variable name.

2022-12-16  Juanma Barranquero  <lekktu@gmail.com>

	Fix lisp/bs.el change in commit e0a057c16b of 2022-12-07

	* lisp/bs.el (bs-default-action-list): Before creating a window
	first try `display-buffer-reuse-window', but make sure it never
	chooses a window in another frame.

2022-12-16  Jim Porter  <jporterbugs@gmail.com>

	Add support for the "splice operator" in Eshell

	This allows splicing lists in-place in argument lists, which is
	particularly important when defining aliases using the '$*' special
	variable (bug#59960).

	* lisp/eshell/esh-var.el (eshell-parse-variable): Add support for the
	splice operator.
	(eshell-interpolate-variable): Let 'eshell-parse-variable' handle
	adding 'eshell-escape-arg'.
	(eshell-complete-variable-reference): Handle the splice operator.

	* lisp/eshell/esh-arg.el (eshell-concat-groups)
	(eshell-prepare-splice): New functions...
	(eshell-resolve-current-argument): ... use them.
	(eshell-splice-args): New function.

	* lisp/eshell/esh-cmd.el (eshell-rewrite-named-command): Handle
	'eshell-splice-args'.

	* lisp/eshell/esh-util.el (eshell-list-to-string): New function...
	(eshell-flatten-and-stringify): ... use it.

	* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Remove
	'eshell-splice-args' sigils in Eshell command forms so that we can
	perform completion on splice-expansions.

	* lisp/eshell/em-unix.el (eshell-complete-host-reference): Don't try
	to complete arguments containing "$@".

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-list-var)
	(esh-var-test/interp-list-var-concat, esh-var-test/interp-var-splice)
	(esh-var-test/interp-var-splice-concat)
	(esh-var-test/quoted-interp-list-var)
	(esh-var-test/quoted-interp-list-var-concat)
	(esh-var-test/quoted-interp-var-splice)
	(esh-var-test/quoted-interp-var-splice-concat): New tests.

	* test/lisp/eshell/em-alias-tests.el
	(em-alias-test/alias-all-args-var-splice): New test.

	* doc/misc/eshell.texi (Dollars Expansion): Explain the splice
	operator.
	(Aliases): Expand documentation and use '$@*'.
	(Built-ins, Bugs and Ideas): Use '$@*' where appropriate.

	* etc/NEWS: Announce this change.

2022-12-16  Jim Porter  <jporterbugs@gmail.com>

	Support completion of variables with the length operator in Eshell

	These are forms like '$#VARIABLE'.

	* lisp/eshell/esh-var.el (eshell-complete-variable-reference): Support
	the length operator.

2022-12-16  Juanma Barranquero  <lekktu@gmail.com>

	* lisp/bs.el: Use modern height preserving method instead of hooks

	* lisp/bs.el (bs--track-window-changes, bs--remove-hooks): Remove.
	(bs-mode): Do not set window-change tracking hooks.
	(bs--set-window-height): Pass PRESERVE-SIZE to `fit-window-to-buffer'.

2022-12-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	99aa00e6e34 Revert 21b387c39bd with last-minute hasty changes (bug#60...
	386d6e74d83 Replace an erroneous eq with an equal in cc-defs.el
	eb069470631 * lisp/tab-bar.el ([tab-bar]): Use 'make-sparse-keymap' i...
	26243f7b65e compile.el: Fix regression with nb of errors in modeline
	6e2923d80f8 Make tab-bar-tab-group-format-function backwards-compatib...
	b211a63455c Make tab-bar-tab-group-format-function also handle curren...
	367022f316e Ensure package directories for source packages from check...
	3a633bdd6df ; * etc/NEWS: Fix recent changes.
	6aa5d16c643 * test/README (SELECTOR): Add eglot-tests.el to remote fi...
	bb27be36ddf Fix bug#60060 in Tramp
	d4c2aa4f913 ; * lisp/net/tramp-crypt.el: Fix comment.
	8404253d17a * .gitignore: Ignore GDB history files.
	12684c3a199 Mention 'tree-sitter' in user manual and NEWS
	49d7e0cec6a ; * etc/NEWS: Rearrange entries for tree-sitter supported...
	0ad2112a2f0 ; Announce 'toml-ts-mode' in NEWS.

	# Conflicts:
	#	etc/NEWS

2022-12-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	a15cd55044c ; Don't quote nil in comments
	da39200c4be ; Checkdoc fixes in dired-aux.el
	fd403a5c5a8 Fix ruby-add-log-current-method after nested class defini...
	2ca06aed7b3 Add indent rules to js/typescript/tsx-ts-mode (bug#60074)
	a54d5f500c1 Improve fontification in csharp-ts-mode (bug#59897)
	3db2f560bb7 Revert "Add expression for generic_name in csharp-ts-mode"
	1985762fbd7 Introduce support for TOML config-format
	622838b957e Fix handling of % when searching in .tex or .dtx files
	3b226b60248 Treat C++ classes as defuns in C Tree-sitter mode (bug#60...
	480f41c7deb Add < and > to the syntax table in c++-ts-mode (bug#60049)
	fbf0d3b796a Improve fontifications in Typescript mode
	f93a5180a61 Update the documentation of overlays (bug#59996)
	d51b66ed540 ; Improve description of scoping and let-bindings
	752f9dde631 ; Fix a typo in window.el
	102a3e3b445 Don't send erc-sasl-user as USER command argument
	f0c90888781 Set erc-network to a "given" ID instead of failing
	09c0c6b2ba3 Limit casemapping to appropriate ranges in ERC
	44b04c0ac1c Actually accept non-symbols as IDs in erc-open
	75f26646d4a ; Be nicer when updating browse-url var in erc-compat
	0155fc67be3 Respect a nil erc-session-password when reconnecting
	9ac80e8a6e4 Add dedicated auth-source section in ERC manual
	2d96a18cd09 ; * lisp/emacs-lisp/shortdoc.el: fix mistakes in previous...
	1d3cbba7dfa ; * lisp/progmodes/cmake-ts-mode.el (auto-mode-alist): $ ...
	0cc199f1a61 Better shortdoc examples
	931d97bf563 Shortdoc: read and evaluate strings after :eval
	be165f75332 Fix Tramp tests in eglot-tests, prefix tests uniquely
	8c30cb90ba9 * lisp/vc/vc-git.el (vc-git-checkin): Use make-nearby-tem...
	3efe4df1d20 Delete temp files after icalendar tests

	# Conflicts:
	#	etc/NEWS

2022-12-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	fafcf02c856 Fix syntax tables of tree-sitter modes (bug#59807)
	91b8d9b7db4 ; * admin/notes/tree-sitter/build-module/build.sh: Minor ...
	1b0e282a7f8 ; Comment and stylistic change in treesit.el
	489b02d03cf * doc/misc/Makefile.in (need_emacsver): Add use-package.

2022-12-15  Po Lu  <luangruo@yahoo.com>

	Handle selection transfer errors earlier

	* src/xselect.c (x_decline_selection_request, struct transfer)
	(struct x_selection_request, x_cancel_selection_transfer)
	(x_start_selection_transfer, x_continue_selection_transfer):
	Give the right serial to x_ignore_errors_for_next_request.
	(x_handle_selection_error): New function.
	(x_reply_selection_request): Give the right serial to
	x_ignore_errors_for_next_request.
	* src/xterm.c (x_ignore_errors_for_next_request): New arg
	`selection_serial'.  All callers changed.
	(x_error_handler): Call selection error handler.
	* src/xterm.h (struct x_failable_request): New field
	`selection_serial'.

2022-12-14  Stefan Kangas  <stefankangas@gmail.com>

	Mark flymake diagnostic modes as non-interactive

	* lisp/progmodes/flymake.el (flymake-diagnostics-buffer-mode)
	(flymake-project-diagnostics-mode): Mark modes as non-interactive.

2022-12-14  Mattias Engdegård  <mattiase@acm.org>

	Warn about unmatchable constant args to `eq`, `memq` etc

	Add a byte-compiler warning about attempts to compare literal values
	with undefined identity relation to other values.  For example:

	  (eq x 2.0)
	  (memq x '("a" (b) [c]))

	Such incomparable values include all literal conses, strings, vectors,
	records and (except for eql and memql) floats and bignums.
	The warning currently applies to eq, eql, memq, memql, assq, rassq,
	remq and delq.

	* lisp/emacs-lisp/bytecomp.el (bytecomp--dodgy-eq-arg)
	(bytecomp--value-type-description, bytecomp--arg-type-description)
	(bytecomp--warn-dodgy-eq-arg, bytecomp--check-eq-args)
	(bytecomp--check-memq-args): New.
	(eq, eql, memq, memql, assq, rassq, remq, delq):
	Set compiler-macro property.
	* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings):
	Amend doc string.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp--with-warning-test): Fix text-quoting-style and expand
	re-warning so that it doesn't need to be a literal.
	(bytecomp-warn-dodgy-args-eq, bytecomp-warn-dodgy-args-memq):
	New tests.

2022-12-14  Eli Zaretskii  <eliz@gnu.org>

	Make proced-tests work on more systems

	* test/lisp/proced-tests.el (proced-format-test)
	(proced-update-test, proced-revert-test, proced-color-test):
	Remove the 'skip-unless' condition, as it is unnecessary.
	(proced-refine-test, proced-refine-with-update-test): Use PID, not
	Args, as the column to test, as PID is more portable.

2022-12-14  Laurence Warne  <laurencewarne@gmail.com>

	Add tests for proced

	* test/lisp/proced-tests.el: New file.

2022-12-14  Laurence Warne  <laurencewarne@gmail.com>

	Make proced-update preserve refinements

	Make proced-update preserve refinements by creating a new buffer local
	variable proced-refinements which stores information about the current
	refinements and is used by proced-update to further refine
	proced-process-alist in the case it is non-nil.  The result is that
	refinements are not immediately cleared when a proced buffer is
	updated with proced-auto-update-flag non-nil.  proced-revert
	maintains its current behavior of clearing any active refinements.

	* lisp/proced.el (proced-refinements): New buffer local variable
	which tracks the current refinements.
	(proced-refine): Set 'proced-refinements' variable and defer setting of
	'proced-process-alist' to 'proced-update'.
	(proced-update): Take into account 'proced-refinements' when setting
	'proced-process-alist'.
	(proced-revert): Set 'proced-refinements' to nil prior to calling
	'proced-update'.

2022-12-14  Po Lu  <luangruo@yahoo.com>

	Work around primary selection clobbering during xterm DND

	* src/xterm.c (x_dnd_do_unsupported_drop): Set `deactivate-mark'
	to `dont-save'.  Explain why.
	(syms_of_xterm): New DEFSYM `dont-save'.

2022-12-14  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	cd5856e4038 Fix bug when calling `rgrep` non-interactively
	ba4bdd6a259 Adapt Tramp specific tests in eglot-tests.el
	1d5c35c8e46 * lisp/textmodes/texinfo.el (texinfo-flymake): Improve do...
	a99d0e7e6c9 Support a function in the BUFFER-LIST arg of list-buffers...
	def51dd6458 ; Fix typos
	4980ed7a6d9 Don't allow lazy highlight from recursive minibuffers
	4ef8b9f5441 Improve resetting face attributes when looking for suitab...
	c4b8bc90a8e ; Fix typos in doc strings
	c45eb138451 ; * lisp/bs.el (bs-attributes-list): Doc fix
	d6adaf487d8 Add lexical-binding to example package header
	03ad1a92a2d Add improved tree-sitter navigation
	a5272e2a7cc ; * test/src/treesit-tests.el: Add outline headers.
	489bcacc7c3 Add cross-reference to flush-lines
	0f9e6532b14 Use font-lock-number-face for numeric values in csharp-mode
	4bccb7b211e Make treesit-query-validate create a read-only buffer
	c0fe6c72cec Improve dockerfile-ts-mode imenu generation (Bug#59979)
	631908f7017 Add "->" to python--treesit-operators (bug#59968)
	5d4274d9b65 ; * admin/notes/tree-sitter/build-module/build.sh: Add -f...
	d264b75669d Align C++ access specifiers to their enclosing class/stru...
	ca67d988d87 Add cmake-ts-mode
	8ec923775de Tweak various ts-mode's indent and fontification (bug#59931)
	647b6a8099f Add expression for generic_name in csharp-ts-mode (bug#59...
	5b178efd85a ; Adjust eglot test to recent autopep8/pycodestyle
	58b8ed8b55c ; Avoid compilation warning on MS-Windows
	40c23c11e88 * lisp/outline.el: Fix the value 'insert' of outline-mino...
	527eb11de20 * lisp/minibuffer.el (completions-group-separator): Rever...
	42d740fb2cb ; Skip two eglot tests when typescript is missing
	19ef86f775a ; Remove outdated text describing overlays
	081bf583007 Skip Eglot rust-analyzer tests if 'cargo' isn't available

	# Conflicts:
	#	lisp/progmodes/typescript-ts-mode.el
	#	lisp/treesit.el

2022-12-12  Po Lu  <luangruo@yahoo.com>

	Add variable to make resizing frames sometimes faster

	* etc/PROBLEMS: Add documentation about new variable.
	* src/xterm.c (x_set_offset, x_set_window_size_1): Respect new
	variable.
	(syms_of_xterm): Add a new variable to prevent Emacs from
	syncing upon resize or movement.

2022-12-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	06ef030f936 use-package.texi: New section "Manual installation"
	f4ce6fa7d3e Revert "Revert "Improve last change to xfaces.c" (05ece1e...
	b8d2ec920f3 Revert "Improve last change to xfaces.c" (05ece1eb8b)
	24c8c28ae61 Do not pare arguments unnecessarily.
	9c0d7bb73bb Add automated tests for Eglot
	d3669cfe156 Eglot: allow skipping compile-time warnings about LSP int...
	04b7e01885d ; project.el: Bump version.
	f2876014adb Add customizale faces for tree-sitter explorer
	3e349ee1198 Fix error message when installing non-existent package
	733cdeabfb9 Don't use diff-mode buffer as a patch when it's visiting ...
	87475f4af21 Fix pcase rx patterns using rx-let bindings (bug#59814)
	4893a156317 Fix use-package-defaults defcustom type (bug#59941)
	074b7e6f4d1 ; * lisp/use-package/bind-key.el: Remove ineffective back...
	864ed9dfa1f ; * lisp/progmodes/dockerfile-ts-mode.el: use \' instead ...
	9f7e5584a4f * lisp/language/indian.el: Improve Brahmi composition rul...
	78ad33bb05f ; Minor cleanup of last change in xfaces.c.
	2024ade271d ; Improve docs of relaxing face-font attribute match (bug...

2022-12-11  Theodor Thornhill  <theo@thornhill.no>

	Add prog-fill-reindent-defun (bug#59664)

	Introduce a new command that aims to reindent code in a defun, or fill
	a paragraph of text.  The command uses treesit.el when available,
	otherwise falls back to using syntax-ppss and regexps.  Treesit.el
	needs a new variable that is intended to be set by the major modes so
	that this and other future functions can know what kind of node we are
	looking at.

	* doc/emacs/programs.texi: Mention the new command.
	* etc/NEWS: Mention the new command.
	* lisp/progmodes/c-ts-mode.el (c++-ts-mode): Add regexp for the new
	variable.
	* lisp/progmodes/csharp-mode.el (csharp-ts-mode): Add regexp for the
	new variable.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode): Add regexp for the
	new variable.
	* lisp/progmodes/js.el (js-ts-mode): Add regexp for the new variable.
	* lisp/progmodes/prog-mode.el (prog-mode-map): Bind the new command by
	default.
	(prog-fill-reindent-defun): New command.
	* lisp/progmodes/sh-script.el (bash-ts-mode): Add regexp for the new
	variable.
	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode): Add
	regexp for the new variable.
	* lisp/treesit.el (treesit-text-type-regexp): New variable.

2022-12-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/eshell/esh-opt.el (eshell--do-opts): Demote usage-msg to `user-error`

2022-12-11  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix manual noverlay tests (again)

	* src/itree.c (itree_iterator_start): Fix docstring typo.
	* test/manual/noverlay/itree-tests.c: Stop defining unused
	ITREE_DEBUG.  Replace removed names and APIs with current ones,
	e.g. interval_tree_init is now called itree_init, and
	itree_iterator_finish no longer exists.  Ensure preconditions of
	itree API are satisfied before use, e.g. by zero-initializing
	instances of itree_node before inserting them into a tree.

2022-12-11  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	f221105723d ; * doc/misc/use-package.texi: Prepare for GNU ELPA.

2022-12-11  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	80122cde3db ; Unbreak bootstrap

	# Conflicts:
	#	lisp/ldefs-boot.el

2022-12-11  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	05ece1eb8b7 Improve last change to xfaces.c

2022-12-11  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	79659416f95 ; * admin/git-bisect-start: Fix commit hash
	a9037aa8e81 ; Fix use-package-ensure-system-package macOS footnote
	7d787564c08 Actually improve detection of long lines
	118465f6fed ; Improve checkdoc.el commentary section
	30e3cb21351 Unset the weight/slant/width in the spec when realizing a...
	01154166057 Update to Org 9.6-31-g954a95
	26a8644a587 ; tabulated-list.el: Remove duplicate obsolete declaration
	29b9aeae32a ; * doc/misc/use-package.texi: Fix misplaced @end group.
	3c5a41b2008 ; * doc/lispref/keymaps.texi (Searching Keymaps): Fix a t...
	1753da24cd4 Fix infloop in 'shell-resync-dirs' with tcsh
	2f1269c3331 ; Fix some minor issues in use-package.texi

2022-12-11  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	44c5f361497 ; Fix two byte-compiler warnings
	a8ee046fb50 Ensure 'package-vc--version' always returns a version
	022ab1061b2 Ensure 'package-vc--main-file' always returns an existing...
	357fe91996b Check if package already exists before installing from ch...
	5e8bc79f6b2 ; Fix reference in docstring to 'package-vc-install-from-...
	af88b00b19c Refresh the package quickstart file in package-vc
	5a092c8e461 ; * admin/notes/tree-sitter/starter-guide (Indent): Minor...
	ebef8905b0d Make indirect buffers use tree-sitter parsers of their ba...
	8f53fa10d94 Fontify "this" as a keyword in c++-ts-mode (bug#59924)
	8de8f1dc051 Add class_body indentation for typescript (bug#59680)
	839341d7370 Make more granular defun-type-regexp (bug#59873)
	8f49137c9bf Add dockerfile-ts-mode (Bug#59894)
	1014bcc8e32 Fix fontification of method-invocations in js-ts-mode (bu...
	7141920c6af Fix escape-sequence feature in typescript-ts-mode (bug#59...
	4df35e3491c Improve fontification in csharp-ts-mode (bug#59909)
	33a8415eb7e Use 'project--value-in-dir' for 'project-vc-include-untra...
	594267395d5 Update Turkish Hello
	940d9070e97 Support newer glib versions (Bug#59061)
	0bd26abf7fb ; * doc/misc/use-package.texi: Fix @file.
	bcf235acd58 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
	2ea7a357fd1 ; * doc/misc/use-package.texi: Fix @acronym.
	d268ab1c5d7 Bring back the project--value-in-dir logic

2022-12-11  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	5fbd12ff494 Adapt manual names in emacs-news-mode
	b36bc692671 ; * etc/NEWS: Fix typos.
	f626b9f3856 ; * doc/misc/use-package.texi: Fix indexing.
	56a6712bd6f ; * lisp/erc/erc.el (erc-default-target): Fix comment.
	dcf69a1da4a Respect some spaces in auth-source-pass--match-regexp
	acd462b0306 ; Improve the use-package manual
	801c1c22de8 ; Prefer HTTPS to HTTP in some URLs
	74a009dd96a Eglot: Handle LSP progress with Emacs progress reporters ...
	0cfeb1c2bc9 Eglot: cleanup whitespace and indentation
	465a9e78b96 Better test-custom-opts diagnostics
	bdbb7099784 ; Fix groff warnings in man pages
	d3d9676bf88 New script admin/check-man-pages
	c2aea9d1323 ; Mention flush-lines in kill-matching-lines docstring
	f5c3585e4dd ; Fix typos
	58a483960dd ; Improve use-package-autoload-keymap docstring

	# Conflicts:
	#	etc/NEWS

2022-12-10  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix GDB save history (bug#59838)

	* lisp/progmodes/gdb-mi.el (gdb-reset): Save GDB comint history.
	(gdb-delchar-or-quit): Remove useless progn and add comment.

2022-12-10  Gustaf Waldemarson  <gustaf.waldemarson@gmail.com>

	gdb-mi.el: Configure variable order and length in local-vars window

	This changes allows users to configure the order of various properties
	as well as truncating their length.  The full description of each
	property is available as a help-text (tooltip).
	* lisp/progmodes/gdb-mi.el (gdb-locals-table-row-config): New user
	option.
	(gdb-locals-value-filter): Don't limit the values here.
	(gdb-locals-table-columns-list): New function.
	(gdb-locals-handler-custom): Call it.  (Bug#59730)

	* etc/NEWS: Announce the change.

2022-12-10  Po Lu  <luangruo@yahoo.com>

	Improve X error messages

	* src/xterm.c (x_connection_closed): Don't print handler blurb
	if nothing is there to be printed.

2022-12-10  Eli Zaretskii  <eliz@gnu.org>

	Resurrect changes omitted by a recent merge from emacs-29 (bug#59921)

	This includes the changes for the following commits:

	  670daa8b
	  b429e524
	  c83c95634e7
	  6479691cf07
	  b710ca62c00
	  d31a2539834
	  a669d5fae54
	  f7262b8f81e
	  fef17557365
	  bf81df86e52
	  bfc00f1c120
	  d2411615e8b
	  dcf69a1d

2022-12-09  Michael Albinus  <michael.albinus@gmx.de>

	* admin/notes/git-workflow: Replace emacs-28 by emacs-29 branch.

2022-12-09  Po Lu  <luangruo@yahoo.com>

	Improve some behavior when the X server does not trust Emacs

	* src/xterm.c (x_dnd_begin_drag_and_drop): Display error when
	Emacs is untrusted instead of hanging indefinitely.
	(x_focus_frame): Simply return instead of wasting time when
	Emacs is untrusted.

2022-12-09  Sean Whitton  <spwhitton@spwhitton.name>

	Make eshell-read-aliases-list an interactive command

	* lisp/eshell/em-alias.el (eshell-read-aliases-list): Add interactive
	specification.  Note in docstring that the command is useful after
	manually editing eshell-aliases-file.
	* etc/NEWS:
	* doc/misc/eshell.texi (Aliases): Document the change.

2022-12-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	5b640f0abd3 Improve :delight keyword example in use-package manual
	c417fe4df3b ; Refer to the manual in use-package docstring
	0b3116971af Clarify :after keyword in use-package docstring
	a17a6036dd4 Add conditional loading examples to use-package manual

2022-12-09  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	67ef92fb0e9 Revert "; * src/emacs.c (main): Improvements to last chan...
	6ccdda3df2e server-eval-at: Don't call server--file-name
	90895773293 ; Improve use-package Commentary sections
	15dda8cd5b3 ; Don't say to require bind-key in use-package manual
	26267040549 ; Normalize GPLv3 license statements in new files

2022-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespacing issues in bind-key.el

	* lisp/use-package/bind-key.el (get-binding-description)
	(compare-keybindings): Rename from this...
	(bind-key--get-binding-description)
	(bind-key--compare-keybindings): ...to this.

2022-12-08  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-29

	e950f5a663 Merge branch 'feature/use-package' into emacs-29
	5bcd0cee0f * etc/USE-PACKAGE-NEWS: Delete file.
	6bb4267a54 * admin/git-bisect-start: Prune use-package merge commits.
	b9fa81514f ; Minor doc fixes in bind-key.el
	15fb115551 Update use-package defgroups
	4be96c9dcb Drop key-chord.el support from use-package
	9c21eae60c ; lisp/progmodes/java-ts-mode.el: Fix more typos.
	2659311e06 ; * lisp/progmodes/java-ts-mode.el (java-ts-mode--keywords...
	b4a3724d3b Remove unneeded (require 'edebug) from which-func.el
	5899cac111 Change use-package custom :group to `initialization`
	8fb2afe051 ; Fix typos
	a37df90276 Treat escaped newlines in Eshell as the empty string
	d3e9bd3b57 ; Document use-package-reset-statistics
	c65e087068 ; use-package: Improve :ensure-system-package docstrings
	141fe8b827 use-package: Improve :mode keyword documentation
	888558ec42 Improve bind-keys* and override-global-mode docstrings
	c774e83e36 ; * src/emacs.c (main): Improvements to last change.
	537f11f8cd ; * doc/misc/use-package.texi: Improve indexing.
	98e54f597e Add new use-package manual
	01bfbd186a Fix use-package tests
	97c8a58787 * doc/misc/Makefile.in (INFO_COMMON): Add use-package.
	500c459eff ; * etc/NEWS: Mention use-package.
	4a1e9d61b5 ; Merge from https://github.com/jwiegley/use-package
	58cc931e92 Merge pull request from skangas/revert-for-copyright
	c74b5c16f8 Merge pull request from skangas/revert-for-copyright2
	ebbd98edb3 Revert "Add: 'local' keyword"
	8296164eab Remove tests lacking a copyright assignment for now
	a6cbfdd8f1 Merge pull request from skangas/package-requires
	efae6048dd Add package keyword from finder-known-keywords
	06f92d1cc0 Fix Package-Requires for bind-{chord,key}.el
	e42c8479ec Merge pull request from skangas/dir-locals
	7b689942f0 Merge pull request from skangas/fix-headers
	30fa366737 Add .dir-locals.el
	79c2c3a3ad Delete redundant headers
	2399d0d5ce Normalize GPLv3 license statements
	7087a97a24 Merge pull request from jwiegley/revert-1019-johnw/multi-k...
	3e81af80a2 Revert "Allow multiple keymaps in :map argument"
	f4ee1c3839 Merge pull request from jwiegley/johnw/multi-keymap
	49fffe7cf4 Merge remote-tracking branch 'origin/master' into pr-830
	cf8ab8b52e Merge pull request from skangas/texinfo-wip
	2efc869866 Merge branch 'master' into texinfo-wip
	9b476ae71c Merge pull request from skangas/gnu-elpa
	8cf8631c69 Fix makeinfo warnings
	a6b1b62763 Use two spaces to end sentences
	6a26c55d70 Recommend GNU ELPA over MELPA
	4e8b72efc8 manual: Regenerate texi file
	ae301ad36d Merge pull request from skangas/checkdoc
	5dad5ff0fe Merge pull request from skangas/ci
	ff30d22909 Various checkdoc fixes
	971634e3f9 Merge pull request from bhankas/master
	43254ae62f Fix building on Emacs 24.3
	45e6ee1371 Fix tests on Emacs 26 or older
	7122ac5397 Bump version to 2.4.4
	6b25a41bc6 Merge pull request from andreyorst/face-spec-set-third-arg...
	76a5ce5d86 Allow passing the SPEC-TYPE argument via :custom-face
	67d7d1fda0 Merge pull request from bhankas/master
	370890e518 Bump version to 2.4.3
	2ee9b31ca4 bind-key.el: Bump version for ELPA
	407b1bf4f0 Merge pull request from andreyorst/face-spec-set
	0be7f5dd53 Merge pull request from bhankas/master
	abd655c99e Update version to 2.4.2
	9188b3edf1 Merge pull request from bhankas/master
	0fafd98513 Update copyright for submission to ELPA
	6b344a9197 Use face-spec-set instead of custom-set-faces
	c0338e06cd Merge pull request from conao3/add-commands-keyword
	ec96b47664 bind-keys supports passing a list of keymaps as :map argument
	daa124e1cc Fix bind-chords docs: :map argument may be a list of keymaps
	4107bbfbdb Merge pull request from sdwolfz/native-compiler-warning
	1494f65f61 Fix emacs native compilation warning for bind-key
	c12deb31fe Merge pull request from CeleritasCelery/master
	d4aeda77a9 Merge pull request from sdwolfz/native-compiler-warning
	3feedce08d Fix emacs native compilation warning
	6c2fdaffd9 Revert "Remove use-package-font-lock-keywords"
	09e837dfae Merge pull request from belak/remove-extra-font-lock-keywords
	89d6e7a5ec Merge pull request from realcomplex/override-global-mode-fix
	a05b9e28ed Go back to making `override-global-mode` non-global
	85c1287c26 Make sure that bind-key's `override-global-mode` is initia...
	3dd5bee4aa Merge pull request from tarsiiformes/quote-quote
	53c1889342 Quote single quotes in docstrings or use different quoting
	e8626100f3 Merge pull request from tarsiiformes/cleanup-manual
	835fdb16be manual: Regenerate texi file
	0dc78ef4c8 Merge pull request from conao3/fix-declare-style
	2967849846 Merge pull request from waymondo/ensure-system-packages-us...
	28e7b96fcf Merge pull request from waymondo/use-package-hook-handler-...
	b1fbfe66eb Merge pull request from waymondo/use-package-chords-autolo...
	cf3bfecced Merge pull request from matzebond/master
	a0ba027ee5 Merge pull request from wcy123/master
	ca426a7732 Merge pull request from phst/lex
	f270623768 Merge pull request from phst/flet
	0503611b71 Merge pull request from conao3/add-custom-face-description
	e9b297a9fa Merge pull request from iaeerfung/master
	6484e5fdfe Merge pull request from wyuenho/set-default-use-package-en...
	a7259411f6 Merge pull request from wyuenho/statistics-sorting
	de0c8c36c7 Merge pull request from Hugo-Heagren/bind-keys-repeat-map
	015c921a2e Merge pull request from danielpza/add-update-custom-package
	b143663f12 Merge pull request from tarsiiformes/silencio
	debab131f0 Merge pull request from DamienCassou/update-texi
	22de8991c1 Merge pull request from skangas/fix-typo
	620fe443c2 Add: 'local' keyword
	4004dde6ea Avoid positional arguments to define-minor-mode
	cb85f9c274 Fix typo in use-package docstring
	30b35d6d62 Update use-package.texi
	9be2580f5f optimization: constant folding for read-kbd-macro
	1143f14d65 bind-keys-form: error for repeat sub-keywords without :rep...
	c4bd2aa3b8 bind-key-form: allow :continue keyword inside repeat map
	5ef327ce9f bind-key-form: allow :exit keyword inside repeat map
	2203246454 bind-keys-form: new keyword :repeat-map, for defining repe...
	ee292b80be Fix tests and documentation for hook
	24c50da3b2 Auto detect mode suffix in hook keyword
	1343783532 feat: add update custom packages command
	f3ff593a84 Properly sort use-package-statistics-report
	c09cb1301b Fix void-variable use-package-enable-imenu-support
	11b2184c8d Remove uses of deprecated ‘flet’ macro
	a35b924054 add testcase
	dbfb3484cd add autoload keyword
	40d2541331 fix docstring. was: invalid function name
	ffa5f0397a Merge pull request from minad/improved-unbind
	5ca7bc321d unbind-key: Ensure that keys are removed from the keymap
	ec750952f4 bind-key: Use new symbols for kmapvar
	a248658910 Merge pull request from tzz/tzz/use-package-use-theme
	2b9536f242 Add use-package-use-theme and avoid missing theme errors
	c425e67a19 Merge pull request from kljohann/custom-use-single-let
	e3938e7b26 Use a single let binding when expanding consecutive :custo...
	e4daf0cd42 Merge pull request from tzz/tzz/remove-use-package-from-cu...
	6b7ab46e57 Remove use-package theme from global list of custom-enable...
	3ffb662dcc Merge pull request from tzz/tzz/set-comment-and-synthetic-...
	a3c310c11a Create new "use-package" themse and use it for :custom wit...
	5ceb51ae19 set property theme-value to avoid saving variable
	3e24a7363b Revert "use-package-core.el: use the Emacs set-default fun...
	8ef7978028 set saved-variable-comment from :custom
	99643f8873 Update version to 2.4.1
	215dd35e49 add multiple and eval :custom-face usage
	4938167bff Remove use-package-font-lock-keywords
	10c6400d34 Merge pull request from wyuenho/patch-1
	5bd7e0ca7d Migrate remaining files to lexical binding
	1f54de9210 Merge branch 'master' into patch-1
	c358eedcf9 Merge pull request from tzz/custom-set-default
	13b1e202bf Update the documentation for :custom as per
	d3f847eaee Fix broken test due to
	2ca2212f73 better tests
	de49954965 add test for
	950068809b Support keymap symbol in bind-key
	3e96664ffe Merge pull request from tzz/custom-set-default
	8c31c57106 use-package-core.el: use the Emacs set-default function to...
	4e72885f85 Merge pull request from jjlee/call-hooks-even-if-no-config
	203d15e34e Merge branch 'master' into call-hooks-even-if-no-config
	218687d897 Merge pull request from nahuel/patch-1
	44c837879e typo, should be a vector, not a bytecode object
	0ec4660f74 Add special value back again, in case needed for backwards...
	f30d5761af Even when there's no :config, run any pre/post config hooks
	91e5d275af Merge pull request from jwiegley/johnw/clarify
	8b8522650e Clarify the documentation for :after
	8e81459dad Merge pull request from DamienCassou/typos
	3a58f53b14 Fix typos
	0456f878fc Merge pull request from tarsiiformes/typos
	8c7fa11a3f Fix typos
	165f2dd968 Use `require', not `load', when byte-compiling ()
	20415fb9be Update tests
	4c8d5f0b21 Switch from `require' to `load' + `featurep'
	27fd32c47b Use `require', not `load', when byte-compiling
	0d720a0f61 update bind-chords to use of eval-after-load when maps dec...
	8f1a345b5b rename function
	8ec41be418 extract use-package-hook-handler-flatten-mode-symbols func...
	4149ec6cfa use `use-package-as-one` for normalizing `:ensure-system-p...
	97f0287e19 Make custom-face evaluate elisp. ()
	c297dfdd20 Make custom-face evaluate elisp
	8fe0ac2983 * use-package-core.el (use-package): fix declare style
	3e36cbfb6d Merge pull request from stribb/master
	95f24f9628 Add a line of documentation for (use-pacakage ... :hook)
	7e40a9c424 Merge pull request from conao3/fix_default_value
	77ad44639f Merge pull request from tarsiiformes/silencio
	fc6fef6869 Silence byte-compiler on Emacs 25
	3f96971feb Merge pull request from jwiegley/use-package-chords-suppre...
	63886cb15f Merge pull request from lrochfort/ensure-system-package_us...
	ca39ed155f [] Install system packages using system-packages-install
	607879e647 prefix argument with _ to suppress Unused lexical argument...
	4a34b41f96 Merge pull request from justbur/autoload-keymap
	c169644637 Merge pull request from jwiegley/ensure-system-package-fil...
	2a8c2ffea2 allow :ensure-system-package to check the presence of file...
	0a4d082054 Merge pull request from killdash9/patch-1
	38dcba6872 Place :chords at beginning of use-package-keywords
	1fb4198933 Merge pull request from killdash9/patch-1
	5fb369c968 Merge branch 'master' into patch-1
	87e26db44f Merge pull request from jabranham/enable-lexical-binding
	bdd7fd3565 Fix use-package-normalize-function
	09b7e8e129 Fix use-package-normalize-function tests
	e2e6f9a44b Enable lexical binding
	cc9ec36f1a Merge pull request from taingra/master
	b1d9ce08a6 Update use-package.texi
	b84a77bcdc Added an Introduction taken from the README
	c980371f6f Correct prefix keys after use-package-autoload-keymap
	36f9a9b9b4 Merge pull request from akhramov/fix/ensure-system-package...
	f38a100917 Ensure system package cleanup
	db35639457 fix gethash default value for use-package-statistics-time
	642417ac05 Merge pull request from andschwa/remap-command
	d2fec5e5e3 Document that remapping commands is supported with bind-key
	85e580a5e4 Merge pull request from akhramov/fix/ensure-system-package...
	9f034a0bcf [] ensure-system-package: honor system-packages customizat...
	dc83e2f035 Update use-package-chords.el
	c9f6cae603 Update use-package-chords.el
	e2a322d870 Merge pull request from waymondo/master
	e5d3826b62 :ensure-system-package allow cdr of cons to be a package n...
	ad601fb49a Merge pull request from valignatev/master
	8a27cd3a8b Encourage installation via https instead of http
	742cf27b0e Merge pull request from DamienCassou/fix-report-again
	69a561b86b Fix compile-time warnings due to the statistics-reporting ...
	2a47998844 Add missing require
	dd8ef12112 Merge pull request from jwiegley/revert-645-fix-report
	cba5a11368 Revert "Fix report"
	b1429951b1 Merge pull request from DamienCassou/fix-report
	b28efb4847 Fix compile-time warnings due to the statistics-reporting ...
	bce655f616 Add missing require
	4cc7f91270 Merge pull request from DamienCassou/tabulated-list
	ae22d74a16 Use a tabulated-list to display package configuration stat...
	76e6d3e8bc Merge pull request from matthewbauer/patch-1
	2250f89ac0 Support ":package" in use-package
	10b4dcb53a Merge pull request from justbur/normalize-fix
	46503b194c Fix usage of plist argument in use-package-normalize-plist
	e379221166 Merge pull request from justbur/ignore-keywords
	09266283b9 Add use-package-ignore-unknown-keywords option
	ab918196fa Revert "Merge pull request from jabranham/lexical-bindings"
	566a2ea3a1 Revert "Move variable bindings to the bottom of each file"
	c29193bf07 Move variable bindings to the bottom of each file
	d21787f1d6 Merge pull request from jabranham/lexical-bindings
	109167e8f5 Don't remove sharp quotes
	2274130b40 Test still requires cl
	4c3abcf4eb Fix byte compiler warnings
	88bcb8b96d Use lexical bindings and remove cl package
	fd8a3510fd Merge pull request from jabranham/system-packages-update
	b7252f8e63 lexical binding
	46ee100327 Prefer non-obsolete var names
	567df21f26 Merge pull request from jabranham/fix-byte-compiler
	8a6430835f Prefer org-table-align to orgtbl-ctrl-c-ctrl-c
	13a9e339f2 Merge pull request from justbur/elisp-cap
	44cb99fcc7 Merge pull request from nickmccurdy/render-report-table
	1fdfd46fb2 Fix sanity check for correct :custom-face format
	9638870f53 Handle automatic macro expansion by elisp-completion-at-point
	13fb5f4f2e Guard a call to display-warning with ignore
	cb15dffbd7 Render the use-package-report table using Org
	2d226310f1 All the second argument in use-package-defaults lists to b...
	51eceb4238 Add a test related to
	31fa2f24a1 Add more tests related to issue
	4aa9b0cd6a Minor simplification of a function
	a4d2e77961 bind-keys fixes related to
	3850281f88 Add a clarifying test for
	ec84ed0dfb Fix a scoping issues with multiple occurrences of :bind
	5a02d61ac6 Start building a use-package linter in use-package-lint.el
	7e458c640c use-package-normalize/:disabled has the wrong number of ar...
	0068501aa0 Remove several unnecessary calls to `ignore'
	ae0d243681 Add another :bind test
	e6c54b54ab Add further note to NEWS.md
	4714380696 Add tests for two more issues
	93231ecbab Fix the tests
	8cf7b17dae Clarify a note in NEWS.md
	8fefa49d39 Changes to the way auto-deferral is indicated
	80e8a599b4 Introduce new customization variable `use-package-merge-ke...
	96ecfab9e4 Use cl-gentemp in another place
	7803571280 Correctly fix the problem of unreferenced symbols after co...
	20694696b2 Revert "Pre-expand lexical-let, since otherwise it require...
	7cc17cee8f Pre-expand lexical-let, since otherwise it requires cl to ...
	71fc224961 Add documentation for `use-package-report'
	beee6b8d4d use-package-defaults predicate must also receive the packa...
	75428f870d Remove Package-Requires for diminish and delight, as these...
	9a6d8a4cf2 Add a comment as to why max-lisp-eval-depth is set in -tes...
	b001edf162 Add missing autoload cookie, and make lack of a normalizer...
	ce36e68817 Don't compute the verbose debug text unless it's requested
	e8a7ae1ea1 Add :bind test for a single cons cell
	2a85d81c47 Add support for gathering statistics on use-package declar...
	894e95aa4b Respect keyword ordering in use-package-deferring-keywords
	0939993935 Clarify :config with setq versus :custom
	c272c6b56b Update some GPL version references
	2cd3ebd5d5 Allow the expansion of :after (:or foo bar) to be byte-com...
	b2b91af2e5 Make the expanded text for :after cleaner
	de12a5ae86 Several changes as suggested by flycheck
	3343cca33b Don't auto-defer if the package itself was given to :load
	2a9904b9e8 Enable all tests on Travis
	0c110ebd67 Allow `:load t' to mean the same as :load of the package name
	4882df8285 Whitespace change
	7b8e94a61a Default running-on-travis to t
	5f13924885 Enable 4 tests that work when not run on Travis
	cdb250e766 For now, stub out test that breaks Travis
	7c3a6cd70b Stub some referenced variables, for Travis
	b5a0cd4f30 Add note in NEWS.md about :requires vs. :if
	b25a305c58 Lower the priority of :if/:when/:unless in use-package-key...
	64ffdb6863 Enhance fix-expansion to take surrounding let bindings int...
	65caa3b423 Rewrite normalization of :bind and :bind*
	725d749b7c Normalize errors should be errors, that are then caught by...
	0a628a2767 Avoid using pcase and many other macros in macro-expanded ...
	a090961f10 Fix bad interaction between bind-keys* and the :package ke...
	10fd4577d0 Add missing autoload cookies
	f037c2daeb Fix function accidentally made interactive
	43f1be12b7 Use cl-gensym
	ee07e709ea Fix the case where :ensure is given no arguments
	afdf1c3638 Some Emacsen don't have gensym
	2892c026f4 Add note in NEWS.md about :after and autoloaded keybindings
	277384d151 Add a note to `bind-key` on the usage of the KEYMAP argument
	2790bfc006 Add a bind-key test
	62d33b2143 Support :ensure (pkg :pin archive)
	e34fdb580a Add several missing comments
	6c836985b1 Swap the order of two definitions
	6470eaf3d5 Fix an argument process problem with bind-key
	a2ddc18065 Comment out two tests that break on Travis
	4b83f9525c Rename up-* files to use-package-* for consistency
	f869036115 Merge branch 'split-bind-key'
	1e42c867b6 Commit .texi file, as it requires several dependencies to ...
	08e5406cc3 Merge branch 'master' into next
	5382941ac3 Add a test-in-progress for issue 506
	057814ae24 Add new customization variables `use-package-hook-name-suf...
	d5feff862a Split key binding functionality out into its own file
	d771e8d719 Please the byte-compiler
	9245d08ebc Require cl for the use-package tests
	e36d208c69 Expand use-package-core as a macro, to avoid load time dep...
	01c3d75606 :ensure can be a list; correct handling of multiple :ensur...
	101dc9793b Ensure that :commands always declare-function at compile time
	fe85f246b0 Add a new :catch keyword, and move :preface before such ha...
	8489206db4 Fix duplication in an error message
	4042b87c72 Add expand-maximally macro to up-tests.el
	026433a8a0 Revert "Reduce some code duplication"
	fb9d159632 Move :preface handling within the code
	4efd355108 Add two new tests
	1e560c5140 Reduce some code duplication
	ac906479a7 Normalize some whitespace and ordering in new code
	0239ee227a Move :init back to happening after all autoloads have occu...
	5d973a0188 Move :init back to happening after all autoloads have occu...
	5d9c854a6c Add `use-package-chords` and `use-package-ensure-system-pa...
	05dfea96e5 Change order of :defines and :functions within `use-packag...
	20ea11b71a Add further notes to NEWS.md, in light of recent breakages
	0be575766c Add new customization variable `use-package-deferring-keyw...
	6d51e52342 Minor comment change
	49752db41b up-ensure's customization variables are now in their own g...
	f4f3e01044 Remove code from up-core.el that is now in up-diminish.el
	bd2589e4be Add notes to NEWS.md
	8bf5de28c3 Correction to a macro expansion
	62f866caf7 Delete an unneeded blank line
	a1bdd958d3 Reduce some code duplication
	28084551ac Normalize the code emitted by :mode, :interpreter, :magic,...
	36cf799853 Add 'errors as another option to `use-package-verbose'
	f08f8a7ba9 Only emit the debugging context text once
	35b975563c Correction to error detection at both :init and :config times
	8428dafcfa Report errors during deferred :config as intelligent warni...
	8dd0f274d0 Drop some unnecessary detail from a warning message
	f356c838c1 Minor simplification
	99200a1642 Fix a byte-compiler warning in up-ensure.el
	7c95d0a0e0 Move optional jumping functionality to its own module
	fff47a1331 Break out ensure/diminish/delight into their own support f...
	cdbb2cbe97 Move the use-package-keywords defcustom to the top of the ...
	22fb8f8c4b Disable a test that is not working on Travis
	0c148eb777 Move functions around for better logical grouping
	3625b3f712 More variable renaming needed in the tests
	149c4878fc Change most use-package-- prefixes to just use-package-
	d5c1fdf4e8 Remove a local variable binding
	223c321a1d Always catch errors during configuration
	e5aa510d48 Separate out all tests, the better to identify which one f...
	4c1b82aed5 Define macroexpand-1 for older Emacsen
	9ab797cccd A great deal of internal reorganization and simplification
	a9429350d5 Fix `use-package-ensure-function' docstring typo
	dee6b36286 If use-package-verbose is t, show loading times when :afte...
	af3b34b022 Remove the :defer-install keyword
	09be976c18 :demand should not override an explicit use of :after
	9e8e9aa4ee Remove some debug code that crept in
	cb846d188a Add tests for the last two keywords
	cd4790b3df Add many more tests
	f5b034154f Always wrap the expanded body from use-package in (progn)
	21b9b6551d Comment out :no-require test for now
	6954c3f582 Don't factor out a volatile variable
	7f2eec9e65 Add many new tests
	88f8c1bb8f Generate :defines and :functions correctly
	b5b432d0fe Correct the ordering of :preface, :load-path, :defines and...
	07ab280741 Whitespace fix
	f674a75b61 Move :hook before :defer
	2c618e17c6 Don't macroexpand bind-keys, leave that to the evaluator
	5f1e8b6b72 Always use `load' when loading for the sake of compilation
	669e8527fb Sort keywords at the appropriate time
	af8b961716 Change the :config default, if none has been set in vars
	1a09f8fef2 :no-require t should never require
	0791e3fefe Code reformatting
	dfd3194d80 Allow match-expansion to take multiple cases
	7a562f10cb Add test for use-package-test-normalize/:ensure
	9465b915a8 Add the missing plist-delete
	98ee89a752 Remove an unneeded defvar
	0be868d39b A final fix to :ensure + :load-path
	ca94036dce Add a test case for :ensure, following up from
	1fc543a212 Don't check for an :ensure that use-package-always-ensure ...
	2ff8af6495 Add a use-package-version variable
	c3b9cc2403 Add two new tests
	3ea2d34219 Add stubs for future tests of all keywords
	3847ec28ca Allow :ensure to take a nil value again
	3cb64648fc Only add :ensure nil on :load-path if use-package-always-e...
	35f46f7b42 Restructure some code
	5e1a656e06 Using :load-path without also using :ensure now implies :e...
	fab33fef3a Correction to use-package--recognize-function
	5f2b0cbe8f Allow keys to be bound to nil
	1167e7d063 Fix a missing `and'
	6a62122e9c Use backquote rather than quote
	0887e1f9d0 Correct use-package-normalize-mode
	d8c1f02bf4 Whitespace fix
	8051c9f5cd Update version and copyright
	bff472ea80 Allow :bind ("C-c C-c" . (lambda () (ding))) and #'(lambda...
	f256943f9b Reorder some items in NEWS.md
	7499c8812a Add NEWS.md file
	c0a884dfa2 Merge pull request from basil-conto/version
	3db39c0573 Require Emacs version >= 24.3
	2aea700500 Merge pull request from basil-conto/520
	9870843e1c Merge branch 'master' into 520
	9ea305beb6 Add a missing (require 'seq)
	4303a2faf6 Require cl-lib and do not use seq functions
	b7041c0f29 When use-package-inject-hooks is non-nil, always fire init...
	2825987619 Print map keys in describe-personal-keybindings
	606284e374 Repeating a bind no longer causes duplicates in personal-k...
	a392f6da55 When byte-compiling, correctly output declare-function dir...
	2c32857d57 Make diminish a soft dependency, as delight already was
	7531c374bf Allow :diminish to take no argument, once again
	c811637b30 Fix for single :custom (foo bar)
	2ebf076733 Allow :custom (foo1 bar1) (foo2 bar2) etc
	4ad4a59685 Add support for `:hook`
	700c92c5de Append to *use-package* when debugging, don't clear it
	6f9d4342ca Make unrecognized keywords a warning
	9b523d7c4e Upgrade license to GPL 3
	18b9bf18ad Don't allow :commands, :bind, etc., to be given an empty list
	4ddf42185a Explicit :defer t should override use-package-always-demand
	5ac5f8bc63 Merge pull request from drrlvn/patch-1
	c72d8567d2 Corrections to the normalization of :custom
	903ff82219 Merge pull request from joewreschnig/implicit-diminish
	eda2db4f18 Merge pull request from waymondo/master
	57ec21a013 allow customized values to be nil
	9bf8264523 Merge pull request from canatella/add-customization-keywords
	d8bbc3a95d Add support for face customization
	fcf219701b Add support for variable customization
	3c763f3169 Merge pull request from carldotac/master
	5396491aec Fix typos in docstring
	426a319e1b Merge pull request from emacsjanitors/demote-manually
	85643eaf18 Cosmetic changes to use-package-ensure-elpa
	68c9ee4bff Don't use with-demoted-errors in use-package-ensure-elpa
	3f58555ed8 Merge pull request from raxod502/feat/fix-install-deferred
	c3455b2a67 Remove duplicate documentation of :mode
	c845776677 Merge pull request from joewreschnig/481-delight-docs
	d0dcd95d80 Document :delight in the doc string and README
	ca83649a32 Allow `:diminish` with no arguments
	463e38b188 Merge pull request from joewreschnig/477-delight-wrappers
	7eec86f5cd Allow :major as the third argument in :delight calls
	4b8b850cf0 Allow multiple :delight arguments, or omitting the mode. ()
	6e6b533aaf Fix bug in use-package-install-deferred-package
	99e4045122 Merge pull request from joewreschnig/magic-469
	ac4a3a4aa8 Add `:magic` and `:magic-fallback` keywords (issue)
	ec088b747a Protect against errors during package install
	c38c33e6fa Merge pull request from raxod502/feat/failed-autoload-msg
	3823a9059e Fix quoting error in failed autoload message
	0a12111d2f Merge pull request from raxod502/normalize-nil
	a9ffffcee5 Make use-package-normalize-value handle nil better
	2db2b56b17 Merge pull request from raxod502/fix-bind-key-filter
	e5e335424c Add comment explaining keyword-argument patch
	d5d320e607 Don't mutilate keyword arguments in :bind
	9f90129b95 Merge pull request from raxod502/fix-after
	0f547bc807 Merge pull request from raxod502/always-defer-install
	bca84ee71a Add use-package-always-defer-install
	9ad6f2ef1a Fix :after keyword
	bd2afa53c7 Merge pull request from raxod502/defer-install
	249de4b44d Merge remote-tracking branch 'origin/master' into defer-in...
	b2e674de0a Update docstring, installation prompt message
	ecc5fddda4 Various improvements for deferred installation
	57e38152e1 Get :defer-install completely working, in theory
	855a2afbe3 Improve deferred installation mechanism
	89a8f94672 Merge branch 'generalized-ensure' into defer-install
	a233f01ff6 Update docstring for use-package-ensure-function
	f6224b2956 First cut at :defer-install keyword
	4e6115214b Extend capabilities of use-package-ensure-function
	45442561d3 Revert "Return `t' after calling `eval-after-load'"
	0517689cf3 Support multiple symbols passed to :after
	f1fa65d773 :mode and :interpreter can now accept (rx ...) forms
	87a8ff6d69 Return `t' after calling `eval-after-load'
	61d6a8e449 Add autoload cookie for use-package-autoload-keymap
	a4c3244f30 Merge remote-tracking branch 'origin/pr/349'
	0905a7b1c7 Merge pull request from justbur/find-form
	c287aa3085 Merge pull request from justbur/imenu3
	f95d487d03 Merge pull request from raxod502/fix-use-package-defaults
	482c8e5728 Fix use-package-defaults
	8fa6e8823b Unrevert "Add use-package-defaults"
	013425edeb Revert "Add use-package-defaults"
	a1550a7746 Merge pull request from raxod502/use-package-defaults
	3dec23c086 Add use-package-defaults
	c637f2be43 Merge pull request from raxod502/use-package-ensure-function
	e853355714 Add use-package-ensure-function
	ad8094c22d Add new customization option `use-package-always-demand`
	dbf46d97be Merge pull request from basil-conto/preface
	6c35742992 Merge pull request from tarsius/outline
	ba3064ed80 Merge pull request from tarsius/bind-later
	75e0cd93c5 Delay decision whether to use eval-after-load until run-time
	134ecb3c88 Support outline-minor-mode
	aad07daa8d Increase :preface priority
	42b7a774cf Merge pull request from phst/bug398
	baa9e25a6b Declare package-read-all-archive-contents
	c15c616eb1 Remove tests, which don’t work
	9688d2f64b Don't allow implicit package name arg for binders
	65c7b42a14 Don't allow nil as a mode function
	fc57b34299 Refactor pair normalizers; add tests for them
	5ed9a6b5a5 Remove obsolete mplist tests
	fc7fc42f13 Bump version to 2.3
	bcfb149517 Merge pull request from appleby/master
	ef0cbfdc73 Ensure package-pinned-packages is bound before referencing it
	4629e86240 Remove the use of a tab
	72452b5548 Merge pull request from ketbra/master
	5053f75e00 Make pin and ensure compatible
	811c99da52 Merge pull request from npostavs/state-noconst
	79c38c5184 Fix declare-function call: FILE must be a string
	71057bc20f use-package-as-string: use noerror parameter
	be7a0e4649 Don't pass a constant as the state
	758739e6db Version 2.2
	1f03bec96b Merge pull request from justbur/bump-init
	59d34cf9ce Move :init forms before :after and :demand
	c13ca927c2 Add function use-package-jump-to-package-form
	75bdb87833 Improve imenu support
	ff0a5e281d Merge pull request from justbur/imenu2
	da08a04652 Fix imenu support for older versions
	1d6b3174f5 Merge pull request from justbur/imenu
	2b5668df20 Merge pull request from robario/patch-1
	d34fb2bdc9 Add imenu support for use-package forms
	858a7f9b7c Fix to ignore load error caused via :after
	153b542421 Merge pull request from xuchunyang/fix-package-install
	3aa6aecb7f Mark package as selected with package-install
	af65fbea63 :map no longer accepts lists; only eval-after-load if nece...
	a1c4e6d0ab Normalize some error text
	f150691c78 Only printing debug messages if use-package-verbose is `de...
	8e128b29f5 Merge pull request from ljos/master
	6ca19531bb Repair :map handling in bind-key.el
	b0b5cfbfb2 Quote variable in `bind-keys*'
	6a90a9f16d Add configuration variable `use-package-check-before-init'
	ce51ea2055 Use `add-to-list' defensively instead of `push'
	6da4e0ce9d Add variable `use-package-always-defer'
	eeba14ef07 Restore :bind-keymap, it does something special still
	828563a756 Remove :bind-keymaps, and only apply :map bindings after load
	856e8ee245 Support multiples uses of :map with :bind
	23a61c8f6b Add some variable settings to use-package-tests.el, thanks...
	4593f178e3 Merge pull request from alezost/keymap-doc-fix
	947345028e Add another `declare'
	c65a334276 Handle :unless correctly
	543935482f Add a comment about a recent change
	416096bfdc Merge pull request from waymondo/master
	57af7dd571 Merge pull request from dudebout/patch-1
	ee8ac83641 Add an autoload cookie for `use-package'
	32748d0657 Upper casing Cs corresponding to Ctrl
	2b967a3c18 Merge pull request from thierryvolpiatto/fix_package_install
	c5e98d87da Ensure package-install support a second argument
	5cbfd926c5 When :ensure is used install package as a selected package
	9e2dcf8655 Merge pull request from kovrik/fix-pin-performance
	cc4333a1be Merge pull request from phillord/fix/always-pin-typo
	ba4aeb600d Fix errant variable name
	3f48ff4648 Merge pull request from phillord/feature/always-pin
	f4a01f3e00 Add new option `-always-pin'
	c42e3f5669 Change condition that checks if package has been initialized
	19474a1711 Do not package-initialize on each :pin
	38c170e17b Merge pull request from kovrik/issue-299
	3ce3b3a98c Add a missing comma
	b4ec5abad2 Add a PREDICATE option to bind-key, and :filter to `bind-k...
	cd867dfe2f allow string values in cons for :bind keywords
	95038f96f1 Guard against a case where :load-paths is nil
	d1c78a646c Move :pin out of macro expansion phase fixes
	308e4e3f2c Move :pin out of macro expansion phase
	ed2e85e4a7 Use cl-mapcan rather than apply 'nconc; thanks wasamasa
	189c8b5422 Merge pull request from kovrik/byte-compile-ensure-fix
	d9f37b4f0c Install packages when byte-compiling (fix by @npostavs)
	b1f442c15b Apply a fix from npostavs relating to
	734c5e7119 Merge pull request from kovrik/master
	96add4d4c0 Merge pull request from phillord/feature/after
	564f9bb74b Support for after keyword
	ac47f783da Move :ensure option from macro expansion phase to runtime ...
	ff8bdfcdca Bump version to 2.1
	5dffc8c7cf Merge pull request from waymondo/extend-bind-handler
	6298e7e477 pass in symbol of bind macro, for more extensible reuse o...
	3e2747f174 Revert "Merge pull request from edvorg/master"
	9c1156dbf8 error handling for use-package
	2276ed7607 Merge pull request from matklad/master
	d514592746 fix quotation error
	fa36aa682c Merge pull request from npostavs/string-packages
	3cdc6c39bf Re-add support for string package names
	282241cf7d Merge pull request from nickalcock/master
	1cbcd66ebe Support :bind (:map '(...))
	269b1080ae Merge pull request from thomasf/master
	d81390f6de Handle the case when keymap has a broken documentation
	d3f47a7401 Merge pull request from killdash9/keymap
	4502a5ecb1 Merge pull request from syl20bnr/fix_hook_injection
	90e3f48111 Fix calls to run-hooks for :init and :config injected hooks
	6f0586ef52 Refresh package.el archives if package is missing
	a53b5062c4 bind-keymap fixes
	f1a00054b1 Keymap bindings must be interactive
	c850481d06 Failed to require a package is just a message
	d1e91745b3 Minor fix to :diminish
	c3a4b03b5f Fix a bug in the :delight support
	800669d9da Add :delight support, thanks to darkfeline on GitHub
	80aad34a39 Add new customization use-package-always-ensure
	348bc57141 unbind-key now removes key from personal-keybindings
	47586c714e Fix file headers
	53bb14cfb7 Add autoload stanzas to bind-key
	d70d70843a Correction to an eval-after-load expansion
	8c00f108bf Change use-package to use bind-keys and bind-keys*
	012c37d722 Change bind-key* behavior to mimic bind-keys*
	029e46a874 Whitespace cleanups
	eb6b81dfec Allow :map in bind-keys to accept multiple maps
	2abf565af2 :pin should return `t'
	e7f3f97a71 Modular support appears to be working
	f1ab3291f6 Began work on modular handling of keywords
	94ad68330d Rename use-package-with-elapsed-timer at an internal name
	b30b279a99 Remove code I did not intend to commit
	f45c4f0edd Merge pull request from npostavs/macroexp-progn
	c2f5b2479d Fix some docstrings
	3467e4eaa6 use-package-progn: replace with macroexp-progn
	23ec1ca719 Merge pull request from npostavs/name-keymap
	f5f4102ca1 get-binding-description: return keymap symbol
	1b6605652c Use push instead of add-to-list
	38f907cc5d Remove a hack that is not needed anymore
	2778e85a39 macroexpand nested uses of use-package in :init and :config
	19ab94cf39 Wrap the :preface in an eval-and-compile block
	8769309fbf Remove a use of macroexpand
	658d103b70 Make a warning more specific
	5787ff074c More work to silence the byte-compiler
	46435d7b84 Other minor improvements for byte-compiling
	d2679595fa Several minor improvements and fixes
	eda8246fc6 Change some code for consistency's sake
	c819beebf0 Merge pull request from killdash9/keymap
	8d7a0c2185 minor fixes to get bind-keymap working in 2.0
	771f2edc83 Always return t on a successful init-time load
	db69a3f81c Add to the load-path before the :preface
	9e35dd95d9 More fixes related to byte-compilation
	34bc31e1d4 A few changes for byte-compilation
	1fe2c1c056 :defer now accepts an optional number of seconds
	302c008b45 Permit minimal expansion of macro bodies, and other fixes
	21a091f17a Collapse some whitespace
	05c02aee86 Allow vectors to be passed to :bind again
	55d6bb00ca Add code to workaround an inefficiency with eval-after-load
	4029030eb5 Output Compiling message only if verbose is enabled
	b75c1cb47e Allow :pin to accept a symbol
	5c85433fac Relax a path normalization check
	a203028871 Correct an erroneous symbol reference
	a66d1952e3 Update docstring for :disabled
	1c5f9247aa Merge pull request from npostavs/eval-after-name
	98b642b794 Undo an erroneous change
	199399e552 Add -hook to the injected hooks
	03ea5d6dbf Restore an earlier fix to
	9385ab417a BREAKING CHANGE: Remove :idle and :idle-priority
	1f20acfd57 use--package: eval-after-load name
	81f5e48d32 Support optional injection of hooks, for Spacemacs
	f637380fed Add :preface, occurring before everything except :disabled
	b4a00d2eb5 Some minor code reformatting
	71f894fe78 Fix to :ensure normalization
	a6edb08122 Merge pull request from thomasf/master
	9748de389c Merge pull request from npostavs/warning
	e68d00d525 Fix :ensure value interpretation
	27cba067ee use-package-expand: use display-warning
	4ae584f3ff Begin refactoring for 2.0; NOTE: BREAKING CHANGES
	0f76d766d9 Many stylistics cleanups and simplifications
	a4a696572d Revert "Don't add autoload for existing commands"
	30da0769bf Stylistic changes
	f8bf1b0986 Minor style edits
	f334f230eb Minor changes
	aa6e3f47c7 Show more informative errors when they occur
	24ace89e5a Merge pull request from tarsius/master
	719115cf47 Allow using expanded macro without loading feature
	89a957efa9 Merge pull request from killdash9/keymap
	b8f0799ce8 Passing t into keymap function
	60029cb0ab Merge pull request from killdash9/keymap
	7252e29ec4 Merge pull request from thiagowfx/patch-1
	7db9b920df fix small typo (key > keymap)
	1ae2236854 :bind-keymap - bind a key prefix to an autoloaded package ...
	647950fd16 Merge pull request from vermiculus/master
	5a5aeca797 Do not quote lambda expressions
	f8db1f1740 Merge pull request from YoungFrog/fixautoloads
	99642725c1 Merge pull request from peterhoeg/master
	b3bf1b2587 Check if package-archives are valid when pinning
	a2b23f8326 Don't add autoload for existing commands
	435d4b4078 pure cleanup
	18f04bfb99 Merge pull request from peterhoeg/master
	fe7fe61528 support for pinning package to archive
	6570447a05 Merge pull request from Silex/master
	0bfa356148 Merge pull request from waymondo/master
	e8ce1b20ca add :bind* keyword for `bind-key*`
	f07ecde5a1 Fix "compiling" typo
	4c927efbd5 Merge pull request from thomasf/master
	351c102010 Display which package that has compile errors
	4cf50ffbca Merge pull request from tarsius/master
	31bb0cde56 assume the declare-function macro exists
	91953b08e0 Merge pull request from BernardHurley/master
	471869269a bind-keys macro changed to allow prefix map to have a menu...
	3cbf510468 Merge pull request from npostavs/desc-vector
	b3e96443ad bind-key: cleanup
	de9f6814e7 bind-key: no vector keys in personal-keybindings
	91b439c8e7 personal-keybindings: add docstring
	0d0e8db731 Merge pull request from alezost/bind-keys
	c4ebcaa953 Add bind-keys* macro
	2d67e1dca1 Merge pull request from thomasf/master
	1c82b2377f Don't abort compiling if package loading fails
	a4939e7ef3 Revert "Merge pull request from alexko/master"
	8c04377608 Merge pull request from alexko/master
	a9ba368fa7 Merge pull request from YoungFrog/fix-mult-mode
	6d02a320f6 if package can't be located, treat it the same way as disa...
	4e80d29daf Eval backquote earlier and support non-`progn' lists
	d63972eb29 Merge pull request from YoungFrog/keynameeval
	9ca3690b59 * bind-key.el (bind-key): don't eval key-name at macro exp...
	978094589e Merge pull request from npostavs/bind-vectors
	01196c81ac bind-keys: bind directly to prefix-map
	869ff53ab9 bind-keys: ,@(when map (list map)) => map
	053a1514a1 fix typo
	efe2419a22 Merge pull request from YoungFrog/idle-interval
	0ab0d77691 Add new option use-package-idle-interval
	db9cba9a31 Merge pull request from ffevotte/idle-priority
	6b30c15823 :idle-priority keyword to change the running order of idle...
	c7ff480095 Merge pull request from tarsius/master
	f32d24350c use-package-font-lock-keywords: add use-package-with-elaps...
	2d7ecd867a use-package-with-elapsed-timer: add declare indent rule
	ea3a475d0b use-package-with-elapsed-timer: respect option at runtime
	11195fa213 Merge pull request from npostavs/bind-vector
	f0776c2aeb let bind-key accept vectors, add docstring
	0f7d54d1db Merge pull request from Fuco1/variable-col-width
	e23bce4c2f Merge pull request from Fuco1/special-form-desc
	38d4d2e2da Add variable column width
	f90d65e149 Add better descriptions for lambdas, closures, keymaps
	aec1268960 Merge pull request from Fuco1/bind-keys
	7d0779114e Add `bind-keys` macro
	dd937c4e36 Move tests to separate file
	2676ff5d95 Allow multiple forms after keywords
	58ca076647 stop describe-personal-keybindings adding trailing space
	6ca942d780 Merge pull request from aspiers/best-practices
	21cabfd334 fix bind-key URL (fixes)
	8f7e878caf add 'use-package-' prefix to 'with-elapsed-timer'
	283653ff4b Merge pull request from aspiers/hyperlink-all-bindings
	ebe59c7da1 Merge pull request from aspiers/docs
	2dbee4cd75 fix DRY violation by only having documentation in one place
	984850be80 hyperlink functions in Comments column
	25ea8ea840 Merge pull request from aspiers/short-mode
	75206228dd allow :mode and :interpreter to accept a string
	7de292c0e9 Merge pull request from tarsius/defun
	d588d0b382 use-package: use defun as lisp-indent-function
	c3704ac36e Add a :demand directive, to override deferred loading ()
	9d395a4019 fboundp is a function, not a variable
	d4bf41eb82 Merge pull request from dabrahams/patch-1
	f3e9e871a6 Backward compatibility with emacs-22.1
	90ca8adc41 Default use-package-verbose to nil
	ee0060c3a7 Merge pull request from Silex/master
	c7560f7be7 Remove el-get support
	f3ed771481 Merge pull request from aethanyc/add-missing-keyword
	36cf13ef47 Add :pre-load to use-package-keywords
	c3cbe3a69a Merge pull request from PhilHudson/master
	a116fc2136 Properly enable runtime dependency for :idle stanza (issue)
	e8b5ea3b70 Merge pull request from npostavs/comma
	94072fba77 remove extra comma (added by 026c46c)
	e367788005 Merge pull request from npostavs/cleanup
	026c46c057 let with-elapsed-timer return last form
	3d871c7994 make `with-elapsed-timer' hygienic
	61fd933807 with-elapsed-timer: only check verbosity once
	9921a76e86 remove after-init-hook for override-global-mode
	29abf59bad macroexpand not needed
	119a30f2ba cl not needed since flet was removed in 82903da
	901272a8c7 Merge pull request from phillord/first-keyword
	d6a5c43915 Merge pull request from npostavs/quasiquote
	8c1c572857 use plist-get-value for all non-sexp args
	dd20db220d plist-get-value treats arg as backquoted
	9c9329f522 Merge pull request from dudebout/fixes-
	818c78f466 Removes `plist-get-sexp`
	ff03bef1d1 Merge pull request from dudebout/variable-and-function-sup...
	fd8af80f08 Enables using variables and functions as arguments
	6fdeb0c044 Merge pull request from npostavs/eval-after-name
	c6d79d2cb4 pass name (not name-string) to eval-after-load
	6efc084cdf Merge pull request from aethanyc/fix-highlight
	bbf2b5034b Fix highlight use-package for Emacs snapshot
	749295c052 Merge pull request from npostavs/hilite-redux
	71150a79c5 Merge pull request from aethanyc/improve-output-buffer
	8de5c29ed5 Improve (describe-personal-keybindings) output
	57f80d4ff1 highlight use-package before typing package name
	a56244378f Merge pull request from npostavs/master
	48975f791b also check `byte-compile-current-file' for compile time lo...
	aa357bc96a Changed :first to :pre-load
	3d0b14eac2 Merge pull request from npostavs/master
	a76d16730d use lambda around deferred :config forms to compile them, ...
	ac0c9633bc use `eval-when-compile' for loading package at compile tim...
	e7a343828a Add a ":first" keyword for those occasions that it's neces...
	e481d97891 Merge pull request from npostavs/master
	2a1e7e418a refine use-package highlighting regexp
	3a4556a906 Merge pull request from purcell/patch-2
	a5859a7c8d Fix initial line to satisfy package.el
	f98b9d08fe Validate keywords. Error if any keyword is unrecognized
	ed2b339783 Merge pull request from phillord/ensure-doc
	01cfa0358f Added documentation to use-package macro
	7161c09b30 Documentation added for :ensure keyword
	e38cfff8b6 Merge pull request from milkypostman/master
	19c65ea3ab package header should, hold, sold be the full filename + ext
	2da6318930 Merge pull request from tarsius/font-lock
	9741bdb189 Merge pull request from tarsius/master
	5b696d1918 fontify use-package form
	d2460b9276 add dots; cleanup whitespace
	a5e4a6d938 quiet byte-compiler; ensure package.el is loaded
	82903da9d8 don't use obsolete flet
	17a1a4659a enforce use of spaces for indentation
	5a799db5a1 Merge pull request from purcell/patch-1
	b901618607 Add Package-Requires header for ELPA installations
	ef6b97c29f Merge pull request from npostavs/easy-diminish
	0df0e18c4b needed extra layer of nesting for diminish calls
	984e0f1044 Merge pull request from npostavs/easy-diminish
	094830716d Merge pull request from npostavs/bind-override
	2abe5f9480 let :diminish "string" guess correct mode symbol
	09b9ef3ae3 let bind-key* override minor modes with emulation-mode-map...
	26bfd9ce2f Merge pull request from PhilHudson/master
	34d3f115dd Runtime client code independence redux
	1758c5faea Corrected a typo
	d718c0cefa Merge pull request from phillord/master
	52a48a77c3 Merge branch 'master' of https://github.com/jwiegley/use-p...
	35685f120b idle initiation of packages
	49d25ce022 Merge pull request from phillord/master
	aa8d5fab19 Added minimum load time display option
	447004740c Merge pull request from bdd/master
	c680b57ebf Cleanup trailing whitespace
	1a65b11731 Merge pull request from PhilHudson/macroexpand
	593f18aff5 Macroexpand quoted eval-after-load block early
	c4cf68f6e4 Merge pull request from phillord/master
	eaf9677409 Support packages where autoload and elpa name are different
	445d0245fc Merge pull request from phillord/master
	8d72a6c1d6 Documentation for the use-package macro
	b8406ce9f0 Reverting "Documentation for the use-package macro."
	abc0ebc92d Documentation for the use-package macro
	75b30bfd9b Merge pull request from phillord/master
	c28874e956 ELPA package support
	2a63e3f2ef Merge pull request from PhilHudson/master
	fbead83731 Support diminishing to a replacement string as well as to ...
	8b93cee99b Use-package now accepts function as argument
	fe7997d2b7 Only use user-site-lisp-directory if defined
	89a844fd9c Correct return value from with-elapsed-timer
	28c6509148 More updates to support el-get
	ece5f93919 Byte-compilation related fix
	d9f6c0f370 Added :pre-init
	82a8d10a46 Establish autoloads after :init
	bdf1505f44 Added :mode and :interpreter keywords
	0736be8e67 Add a note about how to use :load-path
	f6d65ce876 If :load-path is absolute, don't expand it
	0bde0b4c02 Die typos, die
	debf2c23f3 Fixed a typo
	aea35b2370 Minor reformatting
	80b010a748 Minor grammatical nit
	334f6e085e Integrated support for working with el-get
	01c8245b29 Make use-package-verbose customizable
	4bd492f606 Have loading timer include time to require
	bf6c23044b Fixed a typo in bind-key.el
	31ea42e15e README and other updates

	# Conflicts:
	#	etc/NEWS
	#	lisp/external-completion.el

2022-12-08  Andrea Corallo  <akrl@sdf.org>

	* Enable native speed 2 EMBA build and tests and disable speed 0

		* test/infra/gitlab-ci.yml (build-native-comp-speed2): Uncomment.
		(build-native-comp-speed0): Comment.
		(test-native-comp-speed0): Remove.
		(test-native-comp-speed2): Add.

2022-12-08  Jim Porter  <jporterbugs@gmail.com>

	Make 'server-stop-automatically' into a defcustom

	This changes the meaning of the (formerly internal) variable
	'server-stop-automatically': it now always holds the requested
	configuration, even when Emacs was not started as a daemon
	(bug#59668).

	* lisp/server.el (server-stop-automatically): Convert the variable to
	a defcustom, and make the function simply set the defcustom.
	(server-stop-automatically--timer): New variable.
	(server-apply-stop-automatically): New function...
	(server-stop, server-start): ... call it.
	(server-save-buffers-kill-terminal): Adjust the conditions for
	stopping automatically to account for the change of meaning for
	'server-stop-automatically'.
	(server-stop-automatically--handle-delete-frame): Remove unnecessary
	test of the 'server-stop-automatically' option; this hook is only set
	when it should do its job.
	(server-stop-automatically--maybe-kill-emacs): Update docstring.

	* doc/emacs/misc.texi (Emacs Server): Update documentation.

2022-12-08  Po Lu  <luangruo@yahoo.com>

	Remove conversion_fail_tag from selection requests

	* src/xselect.c (struct x_selection_request): Delete
	`conversion_fail_tag'.
	(x_push_current_selection_request, x_start_selection_transfer):
	Stop checking against conversion_fail_tag.
	(x_handle_selection_request): Adjust callers.
	(x_convert_selection): Remove arg `for_multiple'.  Never link
	nonconvertible data onto frame->converted_selections.

2022-12-07  Sean Whitton  <spwhitton@spwhitton.name>

	Font lock Commit: and CommitDate: lines in Git logs

	* lisp/vc/vc-git.el (vc-git-log-view-mode): Additionally recognize and
	font lock Commit: and CommitDate: lines.  This is relevant when, for
	example, the user has added "--format=fuller" to vc-git-log-switches.

2022-12-07  Rudolf Adamkovič  <salutis@me.com>

	Capitalize unit names in Calc uniformly

	* lisp/calc/calc-units.el (math-unit-prefixes): Unify the
	inconsistent capitalization of the metric prefixes to
	lowercase.  (Bug#59706)

2022-12-07  Miha Rihtaršič  <miha@kamnitnik.top>  (tiny change)

	comint-fontify-input: Fix field boundary issue (bug#59626)

	* lisp/comint.el (comint--intersect-regions): Don't call
	'field-end' if we are on a field boundary already.

2022-12-07  Po Lu  <luangruo@yahoo.com>

	Fix some more problems with running Emacs as untrusted

	* etc/PROBLEMS (X security problems): Describe new variable.
	* src/xfns.c (append_wm_protocols): Don't support ping when it
	does not work.
	* src/xterm.c (x_wm_supports_1): Don't support anything when
	untrusted.
	(x_term_init): Implement Vx_detect_server_trust.
	(syms_of_xterm): New variable `x-detect-server-trust'.
	* src/xterm.h (struct x_display_info): New field `untrusted'.

2022-12-07  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	9ae1c2762d7 EUDC: Outline deprecation plans in NEWS
	6acf95cbea6 Fix admin/notes/tree-sitter/build-module/build.sh (bug#59...
	cc63c086971 * doc/misc/eww.texi (Overview): Improve introduction.
	b8790e320e1 Consistent fontification of using-directives in csharp-ts...
	5257b9cda43 ; Rename c-ts-fontify-error to c-ts-mode--fontify-error
	c6b454df339 ; Improve docstring of c-ts-mode--fontify-variable
	6187d001f28 Fontify some keywords in type face in c-ts-mode
	b3847c02083 ; Minor cleanup in treesit.c
	40af27859e0 ; * lib-src/etags.c (escape_shell_arg_string): Minor doc ...
	43b7e7efbf4 Fix etags builds on non-Windows non-MS-DOS machines
	7e6d1d1c471 ; Fix last change in etags.c.
	01a4035c869 Fix etags local command injection vulnerability
	ed4734405df Avoid crashes in a build --without-modules
	70a2eb4a0b3 Fix 'add-display-text-property' when OBJECT is non-nil
	d58d1dd48ac Do not run slow tests on EMBA
	9b9b39a2d89 Lisp reader undefined behavior excision

	# Conflicts:
	#	etc/NEWS

2022-12-07  Juanma Barranquero  <lekktu@gmail.com>

	* etc/NEWS: Mention new bs option

2022-12-07  Juanma Barranquero  <lekktu@gmail.com>

	* lisp/bs.el: Improve compatibility with previous version

	* lisp/bs.el (bs-default-action-list):
	Remove display-buffer-reuse-window.
	Ask for a minimum height window, not maximum.
	(bs-show-in-buffer): Create window here, and afterwards make
	sure it's the only window showing the *bs-selection* buffer.
	(bs--show-with-configuration): Move window creation to
	bs-show-in-buffer.

2022-12-06  Juanma Barranquero  <lekktu@gmail.com>

	* lisp/bs.el: Adapt to modern display-buffer-alist window setup

	* lisp/bs.el (bs--window-config-coming-from): Delete.
	(bs-default-action-list): New user customizable option.
	(bs--restore-window-config): Delete.
	(bs-kill, bs-select, bs-select-other-window)
	(bs-select-other-frame): Use `quit-window' instead.
	(bs--show-with-configuration): Use `pop-to-buffer' to display
	the "*buffer-selection*" buffer.

2022-12-06  Po Lu  <luangruo@yahoo.com>

	Work around sample server bug

	* src/xterm.c (XTring_bell): Catch Access errors from XBell when
	Emacs is running as an untrusted client.

2022-12-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	717f8477284 ; Fix typo in js--treesit-imenu
	c26fe45cb80 Fix treesit-query-capture
	318bf42b410 Improve fontification of typescript-ts-mode (bug#59831)
	64271bbb7d9 Add back pair feature in json-ts-mode fontification (bug#...
	16b94888429 Fix mouse clicks on a non-selected frame
	ca0da3b83df ; Clarify description of display on the margins

2022-12-06  Po Lu  <luangruo@yahoo.com>

	Fix crash on Windows 9X

	* src/emacs.c (main): Call init_bignum before init_window_once.

2022-12-05  Po Lu  <luangruo@yahoo.com>

	Fix build with old XCB

	* src/xfns.c (x_get_net_workarea):
	* src/xterm.c (x_dnd_compute_toplevels, x_dnd_get_proxy_proto)
	(x_dnd_get_wm_state_and_proto, handle_one_xevent): Do not
	include xcb_aux.h.  Use XA_ constants instead of XCB_ATOM_ ones.

2022-12-05  Po Lu  <luangruo@yahoo.com>

	Don't excessively sync in some other code

	* configure.ac (USE_XCB): Remove xcb-util dependency.
	* src/frame.h: Remove x_sync.
	* src/gtkutil.c (xg_frame_restack, xg_update_scrollbar_pos)
	(xg_update_horizontal_scrollbar_pos): Call XSync manually
	instead of x_sync.
	* src/xfns.c (x_sync): Delete unused function.
	* src/xterm.c (x_send_hourglass_message): New function.
	(x_show_hourglass, x_hide_hourglass): Avoid XSync in these two
	pieces of frequently used code.
	(handle_one_xevent): Handle hourglass messages.
	(x_make_frame_invisible): Stop using x_sync.

2022-12-05  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	ec00d292ec0 Improve treesit-fontify-with-override
	4bcdb1cc65b Make killing a non-last client work the same no matter th...
	a27f61f6f48 Use the function 'window-system' on the tab-bar/tab-line ...
	432b9655ae0 Restore font-lock-type-face for lisp mode &symbols

2022-12-05  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	3768b100777 ; * lisp/pcomplete.el (pcomplete-allow-modifications): Fi...
	84214578f5a Fix markup in ERC manual

2022-12-05  Sean Whitton  <spwhitton@spwhitton.name>

	Improve passing user switches to Git log commands (bug#59414)

	* lisp/vc/vc-git.el (vc-git-log-switches): Revise docstring.
	(vc-git-shortlog-switches): New defcustom.
	(vc-git-print-log): Use vc-git-log-switches or
	vc-git-shortlog-switches depending on whether printing a shortlog.
	(vc-git-log-outgoing, vc-git-log-incoming): Use
	vc-git-shortlog-switches.
	(vc-git-log-search, vc-git-expanded-log-entry): Use
	vc-git-log-switches.
	* etc/NEWS: Document the new defcustom.

2022-12-04  Po Lu  <luangruo@yahoo.com>

	Fix potential crash deselecting for property change notifications

	* src/xselect.c (x_cancel_selection_transfer): Catch errors
	around XSelectInput.

2022-12-04  Manuel Giraud  <manuel@ledu-giraud.fr>

	Make a boxed menu bar have a shadow at its right end (bug#59778)

	* src/xdisp.c (display_menu_bar) [HAVE_X_WINDOWS]: Make a boxed
	menu bar have a shadow at its right end in non-toolkit X builds.

2022-12-04  Po Lu  <luangruo@yahoo.com>

	Make Emacs build with Xfixes support on old versions of the library

	* src/xterm.c (xfixes_toggle_visible_pointer):
	(x_toggle_visible_pointer):
	(XTtoggle_invisible_pointer, x_term_init): Disable code
	requiring fixes 4.0 or later when the fixes library is older.
	* src/xterm.h: Define missing types needed by other extensions
	when the fixes library is too old.
	* configure.ac: Allow building with any version of the Xfixes
	extension library.

2022-12-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	96af584af6c Fix comment-start-skip in tree-sitter modes (bug#59690)
	520a4e12f8e ; * lisp/treesit.el (treesit-end-of-defun): Guard against...
	2c4d92d30f6 ; * lisp/subr.el (posn-col-row): Revert inadvertent change.
	6fb9a03cbdf ; Remove debugging leftover message
	c5ba47c889e Speed up Unicode normalization tests by a factor of 5
	afa4fcb95b4 Fix "C-h k" when clicking on another frame
	f6e2f30f394 ; Fix typos
	bd58dcedfb9 Fix and expand tests broken by commit 2772ebe366 of 2022-...
	a0dd9fdebe3 ; Add cross-reference to string-equal docstring
	11c3c54d8ad Fix handling of relative directories in "--init-directory...
	401f76cc3d6 Make sure 'user-emacs-directory' ends in a slash

2022-12-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	17d40c163e0 vc-git-print-log: Don't assume vc-git-log-switches is a list

2022-12-03  Po Lu  <luangruo@yahoo.com>

	Improve performance of other_frames and XTfullscreen_hook

	* src/frame.c (other_frames):
	* src/xterm.c (XTfullscreen_hook, x_check_fullscreen)
	(x_set_window_size_1): Avoid extraneous calls to x_sync.

2022-12-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	1e36ad9458 ; server-tests: remove CI debugging
	54633fcd76 ; * lisp/subr.el (string-equal-ignore-case): Doc fix (bug#...
	8413e95138 ; server-test CI debugging
	4b3eb928fe Fix server-tests run noninteractively (bug#59742)
	1b567f5a67 Use file-name-nondirectory to determine default project-name
	f72cda2b82 Speed up auto-completion in 'sh-script-mode'
	e5b0141b0d Fix error editing multisession variables (bug#59710)

2022-12-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	2b9cd50f93 Add tsx-ts-mode to eglot-server-programs

2022-12-03  Juanma Barranquero  <lekktu@gmail.com>

	* lisp/bindings.el (bound-and-true-p): Verify argument is a symbol

2022-12-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el (cl-flet): Optimize a bit more

	Also optimize the case where we use `cl-flet` to introduce a local alias.

2022-12-02  Po Lu  <luangruo@yahoo.com>

	More behind the scenes transparent speedups around xselect.c

	* src/xdisp.c (display_menu_bar): Fix compiler warning about
	NULL pointer dereference.
	* src/xfns.c (Fx_begin_drag): Use x_intern_atoms.
	(Fx_change_window_property): Pass dpyinfo to
	x_fill_property_data.
	* src/xselect.c (lisp_data_to_selection_data): Use
	x_intern_atoms instead of syncing for each atom.
	(x_fill_property_data, x_send_client_event): Use
	x_intern_cached_atom.
	* src/xterm.c (x_intern_atoms): New function.
	* src/xterm.h: Update prototypes.

2022-12-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	39e0c60176 * lisp/tab-bar.el (tab-bar-format-align-right): Fix alignm...
	bf66b90b9a Fix the width of margins for icons in outline-minor-mode (...
	2e4960d63d ; Change c-ts-mode--base-mode to c-ts-base-mode
	1aa1f8432b Add new TypeScript mode tsx-ts-mode
	ad0563855f Add case and match to python--treesit-keywords (bug#59720)
	16e68e64f9 ; * lisp/progmodes/c-ts-mode.el: Change rx to regexp-opt.
	3bccef6f52 project-files (VC-aware): Make sure the VC backend is loaded
	03a40b974c term--update-term-menu: Add the menu to term-terminal-menu
	368c7c7d8e Improve detection of very long lines
	9c58ea37af ; Fix last change in proced.el
	0c1495574a Add colors to Proced (bug#59407)
	91dba5b066 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/e...
	70ecdebc92 ; Fix typos (don't abbreviate "with" or "without")
	d94c5870c0 ; * lisp/tab-bar.el (tab-bar-change-tab-group): Doc fix.

	# Conflicts:
	#	etc/NEWS

2022-12-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	70ecdebc92 ; Fix typos (don't abbreviate "with" or "without")
	a86ccb5f9d ; Fix recently added treesit documentation
	2d5cf7329e ; * etc/NEWS: Fix wording and punctuation of recently adde...
	61311d6862 ; Fix test failure on CI

	# Conflicts:
	#	etc/NEWS

2022-12-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	91a9598baf Update project docs and NEWS

	# Conflicts:
	#	etc/NEWS

2022-12-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	5d1a1019c6 Add highlighting Python operators (bug#59629)
	8b3baadf67 Fix compilation of Org 9.6 on MS-Windows
	3b5b99ac91 * doc/lispref/frames.texi (Input Focus): Clarify for XInpu...
	4b2f5425d7 Fix types in various defcustom declarations

2022-12-01  Manuel Giraud  <manuel@ledu-giraud.fr>

	Make sure the menu-bar height is updated on X when fonts change

	* src/xdisp.c (display_menu_bar) [HAVE_X_WINDOWS]: Update
	menu_bar_window height in non-toolkit X builds.  (Bug#59351)

2022-12-01  Po Lu  <luangruo@yahoo.com>

	Finish up last change with more speedups

	* src/xterm.c (x_atom_refs):
	* src/xterm.h (struct x_display_info): Add some new atoms to be
	interned at connection setup.

2022-12-01  Po Lu  <luangruo@yahoo.com>

	Remove unnecessary error checks in xselect.c

	* src/xselect.c (x_own_selection): Don't sync around
	XSetSelectionOwner, as the atom and window specified are always
	correct.

2022-12-01  Po Lu  <luangruo@yahoo.com>

	Fix pdumper build

	* src/xselect.c (mark_xselect): Don't mark if
	outstanding_transfers.next is still NULL.

2022-12-01  Po Lu  <luangruo@yahoo.com>

	Speed up handling X selection requests

	* etc/NEWS: Announce speedup.
	* src/alloc.c (garbage_collect): Call mark_xselect.
	* src/xftfont.c (xftfont_end_for_frame): Fix crash on display IO
	error.
	* src/xselect.c (struct selection_data, struct transfer): New
	structures.
	(outstading_transfers): New variable.
	(SELECTED_EVENTS, x_selection_request_lisp_error): Stop checking
	cs->nofree.
	(x_catch_errors_unwind): Delete function.
	(c_size_for_format, x_size_for_format, selection_data_for_offset)
	(selection_data_size, transfer_selecting_event)
	(x_continue_selection_transfer, x_remove_selection_transfers)
	(x_selection_transfer_timeout): New functions.
	(x_reply_selection_request): When handling selection requests,
	never wait for property notifications synchronously.  Instead,
	write out the selection data as the client reads it from the
	event loop.
	(x_handle_selection_request, x_convert_selection)
	(x_handle_property_notify, x_get_window_property)
	(lisp_data_to_selection_data): Don't ever use pointers to Lisp
	string data! Instead, just store the string object itself.
	(syms_of_xselect): Initialize outstanding transfer list.
	(syms_of_xselect_for_pdumper):
	* src/xterm.c (x_delete_display): Remove outstanding selection
	transfers.
	* src/xterm.h: Update prototypes.

2022-12-01  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	4161023a63 Fix crashes and memory leaks during display deinitialization
	785fa80159 New user option: project-vc-extra-root-markers
	7a1f1825fd Add inline to c-ts-mode--keywords
	3d976d6a03 Remove duplicate "friend" from c-ts-mode--keywords
	01e7d4b2a1 Make treesit-defun-prefer-top-level more flexible
	fb5d9ff559 Fix c-ts-mode defun movement (bug#59628)
	7397f2099b * lisp/tab-bar.el: Keep tabs of the same group together (b...
	832b013ef0 Insert news for installed packages only
	cc6efa7992 ; Fix type error in 'package-maintainers'
	ee32ae7c36 ; * etc/NEWS: Add missing tree-sitter based modes.
	33546d6dd2 ; * etc/NEWS: Move an entry to a proper place.  (bug#59718)
	8617edfffd ; Fix typos

	# Conflicts:
	#	etc/NEWS

2022-12-01  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-29

	2a8f31b996 project-current: Improve the docstring

2022-12-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-11-29 18:15:27 UTC.

2022-11-30  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.3.7-182-gfe7dcbd

2022-11-30  Matt Armstrong  <matt@rfc20.org>

	Add itree_empty_p for clarity and reduced coupling

	* src/itree.h (itree_empty_p): New predicate.
	* src/buffer.h (buffer_has_overlays):
	* src/pdumper.c (dump_buffer):
	* src/alloc.c (mark_buffer): Call it.  (Bug#59137)

2022-11-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	c3466099c5 Org regexp style fixes

2022-11-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	af1a99d53f Sink python indent offset guessing to avoid test failure
	dc0f2ec2db * etc/NEWS: Announce Org update.
	0625651e8a Update to Org 9.6-3-ga4d38e
	edd64e64a3 Fix interactive selection of emacs-lock mode, broken by 2a...
	a699f65936 Fix typo in flag to load Emacs-specific LLDB commands
	f6aa7c335f ; Typo fixes in etc/NEWS and lisp/ files
	f373a23e51 CC Mode: Prevent lone ids being parsed as types unless in ...
	00cb6e052a ; Improve error message when LSP server not found
	7ea95d1b92 ; * doc/misc/eglot.texi (Setting Up LSP Servers): Improve ...
	c43cdfd639 Allow csharp-mode in c-default-style
	13bb49bc0b In project-find-file, add abbreviated file names to history
	4dab5f8671 * lisp/progmodes/project.el (project-vc-name): Fix the :ty...
	079625d3c6 Tramp cleanup
	067c65578e Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/e...
	4313279e34 ; Fix typo in NEWS
	afc7ed987b Allow be-resources to fail
	00de296d1b Simplify erc-sasl's auth-source API
	83b9496a19 * doc/misc/erc.texi: Revise SASL and modules chapters.
	35e2b8a26b Add erc-sasl-auth-source-function to cached options
	7336520fe7 Improve fontification in csharp-ts-mode
	2661c51953 Improve fontification in typescript-ts-mode
	bbf1b93d43 Add more font-lock settings to css-ts-mode
	f794263da2 Reparse tree-sitter tree when buffer restriction changes
	78663ad78b ; typos

	# Conflicts:
	#	etc/NEWS

2022-11-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-29

	a7b0b20c1b Fix GUD item on the menu bar in source buffers

2022-11-28  Mattias Engdegård  <mattiase@acm.org>

	Skip one python test case on macOS

	* test/lisp/progmodes/python-tests.el (python-ffap-module-path-1):
	This test fails with a standard macOS Python installation;
	see bug#59477 and bug#25753.

2022-11-28  Eli Zaretskii  <eliz@gnu.org>

	Bump master Emacs version to 30.0.50

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp:
	* etc/refcards/ru-refcard.tex: Bump Emacs version to 30.0.50.

	* etc/NEWS.29: New file.
	* etc/NEWS: Empty for Emacs 30.

	* configure.ac: Add boilerplate for module-env-XX.h.

	* src/emacs-module.h.in (struct emacs_env_30): Add.
	* src/module-env-29.h: Remove header comment.
	* src/module-env-30.h: New file.

	* lisp/cus-edit.el (customize-changed-options-previous-release):
	Set last version to 29.1.

2022-08-11  Justin Burkett  <justin@burkett.cc>

	Merge commit 'pullreqs/343'

	Ignore .DS_Store

2022-08-11  Justin Burkett  <justin@burkett.cc>

	Merge pull request #342 from tarsiiformes/quote-quote

	Replace or quote certain single quotes in docstrings

2022-08-04  Jonas Bernoulli  <jonas@bernoul.li>

	Allow truncating without using any ellipsis

	Depending on how bindings are displayed showing docstrings can result
	in most lines being too long and adding ellipses to most lines can be
	quite ugly and distracting.

2022-08-04  Jonas Bernoulli  <jonas@bernoul.li>

	Don't make description longer than allowed when truncating

	Truncating the description to the allowed maximal length and then
	appending an ellipsis, makes the final text longer than allowed.
	The length of the ellipsis has to be taken into account.

2022-08-04  Jonas Bernoulli  <jonas@bernoul.li>

	Support different types for which-key-max-description-length

	Using a function is useful, e.g., to use a different maximal
	width, depending on the value of `which-key-show-docstrings'.

2022-08-04  Jonas Bernoulli  <jonas@bernoul.li>

	Avoid unnecessary work

2022-08-04  Jonas Bernoulli  <jonas@bernoul.li>

	Fix vertical off-by-one error

	When the usage information is displayed at the top or bottom (as
	controlled by `which-key-show-prefix'), then we already accounted
	for that by putting (- max-height 1) bindings in each row.  But
	we did not ensure that the max-height is used when displaying the
	result.  Instead we used (- max-height 1) here too.

	When trying to display usage information at the bottom, the result is
	that it is not displayed because it is off-window.  When displaying at
	the top, then it is displayed, but the last binding is off-window and
	never displayed.

	This bug did not matter (much) when using the default settings because
	then the code used for displaying the window actually ignores the
	max-height and just uses the height appropriate to display all lines
	in the buffer (i.e., (+ max-height 1)).  However, other display
	methods, including but not necessarily limited to third-party methods
	(such as `which-key-posframe') may choose to, or absolutely have to,
	respect max-height.  In particular, anything that tries to use the
	full height of a frame or window, will be affected by this.

2022-08-04  Jonas Bernoulli  <jonas@bernoul.li>

	Fix horizontal off-by-one error

	Delay increasing width used by columns until we know that we have to
	do so because we have determined that there is enough room to add an
	additional column and a space between the last two columns.

	If we don't do that, then we can easily get an off-by-one error.  If
	docstrings are shown and the window is narrow, then it is likely that
	we end up using the maximal width.  If we then add one to the actual
	width and later compare that again with the maximal width, then that
	is too width.

2022-08-04  Jonas Bernoulli  <jonas@bernoul.li>

	Don't pad beyond maximal width

	The old implementation behaved as if the "description" is the only
	information that is being displayed, however in actuality the
	available width has to be shared with the key (and the separator
	between the two).

	Failing to take that into account meant that every binding whose
	description isn't *by itself* wider than the width available to
	display all the information got excessive padding, which later has to
	be removed during truncation again (resulting in misleading ellipses).

2022-08-04  Jonas Bernoulli  <jonas@bernoul.li>

	Displaying just one column means pages are arranged vertically

	Third-party display methods may do that without using a side-window,
	and therefore they don't set `which-key-popup-type' to `side-window'.
	Likewise they might not set `which-key-side-window-location', e.g.,
	because their display method only supports one location.

	`which-key-max-display-columns' being 1 is by itself already enough
	of an indicator to know that there won't be multiple columns.

2022-08-04  Jonas Bernoulli  <jonas@bernoul.li>

	Calculate format string only once

2022-05-28  Jonas Bernoulli  <jonas@bernoul.li>

	Replace or quote certain single quotes in docstrings

	The byte-compiler recently got more fussy about quotes.

2022-05-18  Justin Burkett  <justin@burkett.cc>

	Add group to minor-mode definition

	Fixes #339

2022-04-19  Justin Burkett  <justin@burkett.cc>

	Add an example to README for keymap binding

	See #338

2022-02-14  Justin Burkett  <justin@burkett.cc>

	Bump version

2022-02-14  Justin Burkett  <justin@burkett.cc>

	Don't allow transient maps when prefix length is zero.

	Fixes #335

2022-01-02  Justin Burkett  <justin@burkett.cc>

	Fix typo in ellipsis

2022-01-02  Justin Burkett  <justin@burkett.cc>

	Merge pull request #329 from hans-d/feat-elipsis

	add which-key-elipsis

2022-01-02  Justin Burkett  <justin@burkett.cc>

	Merge branch 'feat-columnsize'

	Fix code column width

2022-01-02  Justin Burkett  <justin@burkett.cc>

	Merge pull request #331 from skangas/gnu-elpa-badge

	Add GNU ELPA badge

2022-01-01  Stefan Kangas  <stefankangas@gmail.com>

	Add GNU ELPA badge to README.org

2021-12-24  Hans Donner  <hans@hansdonner.nl>

	add which-key-elipsis

	add which-key-min-column-description-width

2021-12-14  Justin Burkett  <justin@burkett.cc>

	Update to the newer advice API

	Patch submitted by Stefan Monnier

2021-12-09  Justin Burkett  <justin@burkett.cc>

	Fix key-chord handling

	It turns out we don't need to do anything too tricky for key-chords, because
	this-single-command-raw-keys returns the correct key-sequence

	Fixes #254

2021-11-26  Justin Burkett  <justin@burkett.cc>

	Respect which-key-min-display-lines setting

	Fixes #325

2021-11-26  Justin Burkett  <justin@burkett.cc>

	Allow binding to symbols in which-key-C-h-dispatch

	Fixes #326

2021-11-26  Justin Burkett  <justin@burkett.cc>

	Merge pull request #327 from anis-semmar/patch-1

	README.org: fix page flipping command names

2021-11-26  Justin Burkett  <justin@burkett.cc>

	Merge pull request #321 from fredericgiquel/preserve-window-configuration

	Preserve window configuration

2021-11-18  anis-semmar  <78486514+anis-semmar@users.noreply.github.com>

	README.org: fix page flipping command names

	`which-key-show-next-page` / `which-key-show-previous-page` do not exist, state the correct command name.

2021-08-24  Justin Burkett  <justin@burkett.cc>

	Merge pull request #323 from Zetagon/master

	Add missing argument to function call

2021-08-23  Leo Okawa Ericson  <git@relevant-information.com>

	Add missing argument to function call

2021-08-18  Frédéric Giquel  <frederic.giquel@laposte.net>

	Add option (default off) to restore window configuration

2021-08-17  Justin Burkett  <justin@burkett.cc>

	Merge pull request #313 from duncanburke/master

	Add support for help-char being a generalized input event

2021-07-30  Frédéric Giquel  <frederic.giquel@laposte.net>

	Preserve window configuration

2021-07-28  Justin Burkett  <justin@burkett.cc>

	Merge pull request #315 from peniblec/keymap-names

	Fix some keymap names not showing up

2021-07-18  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Fix some keymap names not showing up

	Closes #314.

2021-07-13  Duncan Burke  <duncankburke@gmail.com>

	Add support for help-char being a generalized input event

	Not all keyboard events can be represented as a character. For example,
	while ?\C-h is a character, represented as 8 in decimal, C-M-h is
	represented by 134217736 in decimal, as can be obtained from:

	(elt (kbd "C-M-h") 0)

	It is useful to allow help-char to be set to something other than a
	character, as characters cover only a very small region of possible
	input events. This is especially important because help-char is used to
	bring up the pagination menu (when which-key-use-C-h-commands is t), and
	this won't work if it conflicts with any keybinding within the prefix
	command that led to the activation of which-key.

	If help-char is left set to ?\C-h things work fine because as a
	convention keymaps avoid binding that due to it being the default
	binding for help. That is just a convention, however, and things become
	more difficult with a heavily user-customized set of keybindings that
	preclude the use of ?\C-h for that purpose.

	In that case, if ?\C-h cannot be used, it is much easier to find a
	binding for help-char that is unlikely to conflict with any bindings if
	it is permitted to use the full range of modifier keys.

	This patch modifies which-key--next-page-hint, which is the only place
	that broke when I set help-char to a keyboard event that wasn't a
	character. Rather than doing a string comparison, help-char and prefix
	keys are put in vectors and equality is checked that way.

2021-07-12  Justin Burkett  <justin@burkett.cc>

	Remove more instances of obsolete variables.

2021-07-11  Justin Burkett  <justin@burkett.cc>

	Remove some obsolete variables/functions

2021-07-06  Justin Burkett  <justin@burkett.cc>

	Don't require evil in which-key-tests.el

	Patch from Stefan Monnier

2021-06-30  Justin Burkett  <justin@burkett.cc>

	Fix compiler warnings

	Fixes #312

2021-06-30  Justin Burkett  <justin@burkett.cc>

	Handle closure definition type

	Fixes #311

2021-06-22  Justin Burkett  <justin@burkett.cc>

	Improve which-key-add-keymap-based-replacements.

	Also, teach which-key--safe-lookup-key to handle numeric results.

2021-06-22  Justin Burkett  <justin@burkett.cc>

	Clarify usage of keymap replacements in docstrings and README

	Clean up some docstrings

	Clean up which-key--maybe-replace

2021-06-22  Justin Burkett  <justin@burkett.cc>

	Improve which-key-add-keymap-based-bindings

	Add a test

2021-06-22  Justin Burkett  <justin@burkett.cc>

	Fix key sort order functions

	We now always get the full key description (prefix + binding)

2021-06-22  Justin Burkett  <justin@burkett.cc>

	Try again to fix tests

	Turn off fail-fast in github action

	Try without cask

	Add install python step to github action

2021-06-22  Justin Burkett  <justin@burkett.cc>

	Fix which-key--group-p

	length> is a new function maybe

2021-06-22  Justin Burkett  <justin@burkett.cc>

	Try with cask again

	Fix github action

2021-06-21  Justin Burkett  <justin@burkett.cc>

	Fix test

	Update README

	Make enable-extended-define-key obsolete

	Merge branch 'alt-get-bindings'

	Fix detection of named prefix bindings

	Fix menu-item binding retrieval

	Fix prefix sorting

	Fix add-keymap-based-bindings and associated test

	Expand get-keymap-bindings test

	Fix type usage and arglists for new functions

	Fix default of which-key-replacement-alist

	Update tests

2021-06-21  Justin Burkett  <justin@burkett.cc>

	Remove pseudo binding stuff

	It's not necessary anymore with manual parsing of the keymaps

2021-06-21  Justin Burkett  <justin@burkett.cc>

	Alternative approach to retrieving bindings (WIP)

2021-06-20  Justin Burkett  <justin@burkett.cc>

	Merge pull request #305 from tarsiiformes/first-line

	Improve first doc-string line in trivial cases

2021-06-17  Jonas Bernoulli  <jonas@bernoul.li>

	Improve first doc-string line in trivial cases

	The first line of a doc-string should form a complete sentence.
	Many doc-strings in this package do not follow that convention
	but fixing them all would be difficult and is beyond the scope
	of this commit.  However, in a few cases the fix is trivial and
	this commit tackles those instances.

2021-06-15  Jonas Bernoulli  <jonas@bernoul.li>

	Fix whitespace

2021-06-01  Justin Burkett  <justin@burkett.cc>

	Fix whitespace

	Fix recent commit

	Fix README links

2021-06-01  Justin Burkett  <justin@burkett.cc>

	Reference issues #93 and #175 in README

	Fixes #291

2021-06-01  Justin Burkett  <justin@burkett.cc>

	Merge pull request #303 from tarsiiformes/posframe

	Support packages that use another frame to display bindings

2021-05-30  Jonas Bernoulli  <jonas@bernoul.li>

	Get which-key--buffer's window from any frame

	Previously we assumed the buffer was being displayed in a window
	of the current frame, which isn't the case if e.g. a child frame
	is being used.

	We also cannot assume that the third-party code that sets up such
	a child frame also deletes it.  `which-key-posframe' for example
	merely hides it.

2021-05-30  Jonas Bernoulli  <jonas@bernoul.li>

	Cosmetics

	Avoid code-duplication in which-key--hide-popup

	Fix nesting-level of "God-mode" section

2021-05-23  Jiangbin Zhao  <zhaojiangbin@gmail.com>

	fix which-key--show-keymap for which-key-enable-extended-define-key

	With which-key-enable-extended-define-key set to 't, given the keymap
	and bindings below:

	  (setq a-map (make-sparse-keymap))
	  (bind-keys :map a-map
	             ("a" . ("key 1" . command-1))
	             ("b" . ("key b" . command-2)))

	The output of (which-key--get-keymap-bindings a-map) was having
	"unknown" as the key descriptions.

	This change fixes it therefore allows the following to work as
	expected:

	(which-key--show-keymap "A map" a-map)

2021-04-07  Frank Terbeck  <ft@bewatermyfriend.org>

	Unset header-line-format format in " *which-key*" buffer

	Similarly to mode-line-format, header-line-format just takes up space and
	currently also breaks window size calculations for the buffer. This sets
	it to nil in order to suppress its display.

2021-03-24  Celestial Nebula  <41875671+CelestialNebula@users.noreply.github.com>

	Update reference to obsolete variable in DOCSTRING (#285)

2021-01-31  Justin Burkett  <justin@burkett.cc>

	Version 3.5.1

2020-12-16  Justin Burkett  <justin@burkett.cc>

	Further simplify which-key--pseudo-key

2020-12-15  Daniel Mendler  <mail@daniel-mendler.de>

	simplify pseudo key

2020-11-13  BlaCk_Void  <alstjr7375@daum.net>

	README code's Number of parentheses pairs (#270)

2020-10-19  Justin Burkett  <justin@burkett.cc>

	Add tests for keymap-based-bindings

2020-10-18  Justin Burkett  <justin@burkett.cc>

	Clarify README's description of keymap-based replacement

2020-09-09  Justin Burkett  <justin@burkett.cc>

	Version 3.5.0

2020-09-09  Justin Burkett  <justin@burkett.cc>

	Fix which-key--next-page-hint

	prefix-keys might be a vector.

	Fixes #265

2020-09-08  Justin Burkett  <justin@burkett.cc>

	Hide paging hint when prefix is help-char

	We can't do paging in this case.

2020-09-04  Justin Burkett  <justin@burkett.cc>

	Improve keymap-based-replacement description in README

	Ref #263

2020-09-02  Justin Burkett  <justin@burkett.cc>

	Remove use of focus-{in,out}-hook

	Fix #259 #260 #262

2020-08-28  Justin Burkett  <justin@burkett.cc>

	Remove testing badge from README

	Github integrates the results into the interface already, and it doesn't seem to
	work.

2020-08-28  Justin Burkett  <justin@burkett.cc>

	Stop testing against v24.5

	It's old enough now

2020-08-28  Justin Burkett  <justin@burkett.cc>

	Add which-key-add-keymap-based-replacements

	This is an alternative to advising define-key using
	which-key-enable-extended-define-key, but functions the same beneath the
	surface.

	Ref #226 #261

2020-08-18  Rudi Grinberg  <me@rgrinberg.com>

	Fix #257 (#258)

	* Add test for #257

	Explicitly distinguish between replacing with `nil` and not replacing at
	all.

	I'm also simplifying the code by making all the branches more explicit.
	This is a little longer, but makes all the clauses obvious.

2020-07-21  Rudi Grinberg  <me@rgrinberg.com>

	Speed up which-key--maybe-replace

	The first optimization is avoiding the intermediate list created by
	append. Instead we just iterate over the two lists in turn

	The second opimitization occurs where
	which-key-allow-multiple-replacements is nil, in which case we can stop
	the iteration once we've found a replacement

2020-07-21  Justin Burkett  <justin@burkett.cc>

	Add basic PR template

2020-07-02  N V  <44036031+progfolio@users.noreply.github.com>

	Fix which-key--propertize-description use make-text-button return value (#249)

	As of:

	https://github.com/emacs-mirror/emacs/commit/7ac79872aed63110c0d26c1e62e1838d6101c9bd

	make-text-button no longer modifies a string when it is passed as the
	first argument. which-key--propertize-description relied on the mutation
	of the string argument. Using the return value of make-text-button will
	return the propertized string with both the new and old behavior.

	Fixes #248

2020-02-17  Justin Burkett  <justin@burkett.cc>

	Fix last commit

2020-02-16  Justin Burkett  <justin@burkett.cc>

	Test once a month

2020-02-16  Yunhao Zhao  <yunhaozhaots@gmail.com>

	Fix prefix argument for which-key-show-major-mode (#239)

2020-02-12  Justin Burkett  <justin@burkett.cc>

	Fix case sorting in alpha sort functions

2020-02-12  Justin Burkett  <justin@burkett.cc>

	Fix short windows being resized

	fit-window-to-buffer defaults to a min height of 4. For some reason, the order
	in which fit-window-to-buffer is called in display-buffer-in-side-window seems
	to have changed. This makes the order not matter.

2020-02-08  Justin Burkett  <justin@burkett.cc>

	Simplify last commit

2020-02-08  Justin Burkett  <justin@burkett.cc>

	Replace use of xor

	Apparently this is a recent function

2020-02-08  Justin Burkett  <justin@burkett.cc>

	Change name of workflow

2020-02-08  Justin Burkett  <justin@burkett.cc>

	Fix sorting of keys and add test

	Fixes #233

2020-02-07  Justin Burkett  <justin@burkett.cc>

	Revive Cask file

	Replace travis badge with github workflow badge

	Disable travis and cask

	More workflow fixes

	Fix workflow

	Fix previous commit

	Try purcell's workflow action

	Update travis versions

2020-02-07  Henrik Lissner  <accounts@v0.io>

	Refactor regexp & fix incompatibility + error

	Strip out advice in command docstrings

2020-02-04  Justin Burkett  <justin@burkett.cc>

	Make which-key-show prefix mode-line work like top and bottom

	Fixes #234

2020-01-19  Justin Burkett  <justin@burkett.cc>

	Add full keymap versions of show-{major,minor}-mode

	Fixes #236

2020-01-02  Henrik Lissner  <accounts@v0.io>

	Refactor regexp & fix incompatibility + error

2019-12-26  Henrik Lissner  <accounts@v0.io>

	Strip out advice in command docstrings

2019-12-21  Justin Burkett  <justin@burkett.cc>

	Make next page hint more consistent

2019-12-21  Justin Burkett  <justin@burkett.cc>

	Generalize C-h commands to use help-char

	help-char defaults to C-h. This removes the assumption that help-char is set to
	C-h.

	See #228

2019-11-27  Justin Burkett  <justin@burkett.cc>

	Default to imprecise window fitting on terminal

	See #225.

2019-11-11  Jonas Bernoulli  <jonas@bernoul.li>

	Fix typos (#222)

2019-08-02  Justin Burkett  <justin@burkett.cc>

	Rework implementation of manual updating

	Instead of having people mess with prefix-help-command, use a new variable
	which-key-show-early-on-C-h and control everything through
	which-key-C-h-dispatch.

2019-08-01  Justin Burkett  <justin@burkett.cc>

	Use which-key-idle-secondary-delay value in manual updates

2019-07-31  Justin Burkett  <justin@burkett.cc>

	Fix paging in which-key-manual-update

	Cleanup whitespace in README

	Announce which-key-manual-update

2019-07-31  Justin Burkett  <justin@burkett.cc>

	Add which-key-manual-update

	Intended to be used for prefix-help-command

	Ref #66

2019-07-23  Justin Burkett  <justin@burkett.cc>

	Add no-paging optional arg to which-key-show-keymap

	which-key-persistent-popup-p -> which-key-persistent-popup

2019-07-20  Uros Perisic  <uros.m.perisic@gmail.com>

	Add which-key-persistent-popup-p variable (#213)

	I did not remove the `pre-command-hook', because that would require me
	to add the hook back every time `which-key--hide-popup' is called,
	which seems excessive. Hercules.el already handles this more
	conservatively. But if you want me to, I can add it.

2019-05-29  D.K  <beerandhot@gmail.com>

	Add translation keymap support (#210)

2019-05-18  Justin Burkett  <justin@burkett.cc>

	Add which-key-dump-bindings

	Fixes #209

2019-03-15  Justin Burkett  <justin@burkett.cc>

	Add note to docstring for which-key-idle-delay

	Ref #206

2019-03-06  Justin Burkett  <justin@burkett.cc>

	Add debugging messages for buffer sizing

2019-03-01  Justin Burkett  <justin@burkett.cc>

	Don't ignore case when making replacements

	Fixes #204

2019-02-25  Justin Burkett  <justin@burkett.cc>

	Version 3.3.2

	Always check non-major-mode replacements in which-key--maybe-replace

2019-02-25  Justin Burkett  <justin@burkett.cc>

	Simplify finding and matching replacements

	Don't try to grab all matching replacements ahead of time, because later ones
	may not match if earlier ones make deletions.

	Fixes #202

2018-11-14  Justin Burkett  <justin@burkett.cc>

	Version 3.3.1

2018-11-14  Justin Burkett  <justin@burkett.cc>

	Fix use of describe-prefix-bindings in which-key-show-standard-help

	Use describe-prefix-bindings directly if we do not enter through
	which-key-C-h-dispatch.

	Fixes #198

2018-11-08  Justin Burkett  <justin@burkett.cc>

	Check for existence of buffer in which-key--popup-showing-p

	Fixes #197

2018-08-28  Justin Burkett  <justin@burkett.cc>

	Mention #130 in README

2018-06-27  Justin Burkett  <justin@burkett.cc>

	Make Travis test on v26.1

2018-06-21  Justin Burkett  <justin@burkett.cc>

	Version 3.3.0

2018-06-08  Justin Burkett  <justin@burkett.cc>

	Fix handling of duplicate (evil) bindings in show keymap

2018-06-01  Justin Burkett  <justin@burkett.cc>

	Use window-size-change-functions for detecting size changes

	Fixes #193

2018-05-31  Justin Burkett  <justin@burkett.cc>

	Add support for evil's auxiliary maps in show-keymap functions

	Fix prefix bindings in which-key-show-major-mode

2018-05-22  Justin Burkett  <justin@burkett.cc>

	Fix behavior of f and t in evil operator map

	f and t (also F and T) read characters manually, so the popup should not be
	shown after these commands. This only applies if
	which-key-show-operator-state-maps is non-nil.

	Fixes #191

2018-04-26  Justin Burkett  <justin@burkett.cc>

	Version 3.2.0

2018-03-21  Michał K  <k.michal@zoho.com>

	Fix and improve defcustoms

2018-03-01  Justin Burkett  <justin@burkett.cc>

	Fix switching to top-level from which-key-undo-key

	Factor out which-key--this-command-keys function

	Fixes related to removal of which-key--current-prefix

2018-02-28  Justin Burkett  <justin@burkett.cc>

	Fix display of meta bindings in which-key-show-keymap

	Fix which-key--create-pages

	Remove which-key--current-prefix

2018-02-28  Justin Burkett  <justin@burkett.cc>

	Add prefix arg to which-key--get-current-bindings and ..

	which-key--get-bindings

2018-02-28  Justin Burkett  <justin@burkett.cc>

	Remove a bunch of global variables

	Remove need for which-key--using-top-level. Add prefix-title slot to
	which-key--pages object.  Remove which-key--using-show-keymap. Remove
	which-key--current-show-keymap-name. Remove
	which-key--using-show-operator-keymap.

2018-02-28  Justin Burkett  <justin@burkett.cc>

	Add and use which-key--automatic-display

2018-02-27  Justin Burkett  <justin@burkett.cc>

	Use cl-struct to hold which-key pages

2018-02-26  Justin Burkett  <justin@burkett.cc>

	Add which-key-toggle-docstrings

	Consolidate key binding collection into which-key--get-bindings

	Refactor show keymap functions

	Use symbol at point in whow keymap functions

2018-02-26  Justin Burkett  <justin@burkett.cc>

	Fix which-key--show-keymap when no bindings found

	which-key--get-formatted-key-bindings takes a nil argument to mean look for
	global bindings which is not what we want here.

2018-02-26  Justin Burkett  <justin@burkett.cc>

	Detect menu-items in which-key--get-keymap-bindings

2018-02-24  Justin Burkett  <justin@burkett.cc>

	Fix typo in previous commit

	Fix docstring of which-key--get-keymap-bindings

	Fix descriptions of keys involving meta when showing keymaps

2018-02-23  Justin Burkett  <justin@burkett.cc>

	Autoload the show keymap functions

2018-02-23  Justin Burkett  <justin@burkett.cc>

	Add which-key-show-full-keymap

	Command to show all bindings in a keymap recursively.

	Add test for new which-key--get-keymap-bindings functionality.

2018-02-23  Justin Burkett  <justin@burkett.cc>

	Extract which-key--ignore-keys-regexp and which-key-show-keymap-1

2018-01-31  Justin Burkett  <justin@burkett.cc>

	Improve which-key--format-and-replace

	Do a better job with nil descriptions

2018-01-31  Justin Burkett  <justin@burkett.cc>

	Handle null description in which-key--propertize-description

	Fixes #186

2018-01-31  Justin Burkett  <justin@burkett.cc>

	Use safe version of propertize

	Should fix #186

2018-01-31  Justin Burkett  <justin@burkett.cc>

	Fix description truncation when showing docstrings

2018-01-31  Justin Burkett  <justin@burkett.cc>

	Improve which-key-show-docstrings option

	Add setting docstring-only to omit command names. Add which-key-docstring-face.

	See #185

2018-01-31  Justin Burkett  <justin@burkett.cc>

	Add option to show docstrings in which-key buffer

	Implements a simple version of the suggestion in #185

2018-01-09  Justin Burkett  <justin@burkett.cc>

	Remove debugging message

2018-01-09  Justin Burkett  <justin@burkett.cc>

	Implement #182

	Allow single digit arg to be set after C-h

2018-01-09  Justin Burkett  <justin@burkett.cc>

	Version 3.1.0

2017-12-18  Justin Burkett  <justin@burkett.cc>

	Fix and improve define-key based replacements

	Check for equality of definition as well as the key sequence. Unless it's a
	prefix binding, in which case only check the key sequence.

	Make sure we apply kbd when looking up pseudo bindings.

	Move the logic into which-key--get-pseudo-binding.

2017-12-17  Justin Burkett  <justin@burkett.cc>

	Merge pull request #183 from tarsiiformes/silencio

	Define which-key--current-key-list before using it

2017-12-17  Jonas Bernoulli  <jonas@bernoul.li>

	Define which-key--current-key-list before using it

	Actually move the definition of the caller which-key--pseudo-key
	instead.

2017-12-17  Justin Burkett  <justin@burkett.cc>

	Simplify implementation of define-key based replacements

	When a description is provided through define-key using a definition
	like ("description" . def) place a additional binding in the map to a "pseudo
	key" making it easy for which-key to find these descriptions on the fly and at
	the right time (i.e., when the binding is active).

	which-key-enable-extended-define-key must be enabled for this to have an
	effect.

2017-12-15  Justin Burkett  <justin@burkett.cc>

	Improve which-key--process-define-key-args

	Specify Prefix Command as an explicit match string to cut down on false
	positives.

2017-12-14  Justin Burkett  <justin@burkett.cc>

	Announce which-key-enable-extended-define-key in README

	Demote errors in which-key--process-define-key-args

2017-12-13  Justin Burkett  <justin@burkett.cc>

	Fix .travis.yml

	Didn't install cask

2017-12-13  Justin Burkett  <justin@burkett.cc>

	Fix travis build

	Add support for 25.3. Remove for 24.3

2017-12-13  Justin Burkett  <justin@burkett.cc>

	Allow null DEF in which-key--process-define-key-args

	This is useful for naming prefixes

2017-12-13  Justin Burkett  <justin@burkett.cc>

	Add which-key-enable-extended-define-key customization option

	Adds supporting which-key--process-define-key-args.

	The docstring for the option is

	Advise `define-key' to make which-key aware of definitions of the form

	  (define-key KEYMAP KEY '("DESCRIPTION" . DEF))

	With the advice, this definition will have the side effect of creating a
	replacement in `which-key-replacement-alist' that replaces DEF with DESCRIPTION
	when the key sequence ends in KEY. Using a cons cell like this is a valid
	definition for `define-key'. All this does is to make which-key aware of it.

	Since many higher level keybinding functions use `define-key' internally, this
	will affect most if not all of those as well.

	This variable must be set before loading which-key.

2017-12-07  Justin Burkett  <justin@burkett.cc>

	Fix ordering of default replacement-alist

	When which-key-allow-multiple-replacements is nil, this order is required to get
	the intended behavior with left and right.

	Ref #181

2017-12-05  Justin Burkett  <justin@burkett.cc>

	Add notes about paging commands not working with minibuffer

2017-11-14  Justin Burkett  <justin@burkett.cc>

	Re-indent README

	Mention which-key-show-major-mode in README

	Consolidate use of binding filters

	Improve echo area note for which-key-show-major-mode

2017-11-13  Justin Burkett  <justin@burkett.cc>

	Add which-key-show-major-mode

	This is a new function to discover bindings, including evil ones, in the keymap
	of the current major mode. It should be considered experimental at the moment.

2017-08-17  Justin Burkett  <justin@burkett.cc>

	Update which-key version for GNU ELPA

2017-08-09  Justin Burkett  <justin@burkett.cc>

	Make minor changes to commentary in which-key.el

2017-08-07  Justin Burkett  <justin@burkett.cc>

	Assign copyright to FSF for ELPA

2017-05-30  Justin Burkett  <justin@burkett.cc>

	Fix which-key-show-remaining-keys option

2017-05-28  Justin Burkett  <justin@burkett.cc>

	Version 3.0.1

2017-05-27  Justin Burkett  <justin@burkett.cc>

	Handle C-h when buffer not showing

	which-key-C-h-dispatch was not doing anything different if the which-key buffer
	was not showing. This makes it fall back to the standard Emacs behavior.

	Fixes #172

2017-05-21  Justin Burkett  <justin@burkett.cc>

	Merge pull request #171 from wyuenho/patch-1

	Customize which-key-sort-order with list

2017-05-21  Jimmy Yuen Ho Wong  <wyuenho@users.noreply.github.com>

	Customize which-key-sort-order with list

	This will display a list the user can choose from in customize instead of having them to type

2017-05-19  Justin Burkett  <justin@burkett.cc>

	Adhere to 80 chars per column

2017-05-19  Justin Burkett  <justin@burkett.cc>

	Use regexp-opt for regexps

	* lisp/which-key.el (which-key--get-keymap-bindings): Update

2017-05-19  Justin Burkett  <justin@burkett.cc>

	Fixup previous commit

	* lisp/which-key.el (which-key--compute-binding): Need to copy name of remapped
	  command

	Fixes #170

2017-05-19  Justin Burkett  <justin@burkett.cc>

	Add which-key-compute-remaps option

	* lisp/which-key.el (which-key--compute-binding): Add
	(which-key--get-current-bindings): Modify to use prev function
	(which-key-compute-remaps): Add option

	Fixes #169

2017-05-16  Justin Burkett  <justin@burkett.cc>

	Version 3.0

2017-05-16  Justin Burkett  <justin@burkett.cc>

	Prepare for ELPA release

	Update min emacs version to 24.4 to remove backported functions. Remove outdated
	comments.

2017-05-16  Justin Burkett  <justin@burkett.cc>

	Add .cask to gitignore

	Update emacs versions for Travis

2017-05-01  Justin Burkett  <justin@burkett.cc>

	Make -init-buffer-hook a custom var

2017-04-27  Justin Burkett  <justin@burkett.cc>

	Add option to show transient maps

	Set which-key-show-transient-maps to a non-nil value to use this feature.

	When a transient map is active and it is not a hydra, show the keys from the
	map.

	Fixes #164

2017-04-18  Justin Burkett  <justin@burkett.cc>

	Improve which-key--any-match-p

2017-04-07  Justin Burkett  <justin@burkett.cc>

	Fix customize type for replacement-alist

	Ref #165

2017-03-15  Justin Burkett  <justin@burkett.cc>

	Fix replacement of keys when prefix is nil

	The prefix is nil at the top-level keymap

	Fixes #163

2017-02-09  Justin Burkett  <justin@burkett.cc>

	Fix handling of key ranges ("a .. d")

	When the last key in the key sequence is a range, extract the whole range
	instead of just the final key.

	Fixes #161

2017-02-07  Justin Burkett  <justin@burkett.cc>

	Version 2.0

	Increased major version for replacement list changes

2016-12-22  Justin Burkett  <justin@burkett.cc>

	Add which-key-show-prefix 'mode-line option

	See #157

2016-12-20  Justin Burkett  <justin@burkett.cc>

	Update README

2016-12-20  Justin Burkett  <justin@burkett.cc>

	Add which-key-max-display-columns

	See #157

2016-12-15  Justin Burkett  <justin@burkett.cc>

	Remove unused variable

2016-12-15  Justin Burkett  <justin@burkett.cc>

	Fix #156 by allowing multiple replacements

	Add which-key-allow-multiple-replacements which can be set to allow multiple
	replacements from which-key-replacement-alist to apply to a key binding.

	Switch from using assoc-default to find replacements to
	which-key--get-replacements.

	Adjusts tests and add a new one for multiple replacements.

2016-12-12  Justin Burkett  <justin@burkett.cc>

	Tweak TOC in README and fix a link

2016-12-07  Justin Burkett  <justin@burkett.cc>

	Add a missing type declaration

2016-12-05  Justin Burkett  <justin@burkett.cc>

	Prevent display from occurring twice in a row

	Found some cases where this could happen with a secondary idle delay.

2016-12-05  Justin Burkett  <justin@burkett.cc>

	Add basic timing facility for debugging.

2016-12-01  Justin Burkett  <justin@burkett.cc>

	Remove old obsolete variables/functions

	Add some docstrings

	Remove some unused functions

	Fixup last commit part 2

	Fixup last commit

	Support functions in -add-key-based-replacements

2016-11-30  Justin Burkett  <justin@burkett.cc>

	Fix links to users in README

	Add @pdcawley's example to README

	Add test for #155

2016-11-30  Justin Burkett  <justin@burkett.cc>

	Fix bug in last commit

	The regexp-quote docstring is misleading since (regexp-quote "SPC x") will match
	"SPC x c". Added back the beginning and end markers in the regexp.

2016-11-30  Justin Burkett  <justin@burkett.cc>

	Quote regexp in -add-key-based-replacements

	Should fix #154

2016-11-29  Justin Burkett  <justin@burkett.cc>

	Fix a README link

	Normalize key sequences from -add-key-based-replacements

2016-11-28  Justin Burkett  <justin@burkett.cc>

	Simplify --format-and-replace

2016-11-25  Justin Burkett  <justin@burkett.cc>

	Fix use of function in -replacement-alist

	Wasn't actually deleting nil results

2016-11-25  Justin Burkett  <justin@burkett.cc>

	Don't use case-fold-search in --maybe-replace

	See https://github.com/syl20bnr/spacemacs/issues/7837#issuecomment-262938480

2016-11-22  Justin Burkett  <justin@burkett.cc>

	Update test

2016-11-22  Justin Burkett  <justin@burkett.cc>

	Consolidate replacements into one alist

	New list is which-key-replacement-alist. See docstring.

	The following lists are deprecated. Some basic backwards compatibility is
	attempted, but more complicated configs will likely break.

	which-key-key-replacement-alist
	which-key-key-based-description-replacement-alist
	which-key-description-replacement-alist

	which-key-binding-filter-function was removed, since it's functionality is
	mostly replaced by which-key-replacement-alist

	Updated README

2016-11-06  Justin Burkett  <justin@burkett.cc>

	Move sort after filter op in --get-formatted-key-bindings

2016-10-31  Justin Burkett  <justin@burkett.cc>

	Update comment in --show-buffer-side-window for prior change

2016-10-31  Justin Burkett  <justin@burkett.cc>

	Remove use of display-buffer-in-major-side-window

	According to emacs bug #24828, this is an internal function and should
	not be used. Following the advice from that report, switch to
	display-buffer-in-side-window and add an option for the user to specify
	the slot value for that function.

	Fixes #146

2016-10-29  Justin Burkett  <justin@burkett.cc>

	Add which-key-binding-filter-function

	Can be used to arbitrarily manipulate key bindings, including deleting
	them, before they are processed by which-key. See docstring for usage.

	Fixes #152
	https://github.com/syl20bnr/spacemacs/issues/7582

2016-10-29  Justin Burkett  <justin@burkett.cc>

	Add sort option -prefix-then-key-order-reverse

	Fixes #145

2016-10-29  Justin Burkett  <justin@burkett.cc>

	Add global option for how to sort case

	which-key-sort-uppercase-first (default t)

	See #145

2016-10-18  Justin Burkett  <justin@burkett.cc>

	Merge pull request #149 from rdotdk/patch-1

	fix link

2016-10-16  Hariharan R  <hariharanrangasamy@gmail.com>

	fix link

2016-10-05  Justin Burkett  <justin@burkett.cc>

	Fix test for recent prefix-name change

2016-10-05  Justin Burkett  <justin@burkett.cc>

	Make 458c8d9 backwards compatible

	The prefix titles need to be in cons cells to stay consistent with how
	they were used before.

2016-10-05  Justin Burkett  <justin@burkett.cc>

	Move a function for the compiler

2016-10-05  Justin Burkett  <justin@burkett.cc>

	Consolidate prefix names and key-based replacements

	Make obsolete several redundant functions, the most important of which
	is which-key-declare-prefixes. This is just an alias for
	which-key-add-key-based-replacements now. The additional functionality
	that declare-prefixes had (for declaring prefix titles) is now rolled
	into the add-key-based-replacements function. See that functions doc
	string.

2016-10-04  Justin Burkett  <justin@burkett.cc>

	Fix -maybe-get-prefix-title use of key-binding

	key-binding doesn't work with all forms of key strings.

	See #143

2016-09-11  justbur  <justin@burkett.cc>

	Resize popup when frame resized

	Fixes #139

2016-09-01  Justin Burkett  <justin@burkett.cc>

	Merge pull request #137 from tarsius/outlines

	Follow conventions for section headers

2016-09-01  Justin Burkett  <justin@burkett.cc>

	Merge pull request #136 from tarsius/fixup

	Move definition of which-key--local-binding-p

2016-09-01  Jonas Bernoulli  <jonas@bernoul.li>

	Follow conventions for section headers

	Doing so allows the use of `outline-minor-mode' makes it possible
	to navigate sections similarly to how that is done in `org-mode'.

2016-08-31  Jonas Bernoulli  <jonas@bernoul.li>

	Move definition of which-key--local-binding-p

	It has to be defined after the inline functions which it uses.

2016-08-17  Justin Burkett  <justin@burkett.cc>

	Version 1.1.15

	Add note about setting delay to zero

2016-08-17  Justin Burkett  <justin@burkett.cc>

	Fix minibuffer echo not displaying

	See #133

2016-07-28  justbur  <justin@burkett.cc>

	Version 1.1.14

	Tagged wrong commit

2016-07-28  justbur  <justin@burkett.cc>

	Disable hack for echo area

	Seems to cause more problems (like completion commands sometimes being
	overwritten) than it solves.

2016-07-27  justbur  <justin@burkett.cc>

	Fix Makefile

2016-07-09  justbur  <justin@burkett.cc>

	Add allow-imprecise-window-fit option

	Possible fix for #130

	When enabled this option avoids the use of fit-window-to-buffer to
	resize the popup. My profiling suggested that emacs was spending a lot
	of time in this function (and hanging sometimes) with different fonts. I
	noticed this with Roboto Mono on MSWindows, which should explain #130.

2016-07-06  justbur  <justin@burkett.cc>

	Explicitly set tab-width when collecting bindings

	For some reason indent-tabs-mode doesn't use tabs with strange
	tab-widths.

	See https://github.com/syl20bnr/spacemacs/issues/6497

2016-07-05  justbur  <justin@burkett.cc>

	Fix previous commit

2016-07-05  justbur  <justin@burkett.cc>

	Add whitelist and blacklist options

	which-key-allow-regexps is a list of regexps that allow the popup when
	one is matched

	which-key-inhibit-regexps inhibits the popup when one regexp matches

	The string matched against is the current key sequence as produced by
	key-description.

	Fixes #129

2016-06-17  justbur  <justin@burkett.cc>

	Remove setup code

	It's no longer necessary and makes changing echo-keystrokes annoying.

2016-06-16  justbur  <justin@burkett.cc>

	Make current-prefix nil when not showing popup

	Use sit-for instead of timer for delay functions

2016-06-15  justbur  <justin@burkett.cc>

	Fix arg to which-key-delay-functions

2016-06-15  justbur  <justin@burkett.cc>

	Redesign delayed keys implementation

	Everything is controlled through which-key-delay-functions now.

	Ref #128

2016-06-10  justbur  <justin@burkett.cc>

	Fix bug in previous commit

2016-06-10  justbur  <justin@burkett.cc>

	Introduce delayed prefixes

	One version of idea in #128. This design is subject to change.

2016-05-27  justbur  <justin@burkett.cc>

	Bump version

2016-05-27  justbur  <justin@burkett.cc>

	Fix performance issue with secondary timer

	The secondary timer option was restarting the timer every time through
	the update function, which caused the cpu to max out. Adds a flag so
	that the timer is only restarted when necessary.

	Fixes #126

2016-05-26  justbur  <justin@burkett.cc>

	Bump version

	Fix --echo when echo-keystrokes nil

2016-05-25  justbur  <justin@burkett.cc>

	Remove some unused code in comments

2016-05-24  justbur  <justin@burkett.cc>

	Change name of arg in define-key-recursively

	Also clarify docstring

2016-05-17  justbur  <justin@burkett.cc>

	New screenshots

	More cleanup of README

	README typo

	Fix comment about special keys in README

	Update docs for new sort function

2016-05-16  justbur  <justin@burkett.cc>

	Add which-key-local-then-key-order

	To use (setq which-key-sort-order 'which-key-local-then-key-order)

	See #125

2016-05-13  justbur  <justin@burkett.cc>

	Bump version

2016-05-12  justbur  <justin@burkett.cc>

	Account for echo-keystrokes = which-key-idle-delay

	Ref #123

2016-05-07  justbur  <justin@burkett.cc>

	Bump version

2016-05-07  Justin Burkett  <justin@burkett.cc>

	Merge pull request #122 from redguardtoo/master

	tooltip-mode does in exist in emacs-nox #120

2016-05-07  Chen Bin  <chenbin.sh@gmail.com>

	tooltip-mode does in exist in emacs-nox #120

2016-05-05  justbur  <justin@burkett.cc>

	Bump version

2016-05-05  justbur  <justin@burkett.cc>

	Backport two frame width functions for 24.3 support

	Fixes #119

2016-04-27  Justin Burkett  <justin@burkett.cc>

	Merge pull request #116 from cute-jumper/master

	Fix god mode advice

2016-04-27  Junpeng Qiu  <qjpchmail@gmail.com>

	Fix god mode advice

	See https://github.com/justbur/emacs-which-key/pull/115

2016-04-26  justbur  <justin@burkett.cc>

	Merge branch 'god-mode'

2016-04-26  justbur  <justin@burkett.cc>

	Add advice for god-mode support to hide popup

	The standard way to hide the popup before the command is not working.

2016-04-26  justbur  <justin@burkett.cc>

	Fix minor issues with god-mode support

	Make sure advice is activated for god-mode-lookup-command

	Check for null which-key--god-mode-key-string

2016-04-26  justbur  <justin@burkett.cc>

	Better default for which-key-echo-keystrokes

	Fixes #114

2016-04-26  justbur  <justin@burkett.cc>

	Add third-party section to which-key.el

	Add third-party support section to readme

2016-04-26  justbur  <justin@burkett.cc>

	Add support for god-mode

	Needs to be explicitly activated by calling
	(which-key-enable-god-mode-support)

2016-04-19  justbur  <justin@burkett.cc>

	Bump version

	Use new history var for keymap selection

2016-04-17  justbur  <justin@burkett.cc>

	Bump version

2016-04-17  justbur  <justin@burkett.cc>

	Explicitly initialize variable-name-history

	See #110

2016-04-17  justbur  <justin@burkett.cc>

	Bump version

2016-04-17  justbur  <justin@burkett.cc>

	Declare variable-name-history

	Fixes #110

2016-04-10  justbur  <justin@burkett.cc>

	Bump version

	Support key ranges below top level

2016-04-06  justbur  <justin@burkett.cc>

	Add badge

2016-04-05  justbur  <justin@burkett.cc>

	Trigger travis

	Set up travis

	Bump version

	Fix problem where prefix-title-alist was not updated

	Fix docstring typo

	Add tests

	Bump version

2016-04-05  justbur  <justin@burkett.cc>

	Fix bug in declare-prefixes-for-mode

	Fixes #109

2016-03-31  justbur  <justin@burkett.cc>

	Fix key-chord problem

	See the note in which-key--update

2016-03-31  justbur  <justin@burkett.cc>

	Support key-chord

	Fixes #108

2016-03-22  justbur  <justin@burkett.cc>

	Version 1.0

	Cleanup for 1.0 release

2016-03-17  justbur  <justin@burkett.cc>

	Make show-standard-help narrow to prefix

	This is what describe-prefix-bindings does and it should be consistent.

2016-03-14  justbur  <justin@burkett.cc>

	Shorten lighter name

2016-03-14  Will S. Medrano  <will.s.medrano@gmail.com>

	made minor mode lighter customizable

2016-03-11  justbur  <justin@burkett.cc>

	Disable special-keys option by default

	It's probably too surprising to have enabled by default.

2016-03-10  justbur  <justin@burkett.cc>

	Fix compiler warnings

	Fixes #106

2016-03-03  justbur  <justin@burkett.cc>

	Increment version

2016-03-03  justbur  <justin@burkett.cc>

	Fix bug when show-prefix is left and there is one line

	Fixes #104

2016-02-29  justbur  <justin@burkett.cc>

	Export reload-key-sequence function

	Fixes #103

2016-02-13  Justin Burkett  <justin@burkett.cc>

	Merge pull request #102 from zonuexe/master

	Disable show-trailing-whitespace

2016-02-13  USAMI Kenta  <tadsan@zonu.me>

	Disable show-trailing-whitespace

2016-02-09  justbur  <justin@burkett.cc>

	Add missing case for which-key-show-prefix

	nil is a valid value for this option.

2016-02-07  justbur  <justin@burkett.cc>

	Add which-key-is-verbose

	Allows one to silence messages which may not indicate an error.

2016-02-03  justbur  <justin@burkett.cc>

	Refactor create-pages and show-page

	Improve some function names

	Don't pass window-width around

2016-02-03  justbur  <justin@burkett.cc>

	Fix problems with operator keymap function

	1. Introduce using-show-keymap and using-show-operator-keymap vars to
	make it clear how we are entering which-key

	2. Add inhibit-next-operator-keymap for keys in the operator maps that
	are bound to commands that read the next key "manually"

	3. Fix problem where the next page hint was only being shown sometimes
	in the operator maps. Need to distinguish between show-operator-keymap
	and the possibility that an operator is active but the usual which-key
	popup is showing.

2016-02-03  justbur  <justin@burkett.cc>

	Simplify page turning function

2016-02-03  justbur  <justin@burkett.cc>

	Use keyboard-quit in abort key sequence

	Need to do this for the operator keymap function. Otherwise the operator
	state doesn't exit properly

2016-02-03  justbur  <justin@burkett.cc>

	Comment out window var and add new func

	The window var is not being used.

2016-01-30  justbur  <justin@burkett.cc>

	Don't listify key sequence repeatedly

	This function is not idempotent it turns out.

2016-01-30  justbur  <justin@burkett.cc>

	Interpret ESC in operator popup

	See #99

2016-01-28  justbur  <justin@burkett.cc>

	Improve previous commit

	Filter out keys with :suppress-keymap property, which seem to be the
	primary ones ignored in operator state

2016-01-28  justbur  <justin@burkett.cc>

	Merge branch 'master' of https://github.com/justbur/emacs-which-key

	Initial try at addressing #99

2016-01-26  Justin Burkett  <justin@burkett.cc>

	Merge pull request #100 from yatesco/patch-1

	Trivial fix correcting SpacEmacs

2016-01-26  Colin Yates  <colin@colinyates.co.uk>

	Trivial fix correcting SpacEmacs

2016-01-18  justbur  <justin@burkett.cc>

	Add which-key-idle-secondary-delay

	Allows the delay time to be different for popups that follow an initial
	popup within the same key sequence.

2016-01-11  justbur  <justin@burkett.cc>

	Fix problem with side-window dimension calculation

	The fringes were not being included in version 24. This makes the
	calculation consistent with the left/right side-window calculation and
	fixes #97.

2015-12-21  justbur  <justin@burkett.cc>

	Fix C-h prompt for show-keymap commands

	Fix undo for show-keymap

2015-12-20  justbur  <justin@burkett.cc>

	Distinguish using-show-keymap

	Allow traversal of keymaps in new commands

	Filter out empty keymaps in new functions

2015-12-20  justbur  <justin@burkett.cc>

	Add which-key-show-minor-mode-keymap

	Version of which-key-show-keymap that only looks in minor-mode-map-alist

2015-12-20  justbur  <justin@burkett.cc>

	Add which-key-show-keymap

	Basic version of this command that only shows the top-level of a keymap.
	Waiting for feedback on how this should work.

2015-12-17  justbur  <justin@burkett.cc>

	New stable version

2015-12-11  justbur  <justin@burkett.cc>

	Ignore evil-state bindings

	These are the fake keys that evil uses to store maps under

2015-12-11  justbur  <justin@burkett.cc>

	Merge branch 'master' of https://github.com/justbur/emacs-which-key

	Add which-key-init-buffer-hook

2015-12-09  Justin Burkett  <justin@burkett.cc>

	Merge pull request #91 from Amorymeltzer/prefix-prefix-doc

	Document which-key-prefix-prefix

2015-12-09  Amory Meltzer  <Amorymeltzer@gmail.com>

	Document which-key-prefix-prefix

	https://github.com/justbur/emacs-which-key/commit/30bc0c224bac091fcf2759c8e8853e7237196090

2015-12-09  justbur  <justin@burkett.cc>

	Allow custom prefix-prefix

	Suggested in #90. Thanks @Amorymeltzer

2015-12-06  justbur  <justin@burkett.cc>

	Tweak display of key sequence in one case

	This is for the C-h commands when the which-key message is not shown in
	the echo area but the echo-keystrokes prefix is

2015-12-06  justbur  <justin@burkett.cc>

	echo-keystrokes should never be nil

	The correct test is to test if it's 0.

2015-12-05  justbur  <justin@burkett.cc>

	Preserve prefx-arg when paging

2015-12-04  justbur  <justin@burkett.cc>

	Work on handling prefix args better

	Make C-h command hint respect C-h-map commands

	Merge branch 'master' of https://github.com/justbur/emacs-which-key

2015-12-04  justbur  <justin@burkett.cc>

	Don't abort key seq after unbound key in C-h-map

	Allows to recover from accidentally pressing C-h.

	This commit also fixes some echo area problems that become apparent after
	introducing the C-h-map stuff

2015-12-03  Justin Burkett  <justin@burkett.cc>

	Clarify C-h commands description in readme

2015-12-03  justbur  <justin@burkett.cc>

	Fix top-level note and satisfy compiler

2015-12-03  justbur  <justin@burkett.cc>

	Add C-h commands to what's new in readme

	Still need to update the rest of the content

2015-12-03  justbur  <justin@burkett.cc>

	Fix note on right and add abort keys

	Fix undo and timer usage

2015-12-03  justbur  <justin@burkett.cc>

	Introduce C-h command dispatch function

	Replace role of show-next-page with C-h-dispatch which immediately reads
	a key and calls a command from C-h-map, which may be one of several
	paging commands, a command to undo the last keypress, or a command to
	directly access describe-prefix-bindings.

	This commit does not include documenting these changes in the readme.

	Note that several options become deprecated here as they no longer have
	the same (if any effect).

2015-12-01  justbur  <justin@burkett.cc>

	Remove dependencies from README

	Cleanup make-text-button call

2015-12-01  justbur  <justin@burkett.cc>

	Fix return value problem for make-text-button

	Apparently in versions before 24.5 the return value was not always the
	button itself when a string was used as the argument

2015-11-30  justbur  <justin@burkett.cc>

	Merge branch 'grammati'

	Use safe version of string-width

2015-11-30  justbur  <justin@burkett.cc>

	Use key-description for canonical keys

	This takes the idea in the previous commit and translates the
	representations of keys in the alists to be the output of
	key-description. The issue is that `M-x` for example has two
	representations with listify-key-sequence, but only one (it seems) from
	key-description.

2015-11-28  Chris Perkins  <chrisperkins99@gmail.com>

	Display prefix names in terminal-mode

	When running emacs in a terminal (or at least, in iTerm), keys are not
	passed through to emacs the same way that they are in graphical mode.

	For example, M-m (important in spacemacs) is the key-sequence
	`[134217837]` in graphical emacs, but `[27 109]` ("ESC m") in terminal.

	The variable `which-key-prefix-name-alst` only has a mapping for the
	former (the 134217837), and so the names of submenus all show up as
	"+prefix", limiting discoverability.

	This commit converts the key sequence into a canonical form (eg:
	converts `[27 109]` into `[134217837]`) in
	`which-key--maybe-replace-prefix-name`, so that the prefixes are found.

	I think some work is probably needed for
	`which-key-prefix-title-alist` too, but I'm not entirely sure what
	that's used for, so I didn't mess with it.

2015-11-20  justbur  <justin@burkett.cc>

	Add README note about last commit

	Show docstring on hover in echo area for commands

2015-11-20  justbur  <justin@burkett.cc>

	Fix mistake in reverting defaults

	Ref 9dd0ceaaabe6b4ac5f3268747b6103fb04d65e5f

	Accidentally changed the side window location instead of the show-prefix
	one.

2015-11-20  Justin Burkett  <justin@burkett.cc>

	Merge pull request #87 from cute-jumper/master

	Fix the value of `which-key-side-window-location'

2015-11-20  Junpeng Qiu  <qjpchmail@gmail.com>

	Fix the value of `which-key-side-window-location'

2015-11-19  justbur  <justin@burkett.cc>

	Check for nil as a binding in previous commit

	Provide alternate prefix-title for echo area

	Forgot line in last commit

2015-11-19  justbur  <justin@burkett.cc>

	Revert change in default of side-window-bottom

	Not happy with the look of it yet, even though it's probably better to
	avoid the echo area

2015-11-19  justbur  <justin@burkett.cc>

	Automatically close popup when prefix goes away

	It was necessary to hit C-g twice to close the popup before this change.

2015-11-19  justbur  <justin@burkett.cc>

	Provide alternative for prefix-title

	If echo-keystrokes is non nil, we're showing in the bottom window, and
	the prefix is shown in the top or bottom line, there's not much reason
	to show the prefix again since it's so close to the echo area.

2015-11-18  justbur  <justin@burkett.cc>

	Fix spacing in last commit

	Mention new show-prefix option and format README

2015-11-18  justbur  <justin@burkett.cc>

	Add show-prfx 'bottom and change top-level msg

	'bottom is a "safer" default because it's impossible to control the echo
	area completely, so the message gets wiped out occasionally.

	Use prefix-titles for the top-level bindings message, since top-level is
	not really a key

2015-11-18  justbur  <justin@burkett.cc>

	Ignore key translations only at top-level

	C-x 8 is a valid place to put translations for example

2015-11-18  justbur  <justin@burkett.cc>

	Option to remove default unicode characters

2015-11-18  Justin Burkett  <justin@burkett.cc>

	Merge pull request #86 from syohex/byte-compile-warnings

	Fix byte compile warnings

2015-11-18  Syohei YOSHIDA  <syohex@gmail.com>

	Use bound-and-true-p for byte compile warning

	Move definition position for byte-compile warning

2015-11-18  justbur  <justin@burkett.cc>

	Sort character ranges properly

	Fix #85

2015-11-17  justbur  <justin@burkett.cc>

	Make special-key matching case sensitive

	Refactor sorting functions and move fn keys up

	Silence warnings for obsolete function

2015-11-17  justbur  <justin@burkett.cc>

	Turn on case-sensitivity in replacements

	Should avoid situations like #84

2015-11-17  justbur  <justin@burkett.cc>

	Satisfy compiler

2015-11-17  justbur  <justin@burkett.cc>

	Bring in new describe-buffer-bindings parsing func

	based on similar function in helm-descbinds. This parses the output of
	describe-buffer-bindings line by line, and is easier to follow and
	manipulate than the previous one that uses complicated regexp
	expressions.

2015-11-16  justbur  <justin@burkett.cc>

	Mention show-top-level in the README

2015-11-13  justbur  <justin@burkett.cc>

	Minor stylistic changes to previous pr

2015-11-13  Iqbal Ansari  <iqbalansari02@yahoo.com>

	Ignore self-insert-command bindings

	Include keybindings of the form 'a .. z' in which key popup

	Use `set-temporary-overlay-map` to setup paging keys for toplevel popup

	Manually flush headings for keybindings

	Allow function key bindings to be displayed in toplevel help

	Add a command to popup toplevel bindings

	Fix some minor bugs

	Improve regexp to match toplevel bindings

2015-11-13  Iqbal Ansari  <iqbalansari02@yahoo.com>

	Change code to handle nil which-key--current-prefix

	This would happen when viewing toplevel bindings

2015-11-13  justbur  <justin@burkett.cc>

	Fix sort order of function keys

2015-11-13  justbur  <justin@burkett.cc>

	Don't use face for prefix if using echo area

	With some themes the switch from the text from echo-keystrokes with no
	face to the which-key text with a face is annoying.

2015-11-12  justbur  <justin@burkett.cc>

	Bump minor version

2015-11-12  justbur  <justin@burkett.cc>

	Add option to pad key columns on the left

	Allows you to make more space between the columns if you think the
	layout is too tight.

2015-11-04  justbur  <justin@burkett.cc>

	Fix #79

	Explicitly set word-wrap in which-key buffer. Fix unicode correction

2015-11-04  justbur  <justin@burkett.cc>

	Add example of adding Unicode replacements in README

	Thanks @epitzer for the suggestion.
	https://github.com/justbur/emacs-which-key/issues/52

2015-10-30  justbur  <justin@burkett.cc>

	Don't show help hint for evil operators

	Paging and help doesn't work for these, so don't offer

2015-10-30  justbur  <justin@burkett.cc>

	Add option to show popup for evil operators

	Default is to enable if evil is loaded before which-key. Otherwise, it
	is disabled.

2015-10-29  justbur  <justin@burkett.cc>

	Add melpa stable banner

2015-10-22  justbur  <justin@burkett.cc>

	Don't warn when same cons is added to alist twice

2015-10-20  justbur  <justin@burkett.cc>

	Move sorting functions and add to readme

2015-10-19  justbur  <justin@burkett.cc>

	Better choices for built-in functions

	Thanks @xuchunyang!

2015-10-18  justbur  <justin@burkett.cc>

	Cleanup previous commit

	Remove dash.el dependency

	Remove s.el dependency

2015-10-15  justbur  <justin@burkett.cc>

	Satisfy compiler for golden-ratio-mode

2015-10-09  justbur  <justin@burkett.cc>

	Preliminary support for undo

2015-10-08  justbur  <justin@burkett.cc>

	Add new sort function for testing

	This is a variation on key order, which uses alphabetical sorting for
	characters, putting lowercase before uppercase.

	@syl20bnr

2015-10-07  justbur  <justin@burkett.cc>

	Fix problem with two locations for side-window

	Can't always reuse the same window in this case when we go to a deeper
	set of keybindings, because we may need to switch sides.

2015-10-07  justbur  <justin@burkett.cc>

	Switch to defun in last commit

2015-10-07  justbur  <justin@burkett.cc>

	Add new sort function

	As suggested by @hmelman, sort by whether a key is a prefix or not (no
	prefix takes priority) then by key.

2015-10-06  justbur  <justin@burkett.cc>

	Bump version to 0.6.2

2015-10-05  justbur  <justin@burkett.cc>

	readme: Remove what's new and add dependency note

2015-10-03  Justin Burkett  <justin@burkett.cc>

	Merge pull request #71 from justbur/refactor

	Refactor

2015-10-03  justbur  <justin@burkett.cc>

	Remove comment

	Refactor show-next-page

2015-10-03  justbur  <justin@burkett.cc>

	Move golden-ratio-mode let binding

	Let bind golden-ratio-mode earlier in show-page function which may help
	prevent golden-ratio from moving the whihc-key buffer

2015-10-02  Iqbal Ansari  <iqbalansari02@yahoo.com>

	Do not display which-key popup if an interactive command is in progress

	This prevents the which-key popup from being displayed if
	`read-key-sequence` is invoked from a command as opposed to the editor's
	main loop.

	The changes introduced in #b96481 and #6d20c0 have been removed since
	they are not needed now

2015-10-02  justbur  <justin@burkett.cc>

	Add remove-hook to previous commit

2015-10-02  Iqbal Ansari  <iqbalansari02@yahoo.com>

	Run `which-key--hide-popup` in post-command-hook also

2015-10-02  justbur  <justin@burkett.cc>

	Revert preserve-size setting on buffer

	It's preventing the buffer from automatically shrinking

2015-09-29  justbur  <justin@burkett.cc>

	Let bind golden-ratio-mode when showing window

	Prevents golden-ratio from changing size of which-key buffer

	Fix #67

2015-09-29  justbur  <justin@burkett.cc>

	Add preserve-size option to side-window display

	Beginning of fix for #67

2015-09-27  justbur  <justin@burkett.cc>

	Don't fail if buffer was killed somehow

2015-09-24  justbur  <justin@burkett.cc>

	Fix merge conflicts

	Bump version

2015-09-24  justbur  <justin@burkett.cc>

	Better fix for #65

	Go back to using the original strategy of backing up
	`prefix-help-command` but make sure it never gets set to
	`which-key-show-next-page`.

2015-09-24  justbur  <justin@burkett.cc>

	Revert "Fix #65"

	This reverts commit c1873df76dc8d1907405ccb8af8ef7a0da1c63e9.

2015-09-23  justbur  <justin@burkett.cc>

	Fix #65

	Don't try to backup the value of `prefix-help-command` because it was
	getting set to `which-key-show-next-page` somehow creating an infinite
	recursion error. Just call `describe-prefix-bindings` directly, which
	should cover almost all cases.

2015-09-22  justbur  <justin@burkett.cc>

	Fix docstring typo

	Thanks @hmelman

2015-09-21  justbur  <justin@burkett.cc>

	Add alist-name arg to add-key-val-to-alist

	Otherwise the name of the alist is not available to this function

2015-09-21  justbur  <justin@burkett.cc>

	Add faces group

2015-09-19  justbur  <justin@burkett.cc>

	Better messages for add-key-val-to-alist

2015-09-18  justbur  <justin@burkett.cc>

	Remove some alists from customize and update docs

	The helper functions should be used now due to the nature of the lists.
	Removing the variables from customize should encourage this.

	Also add automatic conversion of old format of
	`which-key-key-based-description-replacement-alist`.

2015-09-18  justbur  <justin@burkett.cc>

	Update README for key-based replacements

2015-09-16  justbur  <justin@burkett.cc>

	Add ability to highlight certain commands

	Adds `which-key-highlighted-command-list` and
	`which-key-highlighted-command-face` as user-customizable means of
	highlighting arbitrary commands (selected through regexp) with arbitrary
	faces.

2015-09-09  Justin Burkett  <justin@burkett.cc>

	typo in readme

2015-09-08  justbur  <justin@burkett.cc>

	Mute echo-keystrokes message

	It seems to be too much information to display on *every* startup

2015-09-03  justbur  <justin@burkett.cc>

	Better warning for add-key-val-to-alist

	Fix typo

	Minor fix on last commit

	Common interface for prefix names and titles

	Minor changes to key-seq functions

	Change default indentation of helpers

	Add support for prefix-names

2015-09-02  justbur  <justin@burkett.cc>

	Make preventing C-h cycling the default

	Allow disabling truncation

2015-09-02  justbur  <justin@burkett.cc>

	Add min-display-lines option

	Ref #60

2015-09-02  justbur  <justin@burkett.cc>

	Shorten next page hint

	It's too long with the buffer on the right

2015-09-02  justbur  <justin@burkett.cc>

	Factor out next page hint

	Change wording of hint

2015-09-02  justbur  <justin@burkett.cc>

	Add missing autoload

	Fix #60

2015-09-01  justbur  <justin@burkett.cc>

	Describe new paging options in readme

	Fix compiler warning

	Fix implementation of prevent-C-h-from-cycling

2015-09-01  justbur  <justin@burkett.cc>

	Add experimental support for using descbinds

	Adds a new variable which is disabled by default, called
	which-key-prevent-C-h-from-cycling. If both this new variable and
	which-key-use-C-h-for-paging are t, then C-h will page through to the
	last page, but then drop into the default emacs behavior of calling
	describe-prefix-bindings instead of cycling to page 1 again.

2015-08-27  justbur  <justin@burkett.cc>

	Fix echo-keystrokes backup

	Fix which-key-echo-keystrokes docstring

2015-08-17  justbur  <justin@burkett.cc>

	Add helper function for prefix titles

2015-08-16  justbur  <justin@burkett.cc>

	One more change to format of prefix-title-alist

	Switch prefix-titles to key-seq as key

2015-08-15  justbur  <justin@burkett.cc>

	Add support for "prefix titles". See #58

2015-08-10  justbur  <justin@burkett.cc>

	show-remaining-keys cleanup

	Add missing save-match-data call

2015-08-03  justbur  <justin@burkett.cc>

	Tweak partition-columns

	Fix ref to free var

	Replace ?? with lambda by default

	Clean-up partition-columns implementation

	Add README intro to commentary section.

	Bump version

2015-08-01  justbur  <justin@burkett.cc>

	Allow for nil local-map. Fixes #57

2015-07-30  justbur  <justin@burkett.cc>

	README links working again

	Second try to fix links

	Fix a link in readme

	Add local-map face to readme

2015-07-29  justbur  <justin@burkett.cc>

	Add local-map face

	Possible solution for #45. Does not change any default settings.

2015-07-29  justbur  <justin@burkett.cc>

	README fixes

2015-07-28  justbur  <justin@burkett.cc>

	README typos

	Reorg README and new pictures

2015-07-28  Justin Burkett  <justin@burkett.cc>

	Minor wording change to readme

2015-07-28  justbur  <justin@burkett.cc>

	Add note to readme

2015-07-28  justbur  <justin@burkett.cc>

	Revert "Fix some parts of readme"

	This reverts commit a5413c2b8af110225fabbe64bcad4703c353327c.

2015-07-28  justbur  <justin@burkett.cc>

	More docstrings

	Allow show-next-page to force update before timer

2015-07-27  justbur  <justin@burkett.cc>

	Add a docstring

	Fix some parts of readme

2015-07-26  justbur  <justin@burkett.cc>

	C-h for paging is awesome

2015-07-25  justbur  <justin@burkett.cc>

	Add next page hint to show-prefix top

	Also introduce which-key-note-face for notes and hints, and change
	format of next page hint slightly.

2015-07-25  justbur  <justin@burkett.cc>

	Add hint for next page key

	Only shows when using echo for which-key-show-prefix

	See #53

2015-07-25  justbur  <justin@burkett.cc>

	Fix show-next-page problem with mult events

	Need to add (t . event) to unread-command-events to force emacs to add
	each event to the current command's sequence. See docs for
	unread-command-events.

2015-07-24  justbur  <justin@burkett.cc>

	Documentation is better now :-)

	Add link to README about disabling special keys

	Allow which-key-special-keys to be nil

	Switch to lexical binding and fix warnings

2015-07-23  justbur  <justin@burkett.cc>

	Fix echo function

2015-07-23  Justin Burkett  <justin@burkett.cc>

	Add suggestion about tiling wm to readme

2015-07-23  justbur  <justin@burkett.cc>

	Better strategy for dealing with minibuffer paging

	Hack to fix #48

2015-07-22  justbur  <justin@burkett.cc>

	Allow side-window bottom to be shorter than 4

	Fix key/page count and bug in create-pages

	Simplify show page a little

	Bump version for new defaults

2015-07-22  justbur  <justin@burkett.cc>

	Make side-window bottom the default

	Also adds echo as the new default for the prefix key information (to use
	the echo area).

	Making side-window bottom the default location, because it seems to have
	the best behavior overall after adding paging. Don't want to use the
	minibuffer because it's misbehaving right now.

	Change echo-keystrokes if prefix is echo

2015-07-22  justbur  <justin@burkett.cc>

	Add default replacement for next page

	Factor out paging timer and only start once

	Fix some hash quotes

	Protect 2-side-window function from too many args

	Remove show and hide functions for minibuffer

	Tweak next-page timer

2015-07-22  justbur  <justin@burkett.cc>

	Fix for #49

	Need to check if the prefix has changed when possibly restarting the
	timer after paging.

2015-07-22  justbur  <justin@burkett.cc>

	Fix #50 - Don't show pages if only 1 page

	No need to call show-popup for minibuffer

2015-07-22  justbur  <justin@burkett.cc>

	Use real-last-command instead of last-command

	for which-key-show-next-page

2015-07-22  justbur  <justin@burkett.cc>

	Fix a default regexp

	Fix sort order in readme again

	Fix latex in readme

	Move paging defcustoms

	Update readme with new features

2015-07-21  justbur  <justin@burkett.cc>

	Much better paging implementation

	Don't prevent changing paging bindings

	Add options for paging (disabled by default)

	Fix readme

	Add check for no keys

	Add new setup function for right-bottom

	Bump version

	Turn off show remaining keys by default

	Merge branch 'develop'

	Basic paging works

	Show page count with prefix

2015-07-20  justbur  <justin@burkett.cc>

	Put spaces in separator so they can be changed

	Don't show page if first column doesn't fit

2015-07-20  justbur  <justin@burkett.cc>

	Fix bug in page layout

	Pages were getting dropped

2015-07-20  justbur  <justin@burkett.cc>

	Ability to specify two locations for side-window

	echo-keystrokes might be nil

	Start on right-bottom and bottom-right sw impl

	Add description sort and make key order default

	Typo in lighter-status function

	Fix mode line status

	Add status to mode line

	Move all prefix adding code to one place

2015-07-20  Justin Burkett  <justin@burkett.cc>

	Update README.org

2015-07-20  justbur  <justin@burkett.cc>

	Add a couple of docstrings

2015-07-20  justbur  <justin@burkett.cc>

	Merge branch 'master' into develop

	Conflicts:
		README.org
		which-key.el

2015-07-20  justbur  <justin@burkett.cc>

	Fix prefix code

	Also delete old code

2015-07-20  justbur  <justin@burkett.cc>

	Paging works barely

	Rewrite of page creation alg

2015-07-17  justbur  <justin@burkett.cc>

	Typo in docstring

	Add special key handling to key sort order

	Add option to sort output by key (off by default)

2015-07-17  justbur  <justin@burkett.cc>

	Fix potential bug when no keys exist

	Need to check for no keys before checking the number of keys on the
	first page in case the latter is nil

2015-07-17  justbur  <justin@burkett.cc>

	Start on new status key impl

2015-07-16  justbur  <justin@burkett.cc>

	Use string-width instead of length for strings

	Reformat source

	Move badge below header

	Add MELPA badge and change README indentation

	Add MELPA badge and change README indentation

	Add MELPA to install insructions

	Merge branch 'master' of https://github.com/justbur/emacs-which-key

	Bump version

2015-07-16  Justin Burkett  <justin@burkett.cc>

	Merge pull request #40 from xuchunyang/master

	Make which-key buffer uninteresting

2015-07-16  justbur  <justin@burkett.cc>

	Change echo-keystrokes logic

2015-07-16  Chunyang Xu  <xuchunyang56@gmail.com>

	Make which-key buffer uninteresting

2015-07-16  justbur  <justin@burkett.cc>

	Erase truncate-lines message

	Tweak setup breaking out echo-keystrokes stuff

	Cleanup comments

	Add another key translation map to check

2015-07-16  justbur  <justin@burkett.cc>

	Fix #39

	`iso-transl-ctl-x-8-map' is not checked with `key-binding' because it's
	stored in the `key-translation-map', so this adds a test against this
	map.

2015-07-15  justbur  <justin@burkett.cc>

	Better notes

2015-07-15  justbur  <justin@burkett.cc>

	Don't show echo-keystroke note more than once

	Fix #38

2015-07-15  justbur  <justin@burkett.cc>

	Fix typos

	Add ability to temporarily prevent popups

	Remove useless when

2015-07-15  Justin Burkett  <justin@burkett.cc>

	Merge pull request #36 from syohex/fix-funcall

	Remove hash quotes

2015-07-15  Justin Burkett  <justin@burkett.cc>

	Merge pull request #37 from purcell/patch-1

	Misc formatting fixes

2015-07-15  Steve Purcell  <steve@sanityinc.com>

	Misc formatting fixes

	- Inline standard license blurb
	- Define parent of custom group
	- Insert missing blank lines between top-level declarations

2015-07-15  Syohei YOSHIDA  <syohex@gmail.com>

	Remove hash quotes

	They are variables, not functions, so hash quotes are not necessary.

2015-07-15  justbur  <justin@burkett.cc>

	Switch to only using dashes for symbol names

	Matches elisp conventions to the letter

2015-07-14  justbur  <justin@burkett.cc>

	Merge branch 'master' of https://github.com/justbur/emacs-which-key

	Be consistent with use of double slash

2015-07-14  Justin Burkett  <justin@burkett.cc>

	Merge pull request #34 from bmag/master

	Updated images for split frame

2015-07-14  Bar Magal  <barmagal@gmail.com>

	Updated images for split frame

2015-07-14  justbur  <justin@burkett.cc>

	Typo in readme

	Fix url in header

	flycheck-package fixes

	Reorg the readme and add key features to intro

	Cleanup replacement functions again

2015-07-14  justbur  <justin@burkett.cc>

	Fix add-replacement functions

	Also cleanup use of push in code

2015-07-14  justbur  <justin@burkett.cc>

	Fix #33

	Check for group before replacements occur

2015-07-13  justbur  <justin@burkett.cc>

	New default pictures

	Convert custom functions to defcustom

	Fix weird no room error

	Autoloads for helper functions

	Remove defaults related to outside packages

	Minor change to previous refactor

	Refactor column layout

	Fix a message

	Remove some old code

	Add docstring for propertize-description

	Move unicode-correction and bump default to 3

2015-07-13  justbur  <justin@burkett.cc>

	Fix #32

	Main problem was a replacement regexp that looked for a forward slash in
	the description, which removed group:x/y

2015-07-12  justbur  <justin@burkett.cc>

	Fix unicode-correction docstring

	Add support for custom display functions

	Change default unicode-correction

	Update commentary

	Fixes #24 (Update docstrings)

	Cleanup replacement helper functions

2015-07-11  justbur  <justin@burkett.cc>

	Add note to README about side-window defaults

	Add unicode correction for wide unicode chars

	Add default replacement for select-window-[N]

	Mention customize-group in README

	Readme typo

	Merge branch 'master' of https://github.com/justbur/emacs-which-key

2015-07-11  justbur  <justin@burkett.cc>

	Add replacement descriptions to readme.

	Also move status list to end

2015-07-11  Justin Burkett  <justin@burkett.cc>

	Merge pull request #30 from bmag/readme

	Start special-features section in readme #29

2015-07-11  justbur  <justin@burkett.cc>

	Merge branch 'readme' of https://github.com/bmag/emacs-which-key into readme

	Show prefix in can't show messages

	Merge status-key

	Add status defcustom and clean-up layout funcs

2015-07-11  Bar Magal  <barmagal@gmail.com>

	readme: explain different popup types

	Start special-features section in readme #29

2015-07-11  justbur  <justin@burkett.cc>

	Add better check for no room in frame

	Protect against infinite loops

	Protect against infinite loops

	Start to fix lock up on small vertical window

	Merge status-key and layout changes

2015-07-10  justbur  <justin@burkett.cc>

	Fix bug when frame too small

	Remove message

	Merge branch 'fill-columns'

	Reorganize code and clean-up comments a little

	Re-enable the prefix option

	Require dash

2015-07-10  Justin Burkett  <justin@burkett.cc>

	Merge pull request #26 from bmag/fill-columns

	Use toggle-truncate-lines; reduce -> cl-reduce

2015-07-10  Justin Burkett  <justin@burkett.cc>

	Merge pull request #27 from bmag/master

	Fix some defcustoms

2015-07-10  Bar Magal  <barmagal@gmail.com>

	Fix some defcustoms

2015-07-10  Bar Magal  <barmagal@gmail.com>

	Check frame width in a non-buggy way

	`(window-width (frame-root-window))` throws an error when the frame is
	split (frame's root window is not live).

2015-07-10  Bar Magal  <barmagal@gmail.com>

	Use toggle-truncate-lines; reduce -> cl-reduce

	Enabling toggle-truncate-lines in which-key--buffer, to avoid empty
	lines when the window is just a bit too narrow.

2015-07-10  justbur  <justin@burkett.cc>

	Bring back error message for too small of a frame

	Fix bug (layout wasn't going to 1 line)

2015-07-10  justbur  <justin@burkett.cc>

	Fill columns first with variable column width

	Allows for more compact layout

2015-07-10  justbur  <justin@burkett.cc>

	Fix bug in populate buffer

	Try out status-key option

2015-07-09  justbur  <justin@burkett.cc>

	Fix #6: TODO for defcustom

	Make variables stand-out in readme

	Fix add replacement functions

	Another typo

	Typo in add-major-mode-key-based-...

	Merge branch 'better-window-sizes'

	remove mode-line

	Merge branch 'better-window-sizes' of https://github.com/bmag/emacs-which-key into better-window-sizes

	Change side-window params to percentages

2015-07-09  Bar Magal  <barmagal@gmail.com>

	Use fit-window-to-buffer again

	Allow percentages for side-window max sizes #19

2015-07-09  justbur  <justin@burkett.cc>

	Add functions for adding to replacement alists

2015-07-09  Bar Magal  <barmagal@gmail.com>

	Fix text vs. total window width handling #22

2015-07-09  justbur  <justin@burkett.cc>

	Remove mode-line and tweak max-height

	max-height for side-window could still be more precise, but this seems
	to work

2015-07-09  justbur  <justin@burkett.cc>

	Make user setup functions interactive and autoload

2015-07-09  justbur  <justin@burkett.cc>

	Fix #22

	Check for keymap instead of not a symbol.

2015-07-09  justbur  <justin@burkett.cc>

	Remove hidden-mode-line-mode

	Add minibuffer picture

2015-07-09  Justin Burkett  <justin@burkett.cc>

	Delete which-key-minibuffer.PNG

2015-07-09  justbur  <justin@burkett.cc>

	Add bottom section and picture to readme

	Add minibuffer picture

2015-07-09  justbur  <justin@burkett.cc>

	Add config setup functions and more

	Fix a problem where the frame-height was not accounting for the
	minibuffer. Also, set the buffer to hidden-mode-line-mode to hide the
	mode-line for now (#16).

2015-07-09  justbur  <justin@burkett.cc>

	Update readme

	Possible fix for #18

2015-07-08  justbur  <justin@burkett.cc>

	Fix #21

	Fix act-width in populate-buffer

2015-07-08  justbur  <justin@burkett.cc>

	Rework key-based replacement

	Previous implementation didn't work for multiple major-mode bindings

2015-07-08  justbur  <justin@burkett.cc>

	Fix replace-match and rewrite propertize-key

2015-07-08  justbur  <justin@burkett.cc>

	Break out key-based replacement function.

	Seems simpler to use `assoc-string` in this case.

2015-07-08  justbur  <justin@burkett.cc>

	Fixes #19

	Kind of a hack, but seems a lot easier than trying to get an exact
	calculation of the width

2015-07-08  justbur  <justin@burkett.cc>

	Remove hide-popup call from update function

	Doesn't seem to be needed anymore after adding hide-popup to the
	pre-command-hook.

2015-07-08  justbur  <justin@burkett.cc>

	Fix bug in format-matches

2015-07-08  justbur  <justin@burkett.cc>

	Add option to specify major-mode in replacements

	Note all replacements need to be proper lists instead of cons cells now
	to add the option to check the third argument. If the third argument is
	missing it defaults to replacing in all major modes

2015-07-08  justbur  <justin@burkett.cc>

	Revert unintended change to act-height calc

2015-07-08  justbur  <justin@burkett.cc>

	Fix #17 errors when not enough room is available.

	Also gives more control over whether and where to show prefix keys. When
	the buffer is vertical showing in first line seems to make more sense.

2015-07-08  justbur  <justin@burkett.cc>

	Add :group to faces

2015-07-08  justbur  <justin@burkett.cc>

	Require cl-lib

	Addresses #15

2015-07-08  justbur  <justin@burkett.cc>

	Add key-based replacement list

	Add regexp to remove namespace (w minor cleanup)

2015-07-08  justbur  <justin@burkett.cc>

	Remove column-width from max-dimensions

	It's not needed

2015-07-07  justbur  <justin@burkett.cc>

	Show prefix in popup

2015-07-07  justbur  <justin@burkett.cc>

	Remove commented out close timer stuff

	Closes #10

2015-07-07  justbur  <justin@burkett.cc>

	Make echo-keystrokes a variable and speed it up.

	Be consistent in defining faces.

2015-07-07  justbur  <justin@burkett.cc>

	Make default delay less aggressive.

	Also avoids touching echo-keystrokes if it is already low.

2015-07-07  justbur  <justin@burkett.cc>

	Maek special keys bold

	Add DEL to special keys

	Add small indication of more pages

2015-07-07  justbur  <justin@burkett.cc>

	Pull out faces and add special key face

	Special keys (SPC, TAB, RET and ESC) are now truncated to one character
	and shown in inverse-video to distinguish them from S, T, R and E

2015-07-06  justbur  <justin@burkett.cc>

	Need cl for emacs < 25

	Fix compiler warnings

	Change side-window default position to right

	Try without close timer

2015-07-06  Justin Burkett  <justin@burkett.cc>

	Merge pull request #13 from bmag/pre-command-hook

	Hide buffer right before command execution

2015-07-06  justbur  <justin@burkett.cc>

	Merge branch 'frame-popup' of https://github.com/bmag/emacs-which-key into pr12

	Work on docstrings

	Redo replacement logic

	Make arrow separator into variable

	Refactor replacement alists

2015-07-06  Bar Magal  <barmagal@gmail.com>

	Hide buffer right before command execution

	Fixes #9, this is also what guide-key uses.

	When quoting functions, using "#'" tells the compiler that you're
	quoting a function, and allows it to catch void function errors.

2015-07-06  Bar Magal  <barmagal@gmail.com>

	Try to fix focus problems with popup frame #7

2015-07-06  justbur  <justin@burkett.cc>

	Allow echo-keystrokes but make it quick

	Add .gitignore

2015-07-06  justbur  <justin@burkett.cc>

	Fix problem with echo-keystrokes and minibuffer

	If the echo-keystrokes delay is too long, it clobbers which-key in the
	minibuffer

2015-07-06  justbur  <justin@burkett.cc>

	Remove popwin requirement; Add require cl

	Merge branch 'master' of https://github.com/bmag/emacs-which-key into pr5

	Delete old defvars and minor docstring cleanup

2015-07-06  Bar Magal  <barmagal@gmail.com>

	Fix doc, new frame parameters

2015-07-06  Bar Magal  <barmagal@gmail.com>

	Frame popup support and some small fixes

	Summary of changes:
	- add emacs 24.3 as a dependency, because
	  `display-buffer-in-major-side-window` doesn't exist in older emacsen
	- add option to show which-key buffer in a popup frame
	  `(setq which-key-popup-type 'frame)`
	- stop close timer when disabling which-key-mode
	- don't hide which-key buffer before showing it. instead, show methods
	  handle the case that the buffer is already shown
	- `which-key/hide-popup` calls function depending on popup
	  type (similar to `which-key/show-popup`)
	- use `display-buffer-in-major-side-window` instead of
	  `display-buffer-in-side-window`, for popup type side-window. ensures
	  new side window is created properly even if other side windows already
	  exist.
	- erase previous contents of which-key buffer before inserting new
	  contents, and adjust buffer display in window by moving point to
	  the buffer's beginning

2015-07-06  justbur  <justin@burkett.cc>

	Rename config variables, simplifying interface

	The primary config variable is now which-key-popup-type, which
	supports 'minibuffer and 'side-window. 'side-window has further
	associated options, primarily which-key-side-window-location

2015-07-06  justbur  <justin@burkett.cc>

	Merge bmag changes

	See PR #1

2015-07-06  justbur  <justin@burkett.cc>

	Organize keys by pages

2015-07-05  Bar Magal  <barmagal@gmail.com>

	Undo unintentional delete of end-of-file comment

	Undo unintentional delete of provide line

2015-07-05  Bar Magal  <barmagal@gmail.com>

	Refactor before work on window display

	Wanted to add support for using display-buffer or popwin, ran into some
	bugs, had to make changes to the code so future work will be easier.
	Details below:

	- separate between code to display window and code to populate buffer
	  contents
	- add `which-key-horizontal-buffer-height` similar to
	  `which-key-vertical-buffer-width`
	- abstract handling of different display methods into
	  `which-key/show-buffer` and `which-key/hide-buffer`, instead of mixed
	  in other functions
	- remove `which-key/make-display-method-aliases`
	- support two display methods: `minibuffer` and `side-window`, will add
	  popwin later
	- create start/stop functions for which-key--close-timer
	- a few other changes

2015-07-04  justbur  <justin@burkett.cc>

	Reorganize code a little

2015-07-04  justbur  <justin@burkett.cc>

	Factor out display functions

	To add customization options later

2015-07-04  justbur  <justin@burkett.cc>

	Change formatting of groups

	Toggle timer on frame focus

	Fix index error for subseq

2015-07-04  justbur  <justin@burkett.cc>

	Switch default to minibuffer

	There are a lot of changes here.
	  1. Reorganized and factored a bunch of code.
	  2. Rewrote the logic to calculate line breaks (much cleaner).
	  3. Switched to using the minibuffer by default, which seems more
	  foolproof and saves line space (I'm sure there's something wrong with
	  this).

2015-07-03  justbur  <justin@burkett.cc>

	Update docstrings and fix packaging

	Move cursor code to setup

	Try to hide cursor

	Better picture

	Get the cursor out of the way

	Add picture to readme

2015-07-03  justbur  <justin@burkett.cc>

	Arrows are more fun

	Also add padding between entries

2015-07-03  justbur  <justin@burkett.cc>

	Switch readme to org-mode

	Switch back to popwin for now

	Remove unnecessary checks

	Save popwin functions as comments

	Merge branch 'display-buffer'

	Remove commented funcs and messages

2015-07-03  justbur  <justin@burkett.cc>

	Add option to select display-buffer function.

	Only 2 are implemented at the moment.

2015-07-03  justbur  <justin@burkett.cc>

	Declare `which-key--close-timer'

2015-07-03  justbur  <justin@burkett.cc>

	Fix close timer randomly kicking in

	when you take too long to decide

2015-07-03  justbur  <justin@burkett.cc>

	Fix text replacement alist

	Conflicts:
		which-key.el

2015-07-03  justbur  <justin@burkett.cc>

	Fix text replacement alist

	Switch from popwin to display-buffer

2015-07-02  justbur  <justin@burkett.cc>

	Start working on MELPA requirements

	Add provide line

	Fix variable names

	Make internal variables stand out

	Reorganize main update function

	Cleanup

	Less rough now

	Add option to force buffer closed after certain amount of time

2015-07-02  justbur  <justin@burkett.cc>

	Fix vertical buffer width

	I think

2015-07-02  justbur  <justin@burkett.cc>

	Improve choice of buffer width and height

2015-07-02  Justin Burkett  <justin@burkett.cc>

	Create README.md

2015-07-02  justbur  <justin@burkett.cc>

	Add docstrings

2015-07-02  justbur  <justin@burkett.cc>

	Remove hardcoded variables and switch popwin method

	Use display-buffer with popwin:special-display-config

2015-07-02  justbur  <justin@burkett.cc>

	Initial Commit

2015-07-02  Justin Burkett  <justin@burkett.cc>

	Add license

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	* Version 29.4 released.

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Bump Emacs version to 29.4

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Update files for Emacs 29.4

	* ChangeLog.4:
	* etc/AUTHORS: Update for Emacs 29.4.

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	* admin/authors.el: Update for Emacs 29.4

2024-06-22  Stefan Kangas  <stefankangas@gmail.com>

	* etc/NEWS: Update for Emacs 29.4

2024-06-22  Ihor Radchenko  <yantar92@posteo.net>

	org-link-expand-abbrev: Do not evaluate arbitrary unsafe Elisp code

	* lisp/org/ol.el (org-link-expand-abbrev): Refuse expanding %(...)
	link abbrevs that specify unsafe function.  Instead, display a
	warning, and do not expand the abbrev.  Clear all the text properties
	from the returned link, to avoid any potential vulnerabilities caused
	by properties that may contain arbitrary Elisp.

2024-06-21  Michael Albinus  <michael.albinus@gmx.de>

	Update Tramp version (don't merge to master)

	* lisp/net/trampver.el (customize-package-emacs-version-alist):
	Adapt Tramp version integrated in Emacs 29.4.

2024-06-20  Stefan Kangas  <stefankangas@gmail.com>

	* admin/emacs-shell-lib: Backport to Bash 4.4 or older.

2024-06-18  Michael Albinus  <michael.albinus@gmx.de>

	Fix bug#49289 also for other auth-source backends

	* lisp/auth-source.el (auth-info-password): Revert commit 59261e6f4fe.
	(auth-source-secrets-create, auth-source-plstore-create):
	Search also for :user.  (Bug#49289)

2024-06-12  Michael Albinus  <michael.albinus@gmx.de>

	Fix auth-info-password

	* lisp/auth-source.el (auth-info-password): :secret can be a
	cascaded function.

2024-06-01  Yuan Fu  <casouri@gmail.com>

	Fix treesit-parse-string crash (bug#71012)

	Parsing a large file with treesit-parse-string and then printing the
	returned node crashes Emacs, because with-temp-buffer kills the temp
	buffer when treesit-parse-string returns, and print.c tries to access
	the node's position in the killed buffer.

	* lisp/treesit.el (treesit-parse-string): Don't use with-temp-buffer.

2024-06-01  Yuan Fu  <casouri@gmail.com>

	Check for buffer liveness when accessing tree-sitter node (bug#71012)

	* src/treesit.h (treesit_node_buffer_live_p): Declare function.
	* src/print.c (print_vectorlike): Print node without position if
	buffer is killed.
	* src/treesit.c (treesit_node_buffer_live_p): New function.
	(treesit_check_node): Add buffer liveness check.
	(syms_of_treesit): New error treesit-node-buffer-killed.

2024-05-28  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of case-conversion commands

	* doc/emacs/text.texi (Case): Include the commands with negative
	arguments.  (Bug#71220)

2024-05-25  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in displaying under 'outline-minor-mode'

	* src/xdisp.c (init_from_display_pos): Initialize BYTEPOS
	correctly, since 'init_iterator' no longer computes it from
	CHARPOS as needed.  This fixes a change made on Mar 13, 2013.
	(Bug#71194)

2024-05-25  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'no-special-glyphs' frame parameter

	* doc/lispref/frames.texi (Layout Parameters): Document
	limitations of support for 'no-special-glyphs' frame parameter.
	(Bug#71163)
	* doc/lispref/display.texi (Truncation): Update for when
	'fringe-mode' is off.

2024-05-24  kobarity  <kobarity@gmail.com>

	Fix Python font lock of chained assignment statement

	* lisp/progmodes/python.el
	(python-font-lock-keywords-maximum-decoration): Allow chaining
	of single assignment statements.
	* test/lisp/progmodes/python-tests.el
	(python-font-lock-assignment-statement-20): New test.
	(Bug#71093)

2024-05-24  Brad Knotwell  <bknotwell@yahoo.com>  (tiny change)

	Fix example in Calc manual

	* doc/misc/calc.texi (Defining Simple Commands): Fix typo in
	command names.  (Bug#71166)

2024-05-22  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes on MS-Windows due to invalid UNC file names

	* src/w32.c (parse_root): Avoid crashes due to invalid (too short)
	UNC names, such as "\\".  (Bug#70914)

	* test/src/fileio-tests.el (fileio-tests-invalid-UNC): New test.

2024-05-18  Eli Zaretskii  <eliz@gnu.org>

	Document :box attribute caveats when used on display strings

	* doc/lispref/display.texi (Replacing Specs, Face Attributes):
	Mention special considerations when a display string has a
	':box' face attribute identical to the surrounding buffer text.
	Suggested by JD Smith <jdtsmith@gmail.com>.  (Bug#70637)

2024-05-18  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'movemail'

	* doc/emacs/rmail.texi (Movemail): Fix the name of the Mailutils
	manual in the printed version.  Add index entries.  Move the
	description of remote mailboxes to...
	(Remote Mailboxes): ...here, to avoid duplication.

2024-05-18  Jakub Ječmínek  <kuba@kubajecminek.cz>

	Replace incorrect link in Rmail chapter of Emacs manual

	* doc/emacs/rmail.texi (Movemail): Fix cross-reference to a node
	in the Mailutils manual.  (Bug#71018)

2024-05-08  Eli Zaretskii  <eliz@gnu.org>

	Avoid errors in 'image-dired-tag-thumbnail'

	* lisp/image/image-dired.el (image-dired-tag-thumbnail)
	(image-dired-tag-thumbnail-remove): Move here from
	image-dired-tags.el.  (Bug#70821)

2024-04-27  Eli Zaretskii  <eliz@gnu.org>

	Fix last change

	* test/lisp/progmodes/csharp-mode-tests.el
	(csharp-ts-mode-test-indentation): If need to skip the tree-sitter
	test, do so silently.  (Bug#70345)

2024-04-27  Brad Howes  <bradhowes@mac.com>  (tiny change)

	Fix a typo in Introduction to Emacs Lisp (bug#70571).

2024-04-25  Eli Zaretskii  <eliz@gnu.org>

	Fix last change

	* test/lisp/progmodes/csharp-mode-tests.el
	(csharp-ts-mode-test-indentation): Move the test to here.
	* test/lisp/progmodes/csharp-ts-mode-tests.el: Remove file.
	* test/lisp/progmodes/csharp-ts-mode-resources/indent.erts: Move
	to test/lisp/progmodes/csharp-mode-resources/indent-ts.erts.

2024-04-25  Jacob Leeming  <jacobtophatleeming@gmail.com>  (tiny change)

	Fix indentation of if/else in 'csharp-ts-mode' (bug#70345)

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules):
	Fix indentation rules for 'if' and 'else'.

	* test/lisp/progmodes/csharp-ts-mode-tests.el:
	* test/lisp/progmodes/csharp-ts-mode-resources/indent.erts: New
	test files.

2024-04-23  Ulrich Müller  <ulm@gentoo.org>

	* build-aux/make-info-dir: Avoid bashism (bug#70484).

2024-04-23  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of selection and navigation in *xref* buffers

	* doc/emacs/maintaining.texi (Looking Up Identifiers): More
	detailed description of 'xref-auto-jump-to-first-definition'.
	Improve indexing.  Describe the use of 'next-error' and
	'previous-error' in conjunction with the *xref* buffer.
	(Identifier Search): More detailed description of
	'xref-auto-jump-to-first-xref'.  Describe the use of 'next-error'
	and 'previous-error'.

2024-04-22  Stephen Berman  <stephen.berman@gmx.net>

	Fix Widget manual typos, markup and omissions (bug#70502)

	* doc/misc/widget.texi (Widgets and the Buffer): Correct typos and
	texinfo markup, add equivalent key bindings and make minor changes
	in wording.
	(Customization): Correct names of two faces and add documentation
	of remaining widget faces.

2024-04-22  Prateek Sharma  <ps.prateek.sharma143@gmail.com>

	Fix python-ts-mode built-in functions and attributes (bug#70478)

	* lisp/progmodes/python.el (python--treesit-settings): Change the
	treesitter query to fetch the correct type of node for built-in
	functions and attributes and highlight them with corresponding
	font-lock face.

2024-04-21  Eli Zaretskii  <eliz@gnu.org>

	Fix markup and indexing in the Calendar chapter of user manual

	* doc/emacs/calendar.texi (Calendar Unit Motion)
	(Scroll Calendar, Writing Calendar Files, Holidays)
	(Sunrise/Sunset, Lunar Phases, Calendar Systems)
	(To Other Calendar, Displaying the Diary, Date Formats)
	(Adding to Diary, Special Diary Entries): Fix markup, style, and
	indexing.

2024-04-21  Gautier Ponsinet  <gautier@gautierponsinet.xyz>

	Fix the user manual for `calendar-time-zone-style'

	* doc/emacs/calendar.texi (Sunrise/Sunset): Refer to the
	variable `calendar-time-zone-style' explicitly.  (Bug#70498)

2024-04-21  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in 'push_prefix_prop'

	* src/xdisp.c (push_prefix_prop): Set the
	'string_from_prefix_prop_p' flag for any valid value of the
	'line-prefix' or 'wrap-prefix' property/variable.  (Bug#70495)

2024-04-20  Basil L. Contovounesios  <basil@contovou.net>

	Remove ert-equal-including-properties from manual

	* doc/misc/ert.texi (Useful Techniques): Mention only
	equal-including-properties in place of the now obsolete
	ert-equal-including-properties.

2024-04-14  Eli Zaretskii  <eliz@gnu.org>

	* lisp/dnd.el (dnd-handle-movement): Avoid errors (bug#70311).

2024-04-13  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/calc.texi: Improve indexing.

2024-04-11  Eli Zaretskii  <eliz@gnu.org>

	Fix display of vscrolled windows

	* src/xdisp.c (redisplay_window): Fix condition for resetting the
	window's vscroll.  (Bug#70038)

2024-04-10  Peter Oliver  <git@mavit.org.uk>

	* doc/emacs/misc.texi (emacsclient Options): Suggest forwarding sockets.

	(Bug#66667)

2024-04-10  Yuan Fu  <casouri@gmail.com>

	Update go-ts-mode to support latest tree-sitter-go grammar

	tree-sitter-go changed method_spec to method_elem in
	https://github.com/tree-sitter/tree-sitter-go/commit/b82ab803d887002a0af11f6ce63d72884580bf33

	* lisp/progmodes/go-ts-mode.el:
	(go-ts-mode--method-elem-supported-p): New function.
	(go-ts-mode--font-lock-settings): Conditionally use method_elem or
	method_spec in the query.

2024-04-09  Yuan Fu  <casouri@gmail.com>

	Fix c++-ts-mode defun navigation (bug#65885)

	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Add BOL and EOL marker
	in the regexp.

2024-03-31  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp version (don't merge)

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el: Change version to "2.6.3".
	(customize-package-emacs-version-alist):
	Adapt Tramp version integrated in Emacs 29.3.

2024-03-31  Xuan Wang  <code@wangxuan.name>  (tiny change)

	Fix warning-suppress for list type "warning type"

	Per the documentation of 'warning-suppress-types' and the
	implementation of 'warning-suppress-p', a warning type can
	be either a symbol or a list of symbols.  The previous
	implementation could generate wrong 'warning-suppress-types':

	  old behavior:
	  type              warning-suppress-types
	  pkg           ->    '((pkg))                  Correct
	  (pkg subtype) ->    '(((pkg subtype)))        Incorrect

	Now we check whether type is a cons cell first.  (Should not
	use listp here, as listp returns t for nil.)

	  new behavior:
	  type              warning-suppress-types
	  pkg           ->    '((pkg))                Correct
	  (pkg subtype) ->    '((pkg subtype))        Correct

	* lisp/emacs-lisp/warnings.el (warnings-suppress): Fix saving
	warning types in 'warning-suppress-types'.  (Bug#70063)

2024-03-31  Theodor Thornhill  <theo@thornhill.no>

	Make object init more robust (bug#69571)

	* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Make the
	regex same as before, but conditionally check other heuristics rather
	than crazy regex shenanigans.

2024-03-30  Eli Zaretskii  <eliz@gnu.org>

	Avoid errors in Info-search-case-sensitively in DIR buffers

	* lisp/info.el (Info-search): Don't run the "try other subfiles"
	code if there are no subfiles.  This happens, for example, in DIR
	files.  (Bug#70058)

2024-03-28  Theodor Thornhill  <theo@thornhill.no>

	Add test for previous change (bug#70023)

	* test/lisp/progmodes/typescript-ts-mode-resources/indent.erts: Add
	test.

2024-03-28  Noah Peart  <noah.v.peart@gmail.com>

	Add typescript-ts-mode indentation for interface bodies (bug#70023)

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): Add indentation rule for
	interface bodies.

2024-03-26  Andrea Corallo  <acorallo@gnu.org>

	* Don't install unnecessary trampolines (bug#69573) (don't merge)

	* lisp/emacs-lisp/comp.el (comp-subr-trampoline-install):
	Check that subr-name actually matches the target subr.

2024-03-25  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of <Delete> in user manual

	* doc/emacs/basic.texi (Erasing): Document that <Delete> deletes
	entire grapheme clusters.

2024-03-25  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of 'other-window-for-scrolling'

	* src/window.c (Fother_window_for_scrolling): More accurate
	documentation of how "the other" window is looked for.  Suggested
	by Karthik Chikmagalur <karthikchikmagalur@gmail.com>.

2024-03-24  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version to 29.3.50

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp:
	* etc/NEWS: Bump Emacs version to 29.3.50.

2024-03-24  Eli Zaretskii  <eliz@gnu.org>

	Update files for Emacs 29.3

	* ChangeLog.4:
	* etc/AUTHORS:
	* etc/HISTORY: Update for Emacs 29.3.

2024-03-24  Eli Zaretskii  <eliz@gnu.org>

	* lisp/ldefs-boot.el: Regenerate.

2024-03-24  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version to 29.3

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp: Bump Emacs version to 29.3.

2024-03-24  Ihor Radchenko  <yantar92@posteo.net>

	org--confirm-resource-safe: Fix prompt when prompting in non-file Org buffers

	* lisp/org/org.el (org--confirm-resource-safe): When called from
	non-file buffer, do not put stray "f" in the prompt.

2024-03-24  Ihor Radchenko  <yantar92@posteo.net>

	org-file-contents: Consider all remote files unsafe

	* lisp/org/org.el (org-file-contents): When loading files, consider all
	remote files (like TRAMP-fetched files) unsafe, in addition to URLs.

2024-03-24  Ihor Radchenko  <yantar92@posteo.net>

	org-latex-preview: Add protection when `untrusted-content' is non-nil

	* lisp/org/org.el (org--latex-preview-when-risky): New variable
	controlling how to handle LaTeX previews in Org files from untrusted
	origin.
	(org-latex-preview): Consult `org--latex-preview-when-risky' before
	generating previews.

	This patch adds a layer of protection when LaTeX preview is requested
	for an email attachment, where `untrusted-content' is set to non-nil.

2024-03-24  Ihor Radchenko  <yantar92@posteo.net>

	* lisp/gnus/mm-view.el (mm-display-inline-fontify): Mark contents untrusted.

2024-03-24  Ihor Radchenko  <yantar92@posteo.net>

	* lisp/files.el (untrusted-content): New variable.

	The new variable is to be used when buffer contents comes from untrusted
	source.

2024-03-24  Ihor Radchenko  <yantar92@posteo.net>

	org-macro--set-templates: Prevent code evaluation

	* lisp/org/org-macro.el (org-macro--set-templates): Get rid of any
	risk to evaluate code when `org-macro--set-templates' is called as a
	part of major mode initialization.  This way, no code evaluation is
	ever triggered when user merely opens the file or when
	`mm-display-org-inline' invokes Org major mode to fontify mime part
	preview in email messages.

2024-03-24  Eli Zaretskii  <eliz@gnu.org>

	* admin/authors.el (authors-aliases): Add ignored authors.

2024-03-24  Ihor Radchenko  <yantar92@posteo.net>

	org--confirm-resource-safe: Fix prompt when prompting in non-file Org buffers

	* lisp/org/org.el (org--confirm-resource-safe): When called from
	non-file buffer, do not put stray "f" in the prompt.

	org-file-contents: Consider all remote files unsafe

	* lisp/org/org.el (org-file-contents): When loading files, consider all
	remote files (like TRAMP-fetched files) unsafe, in addition to URLs.

	org-latex-preview: Add protection when `untrusted-content' is non-nil

	* lisp/org/org.el (org--latex-preview-when-risky): New variable
	controlling how to handle LaTeX previews in Org files from untrusted
	origin.
	(org-latex-preview): Consult `org--latex-preview-when-risky' before
	generating previews.
	This patch adds a layer of protection when LaTeX preview is requested
	for an email attachment, where `untrusted-content' is set to non-nil.

	* lisp/gnus/mm-view.el (mm-display-inline-fontify): Mark contents untrusted.
	* lisp/files.el (untrusted-content): New variable.

	The new variable is to be used when buffer contents comes from untrusted
	source.

	org-macro--set-templates: Prevent code evaluation

	* lisp/org/org-macro.el (org-macro--set-templates): Get rid of any
	risk to evaluate code when `org-macro--set-templates' is called as a
	part of major mode initialization.  This way, no code evaluation is
	ever triggered when user merely opens the file or when
	`mm-display-org-inline' invokes Org major mode to fontify mime part
	preview in email messages.

2024-03-24  Eli Zaretskii  <eliz@gnu.org>

	* admin/authors.el (authors-aliases): Add ignored authors.

	* etc/NEWS: Update for Emacs 29.3

2024-03-21  Andrea Corallo  <akrl@sdf.org>

	* Fix missing `comp-files-queue' update (bug#63415).

	* lisp/emacs-lisp/comp.el (native--compile-async): Update
	`comp-files-queue' for real.

2024-03-21  Basil L. Contovounesios  <basil@contovou.net>

	Clarify description of format-spec truncation

	* doc/lispref/strings.texi (Custom Format Strings): Mention that
	precision specifier affects both '<' and '>' truncation (bug#69822).
	* lisp/format-spec.el (format-spec, format-spec--do-flags): Use same
	terminology as 'format', especially when referring to its behavior.

2024-03-21  Eli Zaretskii  <eliz@gnu.org>

	More accurate documentation of 'rmail-mail-new-frame'

	* doc/emacs/rmail.texi (Rmail Reply): More accurate documentation
	of the effects of 'rmail-mail-new-frame'.  (Bug#69738)

2024-03-20  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of M-SPC in user manual

	* doc/emacs/killing.texi (Deletion): Fix documentation of
	'cycle-spacing'.  (Bug#69905)

2024-03-17  Michael Albinus  <michael.albinus@gmx.de>

	* admin/notes/bugtracker: Minor copyedit.

2024-03-16  Theodor Thornhill  <theo@thornhill.no>

	Tweak regexp for object initializers in csharp-mode (bug#69571)

	* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Add
	handling to not consider ended statements as object init openers.
	* test/lisp/progmodes/csharp-mode-resources/indent.erts: New test
	resources.
	* test/lisp/progmodes/csharp-mode-tests.el: Add test for this particular
	issue.

2024-03-16  Konstantin Kharlamov  <Hi-Angel@yandex.ru>

	`term-mode': mention the keymap to add keybindings to

	A user typically expects a keymap for mode `foo' to be called
	`foo-mode-map'.  term-mode has `term-mode-map' too, but for
	user-defined bindings to have effect they have to be put to
	`term-raw-map' instead.  So let's mention that.
	* lisp/term.el (term-mode) (term-mode-map) (term-raw-map): Mention
	the keymaps to add keybindings to for `term-mode'.  (Bug#69786)

2024-03-16  Eli Zaretskii  <eliz@gnu.org>

	Fix 'shortdoc-copy-function-as-kill'

	* lisp/emacs-lisp/shortdoc.el (shortdoc-copy-function-as-kill):
	Fix handling of functions with no arguments.  (Bug#69720)

2024-03-16  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'edebug-print-*' variables

	* lisp/emacs-lisp/edebug.el (edebug-print-length)
	(edebug-print-level): Fix doc strings and customization labels.
	Suggested by Matt Trzcinski <matt@excalamus.com>.  (Bug#69745)

2024-03-11  F. Jason Park  <jp@neverwas.me>

	Fix 'with-sqlite-transaction'

	* lisp/sqlite.el (with-sqlite-transaction): Tuck misplaced body
	of else form back into feature-test control structure whence it
	escaped.  (Bug#67142)

	* test/lisp/sqlite-tests.el: New file to accompany
	test/src/sqlite-tests.el.

2024-03-01  Dan Jacobson  <jidanni@jidanni.org>  (tiny change)

	Fix typos in vnvni.el.

	* lisp/leim/quail/vnvni.el ("vietnamese-vni"): Fix typos.  (Bug#69485)

2024-02-27  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in bidi.c

	* src/bidi.c (bidi_resolve_brackets): Move assertion about
	'resolved_level' to where it belongs.  This avoids unnecessary
	aborts when the character is not a bracket type and doesn't need
	BPA resolution.  (Bug#69421)

2024-02-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/files.el (hack-one-local-variable): Use `set-auto-mode-0`

	This fixes bug#69373.

2024-02-24  Eli Zaretskii  <eliz@gnu.org>

	Fix infinite recursion in gdb-mi.el

	* lisp/progmodes/gdb-mi.el: (gdb-clear-partial-output)
	(gdb-clear-inferior-io):  Set inhibit-read-only, to avoid
	signaling errors in process filter.  (Bug#69327)

2024-02-24  Eli Zaretskii  <eliz@gnu.org>

	Fix 'help-quick-toggle'

	* lisp/help.el (help-quick-sections): Fix "kill-region" command.
	Add a doc string.  (Bug#69345)

2024-02-21  Juri Linkov  <juri@linkov.net>

	* doc/lispref/modes.texi (Tabulated List Mode): Update.

	In the description of 'tabulated-list-format' document
	the missing value 'props' that was added long ago.

2024-02-21  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-methods): Fix typo in docstring.  (Bug#69294)

2024-02-17  Dmitry Gutov  <dmitry@gutov.dev>

	java-ts-mode: Indentation for opening brace on a separate line

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules):
	Support putting the opening brace on a separate line (bug#67556).

	* test/lisp/progmodes/java-ts-mode-resources/indent.erts:
	Add a test.

2024-02-17  Philip Kaludercic  <philipk@posteo.net>

	Removed decommissioned PGP keyservers

	* lisp/epa-ks.el (epa-keyserver): Update the user option type of
	`epa-keyserver'.

	See https://mail.gnu.org/archive/html/emacs-devel/2023-11/msg00857.html.

2024-02-17  Ihor Radchenko  <yantar92@posteo.net>

	org: Fix security prompt for downloading remote resource

	* lisp/org/org.el (org--confirm-resource-safe): Do not assume that
	resource is safe when user replies "n" (do not download).

	Reported-by: Max Nikulin <manikulin@gmail.com>
	Link: https://orgmode.org/list/upj6uk$b7o$1@ciao.gmane.io

2024-02-17  Eli Zaretskii  <eliz@gnu.org>

	Revert "Update to Org 9.6.19"

	This reverts commit 07a392f445eb21c5e4681027eee9d981300a4309.
	It was installed by mistake.

2024-02-17  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.19

2024-02-15  Philipp Stephani  <p.stephani2@gmail.com>

	Remove references to phst@google.com.

	I don't work for Google any more, so I'll use my private address going
	forward.

	* .mailmap: Remove references to phst@google.com.

2024-02-14  Stefan Kangas  <stefankangas@gmail.com>

	* BUGS: Note how to report critical security issues.

2024-02-14  Stefan Kangas  <stefankangas@gmail.com>

	Add cross-reference to ELisp manual Caveats

	* doc/lispref/intro.texi (Caveats): Add cross-reference to Emacs manual.
	Talking about "contributing code" makes little sense in a section about
	reporting mistakes in the ELisp manual, so skip that part.

2024-02-14  Joseph Turner  <joseph@breatheoutbreathe.in>

	Improve directory prompt used by package-vc-checkout

	* lisp/emacs-lisp/package-vc.el (package-vc--read-package-name): Use
	read-directory-name instead of read-file-name.  (Bug#66114)

2024-02-14  Michael Albinus  <michael.albinus@gmx.de>

	Minor Tramp doc adaption

	* doc/misc/tramp.texi (Frequently Asked Questions): Be more
	precise with FIDO2 keys.

	* lisp/net/tramp.el: Adapt comments.

2024-02-12  Daniel Martín  <mardani29@yahoo.es>

	;; Fix typo in the Tramp documentation

2024-02-11  Andrea Corallo  <acorallo@gnu.org>

	* Improve reproducibility of inferred values by native comp

	* lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset): Do not try to
	reorder conses using 'sxhash-equal' as its behavior is not reproducible
	over different sessions.

2024-02-10  Loïc Lemaître  <loic.lemaitre@gmail.com>  (tiny change)

	Handle typescript ts grammar breaking change for function_expression

	Starting from version 0.20.4 of the typescript/tsx grammar, "function"
	becomes "function_expression". The right expression is used depending
	on the grammar version.

	* lisp/progmodes/typescript-ts-mode.el
	(tsx-ts-mode--font-lock-compatibility-function-expression):
	New function (bug#69024).
	(typescript-ts-mode--font-lock-settings): Use it.

2024-02-10  Eli Zaretskii  <eliz@gnu.org>

	Don't quote 't' in doc strings

	* lisp/outline.el (outline-minor-mode-use-buttons): Doc fix.
	Patch by Arash Esbati <arash@gnu.org>.  (Bug#69012)

2024-02-09  Michael Albinus  <michael.albinus@gmx.de>

	Tramp: Handle PIN requests from security keys (don't merge)

	* doc/misc/tramp.texi (Frequently Asked Questions): Clarify FIDO entry.

	* lisp/net/tramp-sh.el (tramp-actions-before-shell)
	(tramp-actions-copy-out-of-band):
	Use `tramp-security-key-pin-regexp'.

	* lisp/net/tramp.el (tramp-security-key-pin-regexp): New defcustom.
	(tramp-action-otp-password, tramp-read-passwd): Trim password prompt.
	(tramp-action-show-and-confirm-message): Expand for PIN requests.

2024-02-08  Stefan Kangas  <stefankangas@gmail.com>

	* admin/notes/kind-communication: New file.

2024-02-08  Eli Zaretskii  <eliz@gnu.org>

	Don't skip links to "." and ".." in Dired when marking files

	* lisp/dired.el (dired-mark): Skip "." and "..", but not symlinks
	to those two.  (Bug#38729)  (Bug#68814)

2024-02-06  Joseph Turner  <joseph@breatheoutbreathe.in>

	Pass unquoted filename to user-supplied MUSTMATCH predicate

	* lisp/minibuffer.el (read-file-name-default): Pass REQUIRE-MATCH
	argument through substitute-in-file-name.
	* lisp/minibuffer.el (read-file-name): Update docstring.

	Resolves bug#68815.

2024-02-04  Juri Linkov  <juri@linkov.net>

	* doc/lispref/parsing.texi (Retrieving Nodes): Improve documentation.

	Update optional arguments 'predicate' and 'include-node'
	of 'treesit-node-top-level'.

2024-02-03  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Fix incompatibility with tree-sitter-javascript >= 0.20.2

	Starting from version 0.20.2 the grammar's primary expression
	"function" has been renamed to "function_expression".  A new
	function checks if the new primary expression is available,
	and if so, it returns the correct rules.
	* lisp/progmodes/js.el
	(js--treesit-font-lock-compatibility-definition-feature): New
	function.
	(js--treesit-font-lock-settings): Use it.  (Bug#68879)

2024-02-03  Eli Zaretskii  <eliz@gnu.org>

	Avoid signaling errors from 'pixel-fill-region'

	* lisp/textmodes/pixel-fill.el (pixel-fill-region): Make sure the
	selected window displays the current buffer.  This is important
	when this function is called inside 'with-current-buffer' or
	similar forms which temporarily change the buffer displayed in the
	selected window.  (Bug#67791)

2024-02-02  nibon7  <nibon7@163.com>

	eglot: Add nushell language server

	* lisp/progmodes/eglot.el (eglot-server-programs): Add nushell
	language server.  (Bug#68823)

2024-02-02  Piotr Kwiecinski  <piotr.kwiecinski@codemanufacture.com>  (tiny change)

	eglot: Add php-ts-mode to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add
	php-ts-mode.  (Bug#68870)

2024-02-02  dalu  <mou.tong@outlook.com>  (tiny change)

	Support kotlin-ts-mode in Eglot

	* lisp/progmodes/eglot.el (eglot-server-programs): Support
	kotlin-ts-mode.  (Bug#68865)

2024-02-01  Michael Albinus  <michael.albinus@gmx.de>

	Fix stale cache in Tramp  (do not merge with master)

	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band):
	Flush file properties when needed.  (Bug#68805)

2024-02-01  Ulrich Müller  <ulm@gentoo.org>

	* configure.ac: Include X11/Xlib.h for XOpenDisplay.  (Bug#68842)

	Do not merge to master.

2024-02-01  Stefan Kangas  <stefankangas@gmail.com>

	Improve `desktop-save-mode` docstring

	* lisp/desktop.el (desktop-save-mode): Improve docstring.

2024-01-28  Joseph Turner  <joseph@breatheoutbreathe.in>

	Fix completing-read functional REQUIRE-MATCH behavior

	* lisp/minibuffer.el (completion--complete-and-exit): If
	minibuffer-completion-confirm is a function which returns nil,
	immediately fail to complete.

	See bug#66187.

2024-01-28  Eli Zaretskii  <eliz@gnu.org>

	Fix "emacs -nw" on MS-Windows

	* src/w32term.c (w32_flip_buffers_if_dirty): Do nothing if F is
	not a GUI frame.  This avoids rare crashes in "emacs -nw".
	* src/w32console.c (initialize_w32_display): Set the
	ENABLE_EXTENDED_FLAGS bit in 'prev_console_mode'.

	(cherry picked from commit e1970c99f097715fc5bb3b88154799bfe13de90f)

2024-01-28  Michael Albinus  <michael.albinus@gmx.de>

	Handle wrong login program in Tramp

	* lisp/net/tramp-sh.el (tramp-maybe-open-connection): Exit remote
	shell when login fails.

2024-01-27  Jim Porter  <jporterbugs@gmail.com>

	* doc/lispref/package.texi (Multi-file Packages): Document ".elpaignore".

	(cherry picked from commit 744a10a4d722a361bc21561b4162045e4ec97ed6)

2024-01-27  Eshel Yaron  <me@eshelyaron.com>

	Avoid signaling errors in emoji.el on empty input

	* lisp/international/emoji.el (emoji--read-emoji):  Signal
	user-error on empty input.  (Bug#68671)

	Do not merge to master.

2024-01-27  Eli Zaretskii  <eliz@gnu.org>

	Fix description of when "\xNNN" is considered a unibyte character

	* doc/lispref/objects.texi (Non-ASCII in Strings): More accurate
	description of when a hexadecimal escape sequence yields a unibyte
	character.  (Bug#68751)

2024-01-26  Randy Taylor  <dev@rjt.dev>

	Simplify imenu setup for {cmake,dockerfile}-ts-modes

	* lisp/progmodes/cmake-ts-mode.el (treesit-induce-sparse-tree,
	treesit-node-child, treesit-node-start, cmake-ts-mode--imenu,
	cmake-ts-mode--imenu-1): Remove.
	(treesit-search-subtree): Declare.
	(cmake-ts-mode--function-name): New function.
	(cmake-ts-mode): Use it.

	* lisp/progmodes/dockerfile-ts-mode.el (treesit-induce-sparse-tree,
	treesit-node-start, dockerfile-ts-mode--imenu,
	dockerfile-ts-mode--imenu-1): Remove.
	(dockerfile-ts-mode--stage-name): New function.
	(dockerfile-ts-mode): Use it.

2024-01-24  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of profiler commands

	* doc/lispref/debugging.texi (Profiling): Document more commands.
	Improve indexing.  (Bug#68693)

2024-01-23  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix broken links to Freedesktop notifications spec

	* doc/lispref/os.texi (Desktop Notifications):
	* lisp/notifications.el: Replace broken developer.gnome.org links
	with specifications.freedesktop.org (bug#67939).

2024-01-22  Michael Albinus  <michael.albinus@gmx.de>

	Fix nasty cut'n'waste error in Tramp

	* lisp/net/tramp.el (tramp-parse-passwd): Use `tramp-parse-passwd-group'.
	Reported by Tim Landscheidt <tim@tim-landscheidt.de>.

2024-01-21  Stefan Kangas  <stefankangas@gmail.com>

	Fix image-dired-tags-db-file void variable error

	* lisp/image/image-dired-tags.el (image-dired-sane-db-file):
	Require 'image-dired'.  (Bug#68636)

2024-01-21  Matthew Smith  <matthew@gentoo.org>  (tiny change)

	typescript-ts-mode: Skip test if tsx grammar missing

	typescript-ts-mode-test-indentation depends on both the tree-sitter
	typescript grammar, and the tree-sitter tsx grammar.  If only the
	typescript is installed, the tests will run and then fail unexpectedly
	after tsx fails to load.

	* test/lisp/progmodes/typescript-ts-mode-tests.el
	(typescript-ts-mode-test-indentation): Skip test if tsx grammar is
	missing.

2024-01-20  Stefan Kangas  <stefankangas@gmail.com>

	* admin/README: Document the run-codespell script.

	* admin/README: Fix entry on coccinelle subdirectory.

2024-01-20  Stefan Kangas  <stefankangas@gmail.com>

	Add script admin/run-codespell and supporting files

	* admin/codespell/README:
	* admin/codespell/codespell.dictionary:
	* admin/codespell/codespell.exclude:
	* admin/codespell/codespell.ignore:
	* admin/codespell/codespell.rc:
	* admin/run-codespell: New files.

2024-01-20  Michael Albinus  <michael.albinus@gmx.de>

	Sync with Tramp 2.6.3-pre (don't merge with master)

	* doc/misc/tramp.texi (Obtaining @value{tramp}): Mention the ELPA
	Tramp manual.
	(Remote processes): Adapt index.

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el (tramp-version): Set to "2.6.3-pre".

	* lisp/net/tramp.el (tramp-local-host-regexp): Extend.  Adapt :version.
	(tramp-signal-process): PROCESS can also be a string.
	(tramp-skeleton-directory-files):
	* lisp/net/tramp-cache.el (with-tramp-saved-file-property)
	(with-tramp-saved-file-properties)
	(with-tramp-saved-connection-property)
	(with-tramp-saved-connection-properties): Use `setf' but `setq' in macro.

	* lisp/net/tramp-compat.el (tramp-compat-funcall): Declare debug.

	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-p): Exclude lock files.
	(tramp-crypt-file-name-handler-alist): Use `identity' for
	`abbreviate-file-name'.
	(tramp-crypt-add-directory, tramp-crypt-remove-directory):
	Adapt docstrings.
	(tramp-crypt-cleanup-connection): New defun.  Add it to
	`tramp-cleanup-connection-hook'

	* lisp/net/tramp.el (tramp-skeleton-file-name-all-completions):
	Handle "." and "..".

	* lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions):
	* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
	Remove special handling of "." an "..".

	* lisp/net/tramp-sh.el (tramp-pipe-stty-settings): New defcustom.
	(tramp-sh-handle-make-process): Use it.  (Bug#62093)

	* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes):
	Adapt test.
	(tramp-test31-signal-process): Extend.

2024-01-20  Eli Zaretskii  <eliz@gnu.org>  (tiny change)

	Update Polish translation of tutorial

	* etc/tutorials/TUTORIAL.pl: Update text about scroll bar.  New
	text by Christopher Yeleighton <giecrilj@stegny.2a.pl>.
	(Bug#68599)

2024-01-19  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/gnus.texi (Summary Mail Commands): Fix command name.

2024-01-18  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version to 29.2.50.

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp:
	* etc/NEWS: Bump Emacs version to 29.2.50.

2024-01-18  Eli Zaretskii  <eliz@gnu.org>

	* Update etc/HISTORY and ChangeLog.4 for 29.2 release.

2024-01-18  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version to 29.2

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp: Bump Emacs version to 29.2.

2024-01-18  Eli Zaretskii  <eliz@maintain0p.gnu.org>

	* Version 29.2 released.

	* ChangeLog.4:
	* etc/HISTORY: Update for Emacs 29.2.
	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp: Bump Emacs version to 29.2.

2024-01-17  Dmitry Gutov  <dmitry@gutov.dev>

	diff-mode: Support committing diff with file deletions

	* lisp/vc/diff-mode.el (diff-vc-deduce-fileset):
	Remove nil elements from the result (bug#68443).

2024-01-16  Juri Linkov  <juri@linkov.net>

	* lisp/net/eww.el (eww-retrieve): Fix args of eww-render for sync (bug#68336).

	Suggested by Phil Sainty <psainty@orcon.net.nz>.

2024-01-16  Mike Kupfer  <kupfer@rawbw.com>

	Fix folder creation error (Bug#67361)

	* lisp/mh-e/mh-funcs.el (mh-kill-folder)
	* lisp/mh-e/mh-search.el (mh-index-new-folder)
	* lisp/mh-e/mh-utils.el (mh-prompt-for-folder):
	Check for existence of 'speedbar-buffer' rather than
	'mh-speed-folder-map'.  The latter can exist if
	'mh-speed' has only been loaded but not displayed.

	(cherry picked from commit e6a2901b1be6b4aa01f8bf0d3c6e06344ce8d366)

2024-01-15  Gregory Heytings  <gregory@heytings.org>

	Simplify 'without-restriction'

	This simplification is symmetrical to 01fb898420.

	* src/editfns.c: (Finternal__labeled_widen): Add a call to
	'Fwiden', and rename from 'internal--unlabel-restriction'.
	(unwind_labeled_narrow_to_region): Use the renamed function, and
	remove the call to 'Fwiden'.
	(syms_of_editfns): Rename the symbol.

	* lisp/subr.el (internal--without-restriction): Use the renamed
	function.

	(cherry picked from commit 9e9e11648d3d5514de85edfb69f0949a062f4716)

2024-01-14  Gregory Heytings  <gregory@heytings.org>

	Fix blunder in labeled_narrow_to_region

	* src/editfns.c (labeled_narrow_to_region): Record point before,
	instead of after, calling narrow-to-region; otherwise point may
	already have been changed.  Fixes bug#66764.

2024-01-14  Daniel Martín  <mardani29@yahoo.es>

	Fix documentation of icon-elements

	* lisp/emacs-lisp/icons.el (icon-elements): The plist key it returns
	is `image', not `display'.  (Bug#68451)

2024-01-14  Stefan Kangas  <stefankangas@gmail.com>

	Improve two docstrings in ox-latex

	* lisp/org/ox-latex.el (org-latex-src-block-backend)
	(org-latex-engraved-theme): Improve docstring; mention that
	engrave-faces is a GNU ELPA package.

2024-01-14  Stefan Kangas  <stefankangas@gmail.com>

	Doc fix in auth-source-read-char-choice

	* lisp/auth-source.el (auth-source-read-char-choice): Don't
	document 'dropdown-list', which was removed in 2011.

2024-01-13  Eli Zaretskii  <eliz@gnu.org>

	Fix info-xref-tests

	* doc/lispintro/emacs-lisp-intro.texi (How let Binds Variables):
	Fix cross-reference.  (Bug#68428)

	* test/lisp/info-xref-tests.el (info-xref-test-write-file): Fix
	test on MS-Windows when run from MSYS Bash.

2024-01-13  Juri Linkov  <juri@linkov.net>

	Add @kindex in manuals for existing keybindings on 'C-x x/w' (bug#13167)

	* doc/emacs/buffers.texi (Misc Buffer): Add @kindex for 'C-x x r',
	'C-x x u', 'C-x x i'.

	* doc/emacs/display.texi (Line Truncation): Add @kindex for 'C-x x t'.

	* doc/emacs/files.texi (Reverting): Add @kindex for 'C-x x g'.

	* doc/emacs/windows.texi (Change Window): Use new keybinding 'C-x w 0'
	instead of 'M-x delete-windows-on'.

	* doc/misc/info.texi (Create Info buffer): Add @kindex for 'C-x x n'.

2024-01-13  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'emacs_function' in modules

	* doc/lispref/internals.texi (Module Functions): Warn about
	accessing the ARGS array in module functions.

2024-01-12  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of Ispell commands

	* doc/emacs/fixit.texi (Spelling): Document "C-u M-$" and warn
	against modifications in recursive-edit.  (Bug#14192)

2024-01-11  Stefan Kangas  <stefankangas@gmail.com>

	Don't recommend inverse-video for debugging

	* etc/DEBUG: Don't recommend 'inverse-video', which has been broken
	for 20 years, give or take.  (Bug#11430)

2024-01-11  Xiyue Deng  <manphiz@gmail.com>

	Fix typo in lispref "Creating Strings" section

	* doc/lispref/strings.texi (String Basics): Fix typo (bug#68375).

2024-01-11  Xiyue Deng  <manphiz@gmail.com>  (tiny change)

	Fix count of no-op functions (bug#68375)

	It looks like there are actually three kinds of no-op functions.

	* doc/lispref/functions.texi (Calling Functions): Fix count and
	plural of no-op functions.

2024-01-11  Xiyue Deng  <manphiz@gmail.com>  (tiny change)

	Wrap @pxref of Abbrevs in parentheses (bug#68375)

	* doc/lispref/symbols.texi (Shorthands): Wrap `@pxref{Abbrevs}' in
	parentheses.

2024-01-10  Mauro Aranda  <maurooaranda@gmail.com>

	Add examples to the Widget manual

	* doc/misc/widget.texi (Widget Gallery, Defining New Widgets): Add
	examples.  (Bug#66229)

2024-01-10  Mauro Aranda  <maurooaranda@gmail.com>

	Implement missing functions for custom-icon widget

	* lisp/cus-edit.el (custom-icon-reset-saved, custom-icon-mark-to-save)
	(custom-icon-state-set-and-redraw, custom-icon-reset-standard)
	(custom-icon-mark-to-reset-standard): New functions.
	(custom-icon, custom-icon-extended-menu): Register and add them to the
	menu.  (Bug#66947)

2024-01-10  Stephen Berman  <stephen.berman@gmx.net>

	Fix fontification of cgroup2 in fstab (bug#68367)

	* lisp/generic-x.el (etc-fstab-generic-mode): Add cgroup2.

2024-01-10  Philip Kaludercic  <philipk@posteo.net>

	Handle package versions that are not version strings

	* lisp/emacs-lisp/package.el (package-menu--version-predicate): Ignore
	any errors raised by 'version-to-list', thus falling back to the
	default version list.  (Bug#68317)

	(cherry picked from commit eb913c7501489e1eae475cae843fccdf14cc24d8)

2024-01-09  Jim Porter  <jporterbugs@gmail.com>

	Introduce 'let' using lexical binding in the Lisp Introduction

	* doc/lispintro/emacs-lisp-intro.texi (Prevent confusion): Rework the
	explanation to discuss how things work under lexical binding.
	(How let Binds Variables): Describe the differences between lexical
	and dynamic binding (including how to configure it).
	(defvar): Mention that 'defvar' declares variables as always
	dynamically-bound (bug#66756).

2024-01-06  Eli Zaretskii  <eliz@gnu.org>

	Fix 'rmail-summary-by-thread'

	* lisp/mail/rmailsum.el (rmail-summary-by-thread): Call
	'rmail-new-summary' from the original buffer, not from
	'rmail-buffer' to avoid failing the logic in 'rmail-new-summary'
	that decides whether to pop up a new window.  Reported by Andrea
	Monaco <andrea.monaco@autistici.org>.

2024-01-06  Jean-Christophe Helary  <jean.christophe.helary@traductaire-libre.org>

	* doc/emacs/back.texi: Fix a typo.

2024-01-06  Eli Zaretskii  <eliz@gnu.org>

	Fix icons.el when icon does not exist as a file

	* lisp/emacs-lisp/icons.el (icons--create): Handle the case when
	ICON is a file that doesn't exists or is unreadable.  Suggested by
	David Ponce <da_vid@orange.fr>.  (Bug#66846)

2024-01-05  Juri Linkov  <juri@linkov.net>

	* lisp/isearch.el (isearch-search-and-update): Let-bind 'isearch-cmds'.

	When 'isearch-wrap-pause' is 'no' or 'no-ding', let-bind 'isearch-cmds'
	to avoid changing it by 'isearch-push-state' in 'isearch-repeat',
	so that a later DEL (isearch-delete-char) doesn't stop at the
	intermediate failing state (bug#68158).

2024-01-04  Andrea Corallo  <acorallo@gnu.org>

	* src/comp.c (Fcomp__compile_ctxt_to_file): Fix hash table Qunbound use.

2024-01-04  Eli Zaretskii  <eliz@gnu.org>

	Provide decent documentation for 'help-quick'

	* lisp/help.el (help-quick, help-quick-toggle): Doc fix.

	* doc/emacs/help.texi (Help Summary, Misc Help): Document
	'help-quick-toggle'.

2024-01-02  Dmitry Gutov  <dmitry@gutov.dev>

	treesit--pre-syntax-ppss: Fix args-out-of-range in internal--syntax-propertize

	* lisp/treesit.el (treesit--pre-syntax-ppss): Make sure the lower
	bound is still within the current restriction (bug#67977).

2024-01-01  Mike Kupfer  <kupfer@rawbw.com>

	Fix mangled Subject header field when forwarding (Bug#67360)

	* lisp/mh-e/mh-comp.el (mh-forward): Overwrite subject when
	forwarding.

2024-01-01  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.15

2023-12-31  Eli Zaretskii  <eliz@gnu.org>

	* doc/emacs/custom.texi (Modifier Keys): Fix markup (bug#68164).

	Suggested by Jens Quade <jq@qdevelop.de>.

2023-12-30  Stefan Kangas  <stefankangas@gmail.com>

	org-protocol: Minor copy-edits to Commentary

	* lisp/org/org-protocol.el: Minor copy-edits to Commentary.

2023-12-30  Denis Zubarev  <dvzubarev@yandex.ru>

	Improve syntax highlighting for python-ts-mode

	Fix fontification of strings inside of f-strings interpolation, e.g. for
	f"beg {'nested'}" - 'nested' was not fontified as string.  Do not
	override the face of builtin functions (all, bytes etc.) with the
	function call face.  Add missing assignment expressions (:= *=).
	Fontify built-ins (dict,list,etc.) as types when they are used in type
	hints.  Highlight union types (type1|type2).  Highlight base class names
	in the class definition.  Fontify class patterns in case statements.
	Highlight the second argument as a type in isinstance/issubclass call.
	Highlight dotted decorator names.

	* lisp/progmodes/python.el (python--treesit-keywords): Add compound
	keyword "is not".
	(python--treesit-builtin-types): New variable that stores all python
	built-in types.
	(python--treesit-type-regex): New variable.  Regex matches if text is
	either built-in type or text starts with capital letter.
	(python--treesit-builtins): Extract built-in types to other variable.
	(python--treesit-fontify-string): fix f-string interpolation.  Enable
	interpolation highlighting only if string-interpolation is presented
	on the enabled levels of treesit-font-lock-feature-list.
	(python--treesit-fontify-string-interpolation): Remove function.
	(python--treesit-fontify-union-types): Fontify nested union types.
	(python--treesit-fontify-union-types-strict): Fontify nested union
	types, only if type identifier matches against
	python--treesit-type-regex.
	(python--treesit-fontify-dotted-decorator): Fontify all parts of
	dotted decorator name.
	(python--treesit-settings): Change/add rules.  (Bug#67061)

	* test/lisp/progmodes/python-tests.el
	(python-ts-tests-with-temp-buffer): Function for setting up test
	buffer.
	(python-ts-mode-compound-keywords-face)
	(python-ts-mode-named-assignement-face-1)
	(python-ts-mode-assignement-face-2)
	(python-ts-mode-nested-types-face-1)
	(python-ts-mode-union-types-face-1)
	(python-ts-mode-union-types-face-2)
	(python-ts-mode-types-face-1)
	(python-ts-mode-types-face-2)
	(python-ts-mode-types-face-3)
	(python-ts-mode-isinstance-type-face-1)
	(python-ts-mode-isinstance-type-face-2)
	(python-ts-mode-isinstance-type-face-3)
	(python-ts-mode-superclass-type-face)
	(python-ts-mode-class-patterns-face)
	(python-ts-mode-dotted-decorator-face-1)
	(python-ts-mode-dotted-decorator-face-2)
	(python-ts-mode-builtin-call-face)
	(python-ts-mode-interpolation-nested-string)
	(python-ts-mode-disabled-string-interpolation)
	(python-ts-mode-interpolation-doc-string): Add tests.

2023-12-29  Yuan Fu  <casouri@gmail.com>

	Revert "Fix treesit-node-field-name and friends (bug#66674)"

	This reverts commit 9874561f39e62c1c9fada6c2e013f93d9ea65729.

	See bug#67990.  Basically our original code is correct, the error is
	in libtree-sitter, which only manifests in certain cases.

	https://github.com/tree-sitter/tree-sitter/pull/2104

2023-12-25  Stefan Kangas  <stefankangas@gmail.com>

	Explain status "r" in `epa-list-keys`

	* lisp/epa.el (epa-list-keys): Add revoked status to description.
	Suggested by CHENG Gao <chenggao@icloud.com>.

2023-12-25  Jared Finder  <jared@finder.org>

	Fix mouse clicks on directory line in Dired

	The option 'dired-kill-when-opening-new-dired-buffer' should be
	also honored when clicking the mouse to kill prev buffer.
	* lisp/dired.el (dired--make-directory-clickable): Call
	'dired--find-possibly-alternative-file' instead of 'dired', in
	the click callback.  (Bug#67856)

2023-12-25  Eli Zaretskii  <eliz@gnu.org>

	Fix 'split-root-window-right' and 'split-root-window-below'

	* lisp/window.el (split-root-window-right)
	(split-root-window-below): Fix the 'interactive' spec to avoid
	misbehaving when invoked with no prefix argument.  (Bug#67452)

2023-12-24  Stefan Kangas  <stefankangas@gmail.com>

	Mark icalendar.el as maintained by emacs-devel

	* lisp/calendar/icalendar.el: Mark emacs-devel as the maintainer.
	Ref: https://debbugs.gnu.org/34315#152

2023-12-24  Xiyue Deng  <manphiz@gmail.com>

	Fix usage of `setq-default' and offer more suggestions

	cd61af0 changed from default-major-mode to major-mode in the first
	code sample but didn't change the rest.  This patch fixes this and add
	some explanations of why use `setq-default' instead of `setq'.  In
	addition, it gives background on suggesting using text-mode as default
	mode and suggest other alternatives.

	* doc/lispintro/emacs-lisp-intro.texi (Text and Auto-fill): Fix usage
	of `setq-default' and offer more suggestions.  (Bug#67848)

2023-12-23  Yuan Fu  <casouri@gmail.com>

	Fix python-ts-mode triple quote syntax (bug#67262)

	* lisp/progmodes/python.el (python--treesit-syntax-propertize): New function.
	(python-ts-mode): Activate python--treesit-syntax-propertize.

2023-12-23  Yuan Fu  <casouri@gmail.com>

	Increment parser timestamp when narrowing changes (bug#67977)

	When narrowing changes, parse reparses, so the timestamp should
	definitely increment, just like in ts_record_changes.

	Failing to increment this timestamp, outdated nodes would think they
	are still up-to-date, and try to print their type name.  Printing
	their type name involves accessing the old parse tree, which is
	already freed during the last reparse.

	I also found that we don't increment timestamp when changing parser
	ranges and fixed that as well.

	* src/treesit.c (treesit_sync_visible_region):
	(Ftreesit_parser_set_included_ranges): Increment timestamp.
	* src/treesit.h (Lisp_TS_Parser): Add some comments.

2023-12-23  Dmitry Gutov  <dmitry@gutov.dev>

	ruby-ts-mode: Fix indentation for string_array closer

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	Fix indentation for string_array closer.

2023-12-23  Dmitry Gutov  <dmitry@gutov.dev>

	treesit-major-mode-setup: Use 'treesit--syntax-propertize-notifier'

	* lisp/treesit.el (treesit-major-mode-setup): Make sure
	'treesit--syntax-propertize-notifier' is used (bug#66732)

2023-12-23  Dmitry Gutov  <dmitry@gutov.dev>

	ruby-ts-mode: Fix an out-of-bounds error with heredoc at eob

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--syntax-propertize):
	Fix an out-of-bounds error with heredoc at eob.

2023-12-23  Yuan Fu  <casouri@gmail.com>

	Correctly refontify changed region in tree-sitter modes (bug#66732)

	We already have treesit--font-lock-notifier that should mark changed
	regions to be refontified, but it's called too late in the redsiplay &
	fontification pipeline.  Here we add treesit--pre-redisplay that
	forces reparse and calls notifier functions in
	pre-redisplay-functions, which is early enough for the marking to take
	effect.

	Similarly, we force reparse in
	syntax-propertize-extend-region-functions so syntax-ppss will have the
	up-to-date syntax information when it scans the buffer text.  We also
	record the lowest start position of the affected regions, and make
	sure next syntex-propertize starts from that position.

	* lisp/treesit.el (treesit--pre-redisplay-tick):
	(treesit--syntax-propertize-start): New variable.
	(treesit--syntax-propertize-notifier):
	(treesit--pre-redisplay):
	(treesit--pre-syntax-ppss): New functions.
	(treesit-major-mode-setup): Add hooks.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Remove notifier.
	(ruby-ts--parser-after-change): Remove notifier function.

2023-12-23  Michael Albinus  <michael.albinus@gmx.de>

	* doc/man/emacsclient.1: Fix --tramp option.

2023-12-23  Peter Oliver  <git@mavit.org.uk>  (tiny change)

	* doc/man/emacsclient.1: Add missing sections (bug#66598)

2023-12-23  Xiyue Deng  <manphiz@gmail.com>

	Add explanation for extra parentheses in ELisp Introduction

	* doc/lispintro/emacs-lisp-intro.texi (fwd-para while): Add
	a note to explain the extra parentheses.  (Bug#67820)

2023-12-23  Xiyue Deng  <manphiz@gmail.com>

	Add sample code to the "let*" section in "forward-paragraph"

	* doc/lispintro/emacs-lisp-intro.texi (fwd-para let): Add code
	sample.  (Bug#67817)

2023-12-23  Denis Zubarev  <dvzubarev@yandex.ru>

	Fix treesit test (bug#67117)

	* test/src/treesit-tests.el (treesit-search-subtree-forward-1):
	(treesit-search-subtree-backward-1): Replace treesit--thing-at with
	treesit-query-capture (treesit--thing-at isn't available in Emacs 29).

2023-12-23  Yuan Fu  <casouri@gmail.com>

	Fix c++-ts-mode indentation (bug#67975)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make indent
	rule match precise so it doesn't match declaration_list.

2023-12-22  Stefan Kangas  <stefankangas@gmail.com>

	Recommend customizing eglot for python-base-mode

	* doc/misc/eglot.texi (Project-specific configuration): Recommend
	setting directory local variables for 'python-base-mode' instead of
	'python-mode'.  This makes any customizations effective also for
	'python-ts-mode'.

2023-12-22  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of new native-compilation commands

	* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu)
	(emacs-lisp-native-compile, emacs-lisp-native-compile-and-load):
	Doc fixes.

	* doc/lispref/compile.texi (Native-Compilation Functions):
	Document 'emacs-lisp-native-compile' and
	'emacs-lisp-native-compile-and-load'.

2023-12-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	doc/lispintro: Don't mention `set` (bug#67734)

	* doc/lispintro/emacs-lisp-intro.texi (Using set): Delete.
	(Using setq): Adjust accordingly.
	(setq): Rename from "set & setq" and don't refer to `set` any more.
	(Review): Don't mention `set` any more.

2023-12-20  Eli Zaretskii  <eliz@gnu.org>

	Fix script for some characters

	* lisp/international/characters.el (char-script-table): Fix script
	for 2 characters.

	* admin/unidata/blocks.awk: Fix script for Yijing Hexagram
	Symbols.  (Bug#67924)

2023-12-18  Denis Zubarev  <dvzubarev@yandex.ru>

	Fix an issue when searching subtree backward (bug#67117)

	* src/treesit.c (treesit_traverse_child_helper):
	Do not call treesit_traverse_sibling_helper when the named node is
	required and the last child is the named node.
	Otherwise treesit_traverse_sibling_helper will move cursor to the
	previous sibling and last node will be skipped.
	* test/src/treesit-tests.el (treesit-search-subtree-forward-1):
	(treesit-search-subtree-backward-1):
	Add tests.

2023-12-18  Christophe Deleuze  <christophe.deleuze@free.fr>  (tiny change)

	Fix passive mode for tnftp client in ange-ftp.el.

	* lisp/net/ange-ftp.el (ange-ftp-passive-mode): Fix passive mode
	result string for tnftp client.  (Bug#67865)

2023-12-16  Stefan Kangas  <stefankangas@gmail.com>

	Fix using disabled command without a docstring

	* lisp/novice.el (disabled-command-function): Fix error when the
	disable command has no docstring.  (Bug#67835)

2023-12-16  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of text properties handling when yanking

	* doc/lispref/text.texi (Text Properties): Mention special
	handling of text properties while yanking.

2023-12-16  skykanin  <3789764+skykanin@users.noreply.github.com>  (tiny change)

	Eglot: Add Uiua language server

	* lisp/progmodes/eglot.el (eglot-server-programs): Add Uiua language
	server.  (Bug#67850)

2023-12-16  Eli Zaretskii  <eliz@gnu.org>

	Fix shaping of Sinhala text

	* lisp/language/sinhala.el (composition-function-table): Allow
	U+200D U+0DCA as well as U+0DCA U+200D between consonants.
	Suggested by Richard Wordingham <richard.wordingham@ntlworld.com>.
	(Bug#67828)

2023-12-16  Jeremy Bryant  <jb@jeremybryant.net>
	    Eli Zaretskii  <eliz@gnu.org>

	Add use cases of (fn) documentation facility.

	* doc/lispref/functions.texi (Function Documentation):  Add examples.
	(Bug#67499)

2023-12-16  Eli Zaretskii  <eliz@gnu.org>

	Fix pasting into terminal-mode on term.el

	* lisp/term.el (term--xterm-paste): Read pasted text from the
	input event.  Suggested by Jared Finder <jared@finder.org>.
	(Bug#49253)

2023-12-16  Eli Zaretskii  <eliz@gnu.org>

	Fix opening directory trees from Filesets menu

	In bug#976, the code was fixed, but the cautious condition in
	the original author's code, which catered to invoking
	'filelists-open' from the menu-bar menu, was omitted, which made
	that invocation, which did work before, broken.
	* lisp/filesets.el (filesets-get-filelist): Fix opening directory
	trees from the Filesets menu-bar menu.  (Bug#67658)

2023-12-16  Niall Dooley  <dooleyn@gmail.com>  (tiny change)

	Eglot: Add ruff-lsp as an alternative Python server

	ruff-lsp [1] is an LSP server for Ruff [2], [3], a fast Python linter
	and code formatter.

	It supports surfacing Ruff diagnostics and providing Code Actions to
	fix them, but is intended to be used alongside another Python LSP in
	order to support features like navigation and autocompletion.

	[1]: https://github.com/astral-sh/ruff-lsp
	[2]: https://github.com/astral-sh/ruff
	[3]: https://docs.astral.sh/ruff/

	* lisp/progmodes/eglot.el (eglot-server-programs): Add ruff-lsp.

2023-12-14  Adam Porter  <adam@alphapapa.net>

	Fix symbol name in Multisession Variables examples

	* doc/lispref/variables.texi (Multisession Variables): Fix symbol
	name.  (Bug#67823)

2023-12-12  Dmitry Gutov  <dmitry@gutov.dev>

	js-ts-mode: Fix font-lock rules conflict

	* lisp/progmodes/js.el (js--treesit-font-lock-settings): Move
	'property' to after 'jsx'.  Stop using predicate (bug#67684).
	(js--treesit-property-not-function-p): Delete.

2023-12-11  Noah Peart  <noah.v.peart@gmail.com>

	Add indentation rules for bracketless statements in js-ts-mode

	* lisp/progmodes/js.el (js--treesit-indent-rules): Add indentation
	rules to handle bracketless statements (bug#67758).
	* test/lisp/progmodes/js-tests.el (js-ts-mode-test-indentation):
	New test for js-ts-mode indentation.
	* test/lisp/progmodes/js-resources/js-ts-indents.erts: New file
	with indentation tests for js-ts-mode.

2023-12-10  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode bracketless indentation for BSD style (bug#66152)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--indent-styles): Make sure the BSD rules only apply to
	opening bracket (compound_statement), then bracketless statements will
	fallback to common rules.
	* test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts: Copy the
	bracketless test from indent.erts to here.

2023-12-10  Augustin Chéneau  <btuin@mailo.com>

	Add missing indent rules in c-ts-mode (bug#66152)

	Example:

	    static myttype *
	    variable_name;

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add rules.

2023-12-10  Yuan Fu  <casouri@gmail.com>

	Fix treesit-default-defun-skipper (bug#66711)

	* lisp/treesit.el:
	(treesit-default-defun-skipper): Add bol to the rx pattern.

2023-12-10  Yuan Fu  <casouri@gmail.com>

	Fix treesit-node-field-name and friends (bug#66674)

	So turns out ts_node_field_name_for_child takes a named node index,
	but we were passing it normal index that counts both named and
	anonymous nodes.  That's what makes the field name all wrong in
	treesit explorer.

	* doc/lispref/parsing.texi:
	(Accessing Node Information): Update docstring.
	* lisp/treesit.el (treesit-node-index): Add some unrelated comment.
	(treesit-node-field-name): Get named node index rather than all node
	index.
	* src/treesit.c (Ftreesit_node_field_name_for_child): Update
	docstring, use ts_node_named_child_count.

2023-12-10  Maciej Kalandyk  <m.kalandyk@outlook.com>

	python-ts-mode: Highlight default parameters

	* lisp/progmodes/python.el (python--treesit-settings):
	Highlight default parameters (bug#67703).

2023-12-10  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.13

2023-12-10  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indent heuristic (bug#67417)

	This is a continuation of the first two patches for bug#67417.  The
	c-ts-mode--prev-line-match heuristic we added is too broad, so for now
	we are just adding a very specific heuristic for the else case.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--prev-line-match): Remove function.
	(c-ts-mode--else-heuristic): New function.
	(c-ts-mode--indent-styles): Use c-ts-mode--else-heuristic.

2023-12-10  nverno  <noah.v.peart@gmail.com>

	Fix c-ts-mode indentation (bug#67357)

	1. In a compound_statement, we indent the first sibling against the
	parent, and the rest siblings against their previous sibling.  But
	this strategy falls apart when the first sibling is not on its own
	line.  We should regard the first sibling that is on its own line as
	the "first sibling"", and indent it against the parent.

	2. In linux style, in a do-while statement, if the do-body is
	bracket-less, the "while" keyword is indented to the same level as the
	do-body.  It should be indented to align with the "do" keyword
	instead.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--no-prev-standalone-sibling): New function.
	(c-ts-mode--indent-styles): Use
	c-ts-mode--no-prev-standalone-sibling. Add while keyword indent rule.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New tests.

2023-12-09  nverno  <noah.v.peart@gmail.com>

	Add font-locking for hash-bang lines in typescript-ts-mode.

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings):
	Add font-lock for hash bang line.

2023-12-09  nverno  <noah.v.peart@gmail.com>

	Add font-locking for hash-bang lines in js-ts-mode

	* lisp/progmodes/js.el (js--treesit-font-lock-settings):
	Add font-lock for hash bang line.

2023-12-09  Dmitry Gutov  <dmitry@gutov.dev>

	ruby-mode: Better detect regexp vs division (bug#67569)

	* lisp/progmodes/ruby-mode.el (ruby-syntax-before-regexp-re):
	Add grouping around methods from the whitelist.
	(ruby-syntax-propertize): Also look for spaces around the slash.

2023-12-09  Jared Finder  <jared@finder.org>

	Fix dragging mode line on text terminals with a mouse (bug#67457)

	* lisp/xt-mouse.el (xterm-mouse-translate-1): Fix the 'event-kind'
	property of mouse-movement symbols emitted by xt-mouse.
	* lisp/term/linux.el (terminal-init-linux): Call 'gpm-mouse-mode'
	to set up the terminal for the mouse, if needed.

2023-12-08  Christophe TROESTLER  <Christophe.TROESTLER@umons.ac.be>

	(rust-ts-mode): Set electric-indent-chars

	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode):
	Set electric-indent-chars (bug#67701).

2023-12-07  Dmitry Gutov  <dmitry@gutov.dev>

	js-ts-mode: Highlight function parameters inside destructuring

	* lisp/progmodes/js.el (js--treesit-font-lock-settings):
	Highlight function parameters declared using destructuring syntax.

2023-12-07  Dmitry Gutov  <dmitry@gutov.dev>

	js-ts-mode: Highlight property shorthands in assignments

	* lisp/progmodes/js.el (js--treesit-lhs-identifier-query): Match
	property shorthands (which turn into variable reference).
	(js--treesit-fontify-assignment-lhs): Use the matches.

2023-12-07  Dmitry Gutov  <dmitry@gutov.dev>

	(js--treesit-font-lock-settings): Highlight parameters in function expression

	* lisp/progmodes/js.el (js--treesit-font-lock-settings):
	Highlight parameters in a function expression (the node type
	'function').  Make the matcher for 'formal_parameters' independent
	of the parent, that just created duplication.

2023-12-07  Dmitry Gutov  <dmitry@gutov.dev>

	(js--treesit-font-lock-settings): Remove some duplicates

	* lisp/progmodes/js.el (js--treesit-font-lock-settings):
	Remove queries from 'function' that duplicate entries in
	'definition' (one of them with a typo).

2023-12-04  Philipp Stephani  <p.stephani2@gmail.com>

	Don't claim to signal an error when deleting a nonexisting file.

	The behavior has changed in commit
	1a65afb7ecc2a52127d6164bad19313440237f9d to no longer signal an error
	on ENOENT.

	* doc/lispref/files.texi (Changing Files): Fix documentation about
	error reporting.

2023-12-04  Eli Zaretskii  <eliz@gnu.org>

	* lisp/indent.el (indent-rigidly): Improve prompt (bug#67620).

2023-12-03  Christophe Troestler  <Christophe.Troestler@umons.ac.be>

	rust-ts-mode--comment-docstring: Handle block doc comments

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--comment-docstring): Handle block doc comments.
	Inhibit match-data modification.

2023-12-02  Christophe TROESTLER  <Christophe.TROESTLER@umons.ac.be>

	rust-ts-mode--comment-docstring: Fix/improve the previous change

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--comment-docstring): Match also "inner" line docs.
	Stop rebinding 'end' and use the argument's value in the
	'treesit-fontify-with-override' call.

2023-12-02  Eli Zaretskii  <eliz@gnu.org>

	Fix 'Info-goto-node-web' when NODE is given in various forms

	* lisp/info.el (Info-goto-node-web): Support all forms of node
	input, per 'Info-read-node-name's documentation, and extract
	FILENAME from NODE if given there.  Default NODE to "Top" if not
	provided by the user.  (Bug#67531)
	(Info-url-for-node): Support browsing the "Top" node.

2023-12-02  Eli Zaretskii  <eliz@gnu.org>

	Fix setting cursor when the window's op line has 'line-prefix'

	* src/xdisp.c (set_cursor_from_row): Skip glyphs that come from a
	string if their 'avoid_cursor_p' flag is set.  (Bug#67486)

2023-12-02  Xiyue Deng  <manphiz@gmail.com>  (tiny change)

	Drop extra parenthesis in example code in Emacs Lisp Introduction

	* doc/lispintro/emacs-lisp-intro.texi (Small buffer case): Drop
	trailing unmatched parenthesis.  (Bug#67576)

2023-12-01  Christophe Troestler  <Christophe.Troestler@umons.ac.be>

	rust-ts-mode: appropriately fontify doc strings

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--comment-docstring): New function.
	(rust-ts-mode--font-lock-settings): Use it
	(https://lists.gnu.org/archive/html/emacs-devel/2023-12/msg00019.html).

2023-12-01  Xiyue Deng  <manphiz@gmail.com>  (tiny change)

	Fix example code in Emacs Lisp Introduction manual

	* doc/lispintro/emacs-lisp-intro.texi (Optional Arguments): Fix
	indentation in an example.  (Bug#67559)

2023-12-01  Eli Zaretskii  <eliz@gnu.org>

	Fix example in Emacs Lisp Intro manual

	* doc/lispintro/emacs-lisp-intro.texi (beginning-of-buffer opt
	arg): Fix indentation in example.  Reported by Xiyue Deng
	<manphiz@gmail.com>.  (Bug#67560)

2023-12-01  Jeremy Bryant  <jb@jeremybryant.net>

	Elisp manual: Mention 'write-region' for saving the buffer

	* doc/emacs/files.texi (Save Commands):  Mention
	'write-region'.  (Bug#67313)

2023-11-30  Michael Albinus  <michael.albinus@gmx.de>

	Document, that PROCESS of signal-process can be a string

	* doc/lispref/processes.texi (Signals to Processes) [signal-process]:
	* src/process.c (Fsignal_process): Document, that PROCESS can be a
	string.

2023-11-29  nverno  <noah.v.peart@gmail.com>

	Fix typescript-ts-mode indentation for switch statements

	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): Add
	indentation rule for switch case and default keywords.  (Bug#67488)

2023-11-29  Aymeric Agon-Rambosson  <aymeric.agon@yandex.com>  (tiny change)

	Repair `tab-first-completion` (bug#67158)


	* lisp/indent.el (indent-for-tab-command): Use `syntax-class` to fix
	longstanding thinko introduced back in 2020 in commit 64c851166442.
	Rework the check for `syn` because TAB always completed when
	`tab-first-completion` had value `word-or-paren` or `word-or-paren-or-punct`.

	(cherry picked from commit c20226a1ef5fbdfd3e71e2ef8654ee19994c0f2f)

2023-11-29  Eli Zaretskii  <eliz@gnu.org>

	Fix behavior of 'split-root-window-*' with 'C-u'

	* lisp/window.el (split-root-window-below)
	(split-root-window-right): Fix the 'interactive' form to work with
	raw 'C-u' as well.  (Bug#67459)
	(split-window-below, split-window-right, split-root-window-below)
	(split-root-window-right): Doc fix.

2023-11-29  Xiyue Deng  <manphiz@gmail.com>  (tiny change)

	Add more text to clarify the behavior of 'with-current-buffer'

	* doc/lispintro/emacs-lisp-intro.texi (copy-to-buffer): Expand
	description of 'with-current-buffer'.  (Bug#67521)

2023-11-27  Eli Zaretskii  <eliz@gnu.org>

	Fix example in Emacs user manual

	* doc/emacs/custom.texi (Init Rebinding): Fix syntax of example.
	Reported by silarakta <silarakta@protonmail.com>.  (Bug#67474)

2023-11-27  Michael Albinus  <michael.albinus@gmx.de>

	Mention Titankey in Tramp, which has passed the tests

	* doc/misc/tramp.texi (Frequently Asked Questions):
	* lisp/net/tramp.el (tramp-security-key-confirm-regexp):
	Mention also Titankey.

2023-11-26  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indentation after if/else (bug#67417)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--prev-line-match): New function.
	(c-ts-mode--indent-styles): Add a rule for the empty line after
	if/else/for/etc.

2023-11-26  Yuan Fu  <casouri@gmail.com>

	Fix indentation for else clause in c-ts-mode (bug#67417)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--indent-styles): Add indentation for children of
	else_clause.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts:
	(Name): Add test for else-break.  Also make the test such that it
	needs to indent correctly from scratch (rather than maintaining the
	already correct indentation.)

2023-11-26  Joseph Turner  <joseph@breatheoutbreathe.in>

	Ensure that directory is expanded in package-vc-checkout

	* lisp/emacs-lisp/package-vc.el (package-vc-checkout): Expand
	DIRECTORY.  (Bug#66115)

2023-11-25  Ulrich Müller  <ulm@gentoo.org>

	* etc/PROBLEMS: Add entry about pinentry with gpgsm.  (Bug#67012)

2023-11-24  nverno  <noah.v.peart@gmail.com>

	typescript-ts-mode: Add missing 'operator' to treesit-font-lock-features

	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode):
	Add operator to treesit-font-lock-feature-list (bug#67433).

2023-11-24  Michael Albinus  <michael.albinus@gmx.de>

	Extend D-Bus doc and test

	* doc/misc/dbus.texi (Register Objects): Adapt doc of
	dbus-unregister-service.

	* test/lisp/net/dbus-tests.el (dbus--test-register-service):
	Extend test.

2023-11-24  Michael Albinus  <michael.albinus@gmx.de>

	Do not unregister a D-Bus service which is a unique name

	* lisp/net/dbus.el (dbus-unregister-service): Check, whether
	SERVICE is a known name.  (Bug#67386)

2023-11-24  Eli Zaretskii  <eliz@gnu.org>

	Fix byte-compilation warnings about 'sqlite-rollback'

	* lisp/sqlite.el (sqlite-transaction, sqlite-commit)
	(sqlite-rollback): Declare.
	* lisp/emacs-lisp/multisession.el (sqlite-commit)
	(sqlite-transaction): Remove declaration.

2023-11-23  Dmitry Gutov  <dmitry@gutov.dev>

	Make python-ts-mode's syntax-highlighting more standardized

	This was brought up in a Reddit discussion.

	* lisp/progmodes/python.el (python--treesit-fontify-variable):
	Use font-lock-variable-use-face (since it applies to references).
	(python-ts-mode): Move 'property' from 3rd to 4th
	treesit-font-lock-level.

2023-11-23  George Kuzler  <gkuzler@gmail.com>  (tiny change)

	Fix "Text is read-only" on backspacing initial Calc input

	Immediately after `calc-mode' opens the minibuffer for input
	(because you typed a digit, "e", etc), pressing backspace
	should clear the minibuffer and return you to the *Calculator*
	buffer.  Instead, it leaves the minibuffer as-is and prints the
	message "Text is read-only"; this is because the function used,
	`erase-buffer', tries to erase the read-only minibuffer prompt.
	Using `delete-minibuffer-contents' fixes this, since it doesn't
	attempt to delete the prompt.
	* lisp/calc/calc.el (calcDigit-backspace): Use
	`delete-minibuffer-contents' instead of `erase-buffer'.  (Bug#67395)

2023-11-23  Jeremy Bryant  <jb@jeremybryant.net>

	Add a doc string to simple.el (bug#67355)

	* lisp/simple.el (kill-buffer--possibly-save): Add doc string.

2023-11-23  Eli Zaretskii  <eliz@gnu.org>

	Mention "visual line" in user manual

	* doc/emacs/display.texi (Visual Line Mode):
	* doc/emacs/basic.texi (Continuation Lines, Moving Point): Mention
	"visual line".  (Bug#67382)

2023-11-23  Eli Zaretskii  <eliz@gnu.org>

	Allow listing Emoji from a read-only buffer

	* lisp/international/emoji.el (emoji-list): Don't barf here if the
	original buffer is read-inly...
	(emoji-list-select): ...barf here instead.  (Bug#67400)
	(emoji-list): Doc fix.

2023-11-22  Michael Albinus  <michael.albinus@gmx.de>

	Fix CRLF handling in Tramp (don't merge)

	* lisp/net/tramp-sh.el (tramp-send-command-and-read): Use 'space'
	instead of 'blank' in rx expression, in order to handle also CR
	and alike.  Reported by Dominique Quatravaux
	<dominique@quatravaux.org>.

2023-11-21  Dmitry Gutov  <dmitry@gutov.dev>

	Annotate java-ts-mode-test-movement with expected result

	Do not merge to master.

2023-11-21  Theodor Thornhill  <theo@thornhill.no>

	Backport: Add more java indentation tests

	* test/lisp/progmodes/java-ts-mode-resources/indent.erts: Use default
	indent offset, and tweak the indentation examples.

	(cherry picked from commit dbe7803aa1e8249bd70f67f25f19aedabeb9cc22)

2023-11-21  Theodor Thornhill  <theo@thornhill.no>

	Backport: Add test for java indentation (bug#61115)

	* test/lisp/progmodes/java-ts-mode-resources/indent.erts: Add new test
	case.

	(cherry picked from commit 229d0772e235f51812ed8020a31f9a8de366c7ba)

2023-11-21  Noah Peart  <noah.v.peart@gmail.com>

	typescript-ts-mode: Support indentation for conditionals without braces

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): Support indentation for
	conditionals without braces (bug#67031).

	* test/lisp/progmodes/typescript-ts-mode-resources/indent.erts
	(Statement indentation without braces): New test.

2023-11-21  Theodor Thornhill  <theo@thornhill.no>

	Backport: Add some basic tests for java-ts-mode and typescript-ts-mode

	* test/lisp/progmodes/java-ts-mode-resources/indent.erts: New file
	with tests for indentation.
	* test/lisp/progmodes/java-ts-mode-resources/movement.erts: New file
	with tests for movement.
	* test/lisp/progmodes/java-ts-mode-tests.el: New tests.
	* test/lisp/progmodes/typescript-ts-mode-resources/indent.erts: New
	file with tests for indentation.
	* test/lisp/progmodes/typescript-ts-mode-tests.el: New tests.

	(cherry picked from commit c8dd37b16c574beda900d4ee48ac7b4ab4a2ee56)

2023-11-21  Eli Zaretskii  <eliz@gnu.org>

	Fix 'with-sqlite-transaction' when BODY fails

	* lisp/sqlite.el (with-sqlite-transaction): Don't commit changes
	if BODY errors out.  Roll back the transaction if committing
	fails.  (Bug#67142)

	* etc/NEWS:
	* doc/lispref/text.texi (Database): Document the error handling in
	'with-sqlite-transaction'.

2023-11-19  Richard Stallman  <rms@gnu.org>

	Fix wording in ELisp Intro manual

	* doc/lispintro/emacs-lisp-intro.texi (Lisp macro): Improve
	wording in description of 'unless'.  (Bug#67185)

2023-11-18  Yuan Fu  <casouri@gmail.com>

	Add missing python-ts-mode keyword (bug#67015)

	* lisp/progmodes/python.el (python--treesit-keywords): Add "not in".

2023-11-18  Dmitry Gutov  <dmitry@gutov.dev>

	Fix string-pixel-width with global setting of display-line-numbers

	* lisp/emacs-lisp/subr-x.el (string-pixel-width):
	Instead of checking for display-line-numbers-mode, set the
	display-line-numbers variable to nil (bug#67248).

2023-11-18  Eli Zaretskii  <eliz@gnu.org>

	Document changes in 'edmacro-parse-keys'

	* lisp/edmacro.el (edmacro-parse-keys): Add a comment for forcing
	output to be a vector.
	(read-kbd-macro): Adjust the doc string to changes in
	'edmacro-parse-keys'.  (Bug#67182)

2023-11-18  Eli Zaretskii  <eliz@gnu.org>

	Add 2 SQLite extensions to allow-list.

	* src/sqlite.c (Fsqlite_load_extension): Add 2 Free Software
	extensions to the allow-list.  For the details, see
	https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg00234.html.

2023-11-17  Michael Albinus  <michael.albinus@gmx.de>

	* test/lisp/net/tramp-tests.el (tramp--test-timeout-handler): Be more verbose.

2023-11-17  Michael Albinus  <michael.albinus@gmx.de>

	Make Tramp aware of completion-regexp-list (don't merge)

	* lisp/net/tramp.el (tramp-skeleton-file-name-all-completions):
	New defmacro.
	(tramp-completion-handle-file-name-all-completions):
	* lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions):
	* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-name-all-completions):
	* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions):
	* lisp/net/tramp-smb.el (tramp-smb-handle-file-name-all-completions):
	* lisp/net/tramp-sudoedit.el
	(tramp-sudoedit-handle-file-name-all-completions): Use it.

2023-11-17  Jeremy Bryant  <jb@jeremybryant.net>

	Add 5 docstrings to abbrev.el (bug#67153)

	* lisp/abbrev.el (prepare-abbrev-list-buffer, add-abbrev)
	(inverse-add-abbrev, abbrev--describe)
	(abbrev--possibly-save): Add doc strings.

2023-11-15  Morgan Smith  <Morgan.J.Smith@outlook.com>

	Fix CBZ file detection in doc-view-mode

	* lisp/doc-view.el (doc-view-set-doc-type): Fix CBZ file
	detection.  (Bug#67133)

	This fix is almost identical to the previous fix for ODF file
	detection in bug#54947 which resulted in commit
	b3ff4905388834994ff26d9d033d6bc62b094c1c

2023-11-15  João Távora  <joaotavora@gmail.com>

	* lisp/progmodes/eglot.el (eglot-server-programs): Fix previous commit.

	(cherry picked from commit 58d9e735e721ecf0187a5e15eefc7641112ace0b)

2023-11-14  João Távora  <joaotavora@gmail.com>

	Eglot: Send standard :language-id for typescript-language-server

	bug#67150

	* lisp/progmodes/eglot.el (eglot-server-programs): Update
	language-id for languages handled by typescript-language-server.

	(cherry picked from commit 1fe949888057b0275da041288709bd5690501974)

2023-11-14  Zajcev Evgeny  <zevlg@yandex.ru>

	Typofix in the doc/lispref/modes.texi

2023-11-14  Eli Zaretskii  <eliz@gnu.org>

	Fix spell-checking email message with citations

	This became broken 7 years ago, when the 'boundp condition was
	removed, and with it an important unrelated part of the code.
	* lisp/textmodes/ispell.el (ispell-message): Fix cite-regexp.

2023-11-12  Xiaoyue Chen  <xchen@vvvu.org>  (tiny change)

	Pass only the local parts of Eshell's $PATH to 'tramp-remote-path'

	* lisp/eshell/esh-proc.el (eshell-gather-process-output): Get the
	local part of the $PATH (bug#67126).

	Do not merge to master.

2023-11-12  Jeremy Bryant  <jb@jeremybryant.net>

	Add two doc strings to cl-extra.el

	* lisp/emacs-lisp/cl-extra.el (cl--random-time)
	(cl-find-class): Add docstrings.  (Bug#66949)

2023-11-11  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of read syntax and printed representation

	* doc/lispref/objects.texi (Syntax for Strings): Describe in more
	detail how to specify special characters in string literals.
	(Printed Representation, Character Type, Nonprinting Characters):
	Improve information and add cross-references about printed
	representation and read syntax.  (Bug#67033)

2023-11-09  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of signaling errors in batch mode

	* doc/lispref/control.texi (Signaling Errors)
	(Processing of Errors):
	* doc/lispref/os.texi (Batch Mode):
	* doc/lispref/debugging.texi (Invoking the Debugger):
	* lisp/emacs-lisp/debug.el (debug):
	* src/eval.c (Fsignal):
	* lisp/subr.el (error): Document more prominently that signaling
	an unhandled error in batch mode kills Emacs.  Better
	documentation of backtrace in batch mode.

2023-11-09  Yuan Fu  <casouri@gmail.com>

	Fix treesit-simple-indent-presets docstring (bug#67007)

	* lisp/treesit.el (treesit-simple-indent-presets): Fix docstring.
	* doc/lispref/modes.texi (Parser-based Indentation): Fix example.

2023-11-08  Stephen Berman  <stephen.berman@gmx.net>

	Prevent an infinite loop in todo-mode (bug#66994)

	* lisp/calendar/todo-mode.el (todo-item-start): Moving an item to
	a todo file (with `C-u m') that had not yet been read into a
	buffer puts point at the beginning of the file, from where it is
	impossible to reach todo-item-start by this function, so don't try
	in that case.

2023-11-08  Randy Taylor  <dev@rjt.dev>

	Fix cmake-ts-mode indentation (Bug#66845)

	* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode--indent-rules):
	Support versions v0.3.0 and v0.4.0 of the grammar.
	(cmake-ts-mode--font-lock-compatibility-fe9b5e0): Fix docstring.

2023-11-05  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.11

2023-11-04  Mattias Engdegård  <mattiase@acm.org>

	Suggest alternative reason for ERT test duplication error

	* lisp/emacs-lisp/ert.el (ert-set-test): Amend error message;
	maybe the redefinition was caused by a file loaded twice.
	(Bug#66782)

	Suggested by Xiyue Deng.

	(cherry picked from commit 425d23fbeaede81ab4f50b4073949cc1c8a3fbd0)

2023-11-04  Eli Zaretskii  <eliz@gnu.org>

	Fix description of 'Package-Requires' library header

	* doc/lispref/tips.texi (Library Headers): Update the description
	of the 'Package-Requires' header.  (Bug#66677)

2023-10-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-lib.el (cl--defalias): Improve&fix docstring

2023-10-30  Jeremy Bryant  <jb@jeremybryant.net>

	Add two docstrings in cl-lib.el

	* lisp/emacs-lisp/cl-lib.el (cl--set-buffer-substring)
	(cl--defalias): Add docstrings.  (Bug#66828)

2023-10-27  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp (don't merge)

	* lisp/net/tramp.el (tramp-read-id-output): Identifiers can contain "-".

2023-10-26  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/tramp.texi (Traces and Profiles): Fix indentation.  (don't merge)

2023-10-25  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/tramp.texi (Traces and Profiles): Fix indentation.  (Don't merge)

2023-10-25  Eli Zaretskii  <eliz@gnu.org>

	Fix guessing commands for zstandard archives in Dired

	* lisp/dired-aux.el (dired-guess-shell-alist-default): Fix
	zstdandard commands.  (Bug#66532)

2023-10-25  Matthew Woodcraft  <matthew@woodcraft.me.uk>  (tiny change)

	Fix eglot.texi (JSONRPC objects in Elisp) example

	* doc/misc/eglot.texi (JSONRPC objects in Elisp): Correct the
	example.  (Bug#66569)

2023-10-25  Michael Albinus  <michael.albinus@gmx.de>

	* doc/man/emacsclient.1: Fix --tramp option.

2023-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Improve `nsm-protocol-check--3des-cipher` docstring

	* lisp/net/nsm.el (nsm-protocol-check--3des-cipher): Update
	docstring to reflect current NIST policy.

2023-10-24  Lassi Kortela  <lassi@lassi.io>

	Recognize backslash in `dns-mode` quoted values

	* lisp/textmodes/dns-mode.el (dns-mode-syntax-table): Recognize
	backslash as an escape character.  (Bug#66660)

	(cherry picked from commit e6f05e189db73a0f0b29f987381ffef61a409232)

2023-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Make `dns-mode` fontify quoted values correctly

	* lisp/textmodes/dns-mode.el (dns-mode-syntax-table): Fontify
	quoted values correctly.  (Bug#62214)
	Suggested by Trent W. Buck <trentbuck@gmail.com>.

	(cherry picked from commit c586d984f279aa61de4f5dfc4f6df660188dd0f6)

2023-10-23  Stefan Kangas  <stefankangas@gmail.com>

	Change news.gmane.org to news.gmane.io

	* admin/notes/emba:
	* doc/misc/gnus.texi (Group Parameters)
	(Non-ASCII Group Names, Filling In Threads)
	(Selection Groups, Spam Package Configuration Examples)
	(Terminology):
	* lisp/gnus/gnus-group.el (gnus-useful-groups):
	* lisp/gnus/gnus-sum.el (gnus-fetch-old-headers):
	* lisp/gnus/spam-report.el (spam-report-gmane-use-article-number)
	(spam-report-gmane-internal):
	* test/lisp/gnus/gnus-group-tests.el (gnus-short-group-name):
	Change news.gmane.org to news.gmane.io.
	Ref: https://news.gmane.io/

2023-10-23  Mauro Aranda  <maurooaranda@gmail.com>

	Fix minor defcustom issues in Gnus (Bug#66715)

	* lisp/gnus/gnus-art.el (gnus-button-prefer-mid-or-mail): Allow
	function and add :tag to const values.
	* lisp/gnus/gnus-bookmark.el (gnus-bookmark-bookmark-inline-details):
	Fix docstring.
	* lisp/gnus/gnus-sum.el (gnus-simplify-subject-fuzzy-regexp): Allow a
	single regexp as value.
	* lisp/gnus/message.el (message-indent-citation-function): Allow a
	single function as value.
	(message-mail-alias-type): Allow for a list of options as value.
	(message-dont-reply-to-names): Allow a function as value.
	* lisp/gnus/spam-report.el (spam-report-url-ping-function): Fix
	default value for the function widget.

2023-10-23  Michael Albinus  <michael.albinus@gmx.de>

	Minor connection-local variables fixes

	* doc/emacs/custom.texi (Connection Variables): Warn about
	specifying the same variable twice.

	* lisp/files-x.el (connection-local-get-profiles): Normalize criteria.

2023-10-23  Stefan Kangas  <stefankangas@gmail.com>

	Make Dired honor `insert-directory-program´ with globs

	Starting with commit 6f6639d6ed6c6314b2643f6c22498fc2e23d34c7
	(Bug#27631), Dired stopped respecting the value of
	'insert-directory-program' when using directory wildcards/globs.

	* lisp/dired.el (dired-insert-directory): Honor the value of
	'insert-directory-program' when using directory wildcards.

2023-10-22  Morgan J. Smith  <Morgan.J.Smith@outlook.com>

	Fix typo in url-privacy-level :type

	* lisp/url/url-vars.el (url-privacy-level): Fix typo in
	:type.  (Bug#66613)

2023-10-22  Juri Linkov  <juri@linkov.net>

	* lisp/vc/log-view.el (log-view-mode-menu): Quote derived modes (bug#66686).

2023-10-22  Petteri Hintsanen  <petterih@iki.fi>

	* lisp/tab-bar.el: Fix the close button with auto-width (bug#66678).

	(tab-bar-auto-width): Take into account the length of tab-bar-close-button
	more than one character: " x".
	Don't merge to master.

2023-10-22  Mauro Aranda  <maurooaranda@gmail.com>

	Fix State button for customize-icon (Bug#66635)

	* lisp/cus-edit.el (custom-icon-action): New function.
	(custom-icon): Use it as the :action.  Otherwise, clicking the State
	button is a noop.  Remove irrelevant stuff from the docstring and
	comment out some copy-pasta.
	(custom-icon-extended-menu): New variable, the menu to show upon
	:action.
	(custom-icon-set): Really redraw the widget with the new settings.
	Comment out strange call to custom-variable-backup-value.
	(custom-icon-save): New function.

	* lisp/emacs-lisp/icons.el (icons--merge-spec): Fix call to plist-get
	and avoid infloop.

2023-10-22  Yuan Fu  <casouri@gmail.com>

	Fix the use of adaptive-fill-regexp in treesit indent preset

	* lisp/treesit.el (treesit-simple-indent-presets):
	adaptive-fill-regexp don't have a capture group (the group in the
	default value is supposed to be a non-capture group), so don't use the
	group. Also, in the second diff hunk, replace looking-at with
	looking-at-p so it doesn't override match data that we use later.

2023-10-21  nverno  <noah.v.peart@gmail.com>

	Fix treesit-install-language-grammar (bug#66673)

	* lisp/treesit.el (treesit-install-language-grammar): Take out the
	language symbol when storing the recipe.

2023-10-21  Yuan Fu  <casouri@gmail.com>

	Fix treesit-explore-mode (bug#66431)

	* lisp/treesit.el (treesit-explore-mode): Reset
	treesit--explorer-last-node before calling treesit--explorer-refresh,
	so that in the rare case described in the bug report, the explorer
	buffer don't show the outdated node.

2023-10-21  Dmitry Gutov  <dmitry@gutov.dev>

	tsx-ts-mode--font-lock-compatibility-bb1f97b: Re-fix the previous fix

	* lisp/progmodes/typescript-ts-mode.el
	(tsx-ts-mode--font-lock-compatibility-bb1f97b): Make sure the
	tested query is actually valid in the new grammar (bug#66646).

2023-10-19  Michael Albinus  <michael.albinus@gmx.de>

	Update Tramp version (don't merge with master)

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el: Change version to "2.6.2.29.2".
	(customize-package-emacs-version-alist):
	Adapt Tramp version integrated in Emacs 29.2.

2023-10-19  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version

	* README:
	* configure.ac:
	* msdos/sed2v2.inp:
	* nt/README.W32: Bump Emacs version to 29.1.90.

2023-10-16  Po Lu  <luangruo@yahoo.com>

	Correctly register focus events concomitant with alpha changes

	* src/xterm.c (x_frame_highlight, x_frame_unhighlight): Skip
	changing the frame alpha when the frame is not eligible for
	focus state-specific alpha values; otherwise, the alpha might be
	reset by the time a alpha change wrought by a focus change
	arrives, impeding handle_one_xevent from subsequently restoring
	the initial value.  (bug#66398)

2023-10-16  Michael Albinus  <michael.albinus@gmx.de>

	* doc/man/emacsclient.1: Add missing options.

2023-10-15  Michael Albinus  <michael.albinus@gmx.de>

	Fix test in files-tests

	* test/lisp/files-tests.el
	(files-tests-file-name-non-special-expand-file-name-tilde): Fix test.

2023-10-14  Stefan Kangas  <stefankangas@gmail.com>

	Add missing :version to two defcustoms

	* lisp/emacs-lisp/eldoc.el (eldoc-print-after-edit)
	(eldoc-echo-area-prefer-doc-buffer): Add missing custom :version.

2023-10-14  Mauro Aranda  <maurooaranda@gmail.com>

	Fix a defcustom :type in eldoc.el

	* lisp/emacs-lisp/eldoc.el (eldoc-echo-area-prefer-doc-buffer): Make
	:type a choice, to allow for the value 'maybe'.  (Bug##66539)

2023-10-14  Eshel Yaron  <me@eshelyaron.com>

	Document 'M-x align' in the Emacs manual

	* doc/emacs/indent.texi (Alignment): New section.
	* doc/emacs/emacs.texi: Update menu. (Bug#66303)

2023-10-14  Bob Rogers  <rogers@rgrjr.com>

	Document that time-to-days and days-to-time use different epochs

	* doc/lispref/os.texi (Time Calculations):
	* lisp/calendar/time-date.el (days-to-time, time-to-days): Doc fixes.
	(Bug#66502)

2023-10-14  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/files.el (file-name-non-special): Handle quoted tilde.

	(Bug#65685)

	* test/lisp/files-tests.el
	(files-tests-file-name-non-special-expand-file-name-tilde):
	New test.

2023-10-13  Michael Albinus  <michael.albinus@gmx.de>

	Handle quoted tilde in Tramp

	* lisp/net/tramp.el (tramp-handle-expand-file-name):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name):
	* lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name):
	* lisp/net/tramp-smb.el (tramp-smb-handle-expand-file-name):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name):
	Handle quoted tilde.  (Bug#65685)

	* test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name-tilde):
	New test.

2023-10-09  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.10

2023-10-09  Yuan Fu  <casouri@gmail.com>

	Don't call font-lock-mode in treesit-major-mode-setup (bug#66223)

	* lisp/treesit.el (treesit-major-mode-setup): Remove.

	(cherry picked from commit a3a840c80a217db7d4d125c667ff7d4946507fbb)

2023-10-09  Noah Peart  <noah.v.peart@gmail.com>

	Fix treesit-query-validate for string input (bug#66400)

	* lisp/treesit.el (treesit-query-validate): Don't expand if QUERY is
	string.

2023-10-07  Stefan Kangas  <stefankangas@gmail.com>

	Recommend `M-x man` in woman.el docs

	* lisp/woman.el (Commentary, woman): Recommend using 'M-x man' where
	available.  The added sentence is copied from the emacs manual.
	Ref: https://lists.gnu.org/r/emacs-devel/2023-10/msg00090.html

2023-10-07  Eli Zaretskii  <eliz@gnu.org>

	Fix updating process-mark position in 'set-process-buffer'

	* src/process.c (update_process_mark): Update marker position only
	if P's process-mark is not already associated with P's buffer.
	(Bug#66313)

2023-10-07  Mauro Aranda  <maurooaranda@gmail.com>

	Fix a defcustom :type

	* lisp/cedet/srecode/map.el (srecode-map-save-file): Expand :type to
	allow nil.  (Bug#66377)

2023-10-07  Eli Zaretskii  <eliz@gnu.org>

	Fix 'ido--ffap-find-file'

	* lisp/ido.el (ido--ffap-find-file): Make the signature consistent
	with that of 'find-file', and pass the optional second argument to
	'find-file'.  (Bug#66382)

2023-10-06  Eli Zaretskii  <eliz@gnu.org>

	Fix setting the pipe capacity for subprocesses

	* src/process.c (create_process) [F_SETPIPE_SZ]: Set the pipe
	capacity only if the required read-process-max is larger than the
	default capacity of the pipe.  (Bug#66288)

2023-10-05  Gerd Möllmann  <gerd@gnu.org>

	Handle LANG on macOS differently (bug#65908)

	* src/nsterm.m (ns_init_locale): If LANG is set, try to use that,
	otherwise try to deduce what LANG should be.  Check is the result is
	valid, and use LANG="en_US.UTF-8" if not.

2023-10-05  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Silence macro expansion during completion at point

	To keep risk in the current release branch low, do not avoid compiler
	macros as suggested by Stefan in the bug, but rather suppress all errors.

	* lisp/progmodes/elisp-mode.el (elisp--local-variables): Silence
	messages.  Suppress all errors during macro expansion.  (Bug#58148)

	Do not merge to master.

2023-10-05  Mauro Aranda  <maurooaranda@gmail.com>

	Fix a defcustom :type

	* lisp/cedet/ede/base.el (ede-project-placeholder-cache-file): Expand
	:type to allow nil.  (Bug#66361)

2023-10-04  Mauro Aranda  <maurooaranda@gmail.com>

	Fix pulse-flag :type

	* lisp/cedet/pulse.el (pulse-flag): Expand :type to allow 'never as
	value.  (Bug#66341)

2023-10-03  Mauro Aranda  <maurooaranda@gmail.com>

	Fix defcustoms in timeclock.el

	* lisp/calendar/timeclock.el (timeclock-get-project-function)
	(timeclock-get-reason-function): Fix :type to allow nil.  (Bug#66320)

2023-10-01  Stefan Kangas  <stefankangas@gmail.com>

	Improve documentation of `ns-use-proxy-icon`

	* doc/emacs/macos.texi (Mac / GNUstep Customization):
	* src/nsfns.m (syms_of_nsfns): Fix documentation of
	'ns-use-proxy-icon'; explain what it does and how it's
	used.  (Bug#66190)

2023-10-01  Stefan Kangas  <stefankangas@gmail.com>

	Document assigning libraries to packages in make-tarball.txt

	* admin/make-tarball.txt: Add new step to ensure that new libraries
	are assigned to packages.

2023-10-01  Stefan Kangas  <stefankangas@gmail.com>

	Doc fix; more consistently refer to "text terminals"

	In the Emacs Lisp manual, we refer to "text terminals" and "graphical
	terminals" (see Info node `(elisp) Frames').  But in some places,
	including the user manual, the alternative terminology "non-window
	terminals" is used instead.

	In other places, we use the terminology "non-windowing display"
	instead of the more canonical "non-graphical display".

	This is less clear than it could be.  Let's consolidate our
	terminology to prefer the wording from the Emacs Lisp manual; in other
	words, prefer "text" and "non-graphical" to "non-window".

	* doc/emacs/frames.texi (Non-Window Terminals): Rename node from this...
	(Text Terminals): ...to this.  (Bug#66282)
	* doc/emacs/display.texi (Standard Faces):
	* doc/emacs/emacs.texi (Top):
	* doc/emacs/misc.texi (emacsclient Options):
	* doc/misc/viper.texi (Rudimentary Changes)
	(Packages that Change Keymaps):
	* doc/emacs/frames.texi (Frames, Frame Commands, Mouse Avoidance):
	Replace instances of "non-window terminals" with "text terminals".
	* doc/misc/ediff.texi (Quick Help Customization):
	(Window and Frame Configuration):
	* lisp/vc/ediff.el (ediff-windows-wordwise)
	(ediff-windows-linewise): Prefer saying 'non-graphical display' to
	'non-windowing display'.
	* lisp/net/tramp.el (tramp-default-method):
	* lisp/printing.el (pr-find-command): Capitalize 'Windows' where it
	clearly refers to the non-free operating system with that name.

2023-09-30  Mauro Aranda  <maurooaranda@gmail.com>

	Fix defcustoms in type-break.el (Bug#66210)

	* lisp/type-break.el (type-break-good-rest-interval)
	(type-break-file-name): Allow nil.

2023-09-30  Mauro Aranda  <maurooaranda@gmail.com>

	Fix term-scroll-to-bottom-on-output :type

	* lisp/term.el (term-scroll-to-bottom-on-output): Add missing choices.
	Don't advertise the value 'all' in docstring.  (Bug#66071)

2023-09-28  Stefan Kangas  <stefankangas@gmail.com>

	Doc fix in let-alist for keys with nil value

	* lisp/emacs-lisp/let-alist.el (let-alist): Clarify that keys with a
	nil value will give the same result as if they were missing.

2023-09-28  Michael Albinus  <michael.albinus@gmx.de>

	Fix tramp-test.el (don't merge with master)

	* test/lisp/net/tramp-tests.el (tramp--test-check-files):
	Don't err out when "printenv" doesn't exist on remote side.

2023-09-25  Michael Albinus  <michael.albinus@gmx.de>

	Improve Emacs 30 compatibility in tramp-tests.el (don't merge)

	* test/lisp/net/tramp-tests.el (tramp--test-deftest-direct-async-process)
	(tramp-test30-make-process): Improve Emacs 30 compatibility.

2023-09-25  Michael Albinus  <michael.albinus@gmx.de>

	Add new Tramp test

	* test/lisp/net/tramp-tests.el (tramp-test46-read-password):
	Use `copy-tree' but `copy-sequence'.
	(tramp-test46-read-otp-password): New test.

2023-09-25  Mauro Aranda  <maurooaranda@gmail.com>

	Fix tmm-mid-prompt :type (Bug#66179)

	* lisp/tmm.el (tmm-mid-prompt): Allow nil.

2023-09-24  Augustin Chéneau  <btuin@mailo.com>  (tiny change)

	Fix tree-sitter indentation conflict with multiple languages

	* lisp/treesit.el (treesit--indent-1): Use bol instead of point.

2023-09-24  Michael Albinus  <michael.albinus@gmx.de>

	Fix bug#66093 in Tramp

	* lisp/net/tramp-sshfs.el (tramp-methods): Use "%a".
	(tramp-sshfs-handle-process-file): Replace ?a by "-t".

	* lisp/net/tramp.el (tramp-methods): Adapt docstring.  (Bug#66093)
	(tramp-handle-make-process): Replace ?a by "-t" if indicated.

2023-09-24  Eli Zaretskii  <eliz@gnu.org>

	Support regeneration of ja-dic.el under '--with-small-ja-dic'

	* lisp/international/ja-dic-cnv.el (skkdic-convert): Record the
	value of SMALL_JA_DIC option used to produce ja-dic.el.
	* leim/Makefile.in (small-ja-dic-option): New target, triggers
	regeneration of ja-dic.el when the value of SMALL_JA_DIC option
	changes by the configure script.  Suggested by Ulrich Müller
	<ulm@gentoo.org>.
	(${leimdir}/ja-dic/ja-dic.el): Depend on 'small-ja-dic-option'.
	(Bug#66125)

	* make-dist (possibly_non_vc_files):
	* .gitignore: Add 'leim/small-ja-dic-option'.

2023-09-22  Basil L. Contovounesios  <contovob@tcd.ie>

	Improve remote-file-name-inhibit-cache :type

	* lisp/files.el (remote-file-name-inhibit-cache)
	(shell-highlight-undef-remote-file-name-inhibit-cache): Avoid
	duplicated :tag string.  Try to clarify wording and
	formatting (bug#66150).
	* lisp/shell.el (shell--highlight-undef-exec-cache): Reference
	correct user option in docstring.

2023-09-22  Stefan Kangas  <stefankangas@gmail.com>

	Ensure bind-key is its own package

	* lisp/finder.el (finder--builtins-alist): Remove "use-package"
	directory.
	* lisp/use-package/bind-key.el: Declare library as part of the
	'bind-key' package.
	* lisp/use-package/use-package-bind-key.el:
	* lisp/use-package/use-package-core.el:
	* lisp/use-package/use-package-delight.el:
	* lisp/use-package/use-package-diminish.el:
	* lisp/use-package/use-package-ensure-system-package.el:
	* lisp/use-package/use-package-ensure.el:
	* lisp/use-package/use-package-jump.el:
	* lisp/use-package/use-package-lint.el: Declare library as part of the
	'use-package' package.  (Bug#62751)

	Do not merge to master.

2023-09-21  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-skeleton-write-region): Fix missing comma.

	(Bug#66123)

2023-09-18  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter range update function

	* lisp/treesit.el (treesit-update-ranges): If an embedded language
	doesn't have any range, don't set its range to nil (which means whole
	buffer), instead, set its range to a dummy (1 . 1) zero range.

2023-09-18  Ihor Radchenko  <yantar92@posteo.net>

	Announce handling 'org-protocol' URI scheme in NEWS

	* etc/NEWS: Document handling 'org-protocol' URI scheme.  The commit
	implementing the new functionality is 05a7c91b91c.  (Bug#65469)

2023-09-18  Ihor Radchenko  <yantar92@posteo.net>

	Make emacsclient handle org-protocol:// links

	Org mode provides a way to quickly capture bookmarks, notes, and links
	using emacsclient:

	    emacsclient "org-protocol://store-link?url=URL&title=TITLE"

	* etc/emacsclient.desktop: Make Emacs the default application for
	org-protocol.  (Bug#65469)

	(cherry picked from commit 05a7c91b91c02c34ec6527119a465e5408dea2b1)

2023-09-18  Robert Pluim  <rpluim@gmail.com>

	Ensure ucs-names is consistent with Unicode names

	* lisp/international/mule-cmds.el (ucs-names): Skip adding an old-name
	if it conflicts with the official name of a codepoint.  Adjust the
	ranges iterated over to account for new Unicode codepoints.
	* test/lisp/international/mule-tests.el
	(mule-cmds-tests--ucs-names-old-name-override,
	mule-cmds-tests--ucs-names-missing-names): New tests for checking
	'ucs-names' consistency.

	Bug#65997

2023-09-18  Shynur  <one.last.kiss@outlook.com>

	Make key-translate actually work

	* lisp/keymap.el (key-translate): Use the first element of the parsed
	keys rather than the whole vector.  (Bug#65735)

2023-09-17  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.9

2023-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Add leim subdirectories to emacs package

	* lisp/finder.el (finder--builtins-alist): Add subdirectories
	'leim/ja-dic' and 'leim/quail' as part of the 'emacs'
	package.  (Bug#62751)

2023-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Add missing builtin package declarations

	* lisp/finder.el (finder--builtins-alist): Add new package
	directories 'leim' and 'obsolete' as part of the 'emacs' package.
	Add new package directory 'use-package' as part of the
	'use-package' package.
	* lisp/net/eudc-capf.el:
	* lisp/net/eudcb-ecomplete.el:
	* lisp/net/eudcb-macos-contacts.el:
	* lisp/net/eudcb-mailabbrev.el: Declare library as part of the
	'eudc' package.
	* lisp/mail/ietf-drums-date.el: Declare library as part of the
	'ietf-drums' package.
	* lisp/image/image-dired-dired.el:
	* lisp/image/image-dired-external.el:
	* lisp/image/image-dired-tags.el:
	* lisp/image/image-dired-util.el: Declare library as part of the
	'image-dired' package.
	* lisp/emacs-lisp/oclosure.el:
	* lisp/keymap.el:
	* lisp/progmodes/c-ts-common.el: Declare library as part of the
	'emacs' package.  (Bug#62751)

	(cherry picked from commit 94b1de2774b5c1fa3c28285229900657638f5c3f)

2023-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Add more missing builtin package declarations

	* lisp/emacs-lisp/shorthands.el: Declare library as part of the
	'emacs' package.
	* lisp/epa-ks.el: Declare library as part of the 'epa'
	package.  (Bug#55388)

2023-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Document shell-command-to-string security considerations

	* lisp/simple.el (shell-command-to-string): Document security
	considerations in docstring.

2023-09-17  Mauro Aranda  <maurooaranda@gmail.com>

	Fix shell-indirect-setup-hook :type (Bug#66051)

	* lisp/shell.el (shell-indirect-setup-hook): It's a hook, not a
	boolean.

2023-09-17  Thomas Hilke  <t.hilke@rollomatic.ch>  (tiny change)

	Remove column quoting from sqlite-mode

	* lisp/sqlite-mode.el (sqlite-mode--column-names): Unquote column
	name.  (Bug#65998)

2023-09-17  Theodor Thornhill  <theo@thornhill.no>

	Add indentation rules for type_arguments

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Indent
	as opening braces.

2023-09-16  Dmitry Gutov  <dmitry@gutov.dev>

	typescript-ts-mode.el: Minor touches

	* lisp/progmodes/typescript-ts-mode.el
	(tsx-ts-mode--indent-compatibility-b893426)
	(tsx-ts-mode--font-lock-compatibility-bb1f97b):
	Catch specific error.
	(typescript-ts-base-mode): Improve docstring (bug#65470).

2023-09-16  Dmitry Gutov  <dmitry@gutov.dev>

	Improve namespacing situation WRT to recent change in typescript-ts-mode.el

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts--syntax-propertize):
	Rename from ts-ts--syntax-propertize.
	(tsx-ts--syntax-propertize-captures):
	Rename from ts-ts--syntax-propertize-captures.
	(typescript-ts--s-p-query):
	Rename from ts-ts--s-p-query.
	Update all references (bug#65470).

2023-09-16  Stephen Berman  <stephen.berman@gmx.net>

	Make move-end-of-line in minibuffer consistent (bug#65980)

	* lisp/simple.el (move-end-of-line): Always move to eol when
	invoking `C-e' from within the minibuffer's prompt string.

2023-09-16  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Fix loss of encrypted data in plstore.el

	* lisp/plstore.el (plstore--insert-buffer): Fix loss of encrypted
	data when a plstore gets opened and saved without being decrypted
	between these steps.  (Bug#63627)

2023-09-16  Thomas Hilke  <t.hilke@rollomatic.ch>  (tiny change)

	Close SQL database when corresponding 'sqlite-mode' buffer is killed

	* lisp/sqlite-mode.el (sqlite-mode-open-file): Close DB when the
	buffer is killed.  (Bug#65998)

2023-09-16  Eli Zaretskii  <eliz@gnu.org>

	Fix Unicode normalization of characters

	* lisp/international/ucs-normalize.el
	(ucs-normalize-composition-exclusions, check-range): Update from
	Unicode 15.0 data.  (Bug#65996)

	* test/lisp/international/ucs-normalize-tests.el
	(ucs-normalize-tests--failing-lines-part1)
	(ucs-normalize-tests--failing-lines-part2): Update to reflect
	changes in ucs-normalize.el.

	* admin/notes/unicode: Mention the updates in ucs-normalize.el.

2023-09-16  Michael Albinus  <michael.albinus@gmx.de>

	Support one-time passwords in Tramp

	* doc/misc/tramp.texi (Remote shell setup):
	Describe tramp-otp-password-prompt-regexp.

	* lisp/net/tramp-sh.el (tramp-actions-before-shell)
	(tramp-actions-copy-out-of-band):
	Use `tramp-otp-password-prompt-regexp'.

	* lisp/net/tramp.el (tramp-otp-password-prompt-regexp): New defcustom.
	(tramp-action-otp-password): New defun.

2023-09-16  Eli Zaretskii  <eliz@gnu.org>

	Fix the 'C' and 'c' categories of characters

	* lisp/international/characters.el: Fix categories of Chinese
	characters.  (Bug65995)

2023-09-16  Eli Zaretskii  <eliz@gnu.org>

	Fix Emoji zooming commands

	* lisp/international/emoji.el (emoji-zoom-increase): Handle the
	case where face property at point is a list of faces.  (Bug#65994)

2023-09-15  Dmitry Gutov  <dmitry@gutov.dev>

	tsx-ts-mode--font-lock-compatibility-bb1f97b: Improve

	* lisp/progmodes/typescript-ts-mode.el
	(tsx-ts-mode--font-lock-compatibility-bb1f97b):
	Test the more complex query, because the current one leads to
	false positives (mentioned in bug#65470).

2023-09-15  Davide Masserut  <dm@mssdvd.com>

	Avoid using --display in emacsclient to reuse frames on PGTK

	Using hard-coded display values can cause PGTK graphical frames to
	open using the wrong backend or not open at all.
	* Makefile.in (install-etc): Use --reuse-frame instead of
	--display=$DISPLAY.  (Bug#65509)

2023-09-15  Eli Zaretskii  <eliz@gnu.org>

	Support emacsclient on Windows with server on GNU or Unix systems

	* lisp/server.el (server-process-filter): If 'tty-name' is literally
	"CONOUT$", assume the client runs on MS-Windows and force the
	frame type to GUI.  This allows to run emacsclient on MS-Windows
	when the server runs on a Posix host.  (Bug#65812)

2023-09-14  Mauro Aranda  <maurooaranda@gmail.com>

	Fix defcustom in saveplace.el (Bug#65977)

	* lisp/saveplace.el (save-place-ignore-files-regexp): Allow nil.

2023-09-14  Eli Zaretskii  <eliz@gnu.org>

	Fix 'window-text-pixel-size' when there are several images at START

	* src/xdisp.c (window_text_pixel_size): Remove unnecessary call to
	'move_it_to'.  (Bug#65899)  (Bug#54862)

2023-09-14  Eli Zaretskii  <eliz@gnu.org>

	: Doc fix.

	* lisp/progmodes/prog-mode.el
	(prettify-symbols-unprettify-at-point): Doc fix.

2023-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Doc fix for prettify-symbols-unprettify-at-point

	* lisp/progmodes/prog-mode.el
	(prettify-symbols-unprettify-at-point): Document that it has to be
	set before enabling 'prettify-symbols-mode'.  (Bug#65884)

2023-09-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	(report_overlay_modification): Fix bug#65929

	Somehow the new overlay code in Emacs-29 changed slightly
	the test to decide when to run the `modification-hooks` of overlays,
	with the consequence that these hook functions end up being executed
	also when text is deleted right after an empty overlay, which is
	contrary to Emacs-28 behavior as well as contrary to the Texinfo doc.

	* src/buffer.c (report_overlay_modification): Better reproduce the
	Emacs-28 code.

	* test/src/buffer-tests.el (overlay-modification-hooks):
	Add corresponding test.

2023-09-13  Alan Third  <alan@idiocy.org>

	Fix SVG colors (bug#56182)

	* src/image.c (svg_load_image): Reverse the R and B bytes in the
	Windows colors before using them to generate the SVG.

2023-09-13  Juri Linkov  <juri@linkov.net>

	* doc/emacs/text.texi (Outline Minor Mode): Add a note about value 'insert'.

	* lisp/outline.el (outline-minor-mode-use-buttons): Add a note and
	a comment about the value 'insert' (bug#65874).

2023-09-13  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'list-abbrevs'

	* doc/emacs/abbrevs.texi (Editing Abbrevs): Describe how system
	abbrevs are shown by 'list-abbrevs'.  Suggested by Shynur Xie
	<one.last.kiss@outlook.com>.  (Bug#65907)

2023-09-12  Dmitry Gutov  <dmitry@gutov.dev>

	Tweak s-p-f for js-ts-mode

	* lisp/progmodes/js.el (js-ts--s-p-query):
	Consider two more contexts (bug#65470).

2023-09-12  Jostein Kjønigsen  <jostein@kjonigsen.net>

	typescript-ts-mode, tsx-ts-mode: Fix syntax properties for regexp and jsx

	Propertize regexps as strings and JSX elements as generic strings.

	* lisp/progmodes/typescript-ts-mode.el (ts-ts--s-p-query)
	(tsx-ts--s-p-query): New variables.
	(ts-ts--syntax-propertize, tsx-ts--syntax-propertize)
	(ts-ts--syntax-propertize-captures): New functions.
	(typescript-ts-mode, tsx-ts-mode): Use them (bug#65470).

2023-09-12  Eli Zaretskii  <eliz@gnu.org>

	* lisp/progmodes/c-ts-mode.el (c++-ts-mode): Provide (bug#65895).

2023-09-11  Yuan Fu  <casouri@gmail.com>

	Fix regression of treesit_cursor_helper_1

	* src/treesit.c (treesit_cursor_helper_1)
	(treesit_cursor_first_child_for_byte): Use
	ts_tree_cursor_goto_first_child_for_byte first, and
	ts_tree_cursor_goto_first_child second.

2023-09-10  Stefan Kangas  <stefankangas@gmail.com>

	Update docs for passing of Thien-Thi Nguyen

	* doc/emacs/ack.texi (Acknowledgments): Add Thien-Thi Nguyen.
	* lisp/play/zone.el: Set maintainer to emacs-devel.

2023-09-10  Stefan Kangas  <stefankangas@gmail.com>

	Update defvar usage tips example in manual

	* doc/lispref/variables.texi (Tips for Defining): Change example
	to be about syntax tables instead of old way of defining keymaps
	using 'defvar' and 'make-sparse-keymap'.  (Bug#59224)

2023-09-10  Stefan Kangas  <stefankangas@gmail.com>

	Document using Flymake together with Eglot

	* doc/misc/flymake.texi (Top, Using Flymake): Document using
	Flymake together with Eglot.  (Bug#60040)

2023-09-08  Mauro Aranda  <maurooaranda@gmail.com>

	Fix defcustom :type of ielm-indirect-setup-hook

	* lisp/ielm.el (ielm-indirect-setup-hook): Fix :type and remove :safe
	property, since it was probably a copy-pasta.  (Bug#65821)

2023-09-08  Stefan Kangas  <stefankangas@gmail.com>

	Document NonGNU ELPA in FAQ

	* doc/misc/efaq.texi (Packages that do not come with Emacs):
	Document NonGNU ELPA.  (Bug#65818)

2023-09-07  Jim Porter  <jporterbugs@gmail.com>

	Fix remote path setting in Eshell

	This ensures that we supply Tramp with the local PATH so that it can
	do its job of starting the local "ssh", or whatever the method uses
	(bug#65551).

	* lisp/eshell/esh-proc.el (eshell-gather-process-output): Add special
	handling for remote processes.

	* test/lisp/eshell/esh-proc-tests.el
	(esh-var-test/remote/remote-path): New test.

2023-09-07  Stefan Kangas  <stefankangas@gmail.com>

	Update docs for (co-)maintainer changes

	* admin/MAINTAINERS: Add information on current maintainers as a
	canonical place to find this information.
	* doc/emacs/ack.texi (Acknowledgments): Update for recent
	Emacs (co-)maintainer changes.
	* admin/make-tarball.txt: Add note as a reminder to update the above
	before making a new release.

2023-09-07  Sebastian Miele  <iota@whxvd.name>

	* doc/lispref/strings.texi (Text Comparison): Fix typo (bug#65799).

2023-09-07  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp manual

	* doc/misc/tramp.texi (Frequently Asked Questions): Do not use
	`defadvice'.  Add indices.  (Bug#65481)

2023-09-07  Stefan Kangas  <stefankangas@gmail.com>

	Improve docstring of message-sendmail-envelope-from

	* lisp/gnus/message.el (message-sendmail-envelope-from): Doc fix.

2023-09-07  Philipp Stephani  <phst@google.com>

	Unbreak builds with CHECK_STRUCTS.

	* src/pdumper.c (dump_buffer): Fix hash for 'struct buffer'.  The
	recent changes to that structure where commits
	8f3091defb3ec4396ccea563f67c005044b822ca and
	0bd46619413e83fe3c85c8a1dfbf5e20dfce8605, both of which just affected
	comments.

2023-09-07  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Improve documentation of EPG

	* lisp/epg.el (epg-context-set-passphrase-callback): Update
	GnuPG-version-dependent information in docstring and refer to
	Info node `(epa)' for details.
	(epg-start-edit-key): Replace description of arguments by a
	reference to `epg-edit-key'.
	(epg-edit-key): More precisely describe callback operation and
	arguments and provide an example of how to edit a key.  (Bug#65603)

2023-09-07  Daniel Martín  <mardani29@yahoo.es>

	Avoid crashes on macOS with context menus

	* src/nsmenu.m ([EmacsMenu menuNeedsUpdate:]): Avoid crashes with
	context menus.  (Bug#63495)

2023-09-07  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode BSD style indentation

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles):
	Add else_clause.

	(cherry picked from commit d392a5d3c11b7e7479d31421f8237f29952c909e)

2023-09-06  David Ponce  <da_vid@orange.fr>

	Fix regexp for recognizing PBM images

	* lisp/image.el (image-type-header-regexps): Don't use [:space:],
	as its meaning depends on the current buffer's syntax tables.
	(Bug#65496)

2023-09-06  Eli Zaretskii  <eliz@gnu.org>

	Improve wording in ELisp manual

	* doc/lispref/objects.texi (Printed Representation): Improve
	wording.  Suggested by Xie Shynur <one.last.kiss@outlook.com>.
	(Bug# 60639)

2023-09-06  Joseph Turner  <joseph@breatheoutbreathe.in>

	Fix typo (Bug#65764)

	* lisp/subr.el (backward-word-strictly): Fix typo.

2023-09-05  Po Lu  <luangruo@yahoo.com>

	Fix libgccjit build on Haiku

	* configure.ac (LIBGCCJIT_LIBS): Link only with -lgccjit under
	Haiku.

2023-09-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	(regexp-tests-backtrack-optimization): Mark it as failing

	* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
	The fix for bug#65726 broke some of the optimization added for bug#61514.

2023-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/regex-emacs.c (mutually_exclusive_p): Fix inf-loop (bug#65726)

2023-09-04  Stefan Kangas  <stefankangas@gmail.com>

	Bump seq version to 2.24

	* lisp/emacs-lisp/seq.el: Bump version to 2.24.  (Bug#60990)

2023-09-04  Stefan Kangas  <stefankangas@gmail.com>

	Add note on ELPA to admin/notes/bug-triage

	* admin/notes/bug-triage: Add section on (Non-)GNU ELPA packages and
	do some copy editing.

2023-09-02  Po Lu  <luangruo@yahoo.com>

	* etc/PROBLEMS: Mention bug#65432 and its remedy.

2023-09-02  Theodor Thornhill  <theo@thornhill.no>

	Ignore errors when checking for object initializers (bug#63379)

	Since this is merely a check for syntax, we don't really care about
	any internal errors inside of backward-up-list.

	* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Wrap
	command in ignore-errors.

2023-09-02  Stefan Kangas  <stefankangas@gmail.com>

	* CONTRIBUTE: Document making ChangeLogs with Magit.

2023-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Doc fixes for obsolete functions and variables

	* admin/notes/multi-tty:
	* doc/emacs/building.texi (Debugger Operation):
	* doc/misc/efaq-w32.texi (Line ends by file system):
	* doc/misc/gnus.texi (Hashcash):
	* lisp/emacs-lisp/eieio.el (eieio-class-parents)
	(eieio-class-children):
	* lisp/progmodes/perl-mode.el:
	* lisp/textmodes/ispell.el (ispell-lookup-words):
	* src/buffer.h: Update or delete references to variables and functions
	made obsolete in Emacs 24.4.

2023-09-02  Mauro Aranda  <maurooaranda@gmail.com>

	A revision to the Widget manual

	* doc/misc/widget.texi (Widgets Basics, Working with Widgets)
	(Widgets and the Buffer, Widget Gallery, Customization): New chapters.
	(Basic Types, Sexp Types): Demote to subsections.
	(Widget Browser): Rename to Inspecting Widgets.
	(Widget Properties): Remove.

	(Top): Adapt menu to changes.
	(Introduction): Rearrange text.  Move warnings to a better place, and
	user options to the Customization chapter.
	(User Interface): Don't fully describe commands and customization
	options here.
	(Setting Up the Buffer): Expand on widget creation process and add
	documentation for useful functions which deal with
	creation/conversion.
	(Defining New Widgets): Expand the documentation on define-widget.
	All relevant properties moved to the description of the default
	widget, in Widget Gallery.
	(Utilities): Add some more useful functions not previously documented.
	(Wishlist): Remove out-of-date items.

2023-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Fix fontification of " in edit-kbd-macro

	* lisp/edmacro.el (edit-kbd-macro): Fix fontification when editing
	keyboard macros containing the " character.

2023-09-02  Eli Zaretskii  <eliz@gnu.org>

	* lisp/emacs-lisp/gv.el (buffer-local-value): Unobsolete (bug#65555).

2023-09-02  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Add documentation to plstore.el

	* lisp/plstore.el: Add link to epa manual.  Describe more
	restrictions.  Fix a typo in the examples.  Fix terminology.  Mark
	FIXMEs as such.
	* lisp/plstore.el (plstore-save): Describe edge case when no recipient
	matches and mark as FIXME.  (Bug#63627)

2023-09-01  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/help.el (substitute-quotes): Improve docstring.

2023-09-01  Stefan Kangas  <stefankangas@gmail.com>

	Fix two defcustom :types

	* lisp/frame.el (blink-cursor-blinks):
	* lisp/url/url-vars.el (url-max-redirections): Revert defcustom :types
	back to integer.  (Bug#65655)

2023-09-01  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix `image-auto-resize-on-window-resize' custom :type

	* lisp/image-mode.el (image-auto-resize-on-window-resize): Change
	custom :type from integer to number to be able to set below 1
	second.  (Bug#65626)

2023-09-01  Ross Timson  <me@rosstimson.com>  (tiny change)

	Add "terraform-ls" LSP server to Eglot

	* lisp/progmodes/eglot.el (eglot-server-programs): Add "terraform-ls",
	the official Terraform LSP server.  (Bug#65671)

2023-09-01  Eli Zaretskii  <eliz@gnu.org>

	Fix minor bugs in vc-git and vc-hg on Windows uncovered by vc-tests

	* lisp/vc/vc-hg.el (vc-hg-state-slow): Non-existing files emit a
	different message on MS-Windows; support that.
	* lisp/vc/vc-git.el (vc-git-checkin): Make sure
	'default-directory' is not nil when calling
	'make-nearby-temp-file' on MS-Windows.

	* test/lisp/vc/vc-tests.el (vc-test--version-diff): Run
	'default-directory' through 'file-truename', otherwise the
	'vc-test-cvs06-version-diff' test might fail on MS-Windows.

2023-08-31  Dmitry Gutov  <dmitry@gutov.dev>

	Add syntax-propertize-function to js-ts-mode

	* lisp/progmodes/js.el (js-ts--s-p-query):
	New variable (bug#65470).
	(js-ts--syntax-propertize): New function.
	(js-ts-mode): Use it.

2023-08-30  Yuan Fu  <casouri@gmail.com>

	Improve performance of treesit_cursor_helper_1

	* src/treesit.c: (treesit_cursor_helper_1): Use
	ts_tree_cursor_goto_first_child_for_byte to speed up traversing among
	siblings.  The "while (ts_node_end_byte (cursor_node) < end_pos)" can
	be removed with the check added in the loop below.

2023-08-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/subr.el (combine-change-calls-1): Fix bug#64989

	Silence the spurious warning, and improve the warning while at it.
	Do not merge to master.

2023-08-27  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.8-3-g21171d

2023-08-27  Yuan Fu  <casouri@gmail.com>

	Escape percent character in treesit--inspect-name (bug#65540)

	* lisp/treesit.el (treesit-inspect-node-at-point): Escape percent.

2023-08-27  Jim Porter  <jporterbugs@gmail.com>

	Don't add an extraneous slash in remote PATH list in Eshell

	Previously, in a remote directory, '(eshell-get-path)' would return a
	list of strings like "/ssh:localhost://usr/bin".  While that shouldn't
	break most things, it's not strictly correct either.  See bug#65551.

	* lisp/eshell/esh-util.el (eshell-get-path): Use 'concat' instead of
	'file-name-concat'.

	* test/lisp/eshell/esh-util-tests.el: Require 'tramp' and
	'eshell-tests-helpers'.
	(esh-util-test/path/get, eshell-util-test/path/get-remote): New tests.

2023-08-27  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp on MS Windows

	* lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name):
	Apply `tramp-drop-volume-letter' consequently.

2023-08-27  Andrea Corallo  <acorallo@gnu.org>

	* Fix native disassemble on Windows platforms (bug#65455)

	* lisp/emacs-lisp/disass.el (disassemble-internal): Improve regexp.

2023-08-27  Andrea Corallo  <acorallo@gnu.org>

	* Handle missing eln file when trying to disassble (bug#65455)

	* lisp/emacs-lisp/disass.el (disassemble-internal): Handle missing
	eln file.

2023-08-27  Andrea Corallo  <acorallo@gnu.org>

	* lisp/emacs-lisp/comp.el (comp--native-compile): Fix OUTPUT for non abs paths

2023-08-27  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.4.3

2023-08-27  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Eshell manual

	* doc/misc/eshell.texi (Arguments): Mention more special
	characters to be quoted in remote file names.  (Bug#65431)

2023-08-27  Eli Zaretskii  <eliz@gnu.org>

	Fix applying patches with Git on MS-Windows

	* lisp/vc/vc.el (vc-diff-internal): For Git, always suppress EOL
	conversion when reading the diffs into a buffer.  Doc fix.
	* lisp/vc/vc-git.el (vc-git-checkin): Make sure to suppress EOL
	conversion when the patch file is written.  (Bug#65049)

2023-08-26  Po Lu  <luangruo@yahoo.com>

	Repair bug#65068 on Emacs 29

	* src/xterm.c (x_term_init): Disable ControlFallback library
	control wherever present.  (bug#65068)

	Do not merge to master.

2023-08-24  Stefan Kangas  <stefankangas@gmail.com>

	Fix custom :type of dired-mouse-drag-files

	* lisp/dired.el (dired-mouse-drag-files): Fix :type to allow
	specifying 'move'.  (Bug#65497)

2023-08-24  James Thomas  <jimjoe@gmx.net>

	Account for string names in active file

	Account also for strings when reading in group names from an active
	file (bug#62812).
	* lisp/gnus/nnmail.el (nnmail-parse-active): Make it similar to
	gnus-active-to-gnus-format

2023-08-24  Christoph Göttschkes  <just.mychris@googlemail.com>  (tiny change)

	Fix 'makefile-browser-client' variable initialization

	* lisp/progmodes/make-mode.el (makefile-browser-client):
	Initialize to nil.  (Bug#65487)

2023-08-19  Yuan Fu  <casouri@gmail.com>

	Support defun navigation for DEFUN in c-ts-mode (bug#64442)

	Before this change, beginning/end-of-defun just ignores DEFUN in
	c-ts-mode. After this change, beginning/end-of-defun can recognize
	DEFUN, but a DEFUN definition is considered two defuns. Eg,
	beginning/end-of-defun will stop at (1) (2) and (3) in the following
	snippet:

	(1)DEFUN ("treesit-node-parser",
	       Ftreesit_node_parser, Streesit_node_parser,
	       1, 1, 0,
	       doc: /* Return the parser to which NODE belongs.  */)
	  (Lisp_Object node)
	(2){
	  CHECK_TS_NODE (node);
	  return XTS_NODE (node)->parser;
	}
	(3)

	Ideally we want point to only stop at (1) and (3), but that'll be a
	lot harder to do.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--defun-valid-p): Refactor to take in account of DEFUN body.
	(c-ts-mode--emacs-defun-body-p): New function.
	(c-ts-base-mode): Add DEFUN and DEFUN body to recognized types.
	(c-ts-mode--emacs-defun-at-point): Now that we recognize both parts of
	a DEFUN as defun, c-ts-mode--emacs-defun-at-point needs to be updated
	to adapt to it.

2023-08-19  Eli Zaretskii  <eliz@gnu.org>

	Fix touchpad scrolling on MS-Windows

	* src/w32term.c (w32_construct_mouse_wheel): The number of lines
	to scroll should always be positive in wheel-scroll events.
	Whether to scroll up or down is encoded in the modifiers, which
	produce either wheel-up or wheel-down event.  (Bug#65070)

	* doc/lispref/commands.texi (Misc Events): Clarify the
	documentation of 'wheel-up' and 'wheel-down' events.

2023-08-19  Philip Kaludercic  <philipk@posteo.net>

	Fix order in which package-vc dependencies are resolved

	* lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies):
	Avoid a type-mismatch when comparing two packages.  (Bug#65283)

2023-08-19  Joseph Turner  <joseph@breatheoutbreathe.in>

	Fix building of VC package manuals with relative org links/includes

	* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
	Ensure that default-default is the docs-directory around
	org-export-to-file to ensure that links to relative files work
	correctly.  (Bug#65243)

2023-08-19  Eli Zaretskii  <eliz@gnu.org>

	Fix the documentation of 'cl-flet'

	* doc/misc/cl.texi (Function Bindings): Update the description.
	(Bug#65362)

2023-08-17  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Avoid false "wrong passphrase" messages in EPA

	* lisp/epa-file.el (epa--wrong-password-p): Use a stricter regexp
	to match "wrong passphrase" errors generated by GnuPG.  (Bug#65316)

2023-08-17  dannyfreeman  <danny@dfreeman.email>

	Fix jsx font-lock in older tree-sitter-js grammars

	* lisp/progmodes/js.el (js--treesit-font-lock-settings): Use
	queries that are backwards compatible with
	tree-sitter-javascript bb1f97b.
	* lisp/progmodes/js.el
	(-jsx--treesit-font-lock-compatibility-bb1f97b): Delete unused
	function.  (Bug#65234)

2023-08-17  Eli Zaretskii  <eliz@gnu.org>

	Fix cloning 'face-remapping-alist' for indirect buffers

	* lisp/face-remap.el (face-remap--copy-face): Remove.
	(face-attrs--make-indirect-safe): Use 'copy-tree'.  Suggested by
	Stefan Monnier <monnier@iro.umontreal.ca>.

2023-08-17  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of case transfer in replacement commands

	* doc/emacs/search.texi (Replacement and Lax Matches):
	* src/search.c (Freplace_match):
	* lisp/replace.el (query-replace, query-replace-regexp): Clarify
	in the doc string and the manual how letter-case is transferred
	from the replaced text to the replacement text.  (Bug#65347)

2023-08-16  Eli Zaretskii  <eliz@gnu.org>

	Fix horizontal scrolling of images with C-f

	* lisp/image-mode.el (image-forward-hscroll): Calculate the
	window-width more accurately, as the number of full columns that
	fits in the window's text-area.  (Bug#65187)

2023-08-16  Eli Zaretskii  <eliz@gnu.org>

	Fix unpacking ZIP archives on MS-Windows

	* lisp/arc-mode.el (archive-zip-summarize): Decode file names as
	UTF-8 when bit 11 of flags is set, even on MS-Windows.
	(Bug#65305)

2023-08-16  Jim Porter  <jporterbugs@gmail.com>

	Fix command example in Eshell manual

	* doc/misc/eshell.texi (Introduction): Fix example (bug#65303).

	Reported by Eric Gillespie <brickviking@gmail.com>.

2023-08-14  Jim Porter  <jporterbugs@gmail.com>

	Add user options mentioned in the Eshell manual to the variable index

	* doc/misc/eshell.texi: Make variable index entries use "code" style,
	and add indexing for any options already in the manual.

2023-08-14  Andrea Corallo  <acorallo@gnu.org>

	* Add missing alias to `native-comp-enable-subr-trampolines'.

	* lisp/subr.el (native-comp-deferred-compilation): Alias to
	native-comp-jit-compilation.

2023-08-14  Andrea Corallo  <acorallo@gnu.org>

	* Add missing alias to `native-comp-enable-subr-trampolines'.

	* lisp/subr.el (comp-enable-subr-trampolines): Alias to
	native-comp-enable-subr-trampolines.

2023-08-13  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.7-13-g99cc96

2023-08-13  Michael Albinus  <michael.albinus@gmx.de>

	Handle last-coding-system-used in Tramp for all backends

	* lisp/net/tramp.el (tramp-skeleton-write-region):
	Handle `last-coding-system-used'.
	(tramp-handle-write-region):
	* lisp/net/tramp-adb.el (tramp-adb-handle-write-region):
	* lisp/net/tramp-smb.el (tramp-smb-handle-write-region):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-write-region):
	Set `coding-system-used'.  (Bug#65022)

	* lisp/net/tramp-sh.el (tramp-sh-handle-write-region):
	Move `last-coding-system-used' handling to
	`tramp-skeleton-write-region'.

2023-08-13  Devon Sean McCullough  <emacs-hacker2017@jovi.net>

	Add 2 Welsh characters to iso-transl.el

	* lisp/international/iso-transl.el (iso-transl-char-map): Add two
	Welsh characters.  (Bug#65248)

2023-08-12  Andrea Corallo  <acorallo@gnu.org>

	* Fix `batch-byte+native-compile' target directory.

	* lisp/emacs-lisp/comp.el (batch-native-compile): Don't shadow
	`native-compile-target-directory' unless necessary.

2023-08-12  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes in 'display_count_lines' when current buffer was killed

	* src/xdisp.c (Fformat_mode_line):
	* src/fns.c (Fline_number_at_pos): Don't allow to count lines in a
	dead buffer.  (Bug#65060)

2023-08-12  J M  <jean@tbm.email>

	Update csharp tree-sitter support due to upstream changes

	A change in tree-sitter-c-sharp grammar for csharp (commit
	18a531), has removed the keyword void_keyword and advised
	we should use predefined_type.
	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
	Support both old and new style of keywords in tree-sitter-c-sharp
	grammar.  (Bug#65113)

2023-08-12  Matthew Tromp  <matthewktromp@gmail.com>  (tiny change)

	Substitute command keys in 'ielm-header' at use time

	Before, command keys were substituted into the ielm-header when
	ielm.el was loaded, which resulted in the substitutions depending on
	the user's current buffer instead of the ielm buffer.
	For example, if the user was in an info-mode buffer, the key would
	appear as 'H' instead of 'C-h m'.
	Now, the command key is substituted after the ielm buffer has been
	created.
	* lisp/ielm.el (ielm-header): Remove substitute-command-keys.
	(inferior-emacs-lisp-mode): Add substitute-command-keys.  (Bug#65213)

2023-08-12  Eli Zaretskii  <eliz@gnu.org>

	Fix rare crashes in redisplay due to problems with fontsets

	* src/xdisp.c (get_next_display_element): If we have no usable
	face to display a character/composition, treat that as glyphless.
	(produce_glyphless_glyph): If neither it->face nor its ASCII face
	are usable, fall back to the frame's default font.  (Bug#65198)

2023-08-12  Eli Zaretskii  <eliz@gnu.org>

	Fix a typo in 'leuven-dark-theme.el'

	* etc/themes/leuven-dark-theme.el (leuven-dark): Fix a typo.
	Reported by John Poole <saxcos@posteo.es>.  (Bug#65239)

2023-08-10  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp test

	* test/lisp/net/tramp-tests.el (tramp-test41-special-characters):
	Skip for macOS.

2023-08-10  dannyfreeman  <danny@dfreeman.email>

	Properly expand the JSX indentation rules in 'js-ts-mode'

	* lisp/progmodes/js.el (js--treesit-indent-rules): Fix
	'js-ts-mode' indent bug in JSX expressions. Before this
	change, treesit indent mechanisms were trying to call this
	compatibility function like a matching or anchor rule.
	This resulted in an error when running `indent-for-tab-command`
	while the cursor was in a JSX expression:

	treesit--simple-indent-eval: Wrong number of
	arguments: ((cl-struct-js--pitem-tags ido-cur-list t) nil "Indent rules
	helper, to handle different releases of tree-sitter-javascript."

	(Bug#65134)

2023-08-10  Andrea Corallo  <acorallo@gnu.org>

	* Add `emacs-lisp-native-compile' to easy-menu.

	* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Add menu
	item for emacs-lisp-native-compile.

2023-08-10  Andrea Corallo  <acorallo@gnu.org>

	* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Simplify condition.

2023-08-10  Andrea Corallo  <acorallo@gnu.org>

	* Introduce `emacs-lisp-native-compile'.

	* lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile): New command.
	(emacs-lisp-native-compile-and-load): Make use of.

2023-08-10  Eli Zaretskii  <eliz@gnu.org>

	Fix the -x switch in non-X builds

	* src/emacs.c (main): Move the handling of the -x switch out of
	the HAVE_X_WINDOWS condition, and simplify the rest of the code by
	avoiding code duplication in HAVE_X_WINDOWS and !HAVE_X_WINDOWS
	cases.  (Bug#65048)

2023-08-10  Po Lu  <luangruo@yahoo.com>

	Document that `set-mouse-color' does not work everywhere

	* etc/PROBLEMS (Miscellaneous Problems): Mention where
	`set-mouse-color' does not work.

2023-08-10  Eli Zaretskii  <eliz@gnu.org>

	Fix the effects and documentation of 'dired-free-space'

	* lisp/dired.el (dired-free-space): Fix doc string and Custom tags.
	(dired--insert-disk-space): When 'dired-free-space' is 'separate',
	return the position of the beginning of the disk-space line, to be
	compatible with pre-Emacs 29 behavior under
	'dired-hide-details-mode'.  (Bug#65186)

	* doc/emacs/dired.texi (Misc Dired Features): Fix wording in
	documentation of 'dired-free-space'.

2023-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Fix cross-reference to eldoc in eglot manual

	* doc/misc/eglot.texi (Eglot Features): Fix cross-reference to eldoc
	node in the Emacs manual.

2023-08-09  Eli Zaretskii  <eliz@gnu.org>

	Add native-compilation to Emacs Lisp mode menu

	* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Add menu
	item for emacs-lisp-native-compile-and-load.

2023-08-09  Andrea Corallo  <acorallo@gnu.org>

	Fix emacs-lisp-native-compile-and-load eln target directory (bug#64226)

	* lisp/emacs-lisp/comp.el (comp-spill-lap-function): Don't use
	`byte+native-compile' to select output directory but always axpect
	it explicit through `native-compile-target-directory'.
	(batch-byte+native-compile): Set `native-compile-target-directory'.
	* test/src/comp-tests.el (comp-tests-bootstrap): Set
	`native-compile-target-directory'.

2023-08-09  Mattias Engdegård  <mattiase@acm.org>

	Disable failing test (bug#65156)

	* test/src/fileio-tests.el (fileio-tests--non-regular-insert):
	Mark as :unstable, since /dev/urandom is seekable.

	Do not merge to master.

2023-08-08  Po Lu  <luangruo@yahoo.com>

	Better fix for bug#65156

	* src/fileio.c (Finsert_file_contents): Correct seek-ability
	test, since lseek returns -1 upon failure.  (Bug#65156)

2023-08-08  Eli Zaretskii  <eliz@gnu.org>

	Fix insert-file-contents with pipes and /dev/stdin

	* src/fileio.c (Finsert_file_contents): Restore logic of
	non-regular but seekable files.  (Bug#65156)

2023-08-07  Po Lu  <luangruo@yahoo.com>

	Fix bug#65042

	* src/pgtkterm.c (fill_background_by_face): Respect the frame's
	background alpha property.

2023-08-07  Eli Zaretskii  <eliz@gnu.org>

	* configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes (bug#65123).

2023-08-06  Michael Albinus  <michael.albinus@gmx.de>

	* etc/NEWS: Mention tramp-show-ad-hoc-proxies.

	* test/lisp/net/tramp-tests.el (tramp-test42-utf8): Skip for macOS.

	* test/lisp/net/tramp-tests.el (tramp-test10-write-region): Extend test.

2023-08-06  Eli Zaretskii  <eliz@gnu.org>

	Fix reverting Rmail buffers

	This bug happened because rmail.el relied on 'revert-buffer' to
	return non-nil when it succeeds to revert, but a recent change
	in 'revert-buffer' broke that promise in Emacs 29.1.
	* lisp/files.el (revert-buffer--default, revert-buffer): Doc fix.
	(revert-buffer): Return whatever 'revert-buffer-function' returns.
	(Bug#65071)

2023-08-05  Jim Porter  <jporterbugs@gmail.com>

	Fix handling of 'byte-compile-ignore-files' when nil

	Before this fix, when 'byte-compile-ignore-files' was nil,
	'byte-recompile-directory' would ignore every file (bug#64985).

	* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Handle case
	when 'byte-compile-ignore-files' is nil.

2023-08-05  Michael Albinus  <michael.albinus@gmx.de>

	Sync with Tramp 2.6.2-pre

	* doc/misc/tramp.texi (Overview): Use "scp" in example.
	(Obtaining @value{tramp}): Prefer https: to git: URIs on Savannah.
	(Ssh setup): Extend for MS Windows and ssh.  Explain
	tramp-use-ssh-controlmaster-options value `suppress'.
	(File name completion): Remove completion styles restrictions.
	(Ad-hoc multi-hops): Describe tramp-show-ad-hoc-proxies.
	(Remote processes): Add reference to "Using ssh connection sharing".

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el (tramp-version): Set to "2.6.2-pre".

	* lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions):
	* lisp/net/tramp-archive.el
	(tramp-archive-handle-file-name-all-completions):
	* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-name-all-completions):
	* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions):
	* lisp/net/tramp-smb.el (tramp-smb-handle-file-name-all-completions):
	* lisp/net/tramp-sudoedit.el
	(tramp-sudoedit-handle-file-name-all-completions): Return nil when
	DIRECTORY is missing.  (Bug#61890)

	* lisp/net/tramp.el (tramp-accept-process-output): Don't use TIMEOUT
	anymore, default it to 0.  When the connection uses a shared
	socket possibly, accept also the output from other processes over
	the same connection.  (Bug#61350)
	(tramp-handle-file-notify-rm-watch, tramp-action-process-alive)
	(tramp-action-out-of-band, tramp-process-one-action)
	(tramp-interrupt-process):
	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
	* lisp/net/tramp-smb.el (tramp-smb-action-get-acl)
	(tramp-smb-action-set-acl, tramp-smb-wait-for-output):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-action-sudo): Adapt callees.

	* lisp/net/tramp.el (tramp-get-process, tramp-message)
	(tramp-handle-make-process, tramp-handle-file-notify-valid-p)
	(tramp-process-actions, tramp-accept-process-output)
	(tramp-process-sentinel, tramp-read-passwd)
	(tramp-interrupt-process, tramp-signal-process):
	* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
	* lisp/net/tramp-cmds.el (tramp-cleanup-connection):
	* lisp/net/tramp-crypt.el (tramp-crypt-maybe-open-connection):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch)
	(tramp-gvfs-monitor-process-filter)
	(tramp-gvfs-maybe-open-connection):
	* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
	(tramp-sh-handle-file-notify-add-watch)
	(tramp-sh-gio-monitor-process-filter)
	(tramp-sh-inotifywait-process-filter)
	(tramp-barf-if-no-shell-prompt, tramp-maybe-open-connection):
	* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
	(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl)
	(tramp-smb-maybe-open-connection):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection)
	(tramp-sudoedit-send-command): Prefix internal process properties
	with "tramp-".

	* lisp/net/tramp.el (tramp-skeleton-file-exists-p): New defmacro,
	which also handles host name completion.
	(tramp-handle-file-exists-p):
	* lisp/net/tramp-adb.el (tramp-adb-handle-file-exists-p):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-exists-p):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-exists-p): Use it.

	* lisp/net/tramp.el (tramp-wrong-passwd-regexp):
	* lisp/net/tramp-adb.el (tramp-adb-prompt):
	* lisp/net/tramp-sh.el (tramp-sh-inotifywait-process-filter):
	* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Unify regexps.

	* lisp/net/tramp.el:
	* lisp/net/tramp-cmds.el:
	* lisp/net/tramp-crypt.el:
	* lisp/net/tramp-gvfs.el:
	* lisp/net/tramp-sh.el:
	* lisp/net/tramp-smb.el: Fix error messages.

	* lisp/net/tramp-cmds.el (tramp-cleanup-connection):
	Protect `delete-process'.

	* lisp/net/tramp.el (tramp-prefix-format, tramp-prefix-regexp)
	(tramp-method-regexp, tramp-postfix-method-format)
	(tramp-postfix-method-regexp, tramp-prefix-ipv6-format)
	(tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format)
	(tramp-postfix-ipv6-regexp, tramp-postfix-host-format)
	(tramp-postfix-host-regexp, tramp-remote-file-name-spec-regexp)
	(tramp-file-name-structure, tramp-file-name-regexp)
	(tramp-completion-method-regexp)
	(tramp-completion-file-name-regexp):
	* lisp/net/tramp-compat.el (tramp-syntax):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector):
	Rearrange declarations.

	* lisp/net/tramp-compat.el (ansi-color): Require.
	(ls-lisp): Don't require.  (Bug#64124)
	(tramp-compat-replace-regexp-in-region): Move up.
	(tramp-compat-length<, tramp-compat-length>)
	(tramp-compat-length=): New defaliases.
	(tramp-compat-file-name-unquote, tramp-compat-take)
	(tramp-compat-ntake): Use them.

	* lisp/net/tramp-container.el (tramp-container--completion-function):
	Rename from `tramp-docker--completion-function'.  Add argument
	PROGRAM.  Use it for "docker" and "podman" host name completion.

	* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-exists-p):
	New defun.
	(tramp-crypt-file-name-handler-alist): Add it.

	* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-exists-p): New defun.
	(tramp-fuse-mount-timeout): Move up.
	(tramp-fuse-mount-point): Use `tramp-fuse-mount-timeout'.
	(tramp-fuse-unmount): Flush "mount-point" file property.
	(tramp-fuse-mount-point, tramp-fuse-mounted-p): Support existing
	mount points.
	(tramp-fuse-mounted-p): The mount-spec could contain an optional
	trailing slash.  (Bug#64278)

	* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file)
	* lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file):
	Improve stability for WebDAV.
	(tramp-rclone-handle-file-system-info): Check return code of
	command.

	* lisp/net/tramp-gvfs.el (while-no-input-ignore-events):
	Add `dbus-event' for older Emacs versions.
	(tramp-gvfs-parse-device-names): Ignore errors.

	* lisp/net/tramp-sh.el (tramp-display-escape-sequence-regexp)
	(tramp-device-escape-sequence-regexp): Delete.
	(tramp-sh-handle-insert-directory, tramp-barf-if-no-shell-prompt)
	(tramp-wait-for-output): Use `ansi-color-control-seq-regexp'.
	(tramp-use-ssh-controlmaster-options): Allow new value `suppress'.
	(tramp-ssh-option-exists-p): New defun.
	(tramp-ssh-controlmaster-options): Implement `suppress' actions.
	Should never return nil, but empty string.
	(tramp-perl-file-name-all-completions): Don't print status message.
	(tramp-sh-handle-file-name-all-completions): Return nil when check
	fails.  (Bug#61890)
	(tramp-run-test): Add VEC argument.
	(tramp-sh-handle-file-executable-p)
	(tramp-sh-handle-file-readable-p)
	(tramp-sh-handle-file-directory-p)
	(tramp-sh-handle-file-writable-p): Adapt callees.
	(tramp-sh-handle-insert-directory):
	(tramp-sh-handle-insert-directory): Test whether -N is understood
	by ls since that option is used along with --dired.  Remove -N
	when we remove --dired.  (Bug#63142)
	(tramp-sh-handle-insert-directory, tramp-barf-if-no-shell-prompt)
	(tramp-wait-for-output): Use `ansi-color-control-seq-regexp'.
	(tramp-sh-handle-expand-file-name): `null-device' could be nil.
	Reported by Richard Copley <rcopley@gmail.com>.
	(tramp-sh-handle-make-process): Improve handling of
	connection-type `pipe'.  (Bug#61341)

	* lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-symbolic-link):
	Flush TARGET file properties.

	* lisp/net/tramp-smb.el (tramp-smb-handle-copy-file): Flush proper
	file properties.
	(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl):
	Remove superfluous `unwind-protect'.

	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	Use `tramp-fuse-handle-file-exists-p'.
	(tramp-sshfs-handle-insert-file-contents): Move result out of
	unwindform.

	* lisp/net/tramp.el (tramp-string-empty-or-nil-p): New defsubst.
	Use it everywhere when appropriate.

	* lisp/net/tramp.el (tramp-methods) <->: Add.
	(tramp-completion-file-name-handler-alist):
	Add `expand-file-name', `file-exists-p', `file-name-directory' and
	`file-name-nondirectory'.
	(tramp-dissect-file-name): Do not extra check for
	`tramp-default-method-marker'.
	(tramp-completion-handle-expand-file-name)
	(tramp-completion-handle-file-exists-p)
	(tramp-completion-handle-file-name-directory)
	(tramp-completion-handle-file-name-nondirectory): New defuns.
	(tramp-completion-handle-file-name-all-completions): Remove duplicates.
	(tramp-show-ad-hoc-proxies): New defcustom.
	(tramp-make-tramp-file-name): Use it.
	(tramp-make-tramp-hop-name): Don't add hop twice.
	(tramp-shell-prompt-pattern): Remove escape characters.
	(tramp-process-one-action, tramp-convert-file-attributes):
	Use `ansi-color-control-seq-regexp'.  (Bug#63539)
	(tramp-wrong-passwd-regexp): Add "Authentication failed" string
	(from doas).
	(tramp-terminal-type): Fix docstring.
	(tramp-process-one-action): Delete ANSI control escape sequences
	in buffer.  (Bug#63539)
	(tramp-build-completion-file-name-regexp): Support user name
	completion.
	(tramp-make-tramp-file-name): Keep hop while in file
	(tramp-set-completion-function): Check, that cdr of FUNCTION-LIST
	entries is a string.
	(tramp-completion-file-name-handler): Run only when
	`minibuffer-completing-file-name' is non-nil.
	(tramp-skeleton-write-region): Fix scoping.  (Bug#65022)
	(tramp-handle-memory-info): Work on newly created objects, or use
	non-destructive operations.
	(tramp-accept-process-output): Use `with-local-quit'.
	(tramp-call-process, tramp-call-process-region):
	Let-bind `temporary-file-directory'.

	* test/lisp/net/tramp-archive-tests.el (tramp-archive--test-emacs28-p):
	New defun.
	(tramp-archive-test16-directory-files): Don't mutate.
	(tramp-archive-test47-auto-load): Adapt test.

	* test/lisp/net/tramp-tests.el (tramp-display-escape-sequence-regexp):
	Don't declare.
	(tramp-action-yesno): Suppress run in tests.
	(tramp-test02-file-name-dissect):
	(tramp-test02-file-name-dissect-simplified)
	(tramp-test02-file-name-dissect-separate): Adapt tests.
	(tramp-test21-file-links):
	(tramp-test21-file-links, tramp-test26-file-name-completion)
	(tramp-test28-process-file, tramp-test29-start-file-process)
	(tramp-test30-make-process, tramp-test33-environment-variables)
	(tramp-test38-find-backup-file-name, tramp-test47-auto-load)
	(tramp-test39-detect-external-change, tramp-test42-utf8)
	(tramp-test47-auto-load, tramp-test47-delay-load)
	(tramp-test48-unload): Adapt tests.
	(tramp-test26-file-name-completion-with-perl):
	(tramp-test26-file-name-completion-with-ls)
	(tramp-test26-interactive-file-name-completion): New tests.
	(tramp-test44-asynchronous-requests): Mark as :unstable.

2023-08-05  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of saveplace facilities for Dired

	* lisp/saveplace.el (save-place-dired-hook, save-place-alist):
	* lisp/dired.el (dired-initial-position-hook)
	(dired-initial-position): Doc fixes.  (Bug#65055)

2023-08-04  Jim Porter  <jporterbugs@gmail.com>

	Fix loaddef generation with ";;;foo-autoload" cookies in external packages

	This caused an issue where package-specific autoload cookies weren't
	being correctly recognized, so they got dumped into the package's main
	"<pkg>-autoloads.el" file, instead of "<pkg>-loaddefs.el" as they
	should (bug#65023).

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
	Save match data when checking syntax.

2023-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Delete comment saying that project.el is experimental

	* lisp/progmodes/project.el (Commentary): Delete comment saying that
	the API is "still experimental".  It is to be considered stable
	starting with the version released with Emacs 29.
	Ref: https://lists.gnu.org/r/emacs-devel/2023-07/msg00415.html

2023-08-04  Eli Zaretskii  <eliz@gnu.org>

	Fix byte-compiled files that use 'bind-key' from use-package

	* lisp/use-package/bind-key.el (bind-key): Ensure 'bind-key' is
	loaded at run time.  Patch by John Wiegley <johnw@gnu.org>.
	(Bug#64901)

2023-08-04  Eli Zaretskii  <eliz@gnu.org>

	Fix "Paste from Kill Menu" in non X toolkit builds

	* src/keymap.c (possibly_translate_key_sequence): Don't signal an
	error if 'key-valid-p' returns nil.  Suggested by Stefan Monnier
	<monnier@iro.umontreal.ca>. (Bug#64927)

2023-08-03  john muhl  <jm@pub.pink>

	Handle tabs in the SQL shown in the column listing

	* lisp/sqlite-mode.el (sqlite-mode-list-columns): Handle tabs.
	(Bug#64964)

2023-08-03  Eli Zaretskii  <eliz@gnu.org>

	Add new keyword to 'typescript-ts-mode'

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--keywords): Add "satisfies", a new operator in
	Typescript 4.9.  (Bug#64924)

2023-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Fix link to info node in prin1 docstring

	* src/print.c (Fprin1): Fix linking to info node in docstring.

	(cherry picked from commit 4b73edb8d1da74fd1bda8894e982d9768fd1f18c)

2023-08-03  Eli Zaretskii  <eliz@gnu.org>

	Clarify the meaning of the argument of ':align-to' space spec

	* doc/lispref/display.texi (Specified Space): Clarify the meaning
	and measurement of HPOS in ':align-to' space specs.  (Bug#65015)

2023-08-01  Jim Porter  <jporterbugs@gmail.com>

	Fix handling of ".elpaignore" file when compiling packages

	* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Treat
	'byte-compile-ignore-files' as a list of regexps per its docstring
	(bug#64985).

2023-08-01  Amritpal Singh  <sysgrammer@protonmail.com>  (tiny change)

	Support files compressed by 'pigz'

	* src/decompress.c (md5_gz_stream): Check 'stream.avail_in' as
	well.  (Bug#63832)

	(cherry picked from commit 46b6d175054e8f6bf7cb45e112048c0cf02bfee9)

2023-07-31  Eli Zaretskii  <eliz@gnu.org>

	Fix 'string-pixel-width' under 'line-prefix'

	* lisp/emacs-lisp/subr-x.el (string-pixel-width): Disable
	'line-prefix' and 'wrap-prefix' to avoid their effect on the
	calculated string width.  (Bug#64971)

2023-07-31  Michael Albinus  <michael.albinus@gmx.de>

	Fix find-dired-with-command for remote directories

	* lisp/find-dired.el (find-dired-with-command):
	Use `start-file-process-shell-command'.  (Bug#64897)

2023-07-30  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.7-5-gd1d0c3

2023-07-30  Mattias Engdegård  <mattiase@acm.org>

	Fix rx wrong-code bug: ranges starting with ^

	(rx (in (?^ . ?a))) was incorrectly translated to "[^-a]".
	Change it so that we get "[_-a^]" instead.

	* lisp/emacs-lisp/rx.el (rx--generate-alt): Split ranges starting with
	`^` occurring first in a non-negated character alternative.
	* test/lisp/emacs-lisp/rx-tests.el (rx-any): Add and adapt tests.

	(cherry picked from commit 5f5d668ac7917d61e9366fe0c3efd7b542671c3d)

2023-07-30  Basil L. Contovounesios  <contovob@tcd.ie>

	Backport: Fix some tree-sitter :match regexps

	This was originally installed on 2023-06-17 in the emacs-29 release
	branch and later reverted.  This backport follows the Emacs 29.1
	release (bug#64019).

	The shy groups were caught by modified versions of the GNU ELPA
	packages xr and relint:
	- https://github.com/mattiase/xr/pull/6
	- https://github.com/mattiase/relint/pull/14

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Quote special
	character in regexp.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
	* lisp/progmodes/js.el (js--plain-method-re):
	(js--treesit-font-lock-settings):
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Replace character
	alternative [\\d], which matches '\' or 'd', with the most likely
	intention [0-9].  Fix shy groups mistyped as optional colons.
	Remove unneeded numbered :match group in rust-ts-mode.

	(cherry picked from commit cd8d3f3379ec7179fac4bb8e9c40658be15a64f6)

2023-07-30  Po Lu  <luangruo@yahoo.com>

	Fix bug#64923

	* src/xfns.c (Fx_create_frame): Prevent cairo surface from being
	left without a desired size.  (bug#64923)

2023-07-30  Ulrich Müller  <ulm@gentoo.org>

	Avoid spurious whitespace in the modeline of emacsclient frames

	* lisp/bindings.el (mode-line-client): Compute 'help-echotext
	property in advance.  (Bug#58183)

	(cherry picked from commit 8c3338f6ba354218aee12c223d778be4180f892b)

2023-07-30  Mattias Engdegård  <mattiase@acm.org>

	Fix function help for advised aliases (bug#64797)

	* lisp/help-fns.el (help-fns--analyze-function):
	For aliases, use the base function name if at the end of the chain.
	This fixes a regression introduced in d30fde6b0cc.

	Reported by Michael Heerdegen.

	(cherry picked from commit 024bd1f09099ae186442001a75e578638070e296)

2023-07-30  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes due to invalid 'mode-line-format'

	* src/xdisp.c (display_mode_element, redisplay_window_error):
	Don't take XCAR of what can be Qnil.  (Bug#64893)

	(cherry picked from commit 7ea3f39deec3d54914077455e70605a14eb7d200)

2023-07-30  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes under 'which-key-mode'

	* src/keyboard.c (Fthis_single_command_keys): Don't allow calls to
	Fvector with negative first argument.  (Bug#64857)

	(cherry picked from commit 65834b8f8d53402517da7fe2446f5bac0aa30c39)

2023-07-30  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp:
	* etc/NEWS: Bump Emacs version to 29.1.50.

2023-07-29  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Update CMake support due to upstream changes (bug#64922)

	A recent change in tree-sitter-cmake grammar support for CMake (commit
	fe9b5e0), now put arguments are wrapped in a new argument_list node.
	To support the old and new version of the grammar, a new function was
	added on which string syntax highlighting now depends.

	* lisp/progmodes/cmake-ts-mode.el
	(cmake-ts-mode--font-lock-compatibility-fe9b5e0): Indent helper
	function to handle different tree-sitter-cmake version.
	* lisp/progmodes/cmake-ts-mode.el
	(cmake-ts-mode--font-lock-settings): Use the new function to handle
	the new argument_list node.

2023-07-24  Theodor Thornhill  <theo@thornhill.no>

	Remove nullptr named node from c++-ts-mode (bug#64818)

	The nullptr node was changed from a named node to an unnamed node
	upstream[0], which caused font locking to break. As this is a small
	enough regression, no compat code is required.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Remove
	node no longer in use.

	[0]:
	https://github.com/tree-sitter/tree-sitter-c/commit/c75868f8b508ae32a0c8490da91bb31b2b96430e

2023-07-24  Theodor Thornhill  <theo@thornhill.no>

	Make compat check also check typescript

	* lisp/progmodes/typescript-ts-mode.el
	(tsx-ts-mode--font-lock-compatibility-bb1f97b):
	Add argument so that we run the 'treesit-query-capture' when the
	language is 'typescript', not only 'tsx'.

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Use supplied argument.

2023-07-23  Eli Zaretskii  <eliz@gnu.org>

	Update HISTORY and ChangeLog.4

	* etc/HISTORY:
	* ChangeLog.4: Update for the Emacs 29.1 release.

2023-07-30  Eli Zaretskii  <eliz@maintain0p.gnu.org>

	* Version 29.1 released.

2023-07-29  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Update CMake support due to upstream changes (bug#64922)

	A recent change in tree-sitter-cmake grammar support for CMake (commit
	fe9b5e0), now put arguments are wrapped in a new argument_list node.
	To support the old and new version of the grammar, a new function was
	added on which string syntax highlighting now depends.

	* lisp/progmodes/cmake-ts-mode.el
	(cmake-ts-mode--font-lock-compatibility-fe9b5e0): Indent helper
	function to handle different tree-sitter-cmake version.
	* lisp/progmodes/cmake-ts-mode.el
	(cmake-ts-mode--font-lock-settings): Use the new function to handle
	the new argument_list node.

2023-07-24  Theodor Thornhill  <theo@thornhill.no>

	Remove nullptr named node from c++-ts-mode (bug#64818)

	The nullptr node was changed from a named node to an unnamed node
	upstream[0], which caused font locking to break. As this is a small
	enough regression, no compat code is required.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Remove
	node no longer in use.

	[0]:
	https://github.com/tree-sitter/tree-sitter-c/commit/c75868f8b508ae32a0c8490da91bb31b2b96430e

2023-07-24  Theodor Thornhill  <theo@thornhill.no>

	Make compat check also check typescript

	* lisp/progmodes/typescript-ts-mode.el
	(tsx-ts-mode--font-lock-compatibility-bb1f97b):
	Add argument so that we run the 'treesit-query-capture' when the
	language is 'typescript', not only 'tsx'.

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Use supplied argument.

2023-07-23  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp: Bump Emacs version to 29.1.

2023-07-23  Eli Zaretskii  <eliz@gnu.org>

	Update AUTHORS and ChangeLog.4

	* ChangeLog.4:
	* etc/AUTHORS: Update for Emacs 29.1 release.

2023-07-22  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Update JSX support due to upstream changes (bug#64647)

	A recent change in tree-sitter-javascript grammar support for
	JSX (commit bb1f97b), changed two things:
	1. renamed nested_identifier to member_expression
	2. removed jsx_fragment, jsx_text is used instead

	* lisp/progmodes/js.el (js-jsx--treesit-indent-compatibility-bb1f97b):
	Indent helper function to handle different tree-sitter-javascript
	version.
	* lisp/progmodes/js.el (js--treesit-indent-rules): Use the new
	function to handle both jsx_fragment and jsx_text.
	* lisp/progmodes/js.el (js-jsx--treesit-font-lock-compatibility-bb1f97b):
	Font lock helper function for handle different tree-sitter-javascript
	version.
	* lisp/progmodes/js.el (js--treesit-font-lock-settings): Use the new
	function to handle both nested_identifier and member_expression.

2023-07-22  Vincenzo Pupillo  <v.pupillo@gmail.com>

	Update TSX support due to upstream changes (bug#64647)

	A recent change in tree-sitter-typescript grammar support for
	TSX (commit b893426), changed two things:
	1. renamed nested_identifier to member_expression
	2. removed jsx_fragment, jsx_text is used instead

	* lisp/progmodes/typescript-ts-mode.el
	(tsx-ts-mode--indent-compatibility-b893426): Indent helper function
	to handle different tree-sitter-typescript version.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): use the new function to handle
	both jsx_fragment and jsx_text.
	* lisp/progmodes/typescript-ts-mode.el
	(tsx-ts-mode--font-lock-compatibility-bb1f97b): Font lock helper
	function for handle different tree-sitter-typescript version.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Use the new function to
	handle both nested_identifier and member_expression.

2023-07-21  Philipp Stephani  <phst@google.com>

	Unbreak build with CHECK_STRUCTS.

	The hash for the Lisp_Overlay structure has changed due to the (comment-only)
	commit 7ac947f34c745c61f8acc1fe2452a2c720d57a0d.

	* src/pdumper.c (dump_overlay): Update struct hash.

2023-07-21  Mattias Engdegård  <mattiase@acm.org>

	Revert "Improve commentary in nsfns.m"

	This reverts commit 3af27a4b815906c2ee38cbaf3a765289b3df061a,
	because it missed the point completely.
	Please talk to the original author next time.

2023-07-20  Eli Zaretskii  <eliz@gnu.org>

	Fix NetBSD build --with-sound

	* src/sound.c (alsa_write): Use ESTRPIPE only if defined.
	(Bug#64698)

2023-07-20  Mauro Aranda  <maurooaranda@gmail.com>

	Fix typo in pre-filter for underline property

	* lisp/cus-face.el (custom-face-attributes): Fix typo (Bug#64347)

2023-07-20  Po Lu  <luangruo@yahoo.com>

	Improve commentary in nsfns.m

	* src/nsfns.m (lispString): Avoid C++ comment and make the
	commentary actually relevant to the reason `make_string' is
	used.

2023-07-20  Po Lu  <luangruo@yahoo.com>

	Fix typos and omissions in cus-edit.el

	* lisp/cus-edit.el (custom-display): Add missing display types.

2023-07-18  Mattias Engdegård  <mattiase@acm.org>

	Convert NUL-containing NSString objects to Lisp strings correctly

	This cures the inability to paste text containing NUL from other
	applications on macOS, introduced by mistake in 7e3c2b553f
	(bug#64697).

	* src/nsfns.m ([NSString lispString]): Use make_string instead of
	build_string which relies on NUL-termination.

2023-07-15  Spencer Baugh  <sbaugh@catern.com>

	Ignore quit while getting interprogram paste in kill-new

	On X, if the current selection owner is not responding to selection
	requests, the user may want to take ownership of the selection.  The
	obvious way to do this is to kill some text (which a user might also
	be doing just as part of normal editing at the time the selection
	owner becomes nonresponsive).  However, if
	save-interprogram-paste-before-kill is non-nil, then killing text will
	hang until the user quits, and this quit will abort the entire
	kill-new, preventing the user from taking ownership of the selection.

	Now instead if the user quits while we are attempting to retrieve the
	selection from hanging owner, we will proceed to take ownership of the
	selection as normal, resolving the problem.

	(One example of a selection owner that might not be responding to
	selection requests is another instance of Emacs itself; while Emacs is
	blocked in call-process or Lisp execution, it currently does not
	respond to selection requests.)

	* lisp/simple.el (kill-new): Ignore quit while getting interprogram
	paste (bug#64423)

2023-07-15  Wang Diancheng  <dianchengwang@gmail.com>  (tiny change)

	* lisp/progmodes/gdb-mi.el: Fix interactive invocation of 'gud-go'.

	Bug#64590.

2023-07-15  Valtteri Vuorikoski  <vuori@notcom.org>  (tiny change)

	Fix NetBSD build with and without ncurses

	* configure.ac (netbsd): Don't set TERMINFO=no unless the termcap
	library is either -ltermcap or -lcurses.  This prevents aborts
	because on recent versions of NetBSD libtermcap is actually a
	symlink to libterminfo. (Bug#64577)

2023-07-14  YugaEgo  <yet@ego.team>

	Improve documentation of 'enable-local-variables' in Emacs manual

	* doc/emacs/custom.texi (Safe File Variables): Document ':all'.
	(Bug#64621)

2023-07-13  Jim Porter  <jporterbugs@gmail.com>

	Add documentation about remote access in Eshell

	Do not merge to master.  This is a backport of 438921161ac.

	* doc/misc/eshell.texi
	(Invocation): Mention the '*' prefix.
	(Remote Access): New section...
	(Commands): ... link to it.

2023-07-13  Jim Porter  <jporterbugs@gmail.com>

	Document some missing Eshell commands

	Do not merge to master.  This is a backport of f7a899d7ca0.

	* doc/misc/eshell.texi (Built-ins): Document 'eshell-debug'.
	(Extra built-in commands): Document 'count', 'ff', and 'gf'.

2023-07-13  Jim Porter  <jporterbugs@gmail.com>

	Document optional Eshell modules

	Do not merge to master.  This is a backport of 77f13edab0f.

	* doc/misc/eshell.texi (Built-ins): Move disabled-by-default commands
	to...
	(Tramp extensions, Extra built-in commands): ...here
	(Optional modules, Key rebinding, Smart scrolling): Add documentation.
	(Bug and ideas): Documentation is no longer incomplete!

2023-07-13  Jim Porter  <jporterbugs@gmail.com>

	Correct the Eshell documentation about how to write new modules

	* doc/misc/eshell.texi (Writing a module): Fix the documentation.
	'eshell-defgroup' doesn't exist anymore.

	Do not merge to master.  This is a backport of 77f13edab0f.

2023-07-13  Jim Porter  <jporterbugs@gmail.com>

	Restructure Eshell extension modules documentation

	This adds a section for documenting all the optional modules.

	Do not merge to master.  This is a backport of f2981a1681d.

	* doc/misc/eshell.texi (Extension modules): Move explanation about
	writing modules to...
	(Writing a module): ... here.
	(Module testing): Remove.  Testing an Eshell module doesn't require
	any special documentation.
	(Key binding, Smart scrolling, Electric forward slash): Move under...
	(Optional modules): ... here.
	(Directory handling, Terminal emulation): Remove.  These modules are
	enabled by default, and so are documented above.
	(Tramp extensions, Extra built-in commands): New sections.

2023-07-13  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Replace duplicate text from epa.texi by a reference

	* doc/misc/auth.texi (GnuPG and EasyPG Assistant Configuration):
	Replace duplicate text from epa.texi by a reference to
	that. (Bug#64154)

2023-07-13  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Add basic usage information and fix references

	* doc/misc/epa.texi (Top): Add menu entry for new node GnuPG Pinentry.
	(Quick Start): Add information on and reference to basic GnuPG
	configuration.
	(Encrypting/decrypting gpg files): Add usage information.
	(GnuPG version compatibility): Update version information.
	(GnuPG Pinentry): Add new node.
	(Caching Passphrases): Describe mandatory gpg-agent usage for GnuPG
	2.0 and later.
	(Overview, Encrypting/decrypting gpg files, GnuPG version compatibility)
	(Caching Passphrases, Bug Reports): Fix references, terminology,
	mark-up, and index entries.  (Bug#64154)

2023-07-13  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Add concept index, title-case structure titles

	* doc/misc/epa.texi (Top, Overview, Commands, Key management)
	(Cryptographic operations on regions, Cryptographic operations on files)
	(Dired integration, Mail-mode integration)
	(Encrypting/decrypting gpg files, Querying a key server)
	(GnuPG version compatibility, Caching Passphrases)
	(GNU Free Documentation License): Add concept index, title-case
	structure titles.  (Bug#64154)

2023-07-10  Eli Zaretskii  <eliz@gnu.org>

	Fix show-paren-mode when the parentheses is partially visible

	* lisp/paren.el (show-paren-function): Support the case where the
	open paren is partially visible, but enough so to not consider it
	"off-screen".  (Bug#64547)

2023-07-08  Gregory Heytings  <gregory@heytings.org>

	Merge branch 'scratch/bug64391' into emacs-29

2023-07-08  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-get-buffer-string): Stabilize.

2023-07-08  Michael Albinus  <michael.albinus@gmx.de>

	Fix stale cache in Tramp (don't merge)

	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly):
	Flush cache in time.

2023-07-07  Mattias Engdegård  <mattiase@acm.org>

	Mark failing icalendar test as unstable (bug#56241)

	* test/lisp/calendar/icalendar-tests.el
	(icalendar-export-bug-56241-dotted-pair):
	This test started failing early July 2023 in multiple branches at
	once without any change to the code and is likely sensitive to the
	current date.  Tag it to keep it quiet for now.

2023-07-06  Gregory Heytings  <gregory@heytings.org>

	Simplify after adding internal function to enter a labeled restriction

	* src/editfns.c: (Finternal__labeled_narrow_to_region): Merge the
	code of Finternal__label_restriction into this function.
	(Finternal__label_restriction): Remove this function.
	(syms_of_editfns): Remove the 'outermost-restriction' buffer local
	variable, which is not used anymore, and the symbol of
	'internal--label-restriction'.
	(Fwiden): Remove the call to reset the 'outermost-restriction'
	buffer local variable.

2023-07-06  Gregory Heytings  <gregory@heytings.org>

	Add internal function to enter a labeled restriction

	* src/editfns.c (Finternal__labeled_narrow_to_region): New
	function.  A specific function is necessary to avoid unnecessary
	slowdowns when 'narrow-to-region'/'widen' are called in a loop.
	(Fnarrow_to_region): Remove the call to Fset, which has been moved
	into Finternal__labeled_narrow_to_region.
	(labeled_narrow_to_region): Use the new function.
	(syms_of_editfns): Add the symbol of the new function.

	* lisp/subr.el (internal--with-restriction): Use the new function.

2023-07-04  Robert Pluim  <rpluim@gmail.com>

	Improve natnump shortdoc

	* lisp/emacs-lisp/shortdoc.el (number): Make it clear that zero
	satisfies 'natnump'.  Move 'natnump' next to 'cl-plusp' to highlight
	the difference between them.

2023-07-04  Robert Pluim  <rpluim@gmail.com>

	correct info documentation of benchmark-call

	* doc/lispref/debugging.texi (Profiling): 'benchmark-call' is a defun,
	not a macro.

2023-07-03  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/grep.el (rgrep): Fix docstring.

	Instead of the incorrect key `M-c' produce the right key
	with \\<read-regexp-map>\\[read-regexp-toggle-case-fold].

2023-07-03  Spencer Baugh  <sbaugh@catern.com>

	Include a help-echo for flymake's modeline counters

	This helps clarify what each of these numbers mean.  This is inspired
	by 'compilation-mode-line-errors' which does the same.
	* lisp/progmodes/flymake.el (flymake--mode-line-counter): Add
	help-echo to mode line properties.  (Bug#64424)

2023-07-02  Eli Zaretskii  <eliz@gnu.org>

	Avoid errors in completion due to 'completion-regexp-list'

	* doc/lispref/minibuf.texi (Basic Completion):
	* src/minibuf.c (syms_of_minibuf) <completion-regexp-list>:
	Document that global non-nil settings of 'completion-regexp-list'
	are not safe.

	* lisp/minibuffer.el (completion-pcm--merge-completions): Avoid
	errors in 'try-completion' when PREFIX is nil.  (Bug#64351)

2023-07-01  Alan Mackenzie  <acm@muc.de>

	C Mode: Don't fontify foo globally as type due to "struct foo"

	This fixes bug#64322.

	* lisp/progmodes/cc-langs.el (c-typeless-decl-kwds): Make the
	entry for c-mode nil.

2023-07-01  Mattias Engdegård  <mattiase@acm.org>

	* lisp/rect.el (rectangle--duplicate-right): Fix rectangle dup bug.

	This is a necessary adjustment to changes to rect.el in Emacs 29.

2023-07-01  Spencer Baugh  <sbaugh@janestreet.com>

	Add project command entries to the menu-bar

	This will make it easier for new users to learn these increasingly
	important and useful commands.  (Bug#63469)

	* lisp/menu-bar.el (menu-bar-file-menu): Add project-dired and
	project-find-file entries.
	(menu-bar-search-menu): Add project-find-regexp entry.
	(menu-bar-replace-menu): Add project-query-replace regexp entry.
	(menu-bar-shell-commands-menu): Add project-shell entry.
	(menu-bar-buffers-menu-command-entries): Add project-switch-to-buffer
	and project-list-buffer entries.
	(menu-bar-project-menu): Add.
	(menu-bar-tools-menu): Add "Project" submenu, and also project-compile
	entry and change text for compile entry.

2023-06-30  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of registers

	* doc/lispref/text.texi (Registers): Document buffers in
	registers.  Mention "frameset" as another name for "frame
	configuration".
	* doc/emacs/regs.texi (Registers, Configuration Registers)
	(File and Buffer Registers): Clarify and improve wording.  Add
	cross-references and indexing.
	(Configuration Registers): Rename the section to a more accurate
	name.  (Bug#64354)

	* lisp/register.el (jump-to-register, point-to-register)
	(register-alist, frame-configuration-to-register): Doc fixes.
	(Bug#64353)

2023-06-29  Andrew G Cohen  <cohen@andy.bu.edu>

	Use a temporary buffer in nnagent-request-set-mark (bug#64117)

	Commit cb12a84f2c519a48dd87453c925e3bc36d9944db inadvertently removed
	the use of a temporary buffer in nnagent-request-set-mark.  Bug and
	fix reported by Jens Schmidt <jschmidt4gnu@vodafonemail.de>

	* lisp/gnus/nnagent.el (nnagent-request-set-mark): Restore the use of
	a temporary buffer that was inadvertently removed.

	(cherry picked from commit 5075d752773c31d959272a7e2b73b1dc38ba184c)

2023-06-29  john muhl  <jm@pub.pink>  (tiny change)

	Support cons cell as value of ':line-width' box attribute

	* lisp/calculator.el (calculator-need-3-lines): Support
	values of a face's ':line-width' box attribute that are
	cons cells.  (Bug#64344)

2023-06-29  Yuan Fu  <casouri@gmail.com>

	Add missing calls to treesit_record_change in editfns.c

	These should be all that are missing.  See the next commit for detail.

	* src/editfns.c (Ftranslate_region_internal):
	(Ftranspose_regions): Call treesit_record_change.

2023-06-29  Yuan Fu  <casouri@gmail.com>

	Call treesit_record_change in subst-char-in-region (bug#64329)

	* src/editfns.c (Fsubst_char_in_region): Call treesit_record_change in
	the else branch.

2023-06-29  Juri Linkov  <juri@linkov.net>

	* lisp/misc.el (duplicate-line-final-position): New defcustom (bug#64185).

	* lisp/misc.el (duplicate-line): Use it.

	* test/lisp/misc-tests.el (misc--duplicate-line): Add tests for
	duplicate-line-final-position.

	Don't merge to master.

2023-06-29  Daniel Martín  <mardani29@yahoo.es>

	Make js-beginning-of-defun return non-nil on success

	The docstring of 'beginning-of-defun-function' says that the
	function shall return non-nil when it found the beginning
	of a defun.  This is specially important because the calling
	code decides when to move point depending on the return value.
	* lisp/progmodes/js.el (js-beginning-of-defun)
	(js--beginning-of-defun-flat): Return non-nil when the beginning
	of a defun is found.  (Bug#64283)

	* test/lisp/progmodes/js-tests.el (js-mode-end-of-defun): Add a unit
	test.

2023-06-27  Yuan Fu  <casouri@gmail.com>

	Tree-sitter use with-silent-modifications like jit-lock (bug#64321)

	* lisp/treesit.el (treesit--font-lock-notifier): Use
	with-silent-modifications when marking modified text to be fontified
	by jit-lock.  This is what jit-lock itself does.

2023-06-27  Stephen Berman  <stephen.berman@gmx.net>

	Fix todo-mode.el Commentary and a doc string (bug#64298)

	* lisp/calendar/todo-mode.el: Explicitly note in the Commentary
	that the Todo mode user manual is a separate Info manual in the
	Emacs installation.
	(todo-always-add-time-string): Replace doc string, which was
	mistakenly retained in the initial merge of this version of
	todo-mode.el, by a correct description of this user option.

2023-06-27  Stephen Berman  <stephen.berman@gmx.net>

	Prevent truncation of todo-mode categories sexp

	* lisp/calendar/todo-mode.el (todo-delete-file)
	(todo-move-category, todo-convert-legacy-files)
	(todo-update-categories-sexp, todo-check-format):
	Bind print-length and print-level to nil before using prin1
	and related functions, to avoid truncating the todo categories
	sexp and possibly corrupting the file format.

2023-06-27  Stephen Berman  <stephen.berman@gmx.net>

	Avoid making todo-mode buffers manually editable

	* lisp/calendar/todo-mode.el (todo-add-category)
	(todo-move-category, todo-edit-item--header)
	(todo-set-item-priority, todo-move-item, todo-item-undone)
	(todo-archive-done-item, todo-set-category-number): Restrict the
	scope of nil buffer-read-only to the function calls that change
	buffer text, thereby preventing todo mode buffers from becoming
	manually editable and hence possibly corrupted when the minibuffer
	is in use.

2023-06-26  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp mount-spec (don't merge)

	* lisp/net/tramp-fuse.el (tramp-fuse-mounted-p): The mount-spec
	could contain an optional trailing slash.  (Bug#64278)

2023-06-25  Daniel Semyonov  <daniel@dsemy.com>

	Fix VC package build when doc file isn't in a subdir

	* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
	Expand 'file' before attempting to get its directory.  (Bug#64242)

2023-06-25  Michael Albinus  <michael.albinus@gmx.de>

	Fix type check in tramp-get-buffer-string

	* lisp/net/tramp.el (tramp-get-buffer-string): Check, that BUFFER
	is really a bufferp.

2023-06-25  Richard M. Stallman  <rms@gnu.org>

	Clarify list terminology

	* doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed):
	Mention "cons cell".  Add index entries.
	(car & cdr): Simplify etymology of `car' and `cdr'.
	Explain why for some purposes they are better than `first' and `rest'.
	Mention cons cells.

	(cherry picked from commit 188c90c7c111dbbdc3edd29c23b59ade26f97bfd)

2023-06-24  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/shortdoc.el: More and better `substring` examples.

	Suggested by Juri Linkov.

2023-06-24  Eli Zaretskii  <eliz@gnu.org>

	Fix "C-x RET r" when the new encoding is UTF

	* src/fileio.c (Finsert_file_contents): Update point of
	'conversion_buffer' before decoding the last block.  (Bug#64253)

2023-06-23  Dmitry Gutov  <dmitry@gutov.dev>

	Fix "vc-print-log does not erase buffer" and associated problems

	* lisp/vc/vc.el (vc-deduce-fileset): Make sure to retain the
	buffer switch (if it did), bug#63949.

2023-06-23  Theodor Thornhill  <theo@thornhill.no>

	Add selector_expression indentation rule

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): New rule.

2023-06-22  Eli Zaretskii  <eliz@gnu.org>

	Add "nixd" LSP server to Eglot

	* lisp/progmodes/eglot.el (eglot-server-programs): Add "nixd".
	Patch by Brian Leung <leungbk@posteo.net>.  (Bug#64214)

2023-06-22  Eli Zaretskii  <eliz@gnu.org>

	Fix building --with-native-compilation=aot from release tarball

	* lisp/Makefile.in (%.eln): Pattern rule for AOT native
	compilation.
	(compile-eln-targets, compile-eln-aot): New targets for AOT native
	compilation.

	* src/Makefile.in (../native-lisp): If NATIVE_COMPILATION_AOT is
	set, also native-compile all the other Lisp files.
	(Bug#64167)

2023-06-21  Alan Mackenzie  <acm@muc.de>

	Fix bug#64152 (Minibuffer sometimes goes "modal")

	In particular, when a frame has no minibuffer and is using that
	of a different "normal" frame, C-x 5 o, etc., and GUI
	operations fail.

	Fix by partially reverting the commit from 2022-07-07 15:38:09
	+0000 "Remove obscure, obsolete code from do_switch_frame".  As
	a consequent change, also revert the commit from 2022-07-08
	20:19:03 +0000 "Remove now unused parameter TRACK from
	do_switch_frame".

	* src/frame.c (do_switch_frame): Restore the TRACK parameter.
	Restore the code which redirects the frame focus when a new
	frame gets selected.

	* src/frame.c (Fselect_frame, Fhandle_switch_frame)
	(delete_frame)
	* src/keyboard.c (quit_throw_to_read_char)
	* src/lisp.h (do_switch_frame prototype)
	* src/minibuf.c (read_minibuf_unwind)
	* src/window.c (Fset_window_configuration): Restore the TRACK
	argument to do_switch_frame.

	* src/xterm.c (x_try_restore_frame): Add a zero TRACK argument
	to do_switch_frame.

2023-06-21  Eli Zaretskii  <eliz@gnu.org>

	Disable target-async by default in gdb-mi.el

	* lisp/progmodes/gdb-mi.el (gdb-non-stop-setting): Disable until
	bug#63084 is fixed.  (Bug#64186)

2023-06-20  Filipp Gunbin  <fgunbin@fastmail.fm>

	Revert "Fix parsing of dn line if WITHDN is non-nil"

	This reverts commits 71b27779a9a and d2246b26275, because they change
	the return value of "ldap-search" in an incompatible way.  The fix
	(a different one) will be done on master instead (bug#64089).

2023-06-20  Eli Zaretskii  <eliz@gnu.org>

	Don't truncate filenames with "emacs.el" in them

	* lisp/emacs-lisp/find-func.el (find-function-search-for-symbol):
	Avoid false positives when looking for "emacs.el" matches the
	likes of "emacs.elpa".  (Bug#64143)

2023-06-20  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'minibuffer-message'

	* doc/lispref/minibuf.texi (Minibuffer Misc): Clarify that
	'minibuffer-message' behaves like 'message' if called from a
	buffer that is not a minibuffer.

	* lisp/minibuffer.el (minibuffer-message)
	(set-minibuffer-message, clear-minibuffer-message): Doc fixes.
	(Bug#64165)

2023-06-19  João Távora  <joaotavora@gmail.com>

	Eglot: again fix positions of coinciding inlay hint overlays (bug#64101)

	This bug originated from the previous fix, and is reproducible on non
	Mac OS platforms, as long as the very latest version (at time of
	writing) of the rust-analyzer server is used.

	* lisp/progmodes/eglot.el (eglot--update-hints-1): Reverse
	priorities when pegging overlays after (i.e. when before-string is
	used).

2023-06-18  Eli Zaretskii  <eliz@gnu.org>

	* lisp/ldefs-boot.el: Regenerate.

2023-06-18  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version to 29.0.92

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp: Bump version to 29.0.92.

2023-06-18  Mattias Engdegård  <mattiase@acm.org>

	Describe primarily the Emacs s-exp dialect for treesit queries

	* doc/lispref/parsing.texi (Pattern Matching, Multiple Languages):
	Writing tree-sitter queries as Emacs s-expressions is much more
	convenient than using the native query notation inside a string,
	so it makes sense to base the documentation on the former dialect
	(bug#64017).

2023-06-18  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of :predicate in 'define-globalized-minor-mode'

	* doc/lispref/modes.texi (Defining Minor Modes):
	* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
	Document that :predicate creates a customizable user option.
	(Bug#64048)

2023-06-17  Basil L. Contovounesios  <contovob@tcd.ie>

	Revert "Fix some tree-sitter :match regexps"

	This reverts commit 95091b77f0bbb2ae1aa94ef4a413626e7d434d58
	of 2023-06-17, mistakenly pushed to emacs-29.

	The patch will be installed on master instead, and backported later,
	after Emacs 29.1 is released (bug#64019).

	Do not merge to master.

2023-06-17  Michael Albinus  <michael.albinus@gmx.de>

	Require ls-lisp in Tramp only when needed

	* lisp/net/tramp-compat.el (ls-lisp): Require only on MS Windows.
	(Bug#64124)

	* lisp/net/tramp-sh.el (ls-lisp-use-insert-directory-program): Declare.
	(tramp-sh-handle-insert-directory): Simplify.

	* lisp/net/tramp.el (ls-lisp-use-insert-directory-program): Declare.
	(tramp-handle-insert-directory): Require ls-lisp.  Simplify.

2023-06-17  Alan Mackenzie  <acm@muc.de>

	After minibuffer action, don't make the minibuffer current

	This fixes bug#63967.

	* src/minibuf.c (minibuffer_unwind): After restoring the next
	minibuffer outwards to the mini window (when
	enable-recursive-minibuffers is non-nil), don't call
	Fset_frame_selected_window, which used to set the current
	window to be the mini window.

2023-06-17  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix some tree-sitter :match regexps

	The shy groups were caught by modified versions of the GNU ELPA
	packages xr and relint:
	- https://github.com/mattiase/xr/pull/6
	- https://github.com/mattiase/relint/pull/14

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Quote special
	character in regexp.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
	* lisp/progmodes/js.el (js--plain-method-re):
	(js--treesit-font-lock-settings):
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Replace character
	alternative [\\d], which matches '\' or 'd', with the most likely
	intention [0-9].  Fix shy groups mistyped as optional colons.
	Remove unneeded numbered :match group in rust-ts-mode (bug#64019).

2023-06-17  João Távora  <joaotavora@gmail.com>

	Eglot: fix relative position of coinciding inlay hint overlays (bug#64101)

	Only seems to happen on certain platforms, like Mac OS.  Reason
	unknown reason so far, but this defensive fix seems safe.

	* lisp/progmodes/eglot.el (eglot--update-hints-1): Explicitly put
	priority in inlay hint overalys.

2023-06-17  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of comment-dwim (bug#64104)

	* lisp/newcomment.el (comment-dwim): Doc fix.

	* doc/emacs/programs.texi (Comment Commands): More accurate
	description of what 'M-;' does when there's no active region.

2023-06-17  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Fix parsing of dn line if WITHDN is non-nil

	Function `ldap-search' errors out with `wrong-type-argument listp'
	when called with WITHDN non-nil.
	* lisp/net/ldap.el (ldap-search-internal): Parse the dn line
	correctly so that `ldap-search' can grok it.  (Bug#64089)

2023-06-15  Andreas Schwab  <schwab@suse.de>

	* doc/misc/calc.texi (Advanced Math Functions): Correct calc
	algebraic syntax.

2023-06-15  Eli Zaretskii  <eliz@gnu.org>

	Consider 'dired-kill-when-opening-new-dired-buffer' in mouse clicks

	* lisp/dired.el (dired-mouse-find-file): Honor the value of
	'dired-kill-when-opening-new-dired-buffer'.  (Bug#64079)

2023-06-15  Eli Zaretskii  <eliz@gnu.org>

	Fix Gamma function definition in calc.texi

	* doc/misc/calc.texi (Advanced Math Functions): Fix definition
	of Gamma function.  Use @sup in @infoline lines.  (Bug#64077)

2023-06-15  Eli Zaretskii  <eliz@gnu.org>

	Fix subscripts in the Calc manual

	* doc/misc/calc.texi (Musical Notes): Use @sub instead of TeX-only
	'_' notation.  For the details, see the discussion in
	https://lists.gnu.org/archive/html/emacs-devel/2023-06/msg00096.html.

2023-06-15  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'declare' forms

	* lisp/simple.el (read-extended-command-predicate): Mention the
	'(declare completion ...' form in the doc string.

	* doc/lispref/functions.texi (Declare Form): Clarify
	'completion-predicate' and 'modes'; add cross-references.
	(Bug#64045)

2023-06-13  Basil L. Contovounesios  <contovob@tcd.ie>

	Improve tree-sitter docs

	* doc/lispref/positions.texi (List Motion): Incorporate more
	accurate description of treesit-defun-type-regexp from
	'(elisp) Tree-sitter Major Modes', replacing that duplicate
	entry (bug#64018).

	* doc/lispref/parsing.texi (Parsing Program Source)
	(Language Grammar, Using Parser, Retrieving Nodes)
	(Accessing Node Information, Pattern Matching, Multiple Languages):
	(Tree-sitter Major Modes):
	* doc/lispref/modes.texi (Parser-based Font Lock): Improve wording,
	grammar, punctuation, and markup.  Fix typos.
	(Parser-based Indentation): Ditto.  Document indent rule presets
	field-is, catch-all, nth-sibling, grand-parent, and
	great-grand-parent.

	* lisp/treesit.el (treesit-simple-indent-presets): Mention field-is,
	catch-all, nth-sibling, grand-parent, great-grand-parent in
	docstring.
	(treesit-major-mode-setup, treesit-explore-mode): Improve
	docstring/commentary grammar.

2023-06-13  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix some Texinfo markup in manuals

	* doc/emacs/macos.texi (Mac / GNUstep Customization):
	* doc/lispintro/emacs-lisp-intro.texi (condition-case):
	* doc/lispref/control.texi (pcase Macro):
	* doc/lispref/debugging.texi (Internals of Debugger):
	* doc/lispref/internals.texi (Building Emacs):
	* doc/lispref/modes.texi (Imenu):
	(Parser-based Font Lock, Parser-based Indentation):
	* doc/lispref/parsing.texi (Retrieving Nodes, Tree-sitter C API):
	* doc/lispref/processes.texi (Network, Bindat Types):
	* doc/lispref/searching.texi (Rx Functions):
	* doc/lispref/text.texi (Replacing):
	* doc/lispref/windows.texi (Textual Scrolling):
	* doc/misc/calc.texi (Killing From Stack, Customizing Calc):
	* doc/misc/cc-mode.texi (Misc Font Locking, List Line-Up):
	* doc/misc/ede.texi (ede-cpp-root-project)
	(ede-proj-target-makefile, ede-sourcecode):
	* doc/misc/ert.texi (Running Tests in Batch Mode):
	* doc/misc/eudc.texi (Emacs-only Configuration, The Server Hotlist):
	* doc/misc/eww.texi (Advanced):
	* doc/misc/flymake.texi (Starting Flymake)
	(Proc customization variables):
	* doc/misc/tramp.texi (File name completion):
	* doc/misc/gnus.texi (Summary Buffer Lines, Gnus Registry Setup)
	(Fancy splitting to parent, Customizing the IMAP Connection)
	(Mail Source Specifiers, Agent as Cache): Consistently mark up nil
	and t as @code.  Also fix the markup and wording of some surrounding
	text (bug#64016).

	* doc/lispref/display.texi (SVG Images, Icons):
	* doc/lispref/modes.texi (Customizing Keywords): Prefer ASCII
	apostrophe over Unicode right single quotation mark.

2023-06-13  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix bol/bos anchors in tree-sitter :match regexps

	Further regexp fixes to follow separately (bug#64019#29).

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
	* lisp/progmodes/cmake-ts-mode.el
	(cmake-ts-mode--font-lock-settings):
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
	* lisp/progmodes/js.el (js--treesit-font-lock-settings):
	* lisp/progmodes/python.el (python--treesit-settings):
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
	* lisp/progmodes/sh-script.el (sh-mode--treesit-settings):
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings):
	* test/src/treesit-tests.el (treesit-query-api): Anchor :match
	regexps at beginning/end of string, not line.

2023-06-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/subr.el (with-restriction): Tweak indent rule

2023-06-12  Eli Zaretskii  <eliz@gnu.org>

	Fix setting region in the minibuffer

	* lisp/minibuffer.el (minibuffer-beginning-of-buffer): Fix setting
	region.  (Bug#64022)

2023-06-12  Michael Albinus  <michael.albinus@gmx.de>

	Fix setting $DBUS_SESSION_BUS_ADDRESS after Emacs has started

	* doc/misc/dbus.texi (Alternative Buses): Explain using
	$DBUS_SESSION_BUS_ADDRESS after Emacs has started.

	* src/dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Use egetenv.

2023-06-11  Eli Zaretskii  <eliz@gnu.org>

	Fix tex-mode display-buffer issues

	* lisp/window.el (display-tex-shell-buffer-action): New defcustom.
	* lisp/textmodes/tex-mode.el (tex-display-shell)
	(tex-cmd-doc-view, tex-recenter-output-buffer): Use it.
	(Bug#63956)

2023-06-10  Morgan Smith  <Morgan.J.Smith@outlook.com>

	Add test for when 'completion-auto-help' is 'visible'

	* test/lisp/minibuffer-tests.el (completion-auto-help-test): Add
	test for when 'completion-auto-help' is 'visible'.  Also test
	for successful completion message.  (Bug#63913)

2023-06-10  Eli Zaretskii  <eliz@gnu.org>

	Avoid errors in 'apropos-documentation' after 'eval-buffer'

	* lisp/apropos.el (apropos--map-preloaded-atoms): Support the case
	where an element of 'load-history' has nil as its car.  (Bug#63881)

2023-06-10  Daniel Martín  <mardani29@yahoo.es>

	Mention indent-rigidly in the Emacs manual

	* doc/emacs/indent.texi (Indentation Commands): Rewrite the first
	sentence of 'C-x TAB' to mention the command that it executes, and
	without using passive voice.  (Bug#63997)

2023-06-10  Morgan Smith  <Morgan.J.Smith@outlook.com>

	Don't ding when completion succeeded

	* lisp/minibuffer.el (minibuffer-completion-help): Ensure 'ding'
	is not called on a successful completion.  Ensure 'ding' is not
	called on a failure if 'completion-fail-discreetly' is set.
	Also change "No completions" to "No match" as that is what is
	used elsewhere.  (Bug#63913)

2023-06-09  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of color-related functions

	* doc/lispref/frames.texi (Color Names): Document
	'color-name-to-rgb' and 'color-dark-p'.

2023-06-08  Eli Zaretskii  <eliz@gnu.org>

	Revert "* package.el (package--get-activatable-pkg): Prefer source packages"

	This reverts commit fb87d5008e21d1bc03547c1edf2280fb4cb8311e.
	It caused problems when new versions of packages are installed
	without deleting old versions.  (Bug#63757)

2023-06-08  Michael Albinus  <michael.albinus@gmx.de>

	Fix connection-local user options handling (bug#63300)

	* lisp/files-x.el (connection-local-set-profiles)
	(connection-local-set-profile-variables): Avoid saving the changed
	user option to file unless triggered explicitly by user.  (Bug#63300)

2023-06-08  Eli Zaretskii  <eliz@gnu.org>

	Document 'startup-redirect-eln-cache'

	* doc/lispref/compile.texi (Native Compilation)
	(Native-Compilation Functions): Document
	'startup-redirect-eln-cache'.

	* etc/PROBLEMS: Fix last change.
	* etc/NEWS: Mark 'startup-redirect-eln-cache' as documented.

2023-06-06  Andrea Corallo  <akrl@sdf.org>

	Fix `emacs-lisp-native-compile-and-load' for C-h f (bug#58314)

	* lisp/emacs-lisp/comp.el (comp-write-bytecode-file): New function
	spilling code from `batch-byte+native-compile'.
	(batch-byte+native-compile): Make use of.
	* lisp/progmodes/elisp-mode.el
	(emacs-lisp-native-compile-and-load): Produce the elc file and ask
	to have it loaded.

2023-06-06  Theodor Thornhill  <theo@thornhill.no>

	Add 'infer' as a keyword to typescript-ts-mode (bug#63880)

	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--keywords):
	New keyword.

2023-06-04  Philip Kaludercic  <philipk@posteo.net>

	Revert changes to the order in which package descs are loaded

	* lisp/emacs-lisp/package.el (package-load-all-descriptors):  Remove
	NOSORT argument to 'directory-files', reverting back to the behavior
	as of Emacs 28.  (Bug#63757)

2023-06-04  Spencer Baugh  <sbaugh@janestreet.com>

	Handle point in last file-name component in minibuffer completion

	This is a followup to commit e338a8ac41d4a9fd798dda90275abe75ac071335
	(Handle point not at EOB in minibuffer-choose-completion).
	That commit added a heuristic, but the heuristic was insufficient:
	It still had the original wrong behavior when completing the last
	file-name component (i.e., the completion category is 'file' and
	there's no slash after point).  This patch makes the heuristic
	cover that case as well.
	* lisp/minibuffer.el (minibuffer-next-completion)
	(minibuffer-choose-completion): If in file completion and there's no
	slash after point, clear what's after point when we complete.
	(Bug#62700)

2023-06-03  Eli Zaretskii  <eliz@gnu.org>

	Avoid asking redundant question in emacsbug.el

	* lisp/mail/emacsbug.el (report-emacs-bug-hook): Don't ask the
	question about saving email setup if we cannot save it anyway.
	(Bug#63816)

2023-06-03  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-base): Don't install gawk.

2023-06-03  Dmitry Gutov  <dmitry@gutov.dev>

	typescript-ts-mode: Add a rule for function_signature

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings):
	Add a rule for function_signature (bug#63867)

2023-06-03  Mattias Engdegård  <mattiase@acm.org>

	* admin/unidata/emoji-zwj.awk: Avoid sprint buffer overflow

	Some AWK implementations have a fixed buffer for sprintf; for mawk the
	default size is 8192 bytes.  Hoist a string concatenation from
	a sprintf call to avoid running into that limit.  See discussion at
	https://lists.gnu.org/archive/html/emacs-devel/2023-06/msg00090.html .

	(cherry picked from commit b5f17fe07c6624380ba8d0c7a400a6b89f225209)

2023-06-03  Йордан Миладинов  <yordanm@pm.me>  (tiny change)

	Fix apostrophe handling in rust-ts-mode and go-ts-mode (Bug#63708)

	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--syntax-propertize):
	Treat apostrophes as strings if used to define character literals.
	Treat LT and GT as pairs if used to define type parameters (formerly
	they were treated as pairs only for type arguments).
	* lisp/progmodes/go-ts-mode.el (go-ts-mode--syntax-table): Treat
	apostrophes as strings if used to define rune literals.

2023-06-03  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-base): Install also gawk.

2023-06-03  Eli Zaretskii  <eliz@gnu.org>

	Fix 'python-util-clone-local-variables'

	* lisp/progmodes/python.el (python-util-clone-local-variables):
	Avoid signaling an error when a local variable is unbound.
	Patch by Ernesto Alfonso <erjoalgo@gmail.com>.  (Bug#63818)

2023-06-03  kobarity  <kobarity@gmail.com>

	Revert "Enhance Python font-lock to support multilines"

	This reverts commit 4915ca5dd4245a909c046e6691e8d4a1919890c8.

	We have found that there are performance issues when editing a large
	file.  The issue can be reproduced as follows:

	1. emacs -Q
	2. Open large Python file (e.g. turtle.py in Python)
	3. Near the top of the buffer, enter open paren and some characters.

	The above commit extends the region to be font-locked using
	`python-nav-end-of-statement'.  However, if there are unbalanced
	parens, it may move point to the end of the buffer.  This causes
	almost the entire buffer to be font-locked, which is not acceptable
	for large files.

2023-06-03  Eli Zaretskii  <eliz@gnu.org>

	Fix typo in calc.texi

	* doc/misc/calc.texi (Programming Tutorial): Fix a typo.
	Suggested by Vladimir Nikishkin <lockywolf@gmail.com>.

2023-06-02  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.4.1

2023-06-02  Eli Zaretskii  <eliz@gnu.org>

	Avoid errors in 'delete-forward-char' deleting static compositions

	* lisp/simple.el (delete-forward-char): Fix recognition of static
	compositions.  (Bug#63837)

2023-06-02  Robert Pluim  <rpluim@gmail.com>

	Make VS-15 and VS-16 compositions work correctly

	There is a conflict between forward matching and backward matching
	composition rules involving the same codepoint, which can cause the
	backward matching ones not to be invoked.  Ensure that VS-15 (U+FE0E)
	and VS-16 (U+FE0F) are composed by forward matching rules instead in
	order to avoid this issue.

	* admin/unidata/emoji-zwj.awk: Add rules for CHAR+VS-15 and CHAR+VS-16.
	* lisp/composite.el: remove backward matching rule for VS-15.  (Bug#63731)

2023-06-01  Dmitry Gutov  <dmitry@gutov.dev>

	Fix project-name for vc-aware backend in non-file buffers

	* lisp/progmodes/project.el (project-name): Make sure
	project-vc-name is picked up from dir-locals in all
	non-file-visiting buffers too (mentioned in bug#63469).

2023-05-31  Theodor Thornhill  <theo@thornhill.no>

	Add type_predicate 'is' as keyword in typescript-ts-mode (bug#63810)

	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--keywords):
	New keyword 'is'.

2023-05-31  Eli Zaretskii  <eliz@gnu.org>

	Fix infloop in info-look.el

	* lisp/info-look.el (info-lookup-guess-gdb-script-symbol): Fix
	infloop when there are no completions.  (Bug#63808)

2023-05-31  Stephen Berman  <stephen.berman@gmx.net>

	Fix several todo-mode.el item editing bugs (bug#63811)

	* lisp/calendar/todo-mode.el (todo-insert-item--basic): With
	insertion type 'here', ensure item is inserted on the todo-mode
	line where the command was invoked.
	(todo-edit-item--cat, todo-edit-item--pos): New variables.
	(todo-edit-item--text): Restrict the scope of nil-valued
	buffer-read-only to the functions that change buffer text.  If
	user moved point while editing a single-line todo item or a done
	item comment, or while inserting a done item comment, restore
	point, and for comments, make sure the done items section is
	displayed.  For multiline items, set the new variables so
	todo-edit-quit can use them.
	(todo-edit-quit): Use the values of the new variables to restore
	point in the todo-mode buffer if it had been moved while editing.
	(todo-edit-item--header): Avoid clobbering match data when editing
	a todo item header.

2023-05-31  Randy Taylor  <dev@rjt.dev>

	dockerfile-ts-mode: Prevent empty categories in imenu (Bug#63759)

	* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode--imenu):
	Don't include empty categories.

2023-05-31  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Brush up doc strings and terminology in plstore.el

	* lisp/plstore.el (plstore-encoded, plstore-passphrase-callback-function)
	(plstore--init-from-buffer, plstore-revert, plstore-close)
	(plstore--merge-secret, plstore--decrypt, plstore--match, plstore-find)
	(plstore-get, plstore-put, plstore-delete, plstore--insert-buffer)
	(plstore-save, plstore--encode, plstore--decode)
	(plstore--write-contents-functions, plstore-mode-decoded)
	(plstore-mode): Brush up doc strings and documentation in general.
	Fix terminology, in particular spurious occurrences of all uppercase
	"PLSTORE".  (Bug#63627)

2023-05-31  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Add internal documentation on plstore.el

	* lisp/plstore.el: Add internal documentation and some words of
	warning in the user documentation.  (Bug#63627)

2023-05-30  Theodor Thornhill  <theo@thornhill.no>

	Add compact_constructor_declaration font-locking to java-ts-mode

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
	New pattern.

2023-05-29  Juri Linkov  <juri@linkov.net>

	* lisp/tmm.el (tmm-completion-delete-prompt): Add more checks (bug#63754).

	In case when 'completions-header-format' is nil, the first 'mouse-face'
	property is at the beginning of the buffer.  So first use 'get-text-property'
	at point-min.

2023-05-29  Eli Zaretskii  <eliz@gnu.org>

	Allow to disable the DWIMish behavior of 'x' in package menu

	* lisp/emacs-lisp/package.el
	(package-menu-use-current-if-no-marks): New defcustom.
	(package-menu-execute): Use it.  (Bug#62563)

	* etc/NEWS: Announce the new option.

2023-05-29  Robert Pluim  <rpluim@gmail.com>

	Allow dired to invoke secondary browser

	'browse-url-of-dired-file' always invokes the primary browser, but
	sometimes it's handy to call a different browser, which is why
	'browse-url-secondary-browser-function' exists.

	* lisp/net/browse-url.el (browse-url-of-dired-file): Call
	'browse-url-secondary-browser-function' when invoked with a prefix
	argument.
	* etc/NEWS: Announce the change.

2023-05-29  Robert Pluim  <rpluim@gmail.com>

	Add a binding for enriched-toggle-markup

	* lisp/textmodes/enriched.el (enriched-mode-map): Bind
	'enriched-toggle-markup' to 'M-o m'.
	* etc/NEWS: Announce the change.

2023-05-29  Eli Zaretskii  <eliz@gnu.org>

	Fix order of tmm-menubar when 'tmm-mid-prompt' is nil

	* lisp/tmm.el (tmm-prompt): Reverse 'tmm-km-list' when
	'tmm-mid-prompt' is nil, to present the menu in the correct order.
	Suggested by Thiago Melo <tmdmelo@gmail.com>.

2023-05-29  Michael Albinus  <michael.albinus@gmx.de>

	Fix regression when saving tramp-default-proxies-alist (Do not merge)

	* lisp/net/tramp.el (tramp-add-hops): Suppress `signal-hook-function'.
	Save `tramp-default-proxies-alist' only when changed.

2023-05-28  Yuan Fu  <casouri@gmail.com>

	Save the tree-sitter grammar recipe when installing a grammar

	Raised in bug#63750, but not the main subject of it.

	* lisp/treesit.el (treesit-install-language-grammar): Save the recipe
	to treesit-language-source-alist when installation is successful.

2023-05-28  Robert Pluim  <rpluim@gmail.com>

	Add instructions and test file for VS-15/VS-16

	* admin/notes/unicode: Add instructions for emoji-variation-sequences.txt
	* admin/unidata/emoji-variation-sequences.txt: New file, imported from
	Unicode 15.

2023-05-28  Michael Heerdegen  <michael_heerdegen@web.de>

	A better fix for "Fix cancellation of Wdired"

	* lisp/wdired.el (wdired-abort-changes): Call
	`dired-build-subdir-alist' instead of `dired-revert'.
	(Bug#63676)

2023-05-27  Eli Zaretskii  <eliz@gnu.org>

	Fix tmm-menubar when 'tmm-completion-prompt' is nil

	* lisp/tmm.el (tmm-prompt): Handle nil value of 'tmm-mid-prompt'.
	(tmm-completion-delete-prompt): Don't rely on the exact text of
	the completion heading line, as it is now a customizable format
	string, and can be nil, meaning no heading line is inserted at
	all.  Instead, search for the first character of the menu based on
	text properties used for it.  (Bug#63754)

2023-05-26  kobarity  <kobarity@gmail.com>

	Use 'font-lock-extend-region-functions' in python-mode

	* lisp/progmodes/python.el (python-font-lock-extend-region): Change
	arguments and return value for 'font-lock-extend-region-functions'.
	(python-mode): Change from
	'font-lock-extend-after-change-region-function' to
	'font-lock-extend-region-functions'.  (Bug#63622)

2023-05-26  kobarity  <kobarity@gmail.com>

	Fix python-info-docstring-p

	* lisp/progmodes/python.el (python-info-docstring-p): Stop using
	python-rx string-delimiter.

	* test/lisp/progmodes/python-tests.el
	(python-font-lock-escape-sequence-bytes-newline)
	(python-font-lock-escape-sequence-hex-octal)
	(python-font-lock-escape-sequence-unicode)
	(python-font-lock-raw-escape-sequence): Mark as expected failures
	until another bug in 'python-info-docstring-p' is corrected.
	(python-info-docstring-p-7): New test.  (Bug#63622)

2023-05-26  Eli Zaretskii  <eliz@gnu.org>

	Fix cancellation of Wdired

	* lisp/wdired.el (wdired-abort-changes): Call 'dired-revert'.
	Patch by Stephen Berman <stephen.berman@gmx.net>.  (Bug#63676)

2023-05-26  Mattias Engdegård  <mattiase@acm.org>

	Handle #@00 in new reader in a compatible way (bug#63722)

	This was a regression from Emacs 28.

	* src/lread.c (skip_lazy_string, read0): Make #@00 read as nil, which
	is a quirk from the old reader that we preserve for compatibility.
	* test/src/lread-tests.el (lread-skip-to-eof): Verify it.

	Reported by Richard Newton.

2023-05-25  Po Lu  <luangruo@yahoo.com>

	Don't mark selection request events

	* src/pgtkterm.c (mark_pgtkterm): Prevent crash by not marking
	selection request events, which don't have Lisp_Object members.

2023-05-25  Po Lu  <luangruo@yahoo.com>

	Disable cairo-xcb support by default

	* INSTALL (--with-cairo-xcb): Document new option.
	* configure.ac (USE_CAIRO_XCB): Implement new option.

2023-05-25  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el: Move :safe from defcustom to autoload (bug#63469)

	(project-vc-ignores, project-vc-merge-submodules)
	(project-vc-include-untracked, project-vc-name)
	(project-vc-extra-root-markers, project-kill-buffers-display-buffer-list):
	Autoload the line that puts 'safe-local-variable' property on defcustom symbol
	instead of using the :safe keyword.

2023-05-25  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc-annotate.el (vc-annotate-mode-menu): Quote vc-annotate-backend.

	When unquoted it might get the nil value when vc-annotate.el is loaded
	in non-vc-controlled buffer (bug#63689).

2023-05-25  Juri Linkov  <juri@linkov.net>

	Add vc-create/switch/print-branch to menu and update documentation (bug#63690)

	* doc/emacs/maintaining.texi (VC Change Log):
	Add 'C-x v b l' (vc-print-branch-log).
	(Creating Branches): Add @kindex and @findex for vc-create-branch.
	(Switching Branches): Add @kindex and @findex for vc-switch-branch.

	* lisp/vc/vc-hooks.el (vc-menu-map): Add menu items for new
	commands vc-create-branch and vc-switch-branch, and also
	vc-print-branch-log.

	* lisp/vc/vc.el (vc-print-branch-log): Improve docstring.

2023-05-25  Eli Zaretskii  <eliz@gnu.org>

	Fix rare crashes in 'try_window_reusing_current_matrix'

	* src/xdisp.c (try_window_reusing_current_matrix): Make sure we
	never use a mode-line glyph row to start displaying scrolled-in
	rows.  (Bug#63711)

2023-05-25  Michael Albinus  <michael.albinus@gmx.de>

	Make last Tramp change less invasive

	* lisp/net/tramp.el (tramp-dissect-file-name): Revert last change.
	(tramp-handle-file-name-as-directory)
	(tramp-handle-file-name-directory): Let-bind `tramp-default-proxies-alist'.

2023-05-23  Eli Zaretskii  <eliz@gnu.org>

	Fix 'use-dialog-box-p' and friends

	* lisp/subr.el (use-dialog-box-p): Use dialog boxes also when
	invoked from some window-system gesture.  (Bug#63655)
	(y-or-n-p): Fix the description in the doc string of conditions
	under which a dialog box will be used.

	* src/fns.c (Fyes_or_no_p): Use the same condition for dialog
	boxes as in 'use-dialog-box-p'.  Fix the description in the doc
	string of conditions under which a dialog box will be used.

	* doc/lispref/minibuf.texi (Multiple Queries, Yes-or-No Queries):
	Fix the description of conditions under which a dialog box will be
	used.

2023-05-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	Avoid duplicates when adding package dirs to load-path

	Do not merge to master, we're going to delete this code there.

	* lisp/emacs-lisp/package.el (package-activate-1): Check if the path
	we're about to add is already in 'load-path', since package autoload
	files have been updating 'load-path' for a decade.

2023-05-23  Robert Pluim  <rpluim@gmail.com>

	Avoid duplicate load-path entry when generating package autoloads

	'file-name-directory' produces a path ending in '/', so that needs to be
	run through 'directory-file-name' to avoid duplicate entries in
	'load-path'.  (Bug#63625)

	* lisp/emacs-lisp/package.el (package-generate-autoloads): Call
	'directory-file-name' on the directory of 'load-file-name'.

2023-05-23  Eli Zaretskii  <eliz@gnu.org>

	Disable loading SQLite3 extensions when SQLite3 version is too old

	* src/sqlite.c (HAVE_LOAD_EXTENSION): Define to 1 only if
	enabling/disabling extension loading is supported as well.
	(load_dll_functions, Fsqlite_load_extension): Condition on
	HAVE_LOAD_EXTENSION, not on HAVE_SQLITE3_LOAD_EXTENSION.
	(Bug#63653)

2023-05-22  Eli Zaretskii  <eliz@gnu.org>

	Fix visiting HTML files encoded in iso-2022 variants

	* lisp/international/mule.el (sgml-xml-auto-coding-function)
	(sgml-html-meta-auto-coding-function): Handle coding-systems whose
	coding-system-type is iso-2022.  (Bug#63644)

2023-05-22  Eli Zaretskii  <eliz@gnu.org>

	Support 'isearch-allow-scroll' in 'pixel-scroll-precision-mode'

	* lisp/pixel-scroll.el (pixel-scroll-precision)
	(pixel-scroll-down, pixel-scroll-up): Put the 'scroll-command'
	property on these commands.  (Bug#63640)

2023-05-22  Andreas Schwab  <schwab@suse.de>

	shr: allow moving between adjacent anchors

	* lisp/net/shr.el (shr-urlify): Put shr-tab-stop only over first
	position.

2023-05-22  Michael Albinus  <michael.albinus@gmx.de>

	Fix multihop file name expansion in Tramp

	* lisp/net/tramp.el (tramp-dissect-file-name): Set hop to nil if
	NODEFAULT.  (Bug#63578)

2023-05-21  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Remove obsolete information from Gnus manual

	The Gnus manual was still referencing long-removed external
	marks in section "Archiving Mails".  Without external marks,
	that section is almost pointless, so remove it completely.
	* doc/misc/gnus.texi (Archiving Mail): Remove section.
	(Top, Browsing the Web): Remove references to "Archiving
	Mail".  (Bug#63497)

2023-05-21  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>

	Preserve mark in comint-history-isearch

	This preserves mark in `comint-history-isearch-backward' and
	friends, which tend to set the mark on completion of the isearch
	to unexpected positions.
	* lisp/comint.el (comint-history-isearch-end): Set `isearch-opoint'
	to point.  (Bug#63616)

2023-05-20  Liu Hui  <liuhui1610@gmail.com>

	Fix systemd unit completion for old versions of systemd

	* lisp/pcmpl-linux.el (pcmpl-linux--systemd-units): Use '--no-legend'
	for compatibility with older versions of systemctl.  (Bug#63411)

2023-05-20  Eli Zaretskii  <eliz@gnu.org>

	Fix Skeletons menu-bar menu in Python modes

	* lisp/progmodes/python.el (python-mode, python-ts-mode): Call
	'python-skeleton-add-menu-items' here, not in 'python-base-mode',
	since the "Python" menu is not yet set up in the latter.
	(Bug#63598)

2023-05-20  Eli Zaretskii  <eliz@gnu.org>

	Fix loading SQLite extensions

	* src/sqlite.c (sqlite3_db_config) [WINDOWSNT]: Load from the DLL.
	(Fsqlite_load_extension): Use 'sqlite3_db_config' to enable and
	disable loading of extensions.  Add a few free extensions to the
	allow-list.  Fix testing for the ".dll" extension.  (Bug#63590)

	* test/src/sqlite-tests.el (sqlite-load-extension): Fix the test
	to require successful load if the extension does exist.

2023-05-20  Mattias Engdegård  <mattiase@acm.org>

	* etc/NEWS: Note dotimes loop variable scoping change (bug#63586)

2023-05-20  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode--top-level-declarator

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--top-level-declarator): Don't use treesit-node-match-p.

2023-05-19  Yuan Fu  <casouri@gmail.com>

	Improve c-ts-mode font-lock for function names (bug#63390)

	When a function definition has preproc directives in its body, it
	can't correctly parse into a function_definition.  This fix tries to
	recognize this case and highlight the function_declarator correctly.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--font-lock-settings): New rule.
	(c-ts-mode--top-level-declarator): New function.

2023-05-19  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Don't use 'minibuffer-selected-window' (bug#62427).

	(tab-bar-select-tab, tab-bar-new-tab-to):
	Use 'window-minibuffer-p' instead of 'minibuffer-selected-window'.
	And switch to 'get-mru-window' instead of 'minibuffer-selected-window'.

2023-05-19  Juri Linkov  <juri@linkov.net>

	Split windows horizontally in places that use split to create a new window.

	* lisp/tab-bar.el (tab-bar-new-tab-to):
	* lisp/window.el (window-state-put):
	To create a new window, split horizontally instead of vertically.
	Use 'window-safe-min-width' for the SIZE arg of 'split-window'.
	(bug#62592)

2023-05-18  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter test (bug#63481)

	* test/src/treesit-tests.el (treesit-basic-parsing): Latest json
	parser doesn't return an error on empty buffer or multiple objects
	anymore [1].

	https://github.com/tree-sitter/tree-sitter-json/commit/40a81c01a40ac48744e0c8ccabbaba1920441199

2023-05-18  Aaron Jensen  <aaronjensen@gmail.com>

	Attempt to fix redisplay problems on macOS

	* src/nsterm.m (ns_scroll_run): Attempt to fix redisplay
	artifacts.  (Bug#63187)

2023-05-18  Jens Schmidt  <jschmidt4gnu@vodafonemail.de>  (tiny change)

	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)

2023-05-18  Eli Zaretskii  <eliz@gnu.org>

	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.

2023-05-17  Basil L. Contovounesios  <contovob@tcd.ie>

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

2023-05-17  Andrea Corallo  <akrl@sdf.org>

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

2023-05-16  Philip Kaludercic  <philipk@posteo.net>

	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)

2023-05-15  Juri Linkov  <juri@linkov.net>

	* 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'.

2023-05-14  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.6

2023-05-14  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version for next pretest

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp: Bump Emacs version to 29.0.91.

2023-05-14  Gabriel do Nascimento Ribeiro  <gabriel376@hotmail.com>

	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  <joseph@breatheoutbreathe.in>

	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  <cyril.arnould@outlook.com>  (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  <eliz@gnu.org>

	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  <gregory@heytings.org>

	Merge branch 'scratch/long-lines-cleanup' into 'emacs-29'

2023-05-12  Gregory Heytings  <gregory@heytings.org>

	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  <gregory@heytings.org>

	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  <eliz@gnu.org>

	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  <philipk@posteo.net>

	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  <philipk@posteo.net>

	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  <jonas@bernoul.li>

	Update to Transient v0.4.0

	Or strictly speaking v0.4.0-1-g428576a4.)

2023-05-11  Eli Zaretskii  <eliz@gnu.org>

	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  <acm@muc.de>

	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  <monnier@iro.umontreal.ca>

	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  <joaotavora@gmail.com>

	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  <eliz@gnu.org>

	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  <eliz@gnu.org>

	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  <form@mohsen.banan.1.byname.net>

	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  <alan@idiocy.org>

	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  <cohen@andy.bu.edu>

	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  <iarchivedmywholelife@gmail.com>

	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  <eliz@gnu.org>

	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  <theo@thornhill.no>

	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  <eliz@gnu.org>

	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  <eliz@gnu.org>

	* lisp/x-dnd.el (x-dnd-after-move-frame): Skip dead frames.  (Bug#63312)

2023-05-06  Eli Zaretskii  <eliz@gnu.org>

	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  <dmitry@gutov.dev>

	(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  <joaotavora@gmail.com>

	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  <eliz@gnu.org>

	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  <luangruo@yahoo.com>

	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  <cyril.arnould@outlook.com>  (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  <luangruo@yahoo.com>

	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  <rpluim@gmail.com>

	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  <philipk@posteo.net>

	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  <thuna.cing@gmail.com>  (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  <philipk@posteo.net>

	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  <dmitry@gutov.dev>

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

	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  <dmitry@gutov.dev>

	(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  <jonas@bernoul.li>

	Update to Transient v0.3.7-219-g3ded15b

2023-05-03  Po Lu  <luangruo@yahoo.com>

	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 <tbading@web.de>.

2023-05-03  Thuna  <thuna.cing@gmail.com>  (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  <thuna.cing@gmail.com>  (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  <sbaugh@catern.com>

	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  <sbaugh@catern.com>

	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  <eliz@gnu.org>

	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  <kyle@kyleam.com>

	Update to Org 9.6.5-3-g2993f4

2023-04-30  Philip Kaludercic  <philipk@posteo.net>

	Prevent generating empty autoload files

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Remove
	optimization 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  <monnier@iro.umontreal.ca>

	* 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  <eliz@gnu.org>

	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  <michael.albinus@gmx.de>

	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  <eliz@gnu.org>

	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  <casouri@gmail.com>

	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  <eliz@gnu.org>

	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  <theo@thornhill.no>

	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  <ruijie@netyu.xyz>

	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  <eliz@gnu.org>

	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  <luangruo@yahoo.com>

	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  <joaotavora@gmail.com>

	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  <joaotavora@gmail.com>

	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  <dmitry@gutov.dev>

	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  <dmitry@gutov.dev>

	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  <casouri@gmail.com>

	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  <eliz@gnu.org>

	* Makefile.in (distclean): Remove the 'native-lisp' directory.

2023-04-27  Eli Zaretskii  <eliz@gnu.org>

	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  <jp@neverwas.me>

	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  <jp@neverwas.me>

	* doc/misc/erc.texi: Elaborate on upgrading via ELPA.

2023-04-26  Robert Pluim  <rpluim@gmail.com>

	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  <eliz@gnu.org>

	Document problems with /bin/sh on Solaris 10

	* etc/PROBLEMS (Solaris): Document problems with '/bin/sh'.
	Suggested by Paul Eggert <eggert@cs.ucla.edu>.  (Bug#63067)

2023-04-25  Eli Zaretskii  <eliz@gnu.org>

	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  <form@mohsen.banan.1.byname.net>

	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  <eliz@gnu.org>

	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  <eliz@gnu.org>

	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  <kyle@kyleam.com>

	Update to Org 9.6.4-9-g8eb209

2023-04-24  Eli Zaretskii  <eliz@gnu.org>

	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  <casouri@gmail.com>

	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  <bensonchu457@gmail.com>  (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  <michael.albinus@gmx.de>

	* etc/NEWS: Fix outline level.  (Bug#63042)

	Fix typos.

2023-04-23  Eli Zaretskii  <eliz@gnu.org>

	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  <eliz@gnu.org>

	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  <eliz@gnu.org>

	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  <eliz@gnu.org>

	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  <nicolas@n16f.net>

	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  <eliz@gnu.org>

	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  <sbaugh@janestreet.com>

	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  <rpluim@gmail.com>

	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  <rpluim@gmail.com>

	Add index entry for fallback modes

	* doc/emacs/custom.texi (Specifying File Variables): Add index for
	'fallback modes'.

2023-04-18  Dmitry Gutov  <dmitry@gutov.dev>

	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  <one.last.kiss@outlook.com>  (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  <eliz@gnu.org>

	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  <kyle@kyleam.com>

	Update to Org 9.6.4-2-g0f6ae7

2023-04-16  Eli Zaretskii  <eliz@gnu.org>

	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  <philipk@posteo.net>

	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  <eliz@gnu.org>

	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  <eliz@gnu.org>

	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  <eliz@gnu.org>

	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  <schwab@linux-m68k.org>

	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  <acm@muc.de>

	* CONTRIBUTE: Fix a typo

2023-04-15  Jostein Kjønigsen  <jostein@kjonigsen.net>

	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  <casouri@gmail.com>

	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  <eliz@gnu.org>

	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  <casouri@gmail.com>

	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  <eliz@gnu.org>

	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  <dgutov@yandex.ru>

	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  <visuweshm@gmail.com>

	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  <okamsn@protonmail.com>

	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  <dgutov@yandex.ru>

	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  <eliz@gnu.org>

	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  <luangruo@yahoo.com>

	* configure.ac: Add -lbsd on Haiku.

2023-04-11  Eli Zaretskii  <eliz@gnu.org>

	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  <mattiase@acm.org>

	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  <eliz@gnu.org>

	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  <contovob@tcd.ie>

	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  <eliz@gnu.org>

	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  <contovob@tcd.ie>

	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  <gregory@heytings.org>

	Another final fix to last changes

	* src/xdisp.c (get_small_narrowing_begv): Refine the value of 'bol_pos'.

2023-04-01  Gregory Heytings  <gregory@heytings.org>

	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  <gregory@heytings.org>

	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  <gregory@heytings.org>

	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  <gregory@heytings.org>

	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  <gregory@heytings.org>

	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  <gregory@heytings.org>

	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  <gregory@heytings.org>

	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  <gregory@heytings.org>

	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.
	<outermost-restriction>: 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  <eliz@gnu.org>

	* lisp/ldefs-boot.el: Regenerate.

2023-04-10  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version to 29.0.90

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp: Bump version to 29.0.90.

2023-04-09  Dmitry Gutov  <dgutov@yandex.ru>

	Fix some cases of incomplete code's indentation [c/c++-ts-mode]

	* lisp/progmodes/c-ts-mode.el (c-ts-base--before-indent): Try to
	guess when the parse tree is incomplete, and provide a better node
	to indent against (bug#62717).
	(c-ts-base-mode): Set up advice for local treesit-indent-function.

2023-04-09  Dmitry Gutov  <dgutov@yandex.ru>

	project-search: Pipe the list of files through 'file-regular-p'

	* lisp/progmodes/project.el (project-search): Pipe the list of
	files through 'file-regular-p' to skip directories (bug#62735).

2023-04-09  Eli Zaretskii  <eliz@gnu.org>

	Update ChangeLog and AUTHORS for Emacs 29

	* admin/authors.el: Update for Emacs 29.

	* etc/AUTHORS: Re-generate for Emacs 29.

	* ChangeLog.4: New generated file.
	* Makefile.in (PREFERRED_BRANCH): Update to emacs-29.
	(CHANGELOG_HISTORY_INDEX_MAX): Bump to 4.

2023-04-09  João Távora  <joaotavora@gmail.com>

	Backport: Eglot: no more tests based on Pylsp (bug#62694)

	The functionality under test in eglot.el is exactly the same, but use
	the clangd server only, as that is used in more tests, and it is much
	easier to check if it misbehaves or not.

	Tests pass with clangd version 15.

	* test/lisp/progmodes/eglot-tests.el (python): Don't require it.
	(eglot--call-with-fixture): Simplify.
	(eglot--wait-for-clangd): New helper.
	(eglot-test-basic-completions)
	(eglot-test-non-unique-completions, eglot-test-basic-xref)
	(eglot-test-snippet-completions)
	(eglot-test-snippet-completions-with-company)
	(eglot-test-eldoc-after-completions, eglot-test-multiline-eldoc):
	Use clangd, not pylsp.
	(eglot-test-formatting): Renamed from
	eglot-test-python-autopep-formatting.
	(eglot-test-python-yapf-formatting): Remove.

	(cherry picked from commit fc8230f3362b12955152f48565a6c670b4c4cc88)

2023-04-08  Eli Zaretskii  <eliz@gnu.org>

	Fix 'C-h k' for "Paste from Kill Menu" in context menus

	* lisp/mouse.el (context-menu-region): Make the entries be
	symbols, not just integers, to prevent "C-h c" from interpreting
	them as character keys.  (Bug#62626)

2023-04-08  Eli Zaretskii  <eliz@gnu.org>

	Improve the documentation of the XDS support

	* doc/lispref/frames.texi (Drag and Drop): Rephrase and rearrange
	the documentation of XDS support.  Add indexing.  Document
	'x-dnd-save-direct' and 'x-dnd-save-direct-immediately'.  Original
	patch from Po Lu <luangruo@yahoo.com>.

	* lisp/x-dnd.el (x-dnd-types-alist, x-dnd-test-function)
	(x-dnd-default-test-function, x-dnd-direct-save-function): Doc
	fixes.
	(x-dnd-save-direct, x-dnd-save-direct-immediately): Rename the
	second argument to FILENAME.  Doc fix.

2023-04-08  Eli Zaretskii  <eliz@gnu.org>

	Allow reindentation of images inserted by 'mm-inline-image'

	* lisp/gnus/mm-view.el (mm-inline-image): Use "x" as text on which
	to put the image 'display' property, so that indentation commands
	don't destroy the image inadvertently.  (Bug#62637)

2023-04-08  Eli Zaretskii  <eliz@gnu.org>

	Fix "C-h k" and "C-h c" with Paste from Kill Menu

	* lisp/subr.el (event-basic-type, event-modifiers): Return nil if
	EVENT is a string.  (Bug#62626)

2023-04-08  Daniel Martín  <mardani29@yahoo.es>

	Change cursor color on NS port when it matches the face background

	* src/macfont.m (CG_SET_FILL_COLOR_WITH_FRAME_CURSOR): New macro.
	(CG_SET_FILL_COLOR_WITH_FRAME_BACKGROUND): New macro.
	(macfont_draw): When the cursor's color matches the face background,
	set the fill color of the cursor to the face foreground.
	* src/nsterm.m (ns_maybe_dumpglyphs_background): When dumping the
	background of a glyph string, apply the logic mentioned
	above.  (Bug#62573)

2023-04-08  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of image-related commands

	* lisp/image.el (image-map): Make it inherit from
	'image-slice-map' instead of repeating the bindings.

	* doc/emacs/files.texi (Image Mode): Document the key bindings set
	by 'insert-image'.  Add indexing.

	* doc/lispref/display.texi (Showing Images): Make the description
	of user commands more concise.  Add index entries and
	cross-reference to the Emacs manual.

	* etc/NEWS: Rearrange entries relevant to image commands.

2023-04-08  Eli Zaretskii  <eliz@gnu.org>

	Fix handling of sliced images

	* lisp/image.el (image-slice-map): New keymap, without some
	bindings that make no sense with sliced images.
	(insert-image, insert-sliced-image): Use it.
	(insert-sliced-image): Make the 'keymap' property rear-nonsticky,
	to prevent calling image commands when point is to the right of
	the slice.  (Bug#62679)

	* lisp/image/image-crop.el (image-cut, image-crop): Doc fixes.
	(image-crop): Don't try using stock MS-Widows convert.exe
	program.  Use 'image--get-image' to support sliced images.

2023-04-08  garid3000  <garidzorigoo@gmail.com>

	Add cyrillic-mongolian input method

	* lisp/leim/quail/cyrillic.el (cyrillic-mongolian): New input
	method.  (Bug#56617)

2023-04-07  João Távora  <joaotavora@gmail.com>

	Jsonrpc: don't bind inhibit-read-only to t so early

	Related to https://github.com/joaotavora/eglot/discussions/1202, where
	because of this very wide binding to inhibit-read-only to t, Eglot was
	managing to write into read-only buffers from the response handlers
	that ran from within the stack of the jsonrpc.el process filter.

	This is of course illegal and dangerous, but Eglot wasn't made aware
	because of the binding.

	* lisp/jsonrpc.el (jsonrpc--process-filter): Don't bind
	inhibit-read-only so early.

2023-04-07  Eli Zaretskii  <eliz@gnu.org>

	Allow active region when IM is used

	* lisp/international/quail.el (quail-minibuffer-message): Bind
	deactivate-mark to allow setting active region in the minibuffer
	when an input method is used.  (Bug#62709)

2023-04-06  Robert Pluim  <rpluim@gmail.com>

	Add emoji-zoom-reset

	* lisp/international/emoji.el (emoji-zoom-map): Add emoji-zoom-reset.
	(emoji-zoom-reset): New function, it resets the zoom level.
	* lisp/international/mule-cmds.el (ctl-x-map): Add emoji-zoom-reset.
	* etc/NEWS: Announce new command.

2023-04-06  Robert Pluim  <rpluim@gmail.com>

	Make emoji-zoom-{increase,decrease} set text properties correctly

	* lisp/international/emoji.el (emoji-zoom-increase): Ensure that we're
	increasing the :height of the anonymous face at point, rather than
	having two :height properties, which appeared to work by
	accident, and don't error at eob.  (Bug#62675)

2023-04-06  Eli Zaretskii  <eliz@gnu.org>

	Fix transforming sliced images

	* lisp/image.el (image--get-image): Support sliced images
	(bug#62679).  Doc fix.
	(image-mouse-decrease-size, image-mouse-increase-size)
	(image-decrease-size, image-increase-size): Doc fixes.

2023-04-04  Michael Albinus  <michael.albinus@gmx.de>

	Adapt EMBA scripts.

	* test/infra/Dockerfile.emba (emacs-gnustep): Add zlib1g-dev.
	Remove make instrumentation.

	* test/infra/gitlab-ci.yml (build-image-gnustep, test-gnustep): Uncomment.

2023-04-04  Eli Zaretskii  <eliz@gnu.org>

	Another terminology fix in ELisp reference manual

	* doc/lispref/frames.texi (Mouse Tracking):
	* doc/lispref/commands.texi (Motion Events, Event Examples):
	'track-mouse' is a macro, not a special form.

2023-04-04  Shynur  <one.last.kiss@outlook.com>  (tiny change)

	Correct terminology in Elisp Reference Manual

	* doc/lispref/functions.texi (Function Names): 'defun' is a macro, not
	a special form.  (Bug#62661)

2023-04-04  Michael Albinus  <michael.albinus@gmx.de>

	Comment out GNUSTEP jobs on EMBA (again)

	* test/infra/gitlab-ci.yml (build-image-gnustep, test-gnustep):
	Comment out jobs due to bug#62210.

2023-04-03  Mattias Engdegård  <mattiase@acm.org>

	Fix regexp string escaping mistake in vhdl-mode.el (bug#62508)

	* lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): Quote brackets
	correctly.

2023-04-02  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.3-2-gf2949d

2023-04-02  João Távora  <joaotavora@gmail.com>

	Eglot: don't watch directories that don't exist

	project-files isn't guaranteed to return existing files, so better
	check if they exist because placing a watcher on them.

	Originally reported at:
	https://github.com/joaotavora/eglot/issues/1198

	* lisp/progmodes/eglot.el (eglot-register-capability
	workspace/didChangeWatchedFiles): Check if directories exist.

2023-04-02  Eshel Yaron  <me@eshelyaron.com>

	Preserve peer information for web page in eww-readable

	The :peer property in eww-data affects the face of the page title
	in 'header-line-format' as set by 'eww-update-header-line-format'.
	Preserving this property in eww-readable avoids having the header
	line's appearance change when this command is called.
	* lisp/net/eww.el (eww-readable): Preserve eww-data's :peer
	property.  (Bug#62574)

2023-04-02  Eli Zaretskii  <eliz@gnu.org>

	* lisp/subr.el (use-dialog-box-p): Fix conditions for GUI dialogs.

2023-04-01  Eli Zaretskii  <eliz@gnu.org>

	Fix ModelSim error regexp in vhdl-mode

	* lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): Fix ModelSim
	error regexp.  Suggested by Reto Zimmermann <reto@gnu.org>.
	(Bug#62508)

2023-04-01  Eli Zaretskii  <eliz@gnu.org>

	Document enhancements in handling of echo-area messages

	* etc/NEWS:
	* doc/lispref/display.texi (Displaying Messages):
	* lisp/minibuffer.el (inhibit-message-regexps)
	(set-message-functions, inhibit-message, set-multi-message):
	Improve the documentation of functions dealing with display of
	echo-area messages.

2023-04-01  Eli Zaretskii  <eliz@gnu.org>

	Fix new Eshell tests on MS-Windows

	* test/lisp/eshell/eshell-tests.el (eshell-test/eshell-command/background)
	(eshell-test/eshell-command/background-pipeline): Allow for ".exe"
	in the program's name.  This fixes these tests on MS-Windows.

2023-03-31  Jim Porter  <jporterbugs@gmail.com>

	Fix using background commands in 'eshell-command'

	Do not merge to master.

	This regressed due to the patch for bug#53715, which changed how
	Eshell pipelines return the processes in the pipeline (bug#62556).

	* lisp/eshell/esh-cmd.el (eshell-eval-command): Allow process-pairs.

	* test/lisp/eshell/eshell-tests.el (eshell-test/eshell-command/simple)
	(eshell-test/eshell-command/pipeline)
	(eshell-test/eshell-command/background)
	(eshell-test/eshell-command/background-pipeline): New tests.

2023-03-31  Shynur  <one.last.kiss@outlook.com>  (tiny change)

	Fix typo in section 14.1 of Emacs Manual

	* doc/emacs/display.texi (Scrolling): Fix typo.  (Bug#62569)

2023-03-30  João Távora  <joaotavora@gmail.com>

	Eglot: unbreak eglot-extend-to-xref on w32

	Because of a drive-letter casing mismatch between 'buffer-file-name'
	and the return value of 'url-generic-parse-url', the hash-table test
	'equal' in 'eglot-current-server' failed.

	This failed to recognize that the file xref landed us on really is
	managed by the language server that facilitated that jump.

	The function w32-long-file-name seems to convert "C:/Users/" to
	"c:/Users" consistently and so is a good addition to
	eglot--uri-to-path.

	* lisp/progmodes/eglot.el (eglot--uri-to-path): Use
	w32-long-file-name.

2023-03-30  João Távora  <joaotavora@gmail.com>

	Eglot: ensure server shutdown turns off eglot-inlay-hints-mode

	* lisp/progmodes/eglot.el (eglot--managed-mode-off): Turn off
	eglot-inlay-hints-mode.

2023-03-30  Yuan Fu  <casouri@gmail.com>

	Add two typescript-ts-mode faces (bug#62429)

	* lisp/progmodes/typescript-ts-mode.el:
	(typescript-ts-mode-jsx-tag-face)
	(typescript-ts-mode-jsx-attribute-face): New faces.
	(typescript-ts-mode--font-lock-settings): Use new faces.
	(tsx-ts-mode): Mention the new faces in the docstring.

2023-03-30  Shynur  <one.last.kiss@outlook.com>  (tiny change)

	Fix scrolling window when point moves up

	This fixes the case when both 'scroll-conservatively' and
	'scroll-step' are customized to non-default values.
	* src/xdisp.c (try_scrolling): Fix precedence between
	'scroll-step' and 'scroll-conservatively' when scrolling with
	'previous-line'.  (Bug#62530)

2023-03-30  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'defcustom's :set keyword

	* lisp/custom.el (defcustom):
	* doc/lispref/customize.texi (Variable Definitions): Improve the
	documentation of the :set keyword in 'defcustom'.

2023-03-29  Andrea Corallo  <akrl@sdf.org>

	Comp fix calls to redefined primitives with op-bytecode (bug#61917)

		* test/src/comp-tests.el (61917-1): New test.
		* src/comp.c (syms_of_comp): New variable.
		* lisp/loadup.el: Store primitive arities before dumping.
		* lisp/emacs-lisp/comp.el (comp--func-arity): New function.
		(comp-emit-set-call-subr): Make use of `comp--func-arity'.

2023-03-29  Eli Zaretskii  <eliz@gnu.org>

	Fix duplicate defcustom in eww.el

	* lisp/net/eww.el (eww-default-download-directory): Renamed back
	from 'eww-download-directory'; all users changed.  Doc fix.
	(Bug#62531)

2023-03-29  Eli Zaretskii  <eliz@gnu.org>

	Fix indentation regression in 'C-h l'

	* lisp/help.el (view-lossage): Fix indentation of commands
	when the key sequence includes a semicolon.  (Bug#62453)

2023-03-29  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/tramp.texi (Remote shell setup): Clarify use of ssh RemoteCommand.

2023-03-28  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'read-choice' and related symbols

	* doc/lispref/commands.texi (Reading One Event):
	* lisp/subr.el (read-char-choice-use-read-key, read-char-choice)
	(read-char-choice-with-read-key, y-or-n-p-use-read-key): Improve
	documentation of these functions and variables.

2023-03-28  Andrea Corallo  <akrl@sdf.org>

	Revert "Comp fix calls to redefined primitives with op-bytecode (bug#61917)"

	This reverts commit 263d6c38539691c954f4c3057cbe8d5468499b91.

	These patch series caused a number of regression and more analysis is
	required.

2023-03-28  Andrea Corallo  <akrl@sdf.org>

	Revert "* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Improve..."

	This reverts commit 4a7a0c9a9f521b04b23580901e9c0a662b504e32.

	These patch series caused a number of regression and more analysis is
	required.

2023-03-28  Michael Albinus  <michael.albinus@gmx.de>

	Skip ruby-ts-imenu-index test if needed

	* test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index):
	Add check for treesitter.

2023-03-28  Michael Albinus  <michael.albinus@gmx.de>

	Fix Eglot Tramp tests on EMBA

	* test/lisp/progmodes/eglot-tests.el (eglot--call-with-tramp-test):
	Bind `tramp-allow-unsafe-temporary-files' with t.  (Bug#62289)

2023-03-28  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-gnustep): Instrument "make V=1 ...".

2023-03-27  João Távora  <joaotavora@gmail.com>

	Fix accidental backward-incompatible change (bug#62417)

	This code used to work, but with the change of 59ecf25fc860 it stopped
	working:

	   (defun foop (buffer-name _alist) (string-match "foop" buffer-name))
	   (add-to-list 'display-buffer-alist '(foop . display-buffer-other-frame))

	This change makes it work again, restoring compatibility.

	* lisp/subr.el (buffer-match-p): Fix and adjust docstring.
	* lisp/window.el (display-buffer-alist): Adjust docstring.
	(display-buffer-assq-regexp): Make good on promise of display-buffer-alist.

2023-03-26  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Fix/simplify Imenu index generation

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--full-name): Drop '#'
	from the end of resulting string when the node is not a method.
	Support 'singleton_method' nodes.
	(ruby-ts--imenu-helper): Simplify, to create a "flat" list of
	entries, rather than a nested one.  The previous implementation
	had problems (like producing a nested structure of full-qualified
	names, thus creating a lot of textual repetition), seems easier to
	just follow ruby-mode's example here, at least for Emacs 29's
	release.

	* test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index):
	New test.

2023-03-26  Dmitry Gutov  <dgutov@yandex.ru>

	(ruby-ts--align-chain): Use 'equal' to check for an exact match

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-chain): Use
	'equal' to check for an exact match rather than substring.

2023-03-26  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.3.7-218-g3dbb22a

2023-03-26  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.2

2023-03-26  Ken Brown  <kbrown@cornell.edu>

	Skip failing tests on Cygwin with native compilation (bug#62450)

	* test/Makefile.in (TEST_NATIVE_COMP): New variable, used to
	determine whether to run tests tagged with :nativecomp.  Set it to
	"no" on Cygwin and to $(HAVE_NATIVE_COMP) otherwise.

	* test/lisp/emacs-lisp/benchmark-tests.el (benchmark-tests): Skip
	on Cygwin with native-compilation.

2023-03-26  Michael Albinus  <michael.albinus@gmx.de>

	Fix GNUSTEP tests on EMBA

	* configure.ac (LIBS_GNUSTEP): Adapt CPPFLAGS and CFLAGS.  (Bug#62210)
	Proposed by Po Lu <luangruo@yahoo.com>.

	* test/infra/gitlab-ci.yml (build-image-gnustep)
	(test-gnustep): Uncomment jobs.

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	Fix primary selection modification during `term-mouse-paste' (bug#58608)

	* lisp/term.el (term-mouse-paste): Prevent the primary selection from
	being changed in the process of sending it to the inferior process.

2023-03-26  Xi Lu  <lx@shellcodes.org>

	Add 'eww-default-download-directory'.

	* lisp/net/eww.el (eww-default-download-directory): New defcustom.
	(eww--download-directory): Use it.  (Bug#62435)

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	* doc/lispref/modes.texi: Improve docs for obsolete '%m' construct

	Bug #57080.

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	Improve docs for global-mode-string / %M construct

	* src/xdisp.c (global-mode-string): Update docstring.
	* doc/lispref/modes.texi: Update manual.

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	* src/buffer.c (mode-line-format): Document %o and %q constructs

	Missed from commit b0b02ca7f3e06d0f092df6f81babd1277bf93b0f.

2023-03-26  Phil Sainty  <psainty@orcon.net.nz>

	* src/buffer.c (mode-line-format): Remove docs for obsolete %t construct

	This documentation had been previously removed in 1999 in [1]
	but was subsequently restored again in a different form in 2006
	in [2] as the construct was still supported on some systems.
	However it looks like it hasn't done what that documentation
	indicated since [3] in 2011, and the final remnant of this
	functionality was removed in [4] in 2013; so it seems clear that
	it's no longer supported and shouldn't be documented now.

	[1] commit 08de62001945d4dd32a3d6af44da05804cb296d5
	[2] commit dafbe726b89a36010f3f24bb1efe4ace0a5f7f0f
	[3] commit 05c652517317d10690aaf0a6aa0bc876382b9d82
	[4] commit 8549f9e89bd9288c4c709d183a5bf8f07dbeed3d

2023-03-25  kobarity  <kobarity@gmail.com>

	Improve indenting "case" in Python

	* lisp/progmodes/python.el (python-info-dedenter-statement-p): Do not
	consider the first "case" in the block as dedenter.
	* test/lisp/progmodes/python-tests.el
	(python-info-dedenter-opening-block-positions-7)
	(python-info-dedenter-statement-p-6): New tests. (Bug#62092)

2023-03-25  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba (emacs-native-comp): Add zlib1g-dev.

2023-03-25  Ken Brown  <kbrown@cornell.edu>

	Fix failure of fns-tests-collate-strings on Cygwin

	* test/src/fns-tests.el (fns-tests-collate-strings): Use
	en_XY.UTF-8 instead of en_DE.UTF-8 as an example of an invalid
	locale; en_DE.UTF-8 is actually a valid locale on Cygwin.
	Note: The test will still fail on Cygwin releases < 3.5
	because of a Cygwin bug.  (Bug#62420)

2023-03-25  Aaron L. Zeng  <azeng@janestreet.com>  (tiny change)

	* lisp/savehist.el (savehist-save): Preserve shared structure

	This avoids ballooning the size of variables that contain
	large text properties, such as the 'yank-handler' installed
	by 'evil-yank-rectangle', which contains a list of lines in
	the string.
	* lisp/savehist.el (savehist-save): Enable 'print-circle'.
	(Bug#62364)

2023-03-24  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp manual

	* doc/misc/tramp.texi (Default Method): OpenSSH for MS Windows can
	be used.
	(Ssh setup): Extend for MS Windows and ssh.

2023-03-24  Eli Zaretskii  <eliz@gnu.org>

	Fix system time sampling on MS-Windows

	* src/timefns.c (emacs_localtime_rz) [WINDOWSNT]: Unconditionally
	call tzset to make sure we pick up all the changes of time zone,
	working around the MS CRT caching.

2023-03-24  Yuan Fu  <casouri@gmail.com>

	Fix treesit_ensure_parsed (bug#62333)

	* src/treesit.c (treesit_ensure_parsed): Check for need_reparse after
	treesit_sync_visible_region runs, because as the comment says,
	treesit_sync_visible_region might modify need_reparse.

2023-03-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/help-fns.el (find-lisp-object-file-name): Fix bug#62376 part2

	Nowadays `loaddefs.el` are byte-compiled, so adjust pattern accordingly

2023-03-23  Eli Zaretskii  <eliz@gnu.org>

	Improve "Bugs" in the Emacs manual

	* doc/emacs/trouble.texi (Bugs, Known Problems)
	(Understanding Bug Reporting, Checklist, Sending Patches)
	(Contributing, Coding Standards): Improve wording, structure,
	markup, and indexing.  (Bug#62320)

2023-03-23  João Távora  <joaotavora@gmail.com>

	Fix Eglot progress reporting

	When the server sends an "end" message, Emacs's progress reporters
	should also be updated.

	* lisp/progmodes/eglot.el (eglot-handle-notification $/progress): Rework.

2023-03-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix :predicate handling in globalized minor modes

	* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
	Fix a thinko.  (Bug#62376)

2023-03-23  Eli Zaretskii  <eliz@gnu.org>

	Allow showing prefix commands in Help buffers

	* lisp/help.el (describe-bindings-show-prefix-commands): New user
	option.
	(describe-map): Use it to decide whether to output prefix
	commands.  Patch by Bob Rogers <rogers@rgrjr.com>.  (Bug#62279)

	* etc/NEWS: Document 'describe-bindings-show-prefix-commands'.

2023-03-23  Daniel Martín  <mardani29@yahoo.es>

	Fix toolbar item validation in the NS port

	* src/nsterm.m ([EmacsView validateToolbarItem:]): Implement this
	NSToolbarItemValidation method, which is called by AppKit when it
	needs to validate an image item in a toolbar.  This solves, in
	particular, the problem with having the "Save" icon on the tool
	bar enabled at Emacs startup.  (Bug#62234)

2023-03-22  Michael Albinus  <michael.albinus@gmx.de>

	Use libgccjit-10-dev on EMBA

	* test/infra/Dockerfile.emba (emacs-native-comp): Use
	libgccjit-10-dev.  (Bug#62211)

	* test/infra/gitlab-ci.yml (build-native-comp-speed2)
	(test-native-comp-speed2): Uncomment jobs.

2023-03-22  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline--fix-buttons-after-change): Add save-match-data.

	It's important for a hook in after-change-functions not to change match-data.
	Otherwise it breaks functions that make changes in the buffer, such as
	for example, successive calls to delete-region in smerge-keep-n, etc.

2023-03-22  Yuan Fu  <casouri@gmail.com>

	Align concatenated strings to the first sibling in c-ts-mode

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Change rule.

2023-03-22  Yuan Fu  <casouri@gmail.com>

	Only fill the current paragraph in c-ts-common--fill-block-comment

	* lisp/progmodes/c-ts-common.el:
	(c-ts-common--fill-block-comment): Shrink the filled region to the
	paragraph at point.

2023-03-21  Yuan Fu  <casouri@gmail.com>

	Add missing indent rule for c-ts-mode

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New rule for case.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.

2023-03-21  Yuan Fu  <casouri@gmail.com>

	Improve docstring of treesit-parent-while (bug#62301)

	* doc/lispref/parsing.texi (Retrieving Nodes): Improve and fix
	docstring for treesit-parent-until and treesit-parent-while.
	* lisp/treesit.el (treesit-parent-while): Improve docstring.

2023-03-21  João Távora  <joaotavora@gmail.com>

	Eglot: report window/workDoneProgress capability to language server

	In bug#59149, LSP progress reporting was implemented, but Eglot's
	'capabilities' statement to the server wasn't changed to include
	window/workDoneProgress.

	* lisp/progmodes/eglot.el (eglot-client-capabilities): Actually
	report workDoneProgress.

2023-03-21  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Improve 263d6c38539

2023-03-21  Robert Pluim  <rpluim@gmail.com>

	Expand defvar-keymap documentation

	* doc/lispref/keymaps.texi (Creating Keymaps): Describe the :repeat keyword.

2023-03-20  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/treesit.el (treesit-end-of-defun): Guard arg against nil (bug#62158).

2023-03-20  Andrea Corallo  <akrl@sdf.org>

	Comp fix calls to redefined primitives with op-bytecode (bug#61917)

	* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Fix compilation
	of calls to redefined primitives with dedicated op-bytecode.
	* test/src/comp-tests.el (61917-1): New test.

2023-03-20  Robert Pluim  <rpluim@gmail.com>

	Warn package authors away from keymap-unset with REMOVE

	* doc/lispref/keymaps.texi (Changing Key Bindings): Ask package
	authors to not use the REMOVE argument to `keymap-unset'.

2023-03-20  Michael Albinus  <michael.albinus@gmx.de>

	Comment out jobs on EMBA

	* test/infra/gitlab-ci.yml: Comment out jobs due to bug#62210 and
	bug#62211.

2023-03-20  Robert Pluim  <rpluim@gmail.com>

	Improve defvar-keymap docstring.

	* lisp/keymap.el (defvar-keymap): Improve description of ':enter' and
	':exit' usage for ':repeat' keyword.

2023-03-19  Gregory Heytings  <gregory@heytings.org>

	Improve warning about changing the string returned by symbol-name

	* src/data.c (Fsymbol_name): Add warning.  See bug#62009.

	* doc/lispref/symbols.texi (Creating Symbols): Improve warning.

2023-03-19  Eli Zaretskii  <eliz@gnu.org>

	Fix visiting XBM/XPM files when 'c-ts-mode' is active

	* lisp/progmodes/c-ts-mode.el (treesit-ready-p): Fix association
	for XBM/XPM files in 'auto-mode-alist'.  (Bug#62276)

2023-03-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/mpc.el (mpc-format): Fix oversight in commit 48b6cec61cf

2023-03-19  João Távora  <joaotavora@gmail.com>

	Bail early from eglot--apply-text-edits if nothing to do

	* lisp/progmodes/eglot.el (eglot--apply-text-edits): Early return.

2023-03-19  João Távora  <joaotavora@gmail.com>

	Improve ergonomics of Eglot's inlay hints

	Instead of deleting inlay hints instantly as soon as the affected
	changes, make hint overlays span one character (instead of being
	length 0).  Give the overlays an "evaporate" property.

	Given an inlay hints at position POS, it's attached to [POS, POS+1] if
	its kind=1 (usually type hints) and [POS-1, POS] otherwise.  For
	kind=1 hints, the 'cursor position of the first such overlay is also
	tweaked, so that's it's less awkward to edit around it.

	* lisp/progmodes/eglot.el (eglot--before-change): Don't delete hints
	  here.
	  (eglot--update-hints-1): Rework.

2023-03-19  Eli Zaretskii  <eliz@gnu.org>

	Protect against too large size of 'recent-keys' vector

	* src/keyboard.c (MAX_NUM_RECENT_KEYS): New macro.
	(Flossage_size): Don't allow specifying too large lossage-size.
	Fix data types.  (Bug#62277)

2023-03-19  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-yn-prompt-regexp): Fix regexp.

2023-03-18  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.1-48-g92471e

2023-03-18  João Távora  <joaotavora@gmail.com>

	Merge confusing duplicate sections on commands in Eglot manual

	Also describe eglot-diagnostics-map.

	* doc/misc/eglot.texi (Eglot Features): Don't describe commands here.
	(Eglot Commands): Describe commands here.

2023-03-18  João Távora  <joaotavora@gmail.com>

	Don't take over mouse-1 binding on Eglot diagnostics (bug#62157)

	It's better to give the user a variable to allow the overlay keymap to
	be customized.

	* lisp/progmodes/eglot.el (eglot--mouse-call): Accept second arg.
	(eglot--mode-line-props): Adapt call to eglot--mouse-call
	(eglot-diagnostics-map): New variable.
	(eglot-code-actions-at-mouse): New command.

2023-03-18  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/progmodes/eglot.el (eglot--connect): Improve Tramp workaround.

2023-03-18  Gregory Heytings  <gregory@heytings.org>

	Avoid slowdowns in xmltok-scan-attributes

	* lisp/nxml/xmltok.el (xmltok-scan-attributes): Limit the search
	to 10000 characters, to avoid slowdowns due to the quadratic
	complexity of the regexp.  Suggested by Stefan Monnier.

2023-03-18  Alan Mackenzie  <acm@muc.de>

	CC Mode: Eliminate duplicate function c-list-of-strings

	Replace it with the existing c-string-list-p.  Also put an autoload cookie in
	front of c-string-list-p so that it will not be signaled as undefined by
	loaddefs.el.

	lisp/progmodes/cc-vars.el (c-string-list-p): Make this autoload.
	(c-list-of-strings): Remove.
	(c-font-lock-extra-types, c++-font-lock-extra-types)
	(objc-font-lock-extra-types, java-font-lock-extra-types)
	(idl-font-lock-extra-types, pike-font-lock-extra-types): In the autoload
	cookies, replace c-list-of-strings with c-string-list-p.

2023-03-18  Alan Mackenzie  <acm@muc.de>

	CC Mode: Allow lists of strings as safe values for *-font-lock-extra-types

	* lisp/progmodes/cc-vars.el (c-list-of-strings): New function.
	(c-font-lock-extra-types, c++-font-lock-extra-types)
	(objc-font-lock-extra-types, java-font-lock-extra-types)
	(idl-font-lock-extra-types, pike-font-lock-extra-types): Add a :safe entry
	into each of these defcustoms for c-list-of-string.
	(Top level): Add an autoload entry for each of the above.

2023-03-18  Robert Pluim  <rpluim@gmail.com>

	Add tests for Bug#62207

	* test/src/keymap-tests.el (keymap-unset-test-remove-and-inheritance):
	New test.

2023-03-18  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix 'find-ls-option-default-ls' for BSD/MacOS (bug#62096)

	* lisp/find-dired.el (find-ls-option-default-ls): Adapt to
	a value that works with the default "find" on *BSD and
	Darwin/MacOS.  Tested on OpenBSD and MacOS.  Do not merge
	to master.

2023-03-17  João Távora  <joaotavora@gmail.com>

	Enhance section about troubleshooting in Eglot manual.

	* doc/misc/eglot.texi (Troubleshooting Eglot): Partially rewrite.

2023-03-17  João Távora  <joaotavora@gmail.com>

	Fix Eglot's snippet insertion to follow the manual

	The manual states that YASnippet must only be installed to be useful.
	Before this change, it would only work if the user happened to have
	manually activated it before with 'yas-global-mode' or somesuch.

	This makes Eglot's Yasnippet-activating behavior similar to its
	Flymake-activating behavior.

	* lisp/progmodes/eglot.el (eglot-client-capabilities): Consult
	eglot--stay-out-of.
	(eglot--snippet-expansion-fn): Turn on yas-minor-mod eon demand.
	(eglot-completion-at-point): Simplify.

2023-03-17  Filipp Gunbin  <fgunbin@fastmail.fm>

	Reset abbrevs-changed after saving abbrevs (bug#62208)

	* lisp/abbrev.el (abbrev--possibly-save): Reset abbrevs-changed after
	saving abbrevs.
	* test/lisp/abbrev-tests.el (abbrev--possibly-save-test): New test.

2023-03-17  Robert Pluim  <rpluim@gmail.com>

	Document `keymap-unset' in lispref

	* doc/lispref/keymaps.texi (Changing Key Bindings): Document
	keymap-unset.

2023-03-17  Robert Pluim  <rpluim@gmail.com>

	Don't add a key binding when REMOVE is non-nil

	* src/keymap.c (store_in_keymap): Don't add a nil keybinding if we've
	been asked to remove a non-existent binding.  (Bug#62207)

2023-03-17  Eli Zaretskii  <eliz@gnu.org>

	Fix the documentation of various aspects of adding Xref history

	* lisp/progmodes/xref.el (xref-marker-ring-length)
	(xref-set-marker-ring-length):
	* lisp/progmodes/etags.el (tags-location-ring-length)
	(find-tag-marker-ring): Add doc strings saying the variables are
	unused.

	* etc/NEWS: Enhance the description of the change which made Xref
	marker stack unlimited in its length.

	* doc/emacs/maintaining.texi (Looking Up Identifiers): Add back
	text lost when xref forward history was added in bug#38797.
	Explain the difference between 'C-M-,' and 'M-.'.  Improve
	wording (Bug#62229)

2023-03-16  kobarity  <kobarity@gmail.com>

	Fix python-fill-paragraph problems on filling strings (bug#62142)

	* lisp/progmodes/python.el (python-syntax--context-compiler-macro)
	(python-syntax-context): Add single-quoted-string and
	triple-quoted-string as TYPE argument.
	(python-info-triple-quoted-string-p): New helper function.
	(python-fill-paragraph)
	(python-fill-string): Use it.
	* test/lisp/progmodes/python-tests.el (python-syntax-context-1)
	(python-fill-paragraph-single-quoted-string-1)
	(python-fill-paragraph-single-quoted-string-2)
	(python-fill-paragraph-triple-quoted-string-1)
	(python-info-triple-quoted-string-p-1)
	(python-info-triple-quoted-string-p-2)
	(python-info-triple-quoted-string-p-3): New tests.

2023-03-16  João Távora  <joaotavora@gmail.com>

	Also exempt eglot-inlay-hints-mode from desktop.el's fumblings

	Reported in https://github.com/joaotavora/eglot/discussions/1183.

	* lisp/progmodes/eglot.el (desktop): Also exempt
	eglot-inlay-hints-mode from desktop.el fumblings.

2023-03-16  Stefan Kangas  <stefankangas@gmail.com>

	Refer to EWW instead of w3 and w3m

	* doc/misc/idlwave.texi (Help with HTML Documentation): Refer to EWW
	instead of w3 and w3m.

2023-03-16  João Távora  <joaotavora@gmail.com>

	Fix Eglot's command generation for code actions

	The user command generated by eglot--code-action should always call
	eglot-code-actions with a INTERACTIVE set to t.

	Reported in https://github.com/joaotavora/eglot/issues/1132.

	* lisp/progmodes/eglot.el (eglot--code-action): Pass INTERACTIVE=t to
	eglot-code-action call.

2023-03-16  João Távora  <joaotavora@gmail.com>

	Emphasize emacs-29-specificity in this version of lisp/progmodes/eglot.el

	Do not merge to master.

	Before working on bugfixes to Eglot in its non-ELPA form delivered
	with Emacs 29, it's important to distinguish between this emacs-29
	version and the one in master, which will also get the bugfixes (via
	routine gitmerge.el) but with a bumped version number.

	* lisp/progmodes/eglot.el (Version): Emphasize Emacs 29, but hint this
	is 1.12 + something.
	(Package-Requires): Remove.  Everything required is already in Emacs
	29.

2023-03-16  USAMI Kenta  <tadsan@zonu.me>

	Fix quoting of font-family in 'hfy-family'

	Running "M-x htmlfontify-buffer" in one buffer, the exported HTML contains
	lines like:

	  body, pre { text-decoration: none;  font-family: Migu 2M;  font-stretch:
	  normal;  font-weight: 500;  font-style: normal;  color: #ffffff;
	  background: #000000;  font-size: 15pt; }

	Standards-compliant web browsers should ignore this font-family.

	MDN Web Docs says:
	https://developer.mozilla.org/en-US/docs/Web/CSS/font-family

	  Valid family names
	  Font family names must either be given quoted as strings, or unquoted as
	  a sequence of one or more identifiers. This means that punctuation
	  characters and digits at the start of each token must be escaped in
	  unquoted font family names.

	  It is a good practice to quote font family names that contain white
	  space, digits, or punctuation characters other than hyphens.

	An unquoted font-family is valid as long as it doesn't start with a digit,
	but MDN Web Docs also says:

	  The following example is technically valid but is not recommended:
	  font-family: Gill Sans Extrabold, sans-serif;

	So it makes sense to quote all font-family.

	* lisp/htmlfontify.el (hfy-family): Quote 'font-family'.  (Bug#62054)

2023-03-15  Michael Eliachevitch  <m.eliachevitch@posteo.de>  (tiny change)

	Document how to construct JSONRPC arrays in Eglot manual

	Many language server configuration options are of the JSON array
	datatype, for example argument lists for executables, but there wasn't
	any example of that in the Eglot manual.

	* doc/misc/eglot.texi (User-specific configuration)
	(User-specific configuration): Tweaks.
	(JSONRPC objects in Elisp): Mention JSON arrays. Tweak example.

2023-03-15  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba: Use debian:bullseye.

2023-03-15  Andrea Corallo  <akrl@sdf.org>

	* configure.ac: Fix native comp compatibility check (bug#61960)

2023-03-15  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/Dockerfile.emba: Install clangd.

2023-03-15  Philip Kaludercic  <philipk@posteo.net>

	Remove 'package-vc--query-spec'

	* lisp/emacs-lisp/package-vc.el (require): Do not load `inline' during
	compilation.
	(package-vc--query-spec): Remove function.
	(package-vc--clone): Do not call 'package-vc--query-spec'.

2023-03-15  Philip Kaludercic  <philipk@posteo.net>

	Do not store :lisp-dir in package descriptors

	* lisp/emacs-lisp/package-vc.el (package-vc--main-file)
	(package-vc--unpack-1): Query 'pkg-spec' instead of
	'package-desc-extras'.
	(package-vc--unpack): Do not update 'package-desc-extras'.

	This simplification is possible due to the change in 2718bbb3bc, since
	we now ensure that package specifications are not lost.  They are
	either provided by a package archive or stored in
	'package-vc-selected-packages'.

2023-03-15  Philip Kaludercic  <philipk@posteo.net>

	Use 'package-vc-selected-packages' to store package specs

	* doc/emacs/package.texi (Fetching Package Sources): Do not promote
	the usage of 'package-vc-selected-packages' to install packages.
	* lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Remove
	custom setter and change docstring according to these changes.
	(package-vc--desc->spec): Consult 'package-vc-selected-packages' for
	package specifications.
	(package-vc--unpack): Add unknown package specifications to
	'package-vc-selected-packages'

2023-03-13  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/xref.el: Bump the version.

2023-03-13  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/xref.el (xref--xref-buffer-mode): Split up 'setq-local'.

	xref.el needs to support 26.1, but an arbitrary number of variables
	in 'setq-local' was added in Emacs 27.1 (bug#62162).

2023-03-13  Filipp Gunbin  <fgunbin@fastmail.fm>

	Fix import of keys in buffer created by epa-search-keys

	* lisp/epa-ks.el (epa-ks--query-url): Add operation parameter.
	(epa-ks--fetch-key, epa-search-keys): Use it.

2023-03-13  Michael Albinus  <michael.albinus@gmx.de>

	Fix connection-local variables settings


	* lisp/files-x.el (connection-local-set-profiles)
	(connection-local-set-profile-variables): Use NOW when calling
	`custom-set-variables'.

	* test/lisp/files-x-tests.el
	(files-x-test-connection-local-set-profile-variables)
	(files-x-test-connection-local-update-profile-variables)
	(files-x-test-connection-local-set-profiles)
	(files-x-test-hack-connection-local-variables-apply)
	(files-x-test-with-connection-local-variables)
	(files-x-test-setq-connection-local): Fix tests.

	* test/lisp/net/tramp-tests.el (tramp-test34-connection-local-variables)
	(tramp-test34-explicit-shell-file-name): Fix tests.

2023-03-13  João Távora  <joaotavora@gmail.com>

	Bump Eglot version to 1.12

	* etc/EGLOT-NEWS: New file.

	* etc/NEWS: Briefly mention etc/EGLOT-NEWS.

	* lisp/progmodes/eglot.el: Bump versions.

2023-03-13  João Távora  <joaotavora@gmail.com>

	Update Eglot's manual about eglot-workspace-configuration

	There is a possible use for a global setting
	eglot-workspace-configuration, which is to (ab)use it to set
	user-specific configuration when the server doesn't permit other
	methods.  Rearrange the "Advanced server configuration" section and
	describe that use in the manual.

	* doc/misc/eglot.texi (Project-specific configuration): Correct
	mistake about global usefulness of eglot-workspace-configuration.
	(Advanced server configuration): Swap order of sections.
	(User-specific configuration): Mention possibility of globally
	setting eglot-workspace-configuration.

2023-03-12  João Távora  <joaotavora@gmail.com>

	Amend last Eglot commit (bug#62065)

	The fix contained a spurious check for this-command that shouldn't
	have made it in..

	* lisp/progmodes/eglot.el (eglot-ensure): Don't check this-command.

2023-03-12  João Távora  <joaotavora@gmail.com>

	Make eglot-ensure's post-command-hook run a bit later (bug#62065)

	'eglot-ensure', typically used in the major-mode-hook, use
	'post-command-hook' to schedule an automated, non-interactive
	connection attempt to a server.  The goal is to connect when the
	buffer is ready, i.e. after the user command that found the file.

	However, if there are dir-local or buffer-local variables to confirm,
	finding the file will cause a minibuffer prompt to appear.

	In that case, 'eglot-ensure's addition to the global post-command-hook
	runs before it was intended too and a connection is started
	prematurely.

	In turn, this means that a call to 'hack-dir-local-variables' -- which
	is part of the connection process -- which also needs a minibuffer
	prompt, collides with the previous one.  This generates an error and
	confuses the user, who doesn't know if the directory-local variables
	have been applied or not.

	This commit fixes the clash by having 'eglot-ensure' set
	'post-command-hook' buffer-locally.  This causes the automated
	connection to take place, as intended, after the user's original
	file-finding command has ended.

	However, the problem reported in bug#62065 is not completely fixed.
	If the user answers "no" to the first "confirm local variables"
	"prompt, she will be prompted again in the second one.  A subsequent
	commit will address this separate problem.

	* lisp/progmodes/eglot.el (eglot-ensure): Use buffer-local post-command-hook.

2023-03-12  Eli Zaretskii  <eliz@gnu.org>

	Fix display of disabled-command help text

	* lisp/novice.el (disabled-command-function): Improve wording, and
	make sure the prompt doesn't exceed one screen line, so that the
	mini-window is not resized (which gets in the way of fitting the
	window to the size of the help text), and the help text is fully
	visible when Emacs prompts for input.  (Bug#62146)

2023-03-12  Mattias Engdegård  <mattiase@acm.org>

	Remove mention of old dotted-list reader quirk from manual

	* doc/lispref/objects.texi (Dotted Pair Notation):
	The (. X) reader peculiarity is no more (bug#62020).

2023-03-12  Eli Zaretskii  <eliz@gnu.org>

	Fix value history shown for 'gc-cons-percentage'

	When Emacs is built, temacs is run in batch mode, so if we enlarge
	'gc-cons-percentage' in that case, the enlarged value will be
	"remembered" by the dumped Emacs, and will show confusing
	information in "C-h v", claiming that the original value was 1.0.
	Keeping the value at 0.1 during dumping avoids that.

	* src/emacs.c (main): Increase 'gc-cons-percentage' in batch mode
	only if we are not initializing (a.k.a. "dumping") Emacs.

2023-03-12  Michael Albinus  <michael.albinus@gmx.de>

	TRework fix for bug#62106

	* lisp/files-x.el (connection-local-set-profiles)
	(connection-local-set-profile-variables):
	Use `custom-set-variables'.  It serves the purpose to not keep
	unsaved user options, and it is less invasive than
	`customize-save-variable'.

2023-03-11  Randy Taylor  <dev@rjt.dev>

	Add missing indentation rule for rust-ts-mode (Bug#62109)

	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--indent-rules): Add
	missing rule.

2023-03-11  Michael Albinus  <michael.albinus@gmx.de>

	Fix bug#62106

	* lisp/files-x.el (connection-local-set-profiles)
	(connection-local-set-profile-variables):
	Use `customize-save-variable' instead of `customize-set-variable'.
	(Bug#62106)

2023-03-11  Randy Taylor  <dev@rjt.dev>

	Add missing rust-ts-mode highlight query for scoped_type_identifiers

	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
	Add missing query.

2023-03-11  kobarity  <kobarity@gmail.com>

	Make "case" keyword a dedenter in Python

	* lisp/progmodes/python.el (python-rx): Add "case" to dedenter.
	(python-info-dedenter-opening-block-positions): Add "case" to pairs.
	* test/lisp/progmodes/python-tests.el (python-indent-dedenters-9):
	New test.

2023-03-11  Eli Zaretskii  <eliz@gnu.org>

	Fix decoding non-ASCII file names in zip archives on MS-Windows

	* lisp/arc-mode.el (archive-zip-summarize): On MS-Windows,
	override archive-file-name-coding-system for files compressed
	on MS-Windows, and use the local console encoding instead.

2023-03-11  Eli Zaretskii  <eliz@gnu.org>

	Fix copying binary files from zip archives

	* lisp/arc-mode.el (archive-copy-file): Prevent any coding
	conversions when writing output files.  (Bug#62091)

2023-03-10  Robert Pluim  <rpluim@gmail.com>

	Skip ruby-ts-syntax-propertize-symbol unless treesitter is available

	 *
	 test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-syntax-propertize-symbol):
	 Add check for treesitter.

2023-03-10  Randy Taylor  <dev@rjt.dev>

	Fix enums and unions appearing as structs in c-ts-base-mode's imenu

	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Separate enums and unions out
	from structs.

2023-03-09  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Fine-tune s-p-f on symbols (bug#62086)

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query):
	Don't match ':' in symbol node text.  Or '_', I suppose.
	(ruby-ts--syntax-propertize): Make sure to only put the '_' syntax
	on punctuation syntax characters, and not on the whole symbol (to
	e.g. have symbols like :foo? include text recognized as word).

	* test/lisp/progmodes/ruby-ts-mode-tests.el
	(ruby-ts-syntax-propertize-symbol): New test.

2023-03-09  Dmitry Gutov  <dgutov@yandex.ru>

	python-info-dedenter-opening-block-positions: Fix to support "bare" match

	* lisp/progmodes/python.el
	(python-info-dedenter-opening-block-positions): Make the check
	stricter.  Require that block starts only at indentation.

	* test/lisp/progmodes/python-tests.el
	(python-indent-after-bare-match): Another test (bug#62031).

2023-03-09  João Távora  <joaotavora@gmail.com>

	Autoload Eglot helper function eglot--debbugs-or-github-bug-uri

	This isn't a typical autoload: the progn block is plced in the
	autoloads file, but the eglot.el file itself isn't loaded as a result
	when the function inside the progn block is called.

	* lisp/progmodes/eglot.el (eglot--debbugs-or-github-bug-uri):
	autoload, but in progn.

2023-03-09  João Távora  <joaotavora@gmail.com>

	Add chapter on advanced server configuration to Eglot manual

	* doc/misc/eglot.texi (Top): Add section "Advanced server configuration"
	(Setting Up LSP Servers): Rework.
	(Advanced server configuration): New chapter.

2023-03-09  Vincenzo Pupillo  <v.pupillo@gmail.com>  (tiny change)

	java-ts-mode: detect if text_block is supported.

	A recent commit in tree-sitter-java (issue #141) removed support for
	the text_block node type from the grammar. To support the old released
	version and the new one, a helper function was added on which the
	string syntax highlighting now depends. (bug#61913)

	* lisp/progmodes/java-ts-mode.el
	(java-ts-mode--string-highlight-helper): New helper function that
	return the right query string
	(java-ts-mode--font-lock-settings): Use it

2023-03-09  kobarity  <kobarity@gmail.com>

	Revert workaround introduced in Bug#56271

	* lisp/progmodes/python.el (python-nav-end-of-statement)
	(python-nav-end-of-block): Revert workaround introduced in Bug#56271
	as the bug is fixedin Bug#58780.

2023-03-09  kobarity  <kobarity@gmail.com>

	Fix searching for end of string in python-nav-end-of-statement

	* lisp/progmodes/python.el (python-nav-end-of-statement): Add
	searching for corresponding string-quote.
	* test/lisp/progmodes/python-tests.el (python-nav-end-of-statement-3)
	(python-nav-end-of-statement-4, python-info-current-defun-4): New
	tests. (Bug#58780)

2023-03-08  Po Lu  <luangruo@yahoo.com>

	Fix libwebp check for some webp installations

	* configure.ac: Look for WebPGetInfo; if it is not there, look
	for libwebpdecoder as well.  (bug#61988)

2023-03-08  Dmitry Gutov  <dgutov@yandex.ru>

	Avoid potential infloop

	* lisp/progmodes/python.el
	(python-info-dedenter-opening-block-positions):
	Avoid potential infloop (bug#62031).

2023-03-08  Dmitry Gutov  <dgutov@yandex.ru>
	    Lele Gaifax  <lele@metapensiero.it>

	Don't misindent 'else:' after 'if re.match:' in Python

	* lisp/progmodes/python.el
	(python-info-dedenter-opening-block-positions): Check that the
	supposed block start is not a method call (bug#62031).

	* test/lisp/progmodes/python-tests.el (python-indent-after-re-match):
	New test.

2023-03-08  Andrea Corallo  <akrl@sdf.org>

	* Make sure `default-directory' exists before spawning processes (bug#62004)

	* lisp/emacs-lisp/comp.el (comp-final, comp-run-async-workers): Bind
	`default-directory' to `invocation-directory'.

2023-03-08  Ulrich Müller  <ulm@gentoo.org>

	Fix sed expression in install-etc make target

	* Makefile.in (install-etc): Fix sed expression for emacsclient
	desktop files.  (Bug#62045)

2023-03-08  Ulrich Müller  <ulm@gentoo.org>

	Avoid using bash in the emacsclient desktop file

	* etc/emacsclient-mail.desktop (Exec): Use sh and sed instead
	of bash, because the latter may not be available everywhere.

2023-03-08  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of the 'line-height' text property

	* doc/lispref/display.texi (Line Height): More accurate
	documentation of the value t of 'line-height' text property.
	(Bug#62048)

2023-03-08  Gregory Heytings  <gregory@heytings.org>

	Add 'declare' specs to with- and without-restriction

	* lisp/subr.el (with-restriction):
	(without-restriction): Add 'declare' specs.

2023-03-07  Yuan Fu  <casouri@gmail.com>

	Fix empty line indentation in c-ts-mode (bug#61997)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--indent-styles): Handle the empty line case.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.

	* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
	* lisp/treesit.el (treesit-simple-indent-presets): Support null as
	a value for NODE-TYPE in the 'match' matcher.

2023-03-07  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter indent preset prev-line (bug#61998)

	* lisp/treesit.el (treesit-simple-indent-presets): Fix return value.

2023-03-07  Manuel Giraud  <manuel@ledu-giraud.fr>

	Revert 'forward-sentence-default-function' to return point (bug#62027)

	* lisp/textmodes/paragraphs.el
	(forward-sentence-default-function): Revert to return the
	position of point.
	(count-sentences): Adapt to this change.

2023-03-07  Ulrich Müller  <ulm@gentoo.org>

	Fix Elisp code injection vulnerability in emacsclient-mail.desktop

	A crafted mailto URI could contain unescaped double-quote
	characters, allowing injection of Elisp code.  Therefore, any
	'\' and '"' characters are replaced by '\\' and '\"', using Bash
	pattern substitution (which is not available in the POSIX shell).

	We want to pass literal 'u=${1//\\/\\\\}; u=${u//\"/\\\"};' in the
	bash -c command, but in the desktop entry '"', '$', and '\' must
	be escaped as '\\"', '\\$', and '\\\\', respectively (backslashes
	are expanded twice, see the Desktop Entry Specification).

	Reported by Gabriel Corona <gabriel.corona@free.fr>.

	* etc/emacsclient-mail.desktop (Exec): Escape backslash and
	double-quote characters.

2023-03-07  Eli Zaretskii  <eliz@gnu.org>

	Fix problem with debuginfod queries in "M-x gdb"

	* lisp/progmodes/gdb-mi.el (gdb-debuginfod-enable-setting): New
	defcustom.
	(gdb-debuginfod-message): New function.
	(gdb-init-1): Initialize gdb-debuginfod-enable.  Ask the user
	about debuginfod queries and display any error messages.
	(Bug#61973)

	* etc/NEWS: Announce the change.

2023-03-06  João Távora  <joaotavora@gmail.com>

	Fix regression in Fido mode (bug#62015)

	To understand the regression consider this recipe where the 'fo'
	pattern is typed by the user in the last step.

	   emacs -Q
	   C-x b foo RET
	   C-x b afoo RET
	   C-x b *scratch* RET
	   M-x fido-mode RET
	   C-x b fo

	This used to offer both 'foo' and 'afoo' as candidates but now only
	offered 'foo'.  This is because the pattern 'fo' matches 'foo', but
	not 'afoo' with 'basic' completion style.

	Fido mode, however, prioritizes 'flex' completion style, and that is
	not happening here as it used to.

	This was introduced in this commit

	     commit bf81df86e52fdc995bec8d9646f84d114cb896d1
	     Author: João Távora <joaotavora@gmail.com>
	     Date:   Wed Dec 7 10:43:59 2022 +0000

	         Don't override completion-category-defaults in fido-mode

	I took away the nil setting of 'completion-category-defaults; in Fido
	mode's minibuffer. It seemed generally the correct thing to do, and
	was done mainly because Eglot added its style preferences to that
	variable instead of completion-category-overrides directly, which is a
	nono.  So, to be able use the Fido UI with Eglot successfully,
	'completion-category-defaults' should stay untouched.  Or so I
	thought.

	However, I failed to notice that, for most categories, the default
	value of 'completion-category-defaults' prioritizes the 'basic'
	completion style.

	For example, in the 'buffer' category, the default value has the
	styles list '(basic substring)'.  This means that if a pattern matches
	according to the 'basic' style, 'substring' will not be tried.  And
	neither will 'completion-styles' which in Fido mode's case happens to
	be 'flex'.

	The solution in this commit is to craft a value for completion
	category defaults that is just like the default one, but prioritizes
	'flex' completion for every category.

	* lisp/icomplete.el (icomplete--fido-ccd): New helper.
	(icomplete--fido-mode-setup): Use it.

2023-03-06  Andrea Corallo  <akrl@sdf.org>

	* Fix `emacs-lisp-native-compile-and-load' for (bug#61917)

	* lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load):
	Don't load if no compilation happened.

2023-03-06  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (comp-prettyformat-insn): Fix (bug#61917)

2023-03-06  Eli Zaretskii  <eliz@gnu.org>

	Revert "Fix configuration of webp libraries"

	This reverts commit de4277af009115ceba7fe920163c05c608ea9524.
	It breaks WebP support at least on my system.
	There's no reason to require libwebpdecoder library to be
	installed, since we don't use the functions from it, at least
	not in libwebp 1.2.1.

2023-03-06  Po Lu  <luangruo@yahoo.com>

	Fix configuration of webp libraries

	* configure.ac: Link with libwebpdecoder along with
	libwebpdemux.  (bug#61988)

2023-03-05  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indentation

	Mentioned in bug#61893.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Handle
	"#elif" and "#else".
	* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: Add an
	"#elif" to the test.

2023-03-05  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indentation

	Mentioned in bug#61893, although not the subject of it.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--anchor-prev-sibling): Fix the child index for preproc_else
	and preproc_elif case.
	* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts:
	New test.

2023-03-05  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indentation

	Not the subject of it, but mentioned in bug#61893.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Skip
	the sibling if it doesn't start on its own line.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.

2023-03-05  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.1-40-g3d817c

2023-03-05  Yuan Fu  <casouri@gmail.com>

	Add string-interpolation feature to bash-ts-mode

	* lisp/progmodes/sh-script.el:
	(bash-ts-mode): Add string-interpolation feature.
	(sh-mode--treesit-settings): Add rule for string-interpolation feature.

2023-03-05  Michael Albinus  <michael.albinus@gmx.de>

	Fix tramp-sh-handle-insert-directory

	* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Remove also
	//DIRED-OPTIONS// line when there is no //DIRED// line.

2023-03-05  Andrea Corallo  <akrl@sdf.org>

	* Warn when certain primitives are redefined (bug#61880)

		* lisp/emacs-lisp/comp.el (comp-warn-primitives): New constant.
		(comp-subr-trampoline-install): Warn when a sensitive primitive is
		being redefined.

2023-03-04  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode preproc directive indentation

	Mentioned in bug#61893, although not the subject of that report.  This
	change fixes indentation for nested directives.  For example, when the
	directive involves elif and the like, the elif is nested in the if
	directive, so simply using grand-parent and great-grand-parent for
	anchor is insufficient, because the nesting can grow arbitrarily.

	The test added also covers the last preproc fix.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--standalone-parent-skip-preproc): New function.
	(c-ts-mode--indent-styles): New rules.
	* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: New test.

2023-03-04  João Távora  <joaotavora@gmail.com>

	More robustly unspoof HOME in Eglot tests (bug#61637)

	A fair number of LSP servers allow user-local installations instead of
	system wide installations.  Emacs's technique of spoofing the HOME env
	var to some non-existent or non-home directory during 'make check'
	breaks these tests.  That's because the executables are still found by
	executable-find, but their invocation will rarely be successful as
	HOME isn't what they expect it to be.

	Eglot tests already had a technique for dealing with this,
	"unspoffing" HOME just for the invocations of LSP server but it
	stopped working a while back.  So make it more robust.

	Eventually, we'll want to decide whether these local servers should be
	considered in 'make check' runs at all, or whether there is a way to
	use them with a spoofed HOME.

	* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
	More robustly unspoof HOME.

2023-03-04  João Távora  <joaotavora@gmail.com>

	Turn on Eglot inlay hints by default

	This is like any other server-provided feature, and may be turned off
	client-side by setting eglot-ignored-server-capabilities like

	   (add-to-list 'eglot-ignored-server-capabilities :inlayHintProvider)

	* lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode):
	Activate eglot-inlay-hints-mode.
	(eglot-inlay-hints-mode): Instead of warning about missing
	:inlayHintProvider, turn off eglot-inlay-hints-mode.

2023-03-04  Dmitry Gutov  <dgutov@yandex.ru>

	Update ts modes missed in 4c16fd3a512 to use column-0

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules):
	Change point-min anchor to column-0.

2023-03-04  João Távora  <joaotavora@gmail.com>

	Robustify Eglot for "transient" projects

	When Eglot needs to synthesize a "transient" project for
	default-directory sometimes the value of that variable is set to an
	unexpanded value, sometimes not.  This can cause simple invocations
	like.

	   Emacs -Q ~/path/to-some-python-file.py -f eglot

	to fail, because eglot--current-server will be looking for a project
	in the registry called

	    (transient . "~/path")

	where in reality it is stored there as

	    (transient . "/home/someuser/path")

	The fix is to always expand default-directory in eglot--current-project.

	* lisp/progmodes/eglot.el (eglot--current-project): Use
	expand-file-name.

2023-03-04  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of 'normal-mode' in buffers that don't visit files

	* lisp/files.el (normal-mode):
	* lisp/subr.el (run-mode-hooks):
	* doc/emacs/modes.texi (Choosing Modes): Mention the caveat with
	'normal-mode' in buffers not visiting files.  (Bug#61925)
	* lisp/files.el (hack-local-variables): Doc fix.

2023-03-04  Yuan Fu  <casouri@gmail.com>

	Change tree-sitter indent anchor 'point-min' to 'column-0'

	Point-min isn't necessarily at column 0, using line-beginning-position
	is better. column-0 is also more intuitive.

	* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles):
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules):
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--indent-rules):
	* lisp/progmodes/typescript-ts-mode.el:
	(typescript-ts-mode--indent-rules): Change point-min to column-0.
	* lisp/treesit.el (treesit-simple-indent-presets): Change point-min to
	column-0.

2023-03-04  Yuan Fu  <casouri@gmail.com>

	Fix go-ts-mode multi-line string indentation (bug#61923)

	* lisp/progmodes/go-ts-mode.el:
	(go-ts-mode--indent-rules): Add indent rule for multi-line string.

2023-03-03  João Távora  <joaotavora@gmail.com>

	Remove Eglot activation check from find-file-hook

	Adding eglot--maybe-activate-editing-mode to find-file-hook isn't
	really necessary, since it is already in
	'after-change-major-mode-hook', and that also runs every time we find
	a file.

	This reduces the number of project.el logic that runs every time the
	user visits a file.

	* lisp/progmodes/eglot.el (find-file-hook): No need to add
	eglot--maybe-activate-editing-mode here.

2023-03-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/intervals.c (set_intervals_multibyte_1): Fix bug#61887

	When `total_length` is 0 there should be no subtree at all, but
	`delete_interval` only deletes one interval, so make sure we don't end
	up with some stale child of `i`.

2023-03-03  João Távora  <joaotavora@gmail.com>

	Revert inadvertent change to lisp/icomplete.el in previous commit

	The change

	   commit 3a651773d29afb48ac4229cd19e532bd57a4ee2d
	   Author: João Távora <joaotavora@gmail.com>
	   Date:   Fri Mar 3 13:13:35 2023 +0000

	       Eglot: pay better attention to hints' paddingLeft/Right (bug#61924)

	Inadvertently added a line to this file, which shouldn't (yet) bet
	added.

	* lisp/icomplete.el (icomplete--vertical-minibuffer-setup): Remove
	truncate-lines.

2023-03-03  Yuan Fu  <casouri@gmail.com>

	Revert previous change in go-ts-mode.el

	Reverts 59365f928565f1be551b1697b9246b00cb87a9b7 and
	56cd810b9d1a4d537bee5a2fd954d6e0d346631a.

	Reverting because the use of treesit-ready-p is very much intentional.

	* lisp/progmodes/go-ts-mode.el (treesit-ready-p): Revert change.

2023-03-03  F. Jason Park  <jp@neverwas.me>

	Release ERC 5.5

	* doc/misc/erc.texi: Update ERCVER to 5.5.
	* lisp/erc/erc.el: Increment main version header to 5.5.  Update
	Compat version in package-requires header to 29.1.3.4.  Update
	`customize-package-emacs-version-alist' entry by mapping ERC 5.5 to
	Emacs 29.1.
	(erc-version): Update value to 5.5.

2023-03-03  Jim Porter  <jporterbugs@gmail.com>

	Don't create GUI frames in batch sessions

	This resolves an issue with running test/lisp/server-tests.el when
	'DISPLAY' is set: the tests would start the Emacs server in a batch
	session, and then request a new GUI frame.  However, that caused the
	tests to terminate with SIGIO, since a batch Emacs doesn't set a SIGIO
	handler.

	Ref: <https://lists.gnu.org/archive/html/emacs-devel/2023-02/msg00879.html>

	* lisp/frame.el (make-frame): Always create a terminal frame in batch
	sessions.

2023-03-03  Eli Zaretskii  <eliz@gnu.org>

	Minor copyedits of documentation of OClosures

	* doc/lispref/functions.texi (OClosures): Improve wording,
	indexing, and markup; add details.

2023-03-03  João Távora  <joaotavora@gmail.com>

	Eglot: pay better attention to hints' paddingLeft/Right (bug#61924)

	* lisp/progmodes/eglot.el (eglot--update-hints-1): Consider
	:json-false, which is a non-nil value.

2023-03-02  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indentation for statement after preproc (bug#61893)

	Originally our c-ts-mode--anchor-prev-sibling only specially handled
	labeled_statements, now we add special case for preproc in the similar
	fashion: instead of using the preproc directive as anchor, use the last
	statement in that preproc as the anchor. Thus effectively ignore the
	preproc.

	There should be an accompanying test, but there are some problem in
	the elif preproc directive indent so it would pass, we'll add the test
	when that is fixed.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--anchor-prev-sibling): Add special case for preproc
	directives.

2023-03-02  Eli Zaretskii  <eliz@gnu.org>

	Fix c/c++-ts-mode's mode lighter

	* lisp/progmodes/c-ts-mode.el (c-ts-mode-set-modeline): Remove
	trailing blank from comment-start when indicating the comment
	style on the mode line.

2023-03-02  João Távora  <joaotavora@gmail.com>

	Eglot: use shell-file-name in eglot--cmd (bug#61748)

	* lisp/progmodes/eglot.el (eglot--cmd): Use shell-file-name.

2023-03-02  Eli Zaretskii  <eliz@gnu.org>

	Avoid signaling errors in url-basic-auth when password is nil

	* lisp/url/url-auth.el (url-basic-auth): Handle nil PASS.
	Suggested by Ellis Kenyo <me@elken.dev>.  (Bug#61411)

2023-03-02  Eli Zaretskii  <eliz@gnu.org>

	Fix wdired-tests on MS-Windows

	* test/lisp/wdired-tests.el (wdired-test-bug32173-01)
	(wdired-test-bug32173-02, wdired-test-unfinished-edit-01)
	(wdired-test-bug39280): Run test-dir through file-truename, to
	avoid failures due to MS-Windows "numeric tails" (mis)feature and
	similar issues, which make file names fail to compare 'equal'.
	(wdired-test-bug34915, wdired-test-bug61510): Skip if symlinks
	fail.

2023-03-02  Andrew De Angelis  <bobodeangelis@gmail.com>

	Improvements to xwidget on macOS (bug#60703)

	* src/nsxwidget.m ()
	([XwWebView initWithFrame:configuration:xwidget:])
	(nsxwidget_init):  Fixed memory leaks: when sending an alloc
	message to an object, send an autorelease message to any objects
	we won't explicitly release.
	([XwWebView webView:didFinishNavigation:]): Second string to
	store in 'store_xwidget_event_string' is "load finished" rather
	than empty string.
	([XwWebView webView:didStartProvisionalNavigation:])
	([XwWebView webView:didReceiveServerRedirectForProvisionalNavigation:])
	([XwWebView webView:didCommitNavigation:]): New functions.
	(nsxwidget_webkit_estimated_load_progress): New function.
	(nsxwidget_webkit_stop_loading): New function.
	* src/xwidget.c (Fxwidget_webkit_estimated_load_progress): Call
	'nsxwidget_webkit_estimated_load_progress' if we're on MacOS.
	(Fxwidget_webkit_stop_loading): Call 'nsxwidget_webkit_stop_loading'
	if we're on MacOS.
	(syms_of_xwidget): Define symbol for function.
	'xwidget_webkit_estimated_load_progress' if we're on MacOS.
	* src/nsxwidget.h: Signature for functions
	'nsxwidget_webkit_estimated_load_progress' and
	'nsxwidget_webkit_stop_loading'.
	* lisp/xwidget.el (xwidget-webkit-current-url): Message URL rather
	than return value of 'kill-new' (which is always nil).

2023-03-01  Yuan Fu  <casouri@gmail.com>

	* lisp/progmodes/go-ts-mode.el: Use treesit-language-available-p.

	treesit-ready-p does more checks than language grammar availability.

2023-03-01  Yuan Fu  <casouri@gmail.com>

	Don’t signal warning when loading go-ts-mode.el without grammar

	* lisp/progmodes/go-ts-mode.el: Add a QUIET flag to the call of
	treesit-ready-p, so that it doesn't signal a warning if
	go-mod (tree-sitter grammar) is not available.

2023-03-01  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode empty line indentation (bug#61893)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make the
	"rest sibling" matchers catch the case where NODE is nil, when
	indenting an empty line.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.

2023-03-01  Yuan Fu  <casouri@gmail.com>

	Improve tree-sitter's prev-sibling indent anchor

	Now it handles the case where NODE is nil when indenting an empty
	line: it tries to get the previous sibling nonetheless.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling):
	* lisp/treesit.el (treesit-simple-indent-presets): Add an or form to
	handle more cases.

2023-03-01  João Távora  <joaotavora@gmail.com>

	* lisp/icomplete.el (fido-mode): Enable in-buffer completion (bug#45763).

	Backport:
	(cherry picked from commit b5c13032538377b0037c745715613693a1580f81)

2023-03-01  Juri Linkov  <juri@linkov.net>

	* lisp/icomplete.el: Fix in-buffer completion.

	(icomplete-force-complete-and-exit, icomplete-force-complete): Use
	'icomplete--field-beg/end' when not in the minibuffer to not erase
	the current buffer.  Also disable 'completion-in-region-mode' instead
	of calling 'exit-minibuffer' (bug#45764, bug#51575, bug#61479).

	Backport:
	(cherry picked from commit a7a984c0ebebb891e2052d8416544f0bd7002007)

2023-03-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/profiler.c (malloc_probe): Make it safe for GC (bug#60237)

2023-03-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Fix bug#61847

	The `noerror` arg of `require` doesn't do what Stefan naively thought
	when he wrote this code, so use `condition-case` instead.
	Also check for `cl-defmethod` since `cl-prin1` can't be loaded before
	that anyway.

2023-03-01  Eli Zaretskii  <eliz@gnu.org>

	Revert "Don't disable eldoc when doing edebug"

	This reverts commit 6fd1fb8a6837acde8e1c9ab26618ec0f36121c72.
	It turns out ElDoc does show messages inside Edebug, if you
	are (un)lucky enough to have point where ElDoc has something
	to show.  Bug#56459 needs to be fixed in some more complex
	way.

2023-03-01  João Távora  <joaotavora@gmail.com>

	Eglot: work around Tramp instability bug#61350

	Unconditionally disable ControlMaster for the Eglot's Tramp
	connection.

	* lisp/progmodes/eglot.el (tramp-ssh-controlmaster-options)
	(use-tramp-ssh-controlmaster-options): Forward declare
	(eglot--connect): Set variables to unconditionally disable ControlMaster.

2023-03-01  Yuan Fu  <casouri@gmail.com>

	Fix treesit-indent-region

	Fix it for the case where there is no suitable rule for the line.
	Right now treesit-indent-region would indent the line to column 0.
	After the change the indentation is not altered.

	* lisp/treesit.el (treesit-indent-region): Handle the case where
	ANCHOR or OFFSET is nil specially.

2023-03-01  Po Lu  <luangruo@yahoo.com>

	Replace C++ comments with C style equivalents

	* src/alloc.c (Fmake_byte_code, purecopy):
	* src/bytecode.c (exec_byte_code):
	* src/xdisp.c (face_at_pos): Do not use C++-style comments!

2023-02-28  João Távora  <joaotavora@gmail.com>

	Eglot: fix M-x eglot-show-workspace-configuration (bug#61866)

	Now consult .dir-locals.el every time the workspace configuration is
	needed:

	- workspace/configuration server request
	- workspace/didChangeConfiguration signal
	- M-x eglot-show-workspace-configuration

	The major-mode/hack-dir-local-variables-non-file-buffer trick is used.
	When there is more than one, the server connection's "main" major mode
	is used to find the relevant .dir-locals.el section.

	* lisp/progmodes/eglot.el (eglot--lookup-mode): Fix docstring.
	(eglot--connect): Simplify.
	(eglot-show-workspace-configuration): Fix.
	(eglot--workspace-configuration): Remove.
	(eglot--workspace-configuration-plist): Rework.
	(eglot-handle-request): Simplify.

2023-02-28  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-mode: Fix method call indentation in rhs of multiple assignment

	* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Special-case
	assignment that follows a comma-separated list (bug#61871).

	* test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add case.

2023-02-28  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-remote-path): Improve docstring.

2023-02-28  Felix  <felix.dick@web.de>  (tiny change)

	Minor change in 'dired--find-possibly-alternative-file'

	* lisp/dired.el (dired--find-possibly-alternative-file): Don't
	kill the buffer if the directory is shown in other windows.

2023-02-28  Felix  <felix.dick@web.de>  (tiny change)

	Implement prefix arg for 'c-ts-mode-toggle-comment-style'

	* lisp/progmodes/c-ts-mode.el (c-ts-mode-toggle-comment-style):
	Actually implement the optional numeric arg mentioned in the
	docstring.

2023-02-28  Manuel Giraud  <manuel@ledu-giraud.fr>

	Defaults to zero for image-dired--number-of-thumbnails

	* lisp/image/image-dired.el (image-dired--number-of-thumbnails):
	Defaults zero to avoid wrong type argument error.  (Bug#61734)

2023-02-27  Dmitry Gutov  <dgutov@yandex.ru>

	Rename the newly added -ref- faces to -use-

	* lisp/font-lock.el (font-lock-variable-use-face)
	(font-lock-property-use-face): Rename from font-lock-variable-ref-face
	and font-lock-property-ref-face.  Update all references (bug#61655).

2023-02-27  João Távora  <joaotavora@gmail.com>

	Eglot: support multiple labels in same inlay hint

	Mainly the rust-analyzer LSP server uses this.  There are still more
	things we could support, like tooltips and stuff.

	* lisp/progmodes/eglot.el (lsp-interface-alist): Add
	InlayHintLabelPart.
	(eglot--update-hints-1): Support multiple labels for same hint.

2023-02-27  João Távora  <joaotavora@gmail.com>

	Eglot: don't paint hints outside requested region (bug#61812)

	* lisp/progmodes/eglot.el (eglot--lambda): Add cl-block.
	(eglot--update-hints-1): Return early if hint is outside the
	requested inlay hint range.

2023-02-27  João Távora  <joaotavora@gmail.com>

	Eglot: protect against unintended field text motion (bug#61726)

	Suggested-by: Augusto Stoffel <arstoffel@gmail.com>

	* lisp/progmodes/eglot.el (eglot--bol): New helper.
	(eglot-utf-8-linepos, eglot-utf-16-linepos)
	(eglot-utf-32-linepos, eglot-move-to-utf-8-linepos)
	(eglot-move-to-utf-16-linepos, eglot-move-to-utf-32-linepos)
	(eglot-handle-notification, eglot--xref-make-match)
	(eglot-completion-at-point): Use it.

2023-02-27  Eli Zaretskii  <eliz@gnu.org>

	Fix description of 'desktop-save-mode'

	* doc/emacs/misc.texi (Saving Emacs Sessions): Adjust to changes
	in 'desktop-path'.  Reported by Petteri Hintsanen <petterih@iki.fi>.

2023-02-27  Yuan Fu  <casouri@gmail.com>

	Adjust tree-sitter defun navigation (bug#61617)

	Before this change, when you use a tree-sitter navigation function to
	move to the next beginning of a thing, it jumps over the immediate
	next thing and lands you at the beginning of the next-next thing.

	Eg, when point is at the "|", and we evaluate
	(treesit--navigate-thing pos 1 'beg), we go from

	|  (thing) (thing)

	to

	   (thing) |(thing)

	But some might expect point to go to

	   |(thing) (thing)

	instead, which makes sense.  Also, that's how Emacs expect defun
	navigation functions to work.  The discrepancy in expectation causes
	bug#61617.

	In this change I made tree-sitter navigation functions to work as what
	Emacs expects.  And what I described for moving to the next beginning
	of thing is similarly applicable to moving to the end of previous end
	of thing.

	* lisp/treesit.el (treesit-beginning-of-defun)
	(treesit-end-of-defun): Handle the case where defun-skipper moves
	point back to where we started, by adding a retry.

	(treesit--navigate-thing): Add a single condition checking for
	progress to the condition form responsible for checking whether to
	skip the next defun.  Namely (eq pos (funcall advance next)))).

	* test/src/treesit-tests.el:
	(treesit--ert-defun-navigation-nested-master)
	(treesit--ert-defun-navigation-top-level-master): Change tests to
	reflect the new expectation.

2023-02-27  Yuan Fu  <casouri@gmail.com>

	Simplify c-ts-mode--top-level-label-matcher

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--top-level-label-matcher): Make more assumptions and remove
	the loop, so it's faster in large files.

2023-02-27  Yuan Fu  <casouri@gmail.com>

	New tree-sitter indent anchor standalone-parent used by c-ts-mode

	When writing c-ts-mode Theo used parent-bol which works well except
	one case:

	1 for (int i=0;
	2      i < 5;
	3      i++) {
	4   func(i);
	5 }

	In this case, when indenting "func(i)", parent-bol returns the start
	of "i++" on line 3, instead of the "correct" anchor, the start of
	"for" on line 1.  parent-bol would have worked if the "for (...) {"
	part is in one line.

	To support this case I tried numerous things and added a bunch of
	stuff, culminating in c-ts-common-statement-offset.  It's complicated,
	requires extra setup, and slow.

	Not anymore! I think the new anchor standalone-parent really captures
	the logic behind how people expect indentation to work. It's simple
	and fast, and requires no setup.

	* doc/lispref/modes.texi (Parser-based Indentation): Update manual.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--standalone-grandparent): New anchor.
	(c-ts-mode--indent-styles): Replace c-ts-common-statement-offset with
	standalone-parent.
	(c-ts-base-mode): Add comment.

	* lisp/treesit.el:
	(treesit-simple-indent-presets): New anchor standalone-parent.

2023-02-26  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-smie-rules: Fix misindentation of a method call after assignment

	* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Fix indentation of a
	method call after assignment with ruby-after-operator-indent=nil
	(bug#61822).

	* test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb:
	Add corresponding example.

2023-02-26  Eli Zaretskii  <eliz@gnu.org>

	* lib-src/etags.c (process_file_name): Free malloc'ed vars (bug#61819).

2023-02-26  João Távora  <joaotavora@gmail.com>

	Eglot: rename and redocument encoding-related functions (bug#61726)

	* lisp/progmodes/eglot.el (eglot-current-column): Obsolete.
	(eglot-lsp-abiding-column): Obsolete.
	(eglot-current-column-function): Obsolete.
	(eglot-current-linepos-function): Rename from eglot-current-column-function.
	(eglot-utf-8-linepos): Rename from eglot-bytewise-column.
	(eglot-utf-16-linepos): Rename from eglot-lsp-abiding-column.
	(eglot-utf-32-linepos): Rename from eglot-current-column.
	(eglot-move-to-current-column): Obsolete.
	(eglot-move-to-lsp-abiding-column): Obsolete.
	(eglot-move-to-column-function): Obsolete.
	(eglot-move-to-linepos-function): Rename from eglot-move-to-column-function.
	(eglot-move-to-utf-8-linepos): Rename from eglot-move-to-bytewise-column.
	(eglot-move-to-utf-16-linepos): Rename from eglot-move-to-lsp-abiding-column.
	(eglot-move-to-utf-32-linepos): Rename from eglot-move-to-current-column.
	(eglot--managed-mode): Adjust.
	(eglot-client-capabilities): Trim whitespace.

	* test/lisp/progmodes/eglot-tests.el (eglot-test-lsp-abiding-column)
	(eglot-test-lsp-abiding-column-1): Use new function/variable names.

2023-02-26  Augusto Stoffel  <arstoffel@gmail.com>

	Eglot: support positionEncoding LSP capability (bug#61726)

	* lisp/progmodes/eglot.el(eglot-client-capabilities):  Announce the
	new capability.
	(eglot-bytewise-column, eglot-move-to-bytewise-column): New functions.
	(eglot--managed-mode): Set 'eglot-current-column-function' and
	'eglot-move-to-bytewise-column' appropriately.

2023-02-26  Eli Zaretskii  <eliz@gnu.org>
	    Augusto Stoffel  <arstoffel@gmail.com>

	Eglot: use faster strategy for moving to LSP positions (bug#61726)

	Turns out we don't need encode-coding-region after all.

	* lisp/progmodes/eglot.el (eglot-move-to-lsp-abiding-column): Rewrite.

2023-02-26  Eli Zaretskii  <eliz@gnu.org>

	Fix mule-tests in UTF-8 locales

	* test/lisp/international/mule-tests.el
	(sgml-html-meta-no-post-less-than-10lines): Fix test condition.

2023-02-26  Eli Zaretskii  <eliz@gnu.org>

	Fix 'vertical-motion' when display strings are around

	* src/indent.c (Fvertical_motion): Correct bidi-related condition
	for character position, when we didn't move vertically.  (Bug#61636)

2023-02-25  Dmitry Gutov  <dgutov@yandex.ru>

	python-ts-mode: Fix single-quote string fontification

	* lisp/progmodes/python.el (python--treesit-fontify-string):
	Look for ', not just ", as opening delimiter (bug#61796).

2023-02-25  Eli Zaretskii  <eliz@gnu.org>

	Fix infloop in bidi.c

	* src/bidi.c (bidi_set_paragraph_end): Reset the isolate_level to
	zero.  Whenever stack_idx is reset to zero, the isolate_level must
	also be reset, since there cannot be any isolate status outside of
	embeddings.  Failure to reset isolate_level will cause us infloop
	when we see a PDI.  Reported by Matt Beshara <m@mfa.pw>.

2023-02-25  Daniel Martín  <mardani29@yahoo.es>

	Check the anchor along with the offset in treesit-indent-region

	* lisp/treesit.el (treesit-indent-region): To compute a valid column,
	having a non-nil offset is not enough, we need a non-nil anchor as
	well.

2023-02-24  Yuan Fu  <casouri@gmail.com>

	Align to prev sibling for c-ts-mode indentation

	As requested by a discussion on emacs-devel.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--anchor-prev-sibling): New function.
	(c-ts-mode--indent-styles): Indent first child as before, indent the
	rest to their previous sibling.  Remove bracketless statement rules
	that I forgot to remove previously.

2023-02-24  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-common-statement-offset and c-ts-common--node-is

	* lisp/progmodes/c-ts-common.el:
	(c-ts-common--node-is): Guard against case where the node has no field
	name.
	(c-ts-common-statement-offset): Do indent a level if the "if" in the
	"else if" is on an independent line.

2023-02-24  Dmitry Gutov  <dgutov@yandex.ru>

	typescript-ts-mode: Highlight non-shorthand destructuring bindings

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Highlight non-shorthand
	variable bindings in object destructuring.

2023-02-24  Dmitry Gutov  <dgutov@yandex.ru>

	Add more/finer faces for tree-sitter

	* doc/lispref/modes.texi (Faces for Font Lock):
	Update the list of faces (bug#61655).

	* etc/NEWS: Update the list of new faces.

	* lisp/cus-theme.el (custom-theme--listed-faces): Update.

	* lisp/font-lock.el (font-lock-function-call-face)
	(font-lock-variable-ref-face, font-lock-property-ref-face):
	New faces.
	(font-lock-property-name-face):
	Rename from 'font-lock-property-face'.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
	Use new faces.  More 'enumerator' query to 'definition' feature.
	(c-ts-mode--fontify-declarator, c-ts-mode--fontify-variable):
	Use new faces.

	* lisp/progmodes/cmake-ts-mode.el
	(cmake-ts-mode--font-lock-settings): Use new faces.

	* lisp/progmodes/csharp-mode.el
	(csharp-ts-mode--font-lock-settings): Use new faces.

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
	Use new faces.

	* lisp/progmodes/java-ts-mode.el
	(java-ts-mode--font-lock-settings): Use new faces.

	* lisp/progmodes/js.el (js--treesit-fontify-assignment-lhs)
	(js--treesit-font-lock-settings): Use new faces.  Highlight
	variable definitions inside array and object destructuring
	patterns.

	* lisp/progmodes/python.el (python--treesit-variable-p):
	Exclude identifiers in parameters.
	(python--treesit-settings): Use new faces.  Highlight function
	parameters.  Move 'keyword' up to still highlight 'self' as
	keyword.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	Use new faces.

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--font-lock-settings): Use new faces.

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Use new faces.

	* lisp/textmodes/css-mode.el (css--treesit-settings):
	Use font-lock-property-ref-face.

	* lisp/textmodes/toml-ts-mode.el
	(toml-ts-mode--font-lock-settings):
	Use font-lock-property-ref-face.

	* lisp/textmodes/yaml-ts-mode.el
	(yaml-ts-mode--font-lock-settings): Same.

2023-02-24  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes in batch mode due to lack of frame face cache

	* src/xfaces.c (Finternal_merge_in_global_face): Handle frames
	with no face cache.

2023-02-24  Michael Albinus  <michael.albinus@gmx.de>

	Add Tramp version integrated in Emacs 28.3

	* lisp/net/trampver.el (customize-package-emacs-version-alist):
	Add Tramp version integrated in Emacs 28.3.

2023-02-24  Philip Kaludercic  <philipk@posteo.net>

	Avoid reusing :lisp-dir twice in 'package-vc--main-file'

	* lisp/emacs-lisp/package-vc.el (package-vc--main-file): Just use
	:lisp-dir from 'package-desc-extras', not 'pkg-spec'.

	This avoid appending the contents of :lisp-dir twice, in case it is
	specified both in pkg-spec and pkg-desc.

2023-02-24  Philip Kaludercic  <philipk@posteo.net>

	Ensure right package-desc-type before installing package

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Move copying
	code from 'package-vc-install'.
	(package-vc-install): Remove copying.  (Bug#61669)

2023-02-24  Stephen Berman  <stephen.berman@gmx.net>

	Restore invisibility of symlink target on exiting wdired-mode

	* lisp/wdired.el (wdired-change-to-dired-mode): Invoke
	dired-hide-details-update-invisibility-spec (bug#61510).

	* test/lisp/wdired-tests.el (wdired-test-bug61510): New test.

2023-02-24  João Távora  <joaotavora@gmail.com>

	Eglot: fix jit-lock inlay hint bugs

	One of the bugs was straightforward.  The timer function of
	eglot--update-hints must set the correct buffer.

	The other is much more odd.  When using Eglot on Emacs's own
	src/coding.c, the jit-lock code starts calling its jit-functions over
	and over again with the same sequence of arguments, like so:

	======================================================================
	1 -> (eglot--update-hints 63551 65051)
	1 <- eglot--update-hints: [nil 25592 52026 4
	======================================================================
	1 -> (eglot--update-hints 65051 66551)
	1 <- eglot--update-hints: [nil 25592 52026 4
	======================================================================
	1 -> (eglot--update-hints-1 63551 66551)
	1 <- eglot--update-hints-1: nil
	======================================================================
	1 -> (eglot--update-hints 63551 65051)
	1 <- eglot--update-hints: [nil 25592 52026 4
	======================================================================
	1 -> (eglot--update-hints 65051 66551)
	1 <- eglot--update-hints: [nil 25592 52026 5
	======================================================================
	1 -> (eglot--update-hints-1 63551 66551)
	1 <- eglot--update-hints-1: nil

	This continues forever at a very fast rate and saturates the LSP
	channel.

	At first I thought that it was because eglot--update-hints-1 is
	actually causing the buffer to be modified with overlays sometime in
	the future, but it is not so!  It seems that merely calling

	   (goto-char (eglot--lsp-position-to-point position))

	(from the LSP request handler in eglot--update-hints-1) will cause
	this bug.

	* lisp/progmodes/eglot.el (eglot--update-hints): Fix bugs.

2023-02-24  João Távora  <joaotavora@gmail.com>

	Eglot: fix inlay hint with label collection instead of string

	Reported by Chinmay Dalal <dalal.chinmay.0101@gmail.com>

	* lisp/progmodes/eglot.el (eglot--update-hints-1): Fix bug when
	inlay hint contains collection of labels.

2023-02-24  Robert Pluim  <rpluim@gmail.com>

	Fix insertion of keyboard macro containing named keys

	* lisp/kmacro.el: Autoload `macro--string-to-vector'.
	(kmacro-ring-head): Convert `last-kbd-macro' to a vector if it's a
	string, since `kmacro' uses `key-parse' on it.
	(kmacro-lambda-form): Remove require for 'macros
	* test/lisp/kmacro-tests.el
	(kmacro-tests-name-last-macro-key-parse-syntax):
	Test that insertion of macros that contain strings that look
	like named keys works correctly.

	(Bug#61700)

2023-02-23  João Távora  <joaotavora@gmail.com>

	Eglot: simplify inlay hints implementation with jit-lock

	This implementation is much simpler than the one based on
	windows-scroll-functions.  It's also supposedly safer, as long as
	jit-lock guarantees refontification of affected regions.

	It's not _trivially_ simple though, as simply adding
	'eglot--update-hints-1' to jit-lock-functions, while possible, is
	going to request inlay hints from the LSP server for many small
	regions of the buffer, depending on what jit-lock thinks is best.  So
	we keep coalescing these into a larger region until the time is
	suitable for a more bandwidth-efficient request.

	To do this, we use a jit-lock implementation detail,
	jit-lock-context-unfontify-pos, which is a proxy for knowing that the
	jit-lock-context-timer has run.  Not sure how brittle it is, but it
	seems to work reasonably.

	We also get rid of the previous "get hints for entire buffer"
	implementation.

	* doc/misc/eglot.texi (Eglot Variables): Remove mention
	to deleted eglot-lazy-inlay-hints.

	* lisp/progmodes/eglot.el (eglot-lazy-inlay-hints)
	(eglot--inlay-hints-after-scroll)
	(eglot--inlay-hints-fully)
	(eglot--inlay-hints-lazily): Remove.
	(eglot--update-hints): Add function.
	(eglot-inlay-hints-mode): Simplify.

2023-02-23  João Távora  <joaotavora@gmail.com>

	Eglot: update inlay hints on window configuration changes

	* lisp/progmodes/eglot.el
	(eglot--inlay-hints-after-window-config-change): New helper.
	(eglot-inlay-hints-mode): Use it.

2023-02-23  João Távora  <joaotavora@gmail.com>

	Eglot: display completion label when safe

	Originally reported in
	https://github.com/joaotavora/eglot/discussions/1141 by "Mintsoup".

	Eglot doesn't always show the LSP :label property of a CompletionItem
	in the completion candidates.  That is because label is sometimes not
	what should be inserted in the buffer in the end, the :insertText
	property supersedes it.

	But the label is usually more suitable for display nevertheless and if
	the LSP CompletionItem contains either a snippet or a textEdit, it's
	safe to display the label, since :exit-function will guarantee that a
	suitable buffer insertion is performed.

	This change reflects that awareness that when a textEdit is available,
	it's acceptable to show the label.

	* lisp/progmodes/eglot.el (eglot-completion-at-point): Adjust.

2023-02-23  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of VC commands, including in Dired

	* doc/emacs/dired.texi (Operating on Files):
	* doc/emacs/maintaining.texi (VC Change Log, VC Directory Mode)
	(Version Control, Basic VC Editing): Document VC command
	invocation from Dired buffers.  Improve documentation of vc-log
	commands.

	* lisp/dired-aux.el (dired-vc-next-action):
	* lisp/vc/vc.el (vc-print-log, vc-log-search, vc-log-mergebase)
	(vc-log-view-type, vc-print-root-log, vc-next-action): Doc fixes.

2023-02-23  Juri Linkov  <juri@linkov.net>

	* doc/emacs/maintaining.texi: More mentions of marked files in Dired.

	(Basic VC Editing, Old Revisions, VC Change Log): Add more mentions of
	ability to include the marked files to the VC fileset in Dired (bug#61712).

2023-02-22  João Távora  <joaotavora@gmail.com>

	Eglot: implement inlay hints (bug#61412, bug#61066)

	Inlay hints are small text annotations to specific parts of the whole
	buffer, not unlike diagnostics, but designed to help readability
	instead of indicating problems.  For example, a C++ LSP server can
	serve hints about positional parameter names in function calls and a
	variable's automatically deduced type.  Emacs can display these hints
	in many little 0-length overlays with an 'before-string property, thus
	helping the user remember those types and parameter names.

	Since inlay hints are potentially a large amount of data to request
	from the LSP server, the implementation strives to be as parsimonious
	as possible with these requests.

	So, by default, inlay hints are only requested for the visible
	portions of the buffer across windows showing this buffer.  This is
	done by leveraging the 'window-scroll-functions' variable, making for
	a reasonably complex implementation involving per-window timers.  When
	scrolling a window, it may take a short amount of time for inlay hints
	to "pop in".  The new user variable 'eglot-lazy-inlay-hints' can be
	used to exert some control over this.

	Specifically, if the variable's value is set to 'nil', then inlay
	hints are greedily fetched for the whole buffer every time a change
	occurs.  This is a much simpler mode of operation which may avoid
	problems, but is also likely much slower in large buffers.

	Also, because the inlay feature is probably visually surprising to
	some, it is turned OFF by default, which is not the usual practice of
	Eglot (at least not when the necessary infrastructure is present).
	This decision may be changed soon.  Here's a good one-liner for
	enabling it by default in every Eglot-managed buffer:

	   (add-hook 'eglot-managed-mode-hook #'eglot-inlay-hints-mode)

	I haven't tested inlay hints extensively across many LSP servers, so I
	would appreciate any testing, both for functional edge cases and
	regarding performance.  There are possibly more optimization
	opportunities in the "lazy" mode of operation, like more aggressively
	deleting buffer overlays that are not in visible parts of the buffer.

	Though I ended up writing this one from scratch, I want to thank
	Dimitry Bolopopsky <dimitri@belopopsky.com> and Chinmay Dala
	<dalal.chinmay.0101@gmail.com> for suggestions and early patches.

	* lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Define
	InlayHint.
	(eglot-client-capabilities): Announce 'inlayHint' capability.
	(eglot-ignored-server-capabilities): Add :inlayHintProvider.
	(eglot--document-changed-hook): New helper hook.
	(eglot--after-change): Use it.
	(eglot-inlay-hint-face, eglot-type-hint-face)
	(eglot-parameter-hint-face): New faces.
	(eglot--update-hints-1, eglot--inlay-hints-after-scroll)
	(eglot--inlay-hints-fully, eglot--inlay-hints-lazily): New helpers.
	(eglot-lazy-inlay-hints): New user variable.
	(eglot-inlay-hints-mode): New minor mode.
	(eglot--maybe-activate-editing-mode): Try to activate
	eglot-inlay-hints-mode.
	(eglot--before-change): Remove overlays immediately in the
	area being changed.
	(eglot--managed-mode-off): Remove overlays.

	* doc/misc/eglot.texi (Eglot Features): Mention inlay hints.
	(Eglot Variables): Mention eglot-lazy-inlay-hints.

2023-02-22  João Távora  <joaotavora@gmail.com>

	Eglot: run eglot-managed-mode-hook after LSP didOpen

	This allows using the hook for interacting with the LSP server using
	the current buffer as the subject of that interaction ("document" in
	LSP parlance).

	* lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode):
	Run eglot-managed-mode-hook here.
	(eglot--managed-mode): Not here.

2023-02-22  João Távora  <joaotavora@gmail.com>

	Eglot: restore eldoc-documentation-functions on shutdown

	* lisp/progmodes/eglot.el (eglot--managed-mode): Restore
	eldoc-documentation-functions when shutting down eglot.

2023-02-22  João Távora  <joaotavora@gmail.com>

	Eglot: simplify capability-checking code

	* lisp/progmodes/eglot.el (eglot--server-capable-or-lose): New helper.
	(eglot--signal-textDocument/willSave)
	(eglot--signal-textDocument/didSave): Tweak docstring.
	(eglot--workspace-symbols, xref-backend-identifier-at-point)
	(eglot-format, eglot-completion-at-point, eglot-rename)
	(eglot-code-actions): Use new eglot--server-capable-or-lose.

2023-02-22  João Távora  <joaotavora@gmail.com>

	Eglot: go back to setting eldoc-documentation-strategy again

	This commits reverts part of

	   commit e83c78b8c7784254c2c6f043530ab325c2fa7f16
	   Author: João Távora <joaotavora@gmail.com>
	   Date:   Mon Feb 20 22:43:50 2023 +0000

	       Eglot: respect user's Eldoc configuration by default

	In that commit, I did what many longstanding issues and users were
	suggesting and removed Eglot's override of two Eldoc user
	configuration variables.

	I verified that Eglot's behavior would stay mostly unaltered but my
	tests were very incomplete.  In short there is no way that Eglot can
	work acceptably with the default setting of
	'eldoc-documentation-strategy', which is
	'eldoc-documentation-default'.  So it must be changed, either globally
	or locally in Eglot's minor mode.

	This is true for any situation where both synchronous and asynchronous
	documentation sources are present.  In Eglot's case there are two
	asynchronous sources which have more importance than the synchronous
	source.  So any other strategy except the
	'eldoc-documentation-default' makes sense.

	* lisp/progmodes/eglot.el (eglot--managed-mode): Set
	eldoc-documentation-strategy to eldoc-documentation-compose.

2023-02-22  F. Jason Park  <jp@neverwas.me>

	Yield to erc-move-to-prompt before unhiding prompt

	* lisp/erc/erc-backend.el (erc--hide-prompt): Change hook depth from 0
	to 91 to allow the `move-to-prompt' module to do its thing.  This
	feature was added by bug#54826 and first appeared in Emacs 29.
	* lisp/erc/erc-common.el (erc-server-user): Remove erroneous comment.
	The `buffers' field is a list of buffers.
	* test/lisp/erc/erc-tests.el (erc-hide-prompt): Use `erc--target'
	instead of `erc-default-recipients' because this is new code.

2023-02-22  Augusto Stoffel  <arstoffel@gmail.com>

	* lisp/progmodes/python.el (python--import-sources): Fix regexp (bug#61648)

2023-02-22  Manuel Giraud  <manuel@ledu-giraud.fr>

	Do not error out on non image file (bug#61639)

	* lisp/image/image-dired.el
	(image-dired-display-thumbs): Do not insert non image file and do not
	display image-dired buffer if it is empty.

2023-02-22  Eli Zaretskii  <eliz@gnu.org>

	Explain effect of variable-pitch fonts on fill-column

	* doc/emacs/text.texi (Fill Commands):
	* doc/emacs/display.texi (Displaying Boundaries):
	* lisp/display-fill-column-indicator.el
	(display-fill-column-indicator-mode): Document caveats of using
	variable-pitch fonts with 'fill-column' and its indicator.
	(Bug#61677)

2023-02-22  Eli Zaretskii  <eliz@gnu.org>

	Avoid division by zero in get_narrowed_* functions

	* src/xdisp.c (get_narrowed_width, get_narrowed_len): Return at
	least 1 as the value.  (Bug#61704)

2023-02-21  Martin Rudalics  <rudalics@gmx.at>

	* etc/NEWS: Mention new buffer display action alist entries

2023-02-21  Eli Zaretskii  <eliz@gnu.org>

	Fix build --without-xdbe

	* src/xterm.c (x_end_cr_clip, handle_one_xevent): Condition
	double-buffering code on HAVE_XDBE.  (Bug#61667)

2023-02-21  Robert Pluim  <rpluim@gmail.com>

	Improve dnd-direct-save-remote-files docstring

	* lisp/dnd.el (dnd-direct-save-remote-files): Reword.

2023-02-21  Robert Pluim  <rpluim@gmail.com>

	Add 'process-status' to process shortdoc

	* lisp/emacs-lisp/shortdoc.el (process): Add 'process-status'.

2023-02-21  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Improve 5d0b45cd67b

2023-02-21  Robert Pluim  <rpluim@gmail.com>

	Improve text about deleting windows

	* doc/emacs/windows.texi (Change Window): Improve grammar around
	'delete-window-choose-selected'.

2023-02-21  Robert Pluim  <rpluim@gmail.com>

	Make 'emacs-news-cycle-tag' work at all levels

	* lisp/textmodes/emacs-news-mode.el (emacs-news-cycle-tag): Search for
	a heading starting with 2 or more '*' rather than exactly 3.
	* test/lisp/textmodes/emacs-news-mode-resources/cycle-tag.erts
	(Point-Char): Add tests for 2 and 4 '*' levels.

2023-02-21  Mattias Engdegård  <mattiase@acm.org>

	Repair mistake in a previous edmacro-sanitize-string change

	* lisp/edmacro.el (edmacro-sanitize-for-string):
	This condition should not have been 'repaired' but removed altogether.
	Do so now, fixing bug#61647.

	Reported by Eduardo Ochs.

	(cherry picked from commit 4eefadad0670ad1c3da2505d734e528d54c76bef)

2023-02-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	regex-emacs.c: Reduce the use of backtracking a bit further

	bug#61514 exhibited some undesirable backtracking in a case where
	it's easy to avoid it by making `mutually_exclusive_p` just a bit
	more careful.

	* src/regex-emacs.c (mutually_exclusive_p): Handle `on_failure_jump`s.

	* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
	Add a few tests.

2023-02-20  João Távora  <joaotavora@gmail.com>

	Eglot: respect user's Eldoc configuration by default

	This change addresses the problems reported in many Elglot reports
	dating back to early 2021 at least:

	  https://github.com/joaotavora/eglot/issues/648
	  https://github.com/joaotavora/eglot/issues/894
	  https://github.com/joaotavora/eglot/issues/920
	  https://github.com/joaotavora/eglot/issues/1031
	  https://github.com/joaotavora/eglot/issues/1171

	In one form or another, the reports point out that the multiple pieces
	of information about the "thing at point" made available by the LSP
	server are not all being considered by the ElDoc system.

	The reason for this is Eglot setting/trampling the variables
	'eldoc-documentation-strategy' and 'eldoc-documentation-functions' in
	its minor more entry function.

	The reason it did that is historical and is partially described in the
	issues above.  But, evidently, it never made much sense, because so
	many people want to override it, which requires setting
	'eldoc-documentation-strategy' to the non-default value
	'eldoc-documentation-compose'.

	The problem was made worse by the fact that setting it as usual in
	either the Customize menu or their init file didn't work, requiring a
	fairly complex Elisp snippet.  That is now solved as of this commit.

	If the user does not do any setting, then Eglot works basically the
	same as before (i.e. shows only one piece of information).

	It is arguable that the default value for
	'eldoc-documentation-strategy' should change globally to
	'eldoc-documentation-compose', but that has other subtle implications
	and is not part of this commit.

	* lisp/progmodes/eglot.el (eglot--managed-mode): Don't set Eldoc
	variables greedily.

2023-02-20  Andrea Corallo  <akrl@sdf.org>

	Make the native compiler always use `make-temp-file' for temporary files

	* src/comp.c (CALL4I): Define macro.
	(Fcomp__compile_ctxt_to_file): Use `make-temp-file' instead of
	`make-temp-file-internal'.
	* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Likewise.

2023-02-20  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.3.7-216-gfe40342

2023-02-20  Daniel Martín  <mardani29@yahoo.es>

	Add declaration_list to c-ts-common-indent-type-regexp-alist

	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Consider a
	"declaration_list" a block. (Bug#61635)
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts (Code): Add a
	test case.

2023-02-20  Theodor Thornhill  <theo@thornhill.no>

	Typescript-ts-mode: Add switch case handling

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): New rules.

2023-02-20  Theodor Thornhill  <theo@thornhill.no>

	Fix object initializer for csharp-mode (bug#61541)

	* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Make sure
	we check the openers as well as closers.

2023-02-20  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.1-34-geea8da

2023-02-19  Yuan Fu  <casouri@gmail.com>

	Improve tree-sitter indent anchor prev-adaptive-prefix (bug#61314)

	Now prev-adaptive-prefix looks at the current line and checks if it
	begins with a prefix itself.  If it does, prev-adaptive-prefix tries
	to place the anchor before the prefix on the previous line, rather
	than after it.

	 - prev line
	 - this line -> This line starts with a "-", i.e., begins with a
	                prefix, so we place the anchor at the beginning of the
	                 "-" of the previous line, rather than after it

	 - prev line
	   this line -> This line doesn't start with a prefix, so the anchor
	                is placed after the previous line's "-".

	* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
	* lisp/treesit.el:
	(treesit-simple-indent-presets): Add local variable
	this-line-has-prefix, base what anchor to return on the value of
	this-line-has-prefix and whether the prev line has a prefix.

2023-02-19  Theodor Thornhill  <theo@thornhill.no>

	Adjust jsx indentation

	We can use the fact that 'treesit-indent-1' uses 'treesit-node-on'
	when on a whitespace to set the actual current node as parent.  Now we
	can correctly indent the 'jsx_text' nodes.  We also add some more
	electric-indent-chars so that auto-indenting of jsx behaves a little
	more fluently.

	* lisp/progmodes/js.el (js--treesit-indent-rules): Add new rules.
	(js-ts-mode): Add more indent-chars.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): Add new rules.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-base-mode): Add more indent-chars and layout rules.

2023-02-19  Theodor Thornhill  <theo@thornhill.no>

	Cleanup preproc indent for c-ts-mode (bug#61558)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make sure we
	indent to great-grand-parent if inside an #ifdef...#endif block.  If
	grand-parent is root node, then don't indent one step.
	(c-ts-mode--preproc-offset): New helper anchor function to calculate
	indent offset.

2023-02-19  Theodor Thornhill  <theo@thornhill.no>

	Add comment style toggle for c-ts-mode (bug#61550)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode-toggle-comment-style): New
	command.
	(c-ts-base-mode-map): Add binding.
	(c-ts-mode-set-modeline): New function.
	(c-ts-mode): Set modeline.
	(c++-ts-mode): Set modeline.

2023-02-19  Juri Linkov  <juri@linkov.net>

	* lisp/simple.el (choose-completion): Check for completion-in-region-mode.

	Don't use base-affixes when completion-use-base-affixes is non-nil
	in completion-in-region-mode (bug#61535).

2023-02-19  Dmitry Gutov  <dgutov@yandex.ru>

	rust-ts-mode--font-lock-settings: Avoid the explicit 'default' face

	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--fontify-scope)
	(rust-ts-mode--fontify-tail): New functions.
	(rust-ts-mode--font-lock-settings): Use them instead of a lot of
	more complex queries (bug#61302).  Thus avoid having to create
	block fontification by other features using the 'default' face.
	Replace the catch-all query for 'variable' with an enumeration of
	possible parent nodes.

2023-02-19  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/progmodes/xref.el: Bump the version.

2023-02-19  Dmitry Gutov  <dgutov@yandex.ru>

	xref--insert-xrefs: Use 'shadow' for the line number colon

	* lisp/progmodes/xref.el (xref--insert-xrefs): Use face 'shadow' for
	the line number colon instead of continuing it face (bug#61340).

	(cherry picked from commit d6d25a3c221e566de4df5319181e9ba9a8df285e)

2023-02-19  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/xref.el (xref--insert-xrefs): Remove extra space (bug#61340).

	(cherry picked from commit 643a11c6e5defc0a34da1a53b64aa1e097298923)

2023-02-19  Mattias Engdegård  <mattiase@acm.org>

	Backport: Fix xref-clear-marker-stack refactoring mistake

	* lisp/progmodes/xref.el (xref-clear-marker-stack):
	Clear the history correctly.  Changing a lexical variable has no effect.

	(cherry picked from commit dfdc0f5fb7b10e737c3c8e2bdb1eb873a1e91bd7)

2023-02-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f5a99945b6f ; Update ChangeLog for Emacs 28.3
	f7bd5ac5521 Update HISTORY for Emacs 28.3

	# Conflicts:
	#	etc/NEWS

2023-02-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	4a77fcb1478 Update ChangeLog and AUTHORS for Emacs 28.3

2023-02-19  Manuel Giraud  <manuel@ledu-giraud.fr>

	More doc on image-dired-dired-* (bug#61624)

	* doc/emacs/dired.texi (Image-Dired): Some fixes and more
	documentation about image-dired-dired-* commands.

2023-02-19  Theodor Thornhill  <theo@thornhill.no>

	Eglot: improve treatment of completion items without :sortText (bug#61532)

	Previously, defaulting to the empty string put candidates without
	:sortText to the top of the list.  since string-lessp is safe with nil
	arguments, this makes them sort to the end instead.

	* lisp/progmodes/eglot.el (eglot-completion-at-point): Simplify.

2023-02-19  Eli Zaretskii  <eliz@gnu.org>

	Fix invocation of File->Close from the menu bar

	* lisp/simple.el (kill-buffer--possibly-save): Don't request
	LONG-FORM from 'read-multiple-choice' if GUI dialog should be
	used.
	* lisp/emacs-lisp/rmc.el (read-multiple-choice): Doc fix.
	(read-multiple-choice--short-answers): Don't append "?" to
	CHOICES and don't display the prompt in the echo area if GUI
	dialog is used.  Use 'use-dialog-box-p'.  (Bug#61553)

2023-02-19  Manuel Giraud  <manuel@ledu-giraud.fr>

	Update thumbnail buffer's header more

	* lisp/image/image-dired.el (image-dired-display-thumbs): Call
	image-dired--update-header-line.  (Bug#61508)

2023-02-18  Dmitry Gutov  <dgutov@yandex.ru>

	(treesit-query-validate): Fix reusing the output buffer

	* lisp/treesit.el (treesit-query-validate): Fix the "Buffer is
	read-only" error when an output buffer already exists.

2023-02-18  Dmitry Gutov  <dgutov@yandex.ru>

	(rust-ts-mode--font-lock-settings): Highlight closure parameters

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--font-lock-settings): Highlight closure parameters.

2023-02-18  Andrea Corallo  <akrl@sdf.org>

	* Fix `native-comp-enable-subr-trampolines' semantic

	* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Interpret
	`native-comp-enable-subr-trampolines' relative to
	`invocation-directory'.

2023-02-18  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of 'just-one-space' and 'delete-horizontal-space'

	* lisp/simple.el (just-one-space, delete-horizontal-space):
	Mention the effect of prefix argument.  (Bug#61609)

2023-02-18  martin rudalics  <rudalics@gmx.at>

	Fix 'display-buffer-use-least-recent-window'

	* src/window.c (Fwindow_use_time): Doc fix.
	(Fwindow_bump_use_time): Bump use time of the selected window as
	well.  Doc fix.

	* lisp/window.el (display-buffer-avoid-small-windows): Remove.
	All users changed.
	(window--display-buffer): Bump window use time when requested.
	(display-buffer--lru-window): New function.
	(display-buffer-use-some-window): Use it.
	(display-buffer-use-least-recent-window): Rewrite and enhance doc
	string.

	* doc/lispref/windows.texi (Selecting Windows)
	(Buffer Display Action Functions, Buffer Display Action Alists)
	(The Zen of Buffer Display): Improve and update documentation of
	window selection and display facilities.

2023-02-18  kobarity  <kobarity@gmail.com>

	Fix point moving when calling python-shell-send-region

	* lisp/progmodes/python.el (python-shell-buffer-substring): Add
	`save-excursion' to prevent the point from moving.
	* test/lisp/progmodes/python-tests.el (python-tests-should-not-move):
	New helper function to assert that point does not move while calling a
	function.
	(python-shell-buffer-substring-*): Use
	`python-tests-should-not-move'. (Bug#61463)

2023-02-18  Omar Polo  <op@omarpolo.com>

	(project-try-vc): Remove unused defvar/require

	* lisp/progmodes/project.el (project-try-vc):
	Remove unused defvar/require (bug#61577).

2023-02-18  Stefan Kangas  <stefankangas@gmail.com>

	Delete redundant question from Gnus FAQ

	* doc/misc/gnus-faq.texi (FAQ 1-2): Delete redundant question.
	(FAQ 1-1, FAQ 1-3): Adjust accordingly.

2023-02-18  Stefan Kangas  <stefankangas@gmail.com>

	Slightly improve hashcash documentation

	* lisp/mail/hashcash.el: Improve Commentary.
	(hashcash-program):
	* lisp/gnus/message.el (message-generate-hashcash): Improve
	docstring.

2023-02-18  Eli Zaretskii  <eliz@gnu.org>

	Fix cursor motion when there's line-prefix and display string at BOL

	* src/xdisp.c (move_it_in_display_line_to): Handle 'line-prefix' and
	'wrap-prefix' when the screen line has a display string at its
	beginning.  (Bug#61580)

2023-02-18  Yuan Fu  <casouri@gmail.com>

	Fix comment in treesit_record_change (bug#61369)

	Turns out the previous commit message and comment is not entirely
	correct: the old behavior is in fact wrong, not just "correct but has
	problems".

	Here is why the old code is wrong:

	|visible range|     -> markup for visible range

	updated range       -> markup for updated range
	-------------

	First we have some text

	|aaaaaa|

	Now we insert something at the beginning, because we clip
	new_end_offset to visible_end, out of eight b's inserted, only the
	first six are known to tree-sitter.

	|bbbbbbbbaaaa|aa  start: 0, old_end: 0, new_end: 6
	 ------

	In treesit_sync_visible_region, we sync up visible region, but the two
	missing b's are not in the updated range.

	|bbbbbbbbaaaaaa|  start: 12, old_end: 12, new_end: 14
	             --

	The old behavior not only is wrong, but also doesn't make much sense.

	* src/treesit.c (treesit_record_change): Update comment.

2023-02-18  Stefan Kangas  <stefankangas@gmail.com>

	Spell out RPN abbreviation in Calc manual intro

	* doc/misc/calc.texi (What is Calc, Demonstration of Calc)
	(RPN Tutorial): Spell out "Reverse Polish notation" abbreviation.

2023-02-18  Eli Zaretskii  <eliz@gnu.org>

	Fix some uses of 'use-dialog-box'

	* lisp/frame.el (display-mouse-p): Fix return value on MS-Windows
	in batch invocations.
	* lisp/hi-lock.el (hi-lock-unface-buffer): Don't consider
	'last-nonmenu-event' being nil as a mouse event, for the purpose
	of using dialog boxes.

2023-02-18  Eli Zaretskii  <eliz@gnu.org>

	Fix hi-lock-tests when 'use-dialog-box' is non-nil

	* test/lisp/hi-lock-tests.el (hi-lock-case-fold)
	(hi-lock-unhighlight): Bind 'use-dialog-box' to nil.

2023-02-18  Eli Zaretskii  <eliz@gnu.org>

	Fix regression due to change in face sort order by 'face-list'

	* lisp/faces.el (x-create-frame-with-faces): Undo reversing of
	the face list, which is no longer necessary, since 'face-list's
	sorting order has been reversed recently.  (Bug#61521)

2023-02-17  Po Lu  <luangruo@yahoo.com>

	* lisp/files.el (file-equal-p): Work around Haiku stat bug.

2023-02-17  Dmitry Gutov  <dgutov@yandex.ru>

	(project-vc-backend-markers-alist): Add entry for vc-got

	* lisp/progmodes/project.el (project-vc-backend-markers-alist):
	Add entry for vc-got (bug#61577).  Bump the version.

2023-02-17  Dmitry Gutov  <dgutov@yandex.ru>

	project.el: Extract backend->marker association for a defvar

	* lisp/progmodes/project.el (project-vc-backend-markers-alist):
	Extract from 'project-try-vc'.
	(project-try-vc): Update accordingly (bug#61577).

2023-02-17  Yuan Fu  <casouri@gmail.com>

	Don't completely clip into visible range in treesit_record_change

	(Bug#61369)

	From
	    min (visible_end, max (visible_beg, new_end_byte)) - visible_beg
	to
	    max (visible_beg, new_end_byte) - visible_beg

	* src/treesit.c (treesit_record_change): We don't clip the new end
	into the visible range anymore.  If you think of it, when inserting in
	a narrowed region, the visible region is always extended to
	accommodate more text, rather than pushing text at the end to keep the
	size of the visible region.

2023-02-17  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/treesit.el (treesit-node-at): Update docstring (bug#61529).

2023-02-17  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/calc/calc.el (calc-mode): Improve docstring.

2023-02-17  Stefan Kangas  <stefankangas@gmail.com>

	Bump Emacs version to 28.3

	* README:
	* configure.ac:
	* msdos/sed2v2.inp:
	* nt/README.W32: Bump Emacs version to 28.3.

2023-02-17  Stefan Kangas  <stefankangas@gmail.com>

	Update ChangeLog and AUTHORS for Emacs 28.3

	* ChangeLog.3:
	* etc/AUTHORS: Update for Emacs 28.3.

2023-02-17  Stefan Kangas  <stefankangas@gmail.com>

	Update HISTORY for Emacs 28.3

2023-02-17  Stefan Kangas  <stefankangas@gmail.com>

	Update NEWS for Emacs 28.3

	* etc/NEWS: Update for Emacs 28.3.

2023-02-17  Andrea Corallo  <akrl@sdf.org>

	Merge 'emacs-29' into 'feature/inhibit-native-comp-cleanup'

2023-02-17  Eli Zaretskii  <eliz@gnu.org>  (tiny change)

	Fix order of faces in 'face-list'

	* lisp/faces.el (frame-face-alist, face-list): Sort faces in
	decreasing order of face IDs.  Patch by Brennan Vincent
	<brennan@umanwizard.com>.  (Bug#61521)

2023-02-17  Eli Zaretskii  <eliz@gnu.org>

	Allow 'icon-title-format' to have the value t

	* src/xdisp.c (gui_consider_frame_title, syms_of_xdisp): If the
	value of 'icon-title-format' is t, use 'frame-title-format'
	instead.  (Bug#61496)

	* etc/NEWS:
	* doc/lispref/frames.texi (Frame Titles): Document the new
	handling of the value t.
	(Basic Parameters): Fix the documentation of the 'title' and
	'name' frame parameters.

2023-02-16  Theodor Thornhill  <theo@thornhill.no>

	Add electric indent for preproc directives

	It looks like there are few if no other cases where we get this
	particular error in the AST than with insertion of '#'.

	Consider:

	```
	int
	main()
	{
	  |
	}
	```

	If we only add '#' the AST yields (ERROR (ERROR)), which we can
	exploit to hook onto electric indent.  The end result should be the
	hashtag anchored to column 0.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New rule.
	(c-ts-base-mode): Add # to electric-indent-chars.

2023-02-16  Robert Pluim  <rpluim@gmail.com>

	Rename 'emacs-news-toggle-tag' to 'emacs-news-cycle-tag'

	* lisp/textmodes/emacs-news-mode.el (emacs-news-cycle-tag): Renamed
	from 'emacs-news-toggle-tag'.
	(emacs-news-mode-map, emacs-news-mode-menu): Use new name.
	* test/lisp/textmodes/emacs-news-mode-resources/cycle-tag.erts:
	Renamed from "toggle-tag.erts".
	* test/lisp/textmodes/emacs-news-mode-tests.el (emacs-news-cycle-tag):
	Rename test from 'emacs-news-toggle-tag', and call
	'emacs-news-cycle-tag' with new resource file name.

2023-02-16  Robert Pluim  <rpluim@gmail.com>

	Add menu to news-mode

	* lisp/textmodes/emacs-news-mode.el (emacs-news-mode-map): Add binding
	for 'emacs-news-delete-temporary-markers'.
	(emacs-news-mode-menu): Add menu for common actions.

2023-02-16  Philip Kaludercic  <philipk@posteo.net>

	Attempt to recognize if a VC package has no Elisp files

	* lisp/emacs-lisp/package-vc.el (package-vc-non-code-file-names): Add
	new variable used to avoid false-positives.
	(package-vc--unpack): Recursively search for .el files excluding the
	ones listed in 'package-vc-non-code-file-names', offering to abort the
	installation if none are found.

2023-02-15  Eli Zaretskii  <eliz@gnu.org>

	Fix mule-tests under en_US.UTF-8 locale

	* test/lisp/international/mule-tests.el (sgml-html-meta-utf-8):
	Accept also utf-8-unix/dos/whatever.  (Bug#61534)

	* lisp/international/mule.el
	(sgml-html-meta-auto-coding-function): Fix comparison when
	buffer-file-coding-system is of type 'charset'.

2023-02-15  Theodor Thornhill  <theo@thornhill.no>

	Move block closer above declaration_list rule (bug#61531)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Move rule
	above the previous rule.

2023-02-15  Eli Zaretskii  <eliz@gnu.org>

	Minor improvements in c-ts-mode and docs

	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode-map): Add a binding
	for comment-region.

	* doc/emacs/programs.texi (C Indent): Mention "C-u TAB".

2023-02-15  Theodor Thornhill  <theo@thornhill.no>

	Add super node as a keyword

	* lisp/progmodes/java-ts-mode.el
	(java-ts-mode--font-lock-settings): Add new node.

2023-02-15  Stefan Kangas  <stefankangas@gmail.com>

	Delete perplexing paragraph from Gnus manual

	* doc/misc/gnus.texi (Exiting Gnus): Delete a confusing paragraph,
	that may or may not have been intended as a joke.  (Bug#61325)

2023-02-14  ~kby  <kby@tilde.team>  (tiny change)

	Eglot: check server capability before sending didSave (bug#61478)

	* lisp/progmodes/eglot.el (eglot--signal-textDocument/didSave): check
	server capability.

2023-02-14  Randy Taylor  <dev@rjt.dev>

	Fix rust-ts-mode type and module highlighting (Bug#61302)

	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
	Specify import queries to avoid clashing with scoped identifiers in
	the code.  Highlight attributes with font-lock-preprocessor-face.

2023-02-14  Dmitry Gutov  <dgutov@yandex.ru>

	rust-ts-mode: Highlight variable reassignments

	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode):
	New treesit font-lock feature: 'assignment' (bug#61302).
	(rust-ts-mode--fontify-pattern): Remove the node lookup step.
	(rust-ts-mode--font-lock-settings): Update variable declaration
	queries to match the 'pattern' child node right away.  Add
	highlights for 'assignment.

2023-02-14  Gregory Heytings  <gregory@heytings.org>

	Improve backward compatibility of save-restriction

	* src/editfns.c (save_restriction_save_1): Renamed from
	'save_restrictions_save'.  Make it static.
	(save_restriction_restore_1): Renamed from
	'save_restriction_restore'.  Make it static.
	(save_restriction_restore): New function, combining
	'save_restriction_save_1' and 'narrowing_locks_save'.
	(save_restriction_save): New function, combining
	'save_restriction_restore_1' and 'narrowing_locks_restore'.
	(Fsave_restriction): Restore the previous code.
	(narrowing_locks_save, narrowing_locks_restore): Make them static.

	* src/lisp.h: Remove two functions that are not externally visible
	anymore.

	* src/comp.c (helper_save_restriction): Restore the previous code.

	* src/bytecode.c (exec_byte_code): Restore the previous code.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-save-restriction):
	Decrement unbinding count.

2023-02-14  Theodor Thornhill  <theo@thornhill.no>

	Don't indent template_string contents (bug#61503)

	* lisp/progmodes/js.el (js--treesit-indent-rules): Add new rule.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): Add new rule.

2023-02-14  Jostein Kjønigsen  <jostein@kjonigsen.net>

	csharp-ts-mode: fontify compiler directives (bug#61512)

	lisp/progmodes/csharp-mode.el: Add tree-sitter-queries for known C#
	compiler-directives.

2023-02-14  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.3.7-209-gdab1dfa

2023-02-14  Andrea Corallo  <akrl@sdf.org>

	* Generate trampolines in a temporary directory if no other option is viable

	* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Use
	temporary file if no other option is viable.

2023-02-13  Eli Zaretskii  <eliz@gnu.org>

	Rename with/without-narrowing to with/without-restriction

	* doc/lispref/commands.texi:
	* doc/lispref/display.texi:
	* doc/lispref/positions.texi:
	* etc/NEWS:
	* lisp/subr.el:
	* src/buffer.c:
	* src/editfns.c:
	* src/keyboard.c:
	* src/xdisp.c:
	* test/src/buffer-tests.el: Rename with-narrowing and
	without-narrowing to with-restriction and without-restriction.
	Likewise with internal--with-narrowing and
	internal--without-narrowing.  All callers and documentation
	changed.

2023-02-13  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el: Rename internal function and variable (bug#60980)

	(repeat--transient-exitfun): Rename internal variable from
	'repeat-exit-function'.
	(repeat--clear-prev): Rename internal function from
	'repeat--exit'.

2023-02-13  Andrea Corallo  <akrl@sdf.org>

	* Fix previous change

	* lisp/emacs-lisp/generate-lisp-file.el (generate-lisp-file-trailer):
	Fix previous change b6e2799aa1c.

2023-02-13  Andrea Corallo  <akrl@sdf.org>

	Rename native-comp-deferred-compilation-deny-list

		* lisp/emacs-lisp/comp.el (native-comp-jit-compilation-deny-list)
		(native-compile-async-skip-p): Rename
		native-comp-deferred-compilation-deny-list into
		native-comp-jit-compilation-deny-list.
		(native-comp-deferred-compilation-deny-list): Mark it obsolete.

2023-02-13  Andrea Corallo  <akrl@sdf.org>

	Rename native-comp-deferred-compilation into native-comp-jit-compilation

		* src/comp.c (maybe_defer_native_compilation, syms_of_comp):
		Rename native-comp-deferred-compilation into
		native-comp-jit-compilation.

		* lisp/subr.el (native-comp-deferred-compilation): Mark
		native-comp-deferred-compilation as obsolete.

		* lisp/startup.el (native-comp-deferred-compilation)
		(normal-top-level): Rename native-comp-deferred-compilation into
		native-comp-jit-compilation.

		* lisp/progmodes/elisp-mode.el
		(emacs-lisp-native-compile-and-load): Likewise.

		* lisp/emacs-lisp/generate-lisp-file.el
		(generate-lisp-file-trailer): Likewise.

2023-02-13  Andrea Corallo  <akrl@sdf.org>

	Rename comp-enable-subr-trampolines into native-comp-enable-subr-trampolines

		* src/data.c (Ffset): Rename comp-enable-subr-trampolines into
		native-comp-enable-subr-trampolines.

		* src/comp.c (syms_of_comp): Likewise.

		* lisp/subr.el (comp-enable-subr-trampolines): Make
		comp-enable-subr-trampolines obsolete.

		* lisp/startup.el (native-comp-enable-subr-trampolines)
		(normal-top-level): Rename comp-enable-subr-trampolines into
		native-comp-enable-subr-trampolines.

		* lisp/loadup.el (dump-mode): Likewise.

		* lisp/emacs-lisp/comp.el (comp-subr-trampoline-install)
		(comp--trampoline-abs-filename): Likewise.

2023-02-13  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (native-comp-never-optimize-functions): Improve doc

2023-02-13  Andrea Corallo  <akrl@sdf.org>

	Support `comp-enable-subr-trampolines' as string value

	* src/comp.c (syms_of_comp): Update `comp-enable-subr-trampolines'.

	* lisp/emacs-lisp/comp.el (native-comp-never-optimize-functions)
	(comp--trampoline-abs-filename): Support
	`comp-enable-subr-trampolines' string value.

	* src/data.c (Ffset): Use Vcomp_enable_subr_trampolines now.

2023-02-13  Gregory Heytings  <gregory@heytings.org>

	Merge branch 'scratch/fix-locked-narrowing'

2023-02-13  Andrea Corallo  <akrl@sdf.org>

	* Some more `inhibit-native-compile' clean-up

	* lisp/emacs-lisp/generate-lisp-file.el (generate-lisp-file-trailer):
	Use `native-comp-deferred-compilation'.

2023-02-13  Gregory Heytings  <gregory@heytings.org>

	Minor improvements to labeled narrowing

	* lisp/subr.el (internal--with-narrowing):
	(internal--without-narrowing): Remove unnecessary 'progn'.

	* etc/NEWS: Mention 'with-narrowing' in the entry about long
	lines.

	* doc/lispref/positions.texi (Narrowing): Fix typo.

	* doc/lispref/display.texi (Auto Faces): Use @pxref.

	* doc/lispref/commands.texi (Command Overview): Use @pxref.

2023-02-13  Andrea Corallo  <akrl@sdf.org>

	Revert "Add new variable 'inhibit-native-compilation'"

	This reverts commit 5fec9182dbeffa88cef6651d8c798ef9665d6681.

2023-02-13  Andrea Corallo  <akrl@sdf.org>

	Revert "Rename to inhibit-automatic-native-compilation"

	This reverts commit f97993ee667f9be7589825f3a4fbc095d6944ec6.

2023-02-13  Ulrich Müller  <ulm@gentoo.org>

	Fix spurious display of eclipses in Calendar

	* lisp/calendar/lunar.el (eclipse-check): Don't show an eclipse
	unless the phase is new moon or full moon. (bug#61460)
	* test/lisp/calendar/lunar-tests.el (lunar-test-eclipse-check)
	(lunar-test-phase-list): Update tests.

2023-02-12  Yuan Fu  <casouri@gmail.com>

	Fix indentation for closing bracket in c-ts-mode (bug#61398)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--indent-styles): Move the rule earlier.
	(c-ts-base-mode): Add move block type.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New tests.

2023-02-12  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.1-31-gaf1bb1

2023-02-12  Alan Mackenzie  <acm@muc.de>

	* src/.gdbinit (nextcons): Amend $.u.cdr to $.u.s.u.cdr (bug#61453).

	(cherry picked from commit dde023b63ab82c38d33815409de5552f5bf349d1)

2023-02-12  Theodor Thornhill  <theo@thornhill.no>

	Add lambda_expression to c-ts-common-indent-type-regexp-alist

	* lisp/progmodes/java-ts-mode.el (java-ts-mode): Tweak regexp.

2023-02-12  Philip Kaludercic  <philipk@posteo.net>

	Tolerate missing elpa-packages.eld files

	* lisp/emacs-lisp/package-vc.el
	(package-vc--download-and-read-archives): Replace
	'condition-case-unless-debug' with a regular 'condition-case'.

	It appears a few people using third-party archives that don't serve
	package specifications have been having issues with package-vc, when
	toggle-on-error is enabled.  In their case, package-vc would raise an
	error in its first invocation, but it would go on working normally
	afterwards.  As this behavior is confusing and the user can't do much
	about a missing elpa-packages.eld to begin with, we satisfy ourselves
	with printing out a message and continuing on.

2023-02-12  Eli Zaretskii  <eliz@gnu.org>

	Avoid warning about 'load-path' in non-interactive sessions

	* lisp/startup.el (command-line): Emit the warning about
	'user-emacs-directory' in 'load-path' only in interactive
	sessions.  (Bug#61014)

2023-02-12  Ulrich Müller  <ulm@gentoo.org>

	Support webkit2gtk-4.1

	* configure.ac: Check for webkit2gtk API version 4.1 first, then
	fall back to 4.0.

2023-02-10  Gregory Heytings  <gregory@heytings.org>

	Save and restore the absence of narrowing locks

	* src/editfns.c (narrowing_locks_save): Return the buffer with a
	empty locks list when the current buffer has no narrowing locks.
	(narrowing_locks_restore): Remove the narrowing locks if the
	buffer had no narrowing locks.

2023-02-10  Tassilo Horn  <tsdh@gnu.org>

	bug-reference: prevent match-data clobbering (bug#61395)

	* lisp/progmodes/bug-reference.el (bug-reference-fontify): Wrap call
	to syntax-ppss in save-match-data since it can clobber our
	match-data (bug#61395).

2023-02-10  Yuan Fu  <casouri@gmail.com>

	Rename LIMIT to DEPTH in tree-sitter functions (bug#61231)

	I only changed the Lisp functions, internal functions are left
	unchanged.

	* doc/lispref/parsing.texi (Retrieving Nodes): Update manual.
	* src/treesit.c (Ftreesit_search_subtree)
	(Ftreesit_induce_sparse_tree): Change LIMIT to DEPTH.

2023-02-09  Yuan Fu  <casouri@gmail.com>

	Add 'live' property to treesit-node-check (bug#61235)

	* doc/lispref/parsing.texi (Accessing Node Information): Document.
	* src/treesit.c (treesit_parser_live_p): New function.
	(Ftreesit_node_check): Add 'live' property.
	* test/src/treesit-tests.el (treesit-node-api): Add tests.

2023-02-09  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.3.7-205-gb8ad0da

2023-02-09  Eli Zaretskii  <eliz@gnu.org>

	Fix 'rmail-summary-output'

	* lisp/mail/rmailsum.el (rmail-summary-output): Fix deletion of
	messages when 'rmail-output-reset-deleted-flag' is non-nil.
	(Bug#61380)

2023-02-09  Nicolas Martyanoff  <nicolas@n16f.net>

	lisp-mode: add docstring recognition for more common lisp symbols

	* lisp/emacs-lisp/lisp-mode.el (define-compiler-macro)
	(define-setf-expander, deftype): Add the 'doc-string-elt'
	property for proper docstring highlighting in Common Lisp.

2023-02-09  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.3.7-204-gecff8c2

2023-02-09  Eli Zaretskii  <eliz@gnu.org>

	Fix Scala entry in Eglot's DB of LSP servers

	* lisp/progmodes/eglot.el (eglot-server-programs): Support Scala
	LSP named "metals", in addition to "metals-emacs".  (Bug#61312)

2023-02-08  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Also don't reindent 'identifier' when inside ERROR

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	Also don't reindent 'identifier' when inside ERROR.

2023-02-08  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Fix indentation inside empty if/unless/case/def

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	Add new rule.

	* test/lisp/progmodes/ruby-ts-mode-tests.el
	(ruby-ts-indent-empty-if-else): New test.

2023-02-08  Gregory Heytings  <gregory@heytings.org>

	Add an extensive test for labeled (locked) narrowing

	* test/src/buffer-tests.el (test-labeled-narrowing): New test.

2023-02-08  Gregory Heytings  <gregory@heytings.org>

	Update the documentation about labeled (locked) narrowing

	* src/xdisp.c (syms_of_xdisp) <fontification-functions>: Update
	docstring.

	* src/keyboard.c (syms_of_keyboard) <pre-command-hook>:
	(syms_of_keyboard) <post-command-hook>: Update docstring.

	* src/editfns.c:
	(narrowing_locks): Explain why an alist is used instead of a
	buffer-local variable.
	(reset_outermost_narrowings): Point to recipes that demonstrate
	why it is necessary to restore the user narrowing bounds when
	redisplay starts.
	(Fwiden): Update docstring.
	(Fnarrow_to_region): Update docstring.
	(Finternal__lock_narrowing): Update docstring.
	(Finternal__unlock_narrowing): Update docstring.
	(Fsave_restriction): Update docstring.

	* src/buffer.c (syms_of_buffer)
	<long-line-optimizations-region-size>: Update docstring.
	(syms_of_buffer) <long-line-optimizations-bol-search-limit>:
	Update docstring.

	* lisp/subr.el (with-narrowing): Update docstring.
	(without-narrowing): Update docstring.

	* etc/NEWS: Mention the 'long-line-optimizations-region-size' and
	'long-line-optimizations-bol-search-limit' options.
	Announce the 'with-narrowing' and 'without-narrowing' forms.

	* doc/lispref/positions.texi (Narrowing): Update the documentation
	of 'narrow-to-region', 'widen' and 'save-restriction'.  Document
	the 'with-narrowing' and 'without-narrowing' special forms.

	* doc/lispref/display.texi (Auto Faces): Update the documentation.

	* doc/lispref/commands.texi (Command Overview): Document the fact
	that the buffer is narrowed around 'pre-command-hook' and
	'post-command-hook' when the buffer text includes very long lines.

2023-02-08  Gregory Heytings  <gregory@heytings.org>

	Rename two long line optimizations variables

	* src/buffer.c (syms_of_buffer): Rename two variables.

	* src/xdisp.c (get_locked_narrowing_begv):
	(get_locked_narrowing_zv):
	(handle_fontified_prop): Use the new names.

	* src/keyboard.c (safe_run_hooks_maybe_narrowed): Use the new
	names.

2023-02-08  Gregory Heytings  <gregory@heytings.org>

	Add specific symbols for narrowings

	* src/xdisp.c (syms_of_xdisp): Define symbol.
	(handle_fontified_prop): Use it.

	* src/keyboard.c (syms_of_keyboard): Define symbol.
	(safe_run_hooks_maybe_narrowed): Use it.

2023-02-08  Gregory Heytings  <gregory@heytings.org>

	Add 'without-narrowing' macro

	* lisp/subr.el (without-narrowing): New macro, companion (and
	almost identical) to 'with-narrowing'.

2023-02-08  Gregory Heytings  <gregory@heytings.org>

	Make 'narrowing-lock' and 'narrowing-unlock' internal

	* src/editfns.c (Finternal__lock_narrowing): Renamed from
	'narrowing-lock'.
	(Finternal__unlock_narrowing): Renamed from 'narrowing-unlock'.
	(unwind_narrow_to_region_locked):
	(narrow_to_region_locked):
	(syms_of_editfns): Use the new names.

	* lisp/subr.el (internal--with-narrowing): Use the new name.

2023-02-08  Gregory Heytings  <gregory@heytings.org>

	Fix 'save-restriction' for narrowing locks

	* src/editfns.c (narrowing_locks_save):
	(narrowing_locks_restore): Make them non-static.

	* src/lisp.h: Make them externally visible.

	* src/bytecode.c (exec_byte_code): Save and restore narrowing
	locks.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-save-restriction):
	Increment unbinding count.

	* src/comp.c (helper_save_restriction): Save and restore narrowing
	locks.

2023-02-08  LensPlaysGames  <lensplaysgames@gmail.com>  (tiny change)

	* lisp/iimage.el (iimage-mode-buffer): Handle multiple regexps.

	Go to the beginning of the buffer before searching every regexp in
	iimage-mode-image-regex-alist.

2023-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/edmacro.el (edit-kbd-macro): Fix thinko (bug#61333)

	Backported from commit 2273cdb40e1939f7c29a669f6a64e6a27738c1a5.

2023-02-07  Eli Zaretskii  <eliz@gnu.org>

	Fix crashes inside 'xfree' called from treesit.c

	* src/treesit.c (treesit_load_language): Always xstrdup 'c_name',
	to avoid crashes inside xfree.  (Bug#61351)

2023-02-06  Yuan Fu  <casouri@gmail.com>

	Make java-ts-mode use the c-ts-common-indent-type-regexp-alist

	* lisp/progmodes/java-ts-mode.el:
	(java-ts-mode): Setup c-ts-common-indent-type-regexp-alist.

2023-02-06  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indentation

	Sign, ok, there's another edge case: else if statements.  Because
	"else if" is usually implemented as just another if statement nested
	in the else branch, this creates additional levels that indentation
	needs to ignore.

	I converted c-ts-common-indent-block-type-regexp +
	c-ts-common-indent-bracketless-type-regexp into a new, more flexible
	variable, c-ts-common-indent-type-regexp-alist, to avoid adding yet
	more variables in order to recognize else and if statements.

	* lisp/progmodes/c-ts-common.el:
	(c-ts-common-indent-type-regexp-alist): New variable.
	(c-ts-common-indent-block-type-regexp)
	(c-ts-common-indent-bracketless-type-regexp): Remove variables.
	(c-ts-common--node-is): New function.
	(c-ts-common-statement-offset): Use the new variable, and add the
	"else if" special case.  Also merge the code of
	c-ts-mode--fix-bracketless-indent, because now the code is much more
	succinct.
	(c-ts-mode--fix-bracketless-indent): Merge into
	c-ts-common-statement-offset.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-base-mode): Setup c-ts-common-indent-type-regexp-alist.

	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.

2023-02-06  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indentation

	Turns out I shouldn't have removed the explicit rules.  Anyway, now it
	indents properly.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add rules.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add tests

2023-02-06  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indentation (bug#61291)

	Fix indentation for the semicolon in

	while (str_a[i++] == str_b[j++])
	  ;

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New rule.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.

2023-02-06  Dmitry Gutov  <dgutov@yandex.ru>

	(eglot-completion-at-point): Return correct values in :company-kind

	* lisp/progmodes/eglot.el (eglot-completion-at-point): Return the
	correct values in :company-kind for "EnumMember" and "TypeParameter".
	The convention is to use kebab case rather than plain downcasing.
	Reported in https://github.com/company-mode/company-mode/issues/1370.

2023-02-06  Mattias Engdegård  <mattiase@acm.org>

	Tighten and simplify typescript compilation-mode regexps (bug#61104)

	* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
	Tighten regexps and simplify.  Translate to rx.
	* etc/compilation.txt: Add examples.

	In collaboration with Jostein Kjønigsen.

2023-02-06  Tassilo Horn  <tsdh@gnu.org>

	Clarify bug-reference-auto-setup-functions docstring.

	* lisp/progmodes/bug-reference.el (bug-reference-auto-setup-functions):
	Add clarification to docstring that this variable is for packages, not
	for users.

2023-02-06  Aleksandr Vityazev  <avityazev@posteo.org>

	* lisp/treesit.el (treesit): Fix shortdoc example form (bug#61318).

2023-02-06  Theodor Thornhill  <theo@thornhill.no>

	Use c-ts-common-statement-offset in java-ts-mode (bug#61142)

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new
	matchers to enable c-ts-common machinery.
	(java-ts-mode): Add regexps.
	* lisp/progmodes/c-ts-common.el (c-ts-common-statement-offset): Fix
	typo in documentation and use the new if statement helpers.
	(c-ts-common-if-statement-regexp): New defvar.
	(c-ts-common-nestable-if-statement-p): New defvar.
	(c-ts-common--fix-nestable-if-statement): New helper.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add test for
	complicated bracket matching indentation.
	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add indent
	rules for bracketless statements.

2023-02-06  Theodor Thornhill  <theo@thornhill.no>

	Add array_initializer to java-ts-mode

	Indent strings inside array_initializer one step:

	public class Java {
	    void foo() {
	        return new String[]{
	            "foo", // These
	            "bar"
	        }
	    }
	}

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New
	matcher.

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	go-ts-mode: Highlight variable declarations

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
	Highlight variable declarations in 'definition' feature.

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	go-ts-mode: Fix highlighting of function name in call_expression

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
	Remove :override from the 'property' rules and move them above
	'variable' (bug#61302).  Just like in rust-ts-mode.

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	c-ts-mode: Highlight "property functions" as functions

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
	Highlight "property functions" as functions (bug#61302).

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	rust-ts-mode: Fix highlighting of function name in call_expression

	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
	Remove :override from the 'property' rules and move them above
	'variable' (bug#61302).

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	rust-ts-mode--font-lock-settings: Improve consistency

	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
	Remove the rule that highlighted scope identifier in a function call
	as type.  The existing rules will handle it when it does look like a
	type (capitalized).

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	Make sure 'M-x show-paren-local-mode' turns on right away

	* lisp/paren.el (show-paren--enabled-p): Extract from
	'show-paren-function'.
	(show-paren-local-mode): Use it in the :variable getter (bug#61098).

2023-02-05  Tassilo Horn  <tsdh@gnu.org>

	Add to bug-reference-auto-setup-functions after its declaring defvar

	If it's the init-value of the defvar, add-hook from a third-party
	package will suppress the default functions if it takes place before
	bug-reference is loaded.

	* lisp/progmodes/bug-reference.el (bug-reference-auto-setup-functions):
	Add to bug-reference-auto-setup-functions after its declaring defvar.

2023-02-05  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc.el (vc-find-revision-no-save): Fix parens (bug#61256).

	Move '(setq failed nil)' from UNWINDFORMS of 'unwind-protect' to BODYFORM.

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	Fix inability to turn show-paren-local-mode on manually (bug#61098)

	* lisp/paren.el (show-paren-local-mode): Don't kill the local
	value when both local and global are t.  Because the
	show-paren-predicate check in show-paren-function also checks
	whether a local (non-nil) value of this variable exists.

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	rust-ts-mode: Highlight variable declarations

	(rust-ts-mode--font-lock-settings): Change scoped_type_identifier
	highlight to match similar cases.  Highlight variable declarations
	inside all kinds of destructuring patterns, not just function
	definitions.
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--fontify-pattern):
	Rename from 'rust-ts-mode--fontify-parameter'.  Check the id node's
	parent to avoid touching type identifiers.

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	rust-ts-mode--indent-rules: Indent to 0 at top level

2023-02-05  Alan Mackenzie  <acm@muc.de>

	Ensure upper bound of font-lock region is less than point-max

	This fixes bug #61298.  The new long-lines code may have narrowed a buffer
	before font-lock-default-fontify-region gets called.

	* lisp/font-lock.el (font-lock-default-fontify-region): Set `end' to point-max
	if it is greater that it.

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	Highlight more complex function parameters

	* lisp/progmodes/rust-ts-mode.el
	(rust-ts-mode--fontify-parameter): New function.
	(rust-ts-mode--font-lock-settings): Use it.

2023-02-05  Jonas Bernoulli  <jonas@bernoul.li>

	No longer use transient in isearch-emoji-by-name

	* lisp/isearch.el (isearch-emoji-by-name): Use 'emoji--read-emoji'
	and if that returns derivations, 'completing-read' to select one
	of them.  This fixes bug#60740.
	* lisp/international/emoji.el (emoji--init): Autoload.
	(emoji--read-emoji): New function, which doesn't use transient
	and returns a list of the glyph and all derivations, if any.
	(emoji--choose-emoji): Use 'emoji--read-emoji'.

2023-02-05  Dmitry Gutov  <dgutov@yandex.ru>

	Make highlighting more regular across TS modes (bug#61205)

	* doc/emacs/display.texi (Parser-based Font Lock):
	Update description of treesit-font-lock-level, moving 'property' to
	level 4.

	* lisp/treesit.el (treesit-font-lock-level): Likewise, in docstring.

	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Do that here.

	* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode): Add a comment.

	* lisp/progmodes/go-ts-mode.el (go-ts-mode): Add 'definition' to
	level 1.  Move 'function', 'property' and 'variable' to level 4.
	(go-ts-mode--font-lock-settings): Move a bunch of existing rules
	to 'definition'.  Add highlighting of function parameters.

	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode)
	(rust-ts-mode--font-lock-settings): Same.  And also change "scoped
	identifiers" highlights to only match capitalized names.

2023-02-05  Eli Zaretskii  <eliz@gnu.org>

	Document 'plistp'

	* doc/lispref/lists.texi (Property Lists): Document 'plistp'.
	(Bug#61293)

2023-02-05  Eli Zaretskii  <eliz@gnu.org>

	Fix display of raised/lowered composed text

	* src/xdisp.c (fill_gstring_glyph_string): Adjust the base line of
	the glyph string due to subscript/superscript.  (Bug#61290)

2023-02-05  Eli Zaretskii  <eliz@gnu.org>

	Fix installation of tree-sitter grammar on MS-Windows

	* lisp/treesit.el (treesit--install-language-grammar-1): Fix a
	failure on MS-Windows when the old DLL is still being used.
	(Bug#61289)

2023-02-05  Eli Zaretskii  <eliz@gnu.org>

	Update the Emacs FAQ for Emacs 29

	* doc/misc/efaq.texi (New in Emacs 29, History of Emacs): Add new
	section about Emacs 29.

2023-02-05  Eli Zaretskii  <eliz@gnu.org>

	Fix byte-compilation of *-ts-mode.el files

	* lisp/treesit.el (treesit-font-lock-settings): Move to before
	use, to prevent failure in byte-compiling modes which require this
	file.  (Bug#61282)

2023-02-04  Yuan Fu  <casouri@gmail.com>

	Make c-ts-mode-set-style's effect local (bug#61245)

	Now c-ts-mode-set-style's effect is local, and there is a new function
	c-ts-mode-set-global-style that changes the global setting.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--indent-style-setter): Use c-ts-mode-set-style.
	(c-ts-mode-indent-style)
	(c-ts-mode--prompt-for-style): Minor change in docstring.
	(c-ts-mode-set-global-style): New function (from c-ts-mode-set-style).
	(c-ts-mode-set-local-style): Remove function (became c-ts-mode-set-style).
	(c-ts-mode-set-style): Renamed from c-ts-mode-set-local-style.
	* test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts:
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Use
	c-ts-mode-set-style.

2023-02-04  Dmitry Gutov  <dgutov@yandex.ru>

	c-ts-mode: Highlight name in parameter declarations

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
	Uncomment parameter declaration highlighting (bug#61275).
	(c-ts-mode--fontify-declarator): Check that identifier was found.
	Some declarations can miss identifier name.

2023-02-04  Davide Masserut  <dm@mssdvd.com>

	Fix switch statement indentation for go-ts-mode (bug#61238)

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): Add
	indentation for type switch and select case blocks
	* test/lisp/progmodes/go-ts-mode-resources/indent.erts: New .erts file
	to test indentation of Go constructs and prevent regression of bug
	fixes.
	* test/lisp/progmodes/go-ts-mode-tests.el: New file with go-ts-mode
	tests.

2023-02-04  Eli Zaretskii  <eliz@gnu.org>

	Fix bidi reordering of sequence of whitespace characters before a TAB

	* src/bidi.c (bidi_level_of_next_char): Test the current level
	only for characters whose original type is BN.  (Bug#61269)

2023-02-04  Theodor Thornhill  <theo@thornhill.no>

	Add tests for compilation support for TypeScript (bug#61104)

	* test/lisp/progmodes/compile-tests.el
	(compile-tests--test-regexps-data): Add new test-cases.
	(compile-test-error-regexps): Increase expected errors

2023-02-04  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Add support for TypeScript compilation to compile.el (bug#61104)

	* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
	Add regexps.

2023-02-04  Eli Zaretskii  <eliz@gnu.org>

	Don't clobber match data in 'y-or-n-p'

	* lisp/subr.el (y-or-n-p): Avoid clobbering caller's match data.
	(Bug#61091)

2023-02-03  Dmitry Gutov  <dgutov@yandex.ru>

	Refine the previous change

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Fix a typo.
	(ruby-ts--syntax-propertize): Use pcase-exhaustive to avoid typos.
	Put the last s-t property after heredoc's end (apparently
	parse-partial-sexp likes that more).  Move first s-t property on
	percent literals to the very beginning (to be refined later).
	Differentiate the %r{} literals from /.../ ones -- tree-sitter
	parses them exactly the same.

2023-02-03  Dmitry Gutov  <dgutov@yandex.ru>

	Add syntax-propertize-function to ruby-ts-mode

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query):
	New variable.
	(ruby-ts--syntax-propertize): New function.
	(ruby-ts--parser-after-change): New function.
	(ruby-ts-mode): Use both of them.

2023-02-03  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'header-line-indent-mode'

	* doc/lispref/modes.texi (Header Lines): Rewrite the documentation
	of 'header-line-indent-mode' and its two variables.  Fix the
	example.
	* doc/lispref/display.texi (Pixel Specification): More accurate
	description of what happens with :align-to in header-lines.
	Improve indexing.  (Bug#61239)

	* src/buffer.c (syms_of_buffer) <header-line-format>:
	* lisp/display-line-numbers.el (header-line-indent)
	(header-line-indent-width, header-line-indent-mode): Doc fixes.

	* etc/NEWS: Enhance the announcement of 'header-line-indent-mode'.

2023-02-03  F. Jason Park  <jp@neverwas.me>

	Don't casemap erc-sasl-user when set to :nick

	* lisp/erc/erc-sasl.el (erc-sasl-user): Fix doc string.
	(erc-sasl--get-user): Don't apply casemapping when the option
	`erc-sasl-user' is set to `:nick'.  While many servers and
	auth-services providers perform case-folding when comparing SASL
	usernames, only some recognize RFC1459 mappings, which ERC previously
	applied blindly.  Instead, ERC now behaves like other clients in
	leaving such preparation in the hands of the server.  This bug was
	introduced with changes new to ERC 5.5 and Emacs 29 (bug#29108).

2023-02-03  Robert Pluim  <rpluim@gmail.com>

	Improve keymap-global-set and keymap-local-set interactive use fix

	* lisp/keymap.el (keymap-global-set, keymap-local-set): Add optional
	`interactive' arg and use it to decide when to convert the key
	specification to a string.  Add `advertised-calling-convention'
	declarations.  (Bug#61149)

2023-02-02  Yuan Fu  <casouri@gmail.com>

	Make c-ts-mode indent tests side-effect-free

	Running indent tests changes the global value of
	c-ts-mode-indent-style.  That's not good.  This change fixes that.

	I also refactored the indent style functions a bit.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--prompt-for-style): New function.
	(c-ts-mode-set-local-style): New function.
	(c-ts-mode-set-style): Use c-ts-mode--prompt-for-style.  Use
	derived-mode-p when testing for major mode.  Remove check of current
	buffer's major mode since it doesn't matter.

	* test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts:
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Use
	c-ts-mode-set-local-style to set the indent style locally.

2023-02-02  Yuan Fu  <casouri@gmail.com>

	Call treesit_record_change in insert_from_gap_1

	Before this change, insert_from_gap calls treesit_record_change but
	insert_from_gap_1 doesn't.  However, insert_from_gap_1 is a public
	function and is called in many other places outside of insdel.c.  This
	could lead to tree-sitter's parse tree becoming out-of-sync with the
	buffer content.

	This change might fix bug#60650.

	* src/insdel.c (insert_from_gap_1): Call treesit_record_change.
	(insert_from_gap): Remove call to treesit_record_change.

	* admin/notes/tree-sitter/treesit_record_change: New file.

2023-02-02  Yuan Fu  <casouri@gmail.com>

	Use c-ts-common-statement-offset for closing brackets too

	Merge c-ts-mode--close-bracket-offset into
	c-ts-common-statement-offset.

	* lisp/progmodes/c-ts-common.el:
	(c-ts-common-statement-offset): Handle closing brackets too.
	(c-ts-mode--close-bracket-offset): Remove function.
	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use
	c-ts-common-statement-offset for closing brackets.

2023-02-02  Eli Zaretskii  <eliz@gnu.org>

	Minor improvements in sqlite.c

	* src/sqlite.c (Fsqlite_next): Doc fix.  Return nil if SQLITE_DONE
	was once seen for this statement.  (Bug#61151)
	(row_to_value): Cons the value in reverse, to avoid the Fnreverse
	call.  Patch by Helmut Eller <eller.helmut@gmail.com>.
	(Bug#61165)

2023-02-02  Dmitry Gutov  <dgutov@yandex.ru>

	(treesit_predicate_match): Match node text against regexp without consing

	* src/treesit.c (treesit_predicate_match): Match node text against
	regexp without creating a new string object (bug#60953).

	* src/search.c (search_buffer): Make not static.
	Delete declaration near the beginning of the file.

	* src/lisp.h: Declare it here.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--builtin-method-p):
	Remove function.
	(ruby-ts--font-lock-settings): Use the regexp with :match directly.

2023-02-02  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of gdb-mi's dedicated windows

	* doc/emacs/building.texi (Other GDB Buffers): Describe the I/O
	buffer and commands to show individual specialized windows.
	Improve indexing.

2023-02-02  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Avoid spurious pause in kill-ring-save (Bug#60841)

	'indicate-copied-region' checks whether the region is "highlighted"
	and if not, briefly moves point to mark to give a visual cue of the
	extent of text that was saved to the kill ring.

	The region is considered "highlighted" if (a) it is active and (b) its
	face specifies a :background.  That latter condition does not account
	for the multiple ways in which the face can make the region "visually
	distinct" from the default face, so switch to the more extensive
	predicate face-differs-from-default-p.

	The patch also fixes a couple of issues with the predicate's
	implementation, and introduces a new user option in case anyone
	happened to enjoy unconditional blinking.

	* lisp/faces.el (face-differs-from-default-p): Filter out :extend; add
	rationale for the attributes we ignore.
	* lisp/simple.el (copy-region-blink-predicate): Add option to let
	users explicitly opt into or out of blinking point and mark.
	(region-indistinguishable-p): New function to detect
	"if there is currently no active region highlighting", leveraging
	face-differs-from-default-p.
	(indicate-copied-region): Use it.
	* src/xfaces.c (merge_face_ref): Allow :stipple to be nil, since it is
	a documented valid value for that attribute.
	* etc/NEWS: Announce user option.

2023-02-02  Eli Zaretskii  <eliz@gnu.org>

	Change the default of 'treesit-defun-tactic' for 'c-ts-mode'

	* lisp/progmodes/c-ts-mode.el (c-ts-mode): Set
	'treesit-defun-tactic' as appropriate for C.  (Bug#61208)

2023-02-02  Eli Zaretskii  <eliz@gnu.org>  (tiny change)

	Fix docstring fontification of CL's 'defstruct'

	* lisp/emacs-lisp/lisp-mode.el (defstruct): Set 'doc-string'
	property.  Patch by Nicolas Martyanoff <nicolas@n16f.net>.

2023-02-02  Eli Zaretskii  <eliz@gnu.org>

	Teach 'hs-minor-mode' about tree-sitter based modes

	* lisp/progmodes/hideshow.el (hs-special-modes-alist): Teach
	'hs-minor-mode' about tree-sitter based modes.  (Bug#61232)

2023-02-02  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'repeat-mode' and related variables

	* lisp/bindings.el (next-error-repeat-map)
	(page-navigation-repeat-map, undo-repeat-map):
	* lisp/tab-bar.el (tab-bar-switch-repeat-map)
	(tab-bar-move-repeat-map):
	* lisp/window.el (other-window-repeat-map)
	(resize-window-repeat-map): Mention repeatable commands in the doc
	strings.
	* lisp/repeat.el (repeat-exit-timeout, repeat-check-key)
	(repeat-echo-function, repeat-mode, repeat-check-key)
	(repeat-check-map, repeat-echo-message-string)
	(repeat-echo-message, repeat-echo-mode-line)
	(describe-repeat-maps): Improve wording of doc strings.
	(describe-repeat-maps): Improve wording of the heading line.
	(Bug#61183)

	* doc/emacs/basic.texi (Repeating): Clarify and improve wording of
	'repeat-mode' documentation.

2023-02-01  Nicolas Martyanoff  <nicolas@n16f.net>

	(eshell--complete-commands-list): Fix regression in fix to bug#48995

	Copyright-Paperwork-Exempt: Yes

	* lisp/eshell/em-cmpl.el (eshell--complete-commands-list):
	Fix misuse of `completion-table-dynamic` when completing a file name.

2023-02-01  Juri Linkov  <juri@linkov.net>

	* doc/emacs/basic.texi (Repeating): Mention describe-repeat-maps (bug#61183).

	* lisp/repeat.el (describe-repeat-maps): Add more explanation to
	the docstring.  Suggested by Robert Pluim <rpluim@gmail.com>.

2023-02-01  Eli Zaretskii  <eliz@gnu.org>

	Unbreak the MS-Windows build

	* src/treesit.c (ts_query_pattern_count) [WINDOWSNT]: Load from
	the library and define as macro.

2023-01-31  Dmitry Gutov  <dgutov@yandex.ru>

	(Ftreesit_query_capture): Cache list of predicates for given pattern index

	* src/treesit.c (Ftreesit_query_capture):
	Cache list of predicates for given pattern index (bug#60953).

2023-01-31  Robert Pluim  <rpluim@gmail.com>

	* lisp/keymap.el (keymap-global-unset): Correct prompt

2023-01-31  Eli Zaretskii  <eliz@gnu.org>

	Fix cursor-in-echo-area on TTY frames

	* src/dispnew.c (update_frame_1): Fix off-by-one error when
	positioning the cursor in the echo-area.  (Bug#61184)

2023-01-30  Jonas Bernoulli  <jonas@bernoul.li>

	Update to Transient v0.3.7-196-gb91f509

2023-01-30  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix a coding bug in c-make-keywords-re.  This should fix bug #61135

	* lisp/progmodes/cc-defs.el (c-make-keywords-re): Generate "\>" components in
	result regexp when argument ADORN is `appendable'.  This fully fixes a bug
	which was half-fixed on 2019-01-22.

2023-01-30  Juri Linkov  <juri@linkov.net>

	* lisp/isearch.el (isearch-emoji-by-name): Disable derived emoji (bug#60740).

	Let-bind emoji--derived to nil to avoid the subsequent selection
	of derived emoji that fails in transient.el.

2023-01-30  Eli Zaretskii  <eliz@gnu.org>

	Fix keymap inheritance in descendants of 'c-ts-base-mode'

	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode-map): Rename from
	'c-ts-mode-map'.
	(c-ts-base-mode): Adjust accordingly.  (Bug#60983)

2023-01-30  Robert Pluim  <rpluim@gmail.com>

	Fix interactive use of `keymap-local-set' and `keymap-global-set'

	* lisp/keymap.el (keymap-global-set, keymap-local-set): Convert the
	read key sequence to a string when called interactively.  Based on a
	patch from Stephen Berman <stephen.berman@gmx.net>.  (Bug#61149)

2023-01-30  Michael Albinus  <michael.albinus@gmx.de>

	Fix password prompt in Tramp (do not merge)

	* lisp/net/tramp.el (tramp-password-prompt-regexp):
	Allow alternative trailing colons.  (Bug#61168)

2023-01-29  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.1-23-gc45a05

2023-01-29  Eli Zaretskii  <eliz@gnu.org>

	Document tree-sitter features in the user manual

	* lisp/progmodes/c-ts-mode.el (c-ts-mode-map): Bind "C-c .", for
	consistency with CC mode.
	* lisp/treesit.el (treesit-font-lock-level): Doc fix.

	* doc/emacs/programs.texi (C Indent, Custom C Indent): Document
	the indentation features of 'c-ts-mode'.
	(Moving by Defuns): Document 'treesit-defun-tactic'.
	* doc/emacs/files.texi (Visiting): Document
	'treesit-max-buffer-size'.
	* doc/emacs/display.texi (Traditional Font Lock)
	(Parser-based Font Lock): New subsections.
	* doc/emacs/emacs.texi (Top): Update top-level menu.

2023-01-29  Randy Taylor  <dev@rjt.dev>

	Fix dockerfile-ts-mode line continuation indentation (bug#61131)

	Without this rule, line continuations are only indented after entering
	the contents for the line and hitting TAB or RET.

	For example:
	```
	EXPOSE 1 \
	```

	After hitting RET to go to the next line, point would end up at BOL
	instead of lining up with the previous entry, like so:
	```
	EXPOSE 1 \
	2
	```

	The new rule will indent it as so:
	```
	EXPOSE 1 \
	       2
	```

	* lisp/progmodes/dockerfile-ts-mode.el:
	(dockerfile-ts-mode--indent-rules): New rule.
	(dockerfile-ts-mode--line-continuation-p)
	(dockerfile-ts-mode--line-continuation-anchor): New functions.

2023-01-29  Yuan Fu  <casouri@gmail.com>

	Use treesit-subtree-stat to determine treesit--font-lock-fast-mode

	* lisp/treesit.el:
	(treesit--children-covering-range-recurse): Return nil if LIMIT is
	exceeded.
	(treesit--font-lock-fast-mode): Change to a ternary value.
	(treesit-font-lock-fontify-region): Enable fast mode based on the
	result of treesit-subtree-stat.

2023-01-29  Yuan Fu  <casouri@gmail.com>

	Add treesit-subtree-stat

	* src/treesit.c (Ftreesit_subtree_stat): New function.
	* lisp/treesit.el (treesit): Add to shortdoc.

2023-01-29  Yuan Fu  <casouri@gmail.com>

	Move c-ts-mode--statement-offset to c-ts-common.el

	Now it can be used by other C-like languages.

	* lisp/progmodes/c-ts-common.el (c-ts-common-indent-offset):
	(c-ts-common-indent-block-type-regexp):
	(c-ts-common-indent-bracketless-type-regexp): New variables.
	(c-ts-common-statement-offset):
	(c-ts-mode--fix-bracketless-indent):
	(c-ts-mode--close-bracket-offset): New functions.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Change
	c-ts-mode--statement-offset to c-ts-common-statement-offset.
	The (parent-is "if_statement") rules are now handled by (node-is
	"compound_statement").

	(c-ts-mode--statement-offset-post-processr):
	(c-ts-mode--statement-offset):
	(c-ts-mode--fix-bracketless-indent): Move to c-ts-common.el.

	(c-ts-base-mode): Setup c-ts-common stuff.

	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Make the test
	more challenging.

2023-01-29  Yuan Fu  <casouri@gmail.com>

	Fix <> syntax in rust-ts-mode

	Similar to bug#60351, the angle brackets in rust-ts-mode are not
	recognized as pairs when they should be.  This change copies the
	function used by c++-ts-mode and adapts it to rust-ts-mode.

	* lisp/progmodes/rust-ts-mode.el:
	(rust-ts-mode--syntax-propertize): New function.
	(rust-ts-mode): Set up syntax-propertize-function.

2023-01-29  Eli Zaretskii  <eliz@gnu.org>

	Fix spurious errors on Windows when deleting temporary *.eln files

	* lisp/emacs-lisp/comp.el (comp--native-compile): On MS-Windows,
	ignore errors when deleting a temporary .eln file.  (Bug#60996)

2023-01-28  Theodor Thornhill  <theo@thornhill.no>

	Fix java class member without access modifier (bug#61115)

	This

	```
	public class T {
	    @Autowired
	        String a;
	}
	```

	Should be indented as:

	```
	public class T {
	    @Autowired
	    String a;
	}
	````

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new
	rule to match edge case of field_declaration indentation.

2023-01-28  Theodor Thornhill  <theo@thornhill.no>

	Make treesit-font-lock-level a defcustom

	* lisp/treesit.el (treesit--font-lock-level-setter): Setter for the
	new defcustom.
	(treesit-font-lock-level): Turn it into a defcustom.

2023-01-28  Theodor Thornhill  <theo@thornhill.no>

	Add c-ts-mode-set-style and :set for c-ts-mode-indent-style

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-style-setter): New
	setter for the indent style defcustom.
	(c-ts-mode-indent-style): Don't quote the values and refer to the
	setter.
	(c-ts-mode-set-style): New command to interactively set the indent
	style.
	(c-ts-mode--get-indent-style): New function renamed from
	'c-ts-mode--set-indent-style'.

2023-01-28  Juri Linkov  <juri@linkov.net>

	Minor documentation improvements for outline-minor-mode (bug#61062)

	* doc/emacs/text.texi (Outline Minor Mode, Outline Minor Mode):
	Add pxrefs to "Icons" and "Outline Visibility".

	* etc/NEWS: Mention outline-minor-mode for two modes.

2023-01-28  Brian Leung  <leungbk@posteo.net>

	python.el: Use correct regexp when enabling python-ts-mode

	* lisp/progmodes/python.el: Use "python[0-9.]*" regexp for
	'interpreter-mode-alist', and not 'auto-mode-alist'.  (Bug#61090)

2023-01-27  Dmitry Gutov  <dgutov@yandex.ru>

	Make project-current not error out inside non-existent dirs

	* lisp/progmodes/project.el (project-try-vc):
	Use condition-case to catch 'file-missing' (bug#61107).

	* test/lisp/progmodes/project-tests.el
	(project-vc-nonexistent-directory-no-error): New test.

2023-01-27  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'shell-command-dont-erase-buffer'

	* doc/emacs/misc.texi (Single Shell):
	* lisp/simple.el (shell-command, shell-command-on-region):
	Document that non-nil value of 'shell-command-dont-erase-buffer'
	affects what is displayed in the echo area after the command.
	(Bug#61100)

2023-01-27  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Fix errors in fontification of JavaScript import-statements (bug#61083)

	Currently js-ts-mode handles imports with aliases incorrectly. To be
	consistent with how we otherwise do things, we should only highlight
	the variable which is new and/or introduced, in this case "someAlias".

	Attached is a patch which fontifies import-declarations somewhat more
	correctly.

	The following cases have been tested and all fontify properly:

	import gnu from "fsf";              // highlights gnu
	import { gnu2 } from "fsf2";        // highlights gnu2
	import { gnu as gnu3 } from "fsf3"; // highlights gnu3
	import * as gnu4 from "fsf4";       // highlights gnu4

	* lisp/progmodes/js.el (js--treesit-font-lock-settings): Add new
	import_clause rules that adhere to the comment above.

2023-01-27  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Fix fontification TypeScript of import-statements (bug#61081)

	Currently typescript-ts-mode and tsx-ts-mode handles imports with
	aliases incorrectly.

	Consider the following case:

	import { someFunc as someAlias } from "module";

	In this case the entire import ("someFunc as someAlias") will be
	highlighted as a variable name. "as" is also highlighted as a
	variable, rather than a reserved keyword.

	To be consistent with how we otherwise do things, we should only
	highlight the variable which is new and/or introduced, in this case
	"someAlias".

	Attached is a patch which fontifies import-declarations somewhat more
	correctly.

	The following cases have been tested and all fontify properly:

	import gnu from "fsf";              // highlights gnu
	import { gnu2 } from "fsf2";        // highlights gnu2
	import { gnu as gnu3 } from "fsf3"; // highlights gnu3
	import * as gnu4 from "fsf4";       // highlights gnu4

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Tweak import_clause rules to
	adhere to the comment above.

2023-01-26  Basil L. Contovounesios  <contovob@tcd.ie>

	Work around package.el transitive dependency bug

	Eglot already depends transitively on Xref 1.4.0 via Project,
	but package.el doesn't pick up on this in Emacs 28
	(which has Xref 1.3.0).

	* lisp/progmodes/eglot.el (Version): Bump to 1.11.
	(Package-Requires): Explicitly require Xref 1.4.0, which is
	the version already required by Project, for the benefit of
	Emacs 28 (bug#61048).

2023-01-26  Eli Zaretskii  <eliz@gnu.org>

	Fix xt-mouse on terminals that report UTF-8 encoded coordinates

	* lisp/xt-mouse.el (xterm-mouse--read-coordinate): Fix conversion
	of mouse coordinates in rxvt-unicode.  Patches by Vladimir
	Panteleev <git@cy.md> and Jared Finder <jared@finder.org>.
	(Bug#61022)

2023-01-26  Randy Taylor  <dev@rjt.dev>

	Fix go-ts-mode indentation and set indent offset to 8 (Bug#61006)

	* lisp/progmodes/go-ts-mode.el (go-ts-mode-indent-offset): Change
	default value to 8.
	(go-ts-mode--indent-rules): Add indentation for parameters and
	interfaces.

2023-01-26  Eli Zaretskii  <eliz@gnu.org>

	Fix doc strings of window-splitting commands

	* lisp/window.el (split-window-below, split-window-right): Doc
	fixes.  (Bug#60886)

2023-01-26  Yuan Fu  <casouri@gmail.com>

	Fix indentation for c-ts-mode (bug#61026)

	Fix indentation for things like

	  while (true)
	    if (true)
	      {
	        puts ("Hello");
	      }

	Note that the outer while loop omits brackets.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--statement-offset-post-processr): New variable.
	(c-ts-mode--statement-offset): Use the new function.
	(c-ts-mode--fix-bracketless-indent): New function.
	(c-ts-base-mode): Use the new function.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New tests.

2023-01-26  Yuan Fu  <casouri@gmail.com>

	Fix call to treesit_record_change in insdel.c

	The start position of the change shouldn't be PT_BYTE, IIUC PT_BYTE is
	actually the end position.

	* src/insdel.c (insert_from_buffer): Move to here.
	(insert_from_buffer_1): Remove call to treesit_record_change.

2023-01-26  Randy Taylor  <dev@rjt.dev>

	Add support for building tree-sitter modules with MinGW

	* admin/notes/tree-sitter/build-module/build.sh: Add support for
	building tree-sitter modules with MinGW.

2023-01-25  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-wrong-passwd-regexp): Fix regexp.

2023-01-25  Juri Linkov  <juri@linkov.net>

	* doc/emacs/text.texi (Outline Minor Mode): New node split from "Outline Mode"

	(Outline Mode): Move all outline-minor-mode related information to the
	new node "Outline Minor Mode" (bug#61062).

2023-01-25  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Don't reindent when "class" or "def" is under "ERROR"

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	Don't reindent when "class" or "def" is under "ERROR" (bug#61017).

2023-01-25  Dmitry Gutov  <dgutov@yandex.ru>

	treesit-install-language-grammar: Provide default repo url

	* lisp/treesit.el (treesit--check-repo-url): New function.
	(treesit--install-language-grammar-build-recipe): Use it (bug#61051).

2023-01-25  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix Dired face for directory symlinks

	* lisp/dired.el (dired-font-lock-keywords): Fontify directory
	symlinks with the value of dired-directory-face rather than its name
	as a (nonexistent) face (bug#60977).

2023-01-25  Basil L. Contovounesios  <contovob@tcd.ie>

	Pacify --without-x unused function warning

	* src/xfaces.c (font_maybe_unset_attribute): Move definition...
	[HAVE_WINDOW_SYSTEM] (font_maybe_unset_attribute): ...to here, since
	the function is used only when we HAVE_WINDOW_SYSTEM (bug#61049).

2023-01-25  Robert Pluim  <rpluim@gmail.com>

	Announce outline.el keymaps

	* etc/NEWS: Announce new keymaps.

2023-01-25  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Fix fontification of function-valued variables (bug#61053)

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Remove overrides and reorder
	the variable_declarator rule.

2023-01-25  Theodor Thornhill  <theo@thornhill.no>

	Add new java indent rules

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Check
	for enum_body_declarations and switch_label.

2023-01-24  Juri Linkov  <juri@linkov.net>

	Handle relative file names in vc-resynch-window and vc-resynch-buffer

	* lisp/vc/vc-dispatcher.el (vc-resynch-window, vc-resynch-buffer):
	While comparing with `buffer-file-name' if `file' is not absolute
	use `expand-file-name' in `vc-root-dir'.  This fixes the case of
	refreshing the buffers after typing `C-x v = C-x v u' (bug#60897).

2023-01-24  Robert Pluim  <rpluim@gmail.com>

	Use named keymaps for outline buttons

	https://lists.gnu.org/archive/html/emacs-devel/2023-01/msg00334.html

	* lisp/outline.el (outline-button-icon-map)
	(outline-overlay-button-map, outline-inserted-button-map):
	Keymaps refactored from outline--create-button-icons and
	outline--insert-button.
	(outline--create-button-icons, outline--insert-button): Move
	keymaps to separate variables.

2023-01-24  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc-bzr.el (vc-bzr--pushpull): Return buffer's process.

	* lisp/vc/vc-git.el (vc-git--pushpull): Add comment.

	* lisp/vc/vc.el (vc-pull-and-push): Expand docstring about
	prerequisites for backend to support this command (bug#60569).

2023-01-23  Alan Mackenzie  <acm@muc.de>

	CC Mode: Change the default value of objc-font-lock-extra-types to nil

	This fixes bug #59234, in which random identifiers in a .m file were getting
	fontified as types.

	* lisp/progmodes/cc-vars.el (objc-font-lock-extra-types): Change the default
	value to nil.

	* etc/NEWS: Mention the change in default value of objc-font-lock-extra-types,
	and how to get the old behavior back.

2023-01-23  Jim Porter  <jporterbugs@gmail.com>

	Don't try to make a pipe process for remote processes in Eshell

	Tramp currently isn't able to handle this, so the result will just
	produce an error (bug#61024).

	* lisp/eshell/esh-proc.el (eshell-gather-process-output): Check for a
	remote 'default-directory' before trying to make a pipe process.

	* test/lisp/eshell/esh-proc-tests.el
	(esh-var-test/output/remote-redirect): New test.

2023-01-23  Eli Zaretskii  <eliz@gnu.org>

	* lisp/startup.el (command-line): Fix warning message.  (Bug#61014)

2023-01-23  Juri Linkov  <juri@linkov.net>

	* lisp/find-dired.el (find-dired): Fix bug where M-p skips first history item.

	Don't apply "skip first duplicate history item" trick when find-args
	used as initial input is nil.

2023-01-22  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.1-16-ge37e9b

2023-01-22  Dmitry Gutov  <dgutov@yandex.ru>

	(ruby-ts--predefined-variables): Fix the $` and $' entries

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--predefined-variables):
	Fix the $` and $' entries, somehow replaced by curly quote.

	Reported by Mattias Engdegård.

2023-01-22  Juri Linkov  <juri@linkov.net>

	* lisp/find-dired.el (find-dired-with-command): Quote find-command-history.

2023-01-22  Juri Linkov  <juri@linkov.net>

	Generalize vc-pull-and-push to support more backends (bug#60569)

	* lisp/vc/vc-git.el (vc-git-pull-and-push): Remove and move its logic to
	vc-pull-and-push.

	* lisp/vc/vc.el (vc-pull-and-push): Add code from vc-git-pull-and-push.

2023-01-22  Benjamin Riefenstahl  <b.riefenstahl@turtle-trading.net>

	Add test suite for sgml-html-meta-auto-coding-function

	* test/lisp/international/mule-tests.el (sgml-html-meta-pre)
	(sgml-html-meta-post, sgml-html-meta-run, sgml-html-meta-utf-8)
	(sgml-html-meta-windows-hebrew, sgml-html-meta-none)
	(sgml-html-meta-unknown-coding, sgml-html-meta-no-pre)
	(sgml-html-meta-no-post-less-than-10lines)
	(sgml-html-meta-no-post-10lines, sgml-html-meta-utf-8-with-bom): Add.

2023-01-22  Benjamin Riefenstahl  <b.riefenstahl@turtle-trading.net>

	Fix decoding HTML files from archives

	* lisp/international/mule.el (sgml-xml-auto-coding-function): Avoid
	signaling an error from coding-system-equal when the XML encoding tag
	specifies an encoding whose type is 'charset'.  (Bug#61005)

	This is the same fix as in #df7ed10e for
	sgml-xml-auto-coding-function.

2023-01-22  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes in batch Emacs sub-processes on MS-Windows

	* src/w32.c (shutdown_handler): When run in a separate thread,
	don't call functions that only the main (a.k.a. "Lisp") thread can
	call; instead, arrange for maybe_quit to kill Emacs.
	* src/w32fns.c (emacs_abort): Don't show GUI Abort dialogs in
	non-interactive sessions.  (Bug#60556)

2023-01-22  Theodor Thornhill  <theo@thornhill.no>

	Tweak BSD style indentation (bug#60984)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Simplify
	rules.
	* test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts: New
	testfile with bsd style indentation examples.
	* test/lisp/progmodes/c-ts-mode-tests.el
	(c-ts-mode-test-indentation-bsd): Add a test for the new style.

2023-01-22  Theodor Thornhill  <theo@thornhill.no>

	Fix typo of exposed symbol name

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Remove
	double hyphen.

2023-01-22  Theodor Thornhill  <theo@thornhill.no>

	Fix typo after move to common lib (bug#61001)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use correct
	preset.

2023-01-21  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Fix two additional cases with ruby-method-call-indent=nil

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	Fix two additional cases with ruby-method-call-indent=nil.

	* test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb:
	Add examples.

2023-01-21  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-mode.el: Expand some docstrings with examples

	* lisp/progmodes/ruby-mode.el (ruby-align-chained-calls)
	(ruby-method-params-indent): Expand docstrings with examples.

2023-01-21  Po Lu  <luangruo@yahoo.com>

	Minor fixes for Haiku

	* lisp/frame.el (display-symbol-keys-p):
	* lisp/simple.el (normal-erase-is-backspace-setup-frame): Add
	support for Haiku.

2023-01-21  Theodor Thornhill  <theo@thornhill.no>

	Move c-like common utils into own library (bug#60961)

	* lisp/progmodes/c-ts-common.el: New file.
	* lisp/progmodes/c-ts-mode.el (treesit-induce-sparse-tree): Remove
	unused declaration.
	(c-ts-mode--indent-styles): Refer to the new library.
	(c-ts-mode--looking-at-star,
	c-ts-mode--comment-start-after-first-star,
	c-ts-mode--comment-2nd-line-matcher,
	c-ts-mode--comment-2nd-line-anchor, c-ts-mode--comment-regexp,
	c-ts-mode--fill-paragraph, c-ts-mode--fill-block-comment): Move to
	c-ts-common and expose as public.
	(c-ts-mode-comment-setup): Move to c-ts-common.
	* lisp/progmodes/csharp-mode.el (c-ts-common): Require new library.
	(csharp-ts-mode--indent-rules): Refer to the new symbols.
	(csharp-ts-mode): Use new function.
	* lisp/progmodes/java-ts-mode.el (c-ts-common): Require new library.
	(java-ts-mode--indent-rules): Refer to the new symbols.
	(java-ts-mode): Use new function.
	* lisp/progmodes/js.el (c-ts-common): Require new library.
	(js--treesit-indent-rules): Refer to the new symbols.
	(js-ts-mode): Use new function.
	* lisp/progmodes/rust-ts-mode.el (c-ts-common): Require new library.
	(rust-ts-mode--indent-rules): Refer to the new symbols.
	(rust-ts-mode): Use new function.
	* lisp/progmodes/typescript-ts-mode.el (c-ts-common): Require new
	library.
	(typescript-ts-mode--indent-rules): Refer to the new symbols.
	(typescript-ts-base-mode): Use new function.

2023-01-21  Michael Albinus  <michael.albinus@gmx.de>

	Fix file-regular-p in Tramp

	* test/lisp/net/tramp-archive-tests.el
	(tramp-archive-test18-file-attributes)
	(tramp-archive-test21-file-links):
	* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes)
	(tramp-test21-file-links): Adapt tests.

	* lisp/net/tramp.el (tramp-handle-file-regular-p): Fix symlink
	case.  (Bug#60943)

2023-01-21  Theodor Thornhill  <theo@thornhill.no>

	Fix typo in c-ts-mode (bug#60932)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-block-type-regexp):
	enumerator, not enumerator.

2023-01-20  Mike Kupfer  <kupfer@rawbw.com>

	MH-E: handle removal of mhparam libdir from nmh 1.8

	* lisp/mh-e/mh-e.el (mh-variant-nmh-info): If "libdir" doesn't
	work, try "libexecdir" (Bug#60952) (SF#491).

2023-01-20  Theodor Thornhill  <theo@thornhill.no>

	Use point-min to anchor top-level constructs (bug#60602)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New anchor.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New
	anchor.
	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): New anchor.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): New anchor.

2023-01-20  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/org/ob-ruby.el: Fix outdated comments.

2023-01-20  Dmitry Gutov  <dgutov@yandex.ru>

	(project-try-vc): Add string-start and string-end anchors to marker-re

	* lisp/progmodes/project.el (project-try-vc):
	Add string-start and string-end anchors to marker-re (bug#60956).

2023-01-20  Robert Pluim  <rpluim@gmail.com>

	Make `keymap-set-after' work for menus

	It still doesn't work for an AFTER that's a key, though, since
	`key-parse' produces vectors, and keymaps contain integers.

	* lisp/keymap.el (keymap-set-after): Only parse AFTER as a key if it's
	a string.  For consistency, use `key-parse' on the definition if it's
	a string, just like `keymap-set'.
	* test/src/keymap-tests.el (keymap-tests--command-3): New dummy command.
	(keymap-set-after-menus): New test.  Check that we can insert a menu
	item after a specific entry.

2023-01-20  Robert Pluim  <rpluim@gmail.com>

	Use `key-parse' in `keymap-lookup'

	It's stricter than `kbd', and doesn't try to do anything with key
	sequences that look like macros.

	* lisp/keymap.el (keymap-lookup): Use `key-parse' instead of `kbd'.
	* test/src/keymap-tests.el (keymap-set-after-menus): Test the
	`keymap-set-after' API.

2023-01-20  Robert Pluim  <rpluim@gmail.com>

	Improve `keymap-set-after' documentation

	* doc/lispref/keymaps.texi (Changing Key Bindings): Mention `key-valid-p'
	(Modifying Menus): Correct description of KEY arg.

2023-01-20  Robert Pluim  <rpluim@gmail.com>

	Handle after arg correctly in `keymap-set-after'

	* lisp/keymap.el (keymap-set-after): AFTER: t means the same as nil,
	so just change it to nil.  (Bug#60867)

2023-01-20  F. Jason Park  <jp@neverwas.me>

	Don't load erc-goodies atop erc.el

	* lisp/erc/erc.el: Commit c2d657e7c4fd9685591f2120007eabf78745919d
	"Move ERC's core dependencies to a separate file" ironed out ERC's
	interwoven dependencies for the better but didn't cleanly sidestep the
	goodies interdependency, specifically with regard to custom options.
	This reverts the tiny portion impacting this aspect by once again
	requiring `erc-goodies' at the very end of ERC's main library. Special
	thanks to Libera.Chat user jrm for reporting this bug.

2023-01-20  Eli Zaretskii  <eliz@gnu.org>

	Make tree-sitter based modes optional

	* lisp/progmodes/c-ts-mode.el: Update Commentary.  Make
	'auto-mode-alist' update conditional on the tree-sitter and
	grammar libraries being available.
	* lisp/progmodes/cmake-ts-mode.el:
	* lisp/progmodes/csharp-mode.el:
	* lisp/progmodes/dockerfile-ts-mode.el:
	* lisp/progmodes/go-ts-mode.el:
	* lisp/progmodes/java-ts-mode.el:
	* lisp/progmodes/js.el:
	* lisp/progmodes/json-ts-mode.el:
	* lisp/progmodes/python.el:
	* lisp/progmodes/ruby-ts-mode.el:
	* lisp/progmodes/typescript-ts-mode.el:
	* lisp/textmodes/css-mode.el:
	* lisp/textmodes/toml-ts-mode.el:
	* lisp/textmodes/yaml-ts-mode.el: Make 'auto-mode-alist' update
	for tree-sitter based modes be conditional on the tree-sitter and
	grammar libraries being available.  (Bug#60559)

2023-01-19  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Claw back half of the performance drop from last change

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--builtin-method-p):
	New function.
	(ruby-ts--font-lock-settings): Use it instead of :match.

2023-01-19  Dmitry Gutov  <dgutov@yandex.ru>

	(ruby-ts-mode): Rename 'builtin-functions' to 'builtin-function'

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings)
	(ruby-ts-mode): Rename 'builtin-functions' to 'builtin-function',
	for consistency with similar features.

2023-01-19  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Highlight builtin methods

	* lisp/progmodes/ruby-mode.el (ruby-builtin-methods-with-reqs)
	(ruby-builtin-methods-no-reqs): New constants, extracted.
	(ruby-font-lock-keywords): Replace values with references.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--builtin-methods): New
	variable.  Construct regexp from aforementioned constants' values.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	Use it.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
	Add new font-lock feature: builtin-functions.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--predefined-constants)
	(ruby-ts--predefined-variables): Unrelated to the rest of the
	patch, add string-start and string-end anchors.

2023-01-19  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indent (bug#60873)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--statement-offset): Handle the edge case.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add a test.

2023-01-19  Yuan Fu  <casouri@gmail.com>

	Fix various problems in treesit-explore-mode (bug#60800)

	* lisp/treesit.el:
	(treesit--explorer-kill-explorer-buffer): New function.
	(treesit-explore-mode):
	1. Move prompt for language earlier, and terminate early if language
	not available.
	2. Make sure desktop-save doesn't save the explorer buffer.
	3. Kill the explorer buffer when the source buffer is killed.

2023-01-19  Michael Heerdegen  <michael_heerdegen@web.de>

	Fix an oversight in advice.el

	This fixes an oversight from 77c3c464a16: "* lisp/emacs-lisp/advice.el
	(ad-advised-functions): Make it a plain list" that caused an issue as
	reported in Bug#60893.
	* lisp/emacs-lisp/advice.el (ad-read-advised-function): Adjust to
	handle the new type of elements of `ad-advised-functions'.

2023-01-19  Dmitry Gutov  <dgutov@yandex.ru>

	(treesit-simple-indent-presets): Have n-p-gp check for grandparent's presence

	* lisp/treesit.el (treesit-simple-indent-presets): Have n-p-gp
	check for grandparent's presence before checking its type.

2023-01-19  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-toggle-block: Fix in ruby-ts-mode

	* lisp/progmodes/ruby-mode.el (ruby-toggle-block): Make it work
	with ruby-ts-mode.  ruby-forward-sexp checks ruby-use-smie.

2023-01-19  Dmitry Gutov  <dgutov@yandex.ru>

	(ruby-ts--indent-rules): Indent inside empty parens properly

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	Consider the case when there are no arguments inside the call yet.

	* test/lisp/progmodes/ruby-ts-mode-tests.el
	(ruby-ts-indent-call-no-args): Add test.

2023-01-19  Kai Tetzlaff  <emacs@tetzco.de>

	Fix bug in 'sieve-manage--append-to-log'

	* lisp/net/sieve-manage.el (sieve-manage--append-to-log): Fix
	log buffer creation.  (Bug#54154)  Do not merge to master.

2023-01-19  Alan Mackenzie  <acm@muc.de>

	CC Mode: Prevent two classes of "type" prematurely entering c-found-types

	This fixes bug #60769.  The two classes of "type" are foo and bar in
	"foo d(bar () ...)", where the d could be a mistyped C-M-d.

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): New local variable
	got-arglist.  Refactor a sequence of enclosed `if' forms into a `cond' form.
	Set got-arglist when needed.  In CASE 2, set unsafe-maybe to inhibit foo
	being entered into c-found-types.  In CASE 19, likewise set unsafe-maybe, to
	inhibit bar entering c-found-types.

2023-01-18  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Use font-lock-constant-face for true/false/nil

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	Use font-lock-constant-face for true/false/nil.

2023-01-18  Dmitry Gutov  <dgutov@yandex.ru>

	(ruby-ts--indent-rules): Add a rule for continuation of a hash pair

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	Add a rule for continuation of a hash pair.

	* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: Add examples.

2023-01-18  Dmitry Gutov  <dgutov@yandex.ru>

	(ruby-ts--parent-call-or-bol): Handle more cases with nested literals

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--parent-call-or-bol):
	Handle more cases with nested literals.

	* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: Add examples.

2023-01-18  Dmitry Gutov  <dgutov@yandex.ru>

	(ruby-ts--statement-container-regexp): Remove "parenthesized_statements"

	* lisp/progmodes/ruby-ts-mode.el
	(ruby-ts--statement-container-regexp): Remove
	"parenthesized_statements", it's not really a statement container,
	not one we'd use for indentation alignment anyway.

	* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: Add examples.

2023-01-18  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Handle indent in parenless calls much closer to ruby-mode

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--parent-call-or-bol):
	New function.
	(ruby-ts--indent-rules): Use it for cases which need special
	anchoring logic when inside a parenless method call.
	Remove the ad-hoc handling of pair-hash-pair etc indentation,
	which was there only for the parenless cases, apparently.
	Have "No paren, ruby-parenless-call-arguments-indent is nil" case
	align to the statement, if only because ruby-mode does that.

	* test/lisp/progmodes/ruby-ts-mode-tests.el:
	Run indent test for ruby-parenless-call-arguments-indent.rb.

2023-01-18  Juri Linkov  <juri@linkov.net>

	Fix split-window-below for the case when split-window-keep-point is nil.

	* lisp/window.el (split-window-below): Don't try to move point when
	split-window-keep-point is nil and window-to-split is not the selected window
	or nil (that defaults to the selected window) because code makes sense
	only for the selected window.
	(split-window-below, split-window-right): Improve docstrings (bug#60886)

2023-01-18  Juri Linkov  <juri@linkov.net>

	Rebind in read-regexp-map ‘M-c’ to ‘M-s c’ compatible with search-map

	Also it's compatible with 'M-s c' (isearch-toggle-case-fold)
	used during Isearch.  Also makes possible to use the global keybinding
	'M-c' (capitalize-dwim) in the minibuffer.

	* doc/lispref/minibuf.texi (Text from Minibuffer): Rename ‘M-c’ to ‘M-s c’.

	* lisp/replace.el (read-regexp-map): Rebind ‘M-c’ to ‘M-s c’ (bug#60741).
	(read-regexp-toggle-case-fold): Rename from read-regexp-toggle-case-folding
	to more standard name.

2023-01-18  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc-dir.el: Make keys ‘% m’ and ‘* %’ compatible with Dired

	(vc-dir-mode-map): Replace ‘%’ for vc-dir-mark-by-regexp
	with ‘% m’ in regexp-map and ‘* %’ in mark-map (bug#60887).

	* doc/emacs/maintaining.texi (VC Directory Commands): Replace ‘%’
	with ‘% m’ and ‘* %’.  Mention vc-dir-mark-registered-files.

2023-01-18  Jim Porter  <jporterbugs@gmail.com>

	Use proper types for Eshell warnings

	* lisp/eshell/esh-var.el (eshell-get-variable):
	* lisp/eshell/em-basic.el (eshell/echo): Don't use ':warning'; that's a
	warning level, not a warning type.

2023-01-18  Eli Zaretskii  <eliz@gnu.org>

	Improve the documentation of 'auto-mode-alist' search

	* doc/emacs/modes.texi (Choosing Modes): Expand the description of
	"recursive extension stripping" using 'auto-mode-alist'.
	(Bug#60930)

2023-01-18  Yuan Fu  <casouri@gmail.com>

	Revert "Revert "Add c-or-c++-ts-mode (bug#59613)""

	This reverts commit d46f7f4edcce14e6cbd8e2d7091dbabbe08defc1.

	Aaaactually, we need this, otherwise we can't use tree-sitter based C
	mode for header files.

2023-01-18  Yuan Fu  <casouri@gmail.com>

	Make it harder to misactivate tree-sitter font-lock fast mode

	This has been brought up in bug#60691 and bug#60223.  I proposed a fix
	by testing the size of the tree rather than measuring the query time.
	But after some thought, I fear that just looking at the size will give
	us false-negatives.  So I kept the time-based activation, just added a
	grace count to reduce false-positives.

	* lisp/treesit.el:
	(treesit--font-lock-fast-mode-grace-count): New variable.
	(treesit--font-lock-notifier): Only activate fast mode after 5
	offenses.

2023-01-17  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Obey the option ruby-method-call-indent

	* lisp/progmodes/ruby-ts-mode.el
	(ruby-ts--method-call-indent-p): New function.
	(ruby-ts--indent-rules): Use it.

	* test/lisp/progmodes/ruby-ts-mode-tests.el:
	Run indent test for ruby-method-call-indent.rb.

	* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
	Add explicit value for ruby-method-call-indent.

2023-01-17  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Obey the option ruby-after-operator-indent

	* lisp/progmodes/ruby-ts-mode.el
	(ruby-ts--after-op-indent-p): New function.
	(ruby-ts--indent-rules): Use it.

	* test/lisp/progmodes/ruby-ts-mode-tests.el:
	Run indent test for ruby-after-operator-indent.rb.

	* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
	Make sure indentation vars are at their default values.

2023-01-17  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Fix indent after operator or conditional

	Make it match ruby-mode's indentation behavior.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--binary-indent-anchor):
	New function.
	(ruby-ts--indent-rules): Use it instead of a composite matcher.
	Add a rule for 'conditional'.
	(ruby-ts--assignment-ancestor, ruby-ts--is-in-condition)
	(ruby-ts--endless-method): Remove.

	* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
	Add examples.

2023-01-17  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Fix/change indentation of a continuation method call

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	Fix/change indentation of a continuation method call.

	* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
	New examples.

2023-01-17  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Fix indent inside parenthesized_expr and else/end after unless

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	Fix indentation for parenthesized_expression and else/end after
	'unless'.

	* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
	New examples.

2023-01-17  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Fix the rules for hanging arrays and hashes

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
	Fix the rules for hanging arrays and hashes (to line up to
	parent-bol instead of the opening brace).

	* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
	New file with examples.

	* test/lisp/progmodes/ruby-ts-mode-tests.el: Use it here.

2023-01-17  Jim Porter  <jporterbugs@gmail.com>

	Add more detail about how to invoke Eshell commands

	* doc/misc/eshell.texi (Variables): Move footnote explaining "REPL"
	from here...
	(Top): ... to its first use here.
	(Commands): Move explanation about kernel functions to here.
	(Invocation): Describe command form and Lisp form.  Fix documentation
	about priority of commands in command form.
	(Arguments): Add a cross reference to the Invocation node.

2023-01-17  Alan Mackenzie  <acm@muc.de>

	CC Mode: On removal of "typedef", remove pertinent types from c-found-types

	For this purpose, record the type names declared by typedef in a text
	property, c-typedef, on the typedef.  On any change to that "typedef" or a
	type, remove the old identifier(s) from c-found-types.

	This should fix bug #59671.

	* lisp/progmodes/cc-defs.el (c-search-forward-non-nil-char-property): New
	macro.

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): Move the scope of
	identifier-start from the "inner" let form to the outer one.  Amend the
	return value such that the middle element of the second element is now the
	position of the "typedef", not merely non-nil.

	* lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Disregard the LIMIT
	parameter when fontifying the declarators of a typedef construct.  Also in
	this case, set the c-typedef text property on the "typedef" to the list of
	declared types.  Amend this list when these declared types change.
	(c-font-lock-single-decl): Massage the `types' argument given to
	c-font-lock-declarators.
	(c-font-lock-cut-off-declarators): Amend to work when the starting point of
	the fontification is inside a brace block.

	* lisp/progmodes/cc-mode.el (c-before-change-de-typedef)
	(c-after-change-de-typedef): New functions.
	(c-update-new-id): Replace the erroneous c-end-of-current-token with a clause
	containing c-forward-token-2.
	(c-before-change): Call c-before-change-de-typedef.
	(c-after-change): Call c-after-change-de-typedef.

2023-01-17  F. Jason Park  <jp@neverwas.me>

	Don't preserve non-module minor modes in erc-open

	* lisp/erc/erc-common.el (define-erc-module): Add symbol property
	`erc-module' to minor modes defined as part of a module.
	* lisp/erc/erc.el (erc--merge-local-modes): Be more conservative when
	persisting local minor-mode state across ERC sessions.  User and
	third-party modes that were not defined via `define-erc-modules'
	should be left alone.
	(erc-open): Run major-mode hooks and enable minor modes after prompt
	has been set up.  This ensures that module-setup code can access a
	fully initialized `erc-input-marker'.
	* test/lisp/erc/erc-tests.el (erc--merge-local-modes): Add mocks for
	`erc-module' symbol property and a test case covering some foreign ERC
	mode.
	(define-erc-module--global, define-erc-module--local): Expect the
	`erc-module' symbol property to be defined for mode symbols and
	aliases.  (Bug#60784.)

2023-01-17  F. Jason Park  <jp@neverwas.me>

	Use correct buffer for local-module vars in erc-open

	* lisp/erc/erc.el (erc--target-priors): New internal variable to do
	for target buffers what `erc--server-reconnecting' does for server
	buffers.
	(erc-open): Source the state of a local module's mode variable from
	its actual buffer rather than its server buffer.  Additionally, make
	all local variables from a prior session available to
	module-activation functions and `erc-mode' hooks, even when
	`erc-reuse-buffers' is nil.  This bug arrived with the introduction of
	"local-modules" (bug#57955).

	* test/lisp/erc/erc-scenarios-base-local-modules.el
	(erc-scenarios-base-local-modules--toggle-helpers): Remove useless
	`with-current-buffer'.
	(erc-scenarios-base-local-modules--local-var, erc--phony-sblm--enable,
	erc--phony-sblm--disable, erc--phony-sblm--mode): Add fake local
	module and data var for test scenario.
	(erc-scenarios-base-local-modules--var-persistence) Add slightly hacky
	test case with promise to improve later when splitting the file.

2023-01-17  Eli Zaretskii  <eliz@gnu.org>

	Fix display of warnings on w32 console

	* lisp/emacs-lisp/warnings.el (warnings-suppress): Use alternative
	symbol for TTY frames on MS-Windows.

2023-01-17  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix buffer-list-update-hook for indirect buffers

	Fmake_indirect_buffer can be told whether to run buffer hooks since
	bug#49160, but until now it ran buffer-list-update-hook irrespective
	of this.

	* src/buffer.c (Fmake_indirect_buffer): Don't run
	buffer-list-update-hook when called with a non-nil
	INHIBIT-BUFFER-HOOKS argument.
	(run_buffer_list_update_hook): Don't special-case NULL argument, as
	no such callers remain.

	* test/src/buffer-tests.el
	(buffer-tests-inhibit-buffer-hooks-indirect): Test whether indirect
	buffer hooks are run regardless of whether base buffer hooks are
	inhibited.  Check that all three buffer hooks, not just
	kill-buffer-query-functions, are inhibited.

2023-01-17  Yuan Fu  <casouri@gmail.com>

	Fix treesit-node-first-child-for-pos (bug#60127)

	The problem is due to a bug in ts_node_first_child_for_pos, but
	tree-sitter is moving pretty slowly right now so I reimplemented a
	correct version of it in treesit.c.

	* src/treesit.c (treesit_cursor_first_child_for_byte): New function.
	(Ftreesit_node_first_child_for_pos): Use the new function.

2023-01-16  Mattias Engdegård  <mattiase@acm.org>

	Fix hfy-exclude-file-rules (bug#60562)

	* lisp/htmlfontify.el (hfy-exclude-file-rules):
	Fix broken defcustom type; no longer fails test-custom-opts.
	Fix regexps not to use newline-sensitive patterns like `.` and `$`
	which do not make sense when matching file names.
	Better doc string.
	* lisp/htmlfontify.el (hfy-list-files): Simplify regexp argument.

2023-01-16  Alan Mackenzie  <acm@muc.de>

	CC Mode: Prevent ids in temporary "declarators" getting into c-found-types

	This should fix bug #60765.  In the scenario type an identifier in front of
	foo (bar, baz), as when started a new statement.  This temporarily makes the
	function call a declarator, and bar and baz types.  Don't enter bar and baz
	into c-found-types.

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1) (CASE 6): When a
	'maybe type triggers this case, set `unsafe-maybe' to non-nil.

2023-01-16  João Távora  <joaotavora@gmail.com>

	Fix M-x eglot prompt when connection already exists (bug#60557)

	Before this change, if a current connection existed at the time of M-x
	eglot, user would be first asked to enter into M-x eglot's interactive
	spec details about new command line arguments, and only afterwards be
	prompted about what to do with the current connection (which could be
	to reconnect to it using the same arguments, or tear it down and make
	a new one).

	This is very confusing, as users may not be fully aware of the
	distinction between "reconnect" vs "disconnect-and-connect".  They
	might not know if any new command line arguments provided are taking
	effect or not.

	This change simplifies this and removes the option to "reconnect
	instead" from M-x eglot (users can do that at any time via M-x
	eglot-reconnect).  It also ensures that users are informed about a
	current connection before asking to enter new command line arguments
	and not the other way round.

	* lisp/progmodes/eglot.el (eglot): Rework.

2023-01-16  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter indent preset function (bug#60270)

	* lisp/treesit.el (treesit-simple-indent-presets): Fix
	prev-adaptive-prefix so it doesn't return nil if the previous line has
	no prefix.
	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.

2023-01-15  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Support the option ruby-block-indent

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--block-indent-anchor):
	New function.
	(ruby-ts--indent-rules): Use it.

	* test/lisp/progmodes/ruby-ts-mode-tests.el:
	Run indent test for ruby-block-indent.rb.

2023-01-15  Theodor Thornhill  <theo@thornhill.no>

	Improve indentation for jsx

	* lisp/progmodes/js.el (js--treesit-indent-rules): Use more parent
	anchors and fix typo with wrong indent offset variable.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): Use more parent anchors.

2023-01-15  Sean Whitton  <spwhitton@spwhitton.name>

	* lisp/subr.el (while-let): Fix docs if-let->if-let* (bug#60758).

2023-01-15  Sean Whitton  <spwhitton@spwhitton.name>

	Revert "* lisp/subr.el (while-let): Use if-let, not if-let* (bug#60758)."

	This reverts commit 083badc9c122a802080552e7771e78ee47c01e3c.

2023-01-15  Stefan Kangas  <stefankangas@gmail.com>

	Bump use-package version for Emacs 29.1

	* lisp/use-package/use-package.el: Bump version to 2.4.5.

2023-01-15  Eli Zaretskii  <eliz@gnu.org>

	Improve error message from sqlite-mode.el

	* lisp/sqlite-mode.el (sqlite-mode-open-file): Add error
	checking.  (Bug#60490)

2023-01-15  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode block comment indentation (bug#60270)

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--comment-2nd-line-anchor): Handle another edge case.

2023-01-15  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode label indent

	Fix indentation of the statement right under a label.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Fix.
	(c-ts-mode--top-level-label-matcher): Fix.

2023-01-15  Yuan Fu  <casouri@gmail.com>

	Fix statement indent for c-ts-mode (bug#59686) (bug#60280)

	Instead of trying to figure out the correct anchor, now we just count
	the layers of {} blocks between the node and the root node.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--indent-styles): Use new offset functions
	c-ts-mode--close-bracket-offset and c-ts-mode--statement-offset.
	(c-ts-mode--bracket-children-anchor): Remove function.
	(c-ts-mode--top-level-label-matcher): New variable.
	(c-ts-mode--statement-offset)
	(c-ts-mode--close-bracket-offset): New offset functions.

2023-01-15  Yuan Fu  <casouri@gmail.com>

	Allow offset in tree-sitter indent rules to be functions

	This is needed for fixing C indentation.  See next comment.

	* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
	* lisp/treesit.el (treesit-simple-indent): Try evaluating OFFSET as a
	function if it's not integer nor variable.

2023-01-15  Yuan Fu  <casouri@gmail.com>

	Support filling line comments in c-ts-mode

	Now we handle line comments separately because for line comments, each
	line is an individual node, unlike block comments, where the whole
	block comment is a single node.  fill-comment-paragraph turns out to
	do the job perfectly fine.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--fill-paragraph): Extract out most parts into
	c-ts-mode--fill-block-comment.
	(c-ts-mode--fill-block-comment): New extracted function.

2023-01-15  Eli Zaretskii  <eliz@gnu.org>

	Fix expansion of wildcards in ls-lisp.el

	* lisp/ls-lisp.el (ls-lisp--dired): Fix error message text.
	Handle the case of a wildcard specifying directories.  (Bug#60819)

2023-01-15  Eli Zaretskii  <eliz@gnu.org>

	Fix messages displayed when diary is shown

	* lisp/calendar/diary-lib.el (diary-list-entries): Display the
	"...done" message only if there's no important message in the
	echo-area.  (Bug#60795)

2023-01-14  Theodor Thornhill  <theo@thornhill.no>

	Add constructor_declaration as java-ts-mode defun

	* lisp/progmodes/java-ts-mode.el (java-ts-mode): Extend
	treesit-defun-type-regexp.

2023-01-14  Gregory Heytings  <gregory@heytings.org>

	Further improvement for non-string values in pcomplete

	* lisp/pcomplete.el (pcomplete-arg): Use the string representation
	of the argument value instead of the text representation of the
	argument.  Return the value, even when it is not a string, when
	index is 'last'.  Fixes bug#60464.

2023-01-14  Juri Linkov  <juri@linkov.net>

	Fix the case in first-completion revealed by minibuffer-tests

	* lisp/simple.el (first-completion): Add the text-property 'first-completion'
	when the first completion is at the beginning of the buffer.

	* test/lisp/minibuffer-tests.el (completions-header-format-test):
	Revert the recent change.

2023-01-14  Theodor Thornhill  <theo@thornhill.no>

	Fix indent and font-lock for annotation_type

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Indent
	inside body.
	(java-ts-mode--font-lock-settings): Add rule for name in
	annotation_type_element_declaration.

2023-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	apropos.el: Fix bug#60628

	* lisp/apropos.el (apropos--map-preloaded-atoms): New function.
	(apropos-documentation): Use it.
	(apropos-documentation-check-elc-file): Don't presume #@ is preceded by
	a newline (since that's not the case any more since commit
	900b09c0235d54d5), but be more careful not to burp on false positives.

2023-01-14  Theodor Thornhill  <theo@thornhill.no>

	Fix indentation of some declarations and statements

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new
	rules so that we don't anchor at col 0.

2023-01-14  Theodor Thornhill  <theo@thornhill.no>

	Fix indentation of object_expressions in csharp-ts-mode

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): Make
	sure the opening brace is indented at parent-bol, and everything else
	is indented.

2023-01-14  Xi Lu  <lx@shellcodes.org>

	Replace 'hfy-find-cmd' with 'directory-files-recursively'.

	This removes a potential vulnerability to maliciously
	named files.  (Bug#60562)
	* lisp/htmlfontify.el (hfy-exclude-file-rules): New defcustom.
	(hfy-list-files): Reimplement using 'directory-files-recursively'.

2023-01-14  Eli Zaretskii  <eliz@gnu.org>

	Disable and document 'doc-view-mupdf-use-svg' (bug#58041)

	* lisp/doc-view.el (doc-view-mupdf-use-svg): Disable by default.
	* etc/NEWS: Document.  Patch by Visuwesh <visuweshm@gmail.com>.
	Do not merge to master.

2023-01-14  Eshel Yaron  <me@eshelyaron.com>  (tiny change)

	Eglot: don't use "nil" as minibuffer initial input

	Doing M-x eglot in a buffer for which buffer-file-name is nil, prompts
	the user for a major mode to manage by invoking completing-read.  The
	way completing-read was called would end up with the string "nil" as
	the initial minibuffer input, which is not very useful nor is it a
	valid input.
	* lisp/progmodes/eglot.el (eglot--guess-contact): Tweak prompt for
	major mode.  (Bug#60379)

2023-01-14  Paul Eggert  <eggert@cs.ucla.edu>

	Fix dependency bug when building lwlib

	* lwlib/Makefile.in (DEPFLAGS): Use OBJS to calculate dependency
	file names, not ALLOBJS.  This fixes a typo introduced
	in 2015-05-15 "Replace AC_SUBST_FILE in configure with include in
	Makefiles" that caused lwlib/*.o to not be rebuilt sometimes
	when that was needed.

2023-01-13  Yuan Fu  <casouri@gmail.com>

	Fix use of build_pure_c_string in treesit.c

	This is brought up in bug#60691.  build_pure_c_string should only be
	used in places such as syms_of_treesit, which are called just once,
	during dumping.

	* src/treesit.c (Vtreesit_str_libtree_sitter):
	(Vtreesit_str_tree_sitter):
	(Vtreesit_str_dot):
	(Vtreesit_str_question_mark):
	(Vtreesit_str_star):
	(Vtreesit_str_plus):
	(Vtreesit_str_pound_equal):
	(Vtreesit_str_pound_match):
	(Vtreesit_str_pound_pred):
	(Vtreesit_str_open_bracket):
	(Vtreesit_str_close_bracket):
	(Vtreesit_str_open_paren):
	(Vtreesit_str_close_paren):
	(Vtreesit_str_space):
	(Vtreesit_str_equal):
	(Vtreesit_str_match):
	(Vtreesit_str_pred): New variables.

	(treesit_load_language):
	(Ftreesit_pattern_expand):
	(Ftreesit_query_expand):
	(treesit_eval_predicates): Use new variables.

	(treesit_check_buffer_size):
	(treesit_compose_query_signal_data):
	(treesit_check_range_argument):
	(Ftreesit_parser_set_included_ranges):
	(treesit_predicate_capture_name_to_node):
	(treesit_predicate_equal):
	(treesit_predicate_match):
	(treesit_predicate_pred): Use build_string for signal message.

	(syms_of_treesit): Initialize new variables.

2023-01-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/subr.el (combine-change-calls-1): Fix bug#60467

	Don't stop at timestamps.  Strip them for now, to be on the safe side.
	Don't merge into `master` where we'll use a better fix.

2023-01-13  Michael Albinus  <michael.albinus@gmx.de>

	Adapt tramp-tests.el  (do not merge with master)

	* test/lisp/net/tramp-tests.el (tramp--test-container-p):
	Rename from `tramp--test-docker-p'.  Handle also "podman" method.
	Adapt callees.

2023-01-13  Eli Zaretskii  <eliz@gnu.org>

	Fix minibuffer-completion tests

	* test/lisp/minibuffer-tests.el (completions-header-format-test):
	Fix the test which first fired, and then drew the target...

2023-01-13  Daniel Martín  <mardani29@yahoo.es>

	Add c-ts-mode tests

	* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New .erts file
	to test indentation of typical C constructs and prevent regression of
	bug fixes.
	* test/lisp/progmodes/c-ts-mode-tests.el: New file with c-ts-mode
	tests.

2023-01-13  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode--fill-paragraph

	Example:

	       doc: /* Return non-nil if NODE1 and NODE2 are the same node.
	If any one of NODE1 and NODE2 is nil, return nil.
	This function uses the same equivalence metric as `equal'.  */

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragraph): Fix the
	case where there are words before the /*, like the example above.

2023-01-13  Eli Zaretskii  <eliz@gnu.org>

	Fix minor issues with 'pp' and related commands

	* etc/NEWS:
	* lisp/emacs-lisp/pp.el (pp-use-max-width, pp-emacs-lisp-code):
	Mention in doc string that formatting via 'pp-emacs-lisp-code'
	could be slow.
	(pp-eval-expression, pp-macroexpand-expression): Honor
	'pp-use-max-width'.  (Bug#58687)

2023-01-12  Yuan Fu  <casouri@gmail.com>

	Equal now recognizes tree-sitter nodes (bug#60659)

	Now equal uses ts_node_eq to check equality between nodes.

	* doc/lispref/parsing.texi:
	(Accessing Node Information): Update manual.
	* src/fns.c (internal_equal): Handle tree-sitter nodes.
	* src/treesit.c (treesit_node_eq): New function.
	(Ftreesit_node_eq): Factor out.  Update docstring.
	* src/treesit.h (treesit_node_eq): Declare new function.

2023-01-12  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode comment indentation (bug#60270)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Move the
	star rule up.

2023-01-12  Sean Whitton  <spwhitton@spwhitton.name>

	* lisp/subr.el (while-let): Use if-let, not if-let* (bug#60758).

2023-01-12  Gregory Heytings  <gregory@heytings.org>

	* lisp/simple.el (next-completion): Handle first completion specially.

	When completions-header-format is nil and completion-show-help is nil,
	the first completion is at the beginning the buffer, so 'M-<down>'
	missed it and moved to the second completion.  Handle this case by
	setting/checking the special text-property 'first-completion' that
	is nil at the first call (bug#60411).

2023-01-12  Eli Zaretskii  <eliz@gnu.org>

	Fix encoding with 'utf-8-auto'

	* src/coding.c (encode_coding_utf_8): Fix encoding with
	'utf-8-auto': it should produce BOM, per the documentation of
	the :bom attribute.  (Bug#60750)

	* lisp/international/mule.el (define-coding-system): Doc fix.

	* test/src/coding-tests.el (coding-tests): Use
	'with-coding-priority' instead of 'prefer-coding-system', as the
	latter has global persistent effect and affects further tests.

2023-01-12  Po Lu  <luangruo@yahoo.com>

	Report cursor correctly on PGTK when there is a margin

	* src/pgtkterm.c (pgtk_draw_window_cursor): Adjust frame_x by
	the margin width as well.

2023-01-11  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6.1

2023-01-11  Theodor Thornhill  <theo@thornhill.no>

	Add support for annotation_type_declaration

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--keywords): Add new
	keyword.
	(java-ts-mode--font-lock-settings): Add font-locking to the type
	feature.

2023-01-11  Juri Linkov  <juri@linkov.net>

	* etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'.

	* lisp/outline.el (outline-minor-mode-cycle--bind):
	Add docstring (bug#60426).
	(outline-minor-mode-cycle--bind): Default 'map' to
	'outline-minor-mode-cycle-map'.
	(outline-minor-mode-cycle-map): Improve docstring.
	(outline-minor-mode): Move margin-cycling keys to
	'outline-minor-mode-cycle-map'.

2023-01-11  Philip Kaludercic  <philipk@posteo.net>

	Ensure VC package names are not empty

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Raise an error
	if the package name is empty.
	(package-vc-install): Avoid generating an empty file name, if a URL
	ends with a slash, and raise an error if the package name is empty.

2023-01-11  Philip Kaludercic  <philipk@posteo.net>

	Handle missing package description when unpacking vc packages

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Create a dummy
	descriptor if PKG-DESC is nil.

2023-01-10  Alan Mackenzie  <acm@muc.de>

	CC Mode: partially revert commit from 2022-10-04

	This reversion is of an ill-advised optimization, which resulted in non-type
	identifiers getting fontified as types.

	* lisp/progmodes/cc-fonts.el (c-fontify-new-found-type): Rather than writing
	the expected face directly to the text, instead remove the `fontified'
	property.  This allows the full font-lock mechanism to fontify the buffer
	correctly.

2023-01-10  Manuel Uberti  <manuel.uberti@inventati.org>

	Fix reftex-citation docstring (bug#60710)

	* lisp/textmodes/reftex-cite.el (reftex-citation): Fix spelling.

2023-01-10  Robert Pluim  <rpluim@gmail.com>

	Improve 'describe-char-fold-equivalences' docstring

	* lisp/char-fold.el (describe-char-fold-equivalences): Explain what
	the output looks like.

2023-01-10  F. Jason Park  <jp@neverwas.me>

	Remove obsolete server buffers on MOTD in erc-track

	* lisp/erc/erc-networks.el
	(erc-networks--copy-server-buffer-functions): New internal hook
	through which modules can perform housekeeping when server buffers
	belonging to the same network context are merged.
	(erc-networks--copy-over-server-buffer-contents): Run new internal
	hook `erc-networks--copy-server-buffer-functions'.
	* lisp/erc/erc-track.el (erc-track-enable, erc-track-disable): Manage
	membership in `erc-networks--copy-server-buffer-functions' hook.
	(erc-track--replace-killed-buffer): New function to replace server
	buffer being killed in `erc-modified-channels-alist'.
	* test/lisp/erc/erc-scenarios-base-association.el
	(erc-scenarios-networks-merge-server-track): New test.
	* test/lisp/erc/resources/networks/merge-server/track.eld: New test
	data.  (Bug#60560.)

2023-01-10  Manuel Uberti  <manuel.uberti@inventati.org>

	Fix completion-auto-help docstring (bug#60709)

	* lisp/minibuffer.el (completion-auto-help): Remove extra period.

2023-01-10  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode comment indent

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--comment-2nd-line-matcher): Also make sure PARENT is a
	comment node.

2023-01-10  Yuan Fu  <casouri@gmail.com>

	Highlight identifier in import statements in js-ts-mode

	Follow-up on bug#60689.  This commit just copied the change in
	e385c099b8c to js-ts-mode.

	* lisp/progmodes/js.el:
	(js--treesit-font-lock-settings): Add import query.

2023-01-09  Yuan Fu  <casouri@gmail.com>

	Don't print named tree-sitter nodes with parenthesizes (bug#60696)

	* src/print.c (print_vectorlike): Use empty string as delimiters if
	the node is named.

2023-01-09  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Improve fontification for import-statements in typescript-ts-mode

	(bug#60689)

	* lisp/progmodes/typescript-ts-mode.el:
	(typescript-ts-mode--font-lock-settings): Add rules to highlight the
	actual imports in import-statements.

2023-01-09  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode indentation for 2nd line in block comment (bug#60270)

	If the first line is "/*" or "/*   ", indent like this:

	/*
	   aaa

	If the first line is "/*   some text", indent like this:

	/*   some text
	     aaa

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles):
	(c-ts-mode--looking-at-star): Minor refactor.
	(c-ts-mode--comment-2nd-line-matcher)
	(c-ts-mode--comment-2nd-line-anchor): New functions.
	* lisp/treesit.el (treesit-simple-indent-presets):
	prev-adaptive-prefix doesn't handle the comment-start-skip case (i.e,
	2nd line) anymore.  (Handled by the new matcher.)

2023-01-09  Juri Linkov  <juri@linkov.net>

	* lisp/vc/diff-mode.el (diff-font-lock-keywords): Check for limit.

	This check is necessary since 'diff-beginning-of-hunk' can move
	not only backwards, but also forwards (bug#60660).

2023-01-09  Yuan Fu  <casouri@gmail.com>

	Minor improvement for tree-sitter explorer

	If you open an empty python buffer and type

	1 + 2
	a
	b

	Currently the explorer only displays the top-level node at point, ie,
	only 1 + 2, only a, or only b. That's kind of awkward, so if the
	buffer is small, show the entire parse tree.

	* lisp/treesit.el (treesit--explorer-refresh): See above.

2023-01-09  Yuan Fu  <casouri@gmail.com>

	Make sure NODE is not the root node in tree-sitter indent (bug#60602)

	There are two possible ways to solve the problem raised in the bug
	report: either make sure NODE is never the root (so that parent is
	never nil), or allow parent to be nil.

	If we go with the latter, a lot of matcher and anchor functions need
	change (they need to guard against a null parent).  I tried it, and
	needing to check for null parent is pretty annoying.  In comparison,
	if NODE is never the root, it is very convenient for the user, and it
	doesn't complicate the rule that much (and it's rather intuitive,
	people usually don't think of the case where NODE is the root node).
	So that's what I choose.

	* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
	* lisp/treesit.el (treesit-indent-function): Update docstring.
	(treesit--indent-1): Make sure NODE is not the root.

2023-01-08  Yuan Fu  <casouri@gmail.com>

	Fix label indent of GNU and Linux style in c-ts-mode (bug#60543)

	The previous fix isn't correct.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--indent-styles): New indent rule.  Fix the rule for Linux
	style.
	(c-ts-mode--top-level-label-matcher): New function.

2023-01-08  Evgeni Kolev  <evgenysw@gmail.com>

	Improve go-ts-mode Imenu, navigation and electric pair (bug#60407)

	The Imenu items are extended to support "Method", "Struct",
	"Interface", "Alias" and "Type".

	go-ts-mode is updated to use the Imenu facility added in commit
	b39dc7ab27a696a8607ab859aeff3c71509231f5.

	Variable electric-indent-chars is set in order to improve integration
	with Electric Pair mode.

	* lisp/progmodes/go-ts-mode.el (go-ts-mode--imenu-1) (go-ts-mode--imenu):
	Remove functions.
	(go-ts-mode--defun-name, go-ts-mode--interface-node-p)
	(go-ts-mode--struct-node-p, go-ts-mode--other-type-node-p)
	(go-ts-mode--alias-node-p): New functions.
	(go-ts-mode): Improve Imenu settings, navigation, add Electric Pair
	mode settings.

2023-01-08  Yuan Fu  <casouri@gmail.com>

	Revert "Add c-or-c++-ts-mode (bug#59613)"

	This reverts commit 1df2826639c912396fac0af108301533dac71406.

	I forgot about the feature freeze, sorry :-)

2023-01-08  Benson Chu  <bensonchu457@gmail.com>  (tiny change)

	Add back renamed function 'font-lock-fontify-syntactically-region'

	A more accurate replacement for font-lock-fontify-syntactically-region
	would be a function that funcalls the
	font-lock-fontify-syntactically-function variable. That way, callers
	of the function can inherit new behavior, if the value of that variable
	changes.

	* lisp/font-lock.el (font-lock-fontify-syntactically-region):
	Add function back, remove its obsolete alias.

2023-01-08  Eli Zaretskii  <eliz@gnu.org>

	Improve options and docs of M-x command completion

	* lisp/simple.el (read-extended-command-predicate): Expand the
	doc string.  Add 2 more selectable values.
	(command-completion-using-modes-and-keymaps-p): New function.
	(execute-extended-command): Mention
	'read-extended-command-predicate' in the doc string.  (Bug#60645)

2023-01-07  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6-90-ga6523f

2023-01-07  Yuan Fu  <casouri@gmail.com>

	Fix string fontification on python-ts-mode (bug#60599)

	* lisp/progmodes/python.el:
	(python--treesit-fontify-string): Generalize and skip anything
	before the first quote character.

2023-01-07  Yuan Fu  <casouri@gmail.com>

	Fix string-interpolation feature of python-ts-mode (bug#60599)

	* lisp/progmodes/python.el:
	(python--treesit-fontify-string-interpolation): New function.
	(python--treesit-settings): Use the new function for
	string-interpolation.

2023-01-07  Theodor Thornhill  <theo@thornhill.no>

	Add indentation rule for concatenated_string (bug#60572)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Indent to
	parent-bol.

2023-01-07  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Fix highlighting of variable-declarations in typescript-ts-mode

	(bug#60546)

	- Highlight variable declarations in catch-clauses.
	- Remove highlighting of variables where not declarations (improve
	  consistency with other *-ts-modes).

	* lisp/progmodes/typescript-ts-mode.el:
	(typescript-ts-mode--font-lock-settings): See above.

2023-01-07  Yuan Fu  <casouri@gmail.com>

	Fix label indentation for Linux style in c-ts-mode (bug#60543)

	Reference:
	1. https://www.gnu.org/software/indent/manual/indent/Common-styles.html
	2. https://www.gnu.org/software/indent/manual/indent/Option-Summary.html

	The GNU indent manual says Linux style should use -il1 flag, which
	means "indent labels to column 1".

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Indent label
	to column 1 in Linux style.

2023-01-07  Yuan Fu  <casouri@gmail.com>

	Remove duplicate entries in c-ts-mode's Imenu

	Right now the Class subindex includes top-level functions, which is
	wrong. This change ensures the Class subindex only contain classes and
	functions nested in those classes.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--defun-for-class-in-imenu-p): New function.
	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Use the new function.

2023-01-07  Yuan Fu  <casouri@gmail.com>

	Fix use of treesit-ready-p in c/c++-ts-mode

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode)
	(c++-ts-mode): Put setup code in a when form.

2023-01-07  Yuan Fu  <casouri@gmail.com>

	Add documentation for c/c++-ts-mode (bug#60443)

	Explain that tree-sitter c modes and cc-mode c modes don't share
	config variables.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode)
	(c++-ts-mode): Update docstring.

2023-01-07  Dmitry Gutov  <dgutov@yandex.ru>

	(ruby-ts--font-lock-settings): Improve highlighting in patterns

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	Improve highlighting in patterns: highlight values not keys as
	variable in the usual case; highlight keys when no value;
	highlight the "as pattern" variable.

2023-01-07  Yuan Fu  <casouri@gmail.com>

	Optionally include the namespace in c-ts-mode--declarator-identifier

	This is an additional fix for bug#60397.

	* lisp/progmodes/c-ts-mode.el:
	(c-ts-mode--declarator-identifier): New parameter QUALIFIED.
	(c-ts-mode--defun-name): Use qualified identifier.

2023-01-07  Yuan Fu  <casouri@gmail.com>

	Support namespaces in c++-ts-mode (bug#60397)

	Not a complete fix.  See the next commit.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add rules.
	(c-ts-mode--defun-name): Add namespace_definition.
	(c-ts-base-mode): Add namespace_definition to
	treesit-defun-type-regexp.

2023-01-07  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode--looking-at-star

	Not the topic of bug#60270 but reported in one of the replies.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--looking-at-star): Check not
	the character after point but character after BOL. Otherwise
	indentation is wrong when point is not at BOL.

2023-01-07  Yuan Fu  <casouri@gmail.com>

	Add c-or-c++-ts-mode (bug#59613)

	* lisp/progmodes/c-ts-mode.el
	(c-ts-mode--c-or-c++-regexp): New variable.
	(c-or-c++-ts-mode): New mode.
	* etc/NEWS: Mention c-or-c++-ts-mode.

2023-01-07  Eli Zaretskii  <eliz@gnu.org>

	Document the 'definition-name' property.

	* doc/lispref/symbols.texi (Standard Properties): Document
	'definition-name'.
	* doc/lispref/functions.texi (Defining Functions): Describe how to
	use 'definition-name' when generating function definitions at run
	time.  (Bug#60568)

2023-01-07  Dmitry Gutov  <dgutov@yandex.ru>

	(treesit-simple-indent-presets): Do that for 'or' as well.

	* lisp/treesit.el
	(treesit-simple-indent-presets): Do that for 'or' as well.

2023-01-07  kobarity  <kobarity@gmail.com>

	Fix 'python-shell-buffer-substring' when START is in middle of 1st line

	* lisp/progmodes/python.el (python-shell-buffer-substring): Instead
	of checking whether START is point-min, check whether START is in
	the first line.  (Bug#60466)
	* test/lisp/progmodes/python-tests.el
	(python-shell-buffer-substring-18): New test.

2023-01-07  Manuel Giraud  <manuel@ledu-giraud.fr>

	Rearrange the "Saving Emacs Sessions" section of the user manual

	* doc/emacs/misc.texi (Saving Emacs Sessions): Organize this
	node more logically with main behavior and important features
	near the top.   (Bug#60600)

2023-01-06  Dmitry Gutov  <dgutov@yandex.ru>

	(treesit-simple-indent-presets): Ensure 'and' works for anchors too

	* lisp/treesit.el (treesit-simple-indent-presets):
	Rewrite to return the last successful evaluation, not just t.

2023-01-06  Dmitry Gutov  <dgutov@yandex.ru>

	(treesit--indent-rules-optimize): Optimize 'and' and 'or' matcher forms

	* lisp/treesit.el (treesit--indent-rules-optimize):
	Optimize 'and' and 'or' matcher forms.  When 'and' has a 'query'
	matcher inside (as is the case in ruby-ts--indent-rules, many
	times over), this yields a significant performance boost.

2023-01-06  Dmitry Gutov  <dgutov@yandex.ru>

	(treesit-simple-indent-presets): Short-circuit 'and' and 'or'

	* lisp/treesit.el (treesit-simple-indent-presets):
	Short-circuit the 'and' and 'or' matchers.  To avoid calling all
	fns after one returned nil or truthy value, respectively.

2023-01-06  Dmitry Gutov  <dgutov@yandex.ru>

	(font-lock-regexp-face): New face

	* lisp/font-lock.el (font-lock-regexp-face): New face.

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings):
	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	* lisp/progmodes/js.el (js--treesit-font-lock-settings):
	Use it for regexps.

	* etc/NEWS: Mention the addition.

2023-01-06  Dmitry Gutov  <dgutov@yandex.ru>

	Unify the string interpolation delimiters face across ts modes

	* lisp/progmodes/js.el (js--treesit-font-lock-settings):
	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings):
	Use font-lock-misc-punctuation-face for string interpolation
	delimiters.

2023-01-06  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Highlight more kinds of parameters

	* lisp/progmodes/ruby-ts-mode.el
	(ruby-ts--font-lock-settings): Highlight destructured parameters,
	lambda parameters, identifiers in pattern matching clauses
	(array/hash) and exception variables.
	Move the 'symbol' matchers lower to make 'hash_key_symbol' lower
	priority than hash keys in match patterns.

2023-01-06  Robert Pluim  <rpluim@gmail.com>

	Fix `pr-interface'

	`pr-interface' specifies `inline' for its menu items, which is not
	necessary, but it causes `widget-choice-value-create' to bug
	out.  (Bug#60501)

	* lisp/wid-edit.el (widget-choice-value-create): Allow the value to be
	a non-list.
	* test/lisp/wid-edit-tests.el (widget-test-handle-spurious-inline):
	Add test to ensure that unnecessary :inline is allowed.

2023-01-06  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Further generic-related improvements in csharp-ts-mode (bug#60376)

	This is an additional patch for bug#60376.

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
	New rules.

2023-01-05  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Highlight method and block parameters

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	Add rules for method and block parameters.
	(ruby-ts-mode): Add corresponding feature.

2023-01-05  Perry Smith  <pedz@easesoftware.com>

	ruby-ts-mode: Highlight variable assignments

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	Bring back the 'assignment' feature.
	(ruby-ts-mode): Replace the unused 'variable' with 'assignment'.  Use
	the level 3 for consistency with other ts modes.
	Update the Commentary as well.

2023-01-05  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Move 'self' and 'super' from constants to keywords

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	Move 'self' and 'super' from constants to keywords.

2023-01-05  Dmitry Gutov  <dgutov@yandex.ru>

	(ruby-ts-mode): Split font-lock feature 'builtin' into two

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
	Split the 'builtin' feature in two: 'builtin-constant' and
	'builtin-variable'.
	(ruby-ts-highlight-predefined-constants):
	Drop the user option, the highlighting granularity can be chosen
	using treesit-font-lock-recompute-features.
	(ruby-ts--font-lock-settings): Update accordingly.
	(ruby-ts--predefined-constants, ruby-ts--predefined-variables):
	Fix docstrings.

2023-01-05  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violation due to fill-column indicator face

	* src/xdisp.c (extend_face_to_end_of_line): Use the original
	iterator metrics for the stretch glyph, the one unaffected by the
	'fill-column-indicator' face.  (Bug#60580)

2023-01-05  Juri Linkov  <juri@linkov.net>

	* lisp/cedet/semantic/symref/grep.el: Support ts-modes (bug#60525)

	(semantic-symref-filepattern-alist): Duplicate entries
	c-mode -> c-ts-mode, c++-mode -> c++-ts-mode, ruby-mode -> ruby-ts-mode,
	python-mode -> python-ts-mode.

2023-01-05  Eli Zaretskii  <eliz@gnu.org>

	Make 'toml-ts-mode' optional

	* etc/NEWS: Reflect the fact that 'toml-ts-mode' is optional.

	* lisp/textmodes/toml-ts-mode.el (auto-mode-alist): Don't autoload
	the addition of 'toml-ts-mode'.  (Bug#60559)

2023-01-04  Michael Albinus  <michael.albinus@gmx.de>

	Fix bug in Tramp multi-hop

	* lisp/net/tramp.el (tramp-compute-multi-hops): Make check for
	host name more robust.  (Bug#60499)

2023-01-04  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/files.el (find-sibling-rules): Fix docstring.

2023-01-04  Juri Linkov  <juri@linkov.net>

	Tree-sitter doc fixes (bug#60524)

	* doc/lispref/modes.texi (Parser-based Font Lock):
	Replace :lang with :language.

	* doc/lispref/parsing.texi (Language Grammar): Replace
	treesit-load-suffixes with dynamic-library-suffixes.
	(Retrieving Nodes): Fix function names.
	(Tree-sitter Major Modes): Fix treesit-ready-p args.
	Fix pxref to Parser-based Indentation.
	(Tree-sitter C API): Fix function names.

	* lisp/treesit.el (treesit--simple-indent-eval): Remove cond BODY
	duplicated from CONDITION.
	(treesit)<define-short-documentation-group>: Fix function names.

2023-01-04  Daniel Martín  <mardani29@yahoo.es>

	Fontify C++ function definitions in c-ts-mode (bug#60529)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--declarator-identifier):
	Teach the code how to extract the declarator of a node of type
	"qualified_identifier".
	(c-ts-mode--fontify-declarator): Consider the case where the
	identifier in a function declarator is buried inside
	"qualifier_identifier" nodes.

2023-01-03  Dmitry Gutov  <dgutov@yandex.ru>

	(ruby-ts-add-log-current-function): Fix when between two methods

	* lisp/progmodes/ruby-ts-mode.el
	(ruby-ts-add-log-current-function): Fix the case when point is
	between two methods.  'treesit-node-at' returns the 'def' node of
	the method after point in such case, so it behaved like point was
	inside the method below.

	* test/lisp/progmodes/ruby-ts-mode-tests.el
	(ruby-ts-add-log-current-method-outside-of-method):
	Update the test case.

	* test/lisp/progmodes/ruby-mode-tests.el
	(ruby-add-log-current-method-outside-of-method):
	Mirror that change.

2023-01-03  Sean Whitton  <spwhitton@spwhitton.name>

	* lisp/vc/vc-git.el (vc-git-checkin): Pass vc-git-diff-switches.

2023-01-02  Dmitry Gutov  <dgutov@yandex.ru>

	Extract common code into ruby-base-mode to derive from

	* lisp/progmodes/ruby-mode.el (ruby-base-mode):
	New major base mode, to set up common vars and hooks.
	(ruby-mode-variables): Delete.  Move most code to ruby-base-mode.
	And some -- to ruby-mode body.
	(ruby-mode): Derive from ruby-base-mode.  Also move some setup
	to there.

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
	Derive from ruby-base-mode.  Remove duplicating settings.

2023-01-02  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Indentation fixes

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-keywords):
	Fix for 'def' (which was misread as 'method' in the check).
	(ruby-ts--indent-rules): Indent the curly block closer the same
	way as the 'do ... end' closer.

2023-01-02  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts--font-lock-settings: Use more standard faces

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	Use more standard faces for regexp literals and string
	interpolation delimiters (following js-ts-mode).

2023-01-02  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Standardize the string literal highlights

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	Use font-lock-string-face for %w() and `...`.
	Use font-lock-constant-face (just like we do for symbol literals)
	for symbol array literals, %i().
	Combine the matchers for string content and heredocs.

2023-01-02  Theodor Thornhill  <theo@thornhill.no>

	Improve fontification in java-ts-mode (bug#60492)

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
	Add expression_statement with only identifier support.

2023-01-02  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Fontification improvements in typescript-ts-mode (bug#60500)

	- highlight method-definitins in interfaces.
	- only highlight variable-declarations, not variables
	  everywhere (consistency with other modes).
	- move highlighting of method invocations to level 4

	* lisp/progmodes/typescript-ts-mode.el:
	(typescript-ts-mode--font-lock-settings): Update rules.
	(typescript-ts-mode, tsx-ts-mode): Update feature list.

2023-01-02  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Improve fontification consistency in js-ts-mode (bug#60503)

	* lisp/progmodes/js.el (js--treesit-font-lock-settings): Highlight
	declared parameters in functions, methods and arrow-expressions as
	variables.

2023-01-02  Dmitry Gutov  <dgutov@yandex.ru>

	(typescript/tsx-ts-mode): Split font-lock feature list into 4 values

	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode)
	(tsx-ts-mode): Split font-lock feature list into 4 values.

2023-01-02  Dmitry Gutov  <dgutov@yandex.ru>

	js-ts-mode: Move 'string-interpolation' to font-lock level 3

	* lisp/progmodes/js.el (js-ts-mode):
	Move 'string-interpolation' to font-lock level 3.

2023-01-02  Eli Zaretskii  <eliz@gnu.org>

	Fix shrinking of the tab-bar

	* src/haikufns.c (haiku_change_tab_bar_height):
	* src/pgtkfns.c (pgtk_change_tab_bar_height):
	* src/nsfns.m (ns_change_tab_bar_height):
	* src/w32fns.c (w32_change_tab_bar_height):
	* src/xfns.c (x_change_tab_bar_height): Don't let the number of
	tab-bar lines degenerate to zero due to integer division.
	(Bug#60210)

2023-01-02  F. Jason Park  <jp@neverwas.me>

	Fix default-port regression in erc-select-read-args

	* lisp/erc/erc.el (erc--warn-unencrypted): New function, likely
	temporary, to warn new users connecting interactively to the default
	server, "irc.libara.chat", via the default non-TLS port, 6667.
	(erc-select-read-args): Remove stray code from incomplete feature
	introduced by bug#56514.  Ensure connecting always works with default
	port, which is non-TLS.  Respect `erc-prompt-for-password' when user
	pastes URL containing password component into "server" prompt.  Maybe
	add `erc--warn-unencrypted' as one-off hook for impending connection.
	* test/lisp/erc/erc-tests.el (erc-select-read-args): Always expect
	password prompt and sometimes a non-TLS port when `erc' called
	interactively.  (Bug#60428.)

2023-01-01  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6-81-g563a43

2023-01-01  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Remove some currently unused functions

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--grand-parent-is)
	(ruby-ts--ancestor-start, ruby-ts--ancestor-is):
	Remove some currently unused functions.

2023-01-01  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-ts-mode: Highlight singleton method definitions and setters

	* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
	Highlight singleton method definitions and setters.

2023-01-01  Perry Smith  <pedz@easesoftware.com>
	    Dmitry Gutov  <dgutov@yandex.ru>

	Add ruby-ts-mode

	* etc/NEWS: Mention the new mode.

	* lisp/progmodes/ruby-ts-mode.el: New file.

	* test/lisp/progmodes/ruby-ts-mode-tests.el: New file.

	* lisp/progmodes/eglot.el (eglot-server-programs):
	Add ruby-ts-mode to the Ruby entry.

2023-01-01  Daniel Martín  <mardani29@yahoo.es>

	Fix fontification of C++ reference return types (bug#60441)

	* lisp/progmodes/c-ts-mode.el (c-ts-fontify-error): Treat
	reference_declarator nodes the same as pointer_declarator nodes when
	calculating the identifier to fontify.

2023-01-01  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Adjust function-call fontification in csharp-ts-mode (bug#60376)

	- Ensure method-invocations are highlighted only on level 4.
	- Ensure consistent fontification of variable declarations
	  (don't highlight usage of all variables).
	- Fix issues with highlighting types in new() expressions.
	- Fix issues with generic types in variable-declarations not using "var".
	- Use fewer, more general queries for function-invocations. simplify code.

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
	Change rules.
	(csharp-ts-mode): Update feature list.

2023-01-01  Eli Zaretskii  <eliz@gnu.org>

	Rewrite Antinews in ELisp manual for Emacs 29

	* doc/lispref/anti.texi (Antinews): Rewrite for Emacs 29.
	* doc/lispref/elisp.texi (Top): Update the top-level menu for
	Antinews.

2023-01-01  Eli Zaretskii  <eliz@gnu.org>

	Update Antinews in the user manual for Emacs 29

	* doc/emacs/anti.texi (Antinews): Rewrite for Emacs 29.
	* doc/emacs/emacs.texi (Top): Adjust the top-level menu.

2023-01-01  Mattias Engdegård  <mattiase@acm.org>

	Fix shortdoc-tests failure with respect to regexp-opt-charset

	* test/lisp/emacs-lisp/shortdoc-tests.el (regexp-opt): Require.
	`regexp-opt-charset` is not autoloaded, and whether `regexp-opt` is
	preloaded is configuration-dependent.

2023-01-01  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'isearch-open-overlay-temporary'

	* lisp/isearch.el (isearch-open-overlay-temporary): Document that
	the overlay passed to the 'isearch-open-invisible-temporary'
	function cannot be deleted too early.  (Bug#60399)

2023-01-01  Eli Zaretskii  <eliz@gnu.org>

	Document 'use-package' in the 2 main manuals

	* doc/emacs/custom.texi (Init Examples):
	* doc/lispref/loading.texi (Named Features): Document 'use-package'
	and its most important features.

2022-12-31  Yuan Fu  <casouri@gmail.com>

	Build recipe interactively in treesit-install-language-grammar

	If there is not existing recipe for a language, prompt to build the
	recipe interactively.

	* lisp/treesit.el (treesit--install-language-grammar-build-recipe):
	New functions.
	(treesit-install-language-grammar): Use the new function.

2022-12-31  Theodor Thornhill  <theo@thornhill.no>

	Tweak csharp-mode font-lock-settings (bug#60376)

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
	Rearrange features.
	(csharp-ts-mode): Rearrange features.

2022-12-31  Eli Zaretskii  <eliz@gnu.org>

	Revert a recent change which causes errors

	* lisp/subr.el (buffer-match-p): Undo last change, as it causes an
	error in a timer function of show-paren-mode.

2022-12-31  Stefan Kangas  <stefankangas@gmail.com>

	Fix misspelled functions in shortdoc groups

	* lisp/emacs-lisp/shortdoc.el (file, list): Fix misspelled function
	names: 'file-writable-p' and 'seq-reduce'.
	* test/lisp/emacs-lisp/shortdoc-tests.el (subr-x): Require.
	(shortdoc-all-functions-fboundp): New test.

2022-12-31  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Simplify introduction of use-package manual

	* doc/misc/use-package.texi (Getting Started): Do not advise requiring
	the package, since the macro is autoloaded; also correct the macro's
	name.  (Bug#60366)

2022-12-31  kobarity  <kobarity@gmail.com>

	Fix python-shell-buffer-substring when retrieving a single statement

	* lisp/progmodes/python.el (python-shell-buffer-substring): Do not add
	"if True:" line when retrieving a single statement.
	(python-shell-send-region): Add a reference to
	`python-shell-buffer-substring' in docstring.
	* test/lisp/progmodes/python-tests.el (python-shell-buffer-substring-13)
	(python-shell-buffer-substring-14, python-shell-buffer-substring-15)
	(python-shell-buffer-substring-16, python-shell-buffer-substring-17):
	New tests. (Bug#60142)

2022-12-30  Yuan Fu  <casouri@gmail.com>

	Show tree-sitter query source when signaling query error

	* src/treesit.c (treesit_compose_query_signal_data): Add QUERY_SOURCE
	parameter.
	(treesit_ensure_query_compiled)
	(Ftreesit_query_capture): Add query source.

2022-12-30  Dmitry Gutov  <dgutov@yandex.ru>

	Add version tags and mention the new options in NEWS

	* etc/NEWS: Mention the new options (bug#60186).

	* lisp/progmodes/ruby-mode.el (ruby-block-indent)
	(ruby-after-operator-indent, ruby-method-call-indent)
	(ruby-parenless-call-arguments-indent): Add version tags.

2022-12-30  Dmitry Gutov  <dgutov@yandex.ru>

	Add new options for Ruby code indentation

	* lisp/progmodes/ruby-mode.el (ruby-block-indent)
	(ruby-after-operator-indent, ruby-method-call-indent)
	(ruby-parenless-call-arguments-indent): New options (bug#60186).
	(ruby-smie-grammar): Specify associativity for "?".
	(ruby-smie--indent-to-stmt): Add optional argument.

	* test/lisp/progmodes/ruby-mode-resources/ruby.rb: New cases.

	* test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb:
	* test/lisp/progmodes/ruby-mode-resources/ruby-block-indent.rb:
	* test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb:
	* test/lisp/progmodes/ruby-mode-resources/
	ruby-parenless-call-arguments-indent.rb: New files.

	* test/lisp/progmodes/ruby-mode-tests.el: Add indentation tests for new files.

2022-12-30  Yuan Fu  <casouri@gmail.com>

	Add treesit-install-language-grammar

	Per discussion on emacs-devel, I added function to install and compile
	language grammars.

	* lisp/treesit.el (treesit-language-source-alist): New variable.
	(treesit-install-language-grammar)
	(treesit--call-process-signal)
	(treesit--install-language-grammar-1): New functions.

2022-12-30  Yuan Fu  <casouri@gmail.com>

	Add treesit-language-abi-version

	Also rename treesit-language-version to treesit-library-abi-version,
	because the old name is somewhat misleading.

	* doc/lispref/parsing.texi (Language Grammar): Update.
	* src/treesit.c (Ftreesit_library_abi_version): Rename.
	(Ftreesit_language_abi_version): New function.

2022-12-30  Yuan Fu  <casouri@gmail.com>

	Change "language definition" to "language grammar" in manual.

	"Language grammar" is apparently the more widely used term among
	people talking about tree-sitter.  To avoid confusion, I think it's
	good to use that rather than "language definition", which is a term
	that I made up :-)

	Feel free to revert this if it is too much change.

	* doc/lispref/elisp.texi:
	* doc/lispref/modes.texi:
	* doc/lispref/parsing.texi:
	* lisp/treesit.el: Change "language definition" to "language grammar".

2022-12-30  Michael Albinus  <michael.albinus@gmx.de>

	* test/lisp/net/tramp-tests.el (tramp-test32-shell-command): Fix test.

	* lisp/eshell/em-tramp.el (tramp): Require also at runtime.  (Bug#60402)

2022-12-30  Roland Winkler  <winkler@gnu.org>

	lisp/textmodes/bibtex.el: fix bibtex-beginning-of-entry (bug#56636)

	lisp/textmodes/bibtex.el (bibtex-beginning-of-entry):
	use bibtex-any-entry-maybe-empty-head (bug#56636)

2022-12-30  Roland Winkler  <winkler@gnu.org>

	lisp/textmodes/bibtex.el: Treat $ as punctuation in BibTeX fields (bug#50202)

2022-12-29  Gregory Heytings  <gregory@heytings.org>

	Clarify the documentation of 'set-face-attribute'

	* lisp/faces.el (set-face-attribute): Mention the evaluation order
	of attribute-value pairs in the docstring.

	* doc/lispref/display.texi (Attribute Functions): Likewise, and
	explain with an example that a different argument order might give
	different results.  Also align the documentation in the manual
	with that of the docstring, whose changes were discussed in
	bug#57499 but not included in the manual.

2022-12-29  Gregory Heytings  <gregory@heytings.org>

	Handle non-string values in pcomplete

	* lisp/pcomplete.el (pcomplete-arg): When
	pcomplete-parse-arguments-function returns a non-string value,
	return the string the user typed in, and attach the value as a
	text property to that string.  Fixes bug#59956 and bug#60021.

2022-12-29  Gregory Heytings  <gregory@heytings.org>

	Fix completion when completion-auto-select is set

	* lisp/minibuffer.el (completion--do-completion): Do not display
	"Complete, but not unique" messages when completion-auto-select is
	set.  Fixes bug#60359.

2022-12-29  Yuan Fu  <casouri@gmail.com>

	Add color fontification in css-ts-mode (bug#60405)

	* lisp/textmodes/css-mode.el (css-ts-mode): Add color fontification
	and syntax-propertize-function.

2022-12-29  Juri Linkov  <juri@linkov.net>

	* lisp/hi-lock.el (hi-lock--regexps-at-point): Fix bug (bug#60241).

	Handle two cases: when a pattern is a regexp or a function.

2022-12-29  Juri Linkov  <juri@linkov.net>

	* src/keyboard.c (echo_add_key): Use recently rebound C-h key C-q (bug#60249)

2022-12-29  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in treesit.c with --enable-checking

	* src/treesit.c (Ftreesit_node_first_child_for_pos)
	(Ftreesit_node_descendant_for_range): Check validity of buffer
	positions before converting them to byte-positions, to avoid
	assertion violations in buf_charpos_to_bytepos.

2022-12-29  Yuan Fu  <casouri@gmail.com>

	Clean up treesit-default-defun-skipper and add comments

	* lisp/treesit.el (treesit-default-defun-skipper): Clean up, fix some
	small issue, add comment.

2022-12-29  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode bracket indentation (bug#60398)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use new
	anchor.
	(c-ts-mode--bracket-children-anchor): New anchor function.

2022-12-28  Yuan Fu  <casouri@gmail.com>

	Clean up font-lock rules in js-ts-mode

	Changes for each feature:

	- string: Take out string-interpolation bits.
	- string-interpolation: New.
	- declaration: Rename to definition.
	- identifier: Remove.
	- property: Use a pred to filter out methods.
	- expression: Rename to assignment.
	- function: New.
	- pattern: Merge into assignment.

	* lisp/progmodes/js.el (js--treesit-font-lock-settings): See above.
	(js--treesit-property-not-function-p)
	(js--treesit-lhs-identifier-query): New variable.
	(js--treesit-fontify-assignment-lhs): New functions.
	(js-ts-mode): Update feature list.

2022-12-28  Yuan Fu  <casouri@gmail.com>

	Fix syntax for < and > in c++-ts-mode (bug#60351)

	< and > are usually punctuation, e.g., in ->.  But when used for
	templates, they should be considered pairs.  Right now we always
	consider them as pairs which is incorrect.

	* lisp/progmodes/c-ts-mode.el (c++-ts-mode--syntax-table): Remove
	variable.
	(c-ts-mode--syntax-propertize): New function.
	(c++-ts-mode): Remove syntax table.  Setup syntax-propertize-function.

2022-12-28  Yuan Fu  <casouri@gmail.com>

	Call tree-sitter parser notifier on the first parse

	* src/treesit.c (treesit_call_after_change_functions): Handle NULL
	old_tree.
	(treesit_ensure_parsed): Remove check for NULL tree.

2022-12-28  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter parser notifier recursion

	See the comment for detail.

	* src/treesit.c (treesit_ensure_parsed): Move the need_reparse short
	circuit to the very beginning.  Move the call to
	treesit_call_after_change_functions to the very end.

2022-12-28  Juri Linkov  <juri@linkov.net>

	* lisp/help.el: Use 'C-h C-q' to toggle 'help-quick' window (bug#60249).

	(help-map): Bind "C-q" to 'help-quick-toggle'.  Rebind "q" to 'help-quit'.
	(help-quick): Replace help-quit-or-quick with help-quick-toggle.
	(help-quick-toggle): New command.
	(help-quit-or-quick): Remove command.
	(help-for-help): Replace help-quick-or-quit with help-quick-toggle.

2022-12-28  Juri Linkov  <juri@linkov.net>

	* lisp/isearch.el: Small fixes.

	(isearch-wrap-pause): Mention the new feature of `no' and `no-ding'
	in the docstring.
	(isearch-lax-whitespace, isearch-forward-thing-at-point): Add the
	group 'isearch' since another defgroup changed the default group.
	(isearch-delete-char): Use 'isearch-invisible' instead of 'search-invisible'
	since the users might change the current value with 'M-s i'.

2022-12-28  Juri Linkov  <juri@linkov.net>

	* lisp/vc/diff-mode.el (diff-minor-mode-prefix): Replace "ESC" with "\e".

	"ESC" looks like an attempt to use kbd syntax in customization.
	But actually now 'key-description' is used in 'diff-minor-mode-map'
	to convert "\e" to "ESC".

2022-12-28  Juri Linkov  <juri@linkov.net>

	* doc/emacs/display.texi (Text Scale): Improve section about repeating keys.

	Mention that it's possible to use repeating keys without the modifiers
	and copy an example from etc/NEWS.

2022-12-28  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el (repeat-echo-function): Suggest 'add-function' in docstring.

	(bug#60353)

2022-12-28  Juri Linkov  <juri@linkov.net>

	* lisp/tab-line.el (tab-line-cache-key-default): More cache keys (bug#60340).

	Move more cache keys here from 'tab-line-format' to give users more freedom.

2022-12-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* etc/package-keyring.gpg: Update with new key

2022-12-28  F. Jason Park  <jp@neverwas.me>

	Warn of absent networks module in ERC

	* doc/misc/erc.texi: Add linkable note in Modules chapter about some
	modules being required.  Also tweak markup in auth-source section.
	* etc/ERC-NEWS: Mention the special role of `networks'.
	* lisp/erc/erc-backend.el (erc--server-post-connect-hook): Add
	internal hook for core modules to perform post-network-process,
	pre-protocol config validation even when they haven't been loaded.
	(erc--register-connection): Run `erc--server-post-connect-hook'.
	* lisp/erc/erc-networks.el (erc-networks--bouncer-targets,
	erc-networks-on-MOTD-end): Fix comments and doc strings.  Also change
	former from constant to internal variable in case adjustment needed
	between releases.
	(erc-networks--warn-on-connect): New function to warn about the
	`networks' module being absent from `erc-modules'.  This could
	probably run at any time up to and including when the logical IRC
	connection is established, but doing so at the process/protocol
	boundary seems ideal.
	* lisp/erc/erc-sasl.el (erc--register-connection): Defer to base
	method instead of calling `erc-login' explicitly.
	* lisp/erc/erc.el (erc-generate-new-buffer-name): Don't reconcile
	buffer names when networks module not in play.
	(erc-format-target-and/or-network): Don't assume networks module
	loaded.
	* test/lisp/erc/erc-scenarios-base-unstable.el:
	(erc-scenarios-networks-no-module): New test.
	* test/lisp/erc/resources/networks/no-module/basic.eld: New test data
	file.  (Bug#60331.)

2022-12-28  F. Jason Park  <jp@neverwas.me>

	Avoid "already compiled" warning in erc-compat

	* lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search):
	Don't `byte-compile' sub-29 secrets wrapper.  This was especially
	noisy in tests.  Ditch closed-over vars via HOF instead of suppressing
	because compiling emits "unused lexical" warning on Emacs 27.

2022-12-28  Dmitry Gutov  <dgutov@yandex.ru>

	(python--treesit-settings): Remove duplicate matcher

	* lisp/progmodes/python.el (python--treesit-settings): Remove
	duplicate matcher (which found itself under 'function' in addition
	to 'definition').

2022-12-28  Eli Zaretskii  <eliz@gnu.org>

	Make last change of w32 GUI dialogs conditional and reversible

	* src/w32term.c (syms_of_w32term) <w32-yes-no-dialog-show-cancel>:
	New boolean variable.
	(w32_initialize): Fix query for visible system caret: 'bool' is a
	single-byte data type, whereas SystemParametersInfo wants a BOOL,
	which is a 32-bit int.
	* src/w32menu.c (simple_dialog_show): Show "Cancel" button only if
	'w32-yes-no-dialog-show-cancel' is non-nil.

	* etc/NEWS: Announce the change.

2022-12-28  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter typos

	* doc/lispref/parsing.texi (Tree-sitter major modes):
	* lisp/progmodes/java-ts-mode.el:
	* test/src/treesit-tests.el (treesit-defun-navigation-nested-4): Fix
	typo.

2022-12-27  Yuan Fu  <casouri@gmail.com>

	Update tree-sitter major modes to use the new Imenu facility

	See previous commit for more explanation.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name): Handle more
	types.
	(c-ts-mode--imenu-1)
	(c-ts-mode--imenu): Remove functions.
	(c-ts-base-mode): Setup Imenu.
	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--imenu-1)
	(csharp-ts-mode--imenu): Remove functions.
	(csharp-ts-mode): Setup Imenu.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu-1)
	(java-ts-mode--imenu): Remove functions.
	(java-ts-mode): Setup Imenu.
	* lisp/progmodes/js.el (js--treesit-imenu-1)
	(js--treesit-imenu): Remove functions.
	(js--treesit-valid-imenu-entry): New function.
	(js-ts-mode): Setup Imenu.
	* lisp/progmodes/json-ts-mode.el (json-ts-mode--defun-name): Trim the
	quotes.
	(json-ts-mode--imenu-1)
	(json-ts-mode--imenu): Remove functions.
	(json-ts-mode): Setup Imenu.
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--imenu)
	(rust-ts-mode--imenu-1): Remove functions.
	(rust-ts-mode): Setup Imenu.
	* lisp/progmodes/typescript-ts-mode.el:
	(typescript-ts-base-mode): Remove treesit-defun-prefer-top-level, it's
	not used anymore.  Setup Imenu.  Setup treesit-defun-name-function.
	* lisp/textmodes/css-mode.el (css--treesit-imenu-1)
	(css--treesit-imenu): Remove functions.
	(css-ts-mode): Setup Imenu.
	* lisp/textmodes/toml-ts-mode.el (toml-ts-mode--defun-name): Fix it
	and add a fallback.
	(toml-ts-mode--imenu-1)
	(toml-ts-mode--imenu): Remove functions.
	(toml-ts-mode): Setup Imenu.

2022-12-27  Yuan Fu  <casouri@gmail.com>

	Add tree-sitter helper functions for Imenu

	We didn't add an integration for Imenu because we aren't sure what
	should it look like.  Now we have a pretty good idea.  All the major
	modes copy-paste the two Imenu functions and tweaks them in a standard
	way.  With the addition of treesit-defun-type-regexp and
	treesit-defun-name-function, now is a good time to standardize Imenu
	integration.

	In the next commit we update all the major modes to use this
	integration.

	* doc/lispref/modes.texi (Imenu): Add manual.
	* doc/lispref/parsing.texi (Tree-sitter major modes): Update manual.
	* lisp/treesit.el (treesit-simple-imenu-settings): New variable.
	(treesit--simple-imenu-1)
	(treesit-simple-imenu): New functions.
	(treesit-major-mode-setup): Setup Imenu.

2022-12-27  Yuan Fu  <casouri@gmail.com>

	Fix treesit--things-around (bug#60355)

	Current implementation of treesit--things-around only searches forward
	for REGEXP and go up the tree until it finds a valid thing, if nothing
	matches it gives up.  This makes it sometimes miss defuns.  The new
	implementation tries multiple times (of search forward + go up) until
	it exhausts all possible defun nodes.

	* lisp/treesit.el (treesit--things-around): New implementation.
	(treesit--navigate-defun): Refactor to use treesit-node-top-level to
	simplify code, and add some guards in the predicate function.
	* test/src/treesit-tests.el:
	(treesit--ert-defun-navigation-elixir-program): New variable.
	(treesit-defun-navigation-nested-4): New test.

2022-12-27  Yuan Fu  <casouri@gmail.com>

	Improve treesit-node-top-level and treesit-parent-until

	* lisp/treesit.el (treesit-node-top-level): Now it can accept a
	predicate function.  Add an optional argument INCLUDE-NODE.
	(treesit-parent-until): Add an optional argument INCLUDE-NODE.

2022-12-27  Eli Zaretskii  <eliz@gnu.org>

	* src/w32menu.c (simple_dialog_show): Use MB_YESNOCANCEL style.

2022-12-27  Xi Lu  <lx@shellcodes.org>

	Fix htmlfontify.el command injection vulnerability.

	* lisp/htmlfontify.el (hfy-text-p): Fix command injection
	vulnerability.  (Bug#60295)

2022-12-27  Rudolf Adamkovič  <salutis@me.com>

	Improve support for Scheme R6RS and R7RS libraries (bug#54704)

	* etc/NEWS (Scheme mode): Document improved file-type auto-detection
	and Imenu support for R6RS and R7RS Scheme libraries.
	* lisp/files.el (auto-mode-alist): Associate the '.sls' (R6RS Scheme
	Library Source) and '.sld' (R7RS Scheme Library Definition) file name
	extensions with the Scheme mode.
	* lisp/progmodes/scheme.el (scheme-imenu-generic-expression): Make
	Imenu recognize the members nested (and so indented) inside of
	'library' (R6RS) or 'define-library' (R7RS) forms.

2022-12-26  Yuan Fu  <casouri@gmail.com>

	Add a new tree-sitter query predicate 'pred'

	I realized that using an arbitrary function as the predicate in
	queries is very helpful for some queries I'm writing for python and
	javascript, and presumably most other languages[1].

	Granted, we can already filter out unwanted nodes by using a function
	instead of a face for the capture name, and (1) determine whether the
	captured node is valid and (2) fontify that node if it's valid.

	However, such approach is a bit more cumbersome and more importantly
	gets in the way of another potential use of the fontification queries:
	context extraction.

	For example, I could use the query for the 'variable' feature to get
	all the variables in a certain region.  In this use-case, we want the
	filtering happen before returning the captured nodes.

	Besides, the change is relatively small and straightforward: most code
	are already there, I just need to add some boilerplate.

	[1] For a code like aa.bb(cc), we want bb to be in function face,
	because obviously its a function.  But for aa.bb, we want bb to be in
	property face, because it's a property.  In the AST, bb is always a
	property, the difference between the two cases is the enclosing node:
	in the first case, aa.bb is in a "call_expression" node, indicating
	that bb is used as a function (a method).  So we want a predicate
	function that checks whether bb is used as a function or a property,
	and determine whether it should be in function or property face.

	* doc/lispref/parsing.texi (Pattern Matching): Update manual.
	* src/treesit.c (Ftreesit_pattern_expand): Handle :pred.
	(treesit_predicate_capture_name_to_node): A new function extracted
	from treesit_predicate_capture_name_to_text.
	(treesit_predicate_capture_name_to_text): Use the newly extracted
	function.
	(treesit_predicate_pred): New predicate function.
	(treesit_eval_predicates): Add new predicate.  Also fix a bug: we want
	to AND the results of each predicate.
	* test/src/treesit-tests.el (treesit--ert-pred-last-sibling): New
	helper function.
	(treesit-query-api): Test #pred predicate.

2022-12-26  Stefan Kangas  <stefankangas@gmail.com>

	Improve gnutls-min-prime-bits docstring

	* lisp/net/gnutls.el (gnutls-min-prime-bits): Doc fix: delete
	out-of-date and now misleading sentence, added back when Emacs'
	default minimum prime bits for a Diffie-Hellman handshake was only 256
	bits.  These days, the default is nil, which means to let GnuTLS
	decide the value.  (See also `nsm-protocol-check--dhe-prime-kx`.)

2022-12-26  Gregory Heytings  <gregory@heytings.org>

	Improve handling of tab-bar height.

	* src/xdisp.c (redisplay_tab_bar): When 'auto-resize-tab-bar' is
	not 'grow-only', also consider the case when the tab-bar height
	needs to shrink.  Fixes bug#60210.

2022-12-26  Eli Zaretskii  <eliz@gnu.org>

	Simplify last change (bug#60311)

	* src/json.c (json_available_p): Use original code.  Always return
	true for !WINDOWSNT.
	(ensure_json_available): Now defined only on WINDOWSNT.
	(Fjson_serialize, Fjson_insert, Fjson_parse_string)
	(Fjson_parse_buffer): Call ensure_json_available only on
	WINDOWSNT.

	* lisp/subr.el (json-available-p): Simplify.

2022-12-26  Mattias Engdegård  <mattias.engdegard@gmail.com>

	Fix 'json-available-p' on MS-Windows

	* src/json.c (json_available_p, ensure_json_available)
	(Fjson__available_p): New functions.
	(Fjson_serialize, Fjson_insert, Fjson_parse_string)
	(Fjson_parse_buffer): Use ensure_json_available.
	(syms_of_json): Defsubr json--available-p.

	* lisp/subr.el (json-available-p): Rewrite.

2022-12-26  Kyle Meyer  <kyle@kyleam.com>

	loaddefs-gen: Group results by absolute file name

	loaddefs-generate produced an incomplete output file if 1) it
	was called with a relative file name and 2) that same file was
	specified via a generated-autoload-file cookie in a subset of
	the input files.  In that case, autoload entries were lost
	because loaddefs-generate writes the same output file twice:
	once for the relative name specified by the caller and once
	for the absolute name that loaddefs-generate--parse-file
	returns for the generated-autoload-file value.
	This has been fixed.  (Bug#60318)

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Expand file
	names when grouping loaddef files.

2022-12-26  Yuan Fu  <casouri@gmail.com>

	Fix imenu for c-ts-mode (bug#60296)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu-1): Use
	c-ts-mode--defun-valid-p to filter out nested matches.
	(c-ts-mode--defun-valid-p): Handle more types of nodes.

2022-12-26  Yuan Fu  <casouri@gmail.com>

	Clean up python-ts-mode font-lock features

	* lisp/progmodes/python.el (python--treesit-settings): Remove
	unnecessary override flags, add function and variable feature, fix
	assignment feature.
	(python--treesit-variable-p)
	(python--treesit-fontify-variable): New functions.
	(python-ts-mode): Add function and variable feature.

2022-12-26  Yuan Fu  <casouri@gmail.com>

	Add comment indent and filling to other tree-sitter major modes

	Extract the setup into a function, and use it in other major modes.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode-comment-setup): New function.
	(c-ts-base-mode): Extract out.
	(c-ts-mode)
	(c++-ts-mode): Remove old setup.

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): New
	indent rules.
	(csharp-ts-mode): Use new setup function.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New
	indent rules.
	(java-ts-mode): Use new setup function.
	* lisp/progmodes/js.el (js--treesit-indent-rules): New indent rules.
	(js-ts-mode): Use new setup function.
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--indent-rules): New
	indent rules.
	(rust-ts-mode): Use new setup function.
	* lisp/progmodes/typescript-ts-mode.el:
	(typescript-ts-mode--indent-rules): New indent rules.
	(typescript-ts-base-mode): Use new setup function.

2022-12-26  Yuan Fu  <casouri@gmail.com>

	Add maintainer stub for tree-sitter files

	* lisp/treesit.el:
	* src/treesit.c: Add maintainer.

2022-12-25  Gregory Heytings  <gregory@heytings.org>

	Remove remaining mentions of 'eval-current-buffer'

	* lisp/emacs-lisp/edebug.el (edebug-all-defs):
	* doc/lispref/eval.texi (Eval):
	* doc/lispref/edebug.texi (Instrumenting, Edebug Options):
	Remove remaining mentions of 'eval-current-buffer', obsoleted in
	Emacs 22 and removed in Emacs 26.

2022-12-25  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6-61-g63e073f

2022-12-25  Philip Kaludercic  <philipk@posteo.net>

	Add heuristic to locate lisp code in source packages

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Check if a
	"lisp" directory exists and use that instead of PKG-DIR.

	(Bug#60155)

2022-12-25  Yuan Fu  <casouri@gmail.com>

	Further generalize treesit-defun functions

	Two new functions, treesit-beginning/end-of-thing.  And
	treesit-thing-at-point's signature changes.

	* lisp/treesit.el (treesit-block-type-regexp): New variable.
	(treesit-beginning-of-thing)
	(treesit-end-of-thing): Generalized from
	treesit-beginning/end-of-defun.
	(treesit-beginning-of-defun)
	(treesit-end-of-defun): Use the new functions.
	(treesit-thing-at-point): Accept PATTERN rather than REGEXP and PRED.
	(treesit-defun-at-point): Adjust for the new signature of
	treesit-thing-at-point.

2022-12-25  Yuan Fu  <casouri@gmail.com>

	Generalize treesit-defun functions to "things"

	Change the "defun" in some functions (e.g. treesit--defuns-around) to
	"thing".  Add a function treesit-thing-at-point.

	* lisp/treesit.el (treesit--thing-unpack-pattern): New subroutine.
	(treesit-beginning-of-defun)
	(treesit-end-of-defun): Use new function treesit--navigate-thing.
	(treesit--defuns-around): Generalize into treesit--thing-around.
	(treesit--top-level-defun): Generalize into treesit--top-level-thing.
	(treesit--navigate-defun): Generalize into treesit--navigate-thing.
	(treesit-thing-at-point): Generalized from treesit-defun-at-point.
	(treesit-defun-at-point): Use treesit-thing-at-point to do the work.

2022-12-25  Philip Kaludercic  <philipk@posteo.net>

	Reorder optional arguments to 'package-vc-install'

	* lisp/emacs-lisp/package-vc.el (package-vc-install-selected-packages):
	Update 'package-vc-install' invocation.
	(package-vc-install): Reorder and update documentation.

2022-12-25  Philip Kaludercic  <philipk@posteo.net>

	Handle missing dependencies for source packages

	* lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies): Add
	new function.
	(package-vc--unpack-1): Call 'package-vc-install-dependencies' instead
	of 'package-compute-transaction' and 'package-download-transaction'.

	It is unreasonable to abort the installation, since we cannot expect
	all dependencies to be available in the regular archives.  Instead we
	note which packages couldn't be found, and warn the user that these
	will be missing.

2022-12-24  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode imenu defun name (bug#60296)

	Extract out c-ts-mode--declarator-identifier from
	c-ts-mode--fontify-declarator.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--declarator-identifier): New
	function.
	(c-ts-mode--fontify-defun): Extract out.
	(c-ts-mode--defun-name): Use the new function.

2022-12-24  Yuan Fu  <casouri@gmail.com>

	Fix treesit--children-covering-range-recurse (bug#60301)

	* lisp/treesit.el (treesit--children-covering-range-recurse): Always
	return a list of node.

2022-12-24  Yuan Fu  <casouri@gmail.com>

	Support treesit-defun-name in tree-sitter major modes

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--defun-name): New
	function.
	(csharp-ts-mode--imenu-1): Extract into new function.
	(csharp-ts-mode): Setup treesit-defun-name-function.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--defun-name): New
	function.
	(java-ts-mode--imenu-1): Extract into new function.
	(java-ts-mode): Setup treesit-defun-name-function.
	* lisp/progmodes/js.el (js-treesit-current-defun): Remove function.
	This function is not used (for a while already).
	(js--treesit-defun-name): New function.
	(js--treesit-imenu-1): Extract into new function.
	(js-ts-mode): Setup treesit-defun-name-function.
	* lisp/progmodes/json-ts-mode.el (json-ts-mode--defun-name): New
	function.
	(json-ts-mode--imenu-1): Extract into new function.
	(json-ts-mode): Setup treesit-defun-name-function.
	* lisp/progmodes/python.el (python--treesit-defun-name): New function.
	(python--imenu-treesit-create-index-1): Extract into new function.
	(python-ts-mode): Setup treesit-defun-name-function.
	* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--defun-name): New
	function.
	(rust-ts-mode--imenu-1): Extract into new function.
	(rust-ts-mode): Setup treesit-defun-name-function.
	* lisp/textmodes/css-mode.el (css--treesit-defun-name): New function.
	(css--treesit-imenu-1): Extract into new function.
	(css-ts-mode): Setup treesit-defun-name-function.
	* lisp/textmodes/toml-ts-mode.el (toml-ts-mode--get-table-name):
	Remove function.
	(toml-ts-mode--defun-name): New function.
	(toml-ts-mode--imenu-1): Extract into new function.
	(toml-ts-mode): Setup treesit-defun-name-function.

2022-12-24  Yuan Fu  <casouri@gmail.com>

	Add treesit-defun-name and friends

	1. We now have treesit-defun-name, powered by
	treesit-defun-name-function.
	2. We now have treesit-add-log-current-defun, which powers
	add-log-current-defun.
	3. c-ts-mode updates its code to take advantage of these new features.
	4. Manual updates.

	* doc/lispref/parsing.texi (Tree-sitter major modes): Add manual for
	new functions.
	* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name): New function.
	(c-ts-mode--imenu-1): Extract out into c-ts-mode--defun-name.
	(c-ts-base-mode): Setup treesit-defun-name-function.
	* lisp/treesit.el (treesit-defun-name-function)
	(treesit-add-log-defun-delimiter): New variables.
	(treesit-defun-at-point)
	(treesit-defun-name): New functions.
	(treesit-major-mode-setup): Setup add-log-current-defun-function.

2022-12-24  Yuan Fu  <casouri@gmail.com>

	Make treesit-node-at/on guess language at point

	If PARSER-OR-LANG is nil, it makes more sense to guess the language at
	point by treesit-language-at than to simply use the first parser in
	the parser list.

	* doc/lispref/parsing.texi (Retrieving Nodes): Update manual.
	* lisp/treesit.el (treesit-node-at)
	(treesit-node-on): Guess language at point.  Update docstring.
	(treesit-buffer-root-node): Update docstring.

2022-12-24  Óscar Fuentes  <ofv@wanadoo.es>

	* nt/INSTALL.W64: update instructions for setting up W64 environment

2022-12-24  Eli Zaretskii  <eliz@gnu.org>

	Revert "; Bump minimum supported Windows version for MinGW64 to Windows 10."

	This reverts commit 75155e458601a3597d382660d0be863ab4d512c0.
	Evidently, some MSYS2/MinGW64 folks still think Windows 8.1
	is the minimum supported version, even though MinGW-w64 switched
	to Windows 10 as the default target in January 2022.

2022-12-24  Eli Zaretskii  <eliz@gnu.org>

	Fix definition of CNS 11643-15 charset

	* lisp/international/mule-conf.el (chinese-cns11643-15): Fix
	:code-offset value.  (Bug#60275)
	* lisp/international/characters.el: Add chinese-cns11643-15 to
	charsets whose characters have categories c and C.

2022-12-24  Yuan Fu  <casouri@gmail.com>

	Improve c-ts-mode block comment indent (bug#60270)

	Now it handles stuff like (backslashes added to not confuse
	authors.el)

	 /**
	 \* @some_func:
	 \* @arg1:
	 \*/

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use new
	matcher and anchor.
	(c-ts-mode--looking-at-star): New matcher.
	(c-ts-mode--comment-start-after-first-star): New anchor.

2022-12-24  Yuan Fu  <casouri@gmail.com>

	Fix block comment indent and filling for c-ts-mode (bug#59763)

	Now indent and filling works like in c-mode.  The only noticeable
	missing piece is that the "*/" is not attached to the last sentence
	when filling.  c-mode does it by replacing whitespaces between the
	"*/" and the end of the last sentence with xxx, fill it, then change
	the xxx back. I don't know if we should do that in c-ts-mode's filling.

	* doc/lispref/modes.texi (Parser-based Indentation): Add new preset.
	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add new
	indent rule.
	(c-ts-mode--fill-paragraph): New function.
	(c-ts-base-mode): Setup paragraph-start, adaptive-fill, etc.
	* lisp/treesit.el (treesit-simple-indent-presets): Add new preset.

2022-12-24  Yuan Fu  <casouri@gmail.com>

	Fix treesit_cursor_helper (bug#60267)

	The cause of that bug is that in a particular parse tree, the node
	treesit_cursor_helper tries to go to is a missing node, not only is it
	a missing node, it is the first node of a subtree.  So when
	treesit_cursor_helper follows the algorithm and goes down the tree, it
	goes down the previous subtree (because that subtree's end = end_pos,
	because the target node has zero width).

	    o
	    |
	 o--+-o
	 |    |
	 +-+  +-+-+
	 | |  | | |
	 o x  t o o

	(We ended up in x when the target is t, because t has zero width.)

	One way to solve it is to go back up the tree if we are at a leaf node
	and still haven't matched the target node.  That's too ugly and
	finicky so I resorted to recursion.  Now one more functions will
	return give up (treesit_node_parent) if we are in a weird parse tree
	that is super deep.  But since we already kind of give up on this kind
	of parse trees (bug#59426), it doesn't really hurt.

	* src/treesit.c (treesit_cursor_helper_1): New function.
	(treesit_cursor_helper): Use the new function.  Change return type to
	bool, and accept a cursor pointer.

	(Ftreesit_node_parent)
	(Ftreesit_search_subtree)
	(Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree): Use the new signature.

2022-12-24  Paul Eggert  <eggert@cs.ucla.edu>

	Fix restart-emacs alarms (Bug#60220)

	* src/emacs.c (Fkill_emacs): Turn timers off before execing,
	so that the re-execed Emacs doesn’t get a timer alarm.

2022-12-24  Florian Weimer  <fweimer@redhat.com>

	Fix alternate stack test in configure

	* configure.ac (emacs_cv_alternate_stack): Include <stdlib.h>
	for 'malloc's prototype.

2022-12-24  Xi Lu  <lx@shellcodes.org>

	Add more functions to "string" shortdoc

	* lisp/emacs-lisp/shortdoc.el: Add 'string-or-null-p',
	'char-or-string-p', 'char-uppercase-p'.  (Bug#60279)

2022-12-24  Yaraslau Tamashevich  <yaraslau.tamashevich@gmail.com>  (tiny change)

	Make the Contour terminal an alias of xterm-256color

	* lisp/faces.el (term-file-aliases): Make the Contour terminal an
	alias of xterm-256color.  (Bug#60278)

2022-12-24  glacials  <ben@twos.dev>  (tiny change)

	Correct wrong info in (info)Go to node

	The node (info)Go to node in the Info manual states that 'g'
	does not allow the use of abbreviations, however it does.
	To test this, type 'gt' from this node and see that it takes
	you to (info)Top, then type 'ggo<RET>' and see that it takes
	you back to (info)Go to node.  Tested on emacs 28.2.
	* doc/misc/info.texi (Go to node): Fix inaccurate information.
	(Bug#60263)

2022-12-24  Eli Zaretskii  <eliz@gnu.org>

	Fix typo in TUTORIAL.fr (bug#60261)

	* etc/tutorials/TUTORIAL.fr: Fix typo.  Reported by
	Clément Escude--Cotinat <clement.escudecotinat@yahoo.fr>.

2022-12-24  Daniel Martín  <mardani29@yahoo.es>

	Add some diff-fixup-modifs tests

	* test/lisp/vc/diff-mode-tests.el (diff-mode-test-fixups-added-lines):
	Test that diff-mode fixes patches with added lines correctly.
	* test/lisp/vc/diff-mode-tests.el (diff-mode-test-fixups-empty-hunks):
	Ditto for patches with empty hunks.  (Bug#60259)

2022-12-24  Ulrich Müller  <ulm@gentoo.org>

	Fix quoted argument in emacsclient-mail.desktop Exec key

	Apparently the emacsclient-mail.desktop file doesn't conform to the
	Desktop Entry Specification at
	https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#exec-variables
	which says about the Exec key:

	| Field codes must not be used inside a quoted argument, the result of
	| field code expansion inside a quoted argument is undefined.

	However, the %u field code is used inside a quoted argument of the
	Exec key in both the [Desktop Entry] and [Desktop Action new-window]
	sections.
	* etc/emacsclient-mail.desktop (Exec): The Desktop Entry
	Specification does not allow field codes like %u inside a quoted
	argument. Work around it by passing %u as first parameter ($1)
	to the shell wrapper.
	* etc/emacsclient.desktop (Exec): Use `sh` rather than `placeholder`
	as the command name of the shell wrapper.  (Bug#60204)

2022-12-24  Richard Hansen  <rhansen@rhansen.org>

	ert-x: Move window selection logic to its own macro

	* lisp/emacs-lisp/ert-x.el (ert-with-buffer-selected): New macro to
	temporarily display a buffer in a selected window and evaluate a body.
	(ert-with-test-buffer-selected): Use the new macro.
	* test/lisp/whitespace-tests.el
	(ert-test-with-buffer-selected/current)
	(ert-test-with-buffer-selected/selected)
	(ert-test-with-buffer-selected/nil-buffer)
	(ert-test-with-buffer-selected/modification-hooks)
	(ert-test-with-buffer-selected/read-only)
	(ert-test-with-buffer-selected/return-value): Add tests.
	(Bug#60189)

2022-12-24  Po Lu  <luangruo@yahoo.com>

	Fix crash after X error

	* src/xdisp.c (redisplay_internal): Catch another crash if
	gcscrollbars after an X error.

2022-12-23  Xi Lu  <lx@shellcodes.org>

	Fix ruby-mode.el local command injection vulnerability (bug#60268)

	* lisp/progmodes/ruby-mode.el
	(ruby-find-library-file): Fix local command injection vulnerability.

2022-12-23  Eli Zaretskii  <eliz@gnu.org>

	Fix "C-h k" in recursive minibuffers

	* lisp/subr.el (event--posn-at-point): Leave POSN alone if it
	doesn't have at least 6 members.  This follows more faithfully
	what 'event-start' and 'event-end' did before they started using
	this function, see commit c1cead89f5f.  Call posn-at-point with
	the minibuffer-window when in the minibuffer.  (Bug#60252)

2022-12-22  Sean Whitton  <spwhitton@spwhitton.name>

	vc-git-checkin: Don't try to apply an empty patch

	* lisp/vc/vc-git.el (vc-git-checkin): Don't try to apply an empty
	patch to the index, because in that case 'git apply' fails.

	(cherry picked from commit 1424342225ef5b18c630364dd88e004f4ebb1c7f)

2022-12-22  Michael Albinus  <michael.albinus@gmx.de>

	Update Tramp version (don't merge with master)

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el: Change version to "2.6.0.29.1".
	(customize-package-emacs-version-alist):
	Adapt Tramp version integrated in Emacs 29.1.

2022-12-22  João Távora  <joaotavora@gmail.com>

	Eglot: eglot--servers-by-xrefed-file doesn't need to be value-weak

	* lisp/progmodes/eglot.el (eglot--servers-by-xrefed-file): Doesn't
	need to be weak.

2022-12-22  João Távora  <joaotavora@gmail.com>

	Prevent stale servers when using eglot-extend-to-xref

	A weak-valued hash-table is not enough to guarantee that a reference
	to a zombie server in eglot--servers-by-xrefed-file variable won't
	survive long enough to confuse the next call to eglot--current-server
	in some buffers.

	So, before this fix it was common to get "Process EGLOT ... not
	running" errors if some xref-extended buffers (like system libraries)
	were open and M-x eglot-reconnect was issued.  This should be
	prevented now.

	Note however, that even after this the eglot-extend-to-xref logic is
	still flawed.  For example, if a buffer for the xref-extended buffer
	happens to be already visited by the time M-. is issued to navigate to
	it, Eglot won't be activated.  A half-decent workaround is to kill the
	buffer and re-visit it.

	* lisp/progmodes/eglot.el (eglot--servers-by-xrefed-file): Move
	up.
	(eglot--on-shutdown): Make sure to cleanup
	eglot--servers-by-xrefed-file.

2022-12-22  Xi Lu  <lx@shellcodes.org>

	* etc/tutorials/TUTORIAL.cn: Fix typos.  (Bug#60221)

2022-12-22  Benson Chu  <bensonchu457@gmail.com>  (tiny change)

	Add alias for removed font-lock function

	As part of 18947103fabf8070738b3bd9c5a8d02f90988a3d,
	`font-lock-fontify-syntactically-region' was renamed to
	`font-lock-default-fontify-sytactically'.

	* lisp/font-lock.el (font-lock-fontify-syntactically-region): Add
	obsolete alias for the renamed function.

2022-12-22  Yuan Fu  <casouri@gmail.com>

	Set beginning/end-of-defun-function in treesit-major-mode-setup

	* lisp/treesit.el (treesit-major-mode-setup): Set them.

2022-12-22  Yuan Fu  <casouri@gmail.com>

	Add treesit-defun-at-point and fix c-ts-mode-indent-defun

	* lisp/treesit.el (treesit-defun-at-point): New function.
	* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-defun): Implement with
	treesit-defun-at-point.

2022-12-22  Juri Linkov  <juri@linkov.net>

	Use the new keyword ':repeat' in repeatable keymaps.

	* lisp/bindings.el (undo-repeat-map)
	(buffer-navigation-repeat-map, next-error-repeat-map)
	(page-navigation-repeat-map):
	* lisp/comint.el (comint-repeat-map):
	* lisp/dired.el (dired-jump-map):
	* lisp/outline.el (outline-navigation-repeat-map)
	(outline-editing-repeat-map):
	* lisp/shell.el (shell-repeat-map):
	* lisp/tab-bar.el (tab-bar-switch-repeat-map)
	(tab-bar-move-repeat-map):
	* lisp/window.el (other-window-repeat-map)
	(resize-window-repeat-map):
	* lisp/winner.el (winner-repeat-map):
	* lisp/eshell/em-prompt.el (eshell-prompt-repeat-map):
	* lisp/eshell/esh-mode.el (eshell-command-repeat-map):
	Add the keyword ':repeat' to 'defvar-keymap' instead of
	setting the symbol property 'repeat-map' explicitly.

	* lisp/keymap.el (defvar-keymap): Check for 'props'
	that is used in 'defvar-form'.

2022-12-21  Jim Porter  <jporterbugs@gmail.com>

	When redirecting in Eshell, check for "/dev/null" specifically

	This is so that users can type "cmd ... > /dev/null" in Eshell no
	matter what their system's null device is called.  (Users can still
	use their system's null device name when redirecting, too.  Eshell
	doesn't need to do anything special to support that.)  This partially
	reverts 67a8bdb90c9b5865b7f17290c7135b1a5458c36d.  See bug#59545.

	Do not merge to master.

	* lisp/eshell/esh-io.el (eshell-set-output-handle): Use "/dev/null"
	literally.

2022-12-21  Andrea Corallo  <akrl@sdf.org>

	* Invoke spawned Emacs processes with '-Q' when native compiling (bug#60208)

	* lisp/emacs-lisp/comp.el (comp-final): Invoke spawned Emacs with '-Q'.
	(comp-run-async-workers): Likewise.

2022-12-21  montag451  <montag451@laposte.net>  (tiny change)

	Fix Eshell electric slash when used from the root directory of a remote host

	* lisp/eshell/em-elecslash.el (eshell-electric-forward-slash): Insert
	the remote prefix as determined by 'file-remote-p'.

2022-12-21  Eli Zaretskii  <eliz@gnu.org>

	Fix the --without-all build with tree-sitter

	* configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes, since
	tree-sitter support requires dynlib.o.  (Bug#60061)

2022-12-21  Eli Zaretskii  <eliz@gnu.org>

	Fix write-region to null device on MS-Windows

	* src/fileio.c (write_region) [WINDOWSNT]: Ignore EBADF errors
	from fsync -- this means fsync is not supported for this file.
	Happens, for example, with the null device.  (Bug#59545)

2022-12-21  Alexander Adolf  <alexander.adolf@condition-alpha.com>

	message: Do not default to eudc-capf-complete yet

	* lisp/gnus/message.el (message-mode): No longer add
	eudc-capf-complete to the buffer-local value of
	completion-at-point-functions.  (Bug#59314)

2022-12-21  Richard Hansen  <rhansen@rhansen.org>

	whitespace: Avoid mutating original buffer's markers in clones

	* lisp/whitespace.el (whitespace--clone): New hook function that is
	run after cloning a buffer that copies `whitespace-bob-marker' and
	`whitespace-eob-marker' and changes the copies to point to the new
	buffer (Bug#59618).
	(whitespace-color-on): Register the hook function.
	(whitespace-color-off): Unregister the hook function.

	* test/lisp/whitespace-tests.el
	(whitespace-tests--with-test-buffer): New macro.
	(whitespace-tests--check-markers): New function.
	(whitespace-tests--indirect-clone-breaks-base-markers)
	(whitespace-tests--indirect-clone-markers)
	(whitespace-tests--regular-clone-markers): New tests.

2022-12-20  Charl P. Botha  <cpbotha@vxlabs.com>  (tiny change)

	Fix empty pairs in js tree-sitter imenu alist (bug#59945)

	The current js--treesit-imenu, used by the JavaScript, TypeScript and
	TSX tree-sitter modes, would return empty pairs in the imenu alist if
	there were none of that type of symbol.

	This would break both the built in imenu and also packages like
	consult-imenu.

	See https://github.com/minad/consult/issues/697 for the discussion
	there.

	* lisp/progmodes/js.el (js--treesit-imenu): Don't add nil indexes.

2022-12-20  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el: Fix repeat-keep-prefix to allow customizing it to non-nil.

	* lisp/repeat.el (repeat-keep-prefix): Add or remove
	'repeat-pre-hook' depending on the customized value.
	(repeat-mode): Add or remove 'repeat-pre-hook' to/from
	'pre-command-hook' when 'repeat-keep-prefix' is non-nil.
	(repeat-pre-hook): New function.
	(repeat-get-map, repeat-check-map): New function refactored from
	'repeat-post-hook'.
	(repeat-post-hook): Move some code to smaller functions.
	(describe-repeat-maps): Set outline-regexp without ^L.

	* test/lisp/repeat-tests.el (repeat-tests-keep-prefix):
	Uncomment test case that is fixed now in bug#51281 and bug#55986.

2022-12-20  Daniel Martín  <mardani29@yahoo.es>

	Correct capitalization of Lisp in the manual (bug#60222)

	* doc/lispref/compile.texi (Native-Compilation Functions): Fix typo.

2022-12-20  Brian Leung  <leungbk@posteo.net>

	eglot.el: Add vscode-json-languageserver to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add the
	alternative name of the vcscode JSON server.  (Bug#60198)

2022-12-19  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el (project--read-file-cpd-relative): Optimize.

2022-12-19  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-method-params-indent: New user option

	* lisp/progmodes/ruby-mode.el (ruby-method-params-indent):
	New option (bug#60110).

	(ruby-smie-rules): Use it.

	* etc/NEWS: Mention it.

	* test/lisp/progmodes/ruby-mode-resources/ruby.rb:
	Ensure the var's value is default.

	* test/lisp/progmodes/ruby-mode-resources/ruby-method-params-indent.rb:
	New file.

	* test/lisp/progmodes/ruby-mode-tests.el (ruby-deftest-indent):
	New macro, use it to run the indentation test using the new file.
	Disable the :expensive-test tag, because neither runs for "longer
	than some few seconds", both take significantly below 1s.

2022-12-19  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el: Filter out empty strings from history (bug#58447)

	(project--read-file-cpd-relative): Do not include empty strings (when
	prefix has the same length as the string).

2022-12-19  Eli Zaretskii  <eliz@gnu.org>

	Fix storing email into nnmail by Gnus

	* lisp/gnus/nnml.el (nnml--encode-headers): Wrap
	'rfc2047-encode-string' calls with 'ignore-errors', to avoid
	disrupting email workflows due to possibly-invalid headers.
	Reported by Florian Weimer <fweimer@redhat.com>.

2022-12-19  Richard Hansen  <rhansen@rhansen.org>

	whitespace: Fix unintended change in buffer modification status

	* lisp/whitespace.el (whitespace--empty-at-bob-matcher)
	whitespace--empty-at-eob-matcher, whitespace--update-bob-eob):
	Silently add the `font-lock-multiline' text property when
	highlighting beginning-of-buffer and end-of-buffer empty lines
	to prevent Emacs from running modification hooks or considering
	the buffer to be modified (Bug#60066).

	* test/lisp/whitespace-tests.el
	(whitespace-tests--empty-bob-eob-modified): Add a regression test.

2022-12-19  Eli Zaretskii  <eliz@gnu.org>

	Make emacsclient add abbreviated file names to file-name-history

	* lisp/server.el (server-visit-files): Use
	'file-name-history--add' to add the visited files to history.
	(Bug#60097)

2022-12-19  Mattias Engdegård  <mattiase@acm.org>

	Repair setopt test after error demotion to warning

	* test/lisp/cus-edit-tests.el (test-setopt):
	Check for a warning instead of an error in attempt to call `setopt`
	with a value that does not match the declared type (bug#60162).

2022-12-18  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-mode: Support endless singleton method definitions too

	* lisp/progmodes/ruby-mode.el (ruby-endless-method-head-re):
	Update to match not only 'self.' but 'xyz.' as well (bug#54702).

	* test/lisp/progmodes/ruby-mode-resources/ruby.rb (Bar#foo=):
	Update example.

2022-12-18  Yuan Fu  <casouri@gmail.com>

	Remove comment-start-skip preset in tree-sitter indentation engine

	Comment indentation should use a adaptive-fill-based indent, rather
	than comment-start-skip.

	Also remove manual description of removed variables in treesit.el and
	add documentation for n-p-gp upon request.

	* doc/lispref/modes.texi (Parser-based Indentation)
	* lisp/treesit.el (treesit-simple-indent-presets): Add n-p-gp, remove
	treesit-comment-start/end, remove comment-start-skip.

	* doc/lispref/parsing.texi (Tree-sitter major modes): Remove
	treesit-comment-start/end.

2022-12-18  Michael Albinus  <michael.albinus@gmx.de>

	Fix recent change in tramp-smb.el

	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	Ignore `make-directory-internal'.
	(tramp-smb-handle-make-directory): Move implementation from
	`tramp-smb-handle-make-directory-internal' here.

	* lisp/net/tramp.el (tramp-file-name-for-operation):
	Rearrange `make-directory-internal'.

2022-12-18  Michael Albinus  <michael.albinus@gmx.de>

	Make tramp-archive autoloads robust for older Emacs versions

	* lisp/net/tramp-archive.el (tramp-archive-file-name-regexp):
	Use `eval-when-compile'.  Set it explicitly for older Emacs versions.

2022-12-18  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-mode: Support endless methods (bug#54702)

	* lisp/progmodes/ruby-mode.el (ruby-endless-method-head-re):
	New constant.
	(ruby-smie-grammar): New token.
	(ruby-smie--forward-token, ruby-smie--backward-token):
	Recognize it.
	(ruby-smie-rules): Indentation support.
	(ruby-add-log-current-method): Support here too.

	* test/lisp/progmodes/ruby-mode-tests.el
	(ruby-add-log-current-method-after-endless-method): New test.

	* test/lisp/progmodes/ruby-mode-resources/ruby.rb: New examples.

2022-12-18  Philip Kaludercic  <philipk@posteo.net>

	* lisp/cus-edit.el (setopt--set): Warn instead of raising an error

	(Bug#60162)

2022-12-18  Philip Kaludercic  <philipk@posteo.net>

	Allow customizing windmove user options with an empty prefix

	* lisp/windmove.el (windmove--default-keybindings-type): Handle nil
	as a prefix value.  (Bug#60161)

2022-12-18  Gregory Heytings  <gregory@heytings.org>

	Improve and extend admin/git-bisect-start

	* admin/git-bisect-start: Use 'git bisect skip' instead of 'git
	bisect good' for merges of external trees, which is equivalent but
	faster in some cases.  Improve the explanation on external tree
	merges.  Add list of commits in the last six years on which
	building Emacs fails, and call 'git bisect skip' on them.  Also
	document how the script can be called automatically when 'git
	bisect start' is called in the Emacs repository.

	* admin/notes/repo (Bisecting): Adapt the explanation of the
	script accordingly.

2022-12-18  Andrea Monaco  <andrea.monaco@autistici.org>

	Make 'rmail-summary-by-thread' faster

	* lisp/mail/rmailsum.el (rmail-summary-message-parents-vector)
	(rmail-summary-message-descendants-vector): Doc fixes.
	(rmail-summary-message-descendants-vector): New variable.
	(rmail-summary-fill-message-parents-and-descs-vectors): Renamed
	from 'rmail-summary-fill-message-parents-vector' and rewritten.
	(rmail-summary-direct-descendants): Function deleted.

2022-12-18  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* src/lread.c (syms_of_lread): Make the MS-DOS build work again.

2022-12-18  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes in PGTK build due to signal in 'note_mouse_highlight'

	* src/xdisp.c (string_buffer_position): Make sure the TO argument
	of 'string_buffer_position_lim' is always inside [BEGV..ZV].
	Otherwise 'string_buffer_position_lim' might call
	'get-char-property' and friends with invalid position, which will
	just signal an error and do nothing useful.  (Bug#60144)

2022-12-18  Eli Zaretskii  <eliz@gnu.org>

	Fix MS-Windows build broken by recent treesit.c changes

	* src/treesit.c (init_treesit_functions, ts_tree_cursor_copy)
	(ts_tree_cursor_delete): Add boilerplate for using new tree-sitter
	functions.
	(ts_node_parent): Delete boilerplate of unused function.

2022-12-17  Theodor Thornhill  <theo@thornhill.no>

	Fix wrong capture in typescript-ts-mode (bug#60167)

	An example of the issue could be:

	    <Menu.Item>
	        {({ active }) => (
	          link
	            ? <Link to={link}> {text}</Link>
	            : <a href="#" onClick={onClick}>{text}</a>
	        )}
	    </Menu.Item>

	Here 'link' as well as a lot of the other constructs inside of the
	parenthesized expression will be font-locked with
	'font-lock-variable-name-face'.  We only want to capture the
	identifier.

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Make the variable capture
	only capture the identifier, and not the whole expression.

2022-12-17  Randy Taylor  <dev@rjt.dev>

	Add rust-ts-mode (Bug#60136)

	* etc/NEWS: Mention it.
	* lisp/progmodes/eglot.el (eglot-server-programs): Add it.
	* lisp/progmodes/rust-ts-mode.el: New major mode with
	tree-sitter support.

2022-12-17  Theodor Thornhill  <theo@thornhill.no>

	Indentation fixes for jsx/tsx (bug#60169)

	* lisp/progmodes/js.el (js--treesit-indent-rules): Simplify the rules.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): Simplify the rules.

2022-12-17  Theodor Thornhill  <theo@thornhill.no>

	Fix treesit-query-validate problem with view-mode

	* lisp/treesit.el (treesit-query-validate): Move the (view-mode) into
	the correct scope.

2022-12-17  Yuan Fu  <casouri@gmail.com>

	Use cursor API in treesit-node-parent

	This is the last part of the change that fixes bug#60054.  The
	previous change fixes it for searching functions, this fixes for
	treesit-node-parent.

	* src/treesit.c (Ftreesit_node_parent): Use the new cursor API.

2022-12-17  Yuan Fu  <casouri@gmail.com>

	Switch to use cursor API in treesit.c

	ts_node_parent has bugs (bug#60054), using cursor API avoids that.
	Tree-sitter's author might remove ts_node_parent in the future, so
	might as well switch to use cursors now.  We are basically
	reimplementing some of the logic of ts_node_prev_sibling and
	ts_node_parent in the sibling helper and cursor helper functions.

	See also https://github.com/tree-sitter/tree-sitter/issues/1992

	* src/treesit.c (treesit_traverse_sibling_helper)
	(treesit_traverse_child_helper)
	(treesit_traverse_match_predicate): Reimplemented to use the cursor API.
	(treesit_search_dfs)
	(treesit_search_forward): Use the new cursor helper functions.
	(Ftreesit_search_subtree)
	(Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree): Use cursors.

	* test/src/treesit-tests.el (treesit-search-subtree): New test.
	(treesit--ert-search-setup): New macro.
	(treesit-search-forward)
	(treesit-search-forward-named-only)
	(treesit-search-backward)
	(treesit-search-backward-named-only)
	(treesit-cursor-helper-with-missing-node): New tests.

2022-12-17  Yuan Fu  <casouri@gmail.com>

	Add treesit_assume_true and treesit_cursor_helper

	This is part 1 of the change to change node API to cursor API.  See
	the second part for more detail.  (I split the change to make the
	diff more sane.)

	* src/treesit.c (treesit_assume_true)
	(treesit_cursor_helper): New functions.

2022-12-17  Paul Eggert  <eggert@cs.ucla.edu>

	Remove file-exists-in-trash-p

	* lisp/files.el (file-exists-in-trash-p): Remove, as this name is
	not suitable for users.  All uses replaced by file-attributes,
	which is good enough here.

2022-12-17  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6-49-g47d129

2022-12-17  Paul Eggert  <eggert@cs.ucla.edu>

	Don’t assume make-directory handler returns nil

	* lisp/files.el (make-directory): Ignore what the make-directory
	handler returns, as its return value was not documented in Emacs 28.

2022-12-17  Paul Eggert  <eggert@penguin.cs.ucla.edu>

	Fix copy-directory bug when dest dir exists

	* lisp/files.el (copy-directory): Set ‘follow’ depending on
	whether we made the directory, not based on a guess that is
	sometimes wrong.  When NEWNAME is a directory name and
	COPY-CONTENTS is nil, do not object merely because the adjusted
	NEWNAME is already a directory.  (Bug#58919).
	* test/lisp/files-tests.el (files-tests-copy-directory):
	Test for the bug.

2022-12-17  Paul Eggert  <eggert@cs.ucla.edu>

	make-directory now returns t if dir already exists

	This new feature will help fix a copy-directory bug (Bug#58919).
	Its implementation does not rely on make-directory handlers
	supporting the new feature, as it no longer uses a make-directory
	handler H in any way other than (funcall H DIR), thus using
	only the intersection of the old and new behavior for handlers.
	This will give us time to fix handlers at our leisure.
	* lisp/files.el (files--ensure-directory): New arg MKDIR.
	All uses changed.
	(files--ensure-directory, make-directory):
	Return non-nil if DIR is already a directory.  All uses changed.
	* test/lisp/files-tests.el (files-tests-make-directory):
	Test new return-value convention.

2022-12-17  Paul Eggert  <eggert@cs.ucla.edu>

	Use make-directory handlers uniformly

	Formerly, the code supported both make-directory and
	make-directory-internal handlers. This led to confusion and meant than
	in a few cases (nnmaildir, ido) remote directories could not be used in
	some cases.  Fix this by using only make-directory handlers.

	Perhaps there used to be a reason for why there were both
	make-directory and make-directory-internal handlers, but whatever that
	reason was, it seems to have vanished even before now.

	There is no longer any need for make-directory-internal handlers, as
	the few remaining callers that use make-directory-internal do so only
	when there are no handlers.  However, this change keeps the existing
	make-directory-internal handlers for now, in case this code is ever
	used in older Emacs versions that still call those handlers.

	* lisp/gnus/nnmaildir.el (nnmaildir--mkdir):
	* lisp/ido.el (ido-file-internal):
	* lisp/net/tramp-smb.el (tramp-smb-handle-make-directory):
	Use make-directory, not make-directory-internal.
	* lisp/net/tramp-smb.el (tramp-smb-handle-make-directory-internal):
	Now obsolete.
	* src/fileio.c (Fmake_directory_internal): Do not look for or
	use a make-directory-internal handler.
	* test/lisp/files-tests.el:
	(files-tests-file-name-non-special-make-directory-internal):
	Remove, as this test incorrectly assumes that make-directory-internal
	must support handlers.

2022-12-17  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'file-exists-p'

	* doc/lispref/files.texi (Testing Accessibility): Document better
	how to test for existing dangling symlinks.  (Bug#60146)

2022-12-17  Eli Zaretskii  <eliz@gnu.org>

	Fix resizing of mini-windows by 'set-minibuffer-message'

	* src/xdisp.c (redisplay_window): Always resize mini-windows
	displaying the active minibuffer.  (Bug#60015)

2022-12-17  Eli Zaretskii  <eliz@gnu.org>

	Prevent Abort dialogs from async-compiling jobs on Windows

	* lisp/emacs-lisp/comp.el (comp-run-async-workers): Disable Abort
	dialog popping in the sub-processes that perform async
	compilation, by passing w32-disable-abort-dialog=t on their
	command line.

2022-12-17  Eli Zaretskii  <eliz@gnu.org>

	Fix 'window-max-chars-per-line' when there are no fringes

	* lisp/window.el (window-max-chars-per-line): Fix the way we
	account for the fringes by calling 'window-fringes'.  (Bug#59963)

2022-12-16  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-mode: Recognize instance or global var as first arg in parenless call

	* lisp/progmodes/ruby-mode.el (ruby-smie--args-separator-p):
	Recognize instance or global var as first arg in parenless call.

	* test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add example.

2022-12-16  Dmitry Gutov  <dgutov@yandex.ru>

	Fix end-of-defun in ruby-mode

	* lisp/progmodes/ruby-mode.el (ruby-beginning-of-defun):
	Return t in case of success.

2022-12-16  Yuan Fu  <casouri@gmail.com>

	Remove treesit-defun-prefer-top-level and friends

	Because they are not used anymore, after the new defun navigation is
	installed.

	* lisp/treesit.el (treesit-defun-prefer-top-level)
	(treesit--defun-maybe-top-level): Remove.

2022-12-16  Randy Taylor  <dev@rjt.dev>

	Add yaml-ts-mode (Bug#60105)

	* admin/notes/tree-sitter/build-module/batch.sh:
	* admin/notes/tree-sitter/build-module/build.sh: Add yaml support.
	* etc/NEWS: Mention it.
	* lisp/textmodes/yaml-ts-mode.el: New major mode with
	tree-sitter support.
	* lisp/progmodes/eglot.el (eglot-server-programs): Add it.

2022-12-16  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Fix indentation in json-ts-mode (bug#60123)

	* lisp/progmodes/json-ts-mode.el
	(json-ts--indent-rules): Add indentation rules for arrays.

2022-12-16  Eli Zaretskii  <eliz@gnu.org>  (tiny change)

	New input method 'cyrillic-chuvash'

	* lisp/leim/quail/cyrillic.el ("cyrillic-chuvash"): New input
	method, contributed by flashymittens@tutanota.com.  (Bug#60023)

2022-12-16  Juanma Barranquero  <lekktu@gmail.com>

	Backport: ; * lisp/bs.el: Small doc and whitespace fixes

	(cherry picked from commit 8624734504af4572525665c713a47e1b6f439a2c)

2022-12-16  Eli Zaretskii  <eliz@gnu.org>

	Revert "alist-get testfn argument evaluation correction"

	This reverts commit 17d65c99cd812e085d85f790c83ec0d540490a55.

	Please don't install unnecessary improvements on the release
	branch.

2022-12-16  Eli Zaretskii  <eliz@gnu.org>

	Revert "Elide broken but unnecessary `if` optimizations"

	This reverts commit 13aa376e93564a8cf2ddbbcf0968c6666620db89.

	Please don't install anything on the release branch that is
	not a clear bugfix for a known bug.

2022-12-16  Eli Zaretskii  <eliz@gnu.org>

	Revert "Use equal and member instead of eq and memq"

	This reverts commit f4b430140f0866f98bbf18b7094348dc64032813.

	Please don't install anything on the release branch that is not
	strictly necessary for Emacs 29.

2022-12-16  Mattias Engdegård  <mattiase@acm.org>

	Use equal and member instead of eq and memq

	* lisp/cedet/semantic/complete.el (semantic-displayer-show-request):
	* lisp/descr-text.el (describe-char-categories):
	* lisp/mh-e/mh-identity.el (mh-select-identity):
	* lisp/transient.el (transient--delay-post-command)
	(transient--post-command):
	* lisp/vc/vc-git.el (vc-git-create-tag):
	* test/lisp/emacs-lisp/cl-lib-tests.el
	(cl-lib-nth-value-test-multiple-values):
	* lisp/emulation/viper-cmd.el (viper-preserve-cursor-color):
	Use `equal` instead of `eq` and `member` instead of `memq` where
	the comparison is with literals without guaranteed identity.
	In some cases this change corrects evident bugs, in others it is
	mostly cosmetic.

2022-12-16  Mattias Engdegård  <mattiase@acm.org>

	Elide broken but unnecessary `if` optimizations

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-if):
	Remove explicit clauses purposing to simplify

	    (if X nil t) -> (not X)
	    (if X t nil) -> (not (not X))

	but never did so because of a coding mistake (eq instead of equal),
	found by a recently added warning.  They weren't actually needed
	thanks to the optimizer's fixpoint iteration: we eventually get the
	same results through

	    (if X nil t) -> (if (not X) t nil) -> (if (not X) t) -> (not X)
	    (if X t nil) -> (if X t) -> (not (not X))

2022-12-16  Mattias Engdegård  <mattiase@acm.org>

	alist-get testfn argument evaluation correction

	* lisp/emacs-lisp/gv.el (alist-get):
	Evaluate TESTFN exactly once (previously up to 3 times).
	Reduce the macro-expansion to include a call to either assoc or assq,
	not both; this reduces the generated code size in some cases.

2022-12-16  Eli Zaretskii  <eliz@gnu.org>

	* lisp/term/xterm.el (xterm-function-map): Add M-SPC.  (Bug#60077)

2022-12-16  Eli Zaretskii  <eliz@gnu.org>

	Fix moving to trash files that overwrite dangling symlinks there

	* lisp/files.el (file-exists-in-trash-p): New function.
	(move-file-to-trash): Use it instead of 'file-exists-p' when
	testing whether the file exist in the trash.  (Bug#59986)

2022-12-16  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix SVG scaling (bug#59802)

	Fix SVG scaling with librsvg>2.52 and SVG file with only one known
	dimension.

	* src/image.c (svg_load_image): Compute a percentage dimension with
	the other known dimension.

2022-12-16  F. Jason Park  <jp@neverwas.me>

	Fix some naming issues involving query buffers in ERC

	* lisp/erc/erc-networks.el
	(erc-networks-rename-surviving-target-buffer): Don't kill a surviving
	target buffer when another, non-target buffer, possibly not even
	belonging to ERC, already exists and sports the target's name.
	(erc-networks--reconcile-buffer-names): Always append a network-ID
	suffix to a target buffer's name if another buffer of that name
	already exists.  (Bug#59976.)
	* lisp/erc/erc.el (erc, erc-tls): Revise `:id' portion of doc strings.
	Thanks to Mike Kazantsev for the suggestion and for filing this bug
	and helping solve it.
	* test/lisp/erc/erc-networks-tests.el:
	(erc-networks-rename-surviving-target-buffer--query-non-target): Add
	new test.
	* test/lisp/erc/erc-scenarios-base-association-query.el: New file.
	* test/lisp/erc/resources/base/assoc/queries/netnick.eld: New file.
	* test/lisp/erc/resources/base/assoc/queries/non-erc.eld: New file.

2022-12-16  F. Jason Park  <jp@neverwas.me>

	Increment erc-debug-irc-protocol-version to 2

	* lisp/erc/erc.el (erc-debug-irc-protocol-version): Change version to
	2 to help dependent tooling detect redacted passwords.
	(erc-log-irc-protocol): Don't bother redacting incoming messages.
	(Bug#59284.)

2022-12-16  Eli Zaretskii  <eliz@gnu.org>

	A better fix for bug#60096

	* lisp/startup.el (initial-scratch-message):
	* lisp/simple.el (get-scratch-buffer-create): Revert last changes.

	* src/window.c (Fset_window_configuration): Force recalculation of
	Vwindow_list after restoring the windows.
	* src/buffer.c (other_buffer_safely): Make sure we always return a
	valid buffer, even if 'get-scratch-buffer-create' signals an
	error.

2022-12-16  João Távora  <joaotavora@gmail.com>

	Bump Eglot version to 1.10

	* lisp/progmodes/eglot.el (Version): Bump to 1.10
	(Package-Requires): Bump required versions of jsonrpc and project.

2022-12-16  João Távora  <joaotavora@gmail.com>

	Eglot: fix discrepant eglot-guess-contact/eglot-command-history

	Due to a typo, the defvar eglot--command-history wasn't actually used
	in eglot-guess-contact as intended.  That function used a
	single-dash-name version of the variable instead.

	This worked fine, except that two variables were created instead of
	one, and the one actually being used didn't have any docstring.

	Rename the variable to eglot-command-history to fix this.  It's better
	than renaming the reference in eglot-guess-contact which would lose
	user's history for M-x eglot.

	* lisp/progmodes/eglot.el (eglot-command-history): Rename from
	eglot--command-history.

2022-12-16  João Távora  <joaotavora@gmail.com>

	Avoid recursive process filters in lisp/jsonrpc.el (bug#60088)

	jsonrpc.el may lose JSON-RPC messages because of recursive process
	filters.  The problem happens in jsonrpc.el's jsonrpc--process-filter.

	The code of the process filter didn't expect to be called recursively
	and fails in that case.

	But that can happen if the three conditions are verified.

	1. the client code invoked by its jsonrpc--connection-receive inside
	   the process filter callee immediately sends follow-up input to
	   process within the same Lisp stack.  This is a common scenario,
	   especially during LSP initialization sequence used by Eglot, a
	   jsonrpc.el client.

	2. that follow-up message is large enough for process-send-string to
	   send the input in bunches (output from processes can arrive in
	   between bunches).

	3. the process happens to have already some more output ready

	The fix in this commit detects recursive invocations and immediately
	re-schedules them as non-recursive calls to the
	jsonrpc--process-filter (but started from timers).

	* lisp/jsonrpc.el (jsonrpc--process-filter): Rework.
	(Version): Bump to 1.0.16.

2022-12-15  Theodor Thornhill  <theo@thornhill.no>

	Add lambda_expression-rule to java-ts-mode (bug#60091)

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New
	rule.

2022-12-15  Jostein Kjønigsen  <jostein@kjonigsen.net>

	eglot: Add support for new language server csharp-ls

	C# has two popular language servers: Omnisharp Roslyn (already
	supported) and csharp-ls (newer, more performant).

	* lisp/progmodes/eglot.el: Add new C# language server
	csharp-ls.  (Bug#60089)

2022-12-15  Yuan Fu  <casouri@gmail.com>

	Use the new tree-sitter commands

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-valid-p)
	(c-ts-mode--defun-skipper): New functions.
	(c-ts-base-mode): Setup defun navigation.
	* lisp/progmodes/sh-script.el (bash-ts-mode): Setup defun navigation.
	* lisp/treesit.el (treesit-beginning-of-defun)
	(treesit-end-of-defun): Change to new implementation, which is
	intended to be used as commands.
	(treesit-major-mode-setup): Setup remap for beginning/end-of-defun
	commands.

2022-12-15  Yuan Fu  <casouri@gmail.com>

	Add "function" feature to python-ts-mode (bug#59977)

	* lisp/progmodes/python.el (python--treesit-settings): Add feature.
	(python-ts-mode): Add feature.  And fix indentation for the
	python-indent-guess-indent-offset code.

2022-12-15  Randy Taylor  <dev@rjt.dev>

	Add go-ts-mode and go-mod-ts-mode (Bug#60025)

	* admin/notes/tree-sitter/build-module/batch.sh:
	* admin/notes/tree-sitter/build-module/build.sh: Add go-mod support.
	* etc/NEWS: Mention them.
	* lisp/progmodes/eglot.el (eglot-server-programs): Add them.
	* lisp/progmodes/go-ts-mode.el: New major modes with
	tree-sitter support.

2022-12-15  Yuan Fu  <casouri@gmail.com>

	Add basic support for hideshow in python-ts-mode (bug#60044)

	* lisp/progmodes/python.el (python-base-mode): Add setup for
	python-ts-mode.

2022-12-15  Theodor Thornhill  <theo@thornhill.no>

	Add "this" keyword to java-ts-mode (bug#60086)

	* lisp/progmodes/java-ts-mode.el
	(java-ts-mode--font-lock-settings): Add the node to the keyword
	feature.

2022-12-15  Dmitry Gutov  <dgutov@yandex.ru>

	When completing relative project file names, use relative history

	* lisp/progmodes/project.el: Require 'cl-lib'.

	* lisp/progmodes/project.el (project--read-file-cpd-relative):
	Pre-process history entries around completing-read (bug#58447).

	This includes both filtering by common-parent-directory prefix and
	mapping into relative names.

2022-12-15  Eli Zaretskii  <eliz@gnu.org>

	Avoid segfaults due to invalid selected-window's buffer

	* lisp/startup.el (initial-scratch-message): Don't use \\[...]
	commands for substitute-command-keys.
	* lisp/simple.el (get-scratch-buffer-create): Don't call
	substitute-command-keys on initial-scratch-message, to avoid
	signaling an error in rare cases.  (Bug#60096)

2022-12-15  Juri Linkov  <juri@linkov.net>

	Revert 21b387c39bd with last-minute hasty changes (bug#60048).

	* lisp/simple.el (completion-list-mode-map): Unbind [up] and [down].
	(previous-line-completion, next-line-completion): Remove.

2022-12-15  Alan Mackenzie  <acm@muc.de>

	Replace an erroneous eq with an equal in cc-defs.el

	* lisp/progmodes/cc-defs.el (c-looking-at-non-alphnumspace): Replace eq with
	equal in the XEmacs branch.

2022-12-15  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el ([tab-bar]): Use 'make-sparse-keymap' instead of 'ignore'.

	This helps to avoid the error in 'where-is-internal' that should
	not call :filter unnecessarily (bug#9923).

2022-12-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	compile.el: Fix regression with nb of errors in modeline

	* lisp/progmodes/compile.el (compilation-mode-line-errors): Mark it as
	risky-local, like `defconst` used to do for us.

2022-12-15  Juri Linkov  <juri@linkov.net>

	Make tab-bar-tab-group-format-function backwards-compatible (bug#60073)

	* lisp/tab-bar.el (tab-bar--format-tab-group): Add condition-case
	with wrong-number-of-arguments for backwards-compatibility.
	(tab-bar-tab-group-format-default): Simplify.

2022-12-15  Gabriel do Nascimento Ribeiro  <gabriel376@hotmail.com>

	Make tab-bar-tab-group-format-function also handle current group

	* lisp/tab-bar.el (tab-bar--format-tab-group): Call
	'tab-bar-tab-group-format-default' to format current group tab.
	(tab-bar-tab-group-format-default): Update function to also handle
	current group tab (bug#60073).

2022-12-15  Philip Kaludercic  <philipk@posteo.net>

	Ensure package directories for source packages from checkouts

	* lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout):
	Set the :dir entry, since `package-vc--unpack-1' assumes the field is
	set, as is the case when invoking `package-vc--unpack'.

2022-12-15  Michael Albinus  <michael.albinus@gmx.de>

	* test/README (SELECTOR): Add eglot-tests.el to remote file using libraries.

2022-12-15  Michael Albinus  <michael.albinus@gmx.de>

	Fix bug#60060 in Tramp

	* lisp/net/tramp-sh.el (tramp-sh-handle-file-local-copy):
	Delete `tmpfile' in case of error.  (Bug#60060)

2022-12-15  Manuel Giraud  <manuel@ledu-giraud.fr>

	* .gitignore: Ignore GDB history files.

2022-12-15  Eli Zaretskii  <eliz@gnu.org>

	Mention 'tree-sitter' in user manual and NEWS

	* doc/emacs/programs.texi (Program Modes): Mention tree-sitter and
	the modes supported by it.
	* etc/NEWS: Mention tree-sitter in the Installation Changes
	section.

2022-12-14  Dmitry Gutov  <dgutov@yandex.ru>

	Fix ruby-add-log-current-method after nested class definition

	* lisp/progmodes/ruby-mode.el (ruby--add-log-current-indent):
	New function.
	(ruby-add-log-current-method): Use it.
	Check for "class" and "module" indentation to filter out the
	definitions which don't include the given position.  Also try to
	match "def" only once (for performance), because if the closest
	one doesn't include the given position, none will.

	* test/lisp/progmodes/ruby-mode-tests.el
	(ruby-add-log-current-method-after-inner-class-outside-methods)
	(ruby-add-log-current-method-after-inner-class-outside-methods-with-text):
	New tests.

2022-12-14  Theodor Thornhill  <theo@thornhill.no>

	Add indent rules to js/typescript/tsx-ts-mode (bug#60074)

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): Add in binary_expression and
	jsx_fragment.
	* lisp/progmodes/js.el (js--treesit-indent-rules): Add the same rules.

2022-12-14  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Improve fontification in csharp-ts-mode (bug#59897)

	Fixes highlighting of generic methods like the one below:

	instance.MethodWithTypeArguments<Type>(...);
	InClassMethodWithTypeArguments<Type>(...);

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
	Add new rule.

2022-12-14  Yuan Fu  <casouri@gmail.com>

	Revert "Add expression for generic_name in csharp-ts-mode"

	I applied the wrong commit, the next commit will be the right one,
	sorry about that!

	This reverts commit 647b6a8099f414e5a7b162efd3658e174064dfe7.

2022-12-14  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Introduce support for TOML config-format

	This commit introduces support for the semi-popular TOML
	config-format[1] through a new major-mode: toml-ts-mode.

	I've read through the full spec[2], and from what I can see this
	major-mode should provide correct syntax highlighting for every sort of
	config-declaration which adheres to the specification.

	Besides that it also adds support for imenu and basic tree-sitter
	based navigation.

	[1] https://toml.io/en/
	[2] https://toml.io/en/v1.0.0

2022-12-14  Arash Esbati  <arash@gnu.org>

	Fix handling of % when searching in .tex or .dtx files

	* lisp/textmodes/reftex.el (reftex-compile-variables): Consider %
	when building the regexp for searching only in .dtx files.
	(AUCTeX bug#59638)

2022-12-14  Daniel Martín  <mardani29@yahoo.es>

	Treat C++ classes as defuns in C Tree-sitter mode (bug#60047)

	* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Add "class_specifier"
	as a node of type "defun".

2022-12-14  Daniel Martín  <mardani29@yahoo.es>

	Add < and > to the syntax table in c++-ts-mode (bug#60049)

	* lisp/progmodes/c-ts-mode.el (c++-ts-mode--syntax-table): Add a
	specific syntax table for C++.  Consider "<" and ">" open/close
	delimiters (C++ templates).
	(c++-ts-mode): Use the new syntax table.

2022-12-14  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Improve fontifications in Typescript mode

	* lisp/progmodes/typescript-ts-mode.el: Improve fontification of
	variables.  (Bug#59831)

2022-12-14  Eli Zaretskii  <eliz@gnu.org>

	Update the documentation of overlays (bug#59996)

	* src/buffer.c (Foverlay_recenter, Foverlay_lists): Update the doc
	strings.

	* lisp/subr.el (copy-overlay): Update comment.

	* doc/lispref/internals.texi (Buffer Internals): Remove buffer
	fields relevant to the old implementation; add the new interval
	tree field.
	* doc/lispref/display.texi (Overlays, Managing Overlays): Update
	text to be consistent with the new implementation of overlays.
	(Managing Overlays): Remove documentation of 'overlay-recenter'.

	* etc/NEWS: Mention incompatible aspects of overlay
	reimplementation.

2022-12-14  F. Jason Park  <jp@neverwas.me>

	Don't send erc-sasl-user as USER command argument

	* lisp/erc/erc-sasl.el (erc-sasl--send-cap-ls): Add internal switch
	for sending an opening "CAP LS".  The rationale for not enabling this
	by default is twofold: one, it more strongly implies that ERC supports
	IRCv3 client capability negotiation, which is somewhat disingenuous;
	and, two, We'd still be "faking it" by firing and forgetting, and more
	balls in the air makes things less predictable.
	(erc--register-connection): Possibly send a "CAP LS" before anything
	depending on the value of `erc-sasl--send-cap-ls'.  Also, don't
	attempt to send `erc-session-username' when it holds an SASL username
	because the latter may contain protocol-defying characters.
	* test/lisp/erc/resources/base/local-modules/fourth.eld: change user
	parameter of "USER" command to reflect nick when `erc-sasl-user' is
	set to `:user'.  (Bug#59976.)

2022-12-14  F. Jason Park  <jp@neverwas.me>

	Set erc-network to a "given" ID instead of failing

	* lisp/erc/erc-networks.el (erc-networks--determine): Return the
	so-called "given" ID from a non-nil `:id' keyword arg passed to `erc'
	or `erc-tls'.
	(erc-networks--allow-unknown-network): Add internal variable to
	allow IRC session to continue despite the network being unknown.
	(erc-networks--set-name): Tell the user about falling back to a given
	ID when the network can't be determined.  When that's so, end the
	session by destroying the connection unless
	`erc-networks--allow-unknown-network' is enabled.  (Bug#59976.)
	(erc-networks--ensure-announced): Include the fallback announced
	server name in the error message.
	* test/lisp/erc/erc-networks-tests.el (erc-networks--set-name): Add
	dummy server process and don't expect an error to be signaled.
	* test/lisp/erc/erc-scenarios-misc.el
	(erc-scenarios-networks-announced-missing): Don't expect an error to
	be signaled.
	* test/lisp/erc/resources/networks/announced-missing/foonet.eld:
	Remove "mode" match pattern.

2022-12-14  F. Jason Park  <jp@neverwas.me>

	Limit casemapping to appropriate ranges in ERC

	* lisp/erc/erc-common.el (erc-downcase): Use case table for
	`erc-downcase' so that case conversions are limited to the ASCII
	interval.
	* lisp/erc/erc.el (erc-casemapping--rfc1459-strict,
	erc--casemapping-rfc1459): Make these case tables instead of
	translation tables.  The functions in case-table.el modify the
	standard syntax table, but that doesn't seem to make sense here,
	right?
	* test/lisp/erc/erc-tests.el (erc-downcase): Add cases showing
	mappings outside of the ASCII range.  (Bug#59976.)

2022-12-14  F. Jason Park  <jp@neverwas.me>

	Actually accept non-symbols as IDs in erc-open

	* lisp/erc/erc.el (erc-generate-new-buffer-name): Despite what it says
	in the documentation, only symbols were being accepted as valid `:id'
	entry-point arguments.  This uses the interned `princ' representation
	of the argument instead.
	* test/lisp/erc/erc-scenarios-base-netid-samenet.el
	(erc-scenarios-common--base-network-id-same-network): Randomly specify
	a string for the ID param instead of a non-nil symbol when opening a
	new connection.
	* test/lisp/erc/resources/erc-scenarios-common.el
	(erc-scenarios-common-assert-initial-buf-name): Adjust helper to allow
	for non-symbol IDs.  (Bug#59976.)

2022-12-14  F. Jason Park  <jp@neverwas.me>

	Respect a nil erc-session-password when reconnecting

	* lisp/erc/erc.el (erc-open): Simplify `old-vars' expression.
	(erc--compute-server-password): Only compute a server password when
	first connecting.  For compatibility, this respects third-party code
	that expects session passwords in target buffers when initially
	non-nil.
	* test/lisp/erc/erc-scenarios-services-misc.el
	(erc-scenarios-services-auth-source-reconnect): Add new test.
	* test/lisp/erc/resources/services/auth-source/recon.eld: Add new test
	data file.  (Bug#59858.)

2022-12-14  F. Jason Park  <jp@neverwas.me>

	Add dedicated auth-source section in ERC manual

	* doc/misc/erc.texi: Move auth-source description from the Password
	subheading of the Advanced chapter's Connecting section to the new
	Integrations section as a new node, Auth-Source, and give it a bit
	more structure.  Fix various misuses of xref vs. pxref.  Convert URL
	subheading to subsection and add anchor.  Prefer "backend" as a single
	word, based on usage in other manuals.  Also replace loud "warning" in
	SASL troubleshooting section.
	* etc/ERC-NEWS: Re-link auth-source mention.
	* lisp/erc/erc-sasl.el (erc-sasl-auth-source-function): Update info
	node in doc string.
	* lisp/erc/erc-services.el (erc-auth-source-services-function):
	Re-link auth-source info node in doc string.
	* lisp/erc/erc.el (erc-password, erc-auth-source-server-function,
	erc-auth-source-join-function): Re-link auth-source info node in doc
	strings.

2022-12-14  Mattias Engdegård  <mattiase@acm.org>

	Better shortdoc examples

	* lisp/emacs-lisp/shortdoc.el
	(symbol, comparison): New.
	(string, list, number): Remove or change examples that do not have
	well-defined results, such as `eq` on strings or floats.
	Edit other examples for better illustrating each respective operation.

2022-12-14  Mattias Engdegård  <mattiase@acm.org>

	Shortdoc: read and evaluate strings after :eval

	* lisp/emacs-lisp/shortdoc.el (shortdoc--display-function):
	If the parameter of :eval is a string then read, evaluate and print
	the result.  This was always the intention and is documented behavior.

2022-12-14  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp tests in eglot-tests, prefix tests uniquely

	* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
	Use `make-nearby-temp-file'.
	(eglot--call-with-tramp-test): Set `tramp-verbose' and
	`default-directory'.  The latter is needed for `make-nearby-temp-file'.
	(eglot-test-tramp-test, eglot-test-tramp-test-2): Tag them as
	:expensive-test.
	(all): Prefix all tests with `eglot-test-' uniquely.

2022-12-14  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc-git.el (vc-git-checkin): Use make-nearby-temp-file (bug#60011)

2022-12-14  Stefan Kangas  <stefankangas@gmail.com>

	Delete temp files after icalendar tests

	* test/lisp/calendar/icalendar-tests.el
	(icalendar-tests--get-error-string-for-export): Make sure we clean up
	temporary files after test.

2022-12-13  Kai Ma  <justksqsf@gmail.com>  (tiny change)

	Fix syntax tables of tree-sitter modes (bug#59807)

	Tree-sitter modes should use the same syntax table as the
	non-tree-sitter ones.

	* lisp/progmodes/js.el (js-mode-syntax-table)
	(js-ts-mode)
	* lisp/progmodes/python.el (python-ts-mode)
	* lisp/progmodes/sh-script.el (bash-ts-mode)


	xx

2022-12-13  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/Makefile.in (need_emacsver): Add use-package.

2022-12-13  Stefan Kangas  <stefankangas@gmail.com>

	Fix bug when calling `rgrep` non-interactively

	* lisp/progmodes/grep.el (rgrep): Fix bug where running
	non-interactively requires running it interactively
	first.  (Bug#60024)

2022-12-13  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp specific tests in eglot-tests.el

	* test/lisp/progmodes/eglot-tests.el (tramp): Move up.
	(tramp-sh): Don't require.
	(eglot--cleanup-after-test): Delete Tramp buffers if needed.
	(eglot-tests-lsp-abiding-column): Rename from `eglot-lsp-abiding-column'.
	(tramp-histfile-override): Declare.
	(eglot--call-with-tramp-test):
	Use `ert-remote-temporary-file-directory'.  Skip if needed.
	(eglot--tramp-test, eglot--tramp-test-2): Don't skip.

2022-12-13  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/textmodes/texinfo.el (texinfo-flymake): Improve docstring.

2022-12-13  Juri Linkov  <juri@linkov.net>

	Support a function in the BUFFER-LIST arg of list-buffers-noselect (bug#59935)

	* lisp/buff-menu.el (Buffer-menu-buffer-list): New buffer-local variable.
	(list-buffers-noselect): Set Buffer-menu-buffer-list to 'buffer-list'
	that now keeps the buffer-local value of the provided buffer list
	or a function that returns the buffer list.
	(list-buffers--refresh): Handle buffer-list and Buffer-menu-buffer-list
	as a function and as a list.

	* lisp/progmodes/project.el (project-list-buffers): Let-bind
	'buffer-list-function' used by both legacy code and the new version
	of list-buffers-noselect that supports its arg BUFFER-LIST as a function.

2022-12-13  Augusto Stoffel  <arstoffel@gmail.com>

	Don't allow lazy highlight from recursive minibuffers

	See bug#59918.

	* lisp/isearch.el (minibuffer-lazy-highlight-setup): Don't activate
	when starting a recursive minibuffer.

2022-12-13  Eli Zaretskii  <eliz@gnu.org>

	Improve resetting face attributes when looking for suitable fonts

	* src/xfaces.c (syms_of_xfaces)<face-font-lax-matched-attributes>:
	Change the default value to t.  Update doc string.
	(realize_gui_face): When 'Vface_font_lax_matched_attributes' is t,
	reset the 3 default font attributes efficiently.  Call
	'font_maybe_unset_attribute' only if the value is neither nil nor
	t.  (Bug#59347)

2022-12-13  Stefan Kangas  <stefankangas@gmail.com>

	Add lexical-binding to example package header

	* doc/lispref/package.texi (Simple Packages): Add lexical-binding
	cookie to example package header.

2022-12-13  Yuan Fu  <casouri@gmail.com>

	Add improved tree-sitter navigation

	This new set of functions (and tests) should eliminate
	defun-navigation bugs and limitations we currently have.  This commit
	doesn't change any existing behavior: treesit-beginning/end-of-defun
	and friends are unchanged.  The plan is to later switch gear and
	replace the current functions with the new ones introduced in this
	change.

	This is a relatively big change, but I've setup a comprehensive test,
	and it should fix current bugs, so I think it's ok to put it on the
	release branch.

	The gist of the new navigation is to use treesit--defuns-around to
	find the previous sibling defun, next sibling defun, and the parent
	defun, then use this information to move to previous/next
	beginning/end of defun in treesit--navigate-defun.

	I also added comprehensive testing that tests all four possible
	operations (prev-beg, next-beg, prev-end, next-end) starting at all
	possible positions (between two sibling defuns, inside a sibling
	defun, etc).

	* lisp/treesit.el (treesit-defun-type-regexp): Expand definition to
	allow (REGEXP . FILTER).  Old functions don't support this, but it
	should be fine since we are soon replacing them.

	(treesit-defun-tactic)
	(treesit-defun-skipper): New variables.

	(treesit-default-defun-skipper)
	(treesit--defuns-around)
	(treesit--top-level-defun)
	(treesit--navigate-defun): New functions.

	* test/src/treesit-tests.el (treesit--ert-insert-and-parse-marker)
	(treesit--ert-collect-positions)
	(treesit--ert-test-defun-navigation): New helper functions.

	(treesit--ert-defun-navigation-python-program)
	(treesit--ert-defun-navigation-js-program)
	(treesit--ert-defun-navigation-bash-program)
	(treesit--ert-defun-navigation-nested-master): New variables.

	(treesit-defun-navigation-nested-1)
	(treesit-defun-navigation-nested-2)
	(treesit-defun-navigation-nested-3)
	(treesit-defun-navigation-top-level): New tests.

2022-12-12  Stefan Kangas  <stefankangas@gmail.com>

	Add cross-reference to flush-lines

	* lisp/replace.el (flush-lines, kill-matching-lines): Add
	cross-references between commands, using the names
	'(kill|delete)-matching-lines' for symmetry.  (Bug#59934)

2022-12-12  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Use font-lock-number-face for numeric values in csharp-mode

	(bug#60004)

	* lisp/progmodes/csharp-mode.el: update fontification code.

2022-12-12  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Make treesit-query-validate create a read-only buffer

	* lisp/treesit.el: use view-mode for generated validation buffer.

2022-12-12  Randy Taylor  <dev@rjt.dev>

	Improve dockerfile-ts-mode imenu generation (Bug#59979)

	* lisp/progmodes/dockerfile-ts-mode.el (treesit-node-child-by-field-name):
	Declare.
	(dockerfile-ts-mode--imenu-1): Use stage name if available.

2022-12-12  Daniel Martín  <mardani29@yahoo.es>

	Add "->" to python--treesit-operators (bug#59968)

	* lisp/progmodes/python.el (python--treesit-operators): Add "->", used
	to specify the return types of functions in Python.

2022-12-12  Daniel Martín  <mardani29@yahoo.es>

	Align C++ access specifiers to their enclosing class/struct/union

	(bug#59966)

	The default style in c++-mode aligns access specifiers like "private",
	"public" or "protected" to their enclosing class, struct, or union.
	The "ellemtel" style indents access specifiers, but this C++ style is
	not supported by c++-ts-mode yet.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Align access
	specifiers to their enclosing class/struct/union.

2022-12-12  Randy Taylor  <dev@rjt.dev>

	Add cmake-ts-mode

	* admin/notes/tree-sitter/build-module/batch.sh:
	* admin/notes/tree-sitter/build-module/build.sh: Add cmake support.
	* etc/NEWS: Mention it.
	* lisp/progmodes/cmake-ts-mode.el: New major mode with
	tree-sitter support.
	* lisp/progmodes/eglot.el (eglot-server-programs): Add it.

2022-12-12  Theodor Thornhill  <theo@thornhill.no>

	Tweak various ts-mode's indent and fontification (bug#59931)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add raw
	string literal font-locking.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add
	text_block indent rule.
	(java-ts-mode--font-lock-settings): Add text_block font-locking.
	* lisp/progmodes/js.el (js-ts-mode): Prefer top-level navigation.
	* lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings):
	Add comment feature.
	(json-ts-mode): Use comment feature.
	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode):
	Prefer top-level navigation.

2022-12-12  Theodor Thornhill  <theo@thornhill.no>

	Add expression for generic_name in csharp-ts-mode (bug#59897)

	Given the below example, we want 'services' to be font-locked in
	'font-lock-variable-name-face' in all cases.  Previously this only
	worked in the first case, and the other was font-locked as
	'font-lock-function-name-face'.

	namespace Foo {
	    void Foo() {
	        services.Add();
	        services.Add<MyType>();
	    }
	}

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
	Add new query that makes the mentioned example work.

2022-12-12  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el: Fix the value 'insert' of outline-minor-mode-use-buttons.

	(outline--insert-button): Keep text properties around point
	on the inserted whitespace placeholder.

	* lisp/apropos.el (apropos-mode):
	* lisp/progmodes/xref.el (xref--xref-buffer-mode):
	Change outline-minor-mode-use-buttons from t to 'insert'.

2022-12-12  Juri Linkov  <juri@linkov.net>

	* lisp/minibuffer.el (completions-group-separator): Revert f7816c94b6.

	Change face attribute from :underline back to :strike-through.
	https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01792.html

2022-12-12  João Távora  <joaotavora@gmail.com>

	Skip Eglot rust-analyzer tests if 'cargo' isn't available

	* test/lisp/progmodes/eglot-tests.el
	(project-wide-diagnostics-rust-analyzer)
	(diagnostic-tags-unnecessary-code): Skip unless "cargo" is found.

2022-12-12  Stefan Kangas  <stefankangas@gmail.com>

	use-package.texi: New section "Manual installation"

	* doc/misc/use-package.texi (Manual installation): New section.
	(Load path, Manual autoloads): Make into subsections of above new
	section.

2022-12-11  Po Lu  <luangruo@yahoo.com>

	Revert "Revert "Improve last change to xfaces.c" (05ece1eb8b)"

	This reverts commit b8d2ec920f37f5d77d32440eefc97dd5e8c2c7dc.

	Not only does it make debugging Emacs harder for users, that change is
	unsafe for the Haiku port.

2022-12-11  Gregory Heytings  <gregory@heytings.org>

	Revert "Improve last change to xfaces.c" (05ece1eb8b)

	* src/xfaces.c: Revert 05ece1eb8b.

	See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59347#331.

2022-12-11  Gregory Heytings  <gregory@heytings.org>

	Do not pare arguments unnecessarily.

	* lisp/pcomplete.el (pcomplete-here-using-help): Do not pare
	arguments.  Fixes bug#59803.

2022-12-11  João Távora  <joaotavora@gmail.com>

	Add automated tests for Eglot

	Most of the tests require a specific LSP server to do their thing, and
	skip themselves if this server isn't found.

	This file is a modified/overhauled version of the original Eglot
	automated tests that were developed in the old GitHub upstream.

	* test/lisp/progmodes/eglot-tests.el: New file.

2022-12-11  João Távora  <joaotavora@gmail.com>

	Eglot: allow skipping compile-time warnings about LSP interfaces

	* lisp/progmodes/eglot.el (eglot-strict-mode): Add 'no-unknown-interfaces'.
	(eglot--check-object): Honor new eglot-strict-mode value.

2022-12-11  Yuan Fu  <casouri@gmail.com>

	Add customizale faces for tree-sitter explorer

	* lisp/treesit.el (treesit-explorer-anonymous-node)
	(treesit-explorer-field-name): New face.
	(treesit--explorer-draw-node): Use the new faces.
	(treesit-explore-mode): Change playground to explorer.

2022-12-11  Stefan Kangas  <stefankangas@gmail.com>

	Fix error message when installing non-existent package

	* lisp/emacs-lisp/package.el (package-compute-transaction): Don't add
	trailing dash to package name in non-existent package
	error.  (Bug#59923)

2022-12-11  Juri Linkov  <juri@linkov.net>

	Don't use diff-mode buffer as a patch when it's visiting a file (bug#59962)

	* lisp/vc/vc.el (vc-deduce-fileset-1): Don't call diff-vc-deduce-fileset
	for diff-mode when buffer-file-name is non-nil.  This is because in this case
	a file with a diff might be committed to VCS.  So don't use it as a patch
	to commit with 'C-x v v'.

2022-12-11  Mattias Engdegård  <mattiase@acm.org>

	Fix pcase rx patterns using rx-let bindings (bug#59814)

	Reported by Daniel Pittman.

	* lisp/emacs-lisp/rx.el (rx): Move binding of rx--local-definitions...
	(rx--to-expr): ...here.
	* test/lisp/emacs-lisp/rx-tests.el (rx-let-pcase): New test.

2022-12-11  Mattias Engdegård  <mattiase@acm.org>

	Fix use-package-defaults defcustom type (bug#59941)

	* lisp/use-package/use-package-core.el (use-package-defaults):
	Enlarge type to allow for keywords such as :ensure and :pin to be
	added later, remedying a failure in test-custom-opts.

2022-12-11  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	* lisp/language/indian.el: Improve Brahmi composition rules. (bug#58957)

2022-12-10  Po Lu  <luangruo@yahoo.com>

	Improve last change to xfaces.c

	* src/xfaces.c (font_unset_attribute): New function.
	(realize_gui_face): Improve commentary and use list instead of
	bitmask.
	(syms_of_xfaces): Get rid of bitmask.  Replace it by a list,
	there is no reason any user should have to think about bitmasks
	in Emacs lisp.

2022-12-10  Gregory Heytings  <gregory@heytings.org>

	Actually improve detection of long lines

	* src/xdisp.c (redisplay_window): Update condition.

	* src/xdisp.c (mark_window_display_accurate_1):
	* src/pdumper.c (dump_buffer):
	* src/buffer.h (BUF_CHARS_UNCHANGED_MODIFIED):
	(struct buffer_text):
	* src/buffer.c (Fget_buffer_create):
	Revert 1c837c42c2, which was misguided.

2022-12-10  Gregory Heytings  <gregory@heytings.org>

	Unset the weight/slant/width in the spec when realizing a font

	Between commits bf0d3f76dc (2014) and 6b1ed2f2c9 (2022),
	realize_gui_face called font_load_for_lface with an empty or
	partly emptied font spec, i.e. it ignored a part of its attrs
	argument.  The rationale given in bug#17973, which led to
	bf0d3f76dc, is not clear.  However, 6b1ed2f2c9, which passes
	the full font spec to font_load_for_lface and
	font_find_for_lface, leads to suboptimal font choices, for
	example when the font chosen for the default face has a
	weight, slant or width that is not supported by other
	available fonts on the system, such as 'medium' or 'heavy'.

	If these attributes are not unset here, the call to
	font_list_entities in font_find_for_lface arbitrarily limits
	the candidate font list to those that are perfect matches for
	these attributes, which means that the scoring mechanism is
	bypassed.  Note that the size attribute in spec is also unset,
	in font_find_for_lface.

	Also allow unsetting the other attributes, for debugging purposes.

	* src/xfaces.c (realize_gui_face): Unset the weight, slant and
	width of the font spec.  Fixes bug#57555 and bug#59347.
	(syms_of_xfaces): New variable
	'realize-gui-face-ignored-spec-attributes'.

2022-12-10  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.6-31-g954a95

2022-12-10  Eli Zaretskii  <eliz@gnu.org>

	Fix infloop in 'shell-resync-dirs' with tcsh

	* lisp/shell.el (shell-resync-dirs): Remove trailing slash from
	output of 'dirs', for csh/tcsh's sake.  (Bug#59804)

2022-12-10  Philip Kaludercic  <philipk@posteo.net>

	Ensure 'package-vc--version' always returns a version

	* lisp/emacs-lisp/package-vc.el (package-vc--version): Return "0" even
	if the main file exists, but lacks version headers.

2022-12-10  Philip Kaludercic  <philipk@posteo.net>

	Ensure 'package-vc--main-file' always returns an existing file

	* lisp/emacs-lisp/package-vc.el (require): Explicitly require cl-lib.
	(package-vc--main-file): If the expected file name is missing, try and
	find the closest match.

2022-12-10  Philip Kaludercic  <philipk@posteo.net>

	Check if package already exists before installing from checkout

	* lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout):
	Copy check from 'package-vc--unpack'.

2022-12-10  Matt Armstrong  <matt@rfc20.org>

	Refresh the package quickstart file in package-vc

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Call
	`package--quickstart-maybe-refresh', just as
	`package-install-from-buffer' does.  (bug#59728)

2022-12-09  Yuan Fu  <casouri@gmail.com>

	Make indirect buffers use tree-sitter parsers of their base buffer

	Fix the problem described in bug#59693.

	* src/treesit.c (treesit_record_change): Always use the base buffer.
	(Ftreesit_parser_create): Always use the base buffer.  Also change the
	for loop into FOR_EACH_TAIL (stylistic change).
	(Ftreesit_parser_list): Always use the base buffer.

	* doc/lispref/parsing.texi (Using Parser): Update manual.
	* test/src/treesit-tests.el (treesit-indirect-buffer): New test.

2022-12-09  Brian Leung  <leungbk@posteo.net>

	Fontify "this" as a keyword in c++-ts-mode (bug#59924)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
	Following c++-mode, fontify as a keyword instead of a constant.

2022-12-09  Theodor Thornhill  <theo@thornhill.no>

	Add class_body indentation for typescript (bug#59680)

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): New indent rule.

2022-12-09  Theodor Thornhill  <theo@thornhill.no>

	Make more granular defun-type-regexp (bug#59873)

	We don't want to match local_variable_declaration and others to hit on
	beginning-of-defun.  The fix is just to make the regexp a bit more
	granular.

	* lisp/progmodes/java-ts-mode.el (java-ts-mode): Use regexp-opt to
	distinguish more granularly.

2022-12-09  Randy Taylor  <dev@rjt.dev>

	Add dockerfile-ts-mode (Bug#59894)

	* admin/notes/tree-sitter/build-module/batch.sh: Add dockerfile support.
	* admin/notes/tree-sitter/build-module/build.sh: Support different
	namespaces and add dockerfile support.
	* etc/NEWS: Mention it.
	* lisp/progmodes/dockerfile-ts-mode.el: New major mode with
	tree-sitter support.
	* lisp/progmodes/eglot.el (eglot-server-programs): Add it.

2022-12-09  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Fix fontification of method-invocations in js-ts-mode (bug#59904)

	* lisp/progmodes/js.el (js--treesit-font-lock-settings): Move rules
	for property in front of function names, so function names override
	property.

2022-12-09  Theodor Thornhill  <theo@thornhill.no>

	Fix escape-sequence feature in typescript-ts-mode (bug#59906)

	* lisp/progmodes/typescript-ts-mode.el: (typescript-ts-mode,
	tsx-ts-mode): Use escape-sequence feature.

2022-12-09  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Improve fontification in csharp-ts-mode (bug#59909)

	- Fontity escape sequences.
	- Highlight syntax errors.

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings)
	(csharp-ts-mode): Add new features

2022-12-09  Dmitry Gutov  <dgutov@yandex.ru>

	Use 'project--value-in-dir' for 'project-vc-include-untracked' too

	* lisp/progmodes/project.el (project--vc-list-files): Use
	'project--value-in-dir' for 'project-vc-include-untracked' too.
	So that is can be reliably set through dir-locals.

2022-12-09  Eli Zaretskii  <eliz@gnu.org>

	Update Turkish Hello

	* etc/HELLO (Turkish):
	* lisp/language/european.el ("Turkish"): Add a Turkish Hello.
	Suggested by YUSUF ALPER ÇIKIŞIR <yusufcikisir@std.iyte.edu.tr>.

2022-12-09  Philipp Stephani  <phst@google.com>

	Support newer glib versions (Bug#59061)

	* lib-src/seccomp-filter.c (main): Allow pidfd_open system call

2022-12-09  Dmitry Gutov  <dgutov@yandex.ru>

	Bring back the project--value-in-dir logic

	Essentially revert commit 2389158a31b4a12, restoring the changes
	and fixing the conflicts.  Motivated by the problem brought up in
	bug#59722 (behavior of project-find-files/regexp when switching
	projects).  We should find other ways to improve performance.

	* lisp/progmodes/project.el
	(project--value-in-dir, project--vc-merge-submodules-p): Restore.
	(project-try-vc, project-files, project--vc-list-files)
	(project-ignores, project-buffers): Use.

	* test/lisp/progmodes/project-tests.el
	(project-vc-supports-project-in-different-dir): New test.

	* test/lisp/progmodes/project-resources/.dir-locals.el:
	* test/lisp/progmodes/project-resources/foo:
	* test/lisp/progmodes/project-resources/etc: New files.

2022-12-09  Andrea Corallo  <akrl@sdf.org>

	Backport: Enable native speed 2 EMBA build and tests and disable speed 0

		* test/infra/gitlab-ci.yml (build-native-comp-speed2): Uncomment.
		(build-native-comp-speed0): Comment.
		(test-native-comp-speed0): Remove.
		(test-native-comp-speed2): Add.

	(cherry picked from commit 06bf218f69a62d5d5c8d3b3767d7db8d9fb4bb9f)

2022-12-09  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/test-jobs.yml: Regenerate for the new use-package subdirectory.

2022-12-09  Michael Albinus  <michael.albinus@gmx.de>

	Adapt manual names in emacs-news-mode

	* lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize):
	Allow hyphen in manual names.

2022-12-09  F. Jason Park  <jp@neverwas.me>

	Respect some spaces in auth-source-pass--match-regexp

	* lisp/auth-source-pass.el (auth-source-pass--match-regexp): Allow an
	entry's host and user fields to contain spaces, just like other
	backends do.
	* lisp/erc/erc-compat.el
	(erc-compat--29-auth-source-pass--retrieve-parsed): Change regexp to
	allow spaces in host and user components of file names.
	* test/lisp/auth-source-pass-tests.el (auth-source-pass-any-host):
	Silence warning message re wildcards emitted by
	`auth-source-pass-search'.
	(auth-source-pass-extra-query-keywords--suffixed-user): Add spaces
	to users and hosts of some example entries.  (Bug#58985.)

2022-12-09  dannyfreeman  <danny@dfreeman.email>
	    João Távora  <joaotavora@gmail.com>

	Eglot: Handle LSP progress with Emacs progress reporters (bug#59149)


	* lisp/progmodes/eglot.el (eglot-report-progress): New custom variable.
	(eglot-lsp-server): New slot for tracking active progress reporters.
	(eglot-handle-notification (eql $/progress)): New method.

	The LSP spec describes methods for reporting progress on long running
	jobs to the client:

	https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#progress
	https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workDoneProgress

	This change reports those notifications in the minibuffer as they come
	in.  It shows a percent indicator (if the server provides theme), or a
	spinner.

	This change could open the door for writing a "cancel long running
	request" command, which are identified by these progress
	notifications.  See
	https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#window_workDoneProgress_cancel

	* doc/misc/eglot.texi (Customizing Eglot): Describe new variable.

2022-12-09  dannyfreeman  <danny@dfreeman.email>
	    João Távora  <joaotavora@gmail.com>

	Eglot: cleanup whitespace and indentation


	* lisp/progmodes/eglot.el: Misc whitespace fixes.

2022-12-09  Mattias Engdegård  <mattiase@acm.org>

	Better test-custom-opts diagnostics

	Make it easier to understand errors from the test-custom-opts test by
	reporting variable values and types that didn't match.

	* admin/cus-test.el (cus-test-errors): Richer contents.
	(cus-test--format-error): New.
	(cus-test-apropos, cus-test-errors-display, cus-test-opts):
	Use new format.

2022-12-09  Stefan Kangas  <stefankangas@gmail.com>

	New script admin/check-man-pages

	* admin/check-man-pages: New file with script used to check man pages
	for errors.  (Bug#59631)
	* admin/make-tarball.txt: Document when to use the above script.

2022-12-09  Stefan Kangas  <stefankangas@gmail.com>

	Improve :delight keyword example in use-package manual

	* use-package.texi (Diminish, Delight): Clarify what happens if the
	pre-requisite packages are not installed.  Change an example with
	performance issues to one without any.

	Resolves https://github.com/jwiegley/use-package/issues/835

2022-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Clarify :after keyword in use-package docstring

	* lisp/use-package/use-package-core.el (use-package): Clarify the
	effect of :after in docstring.

	Resolves https://github.com/jwiegley/use-package/issues/825

2022-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Add conditional loading examples to use-package manual

	* doc/misc/use-package.texi (Conditional loading): Expand section with
	examples.

	Resolves https://github.com/jwiegley/use-package/issues/693

2022-12-08  Po Lu  <luangruo@yahoo.com>

	Revert "; * src/emacs.c (main): Improvements to last change."

	This reverts commit c774e83e36784ab96539c5c083b3bcb6d0158a8c.  It
	causes crashes on GNU/Linux systems using libgmp, as there a shared
	library initializer is used to set the malloc functions on startup, so
	they are not dumped.

2022-12-08  Sean Whitton  <spwhitton@spwhitton.name>

	server-eval-at: Don't call server--file-name

	* lisp/server.el (server-eval-at): Revert to old code for determining
	the server file.  The recent change to call server--file-name meant
	that the SERVER argument to server-eval-at was ignored.

2022-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Merge branch 'feature/use-package' into emacs-29

2022-12-08  Stefan Kangas  <stefankangas@gmail.com>

	* etc/USE-PACKAGE-NEWS: Delete file.

	Ref: https://lists.gnu.org/r/emacs-devel/2022-11/msg01535.html

2022-12-08  Stefan Kangas  <stefankangas@gmail.com>

	* admin/git-bisect-start: Prune use-package merge commits.

2022-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Update use-package defgroups

	* lisp/use-package/bind-key.el (bind-key):
	* lisp/use-package/use-package-core.el (use-package):
	* lisp/use-package/use-package-ensure.el (use-package-ensure): Add
	:link, :version and :group to defgroups.

2022-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Drop key-chord.el support from use-package

	* lisp/use-package/bind-chord.el:
	* lisp/use-package/use-package-chords.el:
	* test/lisp/use-package/use-package-chords-tests.el: Delete files.
	* doc/misc/use-package.texi (use-package-chords): Delete section.
	Ref: https://lists.gnu.org/r/emacs-devel/2022-12/msg00052.html

2022-12-08  Juanma Barranquero  <lekktu@gmail.com>

	Remove unneeded (require 'edebug) from which-func.el

	* lisp/progmodes/which-func.el: Don't require edebug.  This is
	code from an attempted fix to bug#49592, installed in 55cc8b040b
	(2022-08-08) and left behind after 48b0f2606b (2022-08-23).

2022-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Change use-package custom :group to `initialization`

	* lisp/use-package/use-package-core.el (use-package): Move
	defgroup to custom :group 'initialization'.

2022-12-08  Jim Porter  <jporterbugs@gmail.com>

	Treat escaped newlines in Eshell as the empty string

	This fixes a regression introduced during Emacs 29's development.

	* lisp/eshell/esh-arg.el (eshell-parse-argument): Handle
	'eshell-empty-token' as the result of an argument-parsing hook.
	(eshell-parse-argument-hook): Document 'eshell-empty-token'.
	(eshell-parse-backslash): Return 'eshell-empty-token' when
	encountering an escaped newline.

	* test/lisp/eshell/eshell-tests.el (eshell-test/escape-nonspecial)
	(eshell-test/escape-nonspecial-unicode)
	(eshell-test/escape-nonspecial-quoted)
	(eshell-test/escape-special-quoted): Move from here...

	* test/lisp/eshell/esh-arg-tests.el (esh-arg-test/escape/nonspecial)
	(esh-arg-test/escape/nonspecial-unicode)
	(esh-arg-test/escape-quoted/nonspecial)
	(esh-arg-test/escape-quoted/special): ... to here.
	(esh-arg-test/escape/special, esh-arg-test/escape/newline)
	(esh-arg-test/escape-quoted/newline): New tests.

	* doc/misc/eshell.texi (Arguments): Explain escaping logic in more
	detail (bug#59622).

2022-12-07  Stefan Kangas  <stefankangas@gmail.com>

	use-package: Improve :mode keyword documentation

	* doc/misc/use-package.texi (Modes and interpreters): Improve
	section and document the use of a list of regexps.

	Resolves https://github.com/jwiegley/use-package/issues/996

2022-12-07  Stefan Kangas  <stefankangas@gmail.com>

	Improve bind-keys* and override-global-mode docstrings

	* lisp/use-package/bind-key.el (bind-keys*): Add docstring.
	(override-global-mode) Improve docstring.

2022-12-07  Po Lu  <luangruo@yahoo.com>

	Fix crash on Windows 9X

	* src/emacs.c (main): Call init_bignum before init_window_once.

2022-12-07  Yuan Fu  <casouri@gmail.com>

	Add recursion limit to treesit--children-covering-range-recurse

	* lisp/treesit.el (treesit--children-covering-range-recurse): Add
	limit.

2022-12-07  Yuan Fu  <casouri@gmail.com>

	Improve tree-sitter fontification in edge-cases (bug#59738)

	* lisp/treesit.el (treesit-font-lock-fontify-region): Use
	treesit--children-covering-range-recurse.

2022-12-07  Stefan Kangas  <stefankangas@gmail.com>

	Add new use-package manual

	* doc/misc/use-package.texi: Rewrite manual.

2022-12-07  Theodor Thornhill  <theo@thornhill.no>

	Add c-ts-mode-indent-defun (bug#59662)

	Add in this function to mimic 'c-indent-defun'.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-defun): New function.
	(c-ts-mode-map): New mode map that uses said function.

2022-12-07  Theodor Thornhill  <theo@thornhill.no>

	Fix syntax-table for tree-sitter modes

	When adapting the 'c-populate-syntax-table' for tree-sitter, I misread
	the code, and thus some crucial entries were missing.  For the
	relevant modes we use the same table as specified in the
	non-tree-sitter major mode.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--syntax-table): Add new
	entries.
	* lisp/progmodes/csharp-mode.el (csharp-ts-mode): Add new entries.
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--syntax-table): Add new
	entries.
	* lisp/progmodes/json-ts-mode.el (json-ts-mode--syntax-table): Add new
	entries.
	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--syntax-table): Add new entries.
	* lisp/textmodes/css-mode.el (css-ts-mode): Add new entries.

2022-12-07  Brian Leung  <leungbk@posteo.net>

	c++-ts-mode: Highlight nullptr as a constant

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add
	nullptr.

2022-12-07  Yuan Fu  <casouri@gmail.com>

	Improve parameter checking in tree-sitter functions

	* src/treesit.c (treesit_check_position): Extract out new function.
	(Ftreesit_node_first_child_for_pos)
	(Ftreesit_node_descendant_for_range): Replace code with the new
	function.
	(Ftreesit_query_capture): Add missing check for node and parser.  Add
	check for range for BEG and END.  Move treesit_initialize to the
	beginning of the function.

	* test/src/treesit-tests.el (treesit-node-api)
	(treesit-query-api): Add tests for out-of-range error.

2022-12-07  Eli Zaretskii  <eliz@gnu.org>

	Fix comint-tests on MS-Windows

	* test/lisp/comint-tests.el (comint-tests/test-password-function):
	On MS-Windows, call 'w32-native-executable-find' instead of
	'executable-find', to find the native version of the 'cat'
	program.
	(w32-native-executable-p, w32-native-executable-find): New
	functions.

2022-12-07  João Távora  <joaotavora@gmail.com>

	Use new external-completion.el in Eglot

	This refactor simplifies Eglot's source code.

	* lisp/progmodes/eglot.el:
	(Package-Requires): Require external-completion.
	(external-completion): Require it.
	(xref-backend-identifier-completion-table): Use external-completion-table.
	(completion-category-overrides): No longer set it.
	("Backend Completion"): Delete section.

2022-12-07  João Távora  <joaotavora@gmail.com>

	Don't override completion-category-defaults in fido-mode

	To more closely emulate ido-mode, fido-mode and fido-vertical-mode
	strongly lean to the 'flex completion style.  But overriding
	completion-category-defaults is not the correct way to do it, since
	sometimes even the 'flex style isn't possible.

	* lisp/icomplete.el (icomplete--fido-mode-setup): Don't set
	completion-category-defaults here.

2022-12-07  João Távora  <joaotavora@gmail.com>

	Add lisp/external-completion.el for completions from external tools

	This table uses a new 'external' completion style which has been in
	use in Eglot and other third-party extensions for a long time.  It's
	meant for libraries that interface with an external tool which
	provides completions, such as a shell utility, an inferior process, an
	http server.

	The new file lisp/external-completion.el provides a helper function,
	external-completion-table which is given an interfacing function to
	the external tool and returns a "programmed completion" table that is
	bound to the 'external' completion style.  That table can then be used
	with completing-read or any other facility expecting a completion
	table.

	When the 'external' is in use, the usual styles configured by the user
	or other in 'completion-styles' are completely overridden.  This
	relatively minor inconvenience is the price to pay for responsive
	completion where the full set of completion candidates doesn't need to
	be transferred into Emacs's address space.

	* lisp/external-completion.el: New file.

	* etc/NEWS: (Lisp Changes in Emacs 29.1): Mention
	  external-completion-table.

2022-12-07  João Távora  <joaotavora@gmail.com>

	Eglot: fix setting of flymake-list-only-diagnostics (bug#59824)

	When Eglot receives diagnostics for a file not yet visited in Emacs,
	it stores them in flymake-list-only-diagnostics, which feed M-x
	flymake-show-project-diagnostics.  If the file is eventually visited
	in a buffer and Eglot starts receibing diagnostics for it, the
	flymake-list-only-diagnostics database has to be updated accordingly,
	since the previous diagnostics are now stale.

	* lisp/progmodes/eglot.el (eglot-handle-notification): Reset
	flymake-list-only-diagnostics

2022-12-07  Mattias Engdegård  <mattiase@acm.org>

	* test/src/sqlite-tests.el (sqlite-version): Declare.

2022-12-06  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Outline deprecation plans in NEWS

	* etc/NEWS (EUDC): Mention deprecation plans.

2022-12-06  Yuan Fu  <casouri@gmail.com>

	Fix admin/notes/tree-sitter/build-module/build.sh (bug#59789)

	Besides the problem mentioned by Juri, which is fixed by removing

	-cp tree-sitter-lang.in "tree-sitter-${lang}/src"
	-cp emacs-module.h "tree-sitter-${lang}/src"

	(we removed those files in an earlier commit, because they are not
	used anymore.)

	Now it also more parameterized and builds typescript and tsx
	separately.

	* admin/notes/tree-sitter/build-module/build.sh (topdir)
	(repo, sourcedir, grammardir): New variables.
	(Build): Make it parametric.
	(Copy out): Use absolute path.

	* admin/notes/tree-sitter/build-module/batch.sh (languages): Add tsx.

2022-12-06  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/eww.texi (Overview): Improve introduction.

2022-12-06  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Consistent fontification of using-directives in csharp-ts-mode

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
	New rules.

2022-12-06  Yuan Fu  <casouri@gmail.com>

	Fontify some keywords in type face in c-ts-mode

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Remove some keywords.
	(c-ts-mode--type-keywords): New variables.
	(c-ts-mode--font-lock-settings): New rule.

2022-12-06  Mattias Engdegård  <mattiase@acm.org>

	Fix etags builds on non-Windows non-MS-DOS machines

	* lib-src/etags.c: In this file, MSDOS is always defined but can be
	either `true` or `false`, so don't used `defined MSDOS` as a condition.

2022-12-06  lu4nx  <lx@shellcodes.org>

	Fix etags local command injection vulnerability

	* lib-src/etags.c: (escape_shell_arg_string): New function.
	(process_file_name): Use it to quote file names passed to the
	shell.  (Bug#59817)

2022-12-06  Eli Zaretskii  <eliz@gnu.org>

	Avoid crashes in a build --without-modules

	* src/lread.c (syms_of_lread): Move the definitions of
	'dynamic-library-suffixes' outside of the HAVE_MODULES
	conditional.  (Bug#59832)

2022-12-06  Eli Zaretskii  <eliz@gnu.org>

	Fix 'add-display-text-property' when OBJECT is non-nil

	* lisp/emacs-lisp/subr-x.el (add-display-text-property): Fix the
	case where OBJECT is not nil.  (Bug#59857)

	* test/lisp/emacs-lisp/subr-x-tests.el
	(subr-x-test-add-display-text-property): Add test for this case.

2022-12-06  Michael Albinus  <michael.albinus@gmx.de>

	Do not run slow tests on EMBA

	* test/infra/gitlab-ci.yml (.filenotify-gio-template): Do not run
	scheduled.
	(build-native-comp-speed1, build-native-comp-speed2): Comment out.

	* test/lisp/international/ucs-normalize-tests.el
	(ucs-normalize-part1): Skip also on EMBA.

2022-12-06  Mattias Engdegård  <mattiase@acm.org>

	Lisp reader undefined behavior excision

	* src/lread.c (read_bool_vector, skip_lazy_string):
	Replace `|` with `||` to explicitly introduce sequence points since
	the variables, `length` and `nskip`, are mutated more than once.

	The `|` was just a weak attempt at micro-optimization in any case;
	sorry about that.

2022-12-05  Yuan Fu  <casouri@gmail.com>

	Fix treesit-query-capture

	Before this change Ftreesit_query_capture doesn't convert character
	position to byte position for BEG and END parameters.  I observed
	fontification issue in css files but couldn't figure out why, now I
	know :-)

	I decide to keep treesit--font-lock-query-expand-range, since it might
	provide a escape hatch for problems we discover in the future, and it
	should be very cheap so no downside of keeping it.

	* lisp/textmodes/css-mode.el (css-ts-mode): Stop setting
	treesit--font-lock-query-expand-range.
	* lisp/treesit.el (treesit--font-lock-query-expand-range): Update
	docstring.
	* src/treesit.c (Ftreesit_query_capture): Convert BEG and END to byte
	position.  Also added parentheses wround "beg_byte - visible_beg" in
	the call to ts_query_cursor_set_byte_range (i.e., style change).

2022-12-05  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Improve fontification of typescript-ts-mode (bug#59831)

	- Highlight property and field definitions in class declaration.
	- Highlight property-keys in object initializaters.
	- Highlight variable-names in function/method return-statements.

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Add fontification rules.

2022-12-05  Theodor Thornhill  <theo@thornhill.no>

	Add back pair feature in json-ts-mode fontification (bug#59833)

	* lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings):
	Add back in removed pair feature.  Also alphabetize features.
	(json-ts-mode): Use the new feature.

2022-12-05  Eli Zaretskii  <eliz@gnu.org>

	Fix mouse clicks on a non-selected frame

	* lisp/mouse-drag.el (mouse-drag-drag): Skip switch-frame events
	while tracking mouse.  (Bug#59785)

2022-12-04  Yuan Fu  <casouri@gmail.com>

	Improve treesit-fontify-with-override

	This also fixes fontification problem with c-ts-mode--fontify-defun.

	Now treesit-fontify-with-override clips the fontification region for
	the user, so no need for (max start node-start) shenanigans anymore.
	More importantly it doesn't fontify unless the region between
	node-start and node-end intersects with the region between start and
	end, which fixes the problem with c-ts-mode--fontify-defun.

	* lisp/treesit.el (treesit-fontify-with-override): Add optional
	parameter BOUND-START and BOUND-END.  Wrap the function body in a
	when-form.
	* lisp/progmodes/c-ts-mode.el (c-ts-mode--fontify-declarator)
	(c-ts-mode--fontify-variable)
	(c-ts-mode--fontify-defun)
	(c-ts-fontify-error)
	* lisp/progmodes/js.el (js--fontify-template-string)
	* lisp/progmodes/python.el (python--treesit-fontify-string): Use the
	new signature.

2022-12-04  Jim Porter  <jporterbugs@gmail.com>

	Make killing a non-last client work the same no matter the auto-stop setting

	Previously, if 'server-stop-automatically' was configured for
	'kill-terminal' or 'delete-frame', killing a client via
	'save-buffers-kill-terminal' wouldn't prompt about the saving files in
	the client's buffer list (as it does when not using those settings).
	This change ensures that those settings only apply when killing the
	last client, as described in the manual (bug#51993).

	* lisp/server.el (server-save-buffers-kill-terminal): Handle
	'server-stop-automatically' behavior in this function, rather than
	calling 'server-stop-automatically--handle-delete-frame'.

2022-12-04  Juri Linkov  <juri@linkov.net>

	Use the function 'window-system' on the tab-bar/tab-line (bug#59620)

	* lisp/tab-bar.el (tab-bar-separator)
	(tab-bar-format-align-right, tab-bar-auto-width):
	* lisp/tab-line.el (tab-line-format-template): Replace the variable
	'window-system' with the function call '(window-system)'.

2022-12-04  Tom Gillespie  <tgbugs@gmail.com>

	Restore font-lock-type-face for lisp mode &symbols

	* lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2)
	(lisp-el-font-lock-keywords-2): Restore use of type face instead of
	builtin face for &symbol keywords.  This fixes what appears to be
	a copy paste error that changed the face for common lisp and emacs
	lisp &symbol style keywords that was introduced in commit
	a498e5f83 by restoring the type face to font-lock-type-face as
	consistent with the comments.

2022-12-04  Kai Ma  <justksqsf@gmail.com>  (tiny change)

	Prevent a segfault when deleting a fullscreen frame on NextStep.

	* nsterm.m ([EmacsView resetCursorRects:]): Be defensive when
	accessing FRAME_OUTPUT_DATA.  [resetCursorRects:] can be called
	from the event loop after the frame is deleted.  When this
	happens, emacsframe is NULL.  This means there is an underlying
	leak of the EmacsView object!  (Bug#59794)
	Do not merge to master.

2022-12-04  Eli Zaretskii  <eliz@gnu.org>

	Fix markup in ERC manual

	* doc/misc/erc.texi (SASL): Use @table instead of simulating it
	with @indentedblock.  Fix markup.  (Bug#59815)

2022-12-03  Yuan Fu  <casouri@gmail.com>

	Fix comment-start-skip in tree-sitter modes (bug#59690)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode)
	(c++-ts-mode)
	* lisp/progmodes/csharp-mode.el (csharp-ts-mode)
	* lisp/progmodes/java-ts-mode.el (java-ts-mode)
	* lisp/progmodes/js.el (js-ts-mode)
	* lisp/progmodes/typescript-ts-mode.el (tsx-ts-mode): Remove the group
	from the regexp.

2022-12-03  Mattias Engdegård  <mattiase@acm.org>

	Speed up Unicode normalization tests by a factor of 5

	After this change, ucs-normalize-tests are still very slow but
	somewhat less disastrously so (from 100 to 20 min on this machine).

	* test/lisp/international/ucs-normalize-tests.el
	(ucs-normalize-tests--normalization-equal-p)
	(ucs-normalize-tests--normalization-chareq-p)
	(ucs-normalize-tests--rule1-holds-p)
	(ucs-normalize-tests--rule2-holds-p)
	(ucs-normalize-tests--part1-rule2):
	Run only over the Unicode code space.
	Hoist `with-current-buffer` to reduce overhead.

2022-12-03  Eli Zaretskii  <eliz@gnu.org>

	Fix "C-h k" when clicking on another frame

	* lisp/help.el (help--analyze-key): Don't barf if the key sequence
	includes a switch-frame event.  (Bug#59785)

2022-12-03  Juanma Barranquero  <lekktu@gmail.com>

	Fix and expand tests broken by commit 2772ebe366 of 2022-11-28

	* test/lisp/emacs-lisp/comp-tests.el
	(with-test-native-compile-prune-cache)
	(test-native-compile-prune-cache)
	(test-native-compile-prune-cache/delete-only-eln)
	(test-native-compile-prune-cache/dont-delete-in-parent-of-cache):
	Check that the last directory in `native-comp-eln-load-path' is
	not affected by `native-compile-prune-cache'.

2022-12-03  Eli Zaretskii  <eliz@gnu.org>

	Fix handling of relative directories in "--init-directory=DIR"

	* lisp/startup.el (command-line): Interpret non-absolute file
	names in '--init-directory' relative to the directory from
	which Emacs is started.  (Bug#59795)

2022-12-03  Eli Zaretskii  <eliz@gnu.org>

	Make sure 'user-emacs-directory' ends in a slash

	* lisp/startup.el (command-line): Make sure 'user-emacs-directory'
	has the form of a directory.

2022-12-03  Eli Zaretskii  <eliz@gnu.org>

	Fix gud-minor-mode-menu

	* lisp/emacs-lisp/easy-mmode.el (define-minor-mode)
	(easy-mmode-define-keymap): Don't declare obsolete, since we are
	still using it in gud.el.  (Bug#59769)  (Bug#59605)
	Do not merge to master.

2022-12-03  Eli Zaretskii  <eliz@gnu.org>

	Revert "Make easy-mmode-defmap obsolete and adjust only caller"

	This reverts commit 8bb5c1bfec0929f2ba419e1c503f5acc01c336c2.
	That commit lost too many useful features in the GUD menus
	and caused several bugs, the last of them bug#59769.

	Do not merge to master.

2022-12-03  Sean Whitton  <spwhitton@spwhitton.name>

	vc-git-print-log: Don't assume vc-git-log-switches is a list

	* lisp/vc/vc-git.el (vc-git-print-log): Call ensure-list on
	vc-git-log-switches to handle the case where it's a singular string.

2022-12-02  Stefan Kangas  <stefankangas@gmail.com>

	Fix use-package tests

	* test/lisp/use-package/use-package-chords-tests.el:
	* test/lisp/use-package/use-package-tests.el: Remove local
	variables section.  Require 'ert' and fix copyright header.

2022-12-02  Mattias Engdegård  <mattiase@acm.org>

	Fix server-tests run noninteractively (bug#59742)

	This may or may not fix the test run from CI.

	* test/lisp/server-tests.el (server-tests/can-create-frames-p):
	Don't attempt to create frames if TERM=dumb, which what we have
	if run from M-x compile (for instance).
	(server-tests/server-force-stop/keeps-frames): Delete created frame so
	that it doesn't cause trouble for other tests.

2022-12-02  Randy Taylor  <dev@rjt.dev>

	Use file-name-nondirectory to determine default project-name

	* lisp/progmodes/project.el (project-name):
	Use file-name-nondirectory instead of file-name-base (bug#59756).

2022-12-02  Yikai Zhao  <yikai@z1k.dev>

	Speed up auto-completion in 'sh-script-mode'

	* lisp/progmodes/sh-script.el (sh--cmd-completion-table-gen): New
	function, replacement for 'sh--cmd-completion-table'.
	(sh--cmd-completion-table): Function removed.
	(sh-completion-at-point-function): Use
	'sh--cmd-completion-table-gen'.  (Bug#59678)

2022-12-02  Juanma Barranquero  <lekktu@gmail.com>

	Fix error editing multisession variables (bug#59710)

	* lisp/emacs-lisp/multisession.el (multisession-edit-value):
	Do not use `bound-and-true-p' on a non-symbol.  This reverts
	commit bd586121ac21e046f60f75eeb0200866c38d6f9f.

2022-12-02  Brian Leung  <leungbk@posteo.net>

	Add tsx-ts-mode to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add
	tsx-ts-mode.  (Bug#59770)

2022-12-02  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-format-align-right): Fix alignment on TTY frames.

	Calculate the alignment from the left edge instead of the right edge
	since the `right' spec doesn't work on TTY frames when windows are split
	horizontally (bug#59620).

2022-12-02  Juri Linkov  <juri@linkov.net>

	Fix the width of margins for icons in outline-minor-mode (bug#59719)

	* doc/lispref/display.texi (Icons): Add :width spec.

	* lisp/emacs-lisp/icons.el (icons--create): Handle :width as well.

	* lisp/outline.el (outline--margin-width, outline-margin-width):
	New variables.
	(outline-open-in-margins, outline-close-in-margins)
	(outline-close-rtl-in-margins): Don't inherit from parents.
	Use `:width font' instead of `:height 10'.
	(outline-minor-mode): Calculate the number of columns for margins
	to fit the icons.

2022-12-01  Theodor Thornhill  <theo@thornhill.no>

	Add new TypeScript mode tsx-ts-mode

	There are in fact two languages supporting TypeScript for tree-sitter.
	Because TSX causes some ambiguities with types there are two grammars,
	one called typescript and one called tsx.  To account for this and to
	be as correct as possible we enable using both.

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--indent-rules): Change to a function to accommodate
	the two languages.
	(typescript-ts-mode--font-lock-settings): Change to a function to
	accommodate the two languages.
	(typescript-ts-base-mode): Parent mode for typescript-ts-mode
	and tsx-ts-mode.
	(typescript-ts-mode): Derive from typescript-ts-base-mode and
	extend with language specific settings
	(tsx-ts-mode): New major mode that derives from
	typescript-ts-base-mode and extend it with language specific
	settings

	Add autoload cookies for the respective file type extensions: .ts and
	.tsx.

	* etc/NEWS: Mention the new mode.

2022-12-01  Daniel Martín  <mardani29@yahoo.es>

	Add case and match to python--treesit-keywords (bug#59720)

	* lisp/progmodes/python.el (python--treesit-keywords): Add "case" and
	"match" keywords.

2022-12-01  Dmitry Gutov  <dgutov@yandex.ru>

	project-files (VC-aware): Make sure the VC backend is loaded

	* lisp/progmodes/project.el (project-files):
	Make sure the VC backend is loaded (bug#59734).

2022-12-01  Sean Whitton  <spwhitton@spwhitton.name>

	term--update-term-menu: Add the menu to term-terminal-menu

	Reading bug#5641, the intention was to add this to the existing
	"Terminal" menu for term-mode buffers, not to the local keymaps of all
	other buffers.  Moreover, the existing code signaled errors when
	switching to buffers with no local keymap, such as term-mode buffers
	whose processes have died.

	* lisp/term.el (term--update-term-menu): Add the menu to
	term-terminal-menu, instead of implicitly trying to add it to every
	local keymap.

2022-12-01  Eli Zaretskii  <eliz@gnu.org>

	Improve detection of very long lines

	* src/xdisp.c (redisplay_window): Recheck for long lines if the
	restriction has changed.  (Bug#56682)

2022-12-01  Laurence Warne  <laurencewarne@gmail.com>

	Add colors to Proced (bug#59407)

	Add a new custom variable proced-enable-color-flag which when set to a
	non-nil value (defaults to nil), will prompt some format functions to
	furnish their respective process attributes with colors and effects in
	order to make them easier to distinguish and highlight possible issues
	(e.g. high memory usage), in a manner similar to htop.

	In particular, the current Emacs process id is highlighted purple in
	both the process id and parent process id columns, session leaders
	have their process ids underlined, larger memory sizes for rss
	are highlighted in darker shades of orange, and the first word in the
	args property (the executable) is highlighted in blue.

	* lisp/proced.el (proced-grammar-alist): Update to use the new format
	functions.
	(proced-low-memory-usage-threshold): New custom variable to determine
	whether a value represents 'low' memory usage, used only in
	proced-format-memory for coloring.
	(proced-medium-memory-usage-threshold): New custom variable to
	determine whether a value represents 'medium' memory usage, used only
	in proced-format-memory for coloring.
	(proced-enable-color-flag): New custom variable to toggle coloring.
	(proced-run-status-code, proced-interruptible-sleep-status-code)
	(proced-uninterruptible-sleep-status-code, proced-executable)
	(proced-executable, proced-memory-gb, proced-memory-mb)
	(proced-memory-default, proced-pid, proced-ppid, proced-pgrp)
	(proced-sess, proced-cpu, proced-mem, proced-user, proced-time-colon):
	New faces.
	(proced-format-time): Edit function to color colons using
	proced-time-colon.
	(proced-format-args): Edit function to color executables using
	proced-executable.
	(proced-format-state): New function to color states.
	(proced-format-pid): New function to color process ids.
	(proced-format-ppid): New function to color parent process ids.
	(proced-format-pgrp): New function to color process group ids.
	(proced-format-sess): New function to color process session leader
	ids.
	(proced-format-cpu): New function to color cpu utilization.
	(proced-format-mem): New function to color memory utilization.
	(proced-format-user): New function to color the user a process
	belongs to.

2022-12-01  Dmitry Gutov  <dgutov@yandex.ru>

	Update project docs and NEWS

	* doc/emacs/maintaining.texi (Projects): Update the name.

	* etc/NEWS: Mention new option (bug#41572).

2022-12-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-11-29 18:15:27 UTC.

	(cherry picked from commit de00aef3e151e0eefe20feda74cf90578e8ff109)

2022-12-01  kobarity  <kobarity@gmail.com>

	Add highlighting Python operators (bug#59629)

	* lisp/progmodes/python.el (python-rx): Remove "is" and
	"not" from operator.
	(python-font-lock-keywords-maximum-decoration): Add
	highlighting operators.
	* test/lisp/progmodes/python-tests.el
	(python-font-lock-assignment-statement-1)
	(python-font-lock-assignment-statement-2)
	(python-font-lock-assignment-statement-3)
	(python-font-lock-assignment-statement-4)
	(python-font-lock-assignment-statement-5)
	(python-font-lock-assignment-statement-6)
	(python-font-lock-assignment-statement-7)
	(python-font-lock-assignment-statement-8)
	(python-font-lock-assignment-statement-9)
	(python-font-lock-assignment-statement-10)
	(python-font-lock-assignment-statement-11)
	(python-font-lock-assignment-statement-12)
	(python-font-lock-assignment-statement-13)
	(python-font-lock-assignment-statement-14)
	(python-font-lock-assignment-statement-15)
	(python-font-lock-assignment-statement-16)
	(python-font-lock-assignment-statement-17)
	(python-font-lock-assignment-statement-18)
	(python-font-lock-assignment-statement-multiline-1)
	(python-font-lock-assignment-statement-multiline-2)
	(python-font-lock-assignment-statement-multiline-3)
	(python-font-lock-assignment-statement-multiline-4)
	(python-font-lock-assignment-statement-multiline-5)
	(python-font-lock-assignment-statement-multiline-6)
	(python-font-lock-escape-sequence-multiline-string): Modify
	expectations to include faces for operators.
	(python-font-lock-operator-1, python-font-lock-operator-2): New tests.

2022-12-01  Eli Zaretskii  <eliz@gnu.org>

	Fix compilation of Org 9.6 on MS-Windows

	* lisp/org/org-clock.el (org-x11idle-exists-p): Don't try to
	invoke "command x11idle" on MS-Windows and MS-DOS.  This fixes a
	hang during byte-compilation of Org.

2022-12-01  Po Lu  <luangruo@yahoo.com>

	* doc/lispref/frames.texi (Input Focus): Clarify for XInput 2 support.

2022-12-01  Mattias Engdegård  <mattiase@acm.org>

	Fix types in various defcustom declarations

	* lisp/org/ob-clojure.el
	(ob-clojure-babashka-command, ob-clojure-nbb-command):
	Account for the possibility of nil (commands absent).
	* lisp/org/org.el (org-safe-remote-resources):
	* lisp/org/ox-md.el (org-md-toplevel-hlevel):
	* lisp/progmodes/project.el (project-vc-extra-root-markers):
	Fix incorrect or invalid types.

2022-12-01  Po Lu  <luangruo@yahoo.com>

	Fix crashes and memory leaks during display deinitialization

	* .dir-locals.el (c-mode): Add more noise macro names.
	* src/frame.c (delete_frame): Do not delete terminal if force is
	Qnoelisp.

	* src/xterm.c (x_wm_supports): Fix coding style.
	(x_delete_display): Delete the supported atoms list.
	(x_delete_terminal): Delete all terminals.  Free the scratch
	cursor GC.

2022-11-30  Dmitry Gutov  <dgutov@yandex.ru>

	New user option: project-vc-extra-root-markers

	* lisp/progmodes/project.el: Commentary update.
	(project-vc, project-vc-include-untracked, project-vc-name):
	Update docstrings.  Rename 'VC project' to 'VC-aware project'.
	(project-vc-extra-root-markers): New option (bug#41572).
	(project-try-vc): Use it.  Construct a single regexp from all and
	validate it using the MATCH argument of 'directory-files'.  Call
	'locate-dominating-file' directly.
	(project-ignores): Support VC-aware project instances with nil
	value of VC backend.

	* test/lisp/progmodes/project-tests.el (project-vc-recognizes-git)
	(project-vc-extra-root-markers-supports-wildcards)
	New tests.
	(project-tests--this-file): New variable.

2022-11-30  Daniel Martín  <mardani29@yahoo.es>

	Add inline to c-ts-mode--keywords

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Add "inline", a
	keyword available since C99 to define inline functions in C.

2022-11-30  Daniel Martín  <mardani29@yahoo.es>

	Remove duplicate "friend" from c-ts-mode--keywords

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Remove duplicate
	keyword.

2022-11-30  Yuan Fu  <casouri@gmail.com>

	Make treesit-defun-prefer-top-level more flexible

	* doc/lispref/positions.texi (List Motion): Update manual.
	* lisp/treesit.el (treesit-defun-prefer-top-level): Update docstring.
	(treesit--defun-maybe-top-level): Change to accept new format.

2022-11-30  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode defun movement (bug#59628)

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--end-of-defun): New function.
	(c-ts-mode--base-mode): Use more specific regexp, and set
	treesit-defun-prefer-top-level.
	(c-ts-mode)
	(c++-ts-mode): Set end-of-defun-function.

2022-11-30  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Keep tabs of the same group together (bug#59721)

	(tab-bar-tab-post-change-group-functions): Change the default value to
	'(tab-bar-move-tab-to-group)'.  Improve docstring.
	(tab-bar-change-tab-group): Improve docstring.

2022-11-30  muffinmad  <andreyk.mad@gmail.com>

	Insert news for installed packages only

	* lisp/emacs-lisp/package.el (describe-package-1): Check package is
	installed and "news" is a regular file.  (Bug#59684)

2022-11-30  Dmitry Gutov  <dgutov@yandex.ru>

	project-current: Improve the docstring

	* lisp/progmodes/project.el (project-current):
	Improve the docstring (bug#59722).

2022-11-30  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/Makefile.in (INFO_COMMON): Add use-package.

2022-11-30  Mattias Engdegård  <mattiase@acm.org>

	Org regexp style fixes

	* lisp/org/org-element.el (org-element--get-node-properties):
	Escape literal `+`.
	* lisp/org/org-persist.el (org-persist-load:index):
	Replace line-start with string-start when the latter is meant.

2022-11-30  Mattias Engdegård  <mattiase@acm.org>

	Skip one python test case on macOS

	* test/lisp/progmodes/python-tests.el (python-ffap-module-path-1):
	This test fails with a standard macOS Python installation;
	see bug#59477 and bug#25753.

	(cherry picked from commit db042b7591ea9da5e169704e5b32bd99c4ea7adf)

2022-11-30  Mattias Engdegård  <mattiase@acm.org>

	Sink python indent offset guessing to avoid test failure

	Call python-indent-guess-indent-offset late in the set-up of
	python-mode and python-ts-mode to make sure that the required other
	settings (of syntax-propetize-function in particular) have been
	carried out.  This cures a python-test failure (bug#59477).

	* lisp/progmodes/python.el (python-base-mode): Move
	python-indent-guess-indent-offset call from here...
	(python-mode): ...to here...
	(python-ts-mode): ...and here.

2022-11-29  Kyle Meyer  <kyle@kyleam.com>

	* etc/NEWS: Announce Org update.

	Update to Org 9.6-3-ga4d38e

2022-11-29  Juanma Barranquero  <lekktu@gmail.com>

	Fix interactive selection of emacs-lock mode, broken by 2a4b0da28c

	* lisp/emacs-lock.el (emacs-lock--set-mode): Check that
	arg is 4 and prefix is '(4).
	(emacs-lock-mode): Pass also `current-prefix-arg' to
	`emacs-lock--set-mode'.

2022-11-29  Daniel Martín  <mardani29@yahoo.es>

	Fix typo in flag to load Emacs-specific LLDB commands

	* src/.lldbinit: Fix typo in flag to parse .lldbinit files from the
	current directory.  (Bug#59702)

2022-11-29  Alan Mackenzie  <acm@muc.de>

	CC Mode: Prevent lone ids being parsed as types unless in decl arglists

	This fixes bug #59051.

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): In the test for the
	last invocation of c-fdoc-shift-type-backward before CASE 1, additionally
	test CONTEXT not being an arglist or BACKUP-AT-TYPE being non-nil.

2022-11-29  Mattias Engdegård  <mattiase@acm.org>

	Allow csharp-mode in c-default-style

	* lisp/progmodes/cc-vars.el (c-default-style):
	Add csharp-mode to the type.  This fixes test-custom-opts.

2022-11-29  Augusto Stoffel  <arstoffel@gmail.com>

	In project-find-file, add abbreviated file names to history

	* lisp/progmodes/project.el (project--read-file-cpd-relative):
	Use 'abbreviate-file-name' (bug#58447).

2022-11-29  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/progmodes/project.el (project-vc-name): Fix the :type form (bug#48747).

2022-11-29  Michael Albinus  <michael.albinus@gmx.de>

	Tramp cleanup

	* doc/misc/tramp.texi: Use @value{tramp} where appropriate.

	* doc/misc/trampver.texi: Change "Tramp" format ifplaintext.

	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	Ignore `memory-info'.

2022-11-29  Po Lu  <luangruo@yahoo.com>

	Allow be-resources to fail

	* lib-src/be_resources.cc (be_perror): Print additional blurb.
	(main): Return 0 on failure as well, but print the blurb.
	Problem reported by the Haiku packager.

2022-11-29  F. Jason Park  <jp@neverwas.me>

	Simplify erc-sasl's auth-source API

	* doc/misc/erc.texi: Revise descriptions in SASL chapter to reflect
	simplified auth-source options.

	* lisp/erc/erc-sasl.el (erc-sasl-password,
	erc-sasl-auth-source-function): Revise doc strings.
	(erc-sasl-auth-source-password-as-host): New function to serve as
	more useful choice for option `erc-sasl-auth-source-function'.
	(erc-sasl--read-password): Promote auth-source to pole position, above
	an explicit string and `:password'.

	* test/lisp/erc/erc-sasl-tests.el (erc-sasl--read-password--basic):
	Massage tests to conform to simplified `erc-sasl-password'
	API.  (Bug#29108.)

2022-11-28  F. Jason Park  <jp@neverwas.me>

	* doc/misc/erc.texi: Revise SASL and modules chapters.

2022-11-28  F. Jason Park  <jp@neverwas.me>

	Add erc-sasl-auth-source-function to cached options

	* lisp/erc/erc-sasl.el (erc-sasl--read-password): Consult cached
	options instead of `erc-sasl-auth-source-function'.
	(erc-sasl--init): Add `erc-sasl-auth-source-function' to
	`erc-sasl--options'.

	* test/lisp/erc/erc-sasl-tests.el (erc-sasl--read-password--basic,
	erc-sasl--read-password--auth-source): Look for original value of
	`erc-sasl-auth-source-function' in `erc-sasl--options' under the
	`authfn' key.

2022-11-28  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Improve fontification in csharp-ts-mode

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
	Improve rules for variables, new-expressions, and catch statements.

2022-11-28  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Improve fontification in typescript-ts-mode

	- Restore method-name fontification.
	- Fontify all types in class-declarations, extendees too

	* lisp/progmodes/typescript-ts-mode.el
	(typescript-ts-mode--font-lock-settings): Change patterns.

2022-11-28  Theodor Thornhill  <theo@thornhill.no>

	Add more font-lock settings to css-ts-mode

	* lisp/textmodes/css-mode.el (css--treesit-settings): Add new
	font-lock features 'query', 'keyword', 'operator' and 'bracket'.
	(css-ts-mode): Use new features.

2022-11-28  Yuan Fu  <casouri@gmail.com>

	Reparse tree-sitter tree when buffer restriction changes

	* src/treesit.c (treesit_sync_visible_region): Set nee_reparse flag to
	true if buffer range changes.  Add some assertion.

	* src/treesit.c (treesit_ensure_parsed): Move
	treesit_sync_visible_region in front of the check for need_reparse.

2022-11-28  Eli Zaretskii  <eliz@gnu.org>

	Fix GUD item on the menu bar in source buffers

	* lisp/progmodes/gud.el (alist-get): Restore gud-minor-mode menu
	on the menu bar.  (Bug#59605)

2022-11-28  Eli Zaretskii  <eliz@gnu.org>

	Cut the emacs-29 release branch

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp: Bump Emacs version to 29.0.60.

	* admin/admin.el (set-version): Fix regexp for configure.ac.

	* lisp/cus-edit.el (customize-changed-options-previous-release):
	Bump last version to 28.2.

2022-11-28  Juanma Barranquero  <lekktu@gmail.com>

	Do not prune native-compiled system directories (bug#59658)

	* lisp/emacs-lisp/comp.el (native-compile-prune-cache):
	Skip last directory in `native-comp-eln-load-path'.

2022-11-28  Gregory Heytings  <gregory@heytings.org>

	Fix display of long completions.

	* lisp/minibuffer.el (completion--insert-strings): Do not assume
	"at least 2 columns", which is not possible when completion
	strings are long, e.g. with completions-detailed set.

2022-11-27  Gregory Heytings  <gregory@heytings.org>

	Do not enter locked narrowing when it would span the whole buffer

	* src/xdisp.c (handle_fontified_prop):
	* src/keyboard.c (safe_run_hooks_maybe_narrowed): Add condition.

2022-11-27  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/progmodes/xref.el (xref--outdated-p): Fix broken docstring.

2022-11-27  Stefan Kangas  <stefankangas@gmail.com>

	Catch more cases in info--ensure-not-in-directory-node

	* lisp/info.el (info--ensure-not-in-directory-node): Fix the case
	where "DIR" is in upper-case, and if 'Info-current-file' is an
	absolute file name.
	Problem reported by Eli Zaretskii <eliz@gnu.org>.

2022-11-27  Gregory Heytings  <gregory@heytings.org>

	Fix incompatible -t and -r options in emacsclient

	* lib-src/emacsclient.c (decode_options): Do not allow -t and -r
	together.

2022-11-27  Gregory Heytings  <gregory@heytings.org>

	Minor improvements to locked narrowing

	* src/xdisp.c (get_locked_narrowing_begv)
	(get_locked_narrowing_zv): Safer handling of negative values.
	(handle_fontified_prop): Do not use locked narrowing if the region
	size is <= 0.

	* src/keyboard.c (safe_run_hooks_maybe_narrowed): Do not use
	locked narrowing if the region size is <= 0.

2022-11-27  Yuan Fu  <casouri@gmail.com>

	Remove treesit-comment-start/end and use comment-start/end-skip

	treesit-comment-start/end is unnecessary because of
	comment-start/end-skip, so they should be removed.

	Cleanup and set comment-start/end-skip for tree-sitter C-like major
	modes.

	I replaced the [ \t]* part in comment-start-skip with (syntax
	whitespace), which is what comment-end-skip uses.  I also added
	grouping in comment-start-skip to match that of comment-end-skip.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode)
	(c++-ts-mode)
	* lisp/progmodes/csharp-mode.el (csharp-ts-mode)
	* lisp/progmodes/java-ts-mode.el (java-ts-mode)
	* lisp/progmodes/js.el (js-ts-mode)
	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): Setup
	comment-start/end-skip.

	* lisp/treesit.el (treesit-comment-start)
	(treesit-comment-end): Remove variables.
	(treesit-simple-indent-presets): Use comment-start/end-skip instead.

2022-11-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from skangas/revert-for-copyright

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1026

2022-11-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from skangas/revert-for-copyright2

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1027

2022-11-27  Gregory Heytings  <gregory@heytings.org>

	Merge branch 'feature/improved-locked-narrowing'

2022-11-27  Eli Zaretskii  <eliz@gnu.org>

	Fix the new ctags test

	* test/manual/etags/Makefile (ctags_update): Sort CTAGS* files
	before comparing.  Patch by lu4nx <lx@shellcodes.org>.  (Bug#59544)

	* .gitignore: Ignore CTAGS*.sorted files.

2022-11-27  Michael Albinus  <michael.albinus@gmx.de>

	Extend memory-info for remote systems

	* doc/lispref/files.texi (Magic File Names): Add memory-info.

	* doc/lispref/internals.texi (Garbage Collection): memory-info can
	also retrieve values from remote systems.

	* etc/NEWS: Document changes in memory-info.  Fix typos.

	* lisp/files.el (warn-maybe-out-of-memory): Ensure local memory info.

	* lisp/net/tramp.el (tramp-handle-memory-info): New defun.
	(tramp-file-name-for-operation)
	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist)
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	Add 'memory-info'.

	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-exec-path):
	Let-bind `process-file-side-effects'.

	* src/alloc.c (Fmemory_info): Support remote systems.
	(Qmemory_info): Declare.

	* test/lisp/net/tramp-tests.el (tramp-test31-memory-info): New test.

2022-11-27  Philip Kaludercic  <philipk@posteo.net>

	Consistently refer to VC packages as such

	* lisp/emacs-lisp/package-vc.el: Replace instances of "source package"
	in comments and docstrings.
	* lisp/emacs-lisp/package.el: Replace instances of "source package" in
	comments and docstrings.

2022-11-27  Juanma Barranquero  <lekktu@gmail.com>

	Fix xref interaction with which-func (bug#59575)

	* lisp/progmodes/xref.el (xref--add-log-current-defun):
	New function.
	(xref--xref-buffer-mode): Assign it buffer-locally to
	`add-log-current-defun-function'.

2022-11-27  lu4nx  <lx@shellcodes.org>

	Fixed ctags local command execute vulnerability

	* lib-src/etags.c:

	(clean_matched_file_tag): New function
	(do_move_file): New function
	(readline_internal):
	Add `leave_cr` parameter, if true, include the \r character

	* test/manual/etags/CTAGS.good_crlf: New file
	* test/manual/etags/CTAGS.good_update: New file
	* test/manual/etags/crlf: New file
	* test/manual/etags/Makefile: Add `ctags -u` test cases

2022-11-27  Juanma Barranquero  <lekktu@gmail.com>

	Fix xref to correctly display Windows absolute filenames

	* lisp/progmodes/xref.el (xref--group-name-for-display):
	Use `file-name-absolute-p' instead of faking it. (Discussed
	in bug#59628.)

2022-11-27  Shohei YOSHIDA  <syohex@gmail.com>

	* lib-src/emacsclient.c (print_help_and_exit): Fix --timeout.

2022-11-27  Po Lu  <luangruo@yahoo.com>

	Make frame synchronization more robust

	* src/xterm.c (x_sync_wait_for_frame_drawn_event)
	(x_sync_handle_frame_drawn): Only cancel frame synchronization
	if hanging twice or more in a row.
	* src/xterm.h (struct x_output, FRAME_X_DRAW_JUST_HUNG): New
	flag.

2022-11-27  Theodor Thornhill  <theo@thornhill.no>

	Remove compatibility code in csharp-mode

	* lisp/progmodes/csharp-mode.el (c-basic-matchers-before): Remove
	invalid string check for Emacs 27.
	(version=): Remove compatibility hack for string handling in CC Mode
	in Emacs 27.1.  (Bug#59602)

2022-11-27  Stefan Kangas  <stefankangas@gmail.com>

	Revert "Add: 'local' keyword"

	This reverts commit 620fe443c2e7598191cb5d6c6a41064471edb57c.

2022-11-27  Stefan Kangas  <stefankangas@gmail.com>

	Remove tests lacking a copyright assignment for now

	* use-package-tests.el (use-package-test/pre-post-hooks-with-:config)
	(use-package-test/pre-post-hooks-without-:config): Remove tests.

2022-11-27  Theodor Thornhill  <theo@thornhill.no>

	Add js-ts-mode to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add js-ts-mode as
	an alternative.  (Bug#59252)

2022-11-27  Stefan Kangas  <stefankangas@gmail.com>

	Improve describe-text-properties display

	* lisp/descr-text.el (describe-property-list): Don't propertize white
	space with the 'help-argument-name' face.  This improves display
	slightly when that face has an underline.

2022-11-26  Gregory Heytings  <gregory@heytings.org>

	Simplify narrowing_locks_restore

	* src/editfns.c (narrowing_locks_restore): Simplify.

2022-11-26  Gregory Heytings  <gregory@heytings.org>

	Improve handling of killed buffers in locked narrowings

	* src/editfns.c (narrowing_locks_add, narrowing_locks_remove):
	New functions, factored out.
	(narrowing_lock_push, narrowing_lock_pop)
	(narrowing_locks_restore): Use the new functions.
	(narrowing_lock_get_bound): Return NULL for killed buffers.
	(reset_outermost_narrowings, unwind_reset_outermost_narrowing):
	Remove killed buffers from the 'narrowing_locks' alist.

2022-11-26  Yuan Fu  <casouri@gmail.com>

	Make typescript-ts-mode not fallback to js-mode

	1. js-mode might not be able to handle typescript file
	2. Now that we use separate modes for tree-sitter modes, not falling
	back makes tree-sitter modes more consistent

	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): Remove
	the fallback code.

2022-11-26  Yuan Fu  <casouri@gmail.com>

	Make bash-ts-mode fall back to sh-mode if the file isn't in Bash

	* lisp/progmodes/sh-script.el (sh--guess-shell): Take out into a new
	function.
	(sh-base-mode): Use the new function.
	(bash-ts-mode): Update docstring.
	(sh--redirect-recursing): New variable.
	(sh--redirect-bash-ts-mode): New function.

2022-11-26  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Correctly fontify types in typeof() expression in csharp-ts-mode

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
	Add new pattern.

2022-11-26  Yuan Fu  <casouri@gmail.com>

	Reorganize treesit-font-lock-feaure-list's to the new level scheme

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--base-mode)
	* lisp/progmodes/csharp-mode.el (csharp-ts-mode)
	* lisp/progmodes/java-ts-mode.el (java-ts-mode)
	* lisp/progmodes/js.el (js-ts-mode)
	* lisp/progmodes/python.el (python-ts-mode)
	* lisp/progmodes/sh-script.el (bash-ts-mode)
	* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode):
	Reorganized treesit-font-lock-feature-list.

2022-11-26  Yuan Fu  <casouri@gmail.com>

	Add treesit-font-lock-level

	This replaces font-lock-maximum-decoration and allows us to disable
	the busiest fontification level by default.

	* lisp/treesit.el (treesit-font-lock-level): New variable.
	(treesit-font-lock-feature-list)
	(treesit-font-lock-settings): Change docstring.
	(treesit-font-lock-recompute-features): Use the new variable.

2022-11-26  Yuan Fu  <casouri@gmail.com>

	Add default limit for tree-sitter recursive tree-traversing function

	This fixes bug#59426.

	* src/treesit.c (treesit_search_dfs)
	(treesit_build_sparse_tree): Remove no_limit parameter.
	(Ftreesit_search_forward, Ftreesit_induce_sparse_tree): Use default
	limit of 1000.

	* doc/lispref/parsing.texi (Retrieving Nodes): Update manual.

2022-11-26  Yuan Fu  <casouri@gmail.com>

	Partially fix some python tests (bug#59477)

	This fixes

	python-font-lock-assignment-statement-multiline-1
	python-font-lock-assignment-statement-multiline-2
	python-font-lock-assignment-statement-multiline-3
	python-font-lock-assignment-statement-multiline-4
	python-font-lock-assignment-statement-multiline-5
	python-font-lock-assignment-statement-multiline-6

	but leaves

	python-tests--fill-long-first-line

	unfixed.

	* lisp/progmodes/python.el (python-mode): Add the missing setup.

2022-11-26  Gregory Heytings  <gregory@heytings.org>

	Minor improvements for locked narrowing

	* src/editfns.c (narrowing_lock_pop): Clarify comment, replace
	assertion by return.
	(narrowing_locks_restore): Add comments.

	* lisp/subr.el (with-narrowing, internal--with-narrowing):
	Simplify, use a single helper function with an optional argument.

2022-11-26  Jim Porter  <jporterbugs@gmail.com>

	Improve robustness of server.el tests

	* lisp/emacs-lisp/ert.el (ert--insert-infos): Allow 'message' to be a
	function that is called when inserting the info.
	(ert-info): Update docstring to describe using a function for
	MESSAGE-FORM.

	* lisp/server.el (server-start): Log when the server is starting.

	* test/lisp/server-tests.el (server-tests/can-create-frames-p): New
	constant.  Use it to skip tests that need to create frames.
	(server-tests/start-emacsclient): Rename to...
	(server-tests/start-client): ... this, and set the process's buffer.
	(server-tests/with-server): Put the server file in a temporary
	directory so we don't conflict with real Emacs servers.
	(server-tests/with-client): New macro...
	(server-tests/server-start/stop-prompt-with-client)
	(server-tests/emacsclient/server-edit)
	(server-tests/emacsclient/create-frame)
	(server-tests/emacsclient/create-frame): ... use it.
	(server-tests/server-start/stop-prompt-with-client): Simplify.

2022-11-26  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Remove mentions of create-directory nnmaildir setting

	* lisp/gnus/nnmaildir.el (nnmaildir-open-server): The
	'create-directory server parameter should have been removed entirely,
	and supplanted by 'target-prefix. Remove check for old parameter.
	* doc/misc/gnus.texi (Maildir): Delete mention from manual.

2022-11-26  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2022-11-26  Gregory Heytings  <gregory@heytings.org>

	Docstring improvements

	* src/xdisp.c (syms_of_xdisp):
	* src/keyboard.c (syms_of_keyboard):
	Docstring improvements.

2022-11-26  Gregory Heytings  <gregory@heytings.org>

	Docstring improvements

	* src/xdisp.c (syms_of_xdisp):
	* src/keyboard.c (syms_of_keyboard):
	* src/buffer.c (syms_of_buffer):
	Docstring improvements.

2022-11-26  Gregory Heytings  <gregory@heytings.org>

	Further improvements to narrowing locks

	* src/editfns.c:
	(narrowing_lock_get_bound): Return a pointer to a struct
	Lisp_Marker instead of a character position.  Suggested by Eli
	Zaretskii.
	(reset_outermost_narrowings, unwind_reset_outermost_narrowing)
	(Fwiden, Fnarrow_to_region): Adapt accordingly.
	(narrowing_lock_peek_tag, narrowing_lock_push)
	(narrowing_lock_pop, narrowing_locks_save)
	(narrowing_locks_restore): Use XCAR/XCDR/XSETCAR instead of
	Fcar/Fcdr/Fsetcar.

2022-11-26  Gregory Heytings  <gregory@heytings.org>

	Improve locked narrowing around low-level hooks.

	* src/buffer.c (syms_of_buffer): Two new variables,
	'long-line-locked-narrowing-region-size' and
	'long-line-locked-narrowing-bol-search-limit', to make the locked
	narrowing around low-level hooks configurable.

	Increase the default value of 'long-line-threshold'.  After
	carefully considering the (few) bug reports about long line
	optimizations, I concluded that the previous default value was too
	low.

	* src/xdisp.c (get_locked_narrowing_begv)
	(get_locked_narrowing_zv): Two new functions.
	(handle_fontified_prop, reseat): Use them.

	* src/keyboard.c (safe_run_hooks_maybe_narrowed): Use them.

	* src/dispextern.h (struct it): Add two new fields to store the
	values returned by these functions.
	Make them externally visible.

	* src/editfns.c: (Fsave_restriction): Update docstring.

2022-11-26  Stefan Kangas  <stefankangas@gmail.com>

	Mention new programming language support in manual

	* doc/emacs/programs.texi (Program Modes): Mention newly added support
	for C#, TypeScript and JSON.

2022-11-26  Augusto Stoffel  <arstoffel@gmail.com>

	In project-find-file and the like, add absolute file name to history

	* lisp/progmodes/project.el (project--read-file-cpd-relative): Add
	absolute file name to history.

2022-11-26  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of some posn-* functions

	* lisp/subr.el (posn-object-x-y): Doc fix.

	* doc/lispref/commands.texi (Click Events): More accurate
	documentation of what are DX and DY in POSITION.

2022-11-26  Eli Zaretskii  <eliz@gnu.org>

	Fix generation of autoloads on MS-Windows

	* lisp/emacs-lisp/loaddefs-gen.el
	(loaddefs-generate--file-load-name): Handle the case when FILE and
	OUTFILE don't share any common ancestor directory.  (Bug#59507)

2022-11-26  Po Lu  <luangruo@yahoo.com>

	Reduce wasted cycles in x*.c

	* src/xfns.c (compute_tip_xy, Fx_show_tip):
	* src/xselect.c (x_own_selection, x_get_local_selection)
	(x_clear_frame_selections): Call CAR and CDR, not Fcar and Fcdr.

2022-11-26  Stefan Kangas  <stefankangas@gmail.com>

	Use substitute-command-keys in Info-index error

	* lisp/info.el (info--ensure-not-in-directory-node): New helper
	function using substitute-command-keys for error message.
	(Info-index, Info-virtual-index): Use it.

2022-11-26  Brian Leung  <leungbk@posteo.net>

	eglot-server-programs: ts-mode -> typescript-ts-mode

	* lisp/progmodes/eglot.el (eglot-server-programs): Fix name of
	'typescript-ts-mode' after rename from 'ts-mode'.  (Bug#59589)

2022-11-25  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter assertion error (bug#59574)

	* src/treesit.c (treesit_sync_visible_region): Initialize
	visible_beg/end when tree is NULL.

2022-11-25  Yuan Fu  <casouri@gmail.com>

	Rename treesit_ensure_position_synced to treesit_sync_visible_region

	* src/treesit.c: Rename to better convey the purpose of the function.

2022-11-25  Theodor Thornhill  <theo@thornhill.no>

	Rename ts-mode to typescript-ts-mode

	* lisp/progmodes/typescript-ts-mode.el: Rename from 'ts-mode' to
	'typescript-ts-mode'.  Rename all symbols to match new prefix.
	* etc/NEWS: Mention the new mode name.
	Ref: https://lists.gnu.org/r/emacs-devel/2022-11/msg01587.html

2022-11-25  Theodor Thornhill  <theo@thornhill.no>

	Rename ts-mode.el to typescript-ts-mode.el

	* lisp/progmodes/ts-mode.el: Move from here...
	* lisp/progmodes/typescript-ts-mode.el: ...to here.

2022-11-25  Po Lu  <luangruo@yahoo.com>

	Fix no-accept-focus handling for embedded frames

	* src/xterm.c (handle_one_xevent): Don't focus embedded frames
	on click if they have `no-accept-focus' set.

2022-11-25  Gregory Heytings  <gregory@heytings.org>

	Save and restore narrowing locks in 'save-restriction'.

	* src/editfns.c: (Fsave_restriction): Save and restore narrowing
	locks.  Suggested by Stefan Monnier.
	(narrowing_locks_save, narrowing_locks_restore): Helper functions.

	* lisp/subr.el (with-narrowing-1): Simplify.

2022-11-25  Dmitry Gutov  <dgutov@yandex.ru>

	Drop project--value-in-dir

	Drop the project--value-in-dir mechanics, where the user could edit
	the value in .dir-locals.el and have it applied instantly without
	reverting the current buffer.  It made working in remote buffers with
	enable-remote-dir-locals non-nil slower, which doesn't seem worth it
	for a minor improvement of an infrequent operation.  Also less
	complexity overall.

	* lisp/progmodes/project.el (project-try-vc, project-files)
	(project--vc-list-files, project-ignores, project-buffers):
	Use the user options directly.
	(project--vc-merge-submodules-p, project--value-in-dir):
	Delete functions.

2022-11-25  Gregory Heytings  <gregory@heytings.org>

	Generic 'with-narrowing' macro.

	* lisp/subr.el (with-narrowing): New generic macro, replacing the
	'with-locked-narrowing' one.  Suggested by Stefan Monnier.
	(with-narrowing-1, with-narrowing-2): Helper functions.

2022-11-25  Gregory Heytings  <gregory@heytings.org>

	Reworked locked narrowing.

	* src/editfns.c: (narrowing_locks): New alist to hold the narrowing
	locks and their buffers.
	(narrowing_lock_get_bound, narrowing_lock_peek_tag)
	(narrowing_lock_push, narrowing_lock_pop): New functions to access
	and update 'narrowing_locks'.
	(reset_outermost_narrowings, unwind_reset_outermost_narrowing):
	Functions moved from src/xdisp.c, and rewritten with the above
	functions.
	(Fwiden): Use the above functions. Update docstring.
	(Fnarrow_to_region, Fnarrowing_lock, Fnarrowing_unlock): Use the above
	functions.
	(syms_of_editfns): Remove the 'narrowing-locks' variable.

	* src/lisp.h: Make 'reset_outermost_narrowings' externally visible.

	* src/xdisp.c (reset_outermost_narrowings)
	unwind_reset_outermost_narrowing): Functions moved to src/editfns.c.

	* lisp/subr.el (with-locked-narrowing): Improved macro, with a helper
	function.

2022-11-25  F. Jason Park  <jp@neverwas.me>

	Disable auth-source-pass-extra-query-keywords by default

	* doc/misc/auth.texi: Mention subdomain matching in
	`auth-source-pass-extra-query-keywords' section.
	* etc/NEWS: Mention the loss of traditional auth-source-pass features
	when `auth-source-pass-extra-query-keywords' is enabled.
	* lisp/auth-source-pass.el (auth-source-pass-extra-query-keywords): Set
	default to nil.  Mention domain matching in doc string.
	(auth-source-pass--match-regexp): Allow username to contain "@".
	* lisp/erc/erc-compat.el:
	(erc-compat--29-auth-source-pass--retrieve-parsed): Adjust regexp.
	* test/lisp/auth-source-pass-tests.el
	(auth-source-pass-extra-query-keywords--suffixed-user): make plain
	username more email-like.
	(Bug#58985.)

2022-11-25  Mattias Engdegård  <mattiase@acm.org>

	Add sqlite library version string retrieval function (bug#58766)

	* src/sqlite.c (sqlite3_libversion, load_dll_functions):
	Make sqlite3_libversion available.
	(Fsqlite_version): New.
	(syms_of_sqlite): Define sqlite-version.
	* doc/lispref/text.texi (Database): Document.
	* test/src/sqlite-tests.el (sqlite-returning): `RETURNING` was added
	in sqlite 3.35; skip the test for older versions.

2022-11-25  Theodor Thornhill  <theo@thornhill.no>

	Fix regex errors in csharp-mode

	* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax):
	Repetition errors in regex.

	(csharp-compilation-re-xbuild-warning): Make regex match regex for
	xbuild-error.

2022-11-25  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix the "asymmetry rule" for fontifying a type followed by *

	This fixes bug #59427.  We now handle correctly the case when a parenthesis
	follows the * which is ambiguously a multiplication or indirection operator.
	Also, we don't recognize a type thus found as a found type - the evidence is
	too weak.

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): Fix CASE 17.5 as
	above.

2022-11-25  Stefan Kangas  <stefankangas@gmail.com>

	Remove unused parameter from image_create_pix_container

	* src/image.c (image_create_pix_container): Remove unused
	frame parameter. Update callers.

2022-11-25  Daanturo  <daanturo@gmail.com>

	Show package name in package-vc--unpack prompt

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Display the
	package name when asking whether to overwrite its previous
	checkout.  (Bug#59548)

2022-11-24  Jim Porter  <jporterbugs@gmail.com>

	Don't explicitly delete client frames when killing Emacs anyway

	This eliminates a useless error prompt when killing Emacs from a
	client frame when there are no other frames (bug#58877).

	* lisp/server.el (server-running-external): New error.
	(server--file-name): New function...
	(server-eval-at): ... use it.
	(server-start): Factor out server stopping code into...
	(server-stop): ... here.
	(server-force-stop): Use 'server-stop', and tell it not to delete
	frames.

	* test/lisp/server-tests.el
	(server-tests/server-force-stop/keeps-frames): New test.

2022-11-24  Gabriel do Nascimento Ribeiro  <gabriel376@hotmail.com>

	Make ibuffer directory filter buffer aware

	* lisp/ibuf-ext.el (define-ibuffer-filter): Make ibuffer directory
	filter buffer aware for buffer not visiting files.  (Bug#59165)

2022-11-24  Ackerley Tng  <ackerleytng@google.com>

	Add support for window-local xref history

	* lisp/progmodes/xref.el (xref-history-storage):
	New user option (bug#59381).
	(xref--make-xref-history): New function.
	(xref--history): Use it.
	(xref-global-history, xref-window-local-history): New function.
	(xref--get-history): New function.
	(xref--push-backward, xref--push-forward)
	(xref-push-marker-stack, xref-go-back, xref-go-forward)
	(xref-clear-marker-stack, xref-marker-stack-empty-p)
	(xref-forward-history-empty-p):	Use it.

2022-11-24  Stefan Kangas  <stefankangas@gmail.com>

	Bind Buffer-menu-view-other-window to "O"

	* lisp/buff-menu.el (Buffer-menu-mode-map): Bind
	'Buffer-menu-view-other-window' to "O".
	(Buffer-menu-mode): Clean up docstring.  (Bug#59280)

2022-11-24  Gabriel do Nascimento Ribeiro  <gabriel376@hotmail.com>

	Allow goto-address-at-point to use secondary browser

	* lisp/net/goto-addr.el (goto-address-at-point): Call
	`browse-url-button-open-url', so a prefix argument uses
	`browse-url-secondary-browser-function'.  (Bug#59443)

2022-11-24  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix easy menu separator in oldXMenu

	* lisp/emacs-lisp/easymenu.el (easy-menu-convert-item-1): Replace a
	string of dash with a menu separator as the doc says.  (Bug#59370)

2022-11-24  Jostein Kjønigsen  <jostein@kjonigsen.net>

	Improve csharp-ts-mode fontification

	* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
	Add more pattern for definition feature.

2022-11-24  Yuan Fu  <casouri@gmail.com>

	Improve python-ts-mode fontification (bug#59534)

	* lisp/progmodes/python.el (python--treesit-operators): Add operators.
	(python--treesit-fontify-string): Fontify BOF docstrings.

2022-11-24  Paul Eggert  <eggert@cs.ucla.edu>

	Work around lsp-mode compatibility bug

	* src/timefns.c (Ftime_subtract): Respect current-time-list when
	args are eq (Bug#59506).

2022-11-24  Brian Leung  <leungbk@posteo.net>

	Add more tree-sitter modes to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add python-ts-mode
	and bash-ts-mode.  (Bug#59550)

2022-11-24  Philip Kaludercic  <philipk@posteo.net>

	* src/emacs.c (usage_message): Add missing --init-directory entry

2022-11-24  Brian Leung  <leungbk@posteo.net>

	Add tree-sitter-based modes to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add
	tree-sitter-based major modes.  (Bug#59229)

2022-11-24  Ulf Jasper  <ulf.jasper@web.de>

	icalendar: Adjust tests after fixing parsing of sexp entries (bug#56241)

	* test/lisp/calendar/icalendar-tests.el
	(icalendar-export-bug-56241-nested-sexps): New.
	* test/lisp/calendar/icalendar-tests.el (icalendar-real-world):
	Disable testcase for exporting sexp entries that has now become invalid.

2022-11-24  hokomo  <hokomo@airmail.cc>  (tiny change)

	icalendar.el: Fix parsing of sexp entries (bug#56241)

	* lisp/calendar/icalendar.el (icalendar--convert-sexp-to-ical): Use
	read-from-string for parsing sexp entries (bug#56241).

2022-11-24  dannyfreeman  <danny@dfreeman.email>

	Eglot: don't confuse URLs and windows file paths

	bug#59338

	* lisp/progmodes/eglot.el (eglot--path-to-uri): Check for windows path

2022-11-24  João Távora  <joaotavora@gmail.com>

	Remove fboundp check in eglot--connect

	project.el is a GNU ELPA :core package, so this kind of trick isn't
	needed.

	* lisp/progmodes/eglot.el (eglot--connect): Don't fboundp
	project-name.

2022-11-24  Marcin Pajkowski  <marcin.pajkowski@gmail.com>  (tiny change)

	Eglot: Advertise completion.resolveSupport capabilities

	Some servers avoid reporting completion items that
	require "additionalTextEdits" capability.  Actually,
	'eglot-completion-at-point' function supports such
	feature so it can be advertised to LSP server.
	* lisp/progmodes/eglot.el (eglot-client-capabilities): Advertise
	resolveSupport.  (bug#59465)

2022-11-24  Mattias Engdegård  <mattiase@acm.org>

	Add new SI prefixes

	* lisp/calc/calc-units.el (math-unit-prefixes):
	* lisp/files.el (file-size-human-readable):

	Add ronna, quetta, ronto and quecto.  (We get the future IEC binary
	prefixes Ri and Qi (robi and quebi) in `file-size-human-readable` for
	free.)

2022-11-24  Gregory Heytings  <gregory@heytings.org>

	Merge master into feature/improved-locked-narrowing.

2022-11-24  Po Lu  <luangruo@yahoo.com>

	Fix reentrancy problem/crash in xterm.c

	* src/xterm.c (x_ignore_errors_for_next_request)
	(x_stop_ignoring_errors): Be paranoid and block input inside the
	protected section.
	(x_focus_frame): Block input around critical section.

2022-11-24  Mike Kupfer  <mkupfer@alum.berkeley.edu>

	Fix trashing of symlink that points at a directory

	* lisp/files.el (move-file-to-trash): Redefine is-directory so
	that it is false for symlinks.

2022-11-24  Mike Kupfer  <mkupfer@alum.berkeley.edu>

	Fix cross-filesystem directory trashing (Bug#58721)

	* lisp/files.el (move-file-to-trash): When trashing a directory with
	the same name as something that's already in the trash, copy it into
	the trash folder and then delete it, rather than using rename-file.

2022-11-24  Alan Mackenzie  <acm@muc.de>

	CC Mode: Make it scroll fast over buffers with only #define's

	* lisp/progmodes/cc-engine.el (c-forward-over-token): New LIMIT parameter

	* lisp/progmodes/cc-langs.el (c-anchored-hash-define-no-parens): Replace
	ill-formed regular expression (which mixed \\sw and character alternative)
	with simpler efficient regexp.

	* lisp/progmodes/cc-mode.el (c-fl-decl-end): New forward limit LIM+ used in
	c-forward-declarator and c-forward-over-token.

2022-11-24  Tassilo Horn  <tsdh@gnu.org>

	Fix face issues in show-paren context overlay (bug#59527)

	* lisp/paren.el (show-paren--show-context-in-overlay): Use
	show-paren-priority as overlay priority (fixes problem 2 of
	bug#59527).
	* lisp/simple.el (blink-paren-open-paren-line-string): Ensure the
	context lines are font-locked before taking the
	buffer-substring (fixes problem 1 of bug#59527).

2022-11-24  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in treesit.c when editing non-ASCII

	* src/treesit.c (make_treesit_parser): Use byte positions when
	initializing 'lisp_parser'.  This avoids assertion violations when
	the buffer has non-ASCII characters.

2022-11-24  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Improve LDAP and BBDB tests

	* test/lisp/net/eudc-tests.el (eudcb-ldap): Make slapd detection
	reliable.
	* test/lisp/net/eudc-resources/bbdb: Add another test contact.

2022-11-23  Yuan Fu  <casouri@gmail.com>

	Add an error fontification heuristic to c-ts-mode

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use new
	function.
	(c-ts-fontify-error): New function.

2022-11-23  Yuan Fu  <casouri@gmail.com>

	Don't always filter out captured tree-sitter nodes outside of region

	* lisp/treesit.el (treesit-font-lock-fontify-region): If the capture
	name is a function, don't filter.

2022-11-23  Dmitry Gutov  <dgutov@yandex.ru>

	project-switch-project: Use a different fix for bug#58784

	* lisp/progmodes/project.el (project-current-inhibit-prompt):
	Rename to 'project-current-directory-override', and make it a
	string value.
	(project-current): Refer to it.
	(project-switch-project): Bind it.  Drop the temp buffer (bug#58784).

2022-11-23  F. Jason Park  <jp@neverwas.me>

	Add test scenarios for local ERC modules

	* test/lisp/erc/erc-scenarios-base-local-modules.el: New file.
	* test/lisp/erc/resources/base/local-modules/first.eld: New file.
	* test/lisp/erc/resources/base/local-modules/fourth.eld: New file
	* test/lisp/erc/resources/base/local-modules/second.eld: New file.
	* test/lisp/erc/resources/base/local-modules/third.eld: New file.
	(Bug#57955.)

2022-11-23  F. Jason Park  <jp@neverwas.me>

	Accept functions in place of passwords in ERC

	* lisp/erc/erc-backend.el (erc-session-password): Add comment
	explaining type is now string, nil, or function.
	* lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search):
	Use obfuscation from auth-source function when available.
	* lisp/erc/erc-sasl.el (erc-sasl--read-password,
	erc-server-AUTHENTICATE): Use `erc--unfun'.
	* lisp/erc/erc-services.el (erc-nickserv-get-password,
	erc-nickserv-send-identify): Use `erc--unfun'.
	* lisp/erc/erc.el (erc--unfun): New function for unwrapping a
	password couched in a getter.
	(erc--debug-irc-protocol-mask-secrets): Add variable to indicate
	whether to mask passwords in debug logs.
	(erc--mask-secrets): New function to swap masked secret with question
	marks in debug logs.
	(erc-log-irc-protocol): Conditionally mask secrets when
	`erc--debug-irc-protocol-mask-secrets' is non-nil.
	(erc--auth-source-search): Don't unwrap secret from function before
	returning.
	(erc-server-join-channel, erc-login): Use `erc--unfun'.

	* test/lisp/erc/erc-services-tests.el
	(erc-services-tests--wrap-search): Add helper for `erc--unfun'.
	(erc-services-tests--auth-source-standard,
	erc-services-tests--auth-source-announced,
	erc-services-tests--auth-source-overrides, erc-nickserv-get-password):
	Use `erc--unfun'.
	* test/lisp/erc/erc-tests.el (erc--debug-irc-protocol-mask-secrets):
	Add test for masking secrets with `erc--unfun' and friends.

2022-11-23  F. Jason Park  <jp@neverwas.me>

	Add non-IRCv3 SASL module to ERC

	* doc/misc/erc.texi: Add SASL section in Advanced Usage chapter to
	document the new SASL module.

	* etc/ERC-NEWS: Mention addition of erc-sasl module for SASL support.

	* lisp/erc/erc-compat.el
	(erc-compat--29-sasl-scram-construct-gs2-header,
	erc-compat--29-sasl-scram-client-first-message,
	erc-compat--29-sasl-scram--client-final-message): Fix encoding bug and
	add minimal authorization support with copies of SASL functions
	introduced in Emacs 29.

	* lisp/erc/erc.el (erc-modules): Add `sasl'.
	* lisp/erc/erc-sasl.el: New file (bug#29108).
	* test/lisp/erc/erc-sasl-tests.el: New file.
	* test/lisp/erc/erc-scenarios-sasl.el: New file.
	* test/lisp/erc/resources/sasl/plain-failed.eld: New file.
	* test/lisp/erc/resources/sasl/plain.eld: New file.
	* test/lisp/erc/resources/sasl/scram-sha-1.eld: New file.
	* test/lisp/erc/resources/sasl/scram-sha-256.eld: New file.
	* test/lisp/erc/resources/sasl/external.eld: New file.

2022-11-23  F. Jason Park  <jp@neverwas.me>

	Call erc-login indirectly via new generic wrapper

	* lisp/erc/erc-backend.el (erc--register-connection): Add new internal
	generic function that defers to `erc-login' by default.
	(erc-process-sentinel, erc-server-connect): Call
	`erc--register-connection' instead of `erc-login'.

2022-11-23  F. Jason Park  <jp@neverwas.me>

	Support local ERC modules in erc-mode buffers

	* doc/misc/erc.texi: Mention local modules in Modules chapter.

	* etc/ERC-NEWS: Mention changes to `erc-update-modules'.

	* lisp/erc/erc.el (erc-migrate-modules): Add some missing mappings.
	(erc-modules): When a user removes a module, disable it and kill its
	local variable in all ERC buffers.
	(erc-update-modules): Move body of `erc-update-modules' to new
	internal function.
	(erc--update-modules): Add new function, a renamed and slightly
	modified version of `erc-update-modules'.  Specifically, change return
	value from nil to a list of minor-mode commands for local modules.
	Use `custom-variable-p' to detect flavor.
	(erc--merge-local-modes): Add helper for finding local modules
	already active as minor modes in an ERC buffer.
	(erc-open): Replace `erc-update-modules' with `erc--update-modules'.
	Defer enabling of local modules via `erc--update-modules' until after
	buffer is initialized with other local vars.  Also defer major-mode
	hooks so they can detect things like whether the buffer is a server or
	target buffer.  Also ensure local module setup code can detect when
	`erc-open' was called with a non-nil `erc--server-reconnecting'.

	* lisp/erc/erc-common.el (erc--module-name-migrations,
	erc--features-to-modules, erc--modules-to-features): Add alists of
	old-to-new module names to support module-name migrations.
	(erc--assemble-toggle): Add new helper for constructing mode toggles,
	like `erc-sasl-enable'.
	(define-erc-modules): Defer to `erc--assemble-toggle' to create toggle
	commands.
	(erc--normalize-module-symbol): Add helper for `erc-migrate-modules'.

	* lisp/erc/erc-goodies.el: Require cl-lib.

	* test/lisp/erc/erc-tests.el (erc-migrate-modules,
	erc--update-modules): Add rudimentary unit tests asserting correct
	module-name mappings.
	(erc--merge-local-modes): Add test for helper.
	(define-erc-module--global, define-erc-module--local): Add tests
	asserting module-creation macro.  (Bug#57955.)

2022-11-23  F. Jason Park  <jp@neverwas.me>

	Make erc--server-reconnecting non-buffer-local

	* lisp/erc/erc-backend.el (erc--server-reconnecting): Mention expected
	non-nil value type in doc string.
	(erc-server-connect): Don't set `erc--server-reconnecting'.
	(erc-server--reconnect): Let-bind `erc--server-reconnecting' instead
	of setting it locally in the server buffer.  Set it to an alist
	containing the current buffer's local variables.
	(erc-process-sentinel-2): Don't set `erc--server-reconnect'.
	* lisp/erc/erc.el (erc--cmd-reconnect): Clean up some assertions.
	(Bug#57955.)

2022-11-23  F. Jason Park  <jp@neverwas.me>

	Don't set erc-networks--id until network is known

	* lisp/erc/erc-networks.el (erc-networks--id-given): Accept a null
	argument.
	(erc-networks--id-on-connect): Remove unused function.
	(erc-networks--id-equal-p): Add method for comparing initialized and
	unset IDs.
	(erc-networks--update-server-identity): Ensure `erc-networks--id' is
	set before continuing search.
	(erc-networks--init-identity): Don't assume `erc-networks--id' is
	non-nil.  Add branch condition to reload ID on non-nil case.
	(erc-networks-on-MOTD-end): Let init-ID function handle renaming of
	server buffer.

	* lisp/erc/erc.el (erc-open): For continued sessions, try copying over
	the last network ID.
	(erc--auth-source-determine-params-default): Don't expect a network ID
	to have been initialized.
	(erc-set-current-nick): When connected, reload network ID.  Leave
	comment warning that it may be unneeded.

	* lisp/erc/erc-backend.el (erc-server-NICK, erc-server-433): Unless
	already connected, schedule ID reload when server rejects or mandates
	a nick change.

	* test/lisp/erc/erc-scenarios-base-association-nick.el
	(erc-scenarios-base-association-nick-bumped,
	erc-scenarios-base-association-nick-bumped-mandated-renick): Update to
	reflect more liberal association behavior when renamed by IRCd.

2022-11-23  F. Jason Park  <jp@neverwas.me>

	Add GS2 authorization to sasl-scram-rfc

	* lisp/net/sasl-scram-rfc.el (sasl-scram-gs2-header-function,
	sasl-scram-construct-gs2-header): Add new variable and default
	function for determining a SCRAM GSS-API message header.  This is
	mainly intended for other libraries rather than end users.
	(sasl-scram-client-first-message): Use gs2-header function.
	(sasl-scram--client-final-message): Use dedicated gs2-header function.
	Also remove whitespace when base64-encoding, as per RFC 5802.
	(Bug#57956.)

2022-11-23  Theodor Thornhill  <theo@thornhill.no>

	Add csharp-mode and csharp-ts-mode

	* etc/NEWS: Mention new modes.
	* lisp/progmodes/csharp-mode.el (csharp-mode, csharp-ts-mode): New
	major modes.

2022-11-23  Yuan Fu  <casouri@gmail.com>

	Don't skip nested defuns in python-ts-mode defun navigation

	This fixes bug#59495.

	Before this change, python tries to skip nested function
	definition. Now we don't skip any nested defun.

	* lisp/progmodes/python.el (python-treesit-beginning-of-defun)
	(python-treesit-end-of-defun): Remove functions.
	* lisp/progmodes/python.el (python-ts-mode): Use tree-sitter's default
	navigation function.

2022-11-23  Yuan Fu  <casouri@gmail.com>

	More flexible tree-sitter defun navigation

	Before this change, treesit-beginning-of-defun skips nested defuns.
	Now user can decide whether to skip nested defuns.

	* lisp/treesit.el (treesit-search-forward-goto): Improve docstring.
	(treesit-defun-prefer-top-level): New variable.
	(treesit--defun-maybe-top-level): New function.
	(treesit-beginning-of-defun)
	(treesit-end-of-defun): Use treesit--defun-maybe-top-level.

2022-11-23  Ulf Jasper  <ulf.jasper@web.de>

	icalendar.el: Add test(s) for bug#56241

	* test/lisp/calendar/icalendar-tests.el
	(icalendar-tests--get-error-string-for-export): new.
	* icalendar-tests.el (icalendar-export-bug-56241-dotted-pair): new

2022-11-23  Juri Linkov  <juri@linkov.net>

	New commands previous-line-completion and next-line-completion (bug#59486)

	* lisp/simple.el (completion-list-mode-map): Bind [up] to
	'previous-line-completion', and [down] to 'next-line-completion'.
	(completion-auto-wrap): Mention `next-line-completion' and
	`previous-line-completion' in the docstring.
	(previous-line-completion, next-line-completion): New commands.

2022-11-23  Philip Kaludercic  <philipk@posteo.net>

	Don't break when loading VC packages on older Emacs versions

	* lisp/emacs-lisp/package-vc.el
	(package-vc--generate-description-file): Append a :kind property
	instead of modifying the version number.
	* lisp/emacs-lisp/package.el (package-desc): Remove special handling
	for "vc annotated" versions.  (bug#59404)

2022-11-23  Juri Linkov  <juri@linkov.net>

	* lisp/help.el (describe-bindings): Use the outline-default-rules feature.

	Set buffer-local outline-default-state to 1, and outline-default-rules
	to match "Key translations", instead of searching and hiding this section
	explicitly.

2022-11-23  lu4nx  <lx@shellcodes.org>  (tiny change)

	Support Racket programs in 'etags'

	* lib-src/ctags.c (Scheme_suffixes): Add the Racket language
	extension ".rkt".

2022-11-23  Dmitry Gutov  <dgutov@yandex.ru>

	xref--search-property: Jump over entries hidden by outline-minor-mode

	* lisp/progmodes/xref.el (xref--search-property):
	Jump over entries hidden by e.g. outline-minor-mode (bug#49731).

2022-11-23  Eli Zaretskii  <eliz@gnu.org>

	Avoid signaling args-out-of-range in mouse.el

	* lisp/mouse.el (mouse-posn-property): Avoid
	signaling args-out-of-range errors when mode-line format uses
	min-width 'display' property.  (Bug#59452)

2022-11-23  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of locale-specific string comparison

	* doc/lispref/strings.texi (Text Comparison):
	* src/fns.c (Fstring_collate_equalp): Improve documentation of
	'string-collate-equalp' and 'string-collate-lessp'.  (Bug#59275)

2022-11-23  Eli Zaretskii  <eliz@gnu.org>

	Fix error signaled by mouse-highlight on mode line

	* src/xdisp.c (note_mode_line_or_margin_highlight): Avoid
	signaling args-out-of-range errors when mode-line format uses
	min-width 'display' property.  (Bug#59452)

2022-11-23  Po Lu  <luangruo@yahoo.com>

	Improve last change to xterm.c

	* src/xfns.c (Fx_display_last_user_time): Reject overly large
	timestamps.
	* src/xterm.c (x_display_set_last_user_time, handle_one_xevent):
	New functions.

2022-11-23  Michael Albinus  <michael.albinus@gmx.de>

	Restore tramp-achive's Emacs 26 compatibility

	* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp):
	Special handling of Emacs 26.  Simplify the other part.

	* test/lisp/net/tramp-tests.el (tramp-test48-unload): Special case
	of `tramp-register-archive-file-name-handler'.

2022-11-23  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el: 'S-<down-mouse-1>' on buffer buttons cycles all outlines.

	(outline--create-button-icons, outline--insert-button): Bind 'S-<mouse-1>' to
	'outline-cycle-buffer' as it's already done for buttons on the margins.
	Ignore 'S-<down-mouse-1>'.  Don't hard-code 'help-echo' since it should be
	customizable by the ':help-echo' keyword in 'define-icon'.

2022-11-23  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/xref.el: Support outline-minor-mode (bug#49731)

	(xref--xref-buffer-mode): Set buffer-local variables outline-minor-mode-cycle,
	outline-minor-mode-use-buttons, outline-search-function, outline-level
	as settings for enabling outline-minor-mode in xref output buffers where
	outline headings are xref groups, and their lines can be hidden by
	outline commands.

2022-11-22  Yuan Fu  <casouri@gmail.com>

	Tweak python-ts-mode fontification (bug#59470)

	* lisp/progmodes/python.el (python--treesit-settings): Only fontify
	the @ and the identifier of a decorator, not the argument list (if
	there is any).

2022-11-22  Randy Taylor  <dev@rjt.dev>

	Utilize new font-lock faces for more tree-sitter modes (Bug#59397)

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
	Use font-lock-number-face.
	(java-ts-mode): Alphabetize features.
	* lisp/progmodes/js.el (js--treesit-operators): Define operators.
	(js--treesit-font-lock-settings): Use bracket, delimiter,
	escape-sequence, property, number, and operator font-lock faces.
	(js-ts-mode): Add them to the feature list and alphabetize.
	* lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings):
	Use bracket, delimiter, escape-sequence, and number faces.  Remove
	unused features.
	(json-ts-mode): Add them to the feature list and alphabetize.
	* lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Use
	bracket, delimiter, number, misc-punctuation, and operator font-lock
	faces.
	(sh-mode--treesit-operators): Remove ; and ;; from list.
	(bash-ts-mode): Add them to the feature list and alphabetize.
	* lisp/progmodes/ts-mode.el (ts-mode--operators): Define operators.
	(ts-mode--font-lock-settings): Use escape-sequence, number, and
	operator font-lock faces.
	(ts-mode): Add them to the feature list and alphabetize.

2022-11-22  Dmitry Gutov  <dgutov@yandex.ru>

	Add a way to override project name for project-vc backend

	* lisp/progmodes/project.el (project-vc-name): New user option.
	(project-name): Override for VC project backend (bug#48747).

2022-11-22  Yuan Fu  <casouri@gmail.com>

	Fix treesit-update-ranges

	* lisp/treesit.el (treesit--clip-ranges): New function.
	(treesit-update-ranges): Now clips the range within (point-min)
	and (point-max), so the new range we use are not out-of-range.

2022-11-22  Stephen Leake  <stephen_leake@stephe-leake.org>

	* lisp/progmodes/eglot.el (eglot--connect): Use project-name

	As discussed in bug#48747.

2022-11-22  Stephen Leake  <stephen_leake@stephe-leake.org>

	* lisp/progmodes/project.el (project-name): New

2022-11-22  Eli Zaretskii  <eliz@gnu.org>

	Fix 'treesit-max-buffer-size' and its use

	* lisp/treesit.el (treesit-max-buffer-size): Avoid overflow in
	computing buffer-size limit.  Account for 32-but systems built
	"--with-wide-int".  Extend doc string.
	(treesit-ready-p): Compare the limit with the size of the buffer
	in bytes, not in characters.

	* src/treesit.c (treesit_check_buffer_size): Measure buffer size
	in bytes.

2022-11-22  Robert Pluim  <rpluim@gmail.com>

	Add '\lll' for VERY MUCH LESS-THAN to TeX input method

	* lisp/leim/quail/latin-ltx.el (latin-ltx--define-rules): Add '\lll'
	translation for U+22D8.  (Bug#59476)

2022-11-22  Po Lu  <luangruo@yahoo.com>

	Adjust x_display_set_last_user_time for Xlib sign-extension

	* src/xterm.c (x_display_set_last_user_time): Adjust for Xlib
	sign extending fields in client messages to 64 bit long, which
	then break x_display_set_last_user_time after 24 days, as Time
	is unsigned long for historical reasons.  (bug#59480)

2022-11-22  Ihor Radchenko  <yantar92@posteo.net>

	Improve the doc string of 'string-collate-lessp'

	* src/fns.c (Fstring_collate_lessp): Clarify that
	IGNORE-CASE argument might be ignored when the operating
	system does not implement string collation for the
	specified locale.  (Bug#59275)

2022-11-22  Sam James  <sam@gentoo.org>

	Fix tree-sitter build using non-bash /bin/sh (bug#59460)

	* configure.ac: Don't use '==' in comparisons.

2022-11-22  Po Lu  <luangruo@yahoo.com>

	Avoid potentially expensive XFlush and fix ordering

	* src/xterm.c (x_raise_frame): Don't call XFlush without a
	request being made.
	(x_lower_frame): Fix ordering wrt to xwidget view lowering.

2022-11-22  Yuan Fu  <casouri@gmail.com>

	Separate tree-sitter and non-tree-sitter variant of sh-mode

	Now there are three modes, sh-base-mode, sh-mode, bash-ts-mode.

	The change I made: change sh-mode to sh-base-mode, remove docstring.
	Below the new sh-base-mode, create a new definition for sh-mode, paste
	the dostring, add setup for font-lock-defaults.  Below sh-mode, add
	bash-ts-mode.

	* lisp/progmodes/sh-script.el (sh-mode): Moves all setup into
	sh-base-mode, except for the setup for font-lock-defaults and the
	docstring.
	(sh-base-mode): New mode.
	(bash-ts-mode): New mode.

2022-11-22  Yuan Fu  <casouri@gmail.com>

	Fix treesit_record_change in casify_region

	This fixes bug#59455.

	* src/casefiddle.c: Always record changes.

2022-11-22  Theodor Thornhill  <theo@thornhill.no>

	Tweak faces in Java and TypeScript

	* lisp/progmodes/java-ts-mode.el (java-ts-mode--operators): Remove @
	as an operator.

	(java-ts-mode--font-lock-settings): Use constant-face for @ to match
	rest of the annotation.  Add bracket, delimiter and use some of the
	new faces.

	(java-ts-mode--imenu): Clean up the implementation a little.

	(java-ts-mode): Refer to the new features.

	* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings, ts-mode):
	Add in bracket and delimiter'.

2022-11-22  Yuan Fu  <casouri@gmail.com>

	treesit-font-lock-recompute-features now has two modes of operation

	1. Set activation of each feature (changes every feature)
	2. Add/remove features (only change those explicitly configured by
	ADD-LIST and REMOVE-LIST)

	This is useful for enabling/disabling certain features for all
	modes (without resetting others) by calling this function in
	prog-mode-hook

	* lisp/treesit.el (treesit-font-lock-recompute-features): See above
	description.

2022-11-22  Yuan Fu  <casouri@gmail.com>

	Tweak c-ts-mode fontification

	New features: function and variable, which consistently fontify all
	occurrences of functions and variables, respectively.

	Remove expression feature, as its purpose is fulfilled by function,
	variable, and property combined.

	Fix declaration feature, remove unnecessary rule from label
	feature.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): See
	above description.
	(c-ts-mode--fontify-variable): New function.
	(c-ts-mode--base-mode): Add & remove features.

2022-11-22  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el (treesit-max-buffer-size): Enlarge value.

2022-11-22  Stefan Kangas  <stefankangas@gmail.com>

	Don't refer to deleted variable 'gnus-parameter-to-list-alist'

	* doc/misc/gnus.texi (Group Parameters):
	* lisp/gnus/message.el (message-recipients-without-full-name):
	Don't refer to deleted variable 'gnus-parameter-to-list-alist'.

2022-11-21  Stefan Kangas  <stefankangas@gmail.com>

	Refresh menus in gnus.texi

	Fixes problem reported by Po Lu <luangruo@yahoo.com>.
	* doc/misc/gnus.texi (Top, Starting Up, Article Treatment)
	(The Gnus Diary Library, Searching, nnmairix): Refresh menus.

2022-11-21  Stefan Kangas  <stefankangas@gmail.com>

	Improve wording and markup in gnus-faq.texi

	* doc/misc/gnus-faq.texi (FAQ 2-4): Improve wording and markup.
	(FAQ 2-1, FAQ 2-4, FAQ 2-5, FAQ 3 - Getting Messages, FAQ 3-1)
	(FAQ 3-2, FAQ 3-2, FAQ 3-4, FAQ 4-1, FAQ 4-2, FAQ 4-3, FAQ 4-4)
	(FAQ 4-8, FAQ 4-9, FAQ 4-10, FAQ 4-12, FAQ 5-1, FAQ 5-2)
	(FAQ 5-7, FAQ 6-1, FAQ 6-2, FAQ 6-2, FAQ 6-3, FAQ 6-4, FAQ 6-5)
	(FAQ 7-2, FAQ 7-3, FAQ 7-3, FAQ 7-4, FAQ 8-1, FAQ 8-5, FAQ 9-1):
	Improve markup and reflow some paragraphs.

2022-11-21  Yuan Fu  <casouri@gmail.com>

	Merge remote-tracking branch 'savannah/master' into feature/tree-sitter

2022-11-21  Yuan Fu  <casouri@gmail.com>

	Allow major modes to tweak tree-sitter fontification

	treesit--font-lock-query-expand-range allows a major mode to fix
	fontification problems temporarily before the parser can be fixed.

	* lisp/treesit.el (treesit--font-lock-query-expand-range): New variable.
	(treesit-font-lock-fontify-region): Use the new variable.
	* lisp/textmodes/css-mode.el (css-ts-mode): Use the new variable.

2022-11-21  Yuan Fu  <casouri@gmail.com>

	Further tweak tree-sitter fontification heuristics

	So it turns out the slowness observed in bug#59415 is not due to the
	size, but the strangely tall tree.  Adjust the heuristic to DTRT:
	don't enable the heuristic by default or when buffer is large, enable
	when query is abnormally slow.  We could do some clever thing that
	calibrates a base reading for the query time instead of using a
	hard-coded value, but it doesn't seem necessary.

	* lisp/treesit.el (treesit--font-lock-fast-mode): New variable.
	(treesit-font-lock-fontify-region): Don't activate heuristic by
	default (reasons in comments).  Measure the query time and activate
	the fast mode if query time is long.

2022-11-21  Michael Albinus  <michael.albinus@gmx.de>

	Activate direct asynchronous processes for Tramp container methods

	* doc/misc/tramp.texi (Remote processes): Mention also
	tramp-container.el.

	* lisp/emacs-lisp/ert-x.el (ert-remote-temporary-file-directory):
	Add `tramp-direct-async' to "mock" method.

	* lisp/net/tramp-container.el
	(tramp-methods) <docker, podman, kubernetes>: Add `tramp-direct-async'.

	* lisp/net/tramp.el (tramp-methods): Adapt docstring.
	(tramp-handle-make-process): Handle `tramp-direct-async'.

	* test/lisp/net/tramp-tests.el (tramp-methods) <mock>:
	Add `tramp-direct-async'.

2022-11-21  Gregory Heytings  <gregory@heytings.org>

	Make sed invocation in Makefile POSIX-compliant

	* Makefile.in: Add a semicolon before the closing brace, which is
	required by POSIX.  Fixes bug#59444.

2022-11-21  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/forms.el (forms-mode): Prefer setq-local.

2022-11-21  Stefan Kangas  <stefankangas@gmail.com>

	Make instructions for updating ancient filesets obsolete

	* lisp/filesets.el (filesets-update-pre010505): Make update
	information for filesets older than 2001 obsolete.  Note that this
	dates back to before filesets.el was even added to Emacs.

2022-11-21  Yuan Fu  <casouri@gmail.com>

	Use constant face for labels in c-ts-mode

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use
	constant face for labels.

2022-11-21  Yuan Fu  <casouri@gmail.com>

	Add separate keymaps for js/python/css-ts-mode

	* lisp/progmodes/js.el (js-ts-mode-map)
	* lisp/progmodes/python.el (python-ts-mode-map)
	* lisp/textmodes/css-mode.el (css-ts-mode-map): New keymap.

2022-11-21  Yuan Fu  <casouri@gmail.com>

	Tweak python-ts-mode fontification

	* lisp/progmodes/python.el (python--treesit-fontify-string): Make the
	matching condition for docstrings more specific.

2022-11-21  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter fontification heuristic

	Previously applied heuristic 2 sometimes invalidates heuristic 1, add
	a guard so it doesn't.

	The new function is just for clarity of the code and has nothing to
	do with the change itself.

	* lisp/treesit.el (treesit--node-length): New function
	(treesit-font-lock-fontify-region): Use the new function.  Only do
	heuristic 2 when the node is large.

2022-11-21  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/woman.el (woman-mode-map): Prefer defvar-keymap.

2022-11-21  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline-search-function): New variable (bug#53981).

	(outline-font-lock-keywords, outline-font-lock-face)
	(outline-minor-mode-highlight-buffer, outline-next-preface)
	(outline-next-heading, outline-previous-heading)
	(outline-back-to-heading, outline-on-heading-p, outline-demote)
	(outline-map-region, outline-next-visible-heading)
	(outline-hide-sublevels, outline-up-heading): Use outline-search-function
	when it's non-nil as an alternative to searching outline-regexp.
	(outline-search-level, outline-search-text-property): New functions.

	* lisp/apropos.el (apropos-mode): Set outline-search-function
	instead of unreliable outline-regexp.
	(apropos-print): Add text property outline-level.

	* lisp/emacs-lisp/shortdoc.el (shortdoc-display-group):
	Add text property outline-level on text separate from final newlines.
	(shortdoc-display-group): Add a narrow newline to not show
	text properties of the final line when the outline is hidden.
	(shortdoc--display-function): Add text property outline-level.
	(shortdoc-mode): Set buffer-local outline-search-function and outline-level.

2022-11-21  Po Lu  <luangruo@yahoo.com>

	* src/treesit.c (treesit_load_language): Fix uninitialized uses.

2022-11-21  Po Lu  <luangruo@yahoo.com>

	Avoid usage of intern_c_string in treesit.c

	* src/treesit.c (Ftreesit_pattern_expand): Use DEFSYM'd symbols
	when the naming makes sense.
	(syms_of_treesit): Add new defsyms QCanchor, QCequal, QCmatch.

2022-11-21  Po Lu  <luangruo@yahoo.com>

	Stylistic fixes to treesit.c

	* src/treesit.c (treesit_make_ranges):
	(Ftreesit_parser_set_included_ranges): Fix coding style.

2022-11-21  Po Lu  <luangruo@yahoo.com>

	Fix MS-DOS build

	* msdos/sed1v2.inp: Edit out tree-sitter stuff.

2022-11-20  Yuan Fu  <casouri@gmail.com>

	Add another heuristic to speed up tree-sitter fontification

	* lisp/treesit.el (treesit-font-lock-fontify-region): Use
	treesit--children-covering-range to reduce the node size.

2022-11-20  Yuan Fu  <casouri@gmail.com>

	Limit recursion level for tree-sitter imenu functions

	Generating imenu index doesn't require going down to the bottom of the
	tree (defun's are usually top-level).  Add limit so we don't go too
	far down on very large buffers.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu)
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu)
	* lisp/progmodes/js.el (js--treesit-imenu)
	* lisp/progmodes/json-ts-mode.el (json-ts-mode--imenu)
	* lisp/progmodes/python.el (python-imenu-treesit-create-index)
	* lisp/textmodes/css-mode.el (css--treesit-imenu): Add limit to
	treesit-induce-sparse-tree.

2022-11-20  Yuan Fu  <casouri@gmail.com>

	Improve tree-sitter fontification on large buffers

	* lisp/treesit.el (treesit--children-covering-range)
	(treesit--children-covering-range-recurse): New functions.  They are
	not currently used but could be useful in the future, so I left them
	in place.
	(treesit-font-lock-fontify-region):
	* lisp/treesit.el (treesit-font-lock-fontify-region): Use the result
	of treesit-node-on instead of the root node.

2022-11-20  Stephen Leake  <stephen_leake@stephe-leake.org>

	Delete eglot spinner; not useful

	* lisp/progmodes/eglot.el (eglot-lsp-server): Delete slot spinner.
	(eglot--mode-line-format): Don't include spinner in mode-line.
	(eglot--signal-textDocument/didChange): Don't set spinner.

2022-11-20  Juanma Barranquero  <lekktu@gmail.com>

	Avoid native compiler setting user-init-file to warnings.el (bug#59358)

	* src/lread.c (maybe_swap_for_eln): Use a delayed warning
	instead of `display-warning' to avoid a recursive call to
	Fload while loading the init file that sets `user-init-file'
	to a bogus value.

2022-11-20  Juri Linkov  <juri@linkov.net>

	Rename 'elisp-eval-buffer' to 'elisp-eval-region-or-buffer' (bug#59350)

	* lisp/progmodes/elisp-mode.el (elisp-eval-region-or-buffer):
	Rename recently added command 'elisp-eval-buffer' to support active region.
	(emacs-lisp-mode-map, lisp-interaction-mode-map): Rebind 'C-c C-e'
	from elisp-eval-buffer to elisp-eval-region-or-buffer.

2022-11-20  Juri Linkov  <juri@linkov.net>

	Disable display-line-numbers-mode in string-pixel-width (bug#59311)

	* lisp/emacs-lisp/subr-x.el (string-pixel-width):
	Turn off display-line-numbers-mode when it's enabled.

2022-11-20  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/Makefile.in (INFO_COMMON): Sort alphabetically.

2022-11-20  Michael Albinus  <michael.albinus@gmx.de>

	Rework tramp-archive autoloads

	* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp):
	Use `tramp-compat-rx'.  Protect `tramp-archive-suffixes' and
	`tramp-archive-compression-suffixes'.
	(tramp-archive-file-name-handler): Don't autoload.
	(tramp-register-archive-autoload-file-name-handler): Rename from
	`tramp-register-archive-file-name-handler'.  Adapt callees.

2022-11-20  Po Lu  <luangruo@yahoo.com>

	Coalesce duplicate scroll valuator handling code

	Also, write more commentary.

	* src/xterm.c (xi_populate_scroll_valuator): New function.
	Describe the meaning of each field in xi_scroll_valuator_t.
	(xi_populate_device_from_info, xi_handle_new_classes): Factor
	out duplicate code to that function.

2022-11-20  Laurence Warne  <laurencewarne@gmail.com>

	Cancel proced auto update timer if no proced buffers are open

	* lisp/proced.el (proced-auto-update-timer): Cancel timer if no proced
	buffers are open.

2022-11-20  Eli Zaretskii  <eliz@gnu.org>

	Advise against using too-high GC thresholds

	* doc/lispref/internals.texi (Garbage Collection):
	* src/alloc.c (syms_of_alloc) <gc-cons-threshold>
	<gc-cons-percentage>: Advise against enlarging the GC thresholds
	more than needed and for prolonged periods of time.

2022-11-20  Gabriel do Nascimento Ribeiro  <gabriel376@hotmail.com>

	Handle error in bookmark-relocate when filename is nil

	* lisp/bookmark.el (bookmark-relocate): Handle error when
	filename is nil.  (Bug#59326)

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Fix uses of treesit-ready-p

	* lisp/progmodes/c-ts-mode.el (c-ts-mode)
	(c++-ts-mode)
	* lisp/progmodes/java-ts-mode.el (java-ts-mode)
	* lisp/progmodes/js.el (js-ts-mode)
	* lisp/progmodes/json-ts-mode.el (json-ts-mode)
	* lisp/progmodes/python.el (python-ts-mode)
	* lisp/progmodes/sh-script.el (sh-mode)
	* lisp/progmodes/ts-mode.el (ts-mode): Remove the MODE argument.

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Remove treesit-settings

	Remove it since we are using separate major modes for tree-sitter and
	native variant now.

	* doc/lispref/parsing.texi (Tree-sitter major modes): Update manual.
	* lisp/treesit.el (treesit-settings): Remove option.
	(treesit--setting-for-mode): Remove function.
	(treesit-ready-p): Don't check for user preference in treesit-settings.

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Remove tree-sitter setup from js-json-mode

	* lisp/progmodes/js.el (js-json--treesit-font-lock-settings)
	(js--json-treesit-indent-rules): Remove variables.
	(js-json-mode): Remove tree-sitter setup.

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter comment indentation for C-like languages

	The goal is to indent like this:

	/* comment
	   comment  --> This line aligns with the beginning of the first line
	 */         --> This line aligns with the opening comment token

	* lisp/treesit.el (treesit-comment-start)
	(treesit-comment-end): New variables.
	(treesit-simple-indent-presets): New preset comment-end,
	comment-start, comment-start-skip

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles)
	(c-ts-mode)
	* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules)
	(java-ts-mode)
	* lisp/progmodes/js.el (js--treesit-indent-rules)
	(js-ts-mode)
	* lisp/progmodes/ts-mode.el (ts-mode--indent-rules)
	(ts-mode): Add identical indent rules to each mode, and set identical
	treesit-comment-start/end's.

	* doc/lispref/modes.texi (Parser-based Indentation)
	* doc/lispref/parsing.texi (Tree-sitter major modes): Update manual.

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Separate native and tree-sitter variant of js-mode

	* lisp/progmodes/js.el (js-base-mode): New mode.
	(js-mode): Return to before tree-sitter setup is added, change to
	inherit from js-base-mode.
	(js-ts-mode): New mode.  Now it doesn't use any cc-mode feature,
	meaning it looses comment filling.

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Merge function/class-name features in python-mode

	To keep consistency with other tree-sitter major modes.

	* lisp/progmodes/python.el (python--treesit-settings)
	(python-ts-mode): Merge function-name and class-name features into
	definition.

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Split python-mode into native and tree-sitter variant

	* lisp/progmodes/python.el (python-base-mode): New virtual mode that
	contains most of the setup.
	(python-mode): Change to inherit from python-base-mode.
	(python-ts-mode): New mode that sets up tree-sitter.

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Expand css-ts-mode and merge it into css-mode

	* lisp/progmodes/css-ts-mode.el: Deleted.
	* lisp/textmodes/css-mode.el (css--treesit-indent-rules)
	(css--treesit-settings): New variables.
	(css--treesit-imenu-1)
	(css--treesit-imenu): New functions.
	* lisp/textmodes/css-mode.el (css-base-mode): New mode inherited by
	both css-mode and css-ts-mode.
	(css-ts-mode): New mode.
	(css-mode): Inherit from css-base-mode, and move some setup to
	css-base-mode.

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Change tree-sitter indent preset 'match' to count on all nodes

	I changed other presets to count all nodes a while ago, but forgot to
	change 'match' too.

	* lisp/treesit.el (treesit-simple-indent-presets): Change to count on
	both named and anonymous nodes.

2022-11-19  Eli Zaretskii  <eliz@gnu.org>

	Fix encoding and display of messages sent by server to emacsclient

	* lisp/server.el (server-start): Use 'locale-coding-system' to
	encode messages sent back to the client.

	* lib-src/emacsclient.c (main): Print '-error' messages via
	'message', not directly via 'fprintf'.  This shows the error on
	MS-Windows when the client is invoked as 'emacsclientw', since
	stderr goes to the bit bucket in that case.

2022-11-19  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Add BBDB test

	* test/lisp/net/eudc-tests.el (eudcb-ldap): Call skip-unless with
	slapd check.
	(eudcb-bbdb): New test.

2022-11-19  Gregory Heytings  <gregory@heytings.org>

	Fix global face scaling bug due to rounding.

	* lisp/face-remap.el (global-text-scale-adjust): Try again if the face
	height should have changed but did not actually change.  Update the
	docstring to clarify the difference with 'text-scale-adjust'.
	(global-text-scale-adjust--increment-factor): New internal variable.
	Fixes bug#59122.
	(text-scale-adjust): Update the docstring to clarify the difference
	with 'global-text-scale-adjust'.

2022-11-19  Brent Westbrook  <bwestbr2@go.olemiss.edu>

	EUDC: Fix a void-variable error

	* lisp/net/eudcb-mailabbrev.el (eudc-mailabbrev-query-internal):
	Check if symbol is bound before taking its value.  (Bug#59369)

2022-11-19  Philip Kaludercic  <philipk@posteo.net>

	* lisp/emacs-lisp/package.el (package-maintainers): Improve error handling

2022-11-19  Mattias Engdegård  <mattiase@acm.org>

	* Makefile.in: Escape literal asterisks in regexps

	Discovered by Po Lu.

2022-11-19  Po Lu  <luangruo@yahoo.com>

	Fix error trapping in x_set_mouse_color

	* src/xfns.c (x_set_mouse_color): Use
	x_uncatch_errors_after_check right after x_had_errors_p.  Then,
	trap errors around FreeCursor requests, since some of the IDs
	may not name valid cursors.

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Use keyword-face for declaration commands in tree-sitter sh-mode

	* lisp/progmodes/sh-script.el: Change builtin to keyword.

2022-11-19  Yuan Fu  <casouri@gmail.com>

	Fix python-mode tree-sitter fontification

	Forgot to update python-mode's code when I added the tree-sitter
	notifier facility.  Now it doesn't need any special treatment anymore.
	Leaving it as is causes some incorrect fontification.

	* lisp/progmodes/python.el (python--treesit-fontify-string): Accept
	the string node rather than the quote node.
	(python--treesit-settings): Capture string node.

2022-11-19  Po Lu  <luangruo@yahoo.com>

	Fixes to fast mouse position reporting

	* src/xterm.c (x_fast_mouse_position): New function.  Factor out
	most of the fast mouse position code here.  Correctly port some
	Haiku code to take into account multiple displays.  Report
	scroll bar coordinates correctly.
	(XTmouse_position): Call it.

2022-11-19  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Add LDAP tests

	* test/lisp/net/eudc-resources/slapd.conf: New file.
	* test/lisp/net/eudc-resources/dc=gnu,dc=org.ldif: Likewise.
	* test/lisp/net/eudc-resources/dc=gnu,dc=org: New files.
	* test/lisp/net/eudc-tests.el (eudcb-ldap): New test.

2022-11-19  Po Lu  <luangruo@yahoo.com>

	Fix automatic DPI adjustment and add workarounds for some systems

	* lisp/faces.el (x-create-frame-with-faces): New field
	`delayed-font'.  Set the `font-parameter' property to `font' in
	the given parameter list after face-set-after-frame-default is
	called.
	* src/fontset.c (Fset_fontset_font): Avoid changing
	`font-parameter' with the call to Fmodify_frame_parameters.
	* src/frame.c (gui_set_frame_parameters_1): New function.
	Factor out gui_set_frame_parameters here, and add an argument
	DEFAULT_PARAMETER.  If the `font' parameter is set, and
	`default_parameter' is not, then set the `font-parameter' frame
	parameter to the `font' parameter as well, to keep track of
	which user-specified `font' frame parameter set the default
	face's font on the frame.
	(gui_set_frame_parameters): Call gui_set_frame_parameters_1 with
	new arg set to false.
	(gui_set_font): Remove broken implementation of
	`font-parameter'.
	(gui_default_parameter): If the default value was used, then
	call gui_set_frame_parameters_1 with the new argument set to
	false.  This is because no font was specified as a frame
	parameter by the user, so Freconsider_frame_fonts is free to do
	anything it wants.
	(Freconsider_frame_fonts): If `font-parameter' is set, then use
	it.
	(syms_of_frame): New defsym Qfont_parameter.

	* src/frame.h: Update prototypes.

	* src/haikuterm.c (haiku_default_font_parameter):
	* src/pgtkfns.c (pgtk_default_font_parameter):
	* src/w32fns.c (w32_default_font_parameter): Stop setting
	`font-parameter' here.  This code resulted in decades of
	automatic font rescaling not working correctly.

	* src/xfaces.c (set_font_frame_param): Clear the
	`font-parameter' frame parameter.
	(Finternal_merge_in_global_face):
	* src/xfns.c (x_default_font_parameter): Avoid changing
	`font-parameter' in response to changes to face attributes.
	* src/xsettings.c (apply_xft_settings): Add workaround for
	Cairo.  (bug#59371, bug#59347, bug#59283, bug#59271, bug#59285,
	bug#59306.)

2022-11-18  Po Lu  <luangruo@yahoo.com>

	Fix bug#59371

	* src/frame.c (Freconsider_frame_fonts): If a font parameter was
	set, create a params alist with it.  Then, pass it to both
	default_font_parameter and face-set-after-frame-default.
	(bug#59371)

2022-11-18  Po Lu  <luangruo@yahoo.com>

	Fix earlier changes to keyboard.c

	* src/keyboard.c (coords_in_menu_bar_window): New function.
	(make_lispy_event): Do not process menu bar events on window
	system frames if there is no menu bar window or the click lies
	outside.

2022-11-18  Po Lu  <luangruo@yahoo.com>

	Fix build with ext menu bar

	* src/keyboard.c (make_lispy_event): Don't access
	menu_bar_window when !HAVE_EXT_MENU_BAR.

2022-11-18  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix click position to menu bar entry with no-toolkit

	* src/keyboard.c (make_lispy_event): Use x_y_to_hpos_vpos to
	compute correct menu bar position should the menu face change.
	* src/xdisp.c (x_y_to_hpos_vpos): Not static anymore.
	* src/dispextern.h: Export x_y_to_hpos_vpos.

2022-11-18  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Revert eudc-server-hotlist default change

	* etc/NEWS: Remove eudc-server-hotlist default change.
	* lisp/net/eudc-vars.el (eudc-server-hotlist): Set to nil.
	(Bug#59314)

2022-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree: Make sure a deleted overlay has NULL pointer fields

	* src/buffer.c (delete_all_overlays): Use POST_ORDER to set the node's
	pointers to NULL, as god intended.

	* src/itree.c (itree_insert_node): Uncomment the assertion accordingly.

2022-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/bytecomp.el (byte-compile-dynamic-variable-bind): Typo

2022-11-18  Robert Pluim  <rpluim@gmail.com>

	Improve 'defvar-keymap' docstring

	* etc/NEWS: Improve ':repeat' entry for 'defvar-keymap'.
	* lisp/keymap.el (defvar-keymap): Improve description of ':repeat'
	keyword.

2022-11-18  Robert Pluim  <rpluim@gmail.com>

	Silence rmailsum byte compiler warnings

	* lisp/mail/rmailsum.el (rmail-summary-by-thread): Prefix unused
	lambda args with '_'.

2022-11-18  Robert Pluim  <rpluim@gmail.com>

	Use boolean values directly in rmailsum

	* lisp/mail/rmailsum.el (rmail-summary-invert):
	(rmail-summary-direct-descendants):
	(rmail-summary--walk-thread-message-recursively):
	(rmail-summary-by-thread):
	(rmail-summary-by-labels):
	(rmail-summary-by-recipients):
	(rmail-summary-by-regexp):
	(rmail-summary-by-topic):
	(rmail-summary-by-senders): Use the boolean values in
	'rmail-summary-currently-displayed-msgs' and similar directly instead
	of comparing them to t and nil.

2022-11-18  Juanma Barranquero  <lekktu@gmail.com>

	Avoid `user-init-file' being set to an eln file (bug#59334)

	* lisp/startup.el (startup--load-user-init-file): If possible,
	point `user-init-file' to the source file if the init file was
	native-compiled.

2022-11-18  Mattias Engdegård  <mattiase@acm.org>

	Fix simple-tests when run noninteractively

	* test/lisp/simple-tests.el
	(simple-execute-extended-command--describe-binding-msg):
	Bind text-quoting-style explicitly to ensure consistent behavior
	whether or not the test is run interactively.

2022-11-18  Stefan Kangas  <stefankangas@gmail.com>

	Avoid raw control characters in grm-wy-boot.el

	* lisp/cedet/semantic/grm-wy-boot.el
	(semantic-grammar-wy--parse-table): Don't use raw control characters.

2022-11-18  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el (describe-repeat-maps): More outlines and page separators.

2022-11-17  Po Lu  <luangruo@yahoo.com>

	Add knob to make `mouse-position' faster on X

	* etc/PROBLEMS (Improving performance with slow X connections):
	Add new advice.
	* src/xterm.c (XTmouse_position): Add alternative
	implementations for slow connections.
	(syms_of_xterm): Add new variable to enable them.
	* src/xterm.h (struct x_display_info): Update commentary.

2022-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Get rid of the old iterator code

	Only use the new iterator which relies on a fixed size (and small)
	state in the iterator.
	This makes non-local exits safe within ITREE_FOREACH loops.

	* src/itree.c (make_nav, nav_nodeptr, nav_flag, itree_stack_clear)
	(itree_stack_push_flagged): Delete functions.
	(nodeptr_and_flag): Delete type.
	(struct itree_stack): Make the array hold plain pointers instead.
	(itree_stack_push): Inline the former code of `itree_stack_push_flagged`.
	(itree_stack_pop): Change return type.
	(itree_contains): Don't call `ITREE_FOREACH_ABORT` any more.
	(itree_insert_gap): Simplify access to the stack of nodes.
	(itree_delete_gap, itree_insert_gap): Adjust code to new return type of
	`itree_stack_pop`.
	(itree_iterator_finish): Delete function.
	(itree_iterator_start): Don't setup the `stack` field any more.
	(itree_iterator_next): Delete function.
	(itree_iter_next): Rename to `itree_iterator_next` and make it non-static.
	(itree_iterator_narrow): Don't check the `running` flag any more.

	* src/itree.h (itree_iterator_finish): Remove declaration.
	(struct itree_iterator): Remove the `stack` and `running` fields.
	(ITREE_FOREACH_ABORT): Delete macro.
	(ITREE_FOREACH): Don't call `itree_iterator_finish` any more.

	* src/xdisp.c (strings_with_newlines):
	* src/buffer.c (overlays_in, next_overlay_change, overlay_touches_p):
	Don't call `ITREE_FOREACH_ABORT` any more.

2022-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Make the iterator reentrant (bug#59183)

	Get rid of the global iterator object and instead allocate
	a separate iterator for every loop.  This still uses the "duplicate
	iterator" code, including the old iterator which needs a stack,
	make ITREE_FOREACH a bit more expensive than we'd like.

	* src/itree.h (init_itree, forget_itree, itree_iterator_busy_p):
	Delete declarations.
	(itree_iterator_start): Add iterator arg and remove `line` and `file` args.
	(struct itree_iterator): Move from `itree.c`.  Remove `line` and
	`file` fields.
	(ITREE_FOREACH): Stack allocate an iterator object and pass it to
	`itree_iterator_start`.

	* src/itree.c (struct itree_iterator): Move to itree.h.
	(iter): Delete global variable.
	(itree_iterator_create, init_itree, forget_itree, itree_iterator_busy_p):
	Delete functions.
	(itree_contains): Adjust assertion.
	(itree_iterator_finish): Deallocate the iterator's stack.
	(itree_iterator_start): Take the (uninitialized) iterator as argument.
	Allocate a fresh new stack.  Remove `file` and `line` arguments.
	Don't check `running` any more since the iterator is not expected to be
	initialized at all.

	* src/eval.c (signal_or_quit):
	* src/alloc.c (garbage_collect): Don't check `itree_iterator_busy_p`
	any more.

	* src/emacs.c (main): No need to `init_itree` any more.
	(Fdump_emacs): No need to `forget_itree` any more.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	* lisp/emacs-lisp/package-vc.el: Autoload package-vc-update{,-all}

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Ensure 'package-vc-prepare-patch' runs in the right directory

	* lisp/emacs-lisp/package-vc.el (package-vc-prepare-patch): Bind
	'default-directory'.p

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Avoid duplicate source packages in 'package-alist'

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Remove all
	other source packages before installing the new package description.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Fix issues related to 'package-vc-install-from-checkout'

	* lisp/emacs-lisp/package-vc.el (package-vc--main-file): Ensure the
	package name is a string.
	(package-vc--unpack-1): Use pkg-dir instead of the empty return value
	of 'package-lisp-dir'.
	(package-vc-install-from-checkout): Fix file name handling.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Allow the direct installation of package specifications

	* lisp/emacs-lisp/package-vc.el (package-vc-install): Handle package
	specifications as an argument.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Only fetch elpa-packages.eld when necessary

	* lisp/emacs-lisp/package-vc.el: Remove hook from
	'package-refresh-contents-hook'.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Remove duplicate package descriptions after updating

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Ensure there
	is always just one instance of a package description in 'package-alist'.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Remove temporary .texi files if used to build documentation

	* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
	Remember if a temporary file was generated and delete it afterwards.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Fix the behavior of 'byte-compile-ignore-files'

	* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Negate the
	'string-match-p' check.  (Bug#59139)

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Add missing elpa-package.eld to package test resources

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Avoid destructive manipulation of 'package-vc--archive-spec-alist'

	* lisp/emacs-lisp/package-vc.el (package-vc--desc->spec): Replace
	'mapcar' with 'apply'.  This is done to avoid unintentional cycles.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Improve robustness of 'package-vc-update'

	* lisp/emacs-lisp/package-vc.el (package-vc-update): Ensure that the
	command is only invoked with installed packages. that the hook is
	always removed and that 'vc-pull' is always called in the right
	directory.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	* lisp/vc/vc.el (vc-default-last-change): Use 'vc-call'

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Have 'vc-prepare-patch' handle prefix arguments.

	* lisp/emacs-lisp/package-vc.el (package-vc-prepare-patch): Use
	'vc-prepare-patch-prompt-revisions'.
	* lisp/vc/vc.el (vc-prepare-patch-prompt-revisions): Extract common
	function and handle prefix arguments.
	(vc-prepare-patch): Pull logic out to
	'vc-prepare-patch-prompt-revisions'.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Explain that 'package-vc-install' doesn't remove tarball packages

	* lisp/emacs-lisp/package-vc.el (package-vc-install): Expand documentation.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Mention package name when package is lacking VC data

	* lisp/emacs-lisp/package-vc.el (package-vc-install): Add package name.
	(package-vc-checkout): Add package name.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Add new command 'package-vc-update-all'

	* lisp/emacs-lisp/package-vc.el (package-vc-update-all): Add command
	(package-vc-update): Add an assertion to verify this.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Raise 'wrong-type-argument' when installing package nil

	* lisp/emacs-lisp/package-vc.el (package-vc-install): Check if the
	package is nil.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Have 'package-vc-selected-packages' consider all installed packages

	* lisp/emacs-lisp/package-vc.el
	(package-vc-install-selected-packages): Consider more than just one
	value in `package-alist', in case there are multiple installations.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Fix indefinite loading of asynchronous downloads

	* lisp/emacs-lisp/package.el (package--download-one-archive): Only add
	the archive that is actually being downloaded to
	'package--downloads-in-progress'.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Fix edebug spec for 'package--with-response-buffer'

	* lisp/emacs-lisp/package.el (package--with-response-buffer): Add a
	spec that makes the macro debuggable.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Improve robustness of documentation generation

	* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): Log
	output and display error messages if anything goes wrong.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Remove unused variable in 'package-vc--unpack'

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Remove 'url'.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Move package spec documentation to 'package-vc-selected-packages'

	* lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Add
	documentation.
	(package-vc--archive-spec-alist): Remove documentation.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Fix type error in package-vc prompt function

	* lisp/emacs-lisp/package-vc.el (package-vc--read-package-name):  Pass
	(not allow-url) as REQUIRE-MATCH, not as INITIAL-INPUT.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Rename 'package-vc-refresh' to 'package-vc-rebuild'

	* doc/emacs/package.texi (Fetching Package Sources): Update documentation.
	* lisp/emacs-lisp/package-vc.el (package-vc-refresh): Rename from.
	(package-vc-rebuild): Rename to.

	This intends to clarify the intention and avoid confusion with
	'package-refresh-contents'.  Thanks to Rudolf Adamkovič for the
	suggestion.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Track 'default-directory' while updating source packages

	* lisp/emacs-lisp/package-vc.el (package-vc-update): Add the source
	directory to the identifier list, in case the remaining
	'vc-do-command' arguments are all read-time constants.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Respect :lisp-dir in package specs by loading a sub-directory

	* lisp/emacs-lisp/package-vc.el (package-vc-repository-store): Remove
	obsolete variable.
	(package-vc--unpack-1): Respect :lisp-dir.
	(package-vc--unpack): Add :lisp-dir to the package description if
	necessary.
	* lisp/emacs-lisp/package.el (package--delete-directory): Check if a
	directory is a symbolic link.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Fix generation of documentation for source packages

	* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
	Call "makeinfo" before "install-info"

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Remove references to internal symbols from public docstrings

	* lisp/emacs-lisp/package-vc.el (package-vc-repository-store):
	Unmention 'package-vc--unpack'.
	(package-vc-install): Unmention 'package-vc--guess-backend' in favor
	of 'package-vc-heuristic-alist'.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Expand 'package-vc--unpack-1' documentation

	* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Explain what
	the function does.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Clarify 'package-vc--build-documentation' docstring

	* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
	Rewrite the first line.

	As suggested by Eli Zaretskii.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Fix the docstring for 'package-vc--version'

	* lisp/emacs-lisp/package-vc.el (package-vc--version): Replace
	docstring.

	It seems like this was just copied over from 'package-vc-commit', for
	no good reason.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Fix 'package-vc-selected-packages' documentation

	* lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Remove
	reference to non-existent function and add an explanation that the
	value won't override an existing source package installation.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Mark 'package-vc-update' as interactive

	* lisp/emacs-lisp/package-vc.el (package-vc--sourced-packages-list):
	Remove function in favor of 'package-vc--read-package-name'.
	(package-vc--read-package-name):
	Extract out common functionality.
	(package-vc--read-package-desc): Add auxiliary function based on
	'package-vc--read-package-name'.
	(package-vc-update): Add interactive spec using
	'package-vc--read-package-desc'.
	(package-vc-install): Use 'package-vc--read-package-desc'.
	(package-vc-checkout): Use 'package-vc--read-package-desc'.
	(package-vc--read-pkg): Remove in favor of 'package-vc--read-package-desc'.
	(package-vc-refresh): Use 'package-vc--read-package-desc'.
	(package-vc-prepare-patch): Use 'package-vc--read-package-desc'.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Autoload 'package-vc-install-selected-packages'

	* lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Add an
	autoload cookie.
	(package-vc-selected-packages): Set
	:initialize to 'custom-initialize-default'.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Mark 'package-vc-install-selected-packages' as interactive

	* lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Add an
	interactive spec.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Rename '-ensure-packages' to -install-selected-packages'

	* doc/emacs/package.texi (Fetching Package Sources): Rename instances.
	* lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Rename
	to 'package-vc-install-selected-packages'.
	(package-vc-selected-packages): Call renamed function.

2022-11-17  Philip Kaludercic  <philipk@posteo.net>

	Handle strings as keys in 'package-vc-ensure-packages'

	* lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Inter
	string keys while processing 'package-vc-selected-packages'.

	As requested by Rudolf Adamkovič.

2022-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Avoid raw control characters in two files

	* lisp/net/rcirc.el (rcirc-format, rcirc-unformat)
	(rcirc-format-bold, rcirc-format-italic, rcirc-format-underline)
	(rcirc-format-strike-trough, rcirc-format-fixed-width):
	* test/lisp/subr-tests.el (test-keymap-parse-macros): Don't use
	raw control characters.

2022-11-17  Randy Taylor  <dev@rjt.dev>

	Utilize new font-lock faces for C/C++ and Python tree-sitter use

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use new
	escape, number, property, operator, bracket, and delimiter font-lock
	faces.
	(c-ts-mode--base-mode): Add them to the feature list.
	(c-ts-mode): Fix typo.
	* lisp/progmodes/python.el (python--treesit-settings): Use new number,
	property, operator, bracket, and delimiter font-lock faces.
	(python-mode): Add them to the feature list.

2022-11-17  Yuan Fu  <casouri@gmail.com>

	Improvements to the tree-sitter setup in sh-script.el

	* lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Add defvar.
	(sh-mode): Change feature names.
	(sh-mode--treesit-fontify-decl-command): Remove function.
	(sh-mode--treesit-declaration-commands): New variable.
	(sh-mode--treesit-settings): Change feature names.  Simplify
	declaration-command feature.

2022-11-17  João P. L. de Carvalho  <jaopaulolc@gmail.com>

	Initial fontification in sh-mode with tree-sitter

	* lisp/progmodes/sh-script.el (sh-mode): Add tree-sitter setup.  Move
	setup of font-lock-defaults into branch.
	(sh-mode--treesit-operators)
	(sh-mode--treesit-keywords)
	(sh-mode--treesit-settings): New variables.
	(sh-mode--treesit-other-keywords)
	(sh-mode--treesit-fontify-decl-command): New functions.

2022-11-17  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el (describe-repeat-maps): Use fill-region-as-paragraph.

2022-11-17  John Wiegley  <johnw@newartisans.com>

	Merge pull request from skangas/package-requires

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1024

2022-11-17  Robert Pluim  <rpluim@gmail.com>

	Use mapc instead of mapcar when walking rmail threads

	* lisp/mail/rmailsum.el (rmail-summary--walk-thread-message-recursively):
	Use `mapc' instead of `mapcar'; we don't care about the results.

2022-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Add new "stateless" iterator code and post-order traversal

	This still uses the old iterator code, but runs the new code
	alongside to make sure they behave identically.

	* src/itree.c (struct itree_iterator): New field `node`.
	(itree_iterator_create): Give it a sane default value.
	(itree_iterator_busy_p, itree_iterator_start, itree_iterator_finish):
	Move down to the "iterator" section of the file.
	(itree_iter_next_in_subtree, itree_iterator_first_node)
	(itree_iter_next): New functions.
	(itree_iterator_start): Initialize the new `node` field.
	(itree_iterator_next): Add post-order case.
	Call the new "stateless" `itree_iter_next` function and check that it
	agrees.

	* src/itree.h (enum itree_order): New value for post-order traversals.

2022-11-17  Andrea Monaco  <andrea.monaco@autistici.org>

	New Rmail summary "by thread"

	* lisp/mail/rmailsum.el (rmail-summary-subjects-hash-table)
	(rmail-summary-message-parents-vector)
	(rmail-summary-message-ids-hash-table): New variables.
	(rmail-summary-fill-message-ids-hash-table)
	(rmail-summary--split-header-field)
	(rmail-summary-fill-message-parents-vector)
	(rmail-summary-direct-descendants)
	(rmail-summary--walk-thread-message-recursively)
	(rmail-summary-by-thread): New functions.

	* etc/NEWS: Announce the new Rmail features.

2022-11-17  Andrea Monaco  <andrea.monaco@autistici.org>

	Improve progressive summaries in Rmail

	* lisp/mail/rmailsum.el (rmail-summary-progressively-narrow):
	Renamed from 'rmail-summary-apply-filters-consecutively'.  Doc
	fix.
	(rmail-summary-invert): Renamed from 'rmail-summary-negate'.  Doc
	fix.
	(rmail-summary-currently-displayed-msgs): Doc fix.
	(rmail-summary--exists-1): New function.
	(rmail-summary-by-labels, rmail-summary-by-recipients)
	(rmail-summary-by-regexp, rmail-summary-by-topic)
	(rmail-summary-by-senders): Call 'rmail-summary-exists' to verify
	that the summary is usable.

2022-11-17  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of recent treesit changes

	* src/treesit.c (Ftreesit_parser_notifiers)
	(Ftreesit_parser_add_notifier, Ftreesit_parser_remove_notifier):
	Doc string fixes.

	* doc/lispref/parsing.texi (Accessing Node Information): Fix
	wording and punctuation.
	(Using Parser): Improve indexing and wording.

2022-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Add package keyword from finder-known-keywords

	Fix Package-Requires for bind-{chord,key}.el

2022-11-17  Alan Mackenzie  <acm@muc.de>

	CC Mode: Make implicit int types following specifiers fontify correctly

	This fixes bug #59267.  It applies to C Mode only, and refers to constructs
	like "register count;" which are implicitly of int type.

	* lisp/progmodes/cc-engine.el (c-forward-type): Use the new regexp
	c-maybe-typeless-specifier-re in place of c-opt-type-modifier-prefix-key.  Add
	an extra arm to the main cond form to handle the construct, and another to
	handle "extern "C" foo_t my_foo;".
	(c-forward-decl-or-cast-1): Adapt to handle the result no-id from
	c-forward-type.

	* lisp/progmodes/cc-langs.el (c-maybe-typeless-specifier-re): New lang
	const/var.

2022-11-17  Jan Stranik  <jan@stranik.org>

	Support multi-line C++11 strings in Ebrowse

	* lib-src/ebrowse.c (yylex): Support C++11 multi-line strings.
	(bug#58847)

2022-11-17  Laurence Warne  <laurencewarne@gmail.com>

	Make VSIZE and RSS human-readable in Proced buffers

	* lisp/proced.el (proced-format-memory): New function.
	(proced-grammar-alist): Use proced-format-memory to format
	VSIZE and RSS.  (Bug#59272)

2022-11-17  Eli Zaretskii  <eliz@gnu.org>

	* lisp/progmodes/eglot.el (eglot-server-programs): Remove Intelephense.

2022-11-17  USAMI Kenta  <zonuexe+tadsan@zonu.me>

	Add Eglot alternatives for PHP language servers

	* lisp/progmodes/eglot.el (eglot-server-programs): Add alternatives
	for PHP.

2022-11-17  Olivier Certner  <olce.emacs@certner.fr>

	ediff: Merges with ancestor: Fix computation of hunks and proposed merge

	Hunks were not computed correctly because the diff3 command was
	invoked with arguments in an incorrect order.  The correct order is
	the local file first, the base (or "ancestor") second and the other
	file third.  This erroneous behavior had two consequences.  First, the
	output of diff3 would change, since it tries to merge chunks according
	to maximal matches between the second and first files, and the second
	and third files.  Second, ediff, more precisely, `ediff-do-merge',
	would consequently try to merge the reverse of the changes from the
	base to the other file.

	* lisp/vc/ediff-diff.el (ediff-setup-diff-regions3): In the arguments
	to `ediff-exec-process', swap the other file with the ancestor (only
	when merging with an ancestor).

	(ediff-extract-diffs3): Match the hunk data for the ancestor and the
	other file correctly.  The local variable `three-way-comp' indicates
	this is a merge with ancestors when it is nil.

	(Bug#59182)

2022-11-17  Brian Leung  <leungbk@posteo.net>

	shell: Add repeat-map for shell-{forward,backward}-prompt

	* lisp/shell.el (shell-repeat-map): New defvar.  (Bug#59144)

2022-11-17  Brian Leung  <leungbk@posteo.net>

	esh-mode: Add repeat-map for eshell-{forward,backward}-argument

	* lisp/eshell/esh-mode.el (eshell-command-repeat-map): New defvar.
	(Bug#59144)

2022-11-17  Brian Leung  <leungbk@posteo.net>

	em-prompt: Add repeat-map for eshell-{next,previous}-prompt

	* lisp/eshell/em-prompt.el (eshell-prompt-repeat-map): New keymap.
	(Bug#59144)

2022-11-17  Brian Leung  <leungbk@posteo.net>

	comint: Add repeat-map for comint-{next,previous}-prompt

	* lisp/comint.el (comint-repeat-map): New keymap.  (Bug#59144)

2022-11-17  Eli Zaretskii  <eliz@gnu.org>

	Fix display of mode line when the right divider is used

	* src/xdisp.c (init_iterator): For the mode-line, adjust
	last_visible_x due to the right divider and the 'box' attribute,
	if any, of the mode-line face.
	(display_min_width): Update current_x after producing the stretch
	glyph, to mimic PRODUCE_GLYPHS.
	(display_mode_line): Widen the last glyph to account for adding
	the right box line to it.  (Bug#5930)

2022-11-17  Juanma Barranquero  <lekktu@gmail.com>

	* lisp/emacs-lisp/shortdoc.el (sequence): Don't use cl-lib (bug#59319)

2022-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	0636e1066b ; Don't unnecessarily use non-ASCII characters in Texinfo

	# Conflicts:
	#	doc/emacs/custom.texi

2022-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in window.el

	* lisp/window.el (other-window-repeat-map)
	(resize-window-repeat-map): Prefer defvar-keymap.

2022-11-17  Juri Linkov  <juri@linkov.net>

	* lisp/keymap.el (defvar-keymap): Don't use pcase.

2022-11-17  Juri Linkov  <juri@linkov.net>

	* lisp/keymap.el (defvar-keymap): Add support for repeat-mode.

	Put symbol properties 'repeat-map' on commands from the keymap
	when a ':repeat' keyword is non-nil.  Also include/exclude commands
	according to ':repeat (:enter (commands ...) :exit (commands ...))'.
	https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg00968.html

2022-11-17  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el (describe-repeat-maps): Improve the output.

	Print the table of keybindings and a list of commands that
	enter and exit repeat-map.  Use default outline headings.
	https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg00969.html

2022-11-17  Po Lu  <luangruo@yahoo.com>

	Fix treatment of input focus on MPX setups

	* src/xterm.c (x_ewmh_activate_frame): Use x_set_input_focus
	instead of XSetInputFocus.
	(x_set_input_focus): New function.  Take into account the
	``client pointer'' chosen by Emacs.
	(x_focus_frame): Use x_set_input_focus instead of
	XSetInputFocus.

2022-11-17  F. Jason Park  <jp@neverwas.me>

	Improve new connections in erc-handle-irc-url

	* doc/misc/erc.texi: Add new Integrations section to the info manual
	under Advanced Usage.
	* etc/ERC-NEWS: Add new section mentioning improved UX when clicking
	on irc:// links.

	* lisp/erc/erc.el (erc-handle-irc-url): Add optional "scheme"
	parameter.  Fix `erc-open' invocation so that the server buffer is
	named correctly by deferring to a new customizable opener.  Arrange
	for JOINing a channel in a manner similar to ERC's autojoin module.
	(erc-url-connect-function): Add new option for creating a new ERC
	connection based on info parsed from a URL.
	(erc--url-default-connect-function): New function to serve as an
	interactive-only fallback when a user hasn't specified a URL connect
	function.
	* lisp/erc/erc-compat.el (erc-compat--29-browse-url--irc): Add new
	compatibility function for `browse-url-irc' and include it in
	`browse-url-default-handlers' on Emacs versions below 29.

	* test/lisp/erc/erc-tests.el (erc-tests--make-server-buf,
	erc-tests--make-client-buf): Add helpers for creating dummy ERC
	buffers.
	(erc-handle-irc-url): Add test.
	* test/lisp/erc/erc-scenarios-misc.el (erc-scenarios-handle-irc-url):
	Add new test.
	* test/lisp/erc/resources/join/legacy/foonet.eld: Relax
	timeout.  (Bug#56514.)

2022-11-17  F. Jason Park  <jp@neverwas.me>

	Add optional server param to erc-networks--determine

	* lisp/erc/erc-networks.el (erc-networks--determine): Accept optional
	`server' argument.
	* test/lisp/erc/erc-networks-tests.el (erc-networks--determine): Add
	test.  (Bug#56514.)

2022-11-17  F. Jason Park  <jp@neverwas.me>

	Default to TLS port when calling erc-tls from lisp

	* lisp/erc/erc.el (erc-normalize-port): Add standard IANA port-name
	mappings for 6667 and 6697.
	(erc-open): Add note to doc string explaining that params `connect'
	and `channel' are mutually exclusive.
	(erc-tls): Call `erc-compute-port' with override.
	(erc-compute-port): Call `erc-normalize-port' with result'.
	* test/lisp/erc/erc-tests.el (erc-tls): Add simplistic test focusing
	on default parameters.  (Bug#56514.)

2022-11-17  F. Jason Park  <jp@neverwas.me>

	Refactor erc-select-read-args

	* lisp/erc/erc-backend.el (erc--server-connect-dumb-ipv6-regexp): Add
	liberal pattern for matching bracketed IPv6 addresses.
	(erc-server-connect): Remove brackets from IPv6 hosts before
	connecting.
	* lisp/erc/erc.el (erc--ensure-url): Add compat adapter to massage
	partial URLs given as input that may be missing the scheme:// portion.
	(erc-select-read-args): Keep bracketed IPv6 hosts
	intact.  Make this function fully URL-aware (was only partially so).
	Accept optional `input' argument.
	* lisp/erc/erc-tests.el (erc-tests--ipv6-examples,
	erc--server-connect-dumb-ipv6-regexp, erc-select-read-args): Add test
	reading user input during interactive invocations of entry points.
	(Bug#56514.)

2022-11-17  F. Jason Park  <jp@neverwas.me>

	Accommodate ircs:// URLs in url-irc and browse-url

	* lisp/url/url-irc.el (url-irc-function): Change signature of function
	interface to expect a final "scheme" argument, such as "ircs".
	(url-irc): Call `url-irc-function' with new positional argument, the
	scheme extracted via `url-type' from the input URL.
	(url-irc-erc, url-irc-rcirc, url-irc-zenirc): Accept a URL scheme as a
	sixth positional arg.
	(url-ircs-default-port, url-ircs): Add new autoloaded constant and
	alias for `url-scheme-get-property' to recognize.  Do this to avoid
	having to add another file.
	* lisp/net/browse-url.el (browse-url-irc-function): Add new option.
	(browse-url--irc): Add new function to call `browse-url-irc-function'.
	(browse-url-default-handlers): Add "irc://" entry.
	(browse-url-irc): Add new function to serve as general handler for
	"irc://" URLS.  Accept trailing variadic args to accommodate
	non-browse-url interfaces as well.
	* test/lisp/net/browse-url-tests.el
	(browse-url-tests-select-handler-irc): Add test for "irc://" URL
	pattern.
	* etc/NEWS: Mention select browse-url and url-irc
	changes.  (Bug#56514.)

2022-11-17  F. Jason Park  <jp@neverwas.me>

	Warn of future breaking change to erc-response.tags

	* lisp/erc/erc-backend.el (erc-parse-tags-format): New option to
	determine type of the `erc-response' "tags" field.
	(erc-parse-tags): Defer to internal generic function.
	(erc--parse-tags): New function to hold original `erc-parse-tags'
	implementation.
	(erc--parse-message-tags): New generic function that conditionally
	calls `erc--parse-tags', perhaps emitting a warning beforehand.
	(erc-parse-server-response): Call `erc--parse-message-tags'.
	(Bug#58797.)

2022-11-17  F. Jason Park  <jp@neverwas.me>

	Improve auto-reconnect visibility in ERC

	* lisp/erc/erc-backend.el (erc--server-reconnect-timer): New variable.
	(erc-server-reconnect-function): New user option.
	(erc-process-sentinel-2): Display time remaining until next
	reconnection attempt.  Also remove condition case and move bulk of
	else condition logic to `erc-schedule-reconnect'.  More importantly,
	no longer set `erc--server-reconnecting here').
	(erc-server-connect): Initialize `erc--server-reconnect-timer' to nil.
	(erc-server-reconnect): Set `erc-server--reconnecting' here.
	(erc--mode-line-process-reconnecting): New constant to store value for
	"reconnect" state of `mode-line-process'.
	(erc--cancel-auto-reconnect-timer): New function to cancel
	auto-reconnect timer and print message.
	(erc-schedule-reconnect): New function for scheduling another
	reconnect attempt.

	* lisp/erc/erc.el (erc-open): Only update mode line for target
	buffers. For server buffers, let `erc-login' and/or process sentinels
	take care of it.
	(erc--cmd-reconnect, erc-cmd-RECONNECT): Rename latter to former, a
	new function, but repurpose existing to recognize newly allowed
	additional arguments and act accordingly.  In new internal function,
	cancel an existing auto-reconnect timer, if any, before proceeding.
	Defer to `erc-server-reconnect' to set `erc--server-reconnecting'.
	Fix `with-suppressed-warnings' form.
	(erc-update-mode-line-buffer): Show "reconnecting in Ns" for
	`mode-line-process' when awaiting an automatic reconnect attempt.
	(erc-message-english-reconnecting,
	erc-message-english-reconnect-canceled): Add new message functions to
	English catalog.

	* lisp/erc/erc-pcomplete.el (pcomplete/erc-mode/RECONNECT): Perform
	completion for newly subcommand-aware `erc-cmd-RECONNECT'.

	* lisp/erc/erc-scenarios-base-reconnect.el
	(erc-scenarios-base-cancel-reconnect): Add new test case for canceling
	reconnect timers.  (Bug#58840.)

2022-11-17  F. Jason Park  <jp@neverwas.me>

	Support auth-source-pass in ERC

	* doc/misc/erc.texi: Mention that the auth-source-pass backend is
	supported.
	* lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search,
	erc-compat--29-auth-source-pass--build-result-many,
	erc-compat--29-auth-source-pass--retrieve-parsed,
	erc-compat--29-auth-source-pass-backend-parse,
	erc-compat--auth-source-backend-parser-functions): Adapt some yet
	unreleased functions from auth-source-pass that mimic the netrc
	backend, and add forward declarations to support them.

	* lisp/erc/erc.el (erc--auth-source-search): Use own auth-source-pass
	erc-compat backend.
	* test/lisp/erc/erc-services-tests.el
	(erc-join-tests--auth-source-pass-entries): Remove useless items.
	(erc--auth-source-search--pass-standard,
	erc--auth-source-search--pass-announced,
	erc--auth-source-search--pass-overrides): Remove `ert-skip' guard.
	(Bug#58985.)

2022-11-17  F. Jason Park  <jp@neverwas.me>

	Make auth-source-pass behave more like other backends

	* lisp/auth-source-pass.el (auth-source-pass-extra-query-keywords): Add
	new option to bring search behavior more in line with other backends.
	(auth-source-pass-search): Add new keyword params `max' and `require'
	and consider new option `auth-source-pass-extra-query-keywords' for
	dispatch.
	(auth-source-pass--match-regexp, auth-source-pass--retrieve-parsed,
	auth-source-pass--match-parts): Add supporting variable and helpers.
	(auth-source-pass--build-result-many,
	auth-source-pass--find-match-many): Add "-many" variants for existing
	workhorse functions.
	* test/lisp/auth-source-pass-tests.el: Require `ert-x'.
	(auth-source-pass-can-start-from-auth-source-search): Ensure
	`auth-source-pass-extra-query-keywords' is enabled around test body.
	(auth-source-pass-extra-query-keywords--wild-port-miss-netrc,
	auth-source-pass-extra-query-keywords--wild-port-miss,
	auth-source-pass-extra-query-keywords--wild-port-hit-netrc,
	auth-source-pass-extra-query-keywords--wild-port-hit,
	auth-source-pass-extra-query-keywords--wild-port-req-miss-netrc,
	auth-source-pass-extra-query-keywords--wild-port-req-miss,
	auth-source-pass-extra-query-keywords--netrc-akib,
	auth-source-pass-extra-query-keywords--akib,
	auth-source-pass-extra-query-keywords--netrc-host,
	auth-source-pass-extra-query-keywords--host,
	auth-source-pass-extra-query-keywords--baseline,
	auth-source-pass-extra-query-keywords--port-type,
	auth-source-pass-extra-query-keywords--hosts-first,
	auth-source-pass-extra-query-keywords--ambiguous-user-host,
	auth-source-pass-extra-query-keywords--suffixed-user,
	auth-source-pass-extra-query-keywords--user-priorities): Add
	juxtaposed netrc and extra-query-keywords pairs to demo optional
	extra-compliant behavior.
	* doc/misc/auth.texi: Add option
	`auth-source-pass-extra-query-keywords' to auth-source-pass section.
	* etc/NEWS: Mention `auth-source-pass-extra-query-keywords' in Emacs
	29.1 package changes section.  (Bug#58985.)

	Special thanks to Akib Azmain Turja <akib@disroot.org> for helping
	improve this patch.

2022-11-17  Jim Porter  <jporterbugs@gmail.com>

	Enable/disable 'server-mode' when starting/stopping the server

	* lisp/server.el (server-mode-map): New keymap...
	(server-mode): ... use it.
	(server-start): Update the 'server-mode' variable (and sync to
	'global-minor-modes') when starting/stopping the server.

	* test/lisp/server-tests.el: New file (bug#58909).

2022-11-16  Karl Fogel  <kfogel@red-bean.com>

	Fix two typos in a doc string

2022-11-16  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Fix eudc-capf-message-expand-name nil result

	* lisp/net/eudc-capf.el (eudc-capf-message-expand-name): Return
	nil if EUDC query returns no results.  (Bug#59314)

2022-11-16  Yuan Fu  <casouri@gmail.com>

	Fix treesit-search-forward not matching leaf nodes

	* src/treesit.c: Match against NODE at start of the loop.

2022-11-16  Yuan Fu  <casouri@gmail.com>

	Tweaks on c-ts-mode fontification rules

	Changes:
	1. Remove some :override flags
	2. Fontify "!" in font-lock-negation-char-face
	3. Use some new faces like font-lock-escape-face and
	   font-lock-property-face
	4. Move all type fontification into 'type' feature.  Previously some
	   are in 'definition' feature.
	5. Simplify definition feature, and fontify identifiers in definitions
	   recursively.
	6. Change 'statement' feature to 'label'
	7. New feature 'assignment'
	8. Remove some rules from 'expression' feature

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): See
	above.
	(c-ts-mode--fontify-declarator): New function.
	(c-ts-mode): Update feature-list.

2022-11-16  Yuan Fu  <casouri@gmail.com>

	Fix c-ts-mode-imenu

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu-1): If cannot find
	its name, ignore the node.
	(c-ts-mode--imenu): Don't include a category if it's empty.

2022-11-16  Yuan Fu  <casouri@gmail.com>

	Allow checking for outdated nodes in tree-sitter

	Now you can run (treesit-node-check node 'outdated).

	* doc/lispref/parsing.texi (Accessing Node Information): Update
	manual.
	* src/treesit.c (Ftreesit_node_check): Add new property 'outdated'.
	* test/src/treesit-tests.el (treesit-node-check): Add tests.

2022-11-16  Yuan Fu  <casouri@gmail.com>

	Add treesit-explore-mode

	This mode is basically the tree-sitter playground[1] in Emacs:
	displays the syntax tree with the source side-by-side, kept in sync in
	real-time.

	[1] https://tree-sitter.github.io/tree-sitter/playground

	* doc/lispref/parsing.texi (Language Definitions): Mention in manual.
	* lisp/treesit.el (treesit--explorer-buffer)
	(treesit--explorer-source-buffer)
	(treesit--explorer-language)
	(treesit--explorer-refresh-timer)
	(treesit--explorer-highlight-overlay)
	(treesit--explorer-last-node): New variables.
	* lisp/treesit.el (treesit--explorer--nodes-to-highlight)
	(treesit--explorer-refresh)
	(treesit--explorer-post-command)
	(treesit--explorer-jump)
	(treesit--explorer-highlight-node)
	(treesit--explorer-draw-node): New functions.
	(treesit--explorer-tree-mode)
	(treesit-explore-mode): New modes.

2022-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/itree.c: Use more uniform names starting with `itree_`

	(struct itree_stack, itree_stack_create, itree_stack_destroy)
	(itree_stack_clear, itree_stack_push_flagged, interval_stack_push)
	(itree_stack_pop): Rename from `interval_stack*`.
	(itree_max_height, itree_update_limit, itree_inherit_offset)
	(itree_propagate_limit, itree_validate, itree_init)
	(itree_rotate_left, itree_rotate_right, itree_insert_fix)
	(itree_contains, itree_subtree_min, itree_remove_fix)
	(itree_replace_child, itree_transplant): Rename from `interval_tree_*`.
	(itree_insert_node): Rename from `interval_tree_insert`.
	(itree_node_intersects): Rename from `interval_node_insert`.

2022-11-16  John Wiegley  <johnw@newartisans.com>

	Merge pull request from skangas/dir-locals

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1023

2022-11-16  John Wiegley  <johnw@newartisans.com>

	Merge pull request from skangas/fix-headers

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1022

2022-11-16  Stephen Leake  <stephen_leake@stephe-leake.org>

	Call xref--analyze with correct project

	* lisp/progmodes/xref.el (xref-show-definitions-buffer-at-bottom):
	Call xref--analyze with correct project.

2022-11-16  Stefan Kangas  <stefankangas@gmail.com>

	Add .dir-locals.el

2022-11-16  Gabriel do Nascimento Ribeiro  <gabriel376@hotmail.com>

	Add flat-button to docstring of 'set-face-attribute'

	* lisp/faces.el (set-face-attribute): Add 'flat-button' to
	COLOR and STYLE sections of docstring.  (Bug#59266)

2022-11-16  Eli Zaretskii  <eliz@gnu.org>

	Reduce buffer-tests noisiness even more

	* test/src/buffer-tests.el (test-kill-buffer-auto-save-default)
	(test-kill-buffer-auto-save-delete-yes)
	(test-kill-buffer-auto-save-delete-no)
	(test-buffer-modifications, test-restore-buffer-modified-p): Shut
	up auto-save messages.  (Bug#59028)

2022-11-16  Matt Armstrong  <matt@rfc20.org>

	Reduce buffer-tests noisiness when run in batch mode.

	* test/src/buffer-tests.el (overlay-modification-hooks): Remove noisy
	`message' calls and use `ert-info' to log context of test
	failures.  (bug#59028)
	(overlay-tests-start-recording-modification-hooks): ditto.

2022-11-16  Philip Kaludercic  <philipk@posteo.net>

	Set vc-prepare-patches-separately to nil in .dir-locals.el

	* .dir-locals.el (c-mode): Set 'vc-prepare-patches-separately'.

	See https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg00973.html.

2022-11-16  Stefan Kangas  <stefankangas@gmail.com>

	Delete redundant headers

	Normalize GPLv3 license statements

2022-11-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	56026242e4 Explain how to bind keys to non-ASCII sequences
	7d592db0ab Document that 'transient-mark-mode' is off in batch mode

	# Conflicts:
	#	doc/emacs/custom.texi
	#	doc/emacs/mark.texi

2022-11-15  Po Lu  <luangruo@yahoo.com>

	Fix calculation of tab bar lines during automatic height adjustment

	* src/haikufns.c (haiku_change_tab_bar_height):
	* src/nsfns.m (ns_change_tab_bar_height):
	* src/pgtkfns.c (pgtk_change_tab_bar_height):
	* src/w32fns.c (w32_change_tab_bar_height):
	* src/xfns.c (x_change_tab_bar_height): Do not round tab bar
	height up.  (bug#59285, bug#59271)

2022-11-15  Po Lu  <luangruo@yahoo.com>

	Fix error trapping in x_focus_frame

	* src/xterm.c (x_focus_frame): Improve commentary.  Dno not trap
	errors around x_get_server_time.

2022-11-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jwiegley/revert-1019-johnw/multi-keymap

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1021

2022-11-15  John Wiegley  <johnw@newartisans.com>

	Revert "Allow multiple keymaps in :map argument"

2022-11-15  Juri Linkov  <juri@linkov.net>

	New command 'project-list-buffers' bound to 'C-x p C-b' (bug#59153)

	* doc/emacs/maintaining.texi (Project Buffer Commands):
	Add 'project-list-buffers'.

	* lisp/buff-menu.el (Buffer-menu-filter-predicate): New defvar-local.
	(list-buffers-noselect): Add new optional arg 'filter-predicate'.
	Set 'Buffer-menu-filter-predicate' to 'filter-predicate'.
	(list-buffers--refresh): Use 'Buffer-menu-filter-predicate'.

	* lisp/progmodes/project.el (project-prefix-map): Bind "\C-b" to
	'project-list-buffers'.
	(project-list-buffers): New command.

2022-11-15  Yuan Fu  <casouri@gmail.com>

	Add emacs-devel-specific font-lock rules to c-ts-mode

	This rule corrects the fontification for DEFUN macros.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
	Additional font-lock rules.
	(c-ts-mode--fontify-defun): New function.

2022-11-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jwiegley/johnw/multi-keymap

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1019

2022-11-15  John Wiegley  <johnw@newartisans.com>

	Merge remote-tracking branch 'origin/master' into pr-830

2022-11-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from skangas/texinfo-wip

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1018

2022-11-15  John Wiegley  <johnw@newartisans.com>

	Merge branch 'master' into texinfo-wip

2022-11-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from skangas/gnu-elpa

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1017

2022-11-15  Eli Zaretskii  <eliz@gnu.org>

	Fix the MS-Windows build due to use of a new TS function

	* src/treesit.c (ts_tree_get_changed_ranges) [WINDOWSNT]: Define,
	load from the library, and call through a function pointer.

2022-11-15  Po Lu  <luangruo@yahoo.com>

	Fix last change again

	* src/frame.c (Freconsider_frame_fonts): Apply value of default
	face again.  (bug#59283)

2022-11-15  Po Lu  <luangruo@yahoo.com>

	More fixes to last change

	* lisp/dynamic-setting.el (font-setting-change-default-font):
	Call `reconsider-frame-fonts'.
	* src/frame.c (Freconsider_frame_fonts): New function.
	(syms_of_frame): Add new function.

2022-11-15  Po Lu  <luangruo@yahoo.com>

	Fix recent Cairo xsettings changes

	* lisp/dynamic-setting.el (font-setting-change-default-font):
	Instead of setting the font frame parameter, just clear the font
	and face cache and redraw the display.  This will re-open all
	fonts as well.
	* src/ftcrfont.c (ftcrfont_get_default_font_options): New
	function.
	* src/ftfont.h: Export.
	* src/xsettings.c (apply_xft_settings): Call that function to
	obtain the default font settings on Cairo.  (bug#58912,
	bug#59283, bug#59271)

2022-11-15  Yuan Fu  <casouri@gmail.com>

	Make tree-sitter fontification automatically update

	Now nodes that are affected and changed during re-parse will be
	correctly refontified.  Nodes can change even if it corresponding text
	wasn't edited: additional text can complete the parse tree and resolve
	error nodes, for example.

	* lisp/progmodes/python.el (python-mode): Create Python parser before
	calling treesit-major-mode-setup.
	* lisp/treesit.el (treesit--font-lock-notifier): New function.
	(treesit-major-mode-setup): Register fontifier with every existing
	parser.

2022-11-15  Yuan Fu  <casouri@gmail.com>

	Remove the contextual hack in tree-sitter fontification

	We now have a better facility that can replace the contextual
	hack. The C part is in the previous commit, and the Lisp part work
	will be in the next commit.

	* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
	* lisp/progmodes/js.el (js--treesit-font-lock-settings)
	* lisp/progmodes/python.el (python--treesit-settings)
	* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Stop marking
	contextual nodes.
	* lisp/treesit.el (treesit-font-lock-contextual-post-process): Remove
	function.
	(treesit-font-lock-fontify-region): Remove code processing contextual
	nodes.

2022-11-15  Yuan Fu  <casouri@gmail.com>

	Allow tree-sitter to notify parse-tree changes

	* src/treesit.c (treesit_call_after_change_functions): New function.
	(treesit_ensure_parsed): Call treesit_call_after_change_functions
	right after re-parse.
	(make_treesit_parser): Initialize after_change_functions.
	(Ftreesit_parser_notifiers)
	(Ftreesit_parser_add_notifier)
	(Ftreesit_parser_remove_notifier): New functions.
	* src/treesit.h (Lisp_TS_Parser): New field after_change_functions.

2022-11-15  Stefan Kangas  <stefankangas@gmail.com>

	Fix makeinfo warnings

	Resolves https://github.com/jwiegley/use-package/issues/962

2022-11-15  Yuan Fu  <casouri@gmail.com>

	Extract out treesit_make_ranges

	* src/treesit.c (treesit_make_ranges): New function.
	(Ftreesit_parser_included_ranges): Use treesit_make_ranges.

2022-11-15  Stefan Kangas  <stefankangas@gmail.com>

	Use two spaces to end sentences

	Recommend GNU ELPA over MELPA

2022-11-15  Stefan Kangas  <stefankangas@gmail.com>

	Use substitute-command-keys for buffer-menu help

	* lisp/buff-menu.el (buffer-menu--display-help): New function.
	(buffer-menu, buffer-menu-other-window): Fontify key bindings
	using substitute-command-keys.
	(Buffer-menu-delete): Advertise key binding as 'd'.
	(Buffer-menu-this-window): Advertise key binding as 'f'.

2022-11-15  Stefan Kangas  <stefankangas@gmail.com>

	manual: Regenerate texi file

2022-11-14  Stefan Kangas  <stefankangas@gmail.com>

	Add face to key bindings suggested by M-x

	* lisp/simple.el (execute-extended-command--describe-binding-msg):
	Use 'help-key-binding' face for keybinding.

2022-11-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from skangas/checkdoc

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1015

2022-11-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from skangas/ci

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1013

2022-11-14  Yuan Fu  <casouri@gmail.com>

	Don't highlight syntax error in c-ts-mode

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--base-mode): Remove error
	feature.

2022-11-14  Robert Pluim  <rpluim@gmail.com>

	Explain how to bind keys to non-ASCII sequences

	* doc/emacs/custom.texi (Init Rebinding): Explain how to use `kbd'
	when binding keys to non-ASCII sequences.

2022-11-14  Po Lu  <luangruo@yahoo.com>

	Make C-x 5 o work on GNOME Shell-like Wayland compositors

	* src/pgtkterm.c (pgtk_free_frame_resources)
	(fill_background_by_face)
	(pgtk_draw_glyphless_glyph_string_foreground)
	(pgtk_draw_window_cursor): Fix coding style.
	(pgtk_focus_frame): Use gtk_window_present_with_time whenever
	possible.
	(key_press_event): Set the last user time.
	(pgtk_display_info_for_display): New function.
	(key_release_event, construct_mouse_click, button_event): Set
	the last user time.
	(scroll_event, pgtk_parse_color, syms_of_pgtkterm)
	(pgtk_begin_cr_clip): Fix coding style.
	* src/pgtkterm.h (struct pgtk_output): New field
	`last_user_time'.

2022-11-14  Alan Mackenzie  <acm@muc.de>

	CC Mode: Prevent over-eager recognition of a variable as a found type

	This fixes bug #59233.  It occurred in the C source code fragment

	    open_replies = alloca (nproviders )

	, where typing a * before the closing parenthesis caused nproviders to be
	prematurely recognized as a type.

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): CASE 18 - set
	unsafe-maybe to t, when needed.

2022-11-14  Theodor Thornhill  <theo@thornhill.no>

	Fix some inconsistencies in *-ts-modes

	(c-ts-mode--base-mode): Extract comment-* so that we can separate
	between C and C++.
	(c-ts-mode, c++-ts-mode): Set comment-* variables.

	* lisp/progmodes/css-ts-mode.el (css-ts-mode): Add electric-indent.

	* lisp/progmodes/java-ts-mode.el
	(java-ts-mode--imenu): Add categories.  Only display categories that
	exist in the file.
	(java-ts-mode): Add electric-indent.

	* lisp/progmodes/json-ts-mode.el
	(json-ts-mode): Add electric-indent.

	* lisp/progmodes/ts-mode.el
	(ts-mode--font-lock-settings): Whitespace cleanup.
	(ts-mode): Add electric-indent.

2022-11-14  Yuan Fu  <casouri@gmail.com>

	Remove feature that checks whether tree-sitter node "has changes"

	First of all, we signal error on using an outdated node, so if a node
	has changes, calling treesit-node-check would only raise an error.
	Besides, in order to properly answer whether a node has changed, we
	would have to update the node as the buffer is edited, which we don't
	do right now.

	* doc/lispref/parsing.texi (Accessing Node Information): Remove
	relevant manual text.
	* src/treesit.c (Ftreesit_node_check): Remove docstring mentions,
	remove the branch for "has-changes".
	(syms_of_treesit): Remove has-changes.

2022-11-14  Po Lu  <luangruo@yahoo.com>

	Prevent crashes upon trying to focus a child frame on click

	* src/xterm.c (handle_one_xevent): Do not try to activate
	override-redirect frames.  Explain why.
	(x_focus_frame): Catch errors around XSetInputFocus.

2022-11-13  Stefan Kangas  <stefankangas@gmail.com>

	Various checkdoc fixes

2022-11-13  Dmitry Gutov  <dgutov@yandex.ru>

	Hardcode "-name" instead of using find-name-arg

	* lisp/progmodes/project.el (project--files-in-directory):
	Hardcode "-name" instead of using find-name-arg (bug#59023).

2022-11-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from bhankas/master

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1011

2022-11-13  Stefan Kangas  <stefankangas@gmail.com>

	Fix building on Emacs 24.3

	This fixes the following error:
	use-package-core.el:60:32:Error: Cannot open load file: subr-x

2022-11-13  Stefan Kangas  <stefankangas@gmail.com>

	Fix tests on Emacs 26 or older

	This fixes the following error in Emacs 25.3:

	In toplevel form:
	bind-key.el:549:1:Error: the function ‘mapcan’ is not known to be defined.

2022-11-13  Juri Linkov  <juri@linkov.net>

	* lisp/minibuffer.el (set-message-functions): New user option.

	(set-message-function): Change the default from
	'set-minibuffer-message' to 'set-message-functions'.
	'set-minibuffer-message' is set as the default value
	of the user option 'set-message-functions'.
	(set-message-functions): New function.
	(inhibit-message-regexps): New customizable variable (bug#52314).
	(inhibit-message): New function.
	(multi-message-timeout, multi-message-max): New defcustoms.
	(multi-message-separator, multi-message-list): New variables.
	(set-multi-message): New function.

2022-11-13  Stefan Kangas  <stefankangas@gmail.com>

	Fix suggest-key-bindings displaying key as command

	* lisp/simple.el (execute-extended-command--describe-binding-msg):
	New function factored out from...
	(execute-extended-command): ...here.  Fix bug where a key binding was
	displayed as a command with 'suggest-key-bindings'.  (Bug#59247)
	* test/lisp/simple-tests.el
	(simple-execute-extended-command--describe-binding-msg): New test.

2022-11-13  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: More improvements for tab-bar-auto-width (bug#59208)

	(tab-bar-auto-width): Use add-face-text-property instead of propertize.
	Prevent from going into infinite loops.  More optimizations.
	(tab-bar-format-align-right): Use add-face-text-property, not propertize.

2022-11-13  Ingo Lohmar  <ingo.lohmar@posteo.net>

	Eglot: fix null scopeUri regression in workspace/configuration

	* lisp/progmodes/eglot.el (eglot-handle-request):
	Commit 1a2d603bb3938ff68ed1a5412d131b41efd40a24 changed
	`eglot--uri-to-path' to return a nil uri untouched.  (Before,
	`url-unhex-string' turned the parsed all-nil uri record into the empty
	string.)

	A nil return value must now be handled in the caller, do that for the
	workspace/configuration handler to avoid an uncaught error.

2022-11-13  Stefan Kangas  <stefankangas@gmail.com>

	New test for execute-extended-command helper defun

	* test/lisp/simple-tests.el
	(simple-execute-extended-command--shorter): New test.

2022-11-13  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in sql.el

	* lisp/progmodes/sql.el (sql-interactive-mode-map, sql-mode-map):
	Prefer defvar-keymap.

2022-11-13  Davide Masserut  <dm@mssdvd.com>

	Add new Go modes to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add new major modes
	for Go to be used with gopls.  (Bug#59245)

2022-11-13  Po Lu  <luangruo@yahoo.com>

	Fix bug#59075

	* src/nsimage.m (ns_can_use_native_image_api): Do not use native
	image APIs for SVG images when RSVG is present.  (bug#59075)

2022-11-13  Eli Zaretskii  <eliz@gnu.org>

	Fix crash on MS-Windows due to memory-allocation problem in treesit.c

	* src/treesit.c (treesit_load_language): Use 'xstrdup'/'xfree'
	instead of 'strdup'/'free', to prevent crashes on MS-Windows,
	where we must use our own implementation of 'malloc'/'free',
	whereas 'strdup' uses the default implementation in the MS-Windows
	C runtime library.

2022-11-13  Po Lu  <luangruo@yahoo.com>

	Fix warnings without XCB or XFixes

	* src/xterm.c (x_term_init): Don't USE_SAFE_ALLOCA or call
	SAFE_FREE outside of where it is actually used.  For some reason
	the compiler still emitted warnings despite the ((void)
	SAFE_ALLOCA (0)) statement.

2022-11-12  Po Lu  <luangruo@yahoo.com>

	Prevent non-local exits from ns-in-echo-area

	* src/nsterm.m (ns_in_echo_area_1):
	(ns_in_echo_area_2):
	(ns_in_echo_area): New functions.
	([EmacsView firstRectForCharacterRange:]): Call them instead.
	(syms_of_nsterm): New defsym.

2022-11-12  Yuan Fu  <casouri@gmail.com>

	Improve tree-sitter imenu for c-mode and js-mode

	Instead of a flat list, now categorize imenu entries into categories
	like "Function", "Variable", "Class", etc.

	* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu-1): Handle more edge
	cases.
	(c-ts-mode--imenu): Categorize menu entries.
	* lisp/progmodes/js.el (js--treesit-imenu-type-alist): Remove variable.
	(js--treesit-imenu-label): Remove function.
	(js--treesit-imenu-1): Use the name alone for labels.
	(js--treesit-imenu): Categorize menu entries.

2022-11-12  Michal Dubiel  <majkijin@gmail.com>  (tiny change)

	eglot: Support signature labels without a function name

	* lisp/progmodes/eglot.el (eglot--sig-info): Support signature labels
	without a function name.  (Bug#58777)

2022-11-12  Theodor Thornhill  <theo@thornhill.no>

	Add tree-sitter modes for C-like languages

	* etc/NEWS: Mention the new modes
	* lisp/progmodes/c-ts-mode.el: New major mode with tree-sitter support
	for C and C++.
	* lisp/progmodes/java-ts-mode.el: New major mode with tree-sitter support.
	* lisp/progmodes/json-ts-mode.el: New major mode with tree-sitter support.
	* lisp/progmodes/css-ts-mode.el: New major mode with tree-sitter support.

2022-11-12  Morgan Smith  <Morgan.J.Smith@outlook.com>

	vc-git: Ensure git doesn't try to colorize stashes

	* lisp/vc/vc-git.el (vc-git-stash-show): Add --color=never to git
	flags.  (Bug#59158)

2022-11-12  Shohei YOSHIDA  <syohex@gmail.com>

	Add cperl-mode to eglot-server-programs

2022-11-12  Alan Mackenzie  <acm@muc.de>

	.dir-locals.el (C entry).  Add NO_INLINE to c-noise-macro-names

2022-11-12  Po Lu  <luangruo@yahoo.com>

	Correctly handle key map updates on Haiku

	* src/haiku_support.cc (MessageReceived): Handle
	B_KEY_MAP_LOADED by clearing the previous keymap.

2022-11-12  Eli Zaretskii  <eliz@gnu.org>

	Document that 'transient-mark-mode' is off in batch mode

	* doc/emacs/mark.texi (Mark, Disabled Transient Mark): Document,
	belatedly, that 'transient-mark-mode' is turned on by default only
	in interactive sessions.  (Bug#59201)

2022-11-12  Po Lu  <luangruo@yahoo.com>

	Handle request serial wraparound more correctly

	* src/xterm.c (X_COMPARE_SERIALS): Remove macro.
	(x_is_serial_more_than, x_is_serial_more_than_or_equal_to)
	(x_is_serial_less_than, x_is_serial_less_than_or_equal_to): New
	functions.
	(x_find_error_handler, x_request_can_fail)
	(x_clean_failable_requests, x_stop_ignoring_errors): Use those
	functions to perform request serial comparison.

2022-11-12  Po Lu  <luangruo@yahoo.com>

	Fix implementation of MULTIPLE

	* src/xselect.c (x_handle_selection_request): Make sure the type
	of a reply to a MULTIPLE request is ATOM_PAIR.

2022-11-12  Eli Zaretskii  <eliz@gnu.org>

	Fix recent changes in documentation

	* lisp/treesit.el (treesit-node-at): Doc fix.

	* doc/lispref/parsing.texi (Language Definitions): Add
	cross-reference.
	(Retrieving Nodes): Renamed from "Retrieving Node"; all references
	changed.
	(Retrieving Nodes): Fix wording and markup.

2022-11-12  Stefan Kangas  <stefankangas@gmail.com>

	* doc/lispref/intro.texi: Fix PDF output without VERSION.  (Bug#59199)

2022-11-12  Po Lu  <luangruo@yahoo.com>

	* lisp/xwidget.el: Improve Commentary.

2022-11-12  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in cus-theme.el

	* lisp/cus-theme.el (custom-new-theme-mode-map)
	(custom-theme-choose-mode-map): Prefer defvar-keymap.

2022-11-11  Yuan Fu  <casouri@gmail.com>

	Improve treesit-node-at

	* doc/lispref/parsing.texi (Retrieving Node): Update manual.
	* lisp/treesit.el (treesit-node-at): Change semantic.  It tries to
	return the node that a user would expect in various circumstances.
	* test/src/treesit-tests.el (treesit-node-at): New test.

2022-11-11  Dmitry Gutov  <dgutov@yandex.ru>

	project--buffer-list: Remove as unused

	* lisp/progmodes/project.el (project--buffer-list):
	Remove as unused (pointed out in bug#59153 by Juri).

2022-11-11  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Mention obsolete gnus/nnir package in Gnus manual

	* doc/misc/gnus.texi (nnir): Provide some hints for upgrade.

2022-11-11  Brian Leung  <leungbk@posteo.net>

	Make Eglot consider FileSystemWatcher.kind when watching files

	bug#58677

	* eglot.el (eglot-register-capability
	  workspace/didChangeWatchedFiles): Rework

	Only send notifications of interest, as determined by the optional LSP
	FileSystemWatcher.kind bitmask provided by the server.

	When the FileSystemWatcher.kind property is omitted, use the default
	value of 7, which is computed from taking the bitwise OR operation
	WatchKind.Create (1) | WatchKind.Change (2) | WatchKind.Delete (4).

2022-11-11  Gerd Möllmann  <gerd@gnu.org>

	Fix &key parameters called without arguments (bug#58714)

	* lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Check for missing
	argument.
	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments): New test.

2022-11-11  Stefan Kangas  <stefankangas@gmail.com>

	eglot: Remove menu entry for manual

	* lisp/progmodes/eglot.el (eglot-manual): Make obsolete.  Open the
	eglot info manual instead of the less exhaustive README.
	(eglot-menu): Remove entry for reading the manual.  (Bug#58892)

2022-11-10  Stefan Kangas  <stefankangas@gmail.com>

	Remove redundant library installation instructions

	* lisp/apropos.el:
	* lisp/mail/feedmail.el:
	* lisp/mail/mail-hist.el:
	* lisp/org/org-ctags.el:
	* lisp/org/org-protocol.el:
	* lisp/progmodes/ebnf2ps.el:
	* lisp/progmodes/mixal-mode.el:
	* lisp/progmodes/perl-mode.el:
	* lisp/savehist.el:
	* lisp/textmodes/table.el:
	* lisp/vc/smerge-mode.el: Remove redundant installation instructions
	for packages bundled with Emacs.

2022-11-10  Po Lu  <luangruo@yahoo.com>

	Slightly adjust EWMH frame activation code for child frames

	* src/xterm.c (x_get_toplevel_parent): New function.
	(x_focus_frame): Do not use EWMH activation in two cases: focus
	transfers to child frames (this is not guaranteed to work if the
	focus and the child frame do not share the same toplevel) or
	focus transfers from child frames to their toplevel parents.

2022-11-10  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/progmodes/hideshow.el: Improve Commentary.

2022-11-10  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in hideshow.el

	* lisp/progmodes/hideshow.el (hs-minor-mode-map): Prefer
	defvar-keymap.

2022-11-10  Yuan Fu  <casouri@gmail.com>

	In end-of-defun, terminate early if no further defun exists

	Before this change, end-of-defun calls end-of-defun-function even if
	point is not necessarily at the beginning of a defun (contrary to what
	end-of-defun-function's docstring claims).  Now it terminates early
	and doesn't call end-of-defun-function.

	* lisp/emacs-lisp/lisp.el (beginning-of-defun-raw): Update docstring
	clarifying the return value.
	(end-of-defun): Terminate early if beginning-of-defun-raw returns nil.

2022-11-10  dannyfreeman  <danny@dfreeman.email>

	Eglot: Only handle URIs with the file:// scheme (bug#58790)

	Eglot will not attempt to parse URIs that are not file:// type at all.
	Instead let 'file-name-handler-alist' entries to deal with those.  Not
	parsing them at all allows the 'file-name-handler-alist' regexps to
	identify them more accurately.

	By also checking if Eglot received a URI in 'eglot--path-to-uri',
	'file-name-handler-alist' can provide the non-file type URI back to
	the lsp server, which presumably will know how to handle them since it
	is also giving them out to clients.

	This issue originated with clojure-lsp sending clients "jar:" type
	URIs that Emacs is unable to handle out of the box.  Before this
	change, "jar:" URIs were parsed once, but since they contain a nested
	URI, this resulted in a file being dispatched with a partially parsed
	path that looked like "file://path/to.jar!/path/in/jar".

	* lisp/progmodes/eglot.el (eglot--path-to-uri): Noop if already an
	URI.  (eglot--uri-to-path):  Only handle file:// URIs

2022-11-10  João Távora  <joaotavora@gmail.com>

	Improve Eglot's docstrings and manual

	The examples in the manual can now be copy-pasted to user's init
	files as-is.

	* doc/misc/eglot.texi (Setting Up LSP Servers): Use
	`with-eval-after-load'.  Add eglot-alternatives example.
	(Customizing Eglot): Use 'require and fix  a typo.

	* lisp/progmodes/eglot.el (eglot-server-programs): Mention
	eglot-alternatives in eglot-server-program's docstring.

2022-11-10  Yuan Fu  <casouri@gmail.com>

	Utilize new face font-lock-escape-face in python-mode

	* lisp/progmodes/python.el (python--treesit-settings): Use
	font-lock-escape-face rather than font-lock-constant-face.

2022-11-10  Yuan Fu  <casouri@gmail.com>

	Accept older versions of tree-sitter library

	* configure.ac: Accept a tree-sitter library as long as it provides
	ts_set_allocator.

2022-11-10  Evgeni Kolev  <evgenysw@gmail.com>

	Ignore errors when shutting down all LSP servers (bug#59146)

	eglot-shutdown-all has a bug that results in partially stopping
	servers: when a server shutdown timeouts (1.5s), an error is
	propagated and eglot-shutdown-all does not try to shutdown the rest of
	the servers.

	* eglot.el (eglot-shutdown-all): Ignore errors when shutting down
	  servers, converting errors to messages.

2022-11-10  Eli Zaretskii  <eliz@gnu.org>

	Don't reset the inbox buffer's modified status in Rmail

	* lisp/mail/rmail.el (rmail-get-new-mail-1): Don't mark the buffer
	unmodified if it was modified before getting new mail.  (Bug#59108)

2022-11-10  Arash Esbati  <arash@gnu.org>

	Support 'texlab' LSP server in Eglot OOTB

	* lisp/progmodes/eglot.el (eglot-server-programs): Add support for
	'texlab' LSP server for tex-mode and similar languages.

2022-11-10  Alan Mackenzie  <acm@muc.de>

	Add to /etc/NEWS a mention of the new C++20 support in CC Mode

	* etc/NEWS.  A new section about C++20 support.

	* lisp/progmodes/cc-defs.el (c-version): Update to 5.35.2.

2022-11-10  Randy Taylor  <dev@rjt.dev>

	Add more font-lock faces (Bug#58940)

	* lisp/font-lock.el (font-lock-bracket-face, font-lock-delimiter-face,
	font-lock-escape-face, font-lock-number-face,
	font-lock-misc-punctuation-face, font-lock-operator-face,
	font-lock-property-face, font-lock-punctuation-face): Define new
	faces.
	* lisp/cus-theme.el (custom-theme--listed-faces): Add them to the
	list.
	* doc/lispref/modes.texi (Faces for Font Lock): Document them.
	* etc/NEWS: Mention them.

2022-11-10  Eli Zaretskii  <eliz@gnu.org>

	Fix initialization of module functions

	* src/emacs-module.c (allocate_module_function): Fix
	initialization of module functions.  Suggested by Richard Copley
	<rcopley@gmail.com>.  (Bug#59104)

2022-11-10  kobarity  <kobarity@gmail.com>

	Fix indentation for multi-line block start in Python mode

	* lisp/progmodes/python.el
	(python-info-dedenter-opening-block-positions): Fix for multi-line
	block start.
	* test/lisp/progmodes/python-tests.el
	(python-info-dedenter-opening-block-positions-6): New test. (Bug#59009)

2022-11-10  Eli Zaretskii  <eliz@gnu.org>

	Avoid dumping core upon SIGHUP in non-interactive sessions

	* src/emacs.c (terminate_due_to_signal): Don't special-case
	SIGINT.  Patch by Paul Eggert <eggert@cs.ucla.edu>.  (Bug#58956)

2022-11-10  Alan Mackenzie  <acm@muc.de>

	* lisp/progmodes/cc-mode.el (c-fl-decl-start): Fix off-by-one error.

	This fixes bug #59070.

2022-11-10  Gabriel do Nascimento Ribeiro  <gabriel376@hotmail.com>

	Make 'dired-hide-details-mode' work after 'dired-hide-subdir'

	* lisp/dired.el (dired--unhide): Restore text properties.
	(Bug#59047)

	* test/lisp/dired-tests.el (dired-test-bugXXXX): New test.

2022-11-10  Matt Armstrong  <matt@rfc20.org>

	Rewrite the `kill-buffer-delete-auto-save' tests (bug#59028)

	These tests had been annoying to me when run in interactive mode.
	They failed to bind `kill-buffer-delete-auto-save' as needed, so they
	depended on the user's settings, and they failed to mock out the
	"Buffer modified, save?" prompt.

	* test/src/buffer-tests.el (test-kill-buffer-auto-save): New helper
	function that mocks the two different kinds of prompts that occur when
	killing modified buffers that visit a file.  Tests fail if expected
	prompts are not issued.
	(test-kill-buffer-auto-save-default): Use it, and explicitly bind
	`kill-buffer-delete-auto-save' to nil.
	(test-kill-buffer-auto-save-delete): Delete it.
	(test-kill-buffer-auto-save-delete-yes): New test for the "yes" half
	of the old `test-kill-buffer-auto-save-delete'.
	(test-kill-buffer-auto-save-delete-yes): Ditto for the "no" half.

2022-11-10  Nicolas Graner  <nicolas@graner.name>

	Better support for 'textarea' and 'select' tags in EWW

	* lisp/net/eww.el (eww-tag-textarea, eww-tag-select): Don't miss
	'textarea' and 'select' tags.  (Bug#58973)

2022-11-10  Po Lu  <luangruo@yahoo.com>

	Be a little more paranoid about XI 2.0 implementations

	* src/xterm.c (xi_populate_device_from_info):
	(xi_disable_devices): Do not restore valuator values if the
	valuator info has a mode of Relative and a value of 0.0.

2022-11-09  Juanma Barranquero  <lekktu@gmail.com>

	Make 't' in bs-mode be more defensive

	* lisp/bs.el (bs-visit-tags-table): Verify that	the
	buffer holds a tags-table file before using it as
	such. This is identical to bug#54133 affecting
	Buffer-menu, and this fix is copied from the one
	by Eli Zaretskii in commit 794fbd1c07 of 2022-02-24.
	Thanks to Bob Rogers <rogers@rgrjr.com> for noticing.

2022-11-09  Yuan Fu  <casouri@gmail.com>

	* configure.ac: Change required tree-sitter version to 0.20.2.

2022-11-09  Yuan Fu  <casouri@gmail.com>

	Make tree-sitter node type match case-sensitive

	* doc/lispref/parsing.texi (Retrieving Node): Update manual.
	* src/treesit.c (treesit_traverse_match_predicate): Change to
	fast_c_string_match.
	(Ftreesit_search_subtree)
	(Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree): Update docstring.

2022-11-09  Yuan Fu  <casouri@gmail.com>

	New function fast_c_string_match and fast_c_string_match_internal

	Generalize fast_c_string_match_ignore_case into
	fast_c_string_match_internal.  And Make fast_c_string and
	fast_c_string_match_ignore_case use fast_c_string_match_internal.

	* src/lisp.h (fast_c_string_match_internal)
	(fast_c_string_match): New declaration.
	(fast_c_string_match_ignore_case): Change to thin wrapper.
	* src/search.c (fast_c_string_match_internal): New function.

2022-11-09  Yuan Fu  <casouri@gmail.com>

	Add tree-sitter shortdoc

	* lisp/treesit.el (treesit--generate-shortdoc-examples): New function.
	(treesit): New shortdoc group.

2022-11-09  Yuan Fu  <casouri@gmail.com>

	Mimic existing python-mode beg/end-of-defun behavior better

	* lisp/progmodes/python.el (python-treesit-beginning-of-defun)
	(python-treesit-end-of-defun): New functions.
	* lisp/progmodes/python.el (python-mode): Use custom beg/end-of-defun
	functions.

2022-11-09  Alan Mackenzie  <acm@muc.de>

	Optimize c-bs-interval, changing its value from 5000 to 2000

	* lisp/progmodes/cc-engine.el (c-bs-interval): This optimization speeds
	forward scrolling in a C Mode buffer by ~2.4%, backward scrolling by ~1.8%.

2022-11-09  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-auto-width): Add selected-frame to the cache key.

2022-11-09  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in matrix_row

	* src/xdisp.c (cursor_in_mouse_face_p): Avoid rare assertion
	violations when the cursor's VPOS winds up being invalid for the
	window.  (Bug#59147)

2022-11-09  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/thread.el (thread-list-mode-map): Prefer defvar-keymap.

2022-11-09  Stephen Leake  <stephen_leake@stephe-leake.org>

	Delete emacs < 26.2 workaround in eglot--apply-text-edits

	* lisp/progmodes/eglot.el (eglot--apply-text-edits): Delete emacs <
	26.2 workaround; fixes bug in ada-mode test.

2022-11-09  F. Jason Park  <jp@neverwas.me>

	Teach thing-at-point to recognize bracketed IPv6 URLs

	* lisp/thingatpt.el (thing-at-point-bounds-of-url-at-point): Allow
	IPv6 addresses as hosts.  Overshoots in the case of bracketed markup
	but is rescued by `thing-at-point--bounds-of-well-formed-url'.
	* test/lisp/thingatpt-tests.el (thing-at-point-test-data): Add cases
	for IPv6 URLs.  Bug#56514.

2022-11-09  Po Lu  <luangruo@yahoo.com>

	Make the PGTK port display a loud warning when run under X

	* src/pgtkterm.c (pgtk_display_x_warning): New function.
	(pgtk_term_init): Call it.

2022-11-09  Po Lu  <luangruo@yahoo.com>

	"Fix" iconification handling on PGTK

	* src/pgtkterm.c (pgtk_iconify_frame): Write some more comments
	and refrain from setting the frame as iconified here.
	(map_event): Remove redundant braces.
	(window_state_event): Remove useless code and manage frame
	visibility as correctly as possible under Wayland while
	iconified.  (bug#55836)

2022-11-09  Po Lu  <luangruo@yahoo.com>

	Avoid use of `uint' type in XKB code

	* src/xterm.c (x_find_modifier_meanings, handle_one_xevent): Use
	`unsigned int' instead of `uint'.

2022-11-09  Mattias Engdegård  <mattiase@acm.org>

	* src/lread.c (syms_of_lread): Drop unused capture group.

2022-11-09  Nicholas Vollmer  <iarchivedmywholelife@gmail.com>

	bytecomp.el (byte-recompile-directory): Fix negated ignore logic

	Previous logic would only compile files which matched the
	byte-compile-ignore-files regular expression.  (Bug#59115)

2022-11-09  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-auto-width): Use 'frame-inner-width'.

	* lisp/tab-bar.el (tab-bar-get-buffer-tab): Add optional arg 'all-tabs'.

2022-11-08  Alexander Adolf  <alexander.adolf@condition-alpha.com>

	EUDC: Add ecomplete and mailabbrev backends

	* doc/misc/eudc.texi (Overview): Add ecomplete and mailabbrev
	nodes.
	(ecomplete, mailabbrev): New nodes.
	(Installation): Add ecomplete and mailabbrev nodes.
	(LDAP Configuration): Use code formatting instead of quotes.
	(macOS Contacts Configuration): Likewise.
	(ecomplete Configuration): New node.
	(mailabbrev Configuration): Likewise.
	* etc/NEWS (EUDC): Mention ecomplete and mailabbrev backends,
	mention eudc-server-hotlist default change.
	* lisp/net/eudc-vars.el (eudc-known-protocols): Add ecomplete and
	mailabbrev.
	(eudc-server-hotlist): Add entries for ecomplete and mailabbrev.
	* lisp/net/eudcb-ecomplete.el: New EUDC backend file.
	* lisp/net/eudcb-mailabbrev.el: Likewise.
	* test/lisp/net/eudc-resources/ecompleterc,
	test/lisp/net/eudc-resources/mailrc: New eudc-tests resource
	files.
	* test/lisp/net/eudc-tests.el (eudc-test-rfc5322-quote-phrase)
	(eudc-test-make-address, eudcb-ecomplete, eudcb-mailabbrev): New
	test cases.

2022-11-08  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Deprecate eudc-server variable

	* lisp/net/eudc-vars.el (eudc-server): Deprecate variable for
	Emacs 29.1.

2022-11-08  Stephen Leake  <stephen_leake@stephe-leake.org>

	* lisp/progmodes/eglot.el (eglot--pos-to-lsp-position): Improve comment

2022-11-08  Alan Mackenzie  <acm@muc.de>

	CC Mode: Improve accuracy of recognition of bitfields

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): When we've got two
	identifiers followed by a colon, additionally check for a number (or
	identifier) followed by a semicolon or comma before concluding we have a
	bitfield.

2022-11-08  Robert Pluim  <rpluim@gmail.com>

	Don't use @w around @xref in ede.texi

	Texinfo 7 warns about this now.

	* doc/misc/ede.texi (ede-project-placeholder, ede-project,
	ede-cpp-root-project, ede-simple-project,ede-simple-base-project,
	ede-proj-project, project-am-makefile, ede-step-project, ede-target,
	ede-proj-target, ede-proj-target-makefile,
	semantic-ede-proj-target-grammar, ede-proj-target-makefile-objectcode,
	ede-proj-target-makefile-archive, ede-proj-target-makefile-program,
	ede-proj-target-makefile-shared-object, ede-proj-target-elisp,
	ede-proj-target-elisp-autoloads,
	ede-proj-target-makefile-miscelaneous, ede-proj-target-makefile-info,
	ede-proj-target-scheme, project-am-target, project-am-objectcode,
	project-am-program, project-am-header-noinst, project-am-header-inst,
	project-am-lisp, project-am-texinfo, project-am-man,
	ede-compilation-program, ede-compiler, ede-object-compiler,
	ede-linker): Remove @w around @xref.

2022-11-08  Po Lu  <luangruo@yahoo.com>

	Clean up some duplicate event group conversion code

	* src/xterm.c (xi_convert_event_keyboard_state): New function.
	Move keyboard event state over.
	(handle_one_xevent): Use it where necessary.

2022-11-08  Alan Mackenzie  <acm@muc.de>

	CC Mode: Stabilize the fontification in the presence of "register" keywords

	This fixes bug #58883.

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): New variable
	unsafe-maybe.  Set it in CASE 10 rather than setting c-record-type-identifiers
	to nil.  Near the end of the function, when unsafe-maybe is set, bind
	c-promote-possible-types to 'just-one rather than t around the call to
	c-forward-type.

2022-11-07  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Add eudc-ignore-options-file customization

	* etc/NEWS (EUDC): Document eudc-ignore-options-file.
	* doc/misc/eudc.texi (The Server Hotlist): Likewise
	* lisp/net/eudc-vars.el (eudc-ignore-options-file): New variable.
	(eudc-options-file): Mention new variable.
	* lisp/net/eudc.el: Warn on load if eudc-ignore-options-file is
	set but the options file exists.
	(eudc-set-server): Support
	eudc-ignore-options-file.
	(eudc-bookmark-server): Likewise.
	(eudc-save-options): Likewise.  (Bug#56154)

2022-11-07  Po Lu  <luangruo@yahoo.com>

	Add missing SAFE_FREE on XI 2.0 servers

	* src/xterm.c (xi_populate_device_from_info): Add missing
	SAFE_FREE.

2022-11-07  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix infinite loop in c-brace-stack-at.

	This fixes bug #59038.  The infinite loop occurred with a buffer containing
	Base-64 encoded text rather than appropriate C Mode text.

	* lisp/progmodes/cc-engine.el (c-update-brace-stack): Don't execute
	c-beginning-of-current-token unless the previous c-syntactic-re-search-forward
	has succeeded at least once.

2022-11-07  Po Lu  <luangruo@yahoo.com>

	Avoid invalid values showing up in scroll valuators

	* src/xterm.c (xi_populate_device_from_info): Reset emacs_value
	when invalid_p is cleared.

2022-11-07  Yuan Fu  <casouri@gmail.com>

	Add tree-sitter indent preset "point-min"

	* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
	* lisp/treesit.el (treesit-simple-indent-presets): Add preset.  Update
	docstring.

2022-11-07  Yuan Fu  <casouri@gmail.com>

	Add treesit--indent-rules-optimize

	* lisp/treesit.el (treesit--indent-rules-optimize): New function.
	(treesit-major-mode-setup): Optimize indent rules when setting up for
	major mode.

2022-11-07  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline-minor-mode): Ensure margins are either 0 or 1.

	This check is necessary to make it idempotent to multiple calls.

2022-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	(itree_insert_gap, itree_delete_gap): Minor optimization

	`limit` can get smaller in either of the two children of a node.
	It can also happen that the root node itself has a low enough limit
	that the loop can be interrupted right away.

	The previous code only checked `limit` when going down to a left
	child, which is not wrong, but tests suggest that it is also very
	common to reach this limit when going to a right child, so move the
	test accordingly.

	* src/itree.c (itree_insert_gap, itree_delete_gap): Check `limit` for
	all nodes, rather than only when following a `left` pointer.

2022-11-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	70fb03a49a ; * doc/emacs/search.texi (Lax Search): Improve suggestion...
	5779df0c5b ; * doc/lispref/searching.texi: Remove reference to Posix....
	46929f6b73 ; Improve documentation of character classes in regexps

2022-11-06  Philip Kaludercic  <philipk@posteo.net>

	Revert "* lisp/vc/vc-git.el (vc-git--rev-parse): Allow abbreviating commits"

	This reverts commit 307ad210040251ea0de2e7f453350c4497bda874.

2022-11-06  Ingo Lohmar  <ingo.lohmar@posteo.net>

	Fix sql-{beginning,end}-of-statement counting

	* lisp/progmodes/sql.el (sql-beginning-of-statement, sql-end-of-statement):
	Do not count statement separators if inside a string.

2022-11-06  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in octave.el

	* lisp/progmodes/octave.el (octave-mode-map): Prefer
	defvar-keymap.

2022-11-06  Stefan Kangas  <stefankangas@gmail.com>

	Fix failing eshell alias tests

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/alias/function)
	(esh-var-test/alias/symbol-pair): Fix tests.  (Bug#59062)

2022-11-06  Eli Zaretskii  <eliz@gnu.org>

	Revert "Pacify -Wnull-dereference"

	This reverts commit dad452552bebf832e737ebb946b5eea6cd57f63f.
	Please don't assume I write such code by omission.

2022-11-06  Po Lu  <luangruo@yahoo.com>

	Fix splash screen display on NS and Haiku with native image APIs

	* src/image.c (syms_of_image): Add Qsvg image type if SVG is
	also supported by native image APIs.

2022-11-06  Po Lu  <luangruo@yahoo.com>

	Pacify -Wnull-dereference

	* src/xdisp.c (extend_face_to_end_of_line): Use FACE_FROM_ID,
	not FACE_FROM_ID_OR_NULL, when the next line proceeds to
	immediately dereference the face.

2022-11-06  Po Lu  <luangruo@yahoo.com>

	Write more commentary on XI2 device management

	* src/xterm.c (xi_populate_device_from_info): Take dpyinfo.
	Describe what master and slave devices are, how they represent
	seats, and how they are used to multiplex user input.  Also
	simplify ifdefs and avoid looping over scroll classes on XI 2.0.
	(x_cache_xi_devices, handle_one_xevent): Adjust accordingly.
	(x_term_init): Set dpyinfo->xi2_version before calling
	x_cache_xi_devices.

2022-11-06  Eli Zaretskii  <eliz@gnu.org>

	Fix face extension when Org narrows the buffer

	* src/xdisp.c (extend_face_to_end_of_line): Make sure glyph rows
	at ZV use the default face for extension.  (Bug#59065)

2022-11-06  Davide Masserut  <dm@mssdvd.com>

	Bind "DEL" in dictionary-mode

	* lisp/net/dictionary.el (dictionary-mode-map): Bind DEL to
	'scroll-down-command'.  (Bug#58986)

2022-11-06  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of Edebug overwriting buffer point

	* doc/lispref/edebug.texi (Edebug Display Update)
	(Edebug Options): More details about Edebug changing buffer point
	position.  Reported by Alan Mackenzie <acm@muc.de>.

2022-11-06  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-fixed-width-max): Change :type from cons to list.

	This will allow possible future extensions to customize Double (HiDPI).

	(tab-bar-fixed-width-min): Change :type from cons to list.
	(tab-bar-fixed-width): Use the list instead of cons.

2022-11-06  Matt Armstrong  <matt@rfc20.org>

	itree.c and buffer-tests.el: Incorporate code review feedback

	* src/itree.c: Improve wording in `itree_insert_gap` comment.
	* test/src/buffer-tests.el (test-overlay-insert-before-markers-at-start):
	Don't rely on (point-min) being 1.
	(test-overlay-insert-before-markers-at-end): ditto.
	(test-overlay-insert-before-markers-empty): ditto.

2022-11-05  Yuan Fu  <casouri@gmail.com>

	Fix incorrect tree-sitter fontification

	* lisp/treesit.el (treesit-font-lock-fontify-region): If the captured
	node is outside of the region between START and END, don't fontify it.
	Wrap fontification code in a when form.

2022-11-05  Yuan Fu  <casouri@gmail.com>

	Allow tree-sitter indent offset to be a variable

	* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
	* lisp/progmodes/js.el (js--treesit-indent-rules): Change all
	occurrence of ,js-indent-level to js-indent-level.

	* lisp/progmodes/ts-mode.el (ts-mode--indent-rules): Change all
	occurrence of ,ts-mode-indent-offset to ts-mode-indent-offset.
	* lisp/treesit.el (treesit-simple-indent-rules): Change docstring.
	(treesit-simple-indent): Allow offset to be a variable.

2022-11-05  Yuan Fu  <casouri@gmail.com>

	Don't indent empty lines in treesit-indent-region

	* lisp/treesit.el (treesit-indent-region): Wrap the old code in an if
	form that checks whether we are at an empty line.  Add comments.

2022-11-05  Yuan Fu  <casouri@gmail.com>

	Make treesit-language-at work in more situations

	even if treesit-language-at-point-function is nil.

2022-11-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	buffer.c: evaporate overlays in all indirect buffers

	This fixes bug#58928.  The patch works by moving the
	`evaporate_overlays` check closer to `itree_delete_gap`.

	* src/buffer.c (adjust_overlays_for_delete_in_buffer): New function,
	integrating the functionality of `evaporate_overlays`.
	(adjust_overlays_for_delete): Use it.
	(evaporate_overlays): Delete function.

	* src/buffer.h (evaporate_overlays): Delete declaration.

	* src/insdel.c (adjust_markers_for_replace): Minor optimization.
	(adjust_after_replace, replace_range, replace_range_2, del_range_2):
	Don't call `evaporate_overlays`.

	* test/src/buffer-tests.el (buffer-tests--overlays-indirect-evaporate):
	Remove the `:expected-result :failed` attribute.

2022-11-05  Matt Armstrong  <matt@rfc20.org>

	Add a test for overlay evaporation across indirect buffers

	* test/src/buffer-tests.el (buffer-tests--overlays-indirect-evaporate):
	Test evaporation of overlays triggered by deleting text in base
	and in indirect buffers.  Test doesn't pass at the moment.

2022-11-05  Matt Armstrong  <matt@rfc20.org>

	Minor tweaks to the fix for `insert-before-markers' overlay fix

	(bug#58928)

	* src/buffer.c (adjust_overlays_for_insert): wrap to less than 80
	chars.
	* src/itree.c: document BEFORE_MARKERS.

2022-11-05  Matt Armstrong  <matt@rfc20.org>

	Tweak the overlay related `insert-before-markers' tests

	* test/src/buffer-tests.el (test-overlay-insert-before-markers-empty):
	Move code down to the other tests related to insertion.  Test all
	front/rear insert combinations.  To make the test more clear, at least
	to me, hard code all character positions.
	(test-overlay-insert-before-markers-at-start): For both front-advance
	modes verify that `insert-before-markers' at and overlay's start
	advances it.
	(test-overlay-insert-before-markers-at-end): For both rear-advance
	modes test that `insert-before-markers' at an overlay's end advances
	it.
	(test-overlay-insert-before-markers-non-empty): Delete, replaced by
	the two tests above.

2022-11-05  Brian Cully  <bjc@kublai.com>

	lisp/eshell/em-tramp.el: Rename 'TRAMP' to 'Tramp'.

2022-11-05  Brian Cully  <bjc@kublai.com>

	Add the "doas" alias to eshell.

	  * lisp/eshell/em-tramp.el (eshell/doas): new function.
	  (eshell--method-wrap-directory): new function.
	  (eshell/sudo): accept '-s'/'--shell' for interactive use.
	  * test/lisp/eshell/em-tramp-tests.el
	  (em-tramp-test/sudo-shell) (em-tramp-test/sudo-user-shell)
	  (em-tramp-test/doas-basic) (em-tramp-test/doas-user)
	  (em-tramp-test/doas-shell) (em-tramp-test/doas-user-shell): new
	  tests.
	  * etc/NEWS: mention new 'doas' eshell command.
	  * doc/misc/eshell.texi: add 'doas' command documentation.

2022-11-05  Juri Linkov  <juri@linkov.net>

	* etc/NEWS: Remove remark implemented by 'vc-default-checkin-patch'.

	* lisp/net/dictionary.el (dictionary-search): Use format-prompt.

	* lisp/tab-bar.el (tab-bar-fixed-width): Improve width calculations.

2022-11-05  Philip Kaludercic  <philipk@posteo.net>

	Rephrase 'package-vc-ensure-packages' docstring

	* lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Make it
	easier to read.

2022-11-05  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/jka-compr.el (jka-compr-load): Add MUST-SUFFIX argument.

2022-11-05  Eli Zaretskii  <eliz@gnu.org>

	Fix the unexec build

	* src/itree.c (forget_itree): New function.
	* src/emacs.c (Fdump_emacs): Call 'forget_itree'.

2022-11-05  Eli Zaretskii  <eliz@gnu.org>

	Fix warnings in sqlite.c in the MS-Windows build

	* src/sqlite.c (sqlite3_errstr) [WINDOWSNT]: Define and load from
	the DLL only if the SQLite3 version is at least 3.7.15.
	(sqlite_prepare_errdata) [SQLITE_VERSION_NUMBER >= 3007015]: Use
	the original code if sqlite3_errstr is available.

2022-11-05  Nicolas Graner  <nicolas@graner.name>

	Avoid error when forwarding messages from Rmail

	* lisp/gnus/message.el (message-mail): Verify that In-Reply-To has
	a string value before matching it with a regexp.  (Bug#59007)

2022-11-05  Po Lu  <luangruo@yahoo.com>

	Make sqlite.c build with SQlite in Fedora 9

	* src/sqlite.c (sqlite_prepare_errdata): Use sqlite3_errmsg
	instead of sqlite3_errstr.

2022-11-05  Po Lu  <luangruo@yahoo.com>

	Simplify XI scroll class reporting code

	* src/xterm.c (xi_populate_device_from_info): Use xnmalloc.
	Avoid reading classes at all when the XI library only supports
	2.0.
	(xi_handle_new_classes): New function.
	(xi_handle_device_changed): Move class parsing logic there to
	avoid duplicating code.

2022-11-05  Payas Relekar  <relekarpayas@gmail.com>

	Bump version to 2.4.4

2022-11-04  dickmao  <dick.r.chiang@gmail.com>

	Move ERC's core dependencies to separate file

	Asking people to order require's is about as effective
	as asking kids to keep off the grass.

	* lisp/erc/erc-backend.el (erc--target, erc-auto-query,
	erc-channel-list, erc-channel-users, erc-default-nicks,
	erc-default-recipients, erc-format-nick-function,
	erc-format-query-as-channel-p, erc-hide-prompt, erc-input-marker,
	erc-insert-marker, erc-invitation, erc-join-buffer,
	erc-kill-buffer-on-part, erc-kill-server-buffer-on-quit, erc-log-p,
	erc-minibuffer-ignored, erc-networks--id, erc-nick,
	erc-nick-change-attempt-count, erc-prompt-for-channel-key,
	erc-prompt-hidden, erc-reuse-buffers, erc-verbose-server-ping,
	erc-whowas-on-nosuchnick): Forward-declare variables.
	(erc--open-target, erc--target-from-string, erc-active-buffer,
	erc-add-default-channel, erc-banlist-update, erc-buffer-filter,
	erc-buffer-list-with-nick, erc-channel-begin-receiving-names,
	erc-channel-end-receiving-names, erc-channel-p,
	erc-channel-receive-names, erc-cmd-JOIN, erc-connection-established,
	erc-current-nick, erc-current-nick-p, erc-current-time,
	erc-default-target, erc-delete-default-channel,
	erc-display-error-notice, erc-display-server-message,
	erc-emacs-time-to-erc-time, erc-format-message,
	erc-format-privmessage, erc-get-buffer, erc-handle-login,
	erc-handle-user-status-change, erc-ignored-reply-p,
	erc-ignored-user-p, erc-is-message-ctcp-and-not-action-p,
	erc-is-message-ctcp-p, erc-log-irc-protocol, erc-login,
	erc-make-notice, erc-network, erc-networks--id-given,
	erc-networks--id-reload, erc-nickname-in-use, erc-parse-user,
	erc-process-away, erc-process-ctcp-query, erc-query-buffer-p,
	erc-remove-channel-member, erc-remove-channel-users, erc-remove-user,
	erc-sec-to-time, erc-server-buffer, erc-set-active-buffer,
	erc-set-current-nick, erc-set-modes, erc-time-diff, erc-trim-string,
	erc-update-mode-line, erc-update-mode-line-buffer,
	erc-wash-quit-reason, erc-display-message, erc-get-buffer-create,
	erc-process-ctcp-reply, erc-update-channel-topic, erc-update-modes,
	erc-update-user-nick, erc-open, erc-update-channel-member):
	Forward-declare functions.
	(erc-response): Move to lisp/erc/erc-common.el.
	(erc-compat--with-memoization): Use "erc-compat-" prefixed macro.

	* lisp/erc/erc-common.el: New file.  Change indentation for
	`erc-with-all-buffers-of-server' from 1 to 2.

	* lisp/erc/erc-compat.el (erc-compat--with-memoization): Migrate macro
	from `erc-backend' and rename.

	* lisp/erc/erc-goodies.el: Require `erc-common' instead of `erc'.
	(erc-controls-highlight-regexp, erc-controls-remove-regexp,
	erc-input-marker, erc-insert-marker, erc-server-process, erc-modules,
	erc-log-p): Forward declare variables.
	(erc-buffer-list, erc-error, erc-extract-command-from-line):
	Forward-declare functions.

	* lisp/erc/erc-networks.el (erc--target, erc-insert-marker,
	erc-kill-buffer-hook, erc-kill-server-hook, erc-modules,
	erc-rename-buffers, erc-reuse-buffers, erc-server-announced-name,
	erc-server-connected, erc-server-parameters, erc-server-process,
	erc-session-server): Forward declare variables.
	(erc--default-target, erc--get-isupport-entry, erc-buffer-filter,
	erc-current-nick, erc-display-error-notice, erc-error, erc-get-buffer,
	erc-server-buffer, erc-server-process-alive): Forward-declare
	functions.
	(erc-obsolete-var): Also suppress free-variable warnings.

	* lisp/erc/erc.el: Require `erc-networks', `erc-goodies', and
	`erc-backend' at top of file.  Don't require `erc-compat'.
	(erc--server-last-reconnect-count, erc--server-reconnecting,
	erc-channel-members-changed-hook, erc-network, erc-networks--id,
	erc-server-367-functions, erc-server-announced-name,
	erc-server-connect-function, erc-server-connected,
	erc-server-current-nick, erc-server-lag, erc-server-last-sent-time,
	erc-server-process, erc-server-quitting, erc-server-reconnect-count,
	erc-server-reconnecting, erc-session-client-certificate,
	erc-session-connector, erc-session-port, erc-session-server,
	erc-session-user-full-name) Remove superfluous forward declarations.
	(erc-message-parsed, tabbar--local-hlf, motif-version-string):
	Relocate forward declares to central location.
	(erc-session-password): Move to `erc-backend'.
	(erc-downcase, erc-with-server-buffer, erc-server-user,
	erc-channel-user, erc-get-channel-user, erc-get-server-user): Move to
	lisp/erc/erc-common.el.
	(erc-add-server-user, erc-remove-server-user,
	erc-channel-user-owner-p, erc-channel-user-admin-p,
	erc-channel-user-op-p, erc-channel-user-halfop-p,
	erc-channel-user-voice-p): Convert from inline functions to normal
	functions.
	(define-erc-module, erc--target, erc--target-channel,
	erc--target-channel-local, erc-log, erc-log-aux, erc-with-buffer,
	erc-with-all-buffers-of-server): Move to lisp/erc/erc-common.el.
	(erc-channel-members-changed-hook): Relocate option to avoid compiler
	warning.
	(erc-input, erc--input-split): Move to lisp/erc/erc-common.el.
	(erc-controls-strip): Remove forward declaration temporarily until
	this file stops requiring `erc-goodies'.

	* test/lisp/erc/erc-networks-tests.el: Require `erc' instead of
	`erc-networks'.
	* test/lisp/erc/erc-tests.el (erc--meta--backend-dependencies):
	Remove obsolete test.  Don't require `erc-networks'. Bug#56340.

2022-11-04  F. Jason Park  <jp@neverwas.me>

	Offer completions for GET subcommand flags in erc-dcc

	* lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Add /DCC GET switches.
	This is unfinished business from bug#54458.
	* test/lisp/erc/erc-dcc-tests.el (erc-dcc-tests--pcomplete-common,
	pcomplete/erc-mode/DCC--get-basic, pcomplete/erc-mode/DCC--get-1flag,
	pcomplete/erc-mode/DCC--get-2flags,
	pcomplete/erc-mode/DCC--get-2flags-reverse): Add helper and tests for
	completing /DCC GET switches.

2022-11-04  F. Jason Park  <jp@neverwas.me>

	* lisp/erc/erc.el (erc-cmd-RECONNECT): Fix macro arg.

2022-11-04  Dmitry Gutov  <dgutov@yandex.ru>

	project-kill-buffer-conditions: Tweak

	* lisp/progmodes/project.el (project-kill-buffer-conditions): Tweak.

2022-11-04  Matt Armstrong  <matt@rfc20.org>

	Configure clang-format to use tabs

	* .clang-format (UseTab): Set to "Always", to match
	the (indent-tabs-mode . t) in .dir-locals.el.  (Bug#59027)

2022-11-04  Philip Kaludercic  <philipk@posteo.net>

	Print "decrypted" rot13 text is buffer is read-only

	* lisp/rot13.el (rot13-region): Add fallback if buffer is read-only
	* doc/emacs/rmail.texi (Rmail Rot13): Document new behavior.

2022-11-04  Philip Kaludercic  <philipk@posteo.net>

	* lisp/net/rcirc.el (rcirc-print): Replace misjudged assertion

2022-11-04  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/textmodes/css-mode.el (css-mode-map): Prefer defvar-keymap.

	* lisp/dired-aux.el (dired-check-process): Use progress reporter.

2022-11-04  Stefan Kangas  <stefankangas@gmail.com>

	Use progress reporter in cpp.el

	* lisp/progmodes/cpp.el (cpp-highlight-buffer): Use progress
	reporter.
	(cpp-progress-time, cpp-progress-message): Make obsolete in favor
	of 'make-progress-reporter'.
	(cpp-message-min-time-interval): Doc fix.

2022-11-04  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/progmodes/cpp.el (cpp-edit-mode-map): Prefer defvar-keymap.

2022-11-04  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -Wanalyzer-null-dereference

	This is for gcc 12.2.1 20220819 (Red Hat 12.2.1-2) x86-64
	when Emacs is configured with --enable-gcc-warnings.
	* src/buffer.c (Fmove_overlay): Prefer BASE_EQ to EQ in a place
	where they’re equivalent because the only symbol allowed here is nil.

2022-11-04  Philip Kaludercic  <philipk@posteo.net>

	Merge branch 'feature/package+vc'

	* lisp/emacs-lisp/package-vc.el: Expand commentary

2022-11-04  Philip Kaludercic  <philipk@posteo.net>

	Link to Manual from the package-vc group

	* lisp/emacs-lisp/package-vc.el (package-vc): Add 'custom-manual'
	link.

2022-11-04  Philip Kaludercic  <philipk@posteo.net>

	Document 'package-vc-selected-packages'

	* doc/emacs/package.texi: Expand documentation and give example.
	* etc/NEWS: Mention 'package-vc-selected-packages'.
	* lisp/emacs-lisp/package-vc.el (package-vc--select-packages): Remove
	function.
	(package-vc-ensure-packages): Add function based on
	'package-vc--select-packages'.
	(package-vc-selected-packages): Call 'package-vc-ensure-packages' from
	custom setter.

2022-11-04  Yuan Fu  <casouri@gmail.com>

	Add treesit-indent-error

	* lisp/treesit.el (treesit-indent-error): New error.
	(treesit--simple-indent-eval): Signal treesit-indent-error.

2022-11-04  Yuan Fu  <casouri@gmail.com>

	Revise tree-sitter facility for multi-language buffers

	* doc/lispref/parsing.texi (Multiple Languages): Extend and update
	manual.
	* lisp/treesit.el (treesit-range-functions): Remove variable.
	(treesit-range-settings): New variable.
	(treesit-range-rules): New function.
	(treesit--merge-ranges): New function.
	(treesit-update-ranges): Use treesit-range-settings instead of
	treesit-range-functions.
	(treesit-font-lock-rules): Fix docstring.
	(treesit-indent)
	(treesit-indent-region): Only update ranges in a region.
	* test/src/treesit-tests.el (treesit-range): New test.

2022-11-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/simple.el (function-documentation): Fix bug#59014

2022-11-04  Michael Albinus  <michael.albinus@gmx.de>

	Fix calling file name handler for `load'.

	* lisp/net/ange-ftp.el (ange-ftp-load): Add MUST-SUFFIX argument.

	* lisp/net/tramp.el (tramp-handle-load): Adapt MUST_SUFFIX test.

	* src/lread.c (Fload): Call handler with must_suffix.

	* test/lisp/net/tramp-tests.el (tramp-test27-load): Extend test.

2022-11-04  Stefan Kangas  <stefankangas@gmail.com>

	Normalize some syntax table definitions

	* lisp/nxml/rng-cmpct.el (rng-c-syntax-table):
	* lisp/progmodes/cperl-mode.el (cperl-mode-syntax-table)
	(cperl-string-syntax-table2):
	* lisp/progmodes/dcl-mode.el (dcl-mode-syntax-table): Normalize
	definitions to better follow modern ELisp conventions.

2022-11-04  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/progmodes/dcl-mode.el (dcl-mode-map): Prefer defvar-keymap.

	* admin/authors.el: Don't recommend deprecated fgrep.

2022-11-04  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix manual noverlay tests

	* test/manual/noverlay/Makefile.in: Add copyright notice.
	(LIBS): Rename...
	(PACKAGES): ...to this, to avoid confusion with Autoconf's LIBS.
	All uses changed.
	(CFLAGS): Break out -I flag...
	(CPPFLAGS): ...into this new variable.
	(LDFLAGS): Rename...
	(LDLIBS): ...to this, which is expected to hold -l flags.
	(top_builddir): New variable.
	(EMACS): Define in terms of it.
	(.PHONY): Add clean, distclean, and perf targets.
	(have-libcheck): Remove redundant target.  All uses updated.
	(itree-tests.o): Remove redundant dependency on its source file.
	(itree-tests): Remove redundant (and uncompilable) rule.

	* test/manual/noverlay/check-sanitize.sh: Use /usr/bin/env.  Add
	copyright notice.  Enable pipefail option, to propagate itree-tests
	exit status to caller.  Fix typo in usage message.  Strip less
	information from Check's error messages.

	* test/manual/noverlay/emacs-compat.h: Add copyright notice.
	Include stdlib.h.
	(emacs_abort, eassert): Consistently use EXIT_FAILURE.
	(eassume): Define when necessary.

	* test/manual/noverlay/itree-tests.c: Add copyright notice.  Include
	standard headers before third-party ones.  Use most narrowly
	applicable ck_assert* macro for the types being checked,
	e.g. ck_assert_ptr_* macros for pointer values.  Replace removed
	names and APIs with current ones, e.g. the itree_node field 'color'
	is now called 'red'.  Ensure preconditions of itree API are
	satisfied before use, e.g. itree_node otick being set appropriately
	before insertion, or global iterator being initialized
	before (implicit) use (bug#58976).  Make all functions static.
	(DEF_TEST_SETUP): Remove all instances, replacing with...
	(test_insert1_setup, test_insert2_setup, test_remove1_setup)
	(test_remove2_setup): ...these new test fixtures.
	(A, B, C, D, E, N_05, N_10, N_15, N_20, N_30, N_40, N_50, N_70)
	(N_80, N_90, N_85, N_95): Define as static variables rather than
	macros.
	(test_get_tree4): Remove, inlining salient parts.
	(shuffle): Move closer to users.
	(test_create_tree): Accept itree_nodes as argument instead of
	dynamically allocating them.  All callers changed.
	(FOREACH): Remove unused macro.
	(N_BEG, N_END): Define in terms of itree_node_begin and
	itree_node_end, respectively.
	(test_gap_insert_1, test_gap_insert_2, test_gap_insert_3)
	(test_gap_insert_5, test_gap_insert_7, test_gap_insert_11): Use
	test_setup_gap_node_noadvance.
	(basic_suite): Group unit tests into test cases and fixtures.  Run
	previously forgotten test_insert_14.
	(main): Run suite as CK_ENV to allow specifying desired verbosity in
	the environment.

2022-11-04  Po Lu  <luangruo@yahoo.com>

	Avoid using too up-to-date values when restoring valuators

	* src/xterm.c (xi_has_scroll_valuators): New function.
	(xi_handle_device_changed): If the device changed event provides
	scroll valuators, then use the values in there.  (bug#58980)

2022-11-04  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-fixed-width): New user option.

	(tab-bar-fixed-width-max): New user option.
	(tab-bar-fixed-width-min): New variable.
	(tab-bar-fixed-width-faces): New variable.
	(tab-bar--fixed-width-hash): New function.
	(tab-bar-make-keymap-1): Use 'tab-bar-fixed-width'.

	https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg02067.html

2022-11-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	8cae9d8bd8 ; * doc/emacs/search.texi (Lax Search): Improve wording.  ...
	e01e8a8f84 ; * lisp/dired-aux.el (dired-show-file-type): Doc fix.

2022-11-04  Yuan Fu  <casouri@gmail.com>

	Fix treesit-parser-set-included-ranges

	Track whether a parser has ranges set ourselves.  See comment in
	Ftreesit_parser_included_ranges for detail.

	* src/treesit.c (make_treesit_parser): Initialize has_range.
	(Ftreesit_parser_set_included_ranges): Set has_range.  Fill docstring.
	(Ftreesit_parser_included_ranges): Check has_range.
	* src/treesit.h (Lisp_TS_Parser): Add has_range.

2022-11-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Minor tightening

	* src/itree.c (iter): Initialize to NULL.
	(init_itree): Make sure it's not allocated before we overwrite it.
	(itree_insert_gap): Tweak the end-loop.

2022-11-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree: Reproduce markers's behavior more faithfully (bug#58928)

	The most obvious problem was the lack of support for
	`insert-before-markers`, but the behavior was also different in a few
	other cases.

	* src/itree.h (itree_insert_gap):
	* src/itree.c (itree_insert_gap): Add `before_markers` arg.
	* src/lisp.h (adjust_overlays_for_insert):
	* src/buffer.c (adjust_overlays_for_insert): Add `before_markers` arg.

	* src/insdel.c (adjust_markers_for_replace, adjust_markers_for_insert)
	(adjust_markers_for_delete): Adjust overlays directly from here.
	(insert_1_both, insert_from_string_1, insert_from_gap)
	(insert_from_buffer_1, adjust_after_replace, replace_range)
	(replace_range_2, del_range_2): Don't adjust overlays explicitly here
	any more.

	* test/src/buffer-tests.el (test-overlay-insert-before-markers-empty)
	(test-overlay-insert-before-markers-non-empty): New tests.

2022-11-03  Dmitry Gutov  <dgutov@yandex.ru>

	project-buffers: Describe the default implementation

	* lisp/progmodes/project.el (project-buffers):
	Describe what the default implementation is doing (bug#58784).

2022-11-03  Dmitry Gutov  <dgutov@yandex.ru>

	project-kill-buffer-conditions: Skip Gnus modes as well

	* lisp/progmodes/project.el (project-kill-buffer-conditions):
	Skip Gnus modes as well (bug#58839).

2022-11-03  Dmitry Gutov  <dgutov@yandex.ru>

	project-kill-buffer-conditions: Skip hidden ones

	* lisp/progmodes/project.el (project-kill-buffer-conditions):
	Make exception for "hidden" buffers (bug#58839).

2022-11-03  Po Lu  <luangruo@yahoo.com>

	Fix initialization of scroll valuator emacs_value

	* src/xterm.c (xi_handle_device_changed): Initialize emacs_value
	to 0, not DBL_MIN.  (bug#58980)

2022-11-03  Philip Kaludercic  <philipk@posteo.net>

	Autoload all entry functions

2022-11-03  Yuan Fu  <casouri@gmail.com>

	Add contextual tree-sitter font-lock to ts-mode and js-mode

	* lisp/progmodes/js.el (js--treesit-font-lock-settings)
	* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Capture
	comment and strings.  Add empty lines.

2022-11-03  Jim Porter  <jporterbugs@gmail.com>

	Only strip newlines when stringifying a value for Eshell

	* lisp/eshell/esh-util.el (eshell-stringify): Use 'string-trim-right'
	instead of stripping the last character of the result of
	'pp-to-string' (bug#58810).

	* test/lisp/eshell/esh-util-tests.el: New file.

2022-11-03  Yuan Fu  <casouri@gmail.com>

	Minor change to tree-sitter imenu function of js-mode

	If someone don’t like the labels, they can set them to empty strings.

	* lisp/progmodes/js.el (js--treesit-imenu-type-alist): Add space.
	(js--treesit-imenu-label): Remove space.

2022-11-03  Philip Kaludercic  <philipk@posteo.net>

	* lisp/emacs-lisp/package-vc.el (package-vc-version): Use main file

2022-11-03  Philip Kaludercic  <philipk@posteo.net>

	Add command 'package-vc-checkout'

	* doc/emacs/package.texi: Document feature.
	* etc/NEWS: Mention feature.
	* lisp/emacs-lisp/package-vc.el (package-vc-clone): Extract
	functionality out of 'package-vc-unpack'.
	(package-vc-unpack): Extract functionality out to 'package-vc-clone'.
	(package-vc-checkout): Add command.

2022-11-03  Paul Eggert  <eggert@cs.ucla.edu>

	Improve suppression of bogus macOS warnings

	* configure.ac: On macOS, always use -Wno-deprecated-declarations,
	as the false alarms appear even if --disable-gcc-warnings is given
	(Bug#58966).

2022-11-03  Juri Linkov  <juri@linkov.net>

	Fix overlays order in Flyspell (bug#58970)

	Flyspell relies on the sorting order of overlays from 'overlays-in'
	that returned the overlays sorted by decreased 'overlay-start'.
	But after the recent merge of the noverlay branch, the order was reversed.
	So need to change the order back to the expected by Flyspell.

	* lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-word):
	Sort overlays returned from 'overlays-in' descending by 'overlay-start'.

2022-11-03  Basil L. Contovounesios  <contovob@tcd.ie>

	Port interval trees to --enable-checking=structs

	Some names under the interval_* namespace were renamed under the
	itree_* namespace in commits:

	  0. f421b58db5 of 2022-10-19
	  "Prefix all itree.h type names with itree_".
	  1. 37a1145410 of 2022-10-19
	  "Rename all exported itree.h functions with the itree_ prefix"

	Further, some values still referenced in commentary were removed in
	commits:

	  2. 258e618364 of 2022-10-17
	  "Delete the itree_null sentinel node, use NULL everywhere."
	  3. 2c4a3910b3 of 2022-10-02
	  "itree: Use a single iterator object"

	* src/emacs.c (main): Allocate global itree iterator once and for
	all.
	* src/alloc.c (mark_overlay):
	* src/buffer.c (set_overlays_multibyte):
	* src/itree.c (itree_destroy): Update commentary.
	(interval_stack_ensure_space, itree_insert_gap): Prefer
	unsigned-to-unsigned comparisons over signed-to-unsigned.
	(interval_stack_push_flagged, interval_tree_insert)
	(interval_tree_contains, itree_iterator_start)
	(itree_iterator_finish, itree_iterator_next, itree_iterator_narrow):
	Improve assertions.
	(itree_init): Rename...
	(init_itree): ...to this, for consistency with other global init
	functions.
	(itree_create): Stop leaking a global iterator allocation on each
	call.
	(interval_tree_init): Complete renames of
	interval_tree -> itree_tree and interval_tree_clear -> itree_clear.
	(interval_tree_remove_fix): Fix indentation.
	* src/itree.h: Declare init_itree.
	(ITREE_FOREACH): Fix typo in commentary.

	* src/pdumper.c [CHECK_STRUCTS]
	(dump_interval_node): Use the correct name in the HASH condition
	and #error message.
	(dump_overlay, dump_buffer): Update HASH (bug#58975).

2022-11-03  Juanma Barranquero  <lekktu@gmail.com>

	* src/gnutls.c (Fgnutls_available_p): Avoid duplicating capabilities.

2022-11-03  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in profiler.el

	* lisp/profiler.el (profiler-report-mode-map): Prefer
	defvar-keymap.

2022-11-03  Po Lu  <luangruo@yahoo.com>

	Further simplify valuator reset code

	* src/xterm.c (xi_reset_scroll_valuators_for_device_id): Minor
	style adjustments.
	(handle_one_xevent): Don't check frames; reset on all XI_Enter
	and XI_Leave events.

2022-11-03  Po Lu  <luangruo@yahoo.com>

	More style fixes to tree-sitter code

	* src/treesit.c (treesit_node_uptodate_p):
	* src/treesit.h: Fix coding style.

2022-11-03  Po Lu  <luangruo@yahoo.com>

	Minor fixes to last tree-sitter change

	* src/treesit.c (treesit_find_override_name): Initialize
	variable.
	(Ftreesit_query_expand): Revert change to behavior.

2022-11-03  Po Lu  <luangruo@yahoo.com>

	Stylistic changes to tree-sitter code

	* src/treesit.c (treesit_find_override_name)
	(treesit_load_language_push_for_each_suffix, treesit_load_language)
	(Ftreesit_language_available_p, treesit_record_change)
	(make_treesit_parser, make_treesit_node, make_treesit_query)
	(Ftreesit_parser_create, Ftreesit_parser_delete, Ftreesit_parser_list)
	(treesit_check_range_argument, Ftreesit_parser_included_ranges)
	(Ftreesit_node_start, Ftreesit_node_end, Ftreesit_node_check)
	(Ftreesit_node_child_by_field_name, Ftreesit_pattern_expand)
	(Ftreesit_query_expand, treesit_predicates_for_pattern)
	(treesit_predicate_capture_name_to_text, treesit_predicate_equal)
	(treesit_predicate_match, treesit_eval_predicates)
	(Ftreesit_query_capture, treesit_search_dfs, treesit_build_sparse_tree)
	(syms_of_treesit): Use FOR_EACH_TAIL (or FOR_EACH_TAIL_SAFE where not
	obviously safe), and check list heads and tails correctly; fix coding
	style of various constructs, especially:

	  variable =
	    mumble (frob (bar), (foo () + bar ()) + (baz () + quux ()))

	which should actually be

	  variable
	    = mumble (frob (bar), (foo () + bar ()) + (baz () + quux ()))

	and

	  foo =
	    mumble (frob (bar), 0)
	      + (foo () + bar ())
	      + (baz () + quux ())

	which should actually be

	  foo = (mumble (frob (bar), 0)
		 + (foo () + bar ())
		 + (baz () + quux ()))

	* src/treesit.h: Make declaration coding style consistent.

2022-11-03  Gerd Möllmann  <gerd@gnu.org>

	Suppress deprecation warnings on macOS (bug#58966)

	* configure.ac (CHECK_LISP_OBJECT_TYPE): Add
	-Wno-deprecated-declarations for darwin.

2022-11-03  Eli Zaretskii  <eliz@gnu.org>

	Fix 'text-property-search-backward' with 1-char long properties

	* lisp/emacs-lisp/text-property-search.el
	(text-property--find-end-backward): Don't miss the end of
	text-property value at point.  This fixes searches backward when
	the property is on a single character position.  (Bug#58937)

2022-11-02  Yuan Fu  <casouri@gmail.com>

	Check for outdated tree-sitter node when printing

	* src/print.c (print_vectorlike): Check for outdated node.
	* src/treesit.c (treesit_check_node): Use the new function.
	(treesit_node_uptodate_p): New function.
	* src/treesit.h: Declare new function.

2022-11-02  Yuan Fu  <casouri@gmail.com>

	Pass region start and end to tree-sitter fontification functions

	* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
	* lisp/progmodes/js.el (js--fontify-template-string)
	* lisp/progmodes/python.el (python--treesit-fontify-string): Update
	function to only fontify within the region.
	* lisp/treesit.el (treesit-font-lock-rules): Update docstring.
	(treesit-font-lock-fontify-region): Pass START and END to
	fontification functions.

2022-11-02  Yuan Fu  <casouri@gmail.com>

	Add handling of contextual entities in tree-sitter font-lock

	* lisp/progmodes/python.el: Remove function.
	(python--treesit-settings): Capture contextual node.
	* lisp/treesit.el (treesit--set-nonsticky):
	(treesit-font-lock-contextual-post-process): New functions.
	(treesit-font-lock-fontify-region): Change local variable START and
	END to NODE-START and NODE-END, handle special capture name
	"contextual".
	* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.

2022-11-02  Paul Eggert  <eggert@cs.ucla.edu>

	Initialize child signal handling before posix_spawn too.

	Problem reported by Tino Calancha (Bug#58960).
	* src/callproc.c (call_process): Initialize SIGCHLD handling
	before possibly creating a child with emacs_span.  This need not
	be in the critical section that calls emacs_spawn, so do it
	outside the critical section.
	* src/process.c (child_signal_init): Now extern.

2022-11-02  Yuan Fu  <casouri@gmail.com>

	Change signature of tree-sitter font-lock functions

	Change from

	(START END NODE OVERRIDE &rest _)

	to

	(NODE OVERRIDE &rest _)

	START and END aren't used frequently enough to justify.  If a
	fontification function needs them, it can get them from NODE.

	* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.

	* lisp/progmodes/js.el (js--fontify-template-string)
	* lisp/progmodes/python.el (python--treesit-fontify-string)
	(python--treesit-fontify-string-end): Change signature.

	* lisp/treesit.el (treesit-font-lock-rules): Update docstring.
	(treesit-font-lock-fontify-region): Remove START and END arguments.

2022-11-02  Juri Linkov  <juri@linkov.net>

	Add the parameter :noquery to open-network-stream (bug#58948)

	* doc/lispref/processes.texi (Network): Add :noquery for open-network-stream.

	* lisp/net/network-stream.el (open-network-stream): Pass the
	parameter :noquery to make-network-process.  Doc fix.

	* lisp/progmodes/eglot.el (eglot--connect): Pass `:noquery t' to
	eglot--inferior-bootstrap to use in open-network-stream call, like
	`:noquery t' is passed to make-process in other places.

2022-11-02  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/man.el (Man-mode-map): Prefer defvar-keymap.

2022-11-02  Philip Kaludercic  <philipk@posteo.net>

	Track file name in 'package--downloads-in-progress'

	* lisp/emacs-lisp/package.el (package--download-one-archive): Move
	'cl-pushnew' call from 'package--download-one-archive' and cons file
	name onto the archive.
	(package--download-one-archive): Cons the file name onto the archive.
	(package--download-and-read-archives): Remove 'cl-pushnew' call.

2022-11-02  Po Lu  <luangruo@yahoo.com>

	Improve commentary in some parts of xterm.c

	* src/xterm.c (x_probe_xfixes_extension): Rename to
	`x_fixes_pointer_blanking_supported', as fixes is now used for
	selection tracking as well.  All callers changed.
	(x_focus_changed): Document where this code is used.

2022-11-02  Paul Eggert  <eggert@cs.ucla.edu>

	Remove unused local in simple_search

	* src/search.c (simple_search): Remove unused local.

2022-11-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/buffer.c: Fix interaction between overlays & indirect buffers (bug#58928)

	* src/buffer.c (adjust_overlays_for_insert)
	(adjust_overlays_for_delete): Repeat for all buffers sharing the same text.

	* src/itree.c (itree_insert_gap, itree_delete_gap): Allow an empty tree.

	* test/src/buffer-tests.el (buffer-tests--overlays-indirect-bug58928):
	New test.

2022-11-01  Dmitry Gutov  <dgutov@yandex.ru>

	project-switch-project: Avoid altering default-directory in cb

	* lisp/progmodes/project.el (project-switch-project):
	Avoid altering default-directory in the current buffer, even
	temporarily (bug#58784).

2022-11-01  Dmitry Gutov  <dgutov@yandex.ru>

	vc-svn-ignore-completion-table: Ignore empty lines

	* lisp/vc/vc-svn.el (vc-svn-ignore-completion-table):
	Make sure to ignore empty lines (bug#58889).

2022-11-01  Yuan Fu  <casouri@gmail.com>

	Fix string fontification for tree-sitter python-mode

	Now when user inserts a ending quote, the whole string is ganranteed
	to be refontified and redisplayed.

	* lisp/progmodes/python.el (python--treesit-fontify-string): Change
	docstring, now it's called on the leading quote.
	(python--treesit-fontify-string-end): New function.
	(python--treesit-settings): Capture both leading and ending quote in a
	string.

2022-11-01  Yuan Fu  <casouri@gmail.com>

	Don't print buffer when printing tree-sitter node and parser

	Additionally, print node's position in buffer.

	* doc/lispref/parsing.texi (Retrieving Node): Reflect this change in
	manual.
	* src/print.c (print_vectorlike): Remove printing of buffer, add
	printing of node position.

2022-11-01  Yuan Fu  <casouri@gmail.com>

	Allow user to add/remove tree-sitter font-lock features

	* lisp/treesit.el (treesit-font-lock-recompute-features): Add
	ADD-LIST, REMOVE-LIST argument.

2022-11-01  Yuan Fu  <casouri@gmail.com>

	Query on the root node in tree-sitter font-lock

	Rather than querying on the smallest node that spans START to END, we
	query on the root node between START to END.

	* lisp/progmodes/python.el (python--treesit-fontify-string): Accept
	the string rather than the quote node.
	(python--treesit-settings): Capture the string rather than the quote
	node.
	* lisp/treesit.el (treesit-font-lock-fontify-region): Query the root
	node rather than the smallest node.

2022-11-01  Gregory Heytings  <gregory@heytings.org>

	Add a script to ease bisecting.

	* admin/git-bisect-start: New script.

	* admin/notes/repo (Bisecting): Mention the script.

	* admin/emake: Add a Copyright blurb.

2022-11-01  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/dbus.el (dbus-debug): Declare.  (Bug#58865)

2022-11-01  Philip Kaludercic  <philipk@posteo.net>

	Ensure 'package-vc-update' runs 'package-vc-unpack-1' only once

	* lisp/emacs-lisp/package-vc.el (package-vc-update): Use
	'vc-sourced-packages-list' and other hacks.

2022-11-01  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_term_init): Fix last change.

2022-11-01  Po Lu  <luangruo@yahoo.com>

	Fix leak on Lucid build

	* src/xterm.c (x_term_init): Rectify wrong fix for bug#18403.

2022-11-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1862df834c ; * src/search.c (Fmatch_data): Doc fix.
	15fc5225b1 ; * lisp/whitespace.el (whitespace-trailing): Fix a typo.
	9f3c896f7c ; * doc/emacs/text.texi (Quotation Marks): Typo fix.  (Bug...

	# Conflicts:
	#	src/search.c

2022-11-01  Gerd Möllmann  <gerd@gnu.org>

	Prevent a buffer-overflow (bug#58850)

	* src/print.c (print_vectorlike): Don't use sprintf.

2022-11-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-10-29 17:48:52 UTC.

2022-11-01  Po Lu  <luangruo@yahoo.com>

	Fix leaks of XImage structures in image.c

	* src/image.c (image_clear_image, lookup_image): Fix coding
	style.
	(x_destroy_x_image): Remove unnecessary assertion.  Call
	XDestroyImage, since otherwise only the image data is freed.
	(image_from_emacs_colors): Rename variables to make more sense.

2022-10-31  Stephen Leake  <stephen_leake@stephe-leake.org>

	Fix eglot-shutdown-all: Match current eglot-shutdown signature

2022-10-31  Yuan Fu  <casouri@gmail.com>

	Use treesit-fontify-with-override in tree-sitter functions

	* lisp/progmodes/js.el (js--fontify-template-string)
	* lisp/progmodes/python.el (python--treesit-fontify-string): Use
	treesit-fontify-with-override.

2022-10-31  Yuan Fu  <casouri@gmail.com>

	Add an argument OVERRIDE to tree-sitter font-lock functions

	* doc/lispref/modes.texi (Parser-based Font Lock): Reflect this change
	in manual.
	* lisp/progmodes/js.el (js--fontify-template-string): Add _OVERRIDE
	argument.
	* lisp/progmodes/python.el (python--treesit-fontify-string): Add
	_OVERRIDE argument.
	* lisp/treesit.el (treesit-font-lock-rules): Update docstring.
	(treesit-fontify-with-override): New function.
	(treesit-font-lock-fontify-region): Extract out into
	treesit-fontify-with-override.

2022-10-31  Michael Albinus  <michael.albinus@gmx.de>

	Fix tramp-handle-file-newer-than-file-p

	* lisp/net/tramp.el (tramp-handle-file-newer-than-file-p): Don't use
	fractions of seconds.  (Bug#58842)

2022-10-31  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in cus-edit.el

	* lisp/cus-edit.el (custom-mode-map, custom-mode-link-map): Prefer
	defvar-keymap.

2022-10-31  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/emacs-lisp/multisession.el: Add Commentary.  (Bug#58845)

	* lisp/vcursor.el (vcursor-map): Prefer defvar-keymap.

2022-10-31  Philip Kaludercic  <philipk@posteo.net>

	Allow specifying and pinning source packages to be installed

	* lisp/emacs-lisp/package-vc.el (package-vc--select-packages): Add
	custom setter for 'package-vc-selected-packages'.
	(package-vc-selected-packages): Add user option.

2022-10-31  Yuan Fu  <casouri@gmail.com>

	Use tree-sitter for font-lock's syntactic function (optionally)

	Before this change, we rebind font-lock-fontify-region-function and
	call font-lock's function in tree-sitter's function, and the order of
	fontification is tree-sitter, font-lock syntax, font-lock regexp.

	Now we make font-lock's syntax function customizable and replace it
	with tree-sitter's function, and the order of fontification is
	tree-sitter, font-lock regexp.

	* doc/lispref/modes.texi (Parser-based Font Lock): Reflect the change
	in manual.
	* lisp/font-lock.el (font-lock-fontify-syntactically-function): New
	variable.
	(font-lock-default-fontify-region): Call
	font-lock-fontify-syntactically-function rather.
	(font-lock-fontify-syntactically-region): Rename to
	font-lock-default-fontify-syntactically
	(font-lock-default-fontify-syntactically): Rename to this.

	* lisp/treesit.el (treesit-font-lock-fontify-region): Don't call
	font-lock functions.
	(treesit-font-lock-enable): Remove this function.  It is not used even
	before this change.
	(treesit-major-mode-setup): Instead of binding
	font-lock-fontify-region-function, now bind to
	font-lock-fontify-syntactically-function.  And we can let font-lock do
	its thing.

2022-10-31  Yuan Fu  <casouri@gmail.com>

	Improve python tree-sitter's string fontification

	* lisp/progmodes/python.el (python--treesit-fontify-string): Handle
	not only f-strings, but also docstrings, and NODE is now the last
	quote rather than the whole string.
	(python--treesit-settings): Use python--treesit-fontify-string for
	every occasion.

2022-10-30  Yuan Fu  <casouri@gmail.com>

	Add tresit--font-lock-verbose

	* lisp/treesit.el (tresit--font-lock-verbose): New variable.
	(treesit-font-lock-fontify-region): Take tresit--font-lock-verbose
	into account.  Return jit-lock-bounds.

2022-10-30  Yuan Fu  <casouri@gmail.com>

	Set jit-lock-contextually in treesit-major-mode-setup

	* lisp/treesit.el (treesit-major-mode-setup): Set jit-lock-contextually.

2022-10-30  Dmitry Gutov  <dgutov@yandex.ru>

	Fix semantic-symref-perform-search when dir contains a space

	* lisp/cedet/semantic/symref/grep.el (semantic-symref-grep--local-dir):
	New variable.
	(semantic-symref-perform-search): Use it.  And use "." when
	expanding the template to substitute for the current dir.
	(semantic-symref-parse-tool-output-one-line): Use it (bug#55016)

2022-10-30  Dmitry Gutov  <dgutov@yandex.ru>

	Speed up vc-default-checkin-patch a little

	* lisp/vc/vc.el (vc-default-checkin-patch): Drop some
	'revert-buffer' calls to speed up the process a little (bug#52349).

2022-10-30  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in simula.el

	* lisp/progmodes/simula.el (simula-mode-map): Prefer
	defvar-keymap.

2022-10-30  Philip Kaludercic  <philipk@posteo.net>

	Merge remote-tracking branch 'origin/master' into feature/package+vc

2022-10-30  Juri Linkov  <juri@linkov.net>

	* lisp/tab-line.el: Allow user-defined cache-key function (bug#57848)

	(tab-line-cache-key-default): New function.
	(tab-line-cache-key-function): New variable.
	(tab-line-format): Funcall tab-line-cache-key-function.

2022-10-30  Juri Linkov  <juri@linkov.net>

	* lisp/tab-line.el: Escape %-constructs in tab names (bug#57848)

	(tab-line-tab-name-format-default): Replace % with %% in tab name
	to escape %-constructs from processing by mode-line-format.

2022-10-30  Gregory Heytings  <gregory@heytings.org>

	Merge master into feature/improved-locked-narrowing.

2022-10-30  Philip Kaludercic  <philipk@posteo.net>

	Have 'last-change' accept a line number instead of a range

	* lisp/emacs-lisp/package-vc.el (package-vc-release-rev): Use new
	signature.
	* lisp/vc/vc-git.el (vc-git-last-change): Update signature
	* lisp/vc/vc.el (vc-default-last-change): Update signature and use
	'annotate-command'.

2022-10-30  Philip Kaludercic  <philipk@posteo.net>

	Display a message after installing source packages

	* lisp/emacs-lisp/package-vc.el (package-vc-unpack-1): Print message
	and return t.

2022-10-30  Philip Kaludercic  <philipk@posteo.net>

	Prefer "Package-Version" over "Version" if available

	* lisp/emacs-lisp/package-vc.el (package-vc-release-rev): Search for
	both in sequence.

2022-10-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/url/url-util.el (url-insert-entities-in-string): Simplify

2022-10-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	dom-print: Fix missing entities quoting

	Also use `?\s` for the space character.

	* lisp/dom.el (dom-print): Properly quote special characters to avoid
	generating invalid HTML/XML.
	(dom-tag, dom-attributes, dom-children, dom-node)
	(dom-add-child-before): Simplify.
	(dom-set-attribute): Add at beginning rather than at end (slightly
	more efficient and less destructive).

2022-10-30  Stefan Kangas  <stefankangas@gmail.com>

	elide-head: Make trailing "/" in URL optional

	* lisp/elide-head.el (elide-head-headers-to-hide): Make trailing
	"/" in the gnu.org URL optional for the GPL.
	* test/lisp/elide-head-tests.el
	(elide-head--test-headers-to-hide/gpl3-5): New test.

2022-10-30  Damien Cassou  <damien@cassou.me>

	Make previous-buffer and next-buffer repeatable

	* lisp/bindings.el (buffer-navigation-repeat-map): Add new map.
	* lisp/bindings.el (previous-buffer, next-buffer): Mark as
	repeatable.  (Bug#58800)

2022-10-30  Philip Kaludercic  <philipk@posteo.net>

	Extract last source package release from local VCS data

	* lisp/emacs-lisp/package-vc.el (package-vc-archive-spec-alist):
	Unmention :release-rev
	(package-vc-desc->spec): Fall back on other archives if a
	specification is missing.
	(package-vc-main-file): Add new function, copying the behavior of
	elpa-admin.el.
	(package-vc-generate-description-file): Use 'package-vc-main-file'.
	(package-vc-unpack): Handle special value ':last-release'.
	(package-vc-release-rev): Add new function using 'last-change'.
	(package-vc-install): Pass ':last-release' as REV instead of a
	release.
	* lisp/vc/vc-git.el (vc-git-last-change): Add Git 'last-change'
	implementation.
	* lisp/vc/vc.el (vc-default-last-change): Add default 'last-change'
	implementation.

	This attempts to replicate the behavior of elpa-admin.el's
	"elpaa--get-last-release-commit".

2022-10-30  Damien Cassou  <damien@cassou.me>

	Make winner key sequences repeatable in repeat-mode

	* lisp/winner.el (winner-repeat-map): New variable.
	(winner-undo, winner-redo): Put 'repeat-map' property with
	'winner-repeat-map'.  (Bug#58799)

2022-10-30  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in etags.el

	* lisp/progmodes/etags.el (select-tags-table-mode-map): Prefer
	defvar-keymap.

2022-10-30  Visuwesh  <visuweshm@gmail.com>

	Fix set-language-info-alist when multiple PARENTS are given

	* lisp/international/mule-cmds.el (set-language-info-setup-keymap):
	Function factored out from...
	(set-language-info-alist): ...here.  Do not mess up the keymaps when
	multiple parents are given in PARENTS.  (Bug#58376)

2022-10-30  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Minibuffer follows selected tabs (bug#58728)

	(tab-bar-select-tab): Set set-window-configuration
	arg DONT-SET-MINIWINDOW to t.  Reselect the previously active minibuffer
	and unselect unnecessarily selected minibuffer.
	(tab-bar-history-back, tab-bar-history-forward): Set set-window-configuration
	arg DONT-SET-MINIWINDOW to t.

2022-10-30  Po Lu  <luangruo@yahoo.com>

	Plug big leaks upon display IO error

	Frame GCs are still leaked, but there is nothing that can be
	done in that case because the display connection is dead.

	* src/xterm.c (x_delete_terminal): Always free xkb desc and
	modmap.

2022-10-29  Yuan Fu  <casouri@gmail.com>

	Separate python tree-sitter fontification into features

	Level 1: comment string function-name class-name
	Level 2: keyword builtin constant type
	Level 3: assignment decorator escape-sequence string-interpolation

	* lisp/progmodes/python.el (python--treesit-settings): Separate.
	(python-mode): Set features.

2022-10-29  Yuan Fu  <casouri@gmail.com>

	Fix byte-compile warning in treesit.el

	Originally treesit-simple-indent-presets was

	'((parent-is . (lambda (type)
	                 `(lambda (n p b)
	                    (equal (treesit-node-type p)
	                           ,type)))))

	Then I changed it to

	`((parent-is . ,(byte-compile
	                 (lambda (type)
	                   (lambda (n p b)
	                     (equal (treesit-node-type p)
	                            type))))))

	but that generates "function already compiled" warning when
	byte-compiling treesit.el.  The latest form shouldn't have any problem
	anymore.

	* lisp/treesit.el (treesit-simple-indent-presets): Change byte-compile
	to plain evaluation.

2022-10-29  Yuan Fu  <casouri@gmail.com>

	Not return noindent in treesit-indent

	* lisp/treesit.el (treesit-indent): Don't return noindent.
	(treesit-defun-type-regexp): Return (nil . nil) rather than nil.

2022-10-29  Yuan Fu  <casouri@gmail.com>

	Add treesit-node-top-level

	Merge treesit-node-top-level-p and treesit--find-top-level-match into
	treesit-node-top-level.

	* doc/lispref/parsing.texi (Retrieving Node): Add manual entry for it.
	* lisp/progmodes/js.el (js--treesit-imenu-1): Replace
	treesit-node-top-level-p with treesit-node-top-level.
	* lisp/treesit.el (treesit-node-top-level-p)
	(treesit--find-top-level-match): Remove functions.
	(treesit-node-top-level): New function.
	* lisp/treesit.el (treesit-beginning-of-defun)
	(treesit-end-of-defun): Replace treesit--find-top-level-match with
	treesit-node-top-level.

2022-10-29  Yuan Fu  <casouri@gmail.com>

	Reflect recent change in tree-sitter manual sections

	* doc/lispref/modes.texi (Parser-based Font Lock):
	treesit-font-lock-enable is replaced by treesit-major-mode-setup.
	* doc/lispref/modes.texi (Parser-based Indentation): Mention
	treesit-major-mode-setup,
	* doc/lispref/parsing.texi (Tree-sitter major modes): Remove
	treesit-mode and global-treesit-mode, explain setup guideline.

2022-10-29  Yuan Fu  <casouri@gmail.com>

	Fix parent-bol preset for tree-sitter indent

	* lisp/treesit.el (treesit-simple-indent-presets): Return point rather
	than column.

2022-10-29  Yuan Fu  <casouri@gmail.com>

	Keep cursor position in treesit-indent

	* lisp/treesit.el (treesit-indent): Create a marker and jump back to
	that marker after indentation.

2022-10-29  John Wiegley  <johnw@newartisans.com>

	Merge pull request from andreyorst/face-spec-set-third-argument

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1009

2022-10-29  Yuan Fu  <casouri@gmail.com>

	Remove hack in js-mode's tree-sitter indentation rules

	* lisp/progmodes/js.el (js--treesit-backward-up-list): Remove
	function.
	(js--treesit-indent-rules): Replace with new rule.

2022-10-29  Yuan Fu  <casouri@gmail.com>

	Refine handling of node at point in treesit-indent

	* doc/lispref/modes.texi (Parser-based Indentation): Document the
	semantic clearly.
	* lisp/treesit.el (treesit-simple-indent-presets): Replace with
	current-indentation.
	(treesit--indent-1): Now NODE always starts at BOL, and parent is
	always the smallest node above NODE that spans BOL.
	(treesit-indent): Don't use save-excurtion, no one else does.

2022-10-29  Yuan Fu  <casouri@gmail.com>

	Fix treesit-indent-region

	* lisp/treesit.el (treesit-simple-indent-presets): Remove extra comma.
	(treesit--indent-1): Return (ANCHOR . OFFSET) instead of column.
	(treesit-indent): Accept (ANCHOR . OFFSET) from treesit--indent-1.
	(treesit--indent-region-batch-size): Reduce to 400.
	(treesit-indent-region): Put a marker on each line's ANCHOR and
	compute the indentation with ANCHOR + OFFSET.  Precomputing column
	gives wrong indentation when the ANHOR line doesn't have correct
	indent yet.

2022-10-29  Eli Zaretskii  <eliz@gnu.org>

	Set 'native-comp-debug' to zero on MS-Windows

	* lisp/emacs-lisp/comp.el (native-comp-debug): Don't emit debug
	symbols on MS-Windows.  The default was originally made 1 because
	without that, C backtraces on Windows would not show
	natively-compiled functions correctly, or would even stop short of
	reaching the topmost call frame.  But that turned out to be due to
	a bug in GDB, which was meanwhile fixed in GDB 12.  So we can now
	reset the value back to zero, and gain smaller *.eln files on
	MS-Windows.

2022-10-29  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in ps-mode.el

	* lisp/progmodes/ps-mode.el (ps-mode-map, ps-run-mode-map): Prefer
	defvar-keymap.

2022-10-29  Alan Mackenzie  <acm@muc.de>

	Fix the subr-arity returned by native compiled functions with lots of args

	This fixes bug #58739.  Make subr-arity return, e.g., (12 . 12) rather than
	(12 . many) for a function with a fixed number of arguments more than 8.

	* lisp/emacs-lisp/comp.el (comp-prepare-args-for-top-level): Only return a cdr
	of 'many when there are &rest arguments.

	* src/eval.c (eval_sub): Also check for a fixed number of args over 8 when
	using the nargs + *args calling convention.
	(funcall_subr): Also check numargs <= 8 before using the fixed args calling
	convention.  Include the case numargs > 8 in the aMany calling convention.

	* src/lisp.h (DEFUN): Amend the comment about MANY.

2022-10-29  Eli Zaretskii  <eliz@gnu.org>

	Make Dired header clickable on non-Posix systems as well

	* lisp/dired.el (dired--make-directory-clickable): Support
	MS-Windows and MS-DOS absolute directory names with drive letters
	and UNCs.  (Bug#21973)

2022-10-29  Eli Zaretskii  <eliz@gnu.org>

	Display the Dired buffer as unmodified initially

	* lisp/dired.el (dired-readin): Make sure a newly-created Dired
	buffer is shown as unmodified.  (Bug#58863)

2022-10-29  Andrey Listopadov  <andreyorst@gmail.com>  (tiny change)

	Allow passing the SPEC-TYPE argument via :custom-face

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1008

2022-10-29  Po Lu  <luangruo@yahoo.com>

	Fix another GCC warning

	* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): Fix
	another compiler warning.

2022-10-29  Po Lu  <luangruo@yahoo.com>

	Fix crash destroying NS frame tool bar

	* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): Work
	around silly GCC bug causing splurious warnings.
	([EmacsWindow dealloc]): Detach tool bar before dealloc'ing
	window.  (bug#58857)

2022-10-29  Alan Mackenzie  <acm@muc.de>

	c-get-fontification-context: Refine the last non-default arm of the cond

	This fixes bug #58772.

	* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Make the function
	return (decl . nil) when MATCH-POS is in the second paren list of something
	like DEFUN (..) (..).  Tidy up untidy code with save-excursion's for greater
	accuracy.  Set a c-type text property value c-decl-arg-start to speed up
	future calls.  Reindent the entire function.

2022-10-29  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in help.el

	* lisp/help.el (help-key): New function.
	(help-map): Prefer defvar-keymap.

2022-10-28  Yuan Fu  <casouri@gmail.com>

	Remove test of treesit-language-at

	Because now it just calls a user-supplied function rather than doing
	any work by itself.

	* test/src/treesit-tests.el (treesit-parser-supplemental): Remove the
	test.

2022-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in page-ext.el

	* lisp/textmodes/page-ext.el (pages--ctl-x-ctl-p-map)
	(pages-directory-mode-map): Prefer defvar-keymap.

2022-10-28  Yuan Fu  <casouri@gmail.com>

	Byte-compile treesit-simple-indent-presets

	* lisp/treesit.el (treesit-simple-indent-presets): Byte-compile these
	functions.

2022-10-28  Po Lu  <luangruo@yahoo.com>

	Fix last change

	* src/itree.c (struct itree_iterator):
	(itree_iterator_next): Fix some fields and const confusion.

2022-10-28  Yuan Fu  <casouri@gmail.com>

	Add treesit-indent-region

	Now indenting a large buffer is reasonably fast.

	* lisp/treesit.el (treesit-indent): Move meat to treesit--indent-1.
	(treesit--indent-1)
	(treesit-indent-region): New functions.
	(treesit-major-mode-setup): Setup indent-region-function.

2022-10-28  Po Lu  <luangruo@yahoo.com>

	Fix function declarations in itree headers

	* src/itree.h: Make all declarations `extern'.

2022-10-28  Po Lu  <luangruo@yahoo.com>

	Fix coding style of latest feature branch merge

	* src/itree.c (interval_stack_ensure_space)
	(interval_stack_push_flagged, struct itree_iterator)
	(struct check_subtree_result, check_subtree, check_tree)
	(itree_newlimit, interval_tree_inherit_offset)
	(interval_tree_propagate_limit, itree_node_init, itree_node_begin)
	(itree_node_end, itree_create, interval_tree_rotate_left)
	(interval_tree_rotate_right, interval_tree_insert_fix)
	(interval_tree_insert, itree_insert, itree_node_set_region)
	(interval_tree_contains, interval_tree_subtree_min)
	(interval_tree_remove_fix, interval_tree_replace_child)
	(interval_tree_transplant, itree_remove, itree_iterator_start)
	(itree_insert_gap, itree_delete_gap, interval_node_intersects)
	(itree_iterator_next, itree_iterator_narrow): Tabify.  Fix
	comment and code coding style.

2022-10-28  Po Lu  <luangruo@yahoo.com>

	Include Cairo FreeType header when available

	* src/xsettings.c: Include cairo-ft.h if CAIRO_HAS_FT_FONT.
	(bug#58830)

2022-10-28  Yuan Fu  <casouri@gmail.com>

	Make Emacs compile without tree-sitter library

	* lisp/treesit.el: Add function declaration forms.
	* src/emacs.c: Always include syms_of_treesit.

2022-10-28  Theodor Thornhill  <theo@thornhill.no>

	Add in new font lock features in js/ts-mode

	We want to support font lock features on the syntactic level, not only
	the decoration-level level.

	New supported features are:
	  - comment
	  - constant
	  - keyword
	  - string
	  - declaration
	  - identifier
	  - expression
	  - property
	  - pattern
	  - jsx

	* lisp/progmodes/js.el (js--treesit-font-lock-settings, js-mode): Add
	in the new features.

	* lisp/progmodes/ts-mode.el (ts-mode--indent-rules): Remove faulty '.'
	anchor.

	(ts-mode--font-lock-settings, ts-mode): Add in the new features.

2022-10-28  Yuan Fu  <casouri@gmail.com>

	* configure.ac (emacs_config_features): Change to TREE_SITTER

	Last commit on this line has a wrong changelog, the subject should be
	emacs_config_features, not WINDOW_SYSTEM_OBJ.

2022-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Fix warning in xsettings.c

	* src/xsettings.c [USE_CAIRO]: Include cairo-ft.h.
	Thanks to Vincent Bernat <bernat@luffy.cx>.

2022-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Remove redundant requires from make-mode.el

	* lisp/progmodes/make-mode.el (imenu, dabbrev, add-log): Remove
	redundant requires.

2022-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Use new sit-for calling convention in zone.el

	* lisp/play/zone.el (zone-exploding-remove): Don't use obsolete
	calling convention for 'sit-for'.

2022-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Minor doc fixes in make-mode.el

	* lisp/progmodes/make-mode.el:
	(makefile-insert-macro, makefile-pickup-everything)
	(makefile-backslash-region): Minor doc fixes.
	(makefile-browse): Use substitute-command-keys.

2022-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in make-mode.el

	* lisp/progmodes/make-mode.el (makefile-mode-map)
	(makefile-browser-map): Prefer defvar-keymap.

2022-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Prefer make-temp-name in make-mode.el

	* lisp/progmodes/make-mode.el
	(makefile-generate-temporary-filename): Make obsolete in favor of
	'make-temp-name'.  Simplify.
	(makefile-save-temporary): Don't use above obsolete function.

2022-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Ensure temp file is deleted in makefile overview

	* lisp/progmodes/make-mode.el (makefile-create-up-to-date-overview):
	Ensure temp file is always deleted.

2022-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	510020d30d ; Improve doc strings in whitespace.el

	# Conflicts:
	#	lisp/whitespace.el

2022-10-28  John Wiegley  <johnw@newartisans.com>

	Merge pull request from bhankas/master

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1007

2022-10-28  Philip Kaludercic  <philipk@posteo.net>

	Explicitly handle :vc-backend in a package specification

	* lisp/emacs-lisp/package-vc.el (package-vc-archive-spec-alist):
	Document the feature.
	(package-vc-unpack): Check for :vc-backend in both PKG-SPEC and the
	archive specification data.

2022-10-28  Philip Kaludercic  <philipk@posteo.net>

	Ensure that package specifications are always fetched

	* lisp/emacs-lisp/package-vc.el (package-vc--archives-initialize): Add
	new function, extending 'package--archives-initialize'.
	(package-vc-install): Use new function.
	(package-vc-link-directory): Use new function.

2022-10-28  Philip Kaludercic  <philipk@posteo.net>

	Allow specifying the VC backend used by 'package-vc-install'

	* lisp/emacs-lisp/package-vc.el (package-vc-install): Add argument BACKEND.

2022-10-28  Philip Kaludercic  <philipk@posteo.net>

	Update handling for new elpa-packages.eld format

	* lisp/emacs-lisp/package-vc.el (package-vc-elpa-packages-version):
	Add constant.
	(package-vc-archive-data-alist): Add variable.
	(package-vc--read-archive-data): Separate package specifications from
	metadata.
	(package-vc-unpack): Check archive metadata.

2022-10-28  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fontify cast types without adding them to c-found-types

	* lisp/progmodes/cc-engine.el (c-forward-type): Test for the special new
	value `just-one' of c-promote-possible-types, and if found, fontify the type,
	but don't add it to c-found-types.
	(c-forward-decl-or-cast-1): Add the new &optional parameter inside-macro.
	Whilst checking for a cast construct, analyze the text following the closing
	paren more rigorously.
	Check for, and allow, the closing paren of a macro arglist before the putative
	cast construct.

	* lisp/progmodes/cc-fonts.el (c-font-lock-declarations): In the lambda
	function, pass the parameter inside-macro to c-forward-decl-or-cast-1.

	* lisp/progmodes/cc-langs.el (c-primary-expr-regexp-details): New
	c-lang-defvar which calculates `c-primary-expr-regexp' and three match
	numbers for various sub-expressions in the regexp.
	(c-primary-expr-regexp): Now extracted from `c-primary-expr-regexp-details'.
	(c-per-++---match, c-per-&*+--match, c-per-\(-match): New
	c-lang-defconsts/vars extracted from `c-primary-expr-regexp-details'.

2022-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	cconv.el: Fix regression in cconv-tests-interactive-closure-bug51695

	The new code to make interpreted closures safe-for-space introduced
	a regression in `cconv-tests-interactive-closure-bug51695`, only seen
	when using TEST_LOAD_EL.
	A few other issues were found and fixed along the way.

	* lisp/emacs-lisp/cconv.el (cconv-fv): Change calling convention and
	focus on finding the free variables.
	(cconv-make-interpreted-closure): New function.

	* lisp/loadup.el: Use `compiled-function-p` rather than
	`byte-code-function-p` so we also use safe-for-space interpreted
	closures when we build with native compilation.
	(internal-make-interpreted-closure-function):
	Use `cconv-make-interpreted-closure`.

	* src/eval.c (syms_of_eval): Rename `internal-filter-closure-env-function`
	to `internal-make-interpreted-closure-function`.
	(Ffunction): Let that new var build the actual closure.

	* test/lisp/emacs-lisp/cconv-tests.el
	(cconv-tests-interactive-closure-bug51695): Test specifically the
	interpreted case.

2022-10-28  Jonas Bernoulli  <jonas@bernoul.li>

	* lisp/transient.el: Update to package version v0.3.7-173-g81b29ca

2022-10-28  Po Lu  <luangruo@yahoo.com>

	Improve Drag and Drop preamble in the Lisp reference manual

	* doc/lispref/frames.texi (Drag and Drop): Reword contents and
	clear up some ambiguities and redundancies.

2022-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Minor doc fixes in treesit.el

	* lisp/treesit.el (treesit-font-lock-rules)
	(treesit-font-lock-settings): Minor doc fixes.

2022-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/re-builder.el: Cosmetic changes

	(reb-valid-string): Declare it risky so the mode-line will obey its
	text-properties.
	(reb-lisp-syntax-p): No need to make it `defsubst`.
	(reb-target-value): New function to replace the
	`reb-target-binding` macro.  Adjust all callers.
	(reb-auto-update): Give a more informative error message than just
	"invalid" and give it a warning face.
	(reb-update-regexp): Always update `reb-regexp-src` (it's harmless),
	rather than only when it's necessary (reduces the need for advice in pcre.el).

2022-10-28  Jonas Bernoulli  <jonas@bernoul.li>

	Include more information in error data for sqlite errors

	Introduce a new 'sqlite-error' and use it for all errors signaled in
	'src/sqlite.c', except those that already used 'sqlite-locked-error'.
	Include the values of 'sqlite3_errcode', 'sqlite3_extended_errcode',
	'sqlite3_errstr' and 'sqlite3_errmsg' in the error data.

	* src/sqlite.c (load_dll_functions): Load 'sqlite3_extended_errcode'.
	(sqlite-load-extension): Use 'xsignal1' as required by argument type.
	(syms_of_sqlite): Introduce a new error type 'sqlite-error'.
	(check_sqlite, sqlite-open, bind_values, sqlite-execute)
	(sqlite-select, sqlite-load-extension, sqlite-next): Use it.
	(sqlite_prepare_errdata): New function.
	(sqlite_prepare_errmsg): Remove function.
	(sqlite-execute, sqlite-select): Use new function.
	(sqlite-locked-error): Derive from 'sqlite-error'.

2022-10-28  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix wrong fontification of enum foo bar; in Objective C Mode

	This fixes bug #58795 and bug #58796.

	* lisp/progmodes/cc-langs.el (c-type-prefix-kwds): Add the missing entry for
	objc.

2022-10-28  Payas Relekar  <relekarpayas@gmail.com>

	Bump version to 2.4.3

2022-10-28  Po Lu  <luangruo@yahoo.com>

	Simplify scroll valuator reset handling

	* src/xterm.c (xi_populate_device_from_info)
	(xi_reset_scroll_valuators_for_device_id, xi_handle_device_changed)
	(handle_one_xevent):
	* src/xterm.h (struct xi_scroll_valuator_t): Get rid of
	`pending_enter_reset', which was extremely convoluted and kept
	hitting server bugs.  Now, valuators are reset upon all crossing
	events.

2022-10-28  Po Lu  <luangruo@yahoo.com>

	Clean up some xwidgets code

	* src/xterm.c (handle_one_xevent): [HAVE_XWIDGETS]: Fix coding
	style and remove extra ifdefs.  Also avoid redundant frame
	lookups in some cases.

2022-10-28  Po Lu  <luangruo@yahoo.com>

	Fix Haiku subprocess support

	* src/callproc.c: Disable posix_spawn on Haiku until some things
	are fixed.

2022-10-28  Po Lu  <luangruo@yahoo.com>

	Fix build without Cairo FreeType and fontconfig support

	* src/xsettings.c (apply_xft_settings): Don't enable Xft code
	unless Cairo FreeType support is present.  (bug#58830)

2022-10-28  Yuan Fu  <casouri@gmail.com>

	Reflect tree-sitter indent rule presets change in manual

	* doc/lispref/modes.texi (Parser-based Indentation): String
	equivalence checks are changed to regexp matching.

2022-10-28  Theodor Thornhill  <theo@thornhill.no>

	Improve tree-sitter indent rules in ts-mode and js-mode

	* lisp/progmodes/js.el (js--treesit-indent-rules)
	* lisp/progmodes/ts-mode.el (ts-mode--indent-rules): Add more rules.
	(ts-mode): Create parser.

2022-10-28  Yuan Fu  <casouri@gmail.com>

	Add some js-mode tree-sitter indent rules

	* lisp/progmodes/js.el (js--treesit-indent-rules): Add rules and a let
	form.

2022-10-28  Yuan Fu  <casouri@gmail.com>

	Remove tree-sitter-indent's integration with cc-mode

	Also minor improvement of tree-sitter-indent error messaging.

	* lisp/progmodes/js.el (js--treesit-indent-rules): Fix it so it works
	with the new presets (which expects regexps).
	(js--treesit-cc-indent-rules): Remove variable.
	(js-mode): Go back to js--treesit-indent-rules.
	* lisp/treesit.el (treesit-indent): Don't report error message when
	ANCHOR or OFFSET is nil: let treesit-simple-indent display the
	message.
	(treesit-simple-indent): Remove cc-mode integration.  Display error
	message when no rules matches.

2022-10-28  Yuan Fu  <casouri@gmail.com>

	* configure.ac (WINDOW_SYSTEM_OBJ): Move tree-sitter placement.

2022-10-28  Wamm K. D  <jaft.r@outlook.com>

	Fix failing test for package Hierarchy

	This fixes a typo in one of the tests of Hierarchy which was causing
	the test to fail.
	* test/lisp/emacs-lisp/hierarchy-tests.el (hierarchy-delayed-add-trees):
	Fix typo.

2022-10-28  Vincent Bernat  <bernat@luffy.cx>  (tiny change)

	Fix detection of DPI changes in builds without Xft

	* src/xsettings.c (apply_xft_settings) [!HAVE_XFT]: Support
	XSETTINGS changes in non-XFT builds.  (Bug#43128)

2022-10-28  Payas Relekar  <relekarpayas@gmail.com>

	bind-key.el: Bump version for ELPA

2022-10-28  Protesilaos Stavrou  <info@protesilaos.com>

	Update to modus-themes version 3.0.0

	* doc/misc/modus-themes.org
	(Option for red-green color deficiency or deuteranopia)
	(Option for more bold constructs, Option for more italic constructs)
	(Option for font mixing, Option for box buttons)
	(Option for mode line presentation)
	(Option for accented background in tab interfaces)
	(Option for completion framework aesthetics, Option for mail citations)
	(Option for line numbers, Option for mouseover effects)
	(Option for diff buffer looks, Option for org-mode block styles)
	(Option for Org agenda constructs)
	(Option for the headings' overall style)
	(Option for variable-pitch font in UI elements, Note on SHR fonts):
	Revise markup of "non-nil" so that it is rendered properly in texinfo.

	(Option for fringe visibility, Option for line highlighting): Reword
	description of user option.

	(Full support for packages or face groups): Update list of supported
	packages or face groups.

	(Note on ERC escaped color sequences)
	(What is the best setup for legibility?)
	(Port the Modus themes to other platforms?): Prefer American English.

	(Note on pdf-tools link hints): Use double spacing between sentences

	(Acknowledgements): Update list of names that have contributed to the
	project, which was user feedback in this case.

	* etc/themes/modus-themes.el (modus-themes, modus-themes-faces):
	Reword doc string.
	(modus-themes--version): Update to current version.
	(modus-themes-version): Refine function definition.
	(modus-themes-completion-standard-first-match)
	(modus-themes-completion-standard-selected)
	(modus-themes-completion-extra-selected)
	(modus-themes-completion-key-binding, modus-themes-intense-markup)
	(modus-themes--heading-weights, modus-themes--completion): Delete
	obsolete forms, which were deprecated many months/version ago.
	(modus-themes-fringes, modus-themes-completions)
	(modus-themes-hl-line): Update default value and reword doc string
	accordingly.
	(modus-themes-faces): Update list of supported faces and their
	attributes.

	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-vivendi-theme.el: Update version header.

	Complete release notes: <https://protesilaos.com/codelog/2022-10-28-modus-themes-3-0-0/>.

2022-10-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from andreyorst/face-spec-set

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1004

2022-10-27  Wamm K. D  <jaft.r@outlook.com>

	Allow Hierarchy to delay computation of children

	This adds an option to allow callers to specify that computing
	the children of the hierarchy should be delayed to when the
	user calls for them, by utilizing the tree-widget :expander
	property.
	* lisp/emacs-lisp/hierarchy.el (hierarchy-add-tree)
	(hierarchy-add-trees): Add parameter 'delay-children-p'.
	* lisp/emacs-lisp/hierarchy.el
	(hierarchy--create-delayed-tree-widget): Add function.
	* lisp/emacs-lisp/hierarchy.el (hierarchy-convert-to-tree-widget):
	Utilize ':expander' if delaying children.  (Bug#55900)

	* test/lisp/emacs-lisp/hierarchy-tests.el: Add tests for
	delayed-children functionality.

2022-10-27  kobarity  <kobarity@gmail.com>

	Disable completion/ElDoc/FFAP when Python program is running

	* lisp/progmodes/python.el (python-completion-at-point)
	(python-ffap-module-path, python-eldoc--get-doc-at-point): Add check
	using `python-util-comint-end-of-output-p'.
	(python-util-comint-end-of-output-p): New function.
	* test/lisp/progmodes/python-tests.el (python-tests-shell-wait-for-prompt):
	Use `python-util-comint-end-of-output-p'.
	(python-completion-at-point-while-running-1)
	(python-ffap-module-path-1)
	(python-ffap-module-path-while-running-1)
	(python-eldoc--get-doc-at-point-1)
	(python-eldoc--get-doc-at-point-while-running-1): New tests.
	(Bug#58713)

2022-10-27  Andrea Monaco  <andrea.monaco@autistici.org>

	Allow applying Rmail summary filters consecutively

	* lisp/mail/rmailsum.el (rmail-summary-currently-displayed-msgs):
	New variable.
	(rmail-summary-apply-filters-consecutively): New user option.
	(rmail-summary-fill-displayed-messages, rmail-summary-negate): New
	functions.
	(rmail-summary-by-labels, rmail-summary-by-recipients)
	(rmail-summary-by-regexp, rmail-summary-by-topic)
	(rmail-summary-by-senders): Obey
	'rmail-summary-apply-filters-consecutively'.
	KEEP-FILTERING, to narrow the existing filtered summary.

	* etc/NEWS: Announce the change.

2022-10-27  Eli Zaretskii  <eliz@gnu.org>

	Revert "Allow applying filters to summary consecutively"

	This reverts commit c8b9ba5fa1bf3a20b9b08a553ad088ca33f3d1ba.

2022-10-27  Andrea Monaco  <andrea.monaco@autistici.org>

	Allow applying filters to summary consecutively

	* lisp/mail/rmailsum.el (rmail-summary-currently-displayed-msgs):
	New variable.
	(rmail-summary-fill-displayed-messages, rmail-summary-negate): New
	functions.
	(rmail-summary-by-labels, rmail-summary-by-recipients)
	(rmail-summary-by-regexp, rmail-summary-by-topic)
	(rmail-summary-by-senders): Accept an additional argument
	KEEP-FILTERING, to narrow the existing filtered summary.

	* etc/NEWS: Announce the change.

2022-10-27  Eli Zaretskii  <eliz@gnu.org>

	Avoid recentering when point enters invisible text at BOL

	* src/xdisp.c (try_cursor_movement): Don't say we must scroll when
	point is inside invisible text at beginning of a glyph row.
	(Bug#58793)

2022-10-27  Stefan Kangas  <stefankangas@gmail.com>

	Minor copy-edits in tree-sitter docs

	* doc/lispref/parsing.texi (Parsing Program Source): Improve wording.

2022-10-27  Po Lu  <luangruo@yahoo.com>

	Fix reporting of iconic state on old window managers

	* src/xterm.c (x_handle_wm_state): Handle IconicState if the
	window manager does not support _NET_WM_STATE_HIDDEN.

2022-10-27  Stephen Leake  <stephen_leake@stephe-leake.org>

	Fix auto-insert-alist ada-mode entry to match current ELPA ada-mode

2022-10-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from bhankas/master

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1006

2022-10-26  Payas Relekar  <relekarpayas@gmail.com>

	Update version to 2.4.2

	In preparation for inclusion to GNU ELPA.

2022-10-26  Yuan Fu  <casouri@gmail.com>

	Plug tree-sitter-simple-indent into c-offset-alist

	Now tree-sitter indentation can produce a cc-engine syntax symbol and
	use c-offset-alist to compute the offset.  Catch: line-up functions
	don't work with tree-sitter.

	* lisp/progmodes/js.el (js--treesit-cc-indent-rules): New variable.
	(js-mode): Use cc-indent rules by default.
	* lisp/treesit.el (treesit-simple-indent-presets): Consider types as
	regexp now.  New matchers: n-p-gp, field-is, top-level, catch-all.
	New anchors: nth-sibling, grand-parent, and, or, not, list.
	first-sibling now returns the actual first sibling rather than the
	first named sibling.

2022-10-26  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el (treesit-node-top-level-p): New argument TYPE.

2022-10-26  Yuan Fu  <casouri@gmail.com>

	Generalize js--treesit-imenu-top-level-p

	* lisp/progmodes/js.el (js--treesit-imenu-top-level-p): Move.
	(js--treesit-font-lock-settings): Fix usage.
	* lisp/treesit.el (treesit-node-top-level-p): Move to here.

2022-10-26  Yuan Fu  <casouri@gmail.com>

	Add tree-sitter navigation support to python-mode

	* lisp/progmodes/python.el (python-mode): Set
	treesit-defun-type-regexp.

2022-10-26  Yuan Fu  <casouri@gmail.com>

	Add tree-sitter imenu support for js-mode and ts-mode

	js-mode's current imenu is pretty plain and incomplete, so I took the
	liberty to add a bit more flair to it.

	* lisp/progmodes/js.el (js--treesit-imenu-type-alist): New variable.
	(js--treesit-imenu-top-level-p)
	(js--treesit-imenu-label)
	(js--treesit-imenu-1)
	(js--treesit-imenu): New functions.

2022-10-26  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter navigation

	* lisp/treesit.el (treesit-search-forward-goto): Track current
	position with a local variable instead of (point).  Clean up the
	condition forms.
	(treesit-beginning-of-defun): Fix traverse direction.

2022-10-26  Stefan Kangas  <stefankangas@gmail.com>

	Fix typo in textsec-restriction-level

	* lisp/international/textsec.el (textsec-restriction-level):
	* test/lisp/international/textsec-tests.el (test-restriction-level):
	Fix typo in symbol name `moderately-restrictive'.

2022-10-26  Stefan Kangas  <stefankangas@gmail.com>

	Declare variable Info-minibuf-history

	* lisp/info.el (Info-minibuf-history): Declare variable.
	(Bug#58786)

2022-10-26  John Wiegley  <johnw@newartisans.com>

	Merge pull request from bhankas/master

	GitHub-reference: https://github.com/jwiegley/use-package/issues/1005

2022-10-26  Filipp Gunbin  <fgunbin@fastmail.fm>

	Compare addresses case-insensitively in message-update-smtp-method-header

	* lisp/gnus/message.el (message-update-smtp-method-header): Compare
	addresses case-insensitively.

2022-10-26  Alan Mackenzie  <acm@muc.de>

	c-find-decl-spots: Replace an arbitrary search limit by a parameter

	The old arbitrary limit led to errors thrown whilst fontifying large areas of
	syntactic whitespace containing "#undef", as in src/comp.c.

	* lisp/progmodes/cc-engine.el (c-find-decl-spots): Replace the limit argument
	to two calls of c-forward-syntactic-ws by the parameter `cfd-limit'.

2022-10-26  Mauro Aranda  <maurooaranda@gmail.com>

	Make completion-category-overrides choices dynamic

	See https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01969.html

	* lisp/minibuffer.el (completion--update-styles-options): New internal
	function.

	(completion--styles-type): Use it.

2022-10-26  Eli Zaretskii  <eliz@gnu.org>

	Fix rare problems with current-column when text is invisible

	* src/indent.c (scan_for_column, compute_motion): Don't miss
	compositions when the position to check for composition happens to
	be inside invisible text.  (Bug#58791)

2022-10-26  Po Lu  <luangruo@yahoo.com>

	Prevent gui_consider_frame_title from restoring dead top frames

	* src/xdisp.c (unwind_format_mode_line): Check that
	old_top_frame is live before selecting it.  It could have been
	deleted, which leads to signals when the post-command-hook
	installed by xterm-set-window-title runs upon the last frame of
	a terminal being deleted.
	(gui_consider_frame_title): Rearrange code to be more
	understandable.

2022-10-26  Basil L. Contovounesios  <contovob@tcd.ie>

	Pacify recent unused/ignored lexvar warnings

	Lexvars with special names like 'ignored' or 'unused' are no longer
	treated specially.

	* lisp/ansi-color.el (ansi-color-process-output):
	* lisp/cus-edit.el (customize-apropos-options):
	* lisp/cus-theme.el (customize-create-theme):
	* lisp/dired-aux.el (dired-hide-all):
	* lisp/emacs-lisp/crm.el (crm--choose-completion-string):
	* lisp/emacs-lisp/tabulated-list.el (tabulated-list-revert):
	* lisp/ido.el (ido-choose-completion-string):
	* lisp/international/mule-diag.el (describe-font-internal):
	* lisp/mail/sendmail.el (sendmail-user-agent-compose):
	* lisp/progmodes/fortran.el (fortran-uncomment-region):
	* lisp/progmodes/prolog.el (prolog-inferior-guess-flavor):
	* lisp/progmodes/ruby-mode.el (ruby-indent-line, ruby-indent-exp):
	* lisp/url/url.el (url-mm-callback):
	* lisp/xwidget.el (xwidget-webkit-history-reload): Prepend an
	underscore to unused function parameter names.
	* lisp/emacs-lisp/cconv.el (cconv--dummy-var): Remove unused
	constant.
	* lisp/files.el (hack-local-variables-filter): Remove unused lexvar.

2022-10-26  Po Lu  <luangruo@yahoo.com>

	Clean up some event handling code

	* src/xterm.c (handle_one_xevent): Use dpyinfo where
	FRAME_DISPLAY_INFO could be substituted for it.

2022-10-26  Michael Albinus  <michael.albinus@gmx.de>

	Modernize `auto-revert-notify-exclude-dir-regexp'

	* lisp/autorevert.el (auto-revert-notify-exclude-dir-regexp): Use `rx'
	and `mounted-file-systems'.

2022-10-26  Mattias Engdegård  <mattiase@acm.org>

	Dynamic validation of styles in completion-category-overrides

	The type of the defcustom completion-category-overrides must be able
	to accommodate dynamic changes to completion-styles-alist, because
	some packages (eglot) make their own additions.

	This change fixes a failure in test-custom-opts.  See discussion at:
	https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01969.html

	* lisp/minibuffer.el (completion--styles-type):
	Add an "Other" case that accepts any symbol which is then validated
	dynamically against completion-styles-alist.

2022-10-26  Philip Kaludercic  <philipk@posteo.net>

	Add support for :release-rev in 'package-vc-archive-spec-alist'

	* lisp/emacs-lisp/package-vc.el (package-vc-archive-spec-alist):
	Update docstring.
	(package-vc-install): Use :release-rev if invoked with a prefix argument.

2022-10-26  Philip Kaludercic  <philipk@posteo.net>

	Allow nil as a valid value for 'ecomplete-filter-regexp'

	* lisp/ecomplete.el (ecomplete-filter-regexp): Replace user option type.

	Reported by Mattias Engdegård.

2022-10-26  Po Lu  <luangruo@yahoo.com>

	Fix Haiku build for recent changes to system headers

	* src/callproc.c (emacs_posix_spawn_init_actions): Do not use
	posix_spawn_file_actions_addchdir on Haiku; it links but does
	not work.

2022-10-26  Andrea Corallo  <andrea.corallo@arm.com>

	Set `comp-no-spawn' earlier using -no-comp-spawn

	* src/emacs.c (standard_args): Add '-no-comp-spawn' cmd line option.
	* lisp/startup.el (command-line): Parse '-no-comp-spawn' cmd line
	option.
	* lisp/emacs-lisp/comp.el (comp-run-async-workers, comp-final):
	Use '-no-comp-spawn'.

2022-10-26  Yuan Fu  <casouri@gmail.com>

	* src/treesit.c (treesit_search_dfs): Fix traverse algorithm.

2022-10-25  Yuan Fu  <casouri@gmail.com>

	* src/treesit.c (treesit_search_forward): Fix traverses algorithm.

2022-10-25  Yuan Fu  <casouri@gmail.com>

	Don't disable parse cache in tree-sitter activated js-mode

	* lisp/progmodes/js.el (js-mode): Move parse cache setup back.

2022-10-25  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el (treesit-simple-indent-rules): Make buffer-local.

2022-10-25  Yuan Fu  <casouri@gmail.com>

	Fix treesit-language-at

	* lisp/treesit.el (treesit-language-at-point-function): New local
	variable.
	(treesit-language-at): Change to use
	treesit-language-at-point-function rather than trying each parser
	one-by-one.
	* doc/lispref/parsing.texi (Multiple Languages): Update manual.

2022-10-25  Dmitry Gutov  <dgutov@yandex.ru>

	vc-hg-checkin-patch: Add implementation for Hg

	* lisp/vc/vc-hg.el (vc-hg-checkin-patch): Add Hg-specific
	implementation (bug#52349), like suggested in
	https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01533.html.
	(vc-hg--extract-headers): Extract from vc-hg-checkin.

2022-10-25  Yuan Fu  <casouri@gmail.com>

	New tree-sitter toggle scheme

	This version: central variable, everything controlled by
	treesit-settings.  Major mode sets up tree-sitter/non-tree-sitter
	in a conditional branch, based on the setting.

	* lisp/treesit.el (treesit-settings): New option.
	(treesit-defun-type-regexp): Change docstring.
	(treesit-mode-supported)
	(treesit-required-languages)
	(treesit--local-variable-backup): Remove variables.
	(treesit--backup-local-variable)
	(treesit-mode)
	(global-treesit-mode--turn-on)
	(global-treesit-mode): Remove functions.
	(treesit--setting-for-mode): New function.
	(treesit-ready-p): New argument MODE, changed REPORT to QUIET, and
	LANGUAGEs to LANGUAGE (now it can be a single symbol or a list of
	them).
	(treesit-major-mode-setup): New function.  Mostly comes from
	treesit-mode.

	* test/src/treesit-tests.el (treesit-misc): New test.

	* lisp/progmodes/python.el (python-mode): Move some setup code into
	the conditional branch at the end.

	* lisp/progmodes/js.el (js-json-mode)
	(js-mode): Move some setup code into the conditional branch at the
	end.

	* lisp/progmodes/ts-mode.el: Move tree-sitter setup into the
	conditional branch.

2022-10-25  Andreas Schwab  <schwab@linux-m68k.org>

	Ignore non-base64 junk when decoding MIME

	* src/fns.c (Fbase64_decode_region): Add optional argument
	IGNORE-INVALID and pass down to base64_decode_1.
	(Fbase64_decode_string): Likewise.
	(base64_decode_1): Add argument IGNORE_INVALID.
	* doc/lispref/text.texi (Base 64): Document them.
	* lisp/gnus/mm-bodies.el (mm-decode-content-transfer-encoding):
	Ignore any junk when decoding base64.

2022-10-25  João Guerra  <joca.bt@gmail.com>  (tiny change)

	* lisp/tab-line.el (tab-line-auto-hscroll): Set word-wrap to nil (bug#58740).

2022-10-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	(Ffunction): Make interpreted closures safe for space

	Interpreted closures currently just grab a reference to the complete
	lexical environment, so (lambda (x) (+ x y)) can end up looking like

	    (closure ((foo ...) (y 7) (bar ...) ...)
	             (x) (+ x y))

	where the foo/bar/... bindings are not only useless but can prevent
	the GC from collecting that memory (i.e. it's a representation that is
	not "safe for space") and it can also make that closure "unwritable"
	(or more specifically, it can cause the closure's print
	representation to be u`read`able).

	Compiled closures don't suffer from this problem because `cconv.el`
	actually looks at the code and only stores in the compiled closure
	those variables which are actually used.

	So, we fix this discrepancy by letting the existing code in `cconv.el` tell
	`Ffunction` which variables are actually used by the body of the
	function such that it can filter out the irrelevant elements and
	return a closure of the form:

	    (closure ((y 7)) (x) (+ x y))

	* lisp/loadup.el: Preload `cconv` and set
	`internal-filter-closure-env-function` once we have a usable `cconv-fv`.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-preprocess): Adjust to new
	calling convention of `cconv-closure-convert`.
	(byte-compile-not-lexical-var-p): Delete function, moved to `cconv.el`.
	(byte-compile-bind): Use `cconv--not-lexical-var-p`.

	* lisp/emacs-lisp/cconv.el (cconv--dynbound-variables): New var.
	(cconv-closure-convert): New arg `dynbound-vars`
	(cconv--warn-unused-msg): Remove special case for `ignored`,
	so we don't get confused when a function uses an argument called
	`ignored`, e.g. holding a list of things that it should ignore.
	(cconv--not-lexical-var-p): New function, moved from `bytecomp.el`.
	Don't special case keywords and `nil` and `t` since they are already
	`special-variable-p`.
	(cconv--analyze-function): Use `cconv--not-lexical-var-p`.
	(cconv--dynbindings): New dynbound var.
	(cconv-analyze-form): Use `cconv--not-lexical-var-p`.
	Remember in `cconv--dynbindings` the vars for which we used
	dynamic scoping.
	(cconv-analyze-form): Use `cconv--dynbound-variables` rather than
	`byte-compile-bound-variables`.
	(cconv-fv): New function.

	* src/eval.c (Fsetq, eval_sub): Remove optimization designed when
	`lexical-binding == nil` was the common case.
	(Ffunction): Use `internal-filter-closure-env-function` when available.
	(eval_sub, Ffuncall): Improve error info for `excessive_lisp_nesting`.
	(internal-filter-closure-env-function): New defvar.

2022-10-25  Filipp Gunbin  <fgunbin@fastmail.fm>

	Move required options out of ldap-ldapsearch-args

	* lisp/net/ldap.el (ldap-ldapsearch-args, ldap-search-internal): Move
	"-LLL" and "-tt" options as they're required for the code to work
	properly.

2022-10-25  Stefan Kangas  <stefankangas@gmail.com>

	eglot: Prefer ensure-list on Emacs 28 or later

	* lisp/progmodes/eglot.el (eglot--ensure-list): Make into alias
	for 'ensure-list' on Emacs 28 or later.

2022-10-25  Michael Albinus  <michael.albinus@gmx.de>

	Handle context changes in Tramp kubernetes method

	* doc/misc/tramp.texi (Inline methods): Remove note about cache reset.
	(File name completion): Add tramp-completion-use-cache.

	* etc/NEWS: Add 'tramp-completion-use-cache'.

	* lisp/net/tramp-cache.el (tramp-completion-use-cache): New defcustom.
	(tramp-parse-connection-properties): Use it.

	* lisp/net/tramp-container.el (tramp-docker--completion-function)
	(tramp-kubernetes--completion-function): Ensure the processes run
	locally.
	(tramp-kubernetes--current-context-data): New defun.
	(tramp-methods) <kubernetes>: Add `tramp-config-check'.

	* lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
	Handle `tramp-login-args'.

	* lisp/net/tramp.el (tramp-methods): Adapt docstring.

2022-10-25  Payas Relekar  <relekarpayas@gmail.com>

	Update copyright for submission to ELPA

	- Update year to 2022
	- Set copyright to Free Software Foundation, Inc.

2022-10-25  Robert Pluim  <rpluim@gmail.com>

	Fix eglot defcustom types

	* lisp/progmodes/eglot.el (eglot-autoreconnect): Allow for 'nil'.
	(eglot-connect-timeout): Allow for 'nil' and add descriptions.
	(eglot-sync-connect): Split boolean into 'nil' and 't' and add descriptions.
	(eglot-confirm-server-initiated-edits): Change 'symbol' type to 'const'.

2022-10-25  Alan Mackenzie  <acm@muc.de>

	Test face name variables are bound before using them in cc-fonts.el

	This fixes bug #58641.

	Also, set c-reference-face-name to font-lock-constant face in preference to
	c-label-face-name.

	* lisp/progmodes/cc-fonts.el (c-preprocessor-face-name, c-label-face-name)
	(c-constant-face-name, c-reference-face-name): Test variables with the same
	name as font-lock faces are bound before accessing their values.
	(c-reference-face-name): Use font-lock-constant face in preference to
	c-label-face-name.

2022-10-25  Robert Pluim  <rpluim@gmail.com>

	* lisp/progmodes/eglot.el: Remove not very funny joke.

2022-10-25  Lin Sun  <sunlin7@hotmail.com>

	lisp.h: Remove unnecessary preprocessor conditions

	This removes the HAVE_PDUMPER || HAVE_UNEXEC condition
	of gflags.will_dump_, which gets in the way when Emacs
	is built without any dumping method.  (Bug#58708)

2022-10-25  Po Lu  <luangruo@yahoo.com>

	Fix drag-and-drop bugs on Lucid build

	Also, optimize Fx_translate_coordinates to avoid excessive calls
	to _XReply.

	* lisp/x-dnd.el (x-dnd-get-drop-rectangle): Return empty drop
	rectangle if posn-area.
	* src/xfns.c (Fx_translate_coordinates): Accept arg
	`require_child'.  If not set, allow optimizations based on
	cached position data.
	* src/xselect.c (x_handle_dnd_message): Use
	x_translate_coordinates.
	* src/xterm.c (x_translate_coordinates): Export function.
	(x_handle_translate_coordinates): New function.
	(handle_one_xevent): Fix coding style.
	* src/xterm.h: Update prototypes.

2022-10-25  Brian Leung  <leungbk@posteo.net>

	eglot-server-programs: Account for new ts-mode

	At the time of writing, this exists only in the unmerged tree-sitter
	branch.  It is not harmful to include, however.

	* lisp/progmodes/eglot.el (eglot-server-programs): Add new major mode
	to be used with the typescript-language-server.  (Bug#58769)

2022-10-25  Brian Leung  <leungbk@posteo.net>

	eglot-server-programs: Account for new js-json-mode

	js-json-mode derives from js-mode, so this reordering is necessary to
	prevent js-mode's eglot server from starting if a user has something
	like this in their config:

	    (add-to-hook 'js-json-mode #'eglot-ensure)
	    (add-to-hook 'js-mode #'eglot-ensure)

	* lisp/progmodes/eglot.el (eglot-server-programs): Move the
	json-language-server info before the entry for js-mode, and add on
	js-json-mode.  (Bug#58769)

2022-10-25  Robert Pluim  <rpluim@gmail.com>

	Improve the eglot info documentation

	* doc/misc/eglot.texi (Eglot and Buffers): Improve phrasing.
	(Eglot Commands): 'reference of' -> 'reference for' and a typo fix.
	(Eglot Variables): Add markup for values.
	(Customizing Eglot): Grammar fixes.
	(Troubleshooting Eglot): Improve text.

2022-10-25  João Távora  <joaotavora@gmail.com>

	Fix M-x eglot breakage due to typo

	* lisp/progmodes/eglot.el (eglot): Fix bug.

2022-10-25  Stephen Leake  <stephen_leake@stephe-leake.org>

	* lisp/progmodes/eglot.el (eglot): Ensure managed-major-mode is a list

2022-10-24  Yuan Fu  <casouri@gmail.com>

	* lisp/progmodes/ts-mode.el (ts-mode): Fix font-lock setup.

2022-10-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/compile.el (compilation-mode-line-errors): Use `defvar`

	This is not really a constant, e.g. it's modified in `grep.el`.

2022-10-24  Eli Zaretskii  <eliz@gnu.org>

	Unbreak the build broken by tab-bar.el changes

	Without this change, compiling tab-bar.el errors out:
	In tab-bar--load-buttons:
	tab-bar.el:161:18: Warning: reference to free variable `tab-bar-new'
	tab-bar.el:174:6: Error: `define-icon' defined after use in
	(define-icon tab-bar-close nil (cons (cons 'image
	(cons "tabs/close.xpm"
	(cons :margin (cons tab-bar-button-margin '(:ascent center)))))
	'((text " x"))) "Icon for closing the clicked tab."
	:version "29.1" :help-echo "Click to close tab")
	(missing `require' of a library file?)
	tab-bar.el:174:18: Warning: reference to free variable `tab-bar-close'
	* lisp/tab-bar.el (eval-when-compile): Require 'icons.

2022-10-24  Mattias Engdegård  <mattiase@acm.org>

	* doc/lispref/searching.texi (Rx Constructs): Elaborate intent.

	Suggested by Michael Heerdegen (bug#58727).

2022-10-24  Po Lu  <luangruo@yahoo.com>

	Fix focus stealing in the Emacs server for old window managers

	* src/xterm.c (x_focus_frame): Apply focus stealing preference
	to non-EWMH focus as well.  Otherwise frames get raised but not
	focused.

2022-10-24  Mattias Engdegård  <mattiase@acm.org>

	Clarify RX... semantics in manual (bug#58727)

	Suggested by Michael Heerdegen.

	* doc/lispref/searching.texi (Rx Constructs): Explain implicit
	concatenation of `RX...`.

2022-10-24  Martin Jerabek  <om@mailservice.ms>  (tiny change)

	Repair nXML handling of URIs with hex escapes (bug#58718)


	* lisp/nxml/rng-uri.el (rng-uri-file-name-1): Add missing backslashes.
	(rng-uri-unescape-unibyte, rng-uri-unescape-unibyte-match):
	Convert hex-encoded character to string.

2022-10-24  Mattias Engdegård  <mattiase@acm.org>

	Fix regexp matching with atomic strings and optimized backtracking

	This bug occurs when an atomic pattern is matched at the end of
	a string and the on-failure-keep-string-jump optimization is
	in effect, as in:

	  (string-match "\\'\\(?:ab\\)*\\'" "a")

	which succeeded but clearly should not (bug#58726).

	Reported by Michael Heerdegen.

	* src/regex-emacs.c (PREFETCH): Add reset parameter.
	(re_match_2_internal): Use it for proper atomic pattern treatment.
	* test/src/regex-emacs-tests.el (regexp-atomic-failure): New test.

2022-10-24  Robert Pluim  <rpluim@gmail.com>

	Remove erroneous @w in yank-media cross ref

	I added this by mistake, there's actually no need to keep the cross
	ref on the same line.

	* doc/emacs/killing.texi (Clipboard): Remove @w around @pxref.

2022-10-24  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Use customizable button icons (bug#51309, bug#51648)

	* lisp/tab-bar.el (tab-bar--load-buttons): Use 'define-icon' to
	define icons for tab-bar-new, tab-bar-close, tab-bar-menu-bar.
	Also set tab-bar-new-button, tab-bar-close-button, tab-bar-menu-bar-button
	to the specified icon-string.
	(tab-bar-history-mode): Use 'define-icon' to
	define icons for tab-bar-back, tab-bar-forward.
	Also set tab-bar-back-button, tab-bar-forward-button
	to the specified icon-string.

	* lisp/emacs-lisp/icons.el (icons--create)<image>: Allow to easy
	add new image props by using 'apply' on them.  Add :margin.

2022-10-24  Juri Linkov  <juri@linkov.net>

	* lisp/minibuffer.el (completions-group-separator): Update :version.

2022-10-23  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el (treesit-node-at): Remove argument LARGEST.

	LARGEST returns the root node at BOB, finding the smallest node at
	point and search upward is a better practice.

2022-10-23  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el (treesit-parser-range-on): New function.

2022-10-23  Yuan Fu  <casouri@gmail.com>

	Fix treesit-beginning/end-of-defun

	Now they always move to the top-level defun (i.e., skips nested ones).

	* lisp/treesit.el (treesit--find-top-level-match): New function
	(treesit-beginning-of-defun): Goes to the top-level match.
	(treesit-end-of-defun): Simply move to the end of current match.

2022-10-23  Yuan Fu  <casouri@gmail.com>

	Make treesit-search-forward-goto accept a NODE argument

	With NODE argument we can do

	(setq node (treesit-search-forward-goto node))

	And we can choose what node to pass to it (maybe we want to pass it
	the largest node at point, rather than the smallest node, and in case
	of multiple parsers, we can choose which parser to use).

	* doc/lispref/parsing.texi (Retrieving Node): Update manual.
	* lisp/treesit.el (treesit-search-forward-goto): Accept a NODE
	argument.

2022-10-23  Yuan Fu  <casouri@gmail.com>

	Make treesit-node-at return the last leaf node at EOB

	* doc/lispref/parsing.texi (Retrieving Node): Update manual.
	* lisp/treesit.el (treesit-node-at): Add a (when node) form just to be
	explicit, return the last leaf node if there is no node after POS.

2022-10-23  Yuan Fu  <casouri@gmail.com>

	Make treesit-node-child and fiends accept negative index

	* doc/lispref/parsing.texi (Retrieving Node): Update manual.
	* src/treesit.c (Ftreesit_node_child)
	(Ftreesit_node_field_name_for_child): Accept and process negative
	index.

2022-10-23  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el (treesit-node-at): Add LARGEST argument.

2022-10-23  Yuan Fu  <casouri@gmail.com>

	Change function signature of treesit search functions

	Justification: We want to make the SIDE argument in
	treesit-search-forward-goto optional, so I changed it to START.
	It makes more sense for BACKWARD to follow START so two common
	case, search for end forward and beginning backwards are

	(treesit-search-forward-goto node pred)
	(treesit-search-forward-goto node pred t t)

	Then since we swapped BACKWARD and ALL for
	treesit-search-forward-goto, it's best to swap them for
	treesit-search-forward and treesit-search-subtree, too.  And BACKWARD
	will probably be used more frequently than ALL anyway.

	* doc/lispref/parsing.texi (Retrieving Node): Resolve FIXME and update
	function signatures.
	* lisp/treesit.el (treesit-search-forward-goto): Change SIDE to
	START, swap BACKWARD and ALL.
	(treesit-beginning-of-defun)
	(treesit-end-of-defun): Update use of treesit-search-forward-goto
	* src/treesit.c (Ftreesit_search_subtree)
	(Ftreesit_search_forward): Swap BACKWARD and ALL.

2022-10-23  Philip Kaludercic  <philipk@posteo.net>

	* doc/emacs/package.texi (Package from Source): Clarify prose

2022-10-23  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el: Pre-compute some frequent data for button icons (bug#57813)

	(outline--button-icons): New buffer-local variable.
	(outline-minor-mode): Set outline--button-icons.
	Unify overlay name 'outline-margin' with 'outline-button'.
	(outline--make-button-overlay, outline--make-margin-overlay)
	(outline--insert-open-button, outline--insert-close-button): Remove functions.
	(outline--create-button-icons, outline--insert-button): New functions
	with code refactored from old functions.  Add more support for icon faces.
	(outline--fix-up-all-buttons): Use outline--insert-button.
	(outline--fix-buttons-after-change): Unify overlay name
	'outline-margin' with 'outline-button'.

	* lisp/minibuffer.el (completions-group-separator): Change face
	attribute :strike-through to :underline.

2022-10-23  Philip Kaludercic  <philipk@posteo.net>

	; Fix typo for "package"

2022-10-23  Philip Kaludercic  <philipk@posteo.net>

	Extract separate function 'package-vc-guess-backend'

	* lisp/emacs-lisp/package-vc.el (package-vc-guess-backend): New
	function.
	(package-vc-unpack): Use it.
	(package-vc-sourced-packages-list): Use it.
	(package-vc-install): Use it.

2022-10-23  Philip Kaludercic  <philipk@posteo.net>

	; Fix typo for "heuristic"

2022-10-23  Philip Kaludercic  <philipk@posteo.net>

	Use user option 'package-vc-default-backend' when cloning

	* lisp/emacs-lisp/package-vc.el (package-vc-unpack): Respect
	'package-vc-default-backend'.

2022-10-23  Philip Kaludercic  <philipk@posteo.net>

	Immediately check out the right branch or revision

	* lisp/emacs-lisp/package-vc.el (package-vc-unpack) Use REV to avoid
	checking out the wrong branch/revision first.
	* lisp/vc/vc-bzr.el: Handle REV.
	* lisp/vc/vc-git.el: Handle REV.
	* lisp/vc/vc-hg.el: Handle REV.
	* lisp/vc/vc-svn.el: Handle REV.
	* lisp/vc/vc.el: Make BACKEND optional and add REV.

2022-10-23  Matt Armstrong  <matt@rfc20.org>

	Fix compiler warning about possible null pointer dereference

	* src/itree.c (interval_tree_remove_fix): Use 'eassert' to both check
	for non-null and suppress a compiler warning.

2022-10-23  Philip Kaludercic  <philipk@posteo.net>

	Add auxiliary function to query package specifications

	* lisp/emacs-lisp/package-vc.el (package-vc-query-spec): Add
	inline function.

2022-10-23  Po Lu  <luangruo@yahoo.com>

	Reduce duplicate code for creating "special windows"

	* src/xterm.c (x_create_special_window): Define on all non-GTK
	builds and all builds with XFixes.
	(x_update_frame_user_time_window): Use x_create_special_window.
	Also write a comment explaining what user time windows are.
	* src/xterm.h: Fix style of `x_parse_color' prototype.

2022-10-23  Yuan Fu  <casouri@gmail.com>

	Fix infinite loop in treesit-search-forward-goto

	* lisp/treesit.el (treesit-search-forward-goto): Remove UP argument.
	* src/treesit.c (treesit_traverse_child_helper): New function.
	(treesit_search_forward): Remove UP_ONLY and SKIP_START argument.
	Don't traverse subtree of START.  And after we've found the next
	sibling/parent, go down to the first leaf node.  Also change recursion
	to loop.
	(Ftreesit_search_forward): Change docstring, remove UP argument.

2022-10-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f1f4a0c9d2 ; * doc/lispref/display.texi (Progress): Correct typo.  (B...

2022-10-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	626525c29f ; Remove reference to non-existent Flymake function from m...

2022-10-22  Matt Armstrong  <matt@rfc20.org>

	Fix `get-pos-property' for the new overlay implementation.

	Some of the trickier edge cases weren't handled properly.  See
	bug#58706.

	* src/editfns.c (overlays_around): Extend the search range past POS by
	one to fetch overlays beginning at POS.  Fetch empty overlays, as they
	may be extended by an insertion and thus be relevant to
	`get-pos-property'.  Make a note that the function now, unfortunately,
	may return out of range overlays.
	(Fget_pos_property): Deal with 'overlays_around' returning out of
	range overlays.

2022-10-22  Matt Armstrong  <matt@rfc20.org>

	Add `get-pos-property' tests covering bug#58706

	* test/src/buffer-tests.el (get-pos-property-overlay-beg): New test.
	(get-pos-property-overlay-empty-rear-advance): ditto.
	(get-pos-property-overlay-past-rear-advance): ditto.
	(get-pos-property-overlay-at-narrowed-end): ditto.

2022-10-22  Yuan Fu  <casouri@gmail.com>

	Resolve FIXME's in tree-sitter manual sections

	Pattern vs query: a query consists of many patterns.  I tightened up
	the use of pattern vs query in the manual, now there shouldn't be
	ambiguities.

	* doc/lispref/modes.texi (Parser-based Font Lock):
	* doc/lispref/parsing.texi (Language Definitions): Resolve FIXME's.

2022-10-22  Basil L. Contovounesios  <contovob@tcd.ie>

	Improve error reporting of EUDC plist functions

	* lisp/net/eudc.el (eudc--plist-member): Signal a more
	informative wrong-type-argument instead of a generic error
	(bug#58531#19, bug#58720).
	* test/lisp/net/eudc-tests.el (eudc--plist-member)
	(eudc-plist-member, eudc-plist-get, eudc-lax-plist-get):
	Update tests accordingly.

2022-10-22  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el: Use 'outline-cycle' on buttons for 'RET' like 'TAB' uses.

	(outline--make-button-overlay, outline--make-margin-overlay):
	Use overlay keymap where RET and mouse-2 are bound to outline-cycle.
	(outline--insert-open-button, outline--insert-close-button):
	Move overlay keymap to outline--make-button-overlay and replace
	bindings outline-hide-subtree/outline-show-subtree with outline-cycle.

2022-10-22  Juri Linkov  <juri@linkov.net>

	Unify outline-minor-mode-use-buttons with in-margins/insert values (bug#57813)

	* doc/emacs/text.texi (Outline Mode): Remove outline-minor-mode-use-margins.
	Document the values insert/in-margins of outline-minor-mode-use-buttons.

	* lisp/help.el (describe-bindings):
	Set outline-minor-mode-use-buttons to 'insert'.

	* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common):
	Set outline-minor-mode-use-buttons to 'in-margins'.

	* lisp/outline.el (outline-minor-mode-use-buttons): Change :type
	from 'buffer-predicate' to choice of const values nil/in-margins/t.
	(outline--use-buttons, outline-minor-mode-insert-buttons)
	(outline-minor-mode-use-margins, outline--use-margins): Remove variables.
	(outline-minor-mode-highlight-buffer): Change overlay name
	'outline-overlay' to 'outline-highlight'.
	(outline-minor-mode): Simplify to handle possible values of
	'outline-minor-mode-use-buttons' instead of using many variables.
	(outline--make-button-overlay): Use value 'insert' of
	'outline-minor-mode-use-buttons'.
	(outline--insert-open-button, outline--insert-close-button)
	(outline--fix-up-all-buttons, outline--fix-buttons-after-change):
	Handle values of outline-minor-mode-use-buttons instead of using
	many variables.

2022-10-22  Juri Linkov  <juri@linkov.net>

	* lisp/info.el (Info-toc-build): Remove message not needed anymore (bug#58634)

2022-10-22  Basil L. Contovounesios  <contovob@tcd.ie>

	Audit some plist uses with new predicate argument

	* doc/lispref/lists.texi (Plist Access): Improve description of
	default predicate.
	* lisp/emacs-lisp/cl-extra.el (cl-getf, cl--set-getf): Assume
	plist-member always returns a cons.
	* lisp/emacs-lisp/gv.el (plist-get): Support new optional predicate
	argument (bug#47425#91).
	* lisp/emacs-lisp/map.el: Bump minor version.
	(map--dispatch): Remove now that bug#58563 is fixed.  Break two
	remaining uses out into corresponding cl-defmethods.
	(map--plist-p): Add docstring.
	(map--plist-has-predicate, map--plist-member-1, map--plist-member)
	(map--plist-put-1, map--plist-put): New definitions for supporting
	predicate argument backward compatibly.
	(map-elt): Fix generalized variable getter under a
	predicate (bug#58531).  Use predicate when given a plist.
	(map-put): Avoid gratuitous warnings when called without the hidden
	predicate argument.  Improve obsoletion message.
	(map-put!): Use predicate when given a plist.
	(map-contains-key): Ditto.  Declare forgotten
	advertised-calling-convention (bug#58531#19).
	(map--put): Group definition in file together with that of map-put!.
	* lisp/files-x.el (connection-local-normalize-criteria): Simplify
	using mapcan + plist-get.
	* lisp/net/eudc.el (eudc--plist-member): New convenience function.
	(eudc-plist-member, eudc-plist-get, eudc-lax-plist-get): Use it
	instead of open-coding plist-member.
	* src/fns.c (Fplist_get, plist_get, Fplist_put, plist_put): Pass the
	plist element as the first argument to the predicate, for
	consistency with assoc + alist-get.
	(Fplist_member, plist_member): Move from widget to plist section.
	Open-code the EQ case in plist_member, and call it from
	Fplist_member in that case, rather than the other way around.

	* test/lisp/apropos-tests.el (apropos-tests-format-plist): Avoid
	polluting obarray.
	* test/lisp/emacs-lisp/cl-extra-tests.el (cl-getf): Extend test with
	generalized variables, degenerate plists, and improper lists.
	* test/lisp/emacs-lisp/gv-tests.el: Byte-compile file; in the
	meantime bug#24402 seems to have been fixed or worked around.
	(gv-setter-edebug): Inhibit printing messages.
	(gv-plist-get): Avoid modifying constant literals.  Also test with a
	predicate argument.
	* test/lisp/emacs-lisp/map-tests.el (with-maps-do): Simplify
	docstring.
	(test-map-elt-testfn): Rename...
	(test-map-elt-testfn-alist): ...to this.  Also test with a predicate
	argument.
	(test-map-elt-testfn-plist, test-map-elt-gv, test-map-elt-signature)
	(test-map-put!-plist, test-map-put!-signature)
	(test-map-contains-key-signature, test-map-plist-member)
	(test-map-plist-put): New tests.
	(test-map-contains-key-testfn): Also test with a predicate argument.
	(test-map-setf-alist-overwrite-key, test-map-setf-plist-insert-key)
	(test-map-setf-plist-overwrite-key): Avoid modifying constant
	literals.
	(test-hash-table-setf-insert-key)
	(test-hash-table-setf-overwrite-key): Fix indentation.
	(test-setf-map-with-function): Make test more precise.
	* test/lisp/net/eudc-tests.el: New file.
	* test/lisp/subr-tests.el (test-plistp): Extend test with circular
	list.
	* test/src/fns-tests.el (test-cycle-equal, test-cycle-nconc): Move
	from plist section to circular list section.
	(plist-put/odd-number-of-elements): Avoid modifying constant
	literals.
	(plist-member/improper-list): Simplify.
	(test-plist): Move to plist section.  Also test with a predicate
	argument.

2022-10-22  Eli Zaretskii  <eliz@gnu.org>

	Clean up tree-sitter sections of the ELisp manual

	* doc/lispref/parsing.texi (Parsing Program Source):
	* doc/lispref/modes.texi (Font Lock Mode)
	(Parser-based Font Lock): Fix wording, punctuation, and markup.
	Add index entries.

	* lisp/treesit.el (treesit-node-at, treesit-language-at): Rename
	argument POINT to POS.

2022-10-22  Po Lu  <luangruo@yahoo.com>

	Further fixes to menu event processing on no-toolkit builds

	* src/xdisp.c (note_mouse_highlight): Return if a popup is
	activated under the no-toolkit build as well.
	* src/xmenu.c (pop_down_menu): Clear popup_activated_flag when
	not on MS-DOS.
	(x_menu_show): Set popup_activated_flag under X.

2022-10-22  Stefan Kangas  <stefankangas@gmail.com>

	* admin/notes/repo: Document feature and scratch branches.

2022-10-21  Matt Armstrong  <matt@rfc20.org>

	Fix a narrow-to-region vs. overlays-at bug

	See bug#58703.

	* src/buffer.c (overlays_in): Add a new TRAILING arg expressing the
	behavior wanted by `overlays-at', namely to include all overlays
	beginning at the POS passed to `overlays-at', even if POS is the end
	of the narrowed region.  Pass true and the search range is extended to
	ZV+1 if END is greater than ZV, just as is done for EMPTY.
	(overlays_at): Pass 'true' for the new trailing arg.  At present this
	is the only caller passing 'true'.
	(mouse_face_overlay_overlaps): Pass 'false' for the new trailing arg.
	(disable_line_numbers_overlay_at_eob): ditto.
	(Foverlays_in): ditto.
	* src/editfns.c (overlays_around): ditto.
	* test/src/buffer-tests.el (sorted-overlays): Add a spot test for
	this.

2022-10-21  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el (treesit-font-lock-enable): Add function back.

2022-10-21  Matt Armstrong  <matt@rfc20.org>

	Fix handling of overlays that begin at END in 'overlays_in'

	When passed EMPTY, 'overlays_in' should return empty overlays at END.
	It was doing so, but it was also returning any other overlay that
	happened to begin at END.

	bug#58672

	* src/buffer.c (overlays_in): Don't return overlays at END unless they
	are empty overlays.
	(disable_line_numbers_overlay_at_eob): Pass 'false' instead of 'NULL'
	for the bool 'empty' arg.
	* test/src/buffer-tests.el (sorted-overlays-in): New helper function.
	(test-overlays-in-empty-range): New test exhaustively covering these
	edge conditions.
	(test-overlays-in-empty-range-bug58672): Simple test for one case.

2022-10-21  Philip Kaludercic  <philipk@posteo.net>

	Rephrase initial paragraph in "Package from Source" section

	* doc/emacs/package.texi (Package from Source): Clarify motivation.

2022-10-21  Philip Kaludercic  <philipk@posteo.net>

	Request "elpa-packages.eld" instead of "elpa-packages"

	* lisp/emacs-lisp/package-vc.el
	(package-vc--read-archive-data): Apply change.
	(package-vc--download-and-read-archives): Apply change.

2022-10-21  Philip Kaludercic  <philipk@posteo.net>

	Remove 'package-vc-install' alias 'package-checkout'

	* lisp/emacs-lisp/package-vc.el (package-checkout): Remove it.

2022-10-21  Nacho Barrientos  <nacho.barrientos@cern.ch>  (tiny change)

	Bindat (src, strz): Operate on vectors too


	* lisp/emacs-lisp/bindat.el (bindat--unpack-str, bindat--unpack-strz):
	Fix the non-string case.
	* test/lisp/emacs-lisp/bindat-tests.el (bindat-test--strz-array-unpack)
	(bindat-test--str-simple-array-unpack,bindat-test--str-combined-array-unpack):
	New tests.

2022-10-21  Po Lu  <luangruo@yahoo.com>

	Fix various menu problems

	* src/menu.c (x_popup_menu_1): Cancel hourglass timer before
	displaying popup.
	* src/xterm.c (x_show_hourglass): Avoid displaying hourglass
	cursor during a popup.
	(handle_one_xevent): Under X Toolkit and GTK+ 2.x builds with
	XInput 2, clear the mouse face upon a core LeaveNotify; these
	can be generated by menu grabs.
	(x_wm_set_size_hint): Fix Motif build warning.

2022-10-21  Eli Zaretskii  <eliz@gnu.org>

	Improve and extend documentation of ElDoc

	* lisp/emacs-lisp/eldoc.el (eldoc-documentation-strategy)
	(eldoc-documentation-enthusiast)
	(eldoc-documentation-compose-eagerly)
	(eldoc-documentation-compose, eldoc-documentation-default)
	(eldoc-minibuffer-message, eldoc-idle-delay)
	(eldoc-print-after-edit)
	(eldoc-echo-area-display-truncation-message)
	(eldoc-echo-area-use-multiline-p)
	(eldoc-echo-area-prefer-doc-buffer): Doc string fixes.

	* doc/emacs/emacs.texi (Top):
	* doc/emacs/programs.texi (Documentation, Programming Language Doc):
	Rename "Lisp Doc" to "Programming Language Doc", including in
	parent menus.  All references changed.
	(Programming Language Doc): Formerly "Lisp Doc".  Rewrite to not
	be specific to Emacs Lisp.  Improve markup and wording.  Document
	more commands and variables.
	* doc/emacs/maintaining.texi (Maintaining): Improve indexing.

2022-10-21  Po Lu  <luangruo@yahoo.com>

	Fix delivery of window manager ping events during menu

	* oldXMenu/Activate.c (XMenuActivateSetExposeFunction)
	(XMenuActivate):
	* oldXMenu/XMenu.h: Remove expose functions.
	* src/msdos.h (XMenuSetAEQ): Remove no longer used function.
	* src/xmenu.c (x_menu_expose_event): Delete function.
	(x_menu_dispatch_event): New function.
	(x_menu_show): Set it as the XMenu event handler.

2022-10-21  Mauro Aranda  <maurooaranda@gmail.com>

	Fix last change in perl-mode

	* lisp/progmodes/perl-mode.el (perl--syntax-exp-intro-regexp): Escape
	$.  Reported by Mattias Engdegård.

2022-10-21  Brian Leung  <leungbk@posteo.net>

	Add the "nil" language server to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add the "nil"
	language server.  Put it before rnix-lsp since it is more featureful
	and more actively updated.  (Bug#58676)
	Ref: https://github.com/oxalica/nil

2022-10-21  Brian Leung  <leungbk@posteo.net>

	Add lua-language-server to eglot-server-programs

	* lisp/progmodes/eglot.el (eglot-server-programs): Add
	lua-language-server.  It is, at the time of writing, more actively
	developed and more popular than the lua-lsp server, so prioritize
	that.  (Bug#58676)

2022-10-20  Philip Kaludercic  <philipk@posteo.net>

	Have 'package-vc-link-directory' use name if given

	* lisp/emacs-lisp/package-vc.el (package-vc-link-directory): Use the
	NAME argument.

2022-10-20  Philip Kaludercic  <philipk@posteo.net>

	Build documentation like elpa-admin.el

	* lisp/emacs-lisp/package-vc.el (package-vc-build-documentation): Add
	function to build a documentation file.
	(package-vc-unpack-1): Use 'package-vc-build-documentation'.

2022-10-20  Philip Kaludercic  <philipk@posteo.net>

	Merge remote-tracking branch 'origin/master' into feature/package+vc

2022-10-20  Filipp Gunbin  <fgunbin@fastmail.fm>

	Fix ldapsearch output parsing in ldap-search-internal

	* lisp/net/ldap.el (ldap-search-internal): When parsing output, make
	sure that file:// matched before opening the file. (bug#58605)

2022-10-20  Eli Zaretskii  <eliz@gnu.org>

	Add Eglot to the menu bar

	* lisp/progmodes/eglot.el (eglot): Improve the doc string.
	* lisp/menu-bar.el (menu-bar-tools-menu): Add Eglot to the menu.

2022-10-20  Eli Zaretskii  <eliz@gnu.org>

	Mention Eglot in the Emacs user manual

	* doc/emacs/maintaining.texi (Xref):
	* doc/emacs/programs.texi (Symbol Completion, Imenu): Mention Eglot.

2022-10-20  João Távora  <joaotavora@gmail.com>

	Merge branch 'feature/eglot2emacs'

2022-10-20  João Távora  <joaotavora@gmail.com>

	Minor fixes to doc/misc/eglot.texi

	* doc/misc/eglot.texi (eglot-workspace-configuration): Correct
	markup of eglot-{}
	(Quick Start): Fix section cross reference.

2022-10-20  João Távora  <joaotavora@gmail.com>

	* lisp/info-look.el (mapc): Add Eglot manual's index.

2022-10-20  Po Lu  <luangruo@yahoo.com>

	Work around problems setting input focus when a frame is in the background

	* src/xterm.c (server_timestamp_predicate, x_get_server_time):
	New functions.
	(x_ewmh_activate_frame, x_focus_frame, syms_of_xterm): Apply
	various workarounds for window manager "focus stealing
	prevention".  (bug#57012)

2022-10-20  Po Lu  <luangruo@yahoo.com>

	* etc/PROBLEMS: Document window manager focus problems.

2022-10-20  João Távora  <joaotavora@gmail.com>

	Merge branch 'feature/eglot-texi-manual' into feature/eglot2emacs

2022-10-20  João Távora  <joaotavora@gmail.com>

	Revert "eglot.texi: Make example more realistic"

	This quest for realism ignores the fact that a previous example for a
	hypothetical language Foo and a language server "fools" already
	exists.  It also undermines the intended generality of the
	instructions.

	This reverts commit 16986a9cc42ef4de580456f4acc5feba682ac8b1.

2022-10-20  João Távora  <joaotavora@gmail.com>

	Fix Eglot manual's description of eglot-workspace-configuration

	* doc/misc/eglot.texi (Customizing Eglot)
	(eglot-workspace-configuration): Explain that plist may be
	arbitrarily complex and correctly identify nil as the Elisp
	equivalent to JSON null.

2022-10-20  Mauro Aranda  <maurooaranda@gmail.com>

	Improve HERE document detection in perl-mode

	* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
	Detect indented HERE documents when using a bare identifier.
	(perl--syntax-exp-intro-keywords): Recognize HERE documents that come
	after die, warn and eval.
	(perl--syntax-exp-intro-regexp): Identify HERE documents when printing
	to a filehandle with printf? and when they appear after a fat comma.

	* test/lisp/progmodes/cperl-mode-resources/here-docs.pl: Add more tests.

2022-10-20  João Távora  <joaotavora@gmail.com>

	Expose eglot-{} to be used in eglot-workspace-configuration

	* eglot.el (eglot-{}): New variable alias.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/1084

2022-10-20  João Távora  <joaotavora@gmail.com>

	Rework header of eglot.el

	* eglot.el (Commentary): Rework.

2022-10-20  João Távora  <joaotavora@gmail.com>

	Do use eglot-connect-timeout if eglot-sync-connect is t

	Reported by Eli Zaretskii <eliz@gnu.org>

	* eglot.el (eglot--connect): Use eglot-connect-timeout in the case
	eglot-sync-connect is t.

2022-10-20  Stefan Kangas  <stefankangas@gmail.com>

	eglot.texi: Explain where to find third-party packages

	* doc/misc/eglot.texi (Eglot Features): Improve description on
	third-party packages.

2022-10-20  Stefan Kangas  <stefankangas@gmail.com>

	eglot.texi: Make example more realistic

	* doc/misc/eglot.texi (Eglot and Buffers): Prefer more realistic
	*.c instead of *.foo in example.

2022-10-20  Stefan Kangas  <stefankangas@gmail.com>

	eglot.texi: Move sentence on LSP Servers earlier

	* doc/misc/eglot.texi (Setting Up LSP Servers): Move explanation
	on the (lack of) need for customizing servers earlier.

2022-10-20  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/Makefile.in (INFO_COMMON): Add eglot.

2022-10-20  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in modula2.el

	* lisp/progmodes/modula2.el (m2-mode-map): Prefer defvar-keymap.

2022-10-20  Rudolf Adamkovič  <salutis@me.com>

	Add 'slovak-querty' input method (bug#58642)

	* lisp/leim/quail/slovak.el ("slovak-querty"): New input method.
	* etc/NEWS: Mention the new 'slovak-querty' input method.

2022-10-20  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	4b2c83eeaf ; * doc/lispref/modes.texi (Defining Minor Modes): Explain...

2022-10-19  Matt Armstrong  <matt@rfc20.org>

	Rename all exported itree.h functions with the itree_ prefix

	For the most part, I replaced the interval_tree_ prefix with itree_,
	interval_node_ with itree_node_, etc.

	* src/alloc.c: Rename everywhere as appropriate.
	* src/alloc.c: ditto.
	* src/buffer.c: ditto.
	* src/buffer.h: ditto.
	* src/itree.c: ditto.
	* src/itree.h: ditto.

2022-10-19  Matt Armstrong  <matt@rfc20.org>

	Prefix all itree.h type names with itree_

	Rename interval_node -> itree_node, interval_tree -> itree_tree,
	interval_tree_order -> itree_order.

	* src/alloc.c: Renames.
	* src/buffer.c: ditto.
	* src/itree.c: ditto.
	* src/itree.h: ditto.
	* src/lisp.h: ditto.
	* src/pdumper.h: ditto.
	* src/textprop.c: ditto.
	* src/xdisp.c: ditto.

2022-10-19  Matt Armstrong  <matt@rfc20.org>

	Revert "mark_overlays: Use the normal ITREE_FOREACH"

	This reverts commit b8fbd42f0a7caa4cd9e2d50dd4e4b2101ac78acd,
	with edits.

	* src/alloc.c (mark_overlays): restore function.
	(mark_buffer): Call it, not ITREE_FOREACH.
	(garbage_collect): eassert (!itree_busy_p ()).
	* src/itree.h: Comment tweak: explain why GC is considered risky.  It
	isn't that GC itself is risky, it is that GC can call ELisp by way of
	a hook, and running ELisp during iteration is risks nested iteration.

2022-10-19  Matt Armstrong  <matt@rfc20.org>

	Remove the ITREE_NULL macro and use NULL everywhere.

	* src/itree.h: Delete the ITREE_NULL macro.
	* src/itree.c (check_subtree): Use NULL everywhere.
	* src/pdumper.c (dump_buffer): ditto.

2022-10-19  Yuan Fu  <casouri@gmail.com>

	Revise the toggle scheme of tree-sitter (again)

	Now instead of a toggle function (major-mode-backend-function), we let
	major mode set local variables like treesit-font-lock-settings,
	treesit-imenu-function, then treesit-mode takes care of activating
	those things (clearing font-lock-keywords, setting
	imenu-create-index-function to treesit-imenu-function, etc).

	js.el and python.el: I've returned js-mode and python-mode to exactly
	what they were before tree-sitter change, plus lines at the end
	setting up tree-sitter variables.  Sorry about all these fuss :-D

	* lisp/treesit.el (treesit-mode-inhibit-message): Remove option.
	(major-mode-backend-function)
	(treesit-remapped-major-mode-alist): Remove variables.
	(treesit-mode): Move down to the end of buffer.  Do more things.
	(global-treesit-mode): Move down to the end of buffer.  Don't handle
	major-mode-remap-alist anymore.
	(global-treesit-mode--turn-on): Move down to the end of buffer.
	(treesit-ready-p): Move down to the end of buffer.  Changed signature.
	(treesit-font-lock-enable): Remove function.
	(treesit-defun-type-regexp): New variable.
	(treesit-beginning-of-defun)
	(treesit-end-of-defun): New function.
	(treesit-imenu-function): New variable.
	(treesit-mode-supported)
	(treesit-required-languages)
	(treesit--local-variable-backup): New variables.
	(treesit--backup-local-variable): New function

	* lisp/progmodes/js.el (js-use-tree-sitter): Remove option.
	(js--treesit-defun-type-regexp): Remove variable.  (Now set inline in
	js-mode.)
	(js--treesit-beginning-of-defun)
	(js--treesit-end-of-defun): Remove functions.  (Now use
	treesit-beginning/end-of-defun.)
	(js--backend-toggle)
	(js--json-backend-toggle): Remove function.
	(js-mode)
	(js-json-mode): Restore back to before tree-sitter changes.  Add
	tree-sitter setup at the end.

	* lisp/progmodes/python.el (python--backend-toggle): Remove function.
	(python-mode): Restore back to before tree-sitter changes.  Add
	tree-sitter setup at the end.

	* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Use
	js--fontify-template-string.
	(ts-mode--fontify-template-string): Remove function (because we can
	just use js--fontify-template-string).
	(ts-mode--defun-type-regexp): Remove variable (now set inline in
	ts-mode).
	(ts-mode--beginning-of-defun)
	(ts-mode--end-of-defun): Remove functions (now using
	treesit-beginning/end-of-defun).
	(ts-mode): Setup tree-sitter variables and then turn on treesit-mode
	or move to js-mode.

2022-10-19  Andrea Corallo  <akrl@sdf.org>

	* Fix async native compilation (bug#58637)

	* lisp/emacs-lisp/comp.el (comp--native-compile): Fix gate condition.
	(comp-run-async-workers): Add assetion.

2022-10-19  Alan Mackenzie  <acm@muc.de>

	CC Mode: Cease adding types to found-types too eagerly

	This fixes bug #58537 and bug #58539.

	* lisp/progmodes/cc-engine.el (c-forward-type): Remove trailing whitespace
	from an identifier before passing it to c-add-type.
	(c-forward-decl-or-cast-1): CASE 3: Do not recognize two consecutive
	identifiers as type + variable/function unless certain conditions are met.
	CASE 10: Do not recognize the "type" as a found type unless certain conditions
	are met.  (Near end): Do not recognize the identifier in a cast as a type
	unless certain conditions are met.

	* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Recognize being
	in declaration parens when there is a syntactially wrong "foo ((bar))"
	preceding the match position.

	* lisp/progmodes/cc-mode.el (c-update-new-id): Set c-new-id-is-type
	unconditionally to nil to prevent a second identifier being wrongly marked as
	a type.

2022-10-19  Po Lu  <luangruo@yahoo.com>

	Fix various builds

	* src/xterm.c (x_handle_selection_monitor_event): Adjust for
	build without XInput2.
	(x_maybe_clear_preedit, xim_destroy_callback): Make conditional
	on Release 6 XIM.
	(x_get_keyboard_modifiers): Adjust for build without XCB.

2022-10-19  Po Lu  <luangruo@yahoo.com>

	Fix build warning without XKB, Xmb, and XInput 2

	* src/xterm.c (handle_one_xevent): Avoid defining
	USE_SAFE_ALLOCA when SAFE_ALLOCA is not actually used.

2022-10-19  João Távora  <joaotavora@gmail.com>

	Remove spurious trailing ':' in doc/misc/eglot.texi

	* doc/misc/eglot.texi (Customizing Eglot): Remove spurious ':'.

2022-10-19  João Távora  <joaotavora@gmail.com>

	Tweak some node names in doc/misc/eglot.texi

	"Shutting Down LSP Server" -> "Shutting Down LSP Servers"
	"Setting Up LSP Server" -> "Setting Up LSP Servers"

	* doc/misc/eglot.texi: Rework node names.

2022-10-19  Arun Isaac  <arunisaac@systemreboot.net>

	Add tamil99 input method (bug#58070)

	* lisp/leim/quail/indian.el: Require pcase and seq.
	("tamil99"): New input method.
	* etc/NEWS: Mention new tamil99 input method.

2022-10-19  Stefan Kangas  <stefankangas@gmail.com>

	Add admin/emacs-shell-lib for shared bash code

	* admin/emacs-shell-lib: New file for shared bash code.
	* admin/automerge:
	* admin/diff-tar-files:
	* admin/emacs-shell-lib:
	* admin/make-manuals:
	* admin/update_autogen:
	* admin/upload-manuals: Simplify and improve using above new library.

2022-10-19  Stefan Kangas  <stefankangas@gmail.com>

	* lib-src/rcs2log: Add fallback for $TMPDIR.

2022-10-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	efd3ef3ceb ; * src/window.c: Fix some comments.  (Bug#58550)

2022-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	(sit-for): Add compiler-macro to warn about obsolete calling convention

	* lisp/subr.el (sit-for): Add compiler-macro.
	* lisp/eshell/esh-util.el (eshell-redisplay):
	* lisp/play/zone.el (zone, zone-pgm-jitter, zone-pgm-whack-chars):
	(zone-remove-text): Avoid obsolete calling convention.

2022-10-18  Yuan Fu  <casouri@gmail.com>

	Add a new section to tree-sitter's manual node

	* doc/lispref/parsing.texi (Parsing Program Source): New section
	Tree-sitter major modes.

2022-10-18  Philip Kaludercic  <philipk@posteo.net>

	Remove modifications to the list of ignored files in source packages

	* lisp/emacs-lisp/package-vc.el (package-vc-unpack-1): Remove
	'vc-ignore' calls.

2022-10-18  Theodor Thornhill  <theo@thornhill.no>

	Add more granular features in font-locking

	There is now support for three font-locking levels, 'minimal',
	'moderate' and 'full'.  The richest experience is to be expected from
	the 'full', and all levels are enabled by default.

	* lisp/progmodes/js.el (js--treesit-font-lock-settings): New defvar
	renamed from 'js--treesit-settings'.

	(js--treesit-font-lock-settings): New defvar renamed from
	'js--json-treesit-settings'.

	* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): New defvar
	renamed from 'ts-mode--settings'.

2022-10-18  Philip Kaludercic  <philipk@posteo.net>

	Use 'elpa-packages' files for VC metadata

	* lisp/emacs-lisp/package-vc.el (package-vc-default-backend): Add new
	option.
	(package-vc-archive-spec-alist): Add new variable to store the
	contents of 'elpa-packages' for each archive.
	(package-vc-desc->spec): Add function to query package specifications.
	(package-vc--read-archive-data): Add a 'package-read-archive-hook'
	implementation.
	(package-vc--download-and-read-archives): Add a
	'package-refresh-contents-hook' implementation.
	(package-vc-main-file): Remove function.
	(package-vc-generate-description-file): Use package specifications.
	(package-vc-unpack-1): Adapt to previous changes.
	(package-vc-unpack): Adapt to previous changes.
	(package-vc-sourced-packages-list): Adapt to previous changes.
	(package-vc-install): Adapt to previous changes.
	* lisp/emacs-lisp/package.el (package-read-archive-hook): Allow
	extending 'package-read-all-archive-contents' using a hook.
	(package-read-all-archive-contents): Use 'package-read-archive-hook'.
	(package-refresh-contents-hook): Allow extending
	'package-refresh-contents' using a hook.
	(package-refresh-contents): Use 'package-refresh-contents-hook'.

2022-10-18  Yuan Fu  <casouri@gmail.com>

	Rename tree-sitter group to treesit

	* lisp/treesit.el (tree-sitter): Rename to treesit.
	(treesit-mode)
	(global-treesit-mode): Use treesit group.

2022-10-18  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el: Add commentary.

2022-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix functions.texi syntax error

	* doc/lispref/functions.texi (Function Documentation): Fix syntax
	error.

2022-10-18  Yuan Fu  <casouri@gmail.com>

	Install new toggle scheme for tree-sitter

	Basically we now have treesit-mode and global-treesit-mode.  Major
	modes set major-mode-backend-function which treesit-mode calls to
	activate/deactivate tree-sitter.

	js.el needs a bit explanation: I'm so sorry for messing up the
	history, but basically now js-mode and js-json-mode should be exactly
	the same as before any tree-sitter change was introduced, sans some
	initialization code that are moved to js(-json)--backend-toggle.
	js-mode and js-json-mode now just sets major-mode-backend-function and
	initialize with js(-json)--backend-toggle.

	* lisp/treesit.el (treesit-mode-inhibit-message): New option.
	(treesit-can-enable-p): Remove function.
	(major-mode-backend-function)
	(treesit-remapped-major-mode-alist): New variables.
	(treesit-mode)
	(global-treesit-mode): New minor modes.
	(global-treesit-mode--turn-on)
	(treesit-ready-p): New functions.

	* lisp/progmodes/python.el: Remove option.
	(python--backend-toggle): New function.
	(python-mode): Remove the if-form, all the initialization code are
	moved to python--backend-toggle, python-mode now just sets
	major-mode-backend-function and initialize with
	python--backend-toggle.
	* lisp/progmodes/js.el (js--treesit-can-enable-p)
	(js--json-treesit-can-enable-p)
	(js--treesit-enable)
	(js--json-treesit-enable): Remove functions.
	(js--backend-toggle)
	(js-json--backend-toggle): New function.

	* lisp/progmodes/ts-mode.el (ts-mode): Use treesit-ready-p.

2022-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	functions.texi: Fix bug#58602

	* doc/lispref/functions.texi (Function Documentation): Document
	`:documentation` and `function-documentation`.

2022-10-18  Philip Kaludercic  <philipk@posteo.net>

	Merge remote-tracking branch 'origin/master' into feature/package+vc

2022-10-18  Philip Kaludercic  <philipk@posteo.net>

	Have 'vc-clone' return a directory

	* lisp/vc/vc-bzr.el (vc-bzr-clone): Return directory.
	* lisp/vc/vc-git.el (vc-git-clone): Return directory.
	* lisp/vc/vc-hg.el (vc-hg-clone): Return directory.
	* lisp/vc/vc-svn.el (vc-svn-clone): Return directory.
	* lisp/vc/vc.el (vc-clone): Ensure the backend returns directory.

2022-10-18  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline-minor-mode-insert-buttons): New defvar-local.

	(outline--make-button-overlay, outline--insert-open-button)
	(outline--insert-close-button): Insert button when
	outline-minor-mode-insert-buttons is non-nil, otherwise
	put an overlay with before-string.  (bug#57813)

	* lisp/help.el (describe-bindings): Set buffer-local
	outline-minor-mode-insert-buttons to t.

	* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common):
	Set buffer-local outline-minor-mode-use-margins to t.  Don't set
	outline-regexp for leading spaces because now spaces are not added
	in the NEWS buffer.

2022-10-18  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el: Use one character wide strings for margins (bug#57813)

	(outline-open-in-margins, outline-close-in-margins)
	(outline-close-rtl-in-margins): Add 1-char emoji, symbol, text
	for margins that are 1-column wide.
	(outline-minor-mode): Force display of margins only for the selected buffer.

2022-10-18  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-file-name-equal-p): Fix docstring.

	* etc/NEWS: Adapt connection-local variables entries.

2022-10-18  Matt Armstrong  <matt@rfc20.org>

	* .gitignore: Unignore the tests/manual directory.  (Bug#58611)

2022-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	(byte-compile--first-symbol-with-pos): Fix bug#58601

	* lisp/emacs-lisp/bytecomp.el: Require `subr-x`.
	(byte-compile--first-symbol-with-pos): Avoid inf-loops on circular data.

2022-10-18  João Távora  <joaotavora@gmail.com>

	More minor fixes to doc/misc/eglot.texi

	Most, if not all of these, were previously discussed with Eli.

	* doc/misc/eglot.texi (Setting Up LSP Server): Fix repetition of
	"This variable".
	(Setting Up LSP Server): Explain that single a running instance
	supports multiple major modes.
	(Starting Eglot, Eglot and Buffers): Correctly describe mode-line indication.
	(Eglot Features): Suggest that company-mode is just one of the
	possible packages.  Explain that Eglot arranges for the completion
	package to "instantiate" snippets.  Could have used "expand".
	Mention benefits of having the popular markdown-mode available.
	(Eglot Commands): Explain how eglot-reconnect and
	eglot-clear-status are useful.
	(Eglot Variables): Clarify when eglot-autoreconnect is useful.
	Clarify how eglot-sync-connect and eglot-connect-timeout relate to
	each other.  Clarify semantics of
	eglot-confirm-server-initiated-edits.

2022-10-18  João Távora  <joaotavora@gmail.com>

	Minor stylistic fixes to introduction of doc/misc/eglot.texi

	* doc/misc/eglot.texi (title): Add "the".
	(Top): Fix sentence structure in top-level
	introduction.

2022-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

	Fix previous loaddefs-gen fix

2022-10-18  Eli Zaretskii  <eliz@gnu.org>

	Add new Texinfo manual for the Eglot LSP client

	* doc/misc/eglot.texi: New file.

2022-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix faulty loaddefs detection

	* lisp/emacs-lisp/loaddefs-gen.el
	(loaddefs-generate--emacs-batch): Fix faulty loaddefs detection.

2022-10-18  Alan Mackenzie  <acm@muc.de>

	* lisp/progmodes/cc-defs.el Remove setting of inhibit-point-motion-hooks

2022-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-10-18  Andrea Corallo  <akrl@sdf.org>

	* Prevent potential native compilation infinite recursions

	* lisp/emacs-lisp/comp.el (comp-no-spawn): New var.
	(comp-subr-trampoline-install, comp-final, comp-run-async-workers)
	(comp--native-compile): Update.

2022-10-17  Jim Porter  <jporterbugs@gmail.com>

	Print the correct $PATH when Eshell's 'which' fails to find a command

	* lisp/eshell/esh-cmd.el (eshell/which): Use 'eshell-get-path'
	(bug#20008).

2022-10-17  Jim Porter  <jporterbugs@gmail.com>

	Improve handling of $PATH in Eshell for remote directories

	* lisp/eshell/esh-util.el (eshell-path-env, eshell-parse-colon-path):
	Make obsolete.
	(eshell-path-env-list): New variable.
	(eshell-connection-default-profile): New connection-local profile.
	(eshell-get-path): Reimplement using 'eshell-path-env-list'; add
	LITERAL-P argument.
	(eshell-set-path): New function.

	* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Add entry for
	$PATH.
	(eshell-var-initialize): Add 'eshell-path-env-list' to
	'eshell-subcommand-bindings'.

	* lisp/eshell/esh-ext.el (eshell-search-path): Use 'file-name-concat'
	instead of 'concat'.
	(eshell/addpath): Use 'eshell-get-path' and 'eshell-set-path'.

	* lisp/net/tramp-integration.el: Only apply Eshell hooks when
	'eshell-path-env-list' is unbound.

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/path-var/local-directory)
	(esh-var-test/path-var/remote-directory, esh-var-test/path-var/set)
	(esh-var-test/path-var/set-locally)
	(esh-var-test/path-var-preserve-across-hosts): New tests.

	* test/lisp/eshell/esh-ext-tests.el: New file.

	* test/lisp/eshell/eshell-tests-helpers.el
	(with-temp-eshell): Set 'eshell-last-dir-ring-file-name' to nil.
	(eshell-tests-remote-accessible-p, eshell-last-input)
	(eshell-last-output): New functions.
	(eshell-match-output, eshell-match-output--explainer): Use
	'eshell-last-input' and 'eshell-last-output'.

	* doc/misc/eshell.texi (Variables): Document $PATH.

	* etc/NEWS: Announce this change (bug#57556).

2022-10-17  Jim Porter  <jporterbugs@gmail.com>

	Allow setting the values of variable aliases in Eshell

	This makes commands like "COLUMNS=40 some-command" work as expected.

	* lisp/eshell/esh-cmd.el (eshell-subcommand-bindings): Remove
	'process-environment' from here...

	* lisp/eshell/esh-var.el (eshell-var-initialize): ... and add to here,
	along with 'eshell-variable-aliases-list'.
	(eshell-inside-emacs): Convert to a 'defvar-local' to make it settable
	in a particular Eshell buffer.
	(eshell-variable-aliases-list): Make $?, $$, and $* read-only and
	update docstring.
	(eshell-set-variable): New function...
	(eshell-handle-local-variables, eshell/export, eshell/unset): ... use
	it.
	(eshell/set, pcomplete/eshell-mode/set): New functions.
	(eshell-get-variable): Get the variable alias's getter function when
	appropriate and use a safer method for checking function arity.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/set/env-var)
	(esh-var-test/set/symbol, esh-var-test/unset/env-var)
	(esh-var-test/unset/symbol, esh-var-test/setq, esh-var-test/export)
	(esh-var-test/local-variables, esh-var-test/alias/function)
	(esh-var-test/alias/function-pair, esh-var-test/alias/string)
	(esh-var-test/alias/string/prefer-lisp, esh-var-test/alias/symbol)
	(esh-var-test/alias/symbol-pair, esh-var-test/alias/export)
	(esh-var-test/alias/local-variables): New tests.

	* doc/misc/eshell.texi (Built-ins): Add 'set' and update 'unset'
	documentation.
	(Variables): Expand documentation of how to get/set variables.

2022-10-17  Jim Porter  <jporterbugs@gmail.com>

	Add helpers to dynamically assign connection-local values

	* lisp/files-x.el (connection-local-criteria)
	(connection-local-profile-name-for-setq): New variables.
	(with-connection-local-variables-1): ... let-bind them here.
	(connection-local-update-profile-variables)
	(connection-local-profile-name-for-criteria): New functions.
	(with-connection-local-application-variables, setq-connection-local):
	New macros.

	* test/lisp/files-x-tests.el: Require 'tramp-integration'
	(files-x-test--variable5, remote-lazy-var): New variables.
	(files-x-test-hack-connection-local-variables-apply): Expand checks.
	(files-x-test-with-connection-local-variables): Remove
	'hack-connection-local-variables-apply' check (it belongs in the above
	test), and expand some other checks.
	(files-x-test--get-lazy-var, files-x-test--set-lazy-var): New
	functions.
	(files-x-test-connection-local-update-profile-variables)
	(files-x-test-setq-connection-local): New tests.

	* doc/lispref/variables.texi (Connection Local Variables): Split into
	two subsections and document the new features.

	* etc/NEWS: Announce 'setq-connection-local'.

2022-10-17  Paul Eggert  <eggert@cs.ucla.edu>

	Improve ‘random’ doc re nonces

	* doc/lispref/numbers.texi (Random Numbers): Improve coverage of
	random seed, entropy pools, and why one shouldn’t use ‘random’ for
	nonces.  See Bug#58472.

2022-10-17  Po Lu  <luangruo@yahoo.com>

	Fix bug#58584

	* src/xterm.c (x_handle_selection_monitor_event): Return if
	selection event is one Emacs asked for.
	(handle_one_xevent): In that case, drop the event and don't let
	it reach GTK.

2022-10-17  Yuan Fu  <casouri@gmail.com>

	Change free to xfree in treesit.el

	This should be in the last commit but I forgot.

	* src/treesit.c (Ftreesit_parser_set_included_ranges): Change free to
	xfree.

2022-10-17  Yuan Fu  <casouri@gmail.com>

	Change malloc to xmalloc in treesit.c

	* src/treesit.c (Ftreesit_parser_set_included_ranges): Change malloc
	to xmalloc.

2022-10-17  Yuan Fu  <casouri@gmail.com>

	Fix casts to uint32_t in treesit.c

	* src/treesit.c (treesit_tree_edit_1): Add assertion.
	(treesit_ensure_position_synced): Add assertion.
	(treesit_check_buffer_size): Change error message.
	(treesit_ensure_parsed): Move treesit_check_buffer_size and
	treesit_ensure_position_synced together
	(treesit_read_buffer): Add assertion.
	(Ftreesit_parser_set_included_ranges): Add assertion.  Signal error if
	list too long.  Add check for buffer size.
	(Ftreesit_parser_included_ranges): Add check for buffer size.
	(Ftreesit_query_capture): Add assertion.

2022-10-17  Dmitry Gutov  <dgutov@yandex.ru>

	Follow-up fixes for vc-default-checkin-patch

	* lisp/vc/vc.el (vc-default-checkin-patch):
	Call vc-revert-file on buffer-file-name (vc-backend failed on
	relative name sometimes).  Delete the tmp dir after copying all
	files back, not just the first one.  Bug#52349,
	https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01446.html.

2022-10-17  Yuan Fu  <casouri@gmail.com>

	Simplify error reported by loading tree-sitter language definition

	Before:

	Error: Cannot load language definition:
	"javascript",
	("/home/jostein/.emacs.d/tree-sitter/libtree-sitter-javascript:
	cannot open shared object file: No such file or directory"
	"/home/jostein/.emacs.d/tree-sitter/libtree-sitter-javascript.so:
	cannot open shared object file: No such file or directory"
	"libtree-sitter-javascript: cannot open shared object file: No such
	file or directory" "libtree-sitter-javascript.so: cannot open shared
	object file: No such file or directory")

	After:

	(treesit-load-language-error
	not-found
	("libtree-sitter-z.so" "libtree-sitter-z.dylib")
	"No such file or directory")

	* src/treesit.c (treesit_load_language): Add base_candidates, remove
	error_list, report base_candidates rather than error_list.

2022-10-17  Yuan Fu  <casouri@gmail.com>

	Skip tree-sitter tests unless language definition is available

	* test/src/treesit-tests.el (treesit-basic-parsing)
	(treesit-node-api)
	(treesit-query-api)
	(treesit-narrow)
	(treesit-cross-boundary)
	(treesit-multi-lang)
	(treesit-node-supplemental): Add skip-unless form.

2022-10-17  Yuan Fu  <casouri@gmail.com>

	Fix memory leak in ts_load_language

	* src/treesit.c (ts_load_language): Move initialization of c_name down
	and free it right after use.

2022-10-17  Alan Mackenzie  <acm@muc.de>

	CC Mode: Don't fontify as types variables with the same names as struct tags

	This fixes bug #58534.

	* lisp/progmodes/cc-engine.el (c-forward-type): Only regard "struct" keywords
	which create self contained types (e.g. C++'s "typename") as creating found
	types.

	* lisp/progmodes/cc-langs.el (c-self-contained-typename-kwds
	(c-self-contained-typename-key): New language consts and variable.

2022-10-17  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in fortran.el

	* lisp/progmodes/fortran.el (fortran-mode-map): Prefer
	defvar-keymap.

2022-10-17  Stefan Kangas  <stefankangas@gmail.com>

	Update version information in Gnus manual

	* doc/misc/gnus.texi (Gnus Versions): Update with some information
	from https://www.gnus.org/history.html
	(Ma Gnus): Explain that Gnus is now developed together with
	Emacs.  (Bug#58161)

2022-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/itree.c: Eliminate all prototypes for static functions

	Massive code reorganization to move definitions of static functions
	before their first use, so as to remove the need for
	redundant prototypes.
	While at it, fix a few places where the used more than 80 column.

2022-10-17  Basil L. Contovounesios  <contovob@tcd.ie>

	Silence recent comp-tests.el lexvar warnings

	* test/lisp/emacs-lisp/comp-tests.el: Mark used native-compile
	variables as special to pacify unknown lexvar warnings in the
	default build.
	(with-test-native-compile-prune-cache): Instrument macro arguments
	for debugging and indent conventionally.  Reindent all callers.
	(test-native-compile-prune-cache/dont-delete-in-parent-of-cache):
	Simplify file name expansion.

2022-10-17  Eli Zaretskii  <eliz@gnu.org>

	Make sure the treesit path variables are lists

	* src/treesit.c: (treesit_load_language)
	(treesit_find_override_name): Make sure the lists we use are
	really lists.

2022-10-17  Matt Armstrong  <matt@rfc20.org>

	Rename itree iterators with itree_iterator prefix

	* src/itree.h: Rename struct interval_generator -> itree_iterator.
	Rename functions: itree_busy_p -> itree_iterator_busy_p,
	interval_tree_iter_start -> itree_iterator_start,
	interval_generator_narrow -> itree_iterator_narrow,
	interval_tree_iter_finish -> itree_iterator_finish,
	interval_generator_next -> itree_iterator_next.
	* src/itree.c: Use new names everywhere.
	* src/eval.c: ditto.

2022-10-17  Matt Armstrong  <matt@rfc20.org>

	Delete the itree_null sentinel node, use NULL everywhere.

	This effort caught a few (already committed) places that were
	dereferencing through ITREE_NULL in a confusing way.  It makes some
	functions have to check for NULL in more places, but in my experience
	this is worth it from a code clarity point of view.

	In doing this I rewrote `interval_tree_remove` completely.  There
	there was one final bug in that function that I simply could not find
	when I #define'd ITREE_NULL to NULL.  I couldn't easily understand
	that function, so instead I rewrote it completely with a focus on code
	clarity.  Bug went away.

	I have left the ITREE_NULL #define in code, to reduce code review
	noise.  It is easily removed later, mechanically.

	* src/itree.h: #define ITREE_NULL to NULL and leave a FIXME.
	* src/itree.c (itree_null): Delete the itree_null static variable.
	(null_is_sane): Delete (and all callers).
	(interval_tree_insert): Insert the first node as black straight away.
	(itree_newlimit): Handle NULL children.
	(interval_tree_remove_fix): ditto.
	(interval_tree_insert_fix): ditto.
	(interval_tree_remove): Rewrite for clarity.
	(null_safe_is_red): New function.
	(null_safe_is_black): New function.
	(interval_tree_replace_child): Renamed from interval_tree_transplant.
	(interval_tree_transplant): New function that something I think is
	more like a full transplantation.  (names are hard)

2022-10-17  Stefan Kangas  <stefankangas@gmail.com>

	Improve native-compile-prune-cache messages

	* lisp/emacs-lisp/comp.el (native-compile-prune-cache): Quote name of
	pruned directory.

2022-10-17  Stefan Kangas  <stefankangas@gmail.com>

	Don't prune *.eln files in parent of eln-load-path

	* lisp/emacs-lisp/comp.el (native-compile-prune-cache): Don't
	prune *.eln files in parent directory of `native-comp-eln-load-path'.
	* test/lisp/emacs-lisp/comp-tests.el
	(test-native-compile-prune-cache/dont-delete-in-parent-of-cache):
	New test.

2022-10-17  Stefan Kangas  <stefankangas@gmail.com>

	Add tests for native-compile-prune-cache

	* test/lisp/comp-tests.el: New file.

2022-10-17  Po Lu  <luangruo@yahoo.com>

	Fix pieces of code being too expensive over slow network connections

	* lisp/menu-bar.el (menu-bar-edit-menu): Test buffer-read-only
	before gui-backend-selection-exists-p.  This places the less
	expensive condition before the more expensive one.
	* src/xfns.c (compute_tip_xy): Use cached monitor attributes
	whenever available.
	(Fx_show_tip): Remove code that really did nothing.
	(Fx_backspace_delete_keys_p): Do not download the entire keymap
	from the server upon creating a frame.
	* src/xmenu.c (create_and_show_popup_menu): Use
	x_translate_coordinates_to_root.
	(x_menu_show): Use x_translate_coordinates_to_root.
	* src/xselect.c (Fx_selection_exists_p): If a temporary
	selection owner can be found, use it.
	* src/xterm.c (x_translate_coordinates_to_root)
	(x_handle_selection_monitor_event, x_find_selection_owner): New
	functions.  These functions try to avoid downloading data from
	the X server in places that are called very often (i.e. during
	tool bar updates.)
	(handle_one_xevent): Handle selection notify events.  Also catch
	some mistakes found.  Fetch all kinds of key names as well.
	(x_create_special_window): New function.
	(x_term_init, x_delete_display): Ask for all key names.  Also,
	passively monitor selections that are given to
	`x-selection-exists-p' during redisplay, so we do not have to
	ask the server about them upon each redisplay.
	(syms_of_xterm): New variable `x-fast-selection-list'.
	* src/xterm.h (struct x_monitored_selection): New structure.
	(X_INVALID_WINDOW): New define.
	(struct x_display_info): New fields for selection monitoring.
	Also, record the fixes extension base.

2022-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix spurious "Compilation finished" native-comp messages

	* lisp/emacs-lisp/comp.el (native--compile-async): Don't start the
	async compilation if we didn't add anything.  This avoids spurious
	"Compilation finished" messages in the *Async* buffer when it
	turned out that all the files we considered nativecomping were
	skipped.

2022-10-17  Yuan Fu  <casouri@gmail.com>

	Fix js/ts tree-sitter template_string font-lock

	* lisp/progmodes/js.el (js--treesit-settings): Fontify
	template_strings with js--fontify-template-string.
	(js--fontify-template-string): New function.
	(js--json-treesit-settings): Add missing :feature flag.
	* lisp/progmodes/ts-mode.el (ts-mode--settings): Fontify
	template_strings with js--fontify-template-string.

2022-10-17  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el (treesit-font-lock-rules): Warn about :feature.

2022-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid having the async compile log saying it's compiling loaddefs

	* lisp/loadup.el (featurep): Define the hash table in nativecomp
	builds (but not otherwise).  A more natural place to define this
	would be in comp.el, but comp.el isn't loaded yet when we load the
	.elc file that updates comp--no-native-compile.  We could change
	the load order and move the definition to comp.el, though.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Allow
	inhibiting nativecomp earlier (bug#57627).

	* lisp/emacs-lisp/comp.el (native-compile-async-skip-p): Use the data.

2022-10-17  Andrey Listopadov  <andreyorst@gmail.com>  (tiny change)

	Use face-spec-set instead of custom-set-faces

	GitHub-reference: https://github.com/jwiegley/use-package/issues/934

2022-10-17  Stefan Kangas  <stefankangas@gmail.com>

	Make `message-canlock-generate' faster

	* lisp/gnus/message.el (message-canlock-generate): Improve performance
	by several orders of magnitude.

2022-10-16  Dmitry Gutov  <dgutov@yandex.ru>

	Add default implementation for 'checkin-patch'

	* lisp/vc/vc.el (vc-default-checkin-patch):
	Add default implementation for 'checkin-patch' (bug#52349).
	The first attempt was here:
	https://lists.gnu.org/archive/html/emacs-devel/2022-08/msg01464.html

2022-10-16  Philip Kaludercic  <philipk@posteo.net>

	* src/keyboard.c (echo_add_key): Mention quick-help

2022-10-16  Philip Kaludercic  <philipk@posteo.net>

	Only clone packages if necessary

	* lisp/emacs-lisp/package-vc.el (package-vc-unpack): Check if
	directory exists before cloning.

2022-10-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-generic: Fix `advertised-calling-convention` declarations

	* lisp/emacs-lisp/cl-generic.el (cl-generic-define-method):
	Preserve the `advertised-calling-convention`, if any (bug#58563).

	* lisp/subr.el (declare): Warn when we hit this.

	* lisp/emacs-lisp/byte-run.el (get-advertised-calling-convention): New fun.
	* lisp/progmodes/elisp-mode.el (elisp-get-fnsym-args-string):
	* lisp/help-fns.el (help-fns--signature):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-fdefinition): Use it.

	* test/lisp/emacs-lisp/cl-generic-tests.el (cl-generic-tests--acc): New fun.
	(cl-generic-tests--advertised-calling-convention-bug58563): New test.

2022-10-16  Philip Kaludercic  <philipk@posteo.net>

	Attempt to infer the package subject if missing

	* lisp/emacs-lisp/package-vc.el (package-vc-main-file): Add function.
	(package-vc-generate-description-file): Infer the subject.

2022-10-16  kobarity  <kobarity@gmail.com>

	Move and rename Python completion ERTs

	* test/lisp/progmodes/python-tests.el
	(python-shell-completion-at-point-1)
	(python-shell-completion-at-point-native-1)
	(python-completion-at-point-1)
	(python-completion-at-point-2, python-completion-at-point-pdb-1)
	(python-completion-at-point-native-1)
	(python-completion-at-point-native-2)
	(python-completion-at-point-native-with-ffap-1)
	(python-completion-at-point-native-with-eldoc-1): Renamed tests
	(bug#58565).

2022-10-16  Eli Zaretskii  <eliz@gnu.org>

	Support MinGW build on MS-Windows

	* src/treesit.c [WINDOWSNT]: Add MS-Windows boilerplate for
	dynamically-loaded optional libraries.
	(init_treesit_functions) [WINDOWSNT]: New function.
	(load_tree_sitter_if_necessary): New function.
	(ts_initialize): Call 'load_tree_sitter_if_necessary'.
	(ts_delete_parser, ts_delete_query, ts_named_node_p): Wrapper
	functions for TS calls from outside treesit.c.
	(Ftreesit_parser_root_node, Ftreesit_parser_set_included_ranges)
	(Ftreesit_parser_included_ranges, Ftreesit_node_type)
	(Ftreesit_node_start, Ftreesit_node_end, Ftreesit_node_string)
	(Ftreesit_node_parent, Ftreesit_node_child, Ftreesit_node_check)
	(Ftreesit_node_field_name_for_child, Ftreesit_node_child_count)
	(Ftreesit_node_next_sibling, Ftreesit_node_prev_sibling)
	(Ftreesit_node_first_child_for_pos)
	(Ftreesit_node_descendant_for_range, Ftreesit_node_eq)
	(Ftreesit_query_compile, Ftreesit_query_capture)
	(Ftreesit_search_subtree, Ftreesit_search_forward)
	(Ftreesit_induce_sparse_tree): Call 'ts_initialize' before any
	other TS functions.
	(Ftreesit_available_p): 'treesit-available-p' implemented in C, so
	that on WINDOWSNT the library could be loaded dynamically.
	* src/treesit.h (ts_delete_parser, ts_delete_query)
	(ts_named_node_p): Add prototypes.
	* src/print.c (print_vectorlike):
	* src/alloc.c (cleanup_vector): Call tree-sitter function via
	wrappers defined in treesit.c, not directly, because WINDOWSNT
	redefines the TS functions to be called via function pointers.
	* src/Makefile.in (base_obj): Add treesit.o
	(TREE_SITTER_OBJ): Remove.

	* lisp/treesit.el (treesit-available-p): Remove: now implemented
	in C.
	* lisp/term/w32-win.el (dynamic-library-alist): Add libtree-sitter
	DLLs.

	* configure.ac (TREE_SITTER): Support the MinGW build.
	(TREE_SITTER_OBJ): Remove.

2022-10-16  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in ansi-osc.el

	* lisp/ansi-osc.el (ansi-osc-hyperlink-map): Prefer defvar-keymap.

2022-10-16  Philip Kaludercic  <philipk@posteo.net>

	Mark source packages as always updatable

	* lisp/emacs-lisp/package.el (package--updateable-packages): Add check
	for source packages.

2022-10-16  Philip Kaludercic  <philipk@posteo.net>

	Delete 'package-contact-maintainer'

	* doc/emacs/package.texi: Remove mention.
	* etc/NEWS: Remove mention.
	* lisp/emacs-lisp/package.el: Remove the command.

2022-10-16  Stefan Kangas  <stefankangas@gmail.com>

	Make help-for-help echo key on failure

	* lisp/help-macro.el (make-help-screen): Echo key on failure.

2022-10-16  Stefan Kangas  <stefankangas@gmail.com>

	Bind "home"/"end" in help-for-help

	* lisp/help-macro.el (make-help-screen): Bind "home"/"end" keys to
	scrolling up/down.

2022-10-16  Stefan Kangas  <stefankangas@gmail.com>

	Don't ding when exiting help-for-help with C-g

	* lisp/help-macro.el (make-help-screen): Don't ding on "C-g".

2022-10-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Clear misleading message in help-quit-or-quick

	* lisp/help.el (help-quit-or-quick): Clear misleading message
	(bug#58542).

2022-10-16  kobarity  <kobarity@gmail.com>

	Fix invalid search bound error in python-shell-completion-at-point

	* lisp/progmodes/python.el (python-shell-completion-at-point): Add
	check if point is before line-start.
	* test/lisp/progmodes/python-tests.el (python-shell-completion-shell-buffer-1)
	(python-shell-completion-shell-buffer-native-1): New tests
	(bug#58548).

2022-10-16  Daniel Martín  <mardani29@yahoo.es>

	Signal an error in dictionary lookup if there's no word at point

	* lisp/net/dictionary.el (dictionary-lookup-definition): Signal an
	error when there is no word at point (bug#58552).

2022-10-16  kobarity  <kobarity@gmail.com>

	Disable completion when PDB is active in Python Shell buffer

	* lisp/progmodes/python.el (python-shell-completion-at-point): Disable
	completion in Python buffer when PDB is active in Python Shell buffer.
	* test/lisp/progmodes/python-tests.el (python-shell-completion-pdb-1):
	New test (bug#58562).

2022-10-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	067361f3a2 ; Improve documentation of 'C-M-i'
	fdb6f7cf26 ; Fix documentation of 'comp-enable-subr-trampolines'
	be30369e01 ; Avoid incorrect indentation in an @example.
	4bd3dd505e Document how to control where the *.eln files are written
	b7d7c2d9e9 Add cross-reference to alternative syntaxes for Unicode

	# Conflicts:
	#	doc/emacs/custom.texi

2022-10-16  Stefan Kangas  <stefankangas@gmail.com>

	Expand 'random' testsuite

	* test/src/fns-tests.el (ert): Require.
	(fns-tests-random): Expand test.

2022-10-16  Po Lu  <luangruo@yahoo.com>

	Adapt last change to Haiku port

	* src/haikuterm.c (haiku_frame_up_to_date):
	(haiku_clear_frame):
	(haiku_update_begin):
	(haiku_flush):
	(haiku_flush_dirty_back_buffer_on):
	(haiku_read_socket):
	* src/haikuterm.h (struct haiku_output):
	(FRAME_COMPLETE_P): Synchronize logic with X.

2022-10-16  Po Lu  <luangruo@yahoo.com>

	Fix multiple sources of flicker under X

	Fix three kinds of flicker.  The first is if you do:

	  (while t (sit-for 1) (redraw-display))

	and press a key, the frame will turn blank until you C-g.  The
	second is where handling async input happens in the middle of
	drawing and causes a buffer flip to happen.  The third is where
	unmapping the hourglass window causes exposures.

	* src/dispnew.c (redraw_frame): Garbage the frame if it is a
	window system frame.
	* src/xterm.c (x_update_begin): Clear complete flag.
	(x_flip_and_flush, XTframe_up_to_date): Set complete flag.
	(x_show_hourglass): Fix hourglass window class.
	(flush_dirty_back_buffer_on): Rename to
	x_flush_dirty_back_buffer_on.
	(x_flush_dirty_back_buffer_on): Check if the frame is complete
	before trying to flip.
	(handle_one_xevent): Flush frames in a more detailed fashion.
	* src/xterm.h (struct x_output): New flag `complete'.
	(FRAME_X_COMPLETE_P): New macro.

2022-10-15  Yuan Fu  <casouri@gmail.com>

	Update ts-mode font-lock to work with tree-sitter's :feature

	* lisp/progmodes/ts-mode.el (ts-mode--settings): Add :feature flag.
	(ts-mode): Set treesit-font-lock-feature-list.

2022-10-15  Paul Eggert  <eggert@cs.ucla.edu>

	Fix ‘make bootstrap’ when the *.m4 files change

	This should help avoid problems like Bug#58535.
	* Makefile.in (bootstrap-clean): Also remove autom4te.cache.

2022-10-15  Michael Albinus  <michael.albinus@gmx.de>

	Minor Tramp fixes

	* lisp/net/tramp-sh.el (tramp-perl-id): Fix Perl script.
	(tramp-sh-handle-expand-file-name):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name):
	Check, that there's really a Tramp file name.

2022-10-15  Philip Kaludercic  <philipk@posteo.net>

	Merge branch 'master' into feature/package+vc

	* lisp/vc/vc-git.el (vc-git-symbolic-commit): Use --no-undefined

2022-10-15  Philip Kaludercic  <philipk@posteo.net>

	* lisp/vc/vc-git.el (vc-git-symbolic-commit): Add argument FORCE

	(Bug#57400)

2022-10-15  Philip Kaludercic  <philipk@posteo.net>

	* lisp/vc/vc-git.el (vc-git--rev-parse): Allow abbreviating commits

	* lisp/vc/vc-git.el (vc-git-working-revision): Use abbreviated comment
	references.  (Bug#57400)

2022-10-15  Philip Kaludercic  <philipk@posteo.net>

	Handle ;;;###theme-autoload comments in etc/themes

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--emacs-batch):
	Extract the autoloads and have them loaded along with loaddefs.el.
	* etc/NEWS: Mention the new feature.  (Bug#57639)

2022-10-15  Philip Kaludercic  <philipk@posteo.net>

	Tag themes with properties

	* doc/emacs/custom.texi (Custom Themes): Document 'theme-choose-variant'.
	* doc/lispref/customize.texi (Custom Themes): Document the new
	optional argument to 'deftheme'.
	(Autoload): Mention that 'deftheme' is not copied verbatim.
	* etc/themes/adwaita-theme.el (adwaita): Add properties.
	* etc/themes/deeper-blue-theme.el (deeper-blue): Add properties.
	* etc/themes/dichromacy-theme.el (dichromacy): Add properties.
	* etc/themes/light-blue-theme.el (light-blue): Add properties.
	* etc/themes/manoj-dark-theme.el (manoj-dark): Add properties.
	* etc/themes/misterioso-theme.el (misterioso): Add properties.
	* etc/themes/tango-dark-theme.el (tango-dark): Add properties.
	* etc/themes/tango-theme.el (tango): Add properties.
	* etc/themes/tsdh-dark-theme.el (tsdh-dark): Add properties.
	* etc/themes/tsdh-light-theme.el (tsdh-light): Add properties.
	* etc/themes/wheatgrass-theme.el (wheatgrass): Add properties.
	* etc/themes/whiteboard-theme.el (whiteboard): Add properties.
	* etc/themes/wombat-theme.el (wombat): Add properties.
	* etc/themes/modus-operandi-theme.el: Add properties.
	* etc/themes/modus-vivendi-theme.el: Add properties.
	* etc/themes/leuven-dark-theme.el (leuven-dark): Add properties.
	* etc/themes/leuven-theme.el (leuven): Add properties.
	* lisp/custom.el (deftheme): Allow for optional arguments to set the
	property list.
	(custom-declare-theme): Accept the same optional arguments as 'deftheme'.
	(theme-list-variants): Add new function.
	(theme-choose-variant): Add new command for switching between members
	of a theme family.
	(toggle-theme): Add an alias for 'theme-choose-variant'.
	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload):
	Handle 'defcustom's by extracting the properties.  (Bug#57639)

2022-10-15  Stefan Kangas  <stefankangas@gmail.com>

	Add no-byte-compile to the ".dir-locals.el" auto-insert template

	* lisp/autoinsert.el (auto-insert-alist): Add the no-byte-compile
	cookie to the ".dir-locals.el" template.

2022-10-15  Stefan Kangas  <stefankangas@gmail.com>

	Delete broken link to Network Theory Ltd.

	Sadly, their website has been down for several months already.
	I was unable to find a new link, but it seems like they haven't
	published anything new for over a decade.
	* doc/misc/org.org (Summary): Remove broken link to Network Theory Ltd.

2022-10-15  Eli Zaretskii  <eliz@gnu.org>

	Fix encoding and decoding of process I/O in Eshell on Windows

	* lisp/eshell/esh-proc.el (eshell-gather-process-output): Set up
	encoding and decoding of text to/from the subprocess for
	MS-Windows.  (Bug#58281)

2022-10-15  Po Lu  <luangruo@yahoo.com>

	Remove redundant call to expensive function XOpenDisplay

	* src/xterm.c (x_term_init): Speed up opening Emacs over a slow
	network connection by an order of magnitude on no toolkit builds
	by avoiding a redundant call to XOpenDisplay.

2022-10-15  Po Lu  <luangruo@yahoo.com>

	Fix XDS file name expansion

	* lisp/x-dnd.el (x-dnd-handle-xds-drop): Expand file names
	again.  That code was mistakenly removed.

2022-10-14  Stefan Kangas  <stefankangas@gmail.com>

	Use file-size-human-readable in memory-report--format

	* lisp/emacs-lisp/memory-report.el (memory-report--format): Use
	file-size-human-readable.

2022-10-14  Basil L. Contovounesios  <contovob@tcd.ie>

	Update image-circular-tests.el

	* test/manual/image-circular-tests.el
	(image-test-duplicate-keywords): Skip unless images are supported.
	(image-test-circular-plist, image-test-:type-property-value): Ditto.
	Wrap only failing forms in should[-error] rather than entire test
	bodies.  Use simpler printed notation in place of function calls.
	(image-test-circular-specs): Ditto.  Wrap overly wide docstring.
	Mark as failing since shortly after its introduction (bug#36403#63).

2022-10-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/textprop.c (get_char_property_and_overlay): Fix bug#58479

	Correct `get-char-property` which failed to ignore empty overlays.

	* src/textprop.c (get_char_property_and_overlay): Make sure the
	overlay covers the character.
	* test/src/buffer-tests.el (buffer-tests--overlay-bug58479): New test.
	* src/buffer.h (buffer_has_overlays): Avoid `interval_tree_size`.

2022-10-14  Michael Albinus  <michael.albinus@gmx.de>

	Rename `file-attribute-file-number' to `file-attribute-file-identifier'

	* doc/lispref/files.texi (File Attributes):
	* etc/NEWS:
	* lisp/files.el (find-buffer-visiting, find-file-noselect)
	(set-visited-file-name, basic-save-buffer)
	(file-attribute-file-identifier):
	* lisp/startup.el (normal-top-level-add-subdirs-to-load-path):
	* lisp/eshell/em-unix.el (eshell-shuffle-files):
	* src/dired.c (Ffile_attributes):
	Rename `file-attribute-file-number' to `file-attribute-file-identifier'.

2022-10-14  Eli Zaretskii  <eliz@gnu.org>

	Document how to control where the *.eln files are written

	* doc/lispref/compile.texi (Native Compilation): Document the
	trick of pointing $HOME to a non-existent directory.
	(Native-Compilation Variables): Document the role of
	'native-comp-eln-load-path' in determining where *.eln files are
	written.

2022-10-14  Alan Mackenzie  <acm@muc.de>

	Correctly fontify C++'s operator"" _tag (...)

	Give both the "" and _tag font-lock-function-name-face.  Also correct the
	fontification of an inherited class name when there is an attribute between
	the class name being declared and the colon introducing the inheritance.

	* lisp/progmodes/cc-engine.el (c-forward-over-colon-type-list): New function.
	(c-forward-keyword-clause): Use the above new function instead of a
	looking-at.
	(c-forward-name, c-forward-declarator): Accept both the "" and the tag as part
	of the name.

	* lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Fontify the "" (which
	already has font-lock-string-face) and the tag with
	font-lock-function-name-face.

	* lisp/progmodes/cc-langs.el (c-overloadable-operators): Add "" to this list.
	(c-sub-colon-type-list-re): New lang-const and lang-var.

2022-10-14  Philip Kaludercic  <philipk@posteo.net>

	Add a quick-help menu

	* lisp/help.el (help-map): Bind 'help-quit-or-quick' instead of 'help-quit'.
	(help-quick-sections): Add variable.
	(help-quick): Add main command.
	(cheat-sheet): Add alias for 'help-quick'.
	(help-quit-or-quick): Add auxiliary command.
	lisp/help.el (help-for-help):  Mention 'help-quit-or-quick'.
	* etc/NEWS (https): Mention 'help-quit'.

2022-10-14  Philip Kaludercic  <philipk@posteo.net>

	* lisp/net/rcirc.el (rcirc-bridged-nick): Inherit from highlight

2022-10-14  Philip Kaludercic  <philipk@posteo.net>

	Allow filtering what items are added to Ecomplete

	* etc/NEWS: Mention new option.
	* lisp/ecomplete.el (ecomplete-filter-regexp): Add new option.
	(ecomplete-add-item): Respect new option.  (bug#58487)

2022-10-14  Philip Kaludercic  <philipk@posteo.net>

	Prevent .dir-locals.el from being byte-compiled

	* lisp/files-x.el (modify-dir-local-variable): Add a 'no-byte-compile'
	file local variable when generating a .dir-locals.el
	file.
	* .dir-locals.el:  Add 'no-byte-compile'.  (Bug#58486)

2022-10-14  Philip Kaludercic  <philipk@posteo.net>

	* lisp/net/rcirc.el (rcirc-generate-log-filename): Append ".log"

	(Bug#54718)

2022-10-14  Philip Kaludercic  <philipk@posteo.net>

	Prepare all inline patches at once

	* lisp/vc/vc.el (vc-prepare-patch): Remove the usage of
	'recursive-edit' when 'vc-prepare-patches-separately' is non-nil.

2022-10-14  Philip Kaludercic  <philipk@posteo.net>

	Allow reordering commits in 'vc-prepare-patch' prompt

	* lisp/vc/vc.el (vc-prepare-patch): Use marked log-view commits as
	initial input.

2022-10-14  Philip Kaludercic  <philipk@posteo.net>

	Mention that vc-prepare-patch can interact with a log-view

	* lisp/play/zone.el (zone): Allow selecting a program

2022-10-14  Robert Pluim  <rpluim@gmail.com>

	Add cross-reference to alternative syntaxes for Unicode

	These alternative syntaxes allow you to specify Unicode codepoints
	using only ASCII, which helps avoid decoding issues.

	* doc/emacs/custom.texi (Init Non-ASCII): Add cross reference to
	"General Escape Syntax" in the Emacs Lisp Reference Manual.

2022-10-14  Reuben Thomas  <rrt@sc3d.org>

	Do perl documentation lookups case-insensitively, like man

	* lisp/progmodes/cperl-mode.el (cperl-perldoc): add -i to the perldoc
	command.

2022-10-14  Po Lu  <luangruo@yahoo.com>

	Fix bug#56153

	* src/nsterm.m (get_keysym_name)
	(ns_draw_glyphless_glyph_string_foreground): Fix new Mac OS
	deprecations.

	([EmacsApp terminate:]): Use kbd_buffer_store_event instead
	of emacs_event.  (bug#56153)
	([EmacsView windowDidChangeBackingProperties:]): Fix new Mac
	OS deprecation.

2022-10-14  Po Lu  <luangruo@yahoo.com>

	Avoid redundant creation of XRender pictures

	* src/xterm.c (x_composite_image): Take arg DESTINATION.  Do not
	create a picture if it is set.
	(x_draw_image_foreground, x_draw_image_foreground_1): Pass
	destination where appropriate.

2022-10-14  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	85e47d9a9e ; Continued cleanup of "-hooks"

2022-10-13  Yuan Fu  <casouri@gmail.com>

	Update tree-sitter manual to reflect the previous commit

	* doc/lispref/modes.texi: Update manual to reflect previous change:
	remove :toggle and :level, add :feature.  Document new variables and
	functions.
	* doc/lispref/parsing.texi: Add the missing closing bracket in
	@code{(t . nil)}.

2022-10-13  Yuan Fu  <casouri@gmail.com>

	Rework tree-sitter font-lock

	Remove :toggle and :level, add :feature.

	* lisp/progmodes/js.el (js--treesit-settings): Add :feature.
	(js--treesit-enable): Set treesit-font-lock-feature-list.
	* lisp/progmodes/python.el: Replace :level with :feature.
	(python-mode): Set treesit-font-lock-feature-list.
	* lisp/treesit.el (treesit-font-lock-feature-list): New variable.
	(treesit-font-lock-settings): Change format.
	(treesit-font-lock-rules): Remove :toggle and :level, add :feature.
	(treesit-font-lock-recompute-features): New function.
	(treesit-font-lock-fontify-region): Change to work with the new
	format.
	(treesit-font-lock-enable): Add call to
	treesit-font-lock-recompute-features.  And improve the font-lock-mode
	workaround.

2022-10-13  Yuan Fu  <casouri@gmail.com>

	* doc/lispref/parsing.texi: Add manual for treesit-query-language.

	* src/treesit.c (Ftreesit_query_language): New function.

2022-10-13  Michael Albinus  <michael.albinus@gmx.de>

	Clarify structure of file-attribute's device number

	* doc/lispref/buffers.texi (Buffer File Name): Fix description of
	buffer-file-number.

	* doc/lispref/files.texi (File Attributes): Clarify type of device
	number.  Describe file-attribute-file-number.  (Bug#58446)

	* etc/NEWS: Mention file-attribute-file-number.

	* lisp/files.el (buffer-file-number, file-attribute-device-number)
	(file-attribute-collect): Fix docstring.
	(file-attribute-file-number): New defsubst.
	(find-buffer-visiting, find-file-noselect)
	(set-visited-file-name, basic-save-buffer):
	* lisp/startup.el (normal-top-level-add-subdirs-to-load-path):
	* lisp/eshell/em-unix.el (eshell-shuffle-files): Use it.

	* src/dired.c (Ffile_attributes): Fix docstring.

2022-10-13  Paul Eggert  <eggert@cs.ucla.edu>

	Improve checks for recent "File exists" fixup

	* src/fileio.c (Finsert_file_contents): Add an assertion (bug#42431).

2022-10-13  Stefan Kangas  <stefankangas@gmail.com>

	Make `info' treat "\n" in node names as "\s"

	* lisp/info.el (info): Treat "\n" in node name as "\s".  (Bug#57936)

2022-10-13  Po Lu  <luangruo@yahoo.com>

	Shrink client list window structure

	* src/xterm.c (struct x_client_list_window): Rearrange members
	for better alignment.

2022-10-13  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify recent "File exists" fix

	* src/fileio.c (Finsert_file_contents):
	Simplify previous change that fixed bug#42431.

2022-10-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix hl-line-mode/global-hl-line-mode logic again

	* lisp/hl-line.el (hl-line-mode): Make explicit calls to
	(hl-line-mode 1) work again when global-hl-line-mode is on
	(bug#58478).

2022-10-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix browse-url-emacs for file: URLs on Windows

	* lisp/net/browse-url.el (browse-url-emacs): Fix up
	file:///c:/foo/bar URLs on windows (bug#58464).

2022-10-13  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el: Rearrange button/margin functions.

	(outline--make-button-overlay, outline--make-margin-overlay)
	(outline--insert-open-button, outline--insert-close-button)
	(outline--fix-up-all-buttons): Move to the section "Button/margin indicators".

2022-10-13  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline--fix-buttons-after-change): New function.

	(outline-minor-mode): Use it.
	(outline--make-margin-overlay): Remove inhibit-read-only.

2022-10-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix misleading "File exists, but cannot be read" in browse-url-emacs

	* src/fileio.c (Finsert_file_contents): Don't signal an error
	about not being able to open the file when we're fetching things
	via handlers -- in that case, modtime isn't necessarily set, and
	if there's a handler, it should take care of this (bug#42431).

2022-10-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	4b4b093ab3 ; * admin/make-tarball.txt: Fix typo.

2022-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/frame.c (do_switch_frame): Fix bug#58343

	* src/frame.c (do_switch_frame): Move call to `get-mru-window` outside
	of the "critical region" where (selected-window) != (frame-selected-window).
	* src/minibuf.c (move_minibuffers_onto_frame): Add arg `frame`.
	Use it instead of `selected_frame`.  Adjust all callers.
	* src/lisp.h (move_minibuffers_onto_frame): Adjust declaration.

2022-10-12  Philip Kaludercic  <philipk@posteo.net>

	* etc/NEWS: Mention package-vc additions

2022-10-12  Philip Kaludercic  <philipk@posteo.net>

	Document package-vc

	* doc/emacs/package.texi (Package Files): Add new node.

2022-10-12  Philip Kaludercic  <philipk@posteo.net>

	Allow specifying a package name for 'package-vc-link-directory'

	* lisp/emacs-lisp/package-vc.el (package-vc-link-directory): Add argument NAME

2022-10-12  Philip Kaludercic  <philipk@posteo.net>

	* lisp/emacs-lisp/package-vc.el (package-vc-refresh): Add function.

2022-10-12  Philip Kaludercic  <philipk@posteo.net>

	Rename 'package-vc-link-project' to 'package-vc-link-directory'

	* lisp/emacs-lisp/package-vc.el (package-vc-link-project): Rename it.

2022-10-12  Philip Kaludercic  <philipk@posteo.net>

	Run 'package-vc-unpack-1' after updating source packages

	* lisp/emacs-lisp/package-vc.el (package-vc-update): Call
	'package-vc-unpack-1'.

2022-10-12  John Wiegley  <johnw@newartisans.com>

	Merge pull request from conao3/add-commands-keyword

	GitHub-reference: https://github.com/jwiegley/use-package/issues/917

2022-10-12  Yuan Fu  <casouri@gmail.com>

	Better signal data for treesit-load-language-error

	* src/treesit.c (ts_load_language): Better formatted signal data,
	(Ftreesit_language_available_p): Optionally return the signal data if
	language not available.
	* doc/lispref/parsing.texi: Document the signal data in detail.

2022-10-12  Philip Kaludercic  <philipk@posteo.net>

	Add new command to install a package via symbolic linking

	* lisp/emacs-lisp/package-vc.el (package-vc-unpack-1): Add new function.
	(package-vc-unpack): Use 'package-vc-unpack-1'.
	(package-vc-link-project): Add new command.

2022-10-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify Native-Compilation Variables slightly

	* doc/lispref/compile.texi (Native-Compilation Variables): Clarify
	trampoline bit (bug#58429).

2022-10-12  Philip Kaludercic  <philipk@posteo.net>

	Only use 'package-vc-repository-store' if necessary

	* lisp/emacs-lisp/package-vc.el (package-vc-unpack): Check if the
	upstream data indicates a custom lisp directory.
	* lisp/emacs-lisp/package.el (package--delete-directory): Adapt
	accordingly.

2022-10-12  Po Lu  <luangruo@yahoo.com>

	Improve makefile-imake-mode

	* lisp/progmodes/make-mode.el
	(makefile-imake-font-lock-keywords): Give Imake priority over
	CPP keywords, and don't require comments to start at BOL.
	(makefile-imake-mode): Set comment-start to some sensible value.

2022-10-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix thinko in read-string-from-buffer

	* lisp/textmodes/string-edit.el (string-edit-done): Return an empty
	string when the user has entered no text.

2022-10-12  kobarity  <kobarity@gmail.com>

	Fix Python completion when point in shell buffer is before prompt

	* lisp/progmodes/python.el (python-shell-completion-at-point): Limit
	prompt boundaries check to shell buffer.
	* test/lisp/progmodes/python-tests.el (python-shell-completion-2):
	(python-shell-completion-native-2): New tests (bug#58441).

2022-10-12  Po Lu  <luangruo@yahoo.com>

	Stop relying on Xt hack to set window manager hints

	* src/widget.c (get_wm_shell): Return WMShellWidget.
	(update_wm_hints, widget_update_wm_size_hints): Return whether
	or not size hints changed.
	* src/widget.h: Delete `size_switch'.
	* src/widgetprv.h (EmacsFramePart): Likewise.
	* src/xterm.c (x_wm_set_size_hint): Set size hints the usual way
	if Xt did not set them.  (bug#58412)

2022-10-12  Theodor Thornhill  <theo@thornhill.no>

	Add TypeScript support with tree-sitter

	* lisp/progmodes/ts-mode.el (ts-mode): New major mode for TypeScript
	with support for tree-sitter.  It uses the TSX parser, so that we get
	support for TSX as well as TypeScript.  If we cannot find tree-sitter,
	we default to using js-mode.

2022-10-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	3787d0b11a ; * doc/lispref/windows.texi (Window Hooks): Fix markup (b...

2022-10-11  Andrea Corallo  <andrea.corallo@arm.com>

	Add trampoline AOT compilation target (bug#58318)

	* Makefile.in (trampolines): New target.
	* lisp/Makefile.in (trampolines): Likewise.
	* lisp/emacs-lisp/comp.el (comp-compile-all-trampolines): New
	function.

2022-10-11  Theodor Thornhill  <theo@thornhill.no>

	Fix byte-compile warning for js--treesit-defun-type-regexp

	* lisp/progmodes/js.el (js--treesit-defun-type-regexp): Move before
	js--treesit-beginning-of-defun.

2022-10-11  Yuan Fu  <casouri@gmail.com>

	Lazily compile tree-sitter query

	See comment on struct Lisp_TS_Query for why.  Previous commits adding
	python and js support for tree-sitter breaks Emacs build if language
	definitions aren't available at build time.  This commit fixes that.

	Now query object don't compile the query upon creation, but stores the
	query source and language symbol, and compiles upon first use (in
	treesit-query-capture).

	I want ts_ensure_query_compiled to return signal symbol and data
	rather than signaling itself, because it's a helper function not lisp
	function.  But because it calls ts_load_language, I had to update
	ts_load_language to also use the signal symbol/data interface.

	* src/treesit.h (struct Lisp_TS_Query): Add two new field.
	* src/treesit.c (ts_load_language): Return signal symbol and data
	rather than signaling itself.
	(Ftreesit_language_available_p)
	(Ftreesit_parser_create): Update usage of ts_load_language

	(make_ts_query): Now returns a lisp object.
	(ts_query_error_to_string): Moved because it's used by
	ts_compose_query_signal_data.
	(ts_compose_query_signal_data)
	(ts_ensure_query_compiled): New functions.
	(Ftreesit_query_compile): Delay compiling the query.
	(Ftreesit_query_capture): Instead of creating a query object which
	compiles the query, now goes two routes: if QUERY is a query object,
	make sure it is compiled and use the TSQuery; if QUERY is a cons or
	string, compile directly to TSQuery, and free it after use.  Creating
	a lisp query requires the language symbol, but in this function we
	only have TSLanguage.

2022-10-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c (check_tree): Simplify

	* src/itree.c (struct check_subtree_result): Remove `complete`.
	(check_subtree): Remove `max_depth` arg (and adjust callers).
	Use 0 as black-depth of empty tree.
	Remove redundant `node->parent` check (already performed by the caller).
	(check_tree): Replace with `check_tree_common` (update all callers).
	Check the root's `parent` field.
	(check_tree_no_rb): Delete function, inlined in its sole caller.
	(interval_tree_remove): Add call to `check_tree` (without RB checks)
	before `interval_tree_remove_fix`.  Move update of `size`
	field accordingly.

2022-10-11  Po Lu  <luangruo@yahoo.com>

	Also avoid setting _NET_WM_USER_TIME on crossing

	* src/xterm.c (handle_one_xevent): Stop setting user time prop
	on crossing events.

2022-10-11  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): actually bump to 1.9

2022-10-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make read-string-from-buffer and string-edit mention each other

	* lisp/textmodes/string-edit.el (read-string-from-buffer)
	(string-edit): Mention each other in the doc strings.

2022-10-11  Eli Zaretskii  <eliz@gnu.org>

	Speed up scrolling when lines are very long and truncated

	* src/window.c (window_scroll_for_long_lines): New function.
	(window_scroll): Call 'window_scroll_for_long_lines' when lines
	are very long and truncated on display.  Also, disable
	'fontification-functions' during scrolling in that case.
	* src/xdisp.c (redisplay_window): When recentering the window's
	display, go back to the centering position using a simplified
	method, if lines in the buffer are very long and truncated on
	display.

2022-10-11  Po Lu  <luangruo@yahoo.com>

	Remove some more unnecessary calls to block_input

	* src/xterm.c (x_update_opaque_region, show_back_buffer)
	(XTbuffer_flipping_unblocked_hook, x_clear_under_internal_border)
	(x_after_update_window_line): Remove and add calls to
	block_input as required.

2022-10-10  Matt Armstrong  <matt@rfc20.org>

	Stop reading and writing the itree_null.parent field entirely.

	With this change all fields in the itree_null sentinel are read only.
	This makes accessing itree_null thread safe in an obvious way.

	Because it took two commits from two peole to get this right, I think
	we can call this design fragile and difficult to reason about.
	Another benefit of this commit is as preparation for removing sentinel
	node completely, and just using NULL.

	* src/itree.c (itree_null): Statically initialize itree_null.parent to
	NULL.  It is never accessed.
	(null_is_sane): Assert parent == NULL.
	(interval_tree_remove_fix): Remove unnecessary assignments to parent
	from node->parent.  These were the last places itree_null.parent were
	read.
	(interval_tree_remove): Avoid an assignment to itree_null.parent
	through min->right->parent.
	(interval_tree_transplant): Avoid an assignment to itree_null.parent
	through source->parent.

2022-10-10  Matt Armstrong  <matt@rfc20.org>

	Simplify itree_null initialization

	* src/itree.c (null_is_sane): call eassert directly, check
	REAR_ADVANCE, FRONT_ADVANCE.  Add FIXME that PARENT is still
	read/write.
	(itree_null): initialize statically
	(itree_init): remove initialization code, call eassert(null_is_sane())
	(check_tree_common): call eassert (null_is_sane())

2022-10-10  Matt Armstrong  <matt@rfc20.org>

	Check red-black invariants in most places

	Stefan recently disabled this but I happened to want it back soon
	after.

	* src/itree.c (check_subtree): new arg: allow_red_red
	(check_tree_common): renamed from check_tree, pass allow_red_red
	through.
	(check_tree): new function, pass allow_red_red=false
	(interval_tree_insert): check_tree -> check_tree_common with
	allow_red_red=true.

2022-10-10  Matt Armstrong  <matt@rfc20.org>

	Improve check_subtree

	* src/itree.c (struct check_subtree_result): new struct returned by
	check_subtree.
	(check_subtree): new function, renamed from recurse_check_tree.  Add
	new black height assertions.
	(check_tree): assert that the tree has non-negative size, assert that
	limiting to interval_tree_max_height(tree) levels is enough to
	traverses the complete tree.

2022-10-10  F. Jason Park  <jp@neverwas.me>

	Accommodate missing spec values in erc-format-message

	* lisp/erc/erc.el (erc-format-message): Although not mentioned in its
	log message, commit 5281946fbf6b3cdbec5ce82e0057c71849faf4d2 "Make
	format-spec accept function substitutions" also fixed a bug involving
	the `ignore-missing' parameter of `format-spec'.  Until now, ERC has
	been relying on the old behavior to gracefully handle malformed server
	messages.  This commit tries to regain that functionality.

2022-10-10  Philipp Stephani  <p.stephani2@gmail.com>

	Add gettid to seccomp-filter

	* lib-src/seccomp-filter.c (main): gettid is necessary on RHEL 9.0
	(bug#56359).

2022-10-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove the view-remove-frame-by-deleting variable

	* lisp/view.el (view-remove-frame-by-deleting): Remove variable
	that hasn't been used since 2011 -- 357f93d245344 reworked the
	code and stopped using it (bug#58413).

2022-10-10  kobarity  <kobarity@gmail.com>

	Fix Python completion failure under certain conditions

	* lisp/progmodes/python.el (python-shell-send-string-no-output):
	Save and restore `comint-last-prompt-overlay' or `comint-last-prompt'.
	* test/lisp/progmodes/python-tests.el (python-tests-shell-wait-for-prompt):
	New helper function.
	(python-tests-with-temp-buffer-with-shell): New helper macro.
	(python-shell-completion-1, python-shell-completion-native-1)
	(python-shell-completion-native-with-ffap-1)
	(python-shell-completion-native-with-eldoc-1): New tests (bug#58389).

2022-10-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve error message from sqlite-execute

	* src/sqlite.c (sqlite_prepare_errmsg): New function.
	(Fsqlite_execute): Use it to get the same error format for both
	execute and select.
	(Fsqlite_select): Factored out from here.

2022-10-10  Jim Porter  <jporterbugs@gmail.com>

	Don't prompt when killing an Emacs client if it's the last client

	* lisp/server.el (server-kill-emacs-query-function): Ignore the
	current client (if any) when checking for live clients (bug#58404).

2022-10-10  Daniel Martín  <mardani29@yahoo.es>

	Fix typo in Makefile.in

	* src/Makefile.in (TREE_SITTER_CFLAGS): Set the correct C flags.

2022-10-10  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp completion on MS Windows

	* lisp/net/tramp.el (tramp-build-remote-file-name-spec-regexp):
	Revert previous change, it's too complicated.
	(tramp-build-completion-file-name-regexp):
	Use `tramp-prefix-format' instead of `tramp-prefix-regexp'.  (Bug#558133)

2022-10-10  Paul Eggert  <eggert@cs.ucla.edu>

	Port bwrap/allows-stdout test to Ubuntu 22.04.1

	Without this patch, Ubuntu 22.04.1 x86-64 "make check" reports a
	failure in test/src/emacs-tests.el’s
	emacs-tests/bwrap/allows-stdout.  One can reproduce the bug
	without using the Emacs executable, by running this script:

	  #!/bin/bash
	  export LC_ALL=C
	  exec strace -f -o /tmp/tr bwrap --ro-bind / / --seccomp 20 -- \
	    cat /dev/null 20< lib-src/seccomp-filter-exec.bpf

	This script exits with status 159, because "cat" didn’t get
	started (it got a SIGSYS signal early on).

	The command "journalctl -g SECCOMP" indicated that rseq (syscall
	334) was the problem.  This syscall is issued by
	/lib64/ld-linux-x86-64.so.2 before ‘main’ is called.

	There’s another problem with the clone3 syscall, which is used by
	pthread_create starting in glibc 2.34.  pthread_create is called
	by g_child_watch_source_new, which is called by
	init_process_emacs.

	* lib-src/seccomp-filter.c (main): Allow rseq, clone3.  This
	causes the test to pass.  Perhaps a fancier, more accurate patch
	could be written by someone who has the time.

2022-10-10  Yuan Fu  <casouri@gmail.com>

	Make treesit-node-at faster

	* lisp/treesit.el (treesit-node-at): We only need to use
	treesit-node-first-child-for-pos.  This is both faster for large
	buffers and simpler.  Also remove the TODO comment.

2022-10-10  Theodor Thornhill  <theo@thornhill.no>

	Fix typo in treesit--check-manual-covarage

	* lisp/treesit.el (treesit--check-manual-coverage): Fix typo in
	function name and also lookup the correct library in
	`find-library-name'

2022-10-10  Yuan Fu  <casouri@gmail.com>

	Improve treesit-search-forward-goto so it doesn't stuck at EOF

	* lisp/treesit.el (treesit-search-forward-goto): Handle the edge case.

2022-10-10  Yuan Fu  <casouri@gmail.com>

	* admin/notes/tree-sitter/starter-guide (Navigation): Improve demo.

2022-10-10  Yuan Fu  <casouri@gmail.com>

	Fix js--treesit-beginning/end-of-defun

	* lisp/progmodes/js.el (require): Add rx.
	(js--treesit-move-to-node): Remove function.
	(js--treesit-beginning-of-defun)
	(js--treesit-end-of-defun): Change to use treesit-search-forward-goto.
	(js-treesit--defun-query): Remove variable.
	(js--treesit-defun-type-regexp): Add variable.

2022-10-10  Theodor Thornhill  <theo@thornhill.no>

	Add tree-sitter functionality to js-mode

	The diff for js-mode, js-json-mode, js-jsx-mode are a bit strange, but
	all we did is to wrap some the old code in

	(if tree-sitter
	  (tree-sitter-enable)
	 ...some old-code)

	...other old-code (that’s tree-sitter-agnostic)

	* lisp/progmodes/js.el (treesit): Add tree-sitter dependency
	(js-use-treesitter)
	(js-json-use-treesitter): New custom options.

	(js--treesit-keywords)
	(js--treesit-settings)
	(js--treesit-indent-rules)
	(js--json-treesit-settings)
	(js--json-treesit-indent-rules): New variables.

	(js--treesit-backward-up-list)
	(js-treesit-current-defun)
	(js--treesit-move-to-node)
	(js--treesit-beginning-of-defun, js--treesit-end-of-defun)
	(js--treesit-enable)
	(js--json-treesit-enable): New functions.

	(js-mode, js-json-mode, js-jsx-mode): Add support for tree-sitter
	functionalities.

2022-10-10  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter build script in admin/notes

	* admin/notes/tree-sitter/build-module/README: Add explanation.
	* admin/notes/tree-sitter/build-module/build.sh: change
	typescript to tsx.

2022-10-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a test for sqlite "insert ... returning"

	* test/src/sqlite-tests.el (sqlite-returning): Add a test for
	"insert ... returning".

2022-10-10  Robert Pluim  <rpluim@gmail.com>

	Fix `vc-prepare-patch' docstring

	* lisp/vc/vc.el (vc-prepare-patch): Correct description of
	`vc-prepare-patches-separately'.

2022-10-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Support "insert into ... returning ..." in sqlite-execute

	* doc/lispref/text.texi (Database): Mention it.
	* src/sqlite.c (Fsqlite_execute): Support syntax like "insert into
	... returning ..." (bug#58390).

2022-10-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some indentation in Fsqlite_execute

	* src/sqlite.c (Fsqlite_execute): Fix indentation.

2022-10-09  Yuan Fu  <casouri@gmail.com>

	Rename custom group treesit to tree-sitter

	* lisp/treesit.el (treesit): Rename.

2022-10-09  Yuan Fu  <casouri@gmail.com>

	Add :version tag for new tree-sitter custom options

	* lisp/progmodes/python.el (python-use-tree-sitter): Add version tag.
	* lisp/treesit.el (treesit):
	(treesit-max-buffer-size): Add version tag.

2022-10-09  Yuan Fu  <casouri@gmail.com>

	Make python tree-sitter font-lock support decoration levels

	* lisp/progmodes/python.el (python--treesit-settings): Stratify into
	three levels.

2022-10-09  Yuan Fu  <casouri@gmail.com>

	Make tree-sitter font-lock support decoration levels

	* admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html:
	Update.
	* admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html:
	Update.
	* doc/lispref/modes.texi: Mention the new :level option.
	* lisp/treesit.el (treesit-font-lock-settings): Update docstring.
	(treesit-font-lock-rules): Support :level.  Relayout the let form.
	(treesit-font-lock-fontify-region): Support :level.

2022-10-09  Yuan Fu  <casouri@gmail.com>

	Add note on tree-sitter's naming convention

	* admin/notes/tree-sitter/starter-guide: Add note.
	* doc/lispref/parsing.texi: Add note.

2022-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	Tighten up handling of `otick`

	Move args between `build_overlay` and `add_buffer_overlay`,
	to try and keep buffer positions together with their buffer.
	Be more strict in the `otick` values passed to `interval_tree_insert`.
	Move a few things around to try and reduce dependencies through `.h` files.
	Fix a thinko bug in `check_tree`.

	* src/alloc.c (build_overlay): Remove `begin` and `end` args.

	* src/buffer.c (add_buffer_overlay): Move from `buffer.h`.
	Add `begin` and `end` args.
	(copy_overlays): Adjust accordingly.
	(Fmake_overlay): Use BUF_BEG and BUF_Z; adjust call to `build_overlay`
	and `add_buffer_overlay`.
	(Fmove_overlay): Use BUF_BEG and BUF_Z; Use the new `begin` and `end`
	args of `add_buffer_overlay` so we don't need to use
	`interval_node_set_region` when moving to a new buffer.
	(remove_buffer_overlay, set_overlay_region): Move from `buffer.h`.

	* src/buffer.h (set_overlay_region, add_buffer_overlay)
	(remove_buffer_overlay): Move to `buffer.c`.
	(build_overlay): Move from `lisp.h`.
	(maybe_alloc_buffer_overlays): Delete function (inline into its only
	caller).

	* src/itree.c (interval_tree_insert): Move declaration `from buffer.h`.
	(check_tree): Fix initial offset in call to `recurse_check_tree`.
	Remove redundant check of the `limit` value.
	(interval_node_init): Remove `begin` and `end` args.
	(interval_tree_insert): Mark it as static.
	Assert that the new node's `otick` should already be up-to-date and its
	new parent as well.
	(itree_insert_node): New function.
	(interval_tree_insert_gap): Assert the otick of the removed+added nodes
	were up-to-date and mark them as up-to-date again after adjusting
	their positions.
	(interval_tree_inherit_offset): Check that the parent is at least as
	up-to-date as the child.

	* src/lisp.h (build_overlay): Move to `buffer.h`.

	* src/itree.h (interval_node_init): Adjust accordingly.
	(interval_tree_insert): Remove declaration.
	(itree_insert_node): New declaration.

2022-10-09  Philip Kaludercic  <philipk@posteo.net>

	Rename 'package-vc-fetch' to 'package-vc-install'

	* lisp/emacs-lisp/package-vc.el (package-vc-fetch): Rename to preserve
	symmetry with 'package-install'.
	(package-checkout): Follow the previous rename.

2022-10-09  Michael Heerdegen  <michael_heerdegen@web.de>

	Try to speed up extended command shorthand computation

	Discussed in Bug#51143.

	* lisp/simple.el (execute-extended-command--shorter): Compute a
	complete list of `commandp' symbols once.  This significantly speeds
	up complicated cases while the slowdown of simple cases is still
	acceptable.

2022-10-09  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Set the PARENTS argument for language environments

	* lisp/language/indonesian.el
	* lisp/language/philippine.el
	* lisp/language/misc-lang.el
	(set-language-info-alist): Add PARENTS argument.  (Bug#58376)

2022-10-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Make Fsqlite_select error data better

	* src/sqlite.c (Fsqlite_select): Add more the more specific error
	text to the error data (bug#58363).

2022-10-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up Fsqlite_select slightly

	* src/sqlite.c (Fsqlite_select): Clean up code slightly.

2022-10-09  Po Lu  <luangruo@yahoo.com>

	Fix user time handling bug on GNOME Shell and Metacity

	* src/xfns.c (x_window): Avoid extraneous
	XChangeWindowAttributes.
	* src/xterm.c (x_display_set_last_user_time): New argument
	SET_PROPERTY.  Do not change the user time property if it is not
	true.  All callers changed.
	(handle_one_xevent): Avoid setting the user time property on
	LeaveNotify and XI_Leave events.

2022-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Use `interval_tree_inherit_offset`

	The insertion code tried to manipulate the offset in its own way,
	and apparently there was a bug in it.  Replace that with a call to
	`interval_tree_inherit_offset`, making the whole logic a bit simpler,
	and fixing a bug along the way (not sure where the bug was, to be honest).

	* src/itree.c (interval_tree_insert): Use `interval_tree_inherit_offset`.
	Check the tree before insert_fix.
	(recurse_check_tree): Don't check RB invariants.
	(itree_limits_are_stable): Delete function (subsumed by `check_tree`).

2022-10-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	32ef7550ed ; Improve documentation of 'file-in-directory-p'

2022-10-08  Matt Armstrong  <matt@rfc20.org>

	Debug check overlay tree invariants

	* src/itree.c (check_tree):
	(recurse_check_tree): new functions.
	(interval_tree_insert): call them.
	(interval_tree_remove): ditto.
	(interval_tree_insert_fix): ditto.

2022-10-08  Matt Armstrong  <matt@rfc20.org>

	Comment change: explain inheriting "dirty" offsets

	handles inheriting offsets from dirty nodes.

2022-10-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/url/url-file.el (url-file): Don't bind `coding-system-for-read`

	Binding it causes errors when some of the enclosed code ends up
	loading a `.el` file, and it is unnecessary since the rest of
	the code (in `url-file-asynch-callback`) is already careful to
	use `insert-file-contents-literally`.

2022-10-08  Mattias Engdegård  <mattiase@acm.org>

	Restrict string-lessp vectorization to safe architectures

	* src/fns.c (HAVE_FAST_UNALIGNED_ACCESS): New.
	(Fstring_lessp): Only use word operations where safe, because string
	data from purespace may be unaligned.

2022-10-08  Mattias Engdegård  <mattiase@acm.org>

	Better Lisp_String comments

	* src/lisp.h (struct Lisp_String): Comments improved.
	* src/pdumper.c (dump_string): Update hash (comment change only).

2022-10-08  Mattias Engdegård  <mattiase@acm.org>

	Improved format string error message (bug#58168)

	* src/editfns.c (styled_format): Better message when the conversion
	char is non-ASCII from a unibyte format string.

2022-10-08  Philip Kaludercic  <philipk@posteo.net>

	* lisp/emacs-lisp/package-vc.el: Autoload 'package-vc-prepare-patch'

2022-10-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	package.el: Understand a few more variations in tarball formats

	* lisp/emacs-lisp/package.el (package-untar-buffer): Fix thinko.
	(package-tar-file-info): Handle the case where the first file is in
	a subdirectory.

	* test/lisp/emacs-lisp/package-tests.el (package-test-bug58367): New test.
	* test/lisp/emacs-lisp/package-resources/ustar-withsub-0.1.tar:
	* test/lisp/emacs-lisp/package-resources/v7-withsub-0.1.tar: New files.

2022-10-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Make sqlite-select signal errors when there's an error

	* src/sqlite.c (load_dll_functions): Update.
	(Fsqlite_select): Signal an error when there's an error preparing
	the statement.

2022-10-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix vtable-insert-object line insertion

	* lisp/emacs-lisp/vtable.el (vtable-insert-object): Pass in the
	correct ellipsis values (bug#58370).
	(vtable--insert-line): Don't bug out on missing optional arguments.

2022-10-08  Visuwesh  <visuweshm@gmail.com>

	Fix misleading prompt in vc-git-create-tag

	* lisp/vc/vc-git.el (vc-git-create-tag): Actually pass the DEFAULT
	argument to vc-read-revision (bug#58378).

2022-10-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in etc/TODO

2022-10-08  Michael Albinus  <michael.albinus@gmx.de>

	* etc/TODO (Wishlist items): Add libarchive(3) integration.

2022-10-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention seq-keep in shortdoc

	* lisp/emacs-lisp/shortdoc.el (sequence): Mention seq-keep.

2022-10-08  João Távora  <joaotavora@gmail.com>

	Fix docstring of eglot-list-connections-mode

	* eglot.el (eglot-list-connections-mode): Fix mistaken reference
	to similar non-Eglot code.

2022-10-08  Philip Kaludercic  <philipk@posteo.net>

	Clone packages into a separate directory

	* lisp/emacs-lisp/package-vc.el (package-vc-repository-store): Add new
	user option.
	(package-vc-unpack): Use 'package-vc-repository-store'.
	* lisp/emacs-lisp/package.el (package--delete-directory): Check and
	handle source packages.
	(package-delete): Invoke 'package--delete-directory' with an
	additional argument.

2022-10-08  Philip Kaludercic  <philipk@posteo.net>

	* lisp/emacs-lisp/package.el (package-report-bug): Use 'file-in-directory-p'

2022-10-08  Philip Kaludercic  <philipk@posteo.net>

	Extend package-vc heuristics to multiple source forges

	* package-vc.el (package-vc-probable-repository-regexp): Rename to
	'package-vc-heusitic-alist'.
	(package-vc-heusitic-alist): Add support for multiple VC backends.
	(package-vc-sourced-packages-list): Use 'package-vc-heusitic-alist'

2022-10-08  Philip Kaludercic  <philipk@posteo.net>

	Use 'package-vc-p' in package-vc.el

	* package-vc.el (package-vc-commit): Use it instead of 'eq'.
	(package-vc-version): Use it instead of 'eq'.

2022-10-08  Philip Kaludercic  <philipk@posteo.net>

	Add a package-vc command for submitting ptches

	* lisp/emacs-lisp/package-vc.el (package-vc-read-pkg): Add auxiliary
	command for querying source packages.
	(package-vc-prepare-patch): Add it.
	* lisp/emacs-lisp/package.el (package-maintainers): Add an optional
	NO-ERROR argument.

2022-10-08  Philip Kaludercic  <philipk@posteo.net>

	Extract package maintainer guessing code into a separate function

	* package.el (package-maintainers): Add new function.
	(package-contact-maintainer): Use it.
	(package-report-bug): Use it.

2022-10-08  Philip Kaludercic  <philipk@posteo.net>

	Add an inline procedure for checking for source packages

	* package.el (eval-when-compile): Require 'inline during compilation.
	(package-vc-p): Add inline function.
	(package-desc-full-name): Use it.
	(package-load-descriptor): Use it.
	(package--get-activatable-pkg): Use it.
	(package-install-from-archive): Use it.
	(package-update): Use it.
	(package-desc-status): Use it.
	(package--remove-hidden): Use it.
	(package-menu--print-info-simple): Use it.

2022-10-08  Philip Kaludercic  <philipk@posteo.net>

	Merge branch 'master' into feature/package+vc

2022-10-08  Philip Kaludercic  <philipk@posteo.net>

	Add a VC command to prepare patches

	* doc/emacs/vc1-xtra.texi (Miscellaneous VC):  Add new node.
	(Editing VC Commands):  Document new feature.
	* etc/NEWS:  Mention 'vc-prepare-patch'.
	* lisp/vc/log-view.el: Autoload 'log-view-get-marked'.
	* lisp/vc/vc-git.el (vc-git-prepare-patch):  Add Git implementation.
	* lisp/vc/vc-hg.el (vc-git-prepare-patch):  Add Mercurial implementation.
	* lisp/vc/vc-bzr.el (vc-git-prepare-patch):  Add Bazaar implementation.
	* lisp/vc/vc.el (vc-read-revision):  Add a MULTIPLE argument.
	(vc-read-multiple-revisions):  Add an auxiliary function that always
	calls 'vc-read-revision' with a non-nil value for MULTIPLE.
	(vc-prepare-patches-separately):  Add user option.
	(message-goto-body):  Declare function.
	(message--name-table):  Declare function.
	(vc-default-prepare-patch): Add a default implementation.
	(vc-prepare-patch):  Add command.  (Bug#57400)

2022-10-08  Po Lu  <luangruo@yahoo.com>

	Stop passing CurrentTime to SetInputFocus

	* src/xterm.c (xi_focus_handle_for_device, handle_one_xevent):
	Set the last user time where required for focus to be handled
	correctly.
	(x_focus_frame): Do not perform actions prohibited by the ICCCM.

2022-10-08  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Coptic script (bug#58330)

	* lisp/language/misc-lang.el ("Coptic"): New language environment.
	Add sample text and input method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support coptic.
	* lisp/leim/quail/misc-lang.el ("coptic"): New input method.

	* etc/HELLO: Add a Coptic greeting.
	* etc/NEWS: Announce the new language environment.

2022-10-08  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	cfb1e21844 Update name of hs-mouse-toggle-hiding in Emacs manual

2022-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree: Try and detect non-local exits during itree iterations

	* src/itree.c (itree_busy_p): New function.
	* src/eval.c (signal_or_quit): Use it.
	* src/itree.h (itree_busy_p): Declare it.

2022-10-07  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in bibtex.el

	* lisp/textmodes/bibtex.el (bibtex-mode-map): Prefer defvar-keymap.

2022-10-07  Stefan Kangas  <stefankangas@gmail.com>

	Fix setting the wallpaper with "swaybg" and "wbg"

	* lisp/image/wallpaper.el (wallpaper-setter): Add 'init-action'
	and 'detach' fields to structure.
	(wallpaper--init-action-kill): New helper function.
	(wallpaper--default-setters): Use above new fields for "swaybg" and
	"wbg", to start/restart the corresponding processes as needed.
	(wallpaper-default-set-function): Call 'init-action' function if
	there is one.  If 'detach', use 'call-process' instead of
	'start-process'.  (Bug#57781)

	* test/lisp/image/wallpaper-tests.el (wallpaper--find-setter)
	(wallpaper--find-setter/call-predicate)
	(wallpaper--find-setter/set-current-setter)
	(wallpaper-set/runs-command, wallpaper-set/runs-command/detach)
	(wallpaper-set/calls-init-action)
	(wallpaper-set/calls-wallpaper-set-function): New tests.

2022-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	subr.el (inhibit-point-motion-hooks): Mark it as obsolete

	When Emacs-25 changed the default of `inhibit-point-motion-hooks` to t,
	/etc/NEWS declared it as obsolete and so did its docstring, but
	it was not marked as obsolete so as not to emit too many warnings
	in code where it was impractical to remove the let-binding while
	keeping backward compatibility with older Emacsen.
	Those backward compatibility issues are not serious any more now that
	Emacs-25 is itself considered old.

	* lisp/subr.el (inhibit-point-motion-hooks): Mark it as obsolete.
	* src/textprop.c (inhibit-point-motion-hooks): Don't mention it being
	obsolete in the docstring any more.
	* lisp/simple.el (line-move-1, line-move-finish): Silence warnings.

2022-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/isearch.el (isearch-search): Don't bind `inhibit-point-motion-hooks`

	The let-binding was added back in 1997 (commit 79c7a4fa5f974a9d3b)
	"because we might have to search inside invisible and intangible text".
	So it's been redundant since Emacs-25 changed the default to t.

2022-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	verilog-mode.el: Don't bind `inhibit-point-motion-hooks`

	Keep binding it in Emacs<25 but not in Emacs≥25 (where such bindings
	are redundant and the var is declared obsolete).

	* lisp/progmodes/verilog-mode.el (verilog-save-buffer-state):
	Don't bind `inhibit-point-motion-hooks` if Emacs≥25.
	(verilog-save-font-no-change-functions): Same, and refrain from
	binding `before/after-change-functions` as well while we're at it,
	since `inhibit-modification-hooks` already covers it in Emacs≥25.

2022-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	(nxml-with-invisible-motion): Delete macro.

	Don't use this macro any more since it doesn't do anything since Emacs-25
	changed the default of `inhibit-point-motion-hooks` to t.

	* lisp/nxml/nxml-util.el (nxml-with-invisible-motion): Delete macro.
	* lisp/nxml/nxml-mode.el (nxml-mode, nxml-cleanup):
	* lisp/nxml/rng-valid.el (rng-do-some-validation):
	* lisp/nxml/rng-nxml.el (rng-set-state-after): Don't use it.

2022-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/pcomplete.el (pcomplete-arg): Simplify

2022-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	(line-move-1): Obey `inhibit-point-motion-hooks`

	`line-move-1` was written back before `inhibit-point-motion-hooks`
	was made obsolete and it's written under the assumption that its
	value is nil, whereas since Emacs-25 it's t.

	To work around problems linked to a nil value of
	`inhibit-point-motion-hooks`, the code temporarily binds that var to
	t while it moves around trying to find the final destination and then
	later in a few key spots it binds it "back" to nil so as to run the
	point-motion hooks according to the final destination, as if the
	overall motion had been made "normally".

	Change the code so that the "bind back" indeed binds the var back to
	the value it had originally, rather than always to nil.

	* lisp/simple.el (line-move-1): Obey `inhibit-point-motion-hooks`
	(line-move-finish): New optional arg `not-ipmh`.

2022-10-07  Matt Armstrong  <matt@rfc20.org>

	Use a bool instead of a bitfield

	* src/itree.c (struct interval_generator): use a bool instead of a
	bitfield, since space is not an issue.

2022-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	org.el: Improve bindings of `inhibit-*` vars

	Remove binding of `inhibit-point-motion-hooks` (it's t by default
	anyway and it's obsolete) and don't "manually" bind
	`inhibit-modification-hooks`.

	* lisp/org/org.el (org-unfontify-region): Use `with-silent-modifications`.
	(org-display-inline-remove-overlay): Remove ineffective binding of
	`inhibit-modification-hooks` around code which doesn't modify the
	buffer anyway.

2022-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	Remove aliases of `with-silent-modifications`

	There were many reinventions of `with-silent-modifications` (tho
	many of them weren't reinventions but copy&paste of code from
	font-lock, IIUC).  Now that those don't even need to let-bind
	`inhibit-point-motion-hooks` they're really just obsolete.

	* lisp/font-lock.el (save-buffer-state): Delete macro.
	(font-lock-unfontify-region, font-lock-default-fontify-region):
	Use `with-silent-modifications` instead.
	(font-lock-after-change-function, font-lock-fontify-block): Don't
	let-bind `inhibit-point-motion-hooks`.

	* lisp/htmlfontify.el (hfy-save-buffer-state): Delete macro.
	(hfy-mark-trailing-whitespace, hfy-unmark-trailing-whitespace):
	Use `with-silent-modifications` instead.

	* lisp/jit-lock.el (with-buffer-prepared-for-jit-lock): Delete macro.
	(jit-lock--debug-fontify, jit-lock-refontify, jit-lock-function)
	(jit-lock-fontify-now, jit-lock-force-redisplay)
	(jit-lock-deferred-fontify, jit-lock-context-fontify)
	(jit-lock-after-change): Use `with-silent-modifications` instead.

	* lisp/progmodes/antlr-mode.el (save-buffer-state-x): Delete macro.
	(antlr-hide-actions): Use `with-silent-modifications` instead.

	* lisp/progmodes/hideshow.el (hs-life-goes-on): Don't
	let-bind `inhibit-point-motion-hooks`.

2022-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	Remove redundant let-bindings of `inhibit-point-motion-hooks`

	`inhibit-point-motion-hooks` has defaulted to t (and been declared
	obsolete) since Emacs-25, so remove left-over bindings to that
	now default value.

	* lisp/dabbrev.el (dabbrev--search):
	* lisp/format.el (format-insert-file):
	* lisp/forms.el (forms-next-field, forms-prev-field):
	* lisp/minibuf-eldef.el (minibuf-eldef-setup-minibuffer):
	* lisp/simple.el (primitive-undo):
	* lisp/cedet/semantic/edit.el (semantic-change-function):
	* lisp/cedet/srecode/fields.el (srecode-field-mod-hook):
	* lisp/cedet/srecode/insert.el (srecode-insert-fcn):
	* lisp/erc/erc-button.el (erc-button-add-buttons):
	* lisp/erc/erc.el (erc-display-line):
	* lisp/eshell/em-script.el (eshell-source-file):
	* lisp/eshell/em-smart.el (eshell-smart-scroll-window):
	* lisp/eshell/esh-arg.el (eshell-parse-arguments):
	* lisp/eshell/esh-cmd.el (eshell-with-temp-command):
	* lisp/eshell/esh-mode.el (eshell-send-input, eshell-output-filter):
	* lisp/gnus/gnus-art.el (gnus-with-article-headers)
	(article-hide-headers, article-hide-boring-headers)
	(article-decode-mime-words, article-decode-charset)
	(article-decode-encoded-words, article-decode-group-name)
	(article-decode-idna-rhs, article-hide-list-identifiers)
	(article-strip-banner, article-really-strip-banner)
	(article-strip-leading-blank-lines)
	(article-strip-multiple-blank-lines, article-strip-leading-space)
	(article-strip-trailing-space, article-strip-all-blank-lines)
	(gnus-article-narrow-to-signature, gnus-article-show-hidden-text)
	(article-date-ut, article-verify-x-pgp-sig)
	(gnus-article-only-boring-p, gnus-article-highlight-signature)
	(gnus-article-add-buttons, gnus-signature-toggle, gnus-button-push):
	* lisp/gnus/gnus-cite.el (gnus-article-highlight-citation)
	(gnus-article-fill-cited-article, gnus-article-hide-citation)
	(gnus-article-toggle-cited-text, gnus-article-hide-citation-maybe)
	(gnus-cite-parse-wrapper, gnus-cite-add-face, gnus-cite-toggle):
	* lisp/gnus/gnus-gravatar.el (gnus-gravatar-insert):
	* lisp/gnus/gnus-rfc1843.el (rfc1843-decode-article-body):
	* lisp/gnus/gnus-sum.el (gnus-summary-toggle-header):
	* lisp/gnus/gnus-util.el (gnus-fetch-field):
	* lisp/gnus/message.el (message-fetch-field, message-reply)
	(message-followup, message-hide-headers):
	* lisp/net/goto-addr.el (goto-address-fontify):
	* lisp/obsolete/linum.el (linum-update-window):
	* lisp/play/zone.el (zone-shift-left, zone-shift-right)
	(zone-fill-out-screen):
	* lisp/progmodes/opascal.el (opascal-save-excursion):
	* lisp/progmodes/vhdl-mode.el (vhdl-prepare-search-2):
	* lisp/textmodes/enriched.el (enriched-encode):
	* lisp/textmodes/flyspell.el (flyspell-word-search-backward)
	(flyspell-word-search-forward):
	* lisp/textmodes/table.el (table--point-entered/left-cell-function):
	Remove let-binding of `inhibit-point-motion-hooks`.

2022-10-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Update name of hs-mouse-toggle-hiding in Emacs manual

	* doc/emacs/programs.texi (Hideshow): Update the name of
	hs-mouse-toggle-hiding (bug#58331).

2022-10-07  Matt Armstrong  <matt@rfc20.org>

	Handle successive mime sections in decoding.

	rmailsum.el (rmail-epa-decode):Handle blank lines at start.
	Handle both ending delim and another starting delim.

2022-10-07  Mattias Engdegård  <mattiase@acm.org>

	Speed up string-lessp for multibyte strings

	Improve comparison speed when both arguments are multibyte strings,
	at least one of them containing a non-ASCII character.  (All-ASCII
	multibyte strings are already fast.)
	The speed-up is about 2× for strings of 10 chars, 10× for strings of
	100 chars.

	* src/fns.c (Fstring_lessp): Quickly skip the common prefix by
	comparing words.

2022-10-07  Mattias Engdegård  <mattiase@acm.org>

	Clearer byte-compiler arity warnings (bug#58319)

	* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-signature-string):
	Replace '3+' and '3-4' with '3 or more' and '3 or 4', respectively.

2022-10-07  Miha Rihtaršič  <miha@kamnitnik.top>

	comint-fontify-input: Don't fontify output as input, different approach

	* lisp/comint.el (comint-output-filter): Propertize process output
	with field=output before inserting it into buffer to prevent
	comint-fontify-input from fontifying it (bug#58169).

2022-10-07  Miha Rihtaršič  <miha@kamnitnik.top>

	Revert "comint-fl: Prevent fontification of output as input"

	This reverts commit 90744ff0be581b69cedea1194b7e78265bdb67a4.

2022-10-07  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/dired.el (dired-make-relative): Make change less aggressive.

2022-10-07  Po Lu  <luangruo@yahoo.com>

	Handle IM server disconnects during preedit

	* src/xterm.c (x_maybe_clear_preedit): New function.
	(xim_destroy_callback): Call that function.

2022-10-07  Stefan Kangas  <stefankangas@gmail.com>

	Improve package-check-signature docstring

	* lisp/emacs-lisp/package.el (package-check-signature): Improve
	docstring.

2022-10-07  Yuan Fu  <casouri@gmail.com>

	Add a :toggle option for tree-sitter font-lock

	* admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html:
	Update html manual.
	* admin/notes/tree-sitter/html-manual/build-manual.sh: Fix manual
	path.
	* admin/notes/tree-sitter/starter-guide: Mention :toggle.
	* doc/lispref/modes.texi: Mention :toggle.
	* lisp/treesit.el (treesit-font-lock-settings): Update docstring.
	(treesit-font-lock-rules): Handle :toggle.  Also change
	some wrong-type-argument signal to treesit-font-lock-error which is
	easier to understand.
	(treesit-font-lock-fontify-region): Handle :toggle.

2022-10-07  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	5f8849425c Fix typo in `(emacs) Lisp Doc'
	f0a06364fb Fix references to 'default-indent-new-line'

2022-10-06  Yuan Fu  <casouri@gmail.com>

	* src/treesit.c (syms_of_treesit): Add Streesit_language_version.

2022-10-06  Michael Albinus  <michael.albinus@gmx.de>

	Better support for remote file names in dired

	* lisp/dired.el (dired-make-relative): Expand DIR anyway, because
	it could also be an abbreviated remote file name.  (Bug#58300)

2022-10-06  Philip Kaludercic  <philipk@posteo.net>

	Add a generic bug reporting command for packages

	* lisp/emacs-lisp/package.el (package-menu-mode-map): Bind
	'package-report-bug'.
	(package-report-bug): Add new command.

2022-10-06  Philip Kaludercic  <philipk@posteo.net>

	* lisp/vc/vc-svn.el (vc-svn-clone): Add 'clone' implementation

	* lisp/vc/vc-cvs.el (vc-cvs-clone): Add 'clone' implementation

	* lisp/vc/vc-bzr.el (vc-bzr-clone): Add 'clone' implementation

	* lisp/vc/vc-hg.el (vc-hg-clone): Add 'clone' implementation

2022-10-06  Yuan Fu  <casouri@gmail.com>

	Merge branch 'master' into feature/tree-sitter

2022-10-06  Arash Esbati  <arash@gnu.org>

	Pass correct environment name to `reftex-label'

	* lisp/textmodes/tex-mode.el (latex-block-body-alist): Pass
	"figure" to `reftex-label' when inserting a figure float.
	(bug#58329)

2022-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	etc/NEWS: Fix typo in seq-keep entry.

2022-10-06  Justus Winter  <justus@sequoia-pgp.org>

	Replace aging OpenPGP artifacts in gnus' mml-sec tests.

	This replaces the old OpenPGPv4 keys that are used in the test suite
	with more modern OpenPGPv4 keys.

	Having old cryptographic artifacts in the test suite presents a
	problem once the old algorithms are rejected by contemporary
	implementations (bug#58301).

2022-10-06  Justus Winter  <justus@sequoia-pgp.org>

	Replace aging OpenPGP artifacts in the package-resources tests.

	This replaces the old OpenPGPv4 key that is used in the test suite
	with a more modern OpenPGPv4 key.  The key is the Alice key from
	https://datatracker.ietf.org/doc/draft-bre-openpgp-samples/.  All
	cryptographic artifacts in the test suite are updated accordingly.

	Having old cryptographic artifacts in the test suite presents a
	problem once the old algorithms are rejected by contemporary
	implementations.

2022-10-06  Justus Winter  <justus@sequoia-pgp.org>

	Replace aging OpenPGP artifacts in the epg tests.

	This replaces the old OpenPGPv4 key that is used in the test suite
	with a more modern OpenPGPv4 key.  The key is the Alice key from
	https://datatracker.ietf.org/doc/draft-bre-openpgp-samples/.  All
	cryptographic artifacts in the test suite are updated accordingly.

	Having old cryptographic artifacts in the test suite presents a
	problem once the old algorithms are rejected by contemporary
	implementations.

2022-10-06  Justus Winter  <justus@sequoia-pgp.org>

	Fix epg's reliance on an implicit GnuPG command.

	Previously, epg invoked GnuPG without an explicit command to verify
	signatures.  Make that operation explicit.  Happily, this aligns how
	gpg and gpgsm is invoked, so it actually makes the code simpler.

2022-10-06  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix BSD battery mode over TRAMP (bug#58307)

	* lisp/battery.el (battery--call-process-to-string): Simple wrapper
	to `call-process' that outputs to a string.
	(battery-bsd-apm): Use it instead of `shell-command-to-string'
	(bug#58307).

2022-10-06  Matt Armstrong  <matt@rfc20.org>

	Fix calling `package-reinstall' just after quick initialization.

	* lisp/emacs-lisp/package.el (package-reinstall): call
	`package--archives-initialize', just like `package-install' does.
	This populates `package-alist', and so fixes calling
	`package-reinstall' as the first thing done after package "quick
	init" (Bug#53527).

2022-10-06  Gerd Möllmann  <gerd@gnu.org>

	Add missing staticpro (bug#58327)

	* src/window.c (init_window_once): staticpro old_selected_window.

2022-10-06  Stefan Kangas  <stefankangas@gmail.com>

	Fix typo in `(emacs) Lisp Doc'

	* doc/emacs/programs.texi (Lisp Doc): Fix reference to
	'eldoc-echo-area-display-truncation-message'.  (Bug#58324)

2022-10-06  Stefan Kangas  <stefankangas@gmail.com>

	Fix references to 'default-indent-new-line'

	* doc/emacs/programs.texi (Comment Commands)
	(Multi-Line Comments): Fix references to
	'default-indent-new-line'.  (Bug#58325)

2022-10-06  Gerd Möllmann  <gerd@gnu.org>

	Inhibit GC in probably_quit (bug#58042)

2022-10-06  Stefan Kangas  <stefankangas@gmail.com>

	* etc/NEWS: Document how to continue using 'linum'.  (Bug#58220)

2022-10-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Get rid of the trick using null->parent

	* src/itree.c (interval_tree_remove_fix): Add a `parent` argument.
	Change the loop so it always keeps both `node` and `parent` in sync,
	thus avoiding the use of `node->parent` on the initial node (since
	that one can be null).
	(interval_tree_remove): Manually keep track of the `broken` node's
	parent to pass it to `interval_tree_remove_fix`.

2022-10-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/itree.c (interval_tree_remove_fix): Move before first use

2022-10-05  Po Lu  <luangruo@yahoo.com>

	Minor fixes to IM locale handling

	* lisp/term/x-win.el (x-get-input-coding-system): Translate locales.
	* src/xterm.c (x_term_init): If the X library doesn't support
	the current locale, don't set up input methods.

2022-10-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Fix corner case errors in offsets

	In some cases, `interval_tree_remove` could cause some nodes to
	inherit fewer (or additional) offsets than the should because nodes
	were transplanted between two parts of the tree where offsets had not
	been propagated "equally".  So we remove/apply all offsets along the
	path between the two points of a transplant before doing the transplant.

	* src/itree.c (interval_tree_subtree_min): Move before first use; delete
	the declaration; add an `otick` argument, and use it to update offsets
	along the way.
	(interval_tree_remove): Update all offsets on the way from `node` to `min`.
	Reorder some of the operations so that when we transplant `min` to `node`
	those nodes are in the proper state where `interval_tree_transplant`
	can do its sanity checks.
	(itree_total_offset): New function.
	(interval_tree_transplant): Use it to sanity check that improper
	offsets aren't accidentally inherited/lost because of the transplant.
	(itree_newlimit): New function.
	(itree_limit_is_stable, interval_tree_update_limit)
	(interval_tree_propagate_limit): Use it.
	(null_is_sane): Remove `inline` annotation; it's not needed.
	(interval_tree_inherit_offset): Sanity check that `offset` is 0 when
	`otick` is up-to-date.  Skip the unneeded increments when the offset is 0.
	(interval_tree_insert_fix): Add sanity check that we indeed have 2 reds.

2022-10-05  Po Lu  <luangruo@yahoo.com>

	Fix nsmenu crash when exiting popup dialog

	* src/nsmenu.m (pop_down_menu): Do not discard menu items here.
	(ns_popup_dialog): Call discard_menu_items after
	unuse_menu_items.  (bug#58296)

2022-10-05  Stefan Kangas  <stefankangas@gmail.com>

	* etc/NEWS: Add instructions for replacing 'linum'.  (Bug#58220)

2022-10-05  Yuan Fu  <casouri@gmail.com>

	Merge branch 'master' into feature/tree-sitter

2022-10-05  Yuan Fu  <casouri@gmail.com>

	Add tree-sitter admin notes

	starter-guide: Guide on writing major mode features.
	build-module: Script for building official language definitions.
	html-manual: HTML version of the manual for easy access.

	* admin/notes/tree-sitter/build-module/README: New file.
	* admin/notes/tree-sitter/build-module/batch.sh: New file.
	* admin/notes/tree-sitter/build-module/build.sh: New file.
	* admin/notes/tree-sitter/starter-guide: New file.
	* admin/notes/tree-sitter/html-manual/Accessing-Node.html: New file.
	* admin/notes/tree-sitter/html-manual/Language-Definitions.html: New file.
	* admin/notes/tree-sitter/html-manual/Multiple-Languages.html: New file.
	* admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html:
	New file.
	* admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html:
	New file.
	* admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html: New
	file.
	* admin/notes/tree-sitter/html-manual/Pattern-Matching.html: New file.
	* admin/notes/tree-sitter/html-manual/Retrieving-Node.html: New file.
	* admin/notes/tree-sitter/html-manual/Tree_002dsitter-C-API.html: New
	file.
	* admin/notes/tree-sitter/html-manual/Using-Parser.html: New file.
	* admin/notes/tree-sitter/html-manual/build-manual.sh: New file.
	* admin/notes/tree-sitter/html-manual/manual.css: New file.

2022-10-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Fix incomplete update of `limit`s in corner cases

	`interval_tree_remove` called `interval_tree_propagate_limit (subst)`
	and `interval_tree_propagate_limit (min_right)` but both of those nodes
	are moved without touching their subtrees, so their `limit`s are
	"stable" causing `interval_tree_propagate_limit` to do nothing.
	Indeed we don't need to update those nodes's `limit`s but we *do*
	need to update their parents since those nodes have been moved.
	Incidentally, this removes some uses of `null->parent` :-)

	There are more uses of `null->parent`, tho, so I added more comments
	explaining them (with the help of the matching section of the book
	from which the algorithm was taken).

	* src/itree.c (interval_tree_update_limit): Remove unused arg `tree`.
	(interval_tree_rotate_left, interval_tree_rotate_right): Adjust callers.
	(interval_tree_contains): Mark as static.
	(itree_limit_is_stable, itree_limits_are_stable): New functions.
	(interval_tree_remove): Fix incomplete update of `limit`s in corner
	cases.
	(interval_generator_next): Add sanity check to make sure the `limit`s
	were properly updated.

	* src/itree.h (interval_tree_contains): Remove declaration.

2022-10-05  João Távora  <joaotavora@gmail.com>

	Make eglot-code-actions usable non-interactively

	* eglot.el (eglot--read-execute-code-action): New helper.
	(eglot-code-actions): Use new helper.  Offer non-interactive version.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/1070

2022-10-05  João Távora  <joaotavora@gmail.com>

	Add half-baked m-x eglot-list-connections

	Not very useful for now, but more functionality could be added later,
	like bindings for disconnecting a given connection, switching to its
	events buffers, or just listing some details like capabilities.

	* eglot.el (eglot-list-connections-mode, eglot-list-connections):
	New mode and function.

2022-10-05  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el (repeat-exit): Add autoload cookie.

	* etc/tutorials/TUTORIAL.uk: Fix typos.

2022-10-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Clarify how the sentinel is used

	* src/itree.c (null_is_sane): New function.
	(interval_tree_iter_start): Use it to make sure we haven't garbled null.
	(itree_init): Fully initialize `itree_null` here...
	(interval_tree_clear): ...instead of here.
	(interval_tree_propagate_limit): Remove special code that read NULL->parent.
	(interval_tree_remove): Do it explicitly before the call in those two
	places where it can happen.

2022-10-05  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp manual

	* doc/misc/tramp.texi (Inline methods): Method "kubernetes" does
	not support user names.

2022-10-05  Stefan Kangas  <stefankangas@gmail.com>

	New command 'world-clock-copy-time-as-kill'

	* lisp/time.el (world-clock-copy-time-as-kill): New command.
	(world-clock-mode-map): Bind above new command to "w".

2022-10-05  Stefan Kangas  <stefankangas@gmail.com>

	Add face help-key-binding in help-char echo

	* src/keyboard.c (echo_add_key): Add help-key-binding face to the
	"?" key in 'help-char' echo.  (Bug#57906)
	(syms_of_keyboard) <Qhelp_key_binding>: New DEFSYM.

2022-10-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Remove some unnecessary `tree` arguments

	* src/itree.c (interval_tree_propagate_limit)
	(interval_tree_subtree_min): Remove `tree` argument.
	(interval_node_set_region, interval_tree_remove)
	(interval_tree_insert_gap, interval_tree_delete_gap): Adjust callers.

2022-10-04  Po Lu  <luangruo@yahoo.com>

	Fix bug in "macintization" of x_draw_glyph_string

	* src/nsterm.m (ns_draw_stretch_glyph_string): Restore text decoration
	drawing code omitted during "macintization" to convert the X function
	into NS code.  Reported by Qiantan Hong <qthong@stanford.edu>.

2022-10-04  Filipp Gunbin  <fgunbin@fastmail.fm>

	Add tramp-kubernetes integration

	* doc/misc/tramp.texi (Inline methods): Add kubernetes.
	(Customizing Methods): Remove kubernetes-tramp.
	* etc/NEWS: Mention new Tramp method "kubernetes".
	* lisp/net/tramp-compat.el (kubernetes-tramp): Warn if that package is
	used.
	* lisp/net/tramp-container.el (tramp-kubernetes-program): New
	defcustom.
	(tramp-kubernetes-method): New defconst.
	(tramp-kubernetes--completion-function): New function.

2022-10-04  Filipp Gunbin  <fgunbin@fastmail.fm>

	Rename lisp/net/tramp-docker.el to lisp/net/tramp-container.el

2022-10-04  Yuan Fu  <casouri@gmail.com>

	Add :override flag for python tree-sitter font-lock settings

	* lisp/progmodes/python.el (python--treesit-settings): Add :override.

2022-10-04  Yuan Fu  <casouri@gmail.com>

	Add :override flag for tree-sitter font-lock

	* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
	* lisp/treesit.el (treesit-font-lock-settings): Update docstring.
	(treesit-font-lock-rules): Handle :override.
	(treesit-font-lock-fontify-region): Handle :override.  Also set
	inhibit-point-motion-hooks to t.

2022-10-04  Yuan Fu  <casouri@gmail.com>

	Fix python tree-sitter font-lock

	Add fontification for lhs attribute and some operators.

	* lisp/progmodes/python.el (python--treesit-keywords): Add operators.
	(python--treesit-settings): Add lhs attribute.

2022-10-04  Yuan Fu  <casouri@gmail.com>

	Add treesit-language-version

	* doc/lispref/parsing.texi (Language Definitions): Update manual.
	* src/treesit.c (Ftreesit_language_version): New function

2022-10-04  Yuan Fu  <casouri@gmail.com>

	Improve documentation of tree-sitter search functions

	* doc/lispref/parsing.texi (Retrieving Node): Update manual.
	* src/treesit.c (treesit-search-subtree)
	(treesit-search-forwardn)
	(treesit-induce-sparse-tree): Mention case-insensitivity.
	* lisp/treesit.el (treesit-simple-indent): Mention case-insensitivity.

2022-10-04  Yuan Fu  <casouri@gmail.com>

	Ignore some capture name in treesit-font-lock-fontify-region

	* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
	* lisp/treesit.el: (treesit-font-lock-fontify-region): Ignore names
	that are not face nor function.
	(treesit-font-lock-rules): Update docstring.

2022-10-04  Yuan Fu  <casouri@gmail.com>

	Remove treesit-query-in

	Because treesit-query-capture can now do everything it does.

	* doc/lispref/parsing.texi (Pattern Matching): Update manual.
	* lisp/treesit.el (treesit-query-in): Remove function.
	* src/treesit.c (Ftreesit_query_capture): Accept parser and language
	symbol as NODE.

2022-10-04  Vibhav Pant  <vibhavp@gmail.com>

	Add comment explaining gcc_jit_context_new_bitcast usage.

	Address styling comments.

	comp.c: Add declaration for gcc_jit_type_is_pointer.

2022-10-04  Vibhav Pant  <vibhavp@gmail.com>

	src/comp.c: Use libgccjit's bitcast API for type coercion, when available.

	* (type_to_cast_index, define_type_punning, define_cast_from_to,
	define_cast_functions): Define functions when
	gcc_jit_context_new_bitcast is not available.

	* (emit_coerce): Use gcc_jit_context_new_bitcast to coerce types, when
	available.

2022-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Put all seq.el news into one section

2022-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add 'seq-keep'

	* doc/lispref/sequences.texi (Sequence Functions): Document it.
	* lisp/emacs-lisp/seq.el (seq-keep): New function (bug#58278).

2022-10-04  Brian Cully  <bjc@kublai.com>

	Add method description for podman in Tramp

	* doc/misc/tramp.texi (Inline methods): Adapt docker method.
	Describe podman method.

2022-10-04  João Távora  <joaotavora@gmail.com>

	Rename "eglot -> eglot" in docstrings

	* eglot.el (eglot-mode-line, eglot-client-capabilities)
	(eglot--stay-out-of-p, eglot-managed-p)
	(eglot-managed-mode-hook, eglot--managed-mode)
	(eglot-current-server, eglot--current-server-or-lose)
	(eglot--mode-line-format, eglot-xref-backend)
	(eglot-imenu): Rename "EGLOT" -> "Eglot"

2022-10-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a78af3018e * src/emacs.c (load_pdump): Properly handle case when execu...

	# Conflicts:
	#	src/emacs.c

2022-10-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	78c262e1c2 ; * lisp/progmodes/glasses.el (glasses-face): Expand the d...

2022-10-04  Alan Mackenzie  <acm@muc.de>

	CC Mode: A new operator and some new keywords for C++20

	* lisp/progmodes/cc-langs.el (c-operators, c-overloadable-operators)
	(c-arithmetic-operators): Add the "spaceship" operator for C++.
	(c-primitive-type-kwds): Add char8_t for C++.
	(c-decl-hangon-kwds, c-paren-nontype-kwds): Add alignas for C++.

2022-10-04  Michael Albinus  <michael.albinus@gmx.de>

	* etc/NEWS: Mention new Tramp method "podman".  Fix typos.

2022-10-04  Brian Cully  <bjc@kublai.com>

	Provide Podman containers on their own method in Tramp

	* lisp/net/tramp-docker.el (tramp-podman-program): New defcustom.
	(tramp-podman-method): New defconst.
	(tramp-docker-program): Remove "podman" from option list.
	(top): Update comments to refer to Docker-alike where necessary.
	Add description for how to use the podman method.

2022-10-04  Andreas Schwab  <schwab@linux-m68k.org>

	* src/emacs.c (load_pdump): Properly handle case when executable
	wasn't found.

2022-10-04  Alan Mackenzie  <acm@muc.de>

	CC Mode: Optimize c-fontify-new-found-type and amend a debug spec

	* lisp/progmodes/cc-fonts.el (c-fontify-new-found-type): Write the `face'
	property directly, rather than removing `fontified' properties and letting
	font-lock do the work.

	* lisp/progmodes/cc-defs.el (cc-eval-when-compile): Amend the debug spec from
	t to (&rest body), in line with the fix to bug #16184.

2022-10-04  Eli Zaretskii  <eliz@gnu.org>

	Revert "Improve manual display tests of undisplayable chars (bug#58168)"

	This reverts commit 849b7756fd31a69791e67dfe010b1e10f0168c83.
	Please don't rush installing changes that are still being
	discussed.

2022-10-04  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/subr.el (y-or-n-p): Use substitute-command-keys.

2022-10-04  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Shorten several long names

	* lisp/image/image-dired.el (image-dired-image-mode-map)
	(image-dired-image-mode): Rename from
	'image-dired-display-image-mode-map' and
	'image-dired-display-image-mode'.  Update all uses and make old
	names into obsolete aliases.
	(image-dired-display-this, image-dired-display-next)
	(image-dired-display-previous): Rename from
	'image-dired-display-thumbnail-original-image',
	'image-dired-display-next-thumbnail-original', and
	'image-dired-display-previous-thumbnail-original'.  Update all uses
	and make old names into obsolete aliases.
	* doc/emacs/dired.texi (Image-Dired): Update documentation for the
	above changes, and improve indexing.

2022-10-04  Mattias Engdegård  <mattiase@acm.org>

	Improve manual display tests of undisplayable chars (bug#58168)

	Test display of multibyte raw bytes, as well as undisplayable
	multibyte chars (C1 controls and other values).

	The test still assumes that raw bytes should be displayed identically
	to undisplayable characters (such as C1 controls) because that is how
	the display code currently works.

	* test/manual/redisplay-testsuite.el (test-redisplay-5-toggle)
	(test-redisplay-5): Fix likely typo (#x3fffc) of raw byte value.
	(test-redisplay-6): New.

2022-10-04  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Fix arrow keys in thumbs buffer

	* lisp/image/image-dired.el (image-dired-thumbnail-mode-map): Also
	remap 'left-char' and 'right-char'.

2022-10-04  Eli Zaretskii  <eliz@gnu.org>

	Fix recent changes for Ukrainian language

	* etc/HELLO:
	* lisp/language/cyrillic.el ("Ukrainian"): Fix greetings and
	remove redundant Ukrainian entry in cyrillic.el.

2022-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make cropping of images work in message-mode

	* lisp/gnus/message.el (message-mode): Set the image cropping function.
	(message--yank-media-image-handler): Factor out...
	(message--image-part-string): ... here for reuse.
	(message--update-image-crop): Update the cropped data.

2022-10-04  Alan Mackenzie  <acm@muc.de>

	CC Mode: Make c-forward-declarator move over a suffix after parens, e.g. const

	Also tidy up several inaccuracies in the code.

	* lisp/progmodes/cc-engine.el (c-forward-decl-arglist): Move point for modes
	other than C++ Mode.
	(c-forward-declarator): Move over a suffix following arglist parens
	(e.g. const).  Set the ARGLIST element of the return value to non-nil on
	encountering an unbalanced open parenthesis.  Don't move forward out of
	enclosing parens.

	* lisp/progmodes/cc-mode.el (c-fl-decl-end): Handle being in a multi-line
	string.  Move forward over token after declarator.

2022-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Move image commands to the 'i' sub map

	* doc/lispref/display.texi (Showing Images): Adjust.
	* lisp/image.el (image-map): Move all keys under the "i" prefix.
	(image--repeat-map): New map.
	(image-increase-size, image-rotate, image-decrease-size): Make
	repeatable.
	(image--delayed-change-size): New function.

2022-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix the arguments in tags--compat-initialize

	* lisp/progmodes/etags.el (tags--compat-initialize): Fix argument
	order -- swap the last two arguments (bug#58272).

2022-10-04  Po Lu  <luangruo@yahoo.com>

	Update Ukrainian language info alist

	* lisp/language/cyrillic.el ("Ukrainian"): Replace "Glory to
	Ukraine" with "hello".  See
	www.gnu.org/prep/maintain/html_node/Other-Politics.html.

2022-10-04  Denys Nykula  <vegan@libre.net.ua>

	Add Ukrainian tutorial

	* etc/tutorials/TUTORIAL.uk: Create the translation.
	* lisp/language/cyrillic.el: Link "Emacs Tutorial"
	to the translation if the system is Ukrainian, and
	add our modern greeting as a sample text.
	* etc/NEWS:
	* etc/tutorials/TUTORIAL.translators: Attribute my work (bug#55250).

2022-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix NEWS item about obsoleting the `eq' gv

2022-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `eq' obsolete as a generalized variable

	* lisp/emacs-lisp/gv.el (eq): Make obsolete as a generalized
	variable.

2022-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention cond/if as generalized variables in the manual

	* doc/lispref/variables.texi (Setting Generalized Variables):
	Mention cond and if (bug#52290).

2022-10-04  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in STRING_CHAR

	* src/xdisp.c (handle_composition_prop):
	* src/editfns.c (styled_format): Don't call 'STRING_CHAR' on
	unibyte strings.  This avoids assertion violation in
	'string_char_and_length'.

2022-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make loaddefs-generate more resilient

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't bug
	out when there's an existing loaddefs file that's not formatted
	properly (bug#58280).

2022-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't bug out in advice--make-docstring when there's not doc string

	* lisp/emacs-lisp/nadvice.el (advice--make-docstring): Don't bug
	out on functions with no documentation (bug#58284).

2022-10-04  Eli Zaretskii  <eliz@gnu.org>

	Avoid errors in interactive calls of 'calendar-goto-day-of-year'

	* lisp/calendar/cal-move.el (calendar-goto-day-of-year): Fix the
	default value of DAY; doc fix.  (Bug#58283)

2022-10-04  Stefan Kangas  <stefankangas@gmail.com>

	* etc/NEWS: Clarify confusing Image-Dired entry.  (Bug#58279)

2022-10-03  Po Lu  <luangruo@yahoo.com>

	Fix deiconification handling on FVWM and possibly other window managers

	I can't believe we weren't doing this before.

	* src/xterm.c (x_handle_wm_state): New function.
	(handle_one_xevent): Handle window state changes in WM_STATE
	messages, and use them for signaling deiconification.
	(bug#58164)

2022-10-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	992611b10a Fix documentation  of 'TAB' in cc-mode
	08e485a2a5 Fix 'org-export-dispatch' command name in manual
	e5a49f44ff * src/emacs.c (load_pdump): Fix use of xpalloc.
	7ff5207624 Avoid assertion violation in 'xpalloc'

	# Conflicts:
	#	src/emacs.c

2022-10-03  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el (repeat-exit-key): Replace type 'key-sequence' with 'key'.

	(repeat-post-hook, repeat-echo-message-string): Add backward-compatibility
	code for repeat-exit-key to keep support for 'key-sequence' type (bug#55986).

2022-10-03  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el (repeat-exit): New command.

	(repeat-exit-function): New variable.
	(repeat-post-hook): Set repeat-exit-function.
	Call repeat-exit from run-with-idle-timer.
	Also use repeat--exit.
	(repeat--exit): New internal function.

2022-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/textmodes/tex-mode.el (tex--redirect-to-submode): Fix last change

2022-10-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve messaging in ecomplete-remove

	* lisp/ecomplete.el (ecomplete-remove): Make messaging better.

2022-10-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in last help-fns--insert-menu-bindings change

	* lisp/help-fns.el (help-fns--insert-menu-bindings): Fix typo in
	last change.

2022-10-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve help-fns--insert-menu-bindings formatting

	* lisp/help-fns.el (help-fns--insert-menu-bindings): Make this
	work better for menus that turn out to not be reachable after all
	-- i.e., don't insert " and " before the heading in certain cases.

2022-10-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Add commands to edit/remove ecomplete entries

	* lisp/ecomplete.el (ecomplete-add-item): Allow forcing new values.
	(ecomplete--remove-item):
	(ecomplete--prompt-type): New functions.
	(ecomplete-edit, ecomplete-remove): New commands.

2022-10-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename to inhibit-automatic-native-compilation

	* src/comp.c (maybe_defer_native_compilation):
	(syms_of_comp):
	* lisp/subr.el (native-comp-deferred-compilation):
	* lisp/startup.el (inhibit-native-compilation):
	(normal-top-level):
	* lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load):
	* lisp/emacs-lisp/comp.el (comp-trampoline-compile):
	* etc/NEWS:
	* doc/lispref/compile.texi (Native-Compilation Variables): Rename
	inhibit-native-compilation to inhibit-automatic-native-compilation.

2022-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	files.el (major-mode-remap-alist): New custom var (bug#58075)

	* lisp/files.el (major-mode-remap-alist): New custom var.
	(set-auto-mode--last): New var.
	(set-auto-mode-0): Obey `major-mode-remap-alist`.

	* doc/emacs/modes.texi (Choosing Modes): Document `major-mode-remap-alist`.

	* lisp/progmodes/cperl-mode.el: Recommend the use of
	`major-mode-remap-alist` over the crude `defalias` solution.

	* lisp/textmodes/tex-mode.el (tex--guess-mode): Simplify.
	(tex--redirect-to-submode): Obey `major-mode-remap-alist`.

2022-10-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new variable 'inhibit-native-compilation'

	* doc/lispref/compile.texi (Native-Compilation Variables):
	Document it.

	* lisp/startup.el (normal-top-level): Set
	inhibit-native-compilation from environment variable.

	* lisp/subr.el (native-comp-deferred-compilation): Make obsolete.

	* lisp/emacs-lisp/comp.el (comp-trampoline-compile): Don't write
	trampolines to disk.

	* lisp/progmodes/elisp-mode.el
	(emacs-lisp-native-compile-and-load): Adjust.

	* src/comp.c (syms_of_comp): New variable
	inhibit-native-compilation.
	(maybe_defer_native_compilation): Use it.

2022-10-03  Po Lu  <luangruo@yahoo.com>

	Fix coding systems used for X input methods

	* doc/emacs/mule.texi (International): Refer to X Coding as
	well.
	(Communication Coding): Document that locale-coding-system is
	not always used on X to decode keyboard input.
	(X Coding): New node.
	* etc/NEWS: Announce change to input method coding resolution.
	* lisp/term/x-win.el (x-get-input-coding-system): New function.
	* src/coding.c (syms_of_coding): Update doc string of
	locale-coding-system.
	* src/xfns.c (struct x_xim_text_conversion_data)
	(x_xim_text_to_utf8_unix_1, x_xim_text_to_utf8_unix_2)
	(x_xim_text_to_utf8_unix): Accept dpyinfo.  Use the coding
	system specified inside if possible.
	(xic_preedit_draw_callback): Pass dpyinfo.
	* src/xterm.c (handle_one_xevent): Use XIM coding system for IM
	input.
	(xim_open_dpy): Try to determine the input method coding system.
	(mark_xterm): Mark `xim_coding'.
	(syms_of_xterm): New variable `x-input-coding-system'.
	* src/xterm.h (struct x_display_info): New field `xim_coding'.
	(FRAME_X_XIM_CODING): New macro.

2022-10-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Add --with-native-compilation=aot configuration option

	* configure.ac: Allow --with-native-compilation=aot to switch full
	ahead-of-time on.

	* lisp/Makefile.in: Use the setting from configure.

2022-10-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "keymap.el: Ease up support for non-`kbd` formats."

	This reverts commit 570a11052be6178954956a1c59c8ebcbdb77d38e.

	We do not want to support several keymap formats in
	`keymap-set' and friends -- the point is to have an
	interface with easy-to-understand semantics that
	give good feedback on valid/invalid key sequences.

2022-10-02  Stefan Kangas  <stefankangas@gmail.com>

	Improve auto-insert-mode documentation

	* lisp/autoinsert.el: Improve usage instructions and formatting.
	(auto-insert-directory): Doc fix; the directory does not have to end
	in slash.

2022-10-02  Stefan Kangas  <stefankangas@gmail.com>

	Fix documentation  of 'TAB' in cc-mode

	* doc/emacs/programs.texi (C Indent): Fix documentation of 'TAB'
	in cc-mode.  (Bug#58258)

2022-10-02  Stefan Kangas  <stefankangas@gmail.com>

	Fix 'org-export-dispatch' command name in manual

	* doc/emacs/text.texi (Org Authoring): Fix 'org-export-dispatch'
	command name.  (Bug#58260)

2022-10-02  Paul Eggert  <eggert@cs.ucla.edu>

	Port TZ settings to POSIX

	* lisp/Makefile.in (.el.elc):
	* lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-times):
	Use the POSIX standard TZ=UTC0 rather than the GNU extension
	TZ=UTC to set the time zone to UTC.

2022-10-02  Stefan Kangas  <stefankangas@gmail.com>

	Actually delete markers in dired-do-flagged-delete

	* lisp/dired.el (dired-do-flagged-delete): Actually delete
	markers.  (Bug#58256)

2022-10-02  Stefan Kangas  <stefankangas@gmail.com>

	Fix more overly long docstrings in eieio

	* lisp/emacs-lisp/eieio.el (defclass): Fix more overly long
	docstrings.  (Bug#58252)

2022-10-02  Paul Eggert  <eggert@cs.ucla.edu>

	Don’t truncate seccomp-filter diagnostic

	* lib-src/seccomp-filter.c (fail): Do not truncate diagnostic
	arbitrarily to 1000 bytes when ERROR is nonzero.

2022-10-02  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer static_assert to verify in seccomp-filter

	Prefer static_assert in just one file for now; the idea is to do
	it elsewhere eventually.  static_assert is standard (starting with
	C23) whereas verify is not, and static_assert can be used even in
	pre-C23 files due to Gnulib’s support for it.
	* lib-src/seccomp-filter.c: Do not include verify.h.
	Prefer static_assert to verify.

2022-10-02  Alan Mackenzie  <acm@muc.de>

	Suppress irritating/misleading message in make bootstrap about old .elc files

	These are the "compile-first" .elc files, artificially given an old timestamp
	to cause them later to be native compiled.  This fixes bug #58224.

	* lisp/Makefile.in (compile-first .el.elc): Give these .elc's the UTC epoch.
	Amend the comment.

	* src/lread.c (Fload): New variable, epoch_timestamp, initialized to binary
	zero.  Compare with this the timestamp of .elc's being loaded, and if they
	match, don't output the message about the source file being newer than the
	file being loaded.

2022-10-02  Paul Eggert  <eggert@cs.ucla.edu>

	* .gitignore: Add lib/assert.h (Bug#58254).

2022-10-02  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc-git.el (vc-git-checkin): Add more checks for vc-git-patch-string

	Check that vc-git-patch-string contains the same changes that already exists
	in the staged area when files were added/removed by vc commands (bug#52349).

2022-10-02  Juri Linkov  <juri@linkov.net>

	In vc-git-log-incoming use the repository in the command "fetch" (bug#50340)

	* lisp/vc/vc-git.el (vc-git-log-incoming): Use repository part
	from non-nil remote-location in the command "fetch".

	* lisp/vc/vc.el (vc-log-incoming, vc-log-outgoing): Mention in
	docstrings and prompts that REMOTE-LOCATION can be a remote branch name.

	* doc/emacs/maintaining.texi (VC Change Log): For commands
	vc-log-incoming and vc-log-outgoing, use the term "remote location"
	instead of "repository".

2022-10-02  Peter Münster  <pm@a16n.net>

	Delete thumbs in image-dired-do-flagged-delete after confirmation

	* lisp/image/image-dired.el (image-dired-do-flagged-delete): Remove
	thumbnails only after confirming deletion of the files.  (Bug#58255)

2022-10-02  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el (repeat<defgroup>): New customization group.

	(repeat-too-dangerous, repeat-on-final-keystroke)
	(repeat-exit-key, repeat-exit-timeout, repeat-keep-prefix)
	(repeat-check-key, repeat-echo-function, repeat-mode):
	Change group to 'repeat'.

2022-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	keymap.el: Ease up support for non-`kbd` formats.

	While we want to standardize on the `kbd` syntax for user-facing code,
	the internal vector representation of key sequences is not going away,
	so let's not impose silly `key-description + key-parse` roundtrips.
	Also, provide some support for packages stuck with user configs defined
	to hold old-style key formats.

	* lisp/keymap.el (keymap-set): Allow vectors as `key`.
	(key-parse-old-format): New function, which stands out better than
	`key-description` when searching for uses of the old syntax.

	* lisp/outline.el (outline-minor-mode): Use it.

2022-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree: Use a single iterator object

	Instead of having one iterator object per buffer, use just a single
	global one.  There is virtually no benefit to having per-buffer
	iterators anyway: if two iterations can be active at the same time,
	then there can be cases where those two iterations happen
	to operate on the same buffer :-(

	* src/itree.h (struct interval_tree): Remove `iter` field.
	* src/itree.c (interval_generator_destroy)
	(interval_tree_iter_ensure_space): Delete functions.
	(iter): New global variable.
	(init_itree_null): Rename to `itree_init` and adjust all callers.
	Initialize `iter` as well.
	(interval_tree_create, interval_tree_init):
	Don't initialize `iter` field any more.
	(interval_tree_destroy): Don't destroy `iter` field any more.
	(interval_tree_insert): Don't bother growing the iterator (it's grown
	in `interval_stack_push_flagged` if needed anyway, and in any case
	there's no `iter` here to grow any more).
	(interval_tree_remove): Tweak assertion to be more precise and
	self-evident.
	(interval_tree_iter_start): Use the global `iter`.
	(interval_generator_create): Make it work with a NULL argument.

2022-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	mark_overlays: Use the normal ITREE_FOREACH

	This commit basically reverts commit 5b954f8f9.  The problem of nested
	iterations hasn't been fixed in the mean time, but since the GC can
	run arbitrary ELisp code (via `post-gc-hook`), running the GC from
	within an itree iteration is already unsafe anyway :-(

	* src/alloc.c (mark_overlays): Delete function.
	(mark_buffer): Use ITREE_FOREACH.

2022-10-02  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/files.el (after-find-file): Use substitute-command-keys.

2022-10-02  Stefan Kangas  <stefankangas@gmail.com>

	Fix overly wide docstrings generated by eieio

	* lisp/emacs-lisp/eieio-core.el (eieio-make-class-predicate)
	(eieio-make-child-predicate, eieio-defclass-internal): Don't generate
	overly wide docstrings.  (Bug#58252)

2022-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Remove `tree` field from iterator

	* src/itree.c (interval_generator_ensure_space, interval_generator_reset):
	Inline and then delete functions.
	(interval_tree_inherit_offset): Only take the tree's `otick` as arg.
	Update all callers.
	(struct interval_generator): Remove `tree` field, replace with a copy
	of the tree's `otick`.
	(interval_stack_push_flagged): The arg should be a real node.
	(interval_tree_insert_gap): Prefer checking root==NULL rather than size==0.
	Skip loop when tree is empty to avoid pushing&processing the NULL node.
	(interval_tree_inherit_offset): Prefer parent==NULL rather than
	node==root to avoid accessing the tree object.

2022-10-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Kill URL buffer in url-insert-file-contents-literally

	* lisp/url/url-handlers.el (url-insert-file-contents-literally):
	Kill the URL buffer after use.

2022-10-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix coding system problems in gnus-read-ephemeral-bug-group

	* lisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group): Don't
	bind coding system variables, because that leads to loading other
	files (like cookie files) using that coding system (bug#58227).

	* lisp/url/url-handlers.el (url-insert-file-literally): New function.
	(url-insert): Allow forcing no-decode.

2022-10-02  Stefan Kangas  <stefankangas@gmail.com>

	Decrease use of the word "Emacsen" in Tramp docs

	* lisp/net/tramp-archive.el:
	* lisp/net/tramp-smb.el:
	* lisp/net/tramp-uu.el:
	* lisp/net/tramp.el: Don't say "Emacsen" when a different wording
	would be clearer.

2022-10-02  Lars Ingebrigtsen  <larsi@gnus.org>

	perform-replace doc string fix

	* lisp/replace.el (perform-replace): Fix doc string (bug#58177).

2022-10-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix point movement when indenting in sieve-mode

	* lisp/net/sieve-mode.el (sieve-mode-indent-function): Fix point
	movement when point is at the start of the line (bug#58202).

2022-10-02  Andreas Schwab  <schwab@linux-m68k.org>

	* src/emacs.c (load_pdump): Fix use of xpalloc.

2022-10-02  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violation in 'xpalloc'

	* src/emacs.c (load_pdump): Ensure the 3rd argument of xpalloc is
	always positive.  (Bug#58232)

2022-10-02  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Gothic script (bug#58194)

	* lisp/language/misc-lang.el ("Gothic"): New language environment.
	Add sample text and input method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support gothic.
	* lisp/leim/quail/misc-lang.el ("gothic"): New input method.

	* etc/HELLO: Add Gothic greetings.
	* etc/NEWS: Announce the new language environment.

2022-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge remote-tracking branch 'origin/feature/noverlay' into noverlay

2022-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	New ITREE_FOREACH macro

	* src/itree.h (interval_tree_iter_start): Adjust type.
	(interval_tree_nodes): Delete declaration.
	(ITREE_FOREACH, ITREE_FOREACH_ABORT, ITREE_FOREACH_NARROW): New macros.

	* src/itree.c (interval_tree_contains, interval_tree_insert_gap):
	Use the new ITREE_FOREACH macro.
	(interval_tree_nodes): Delete function.
	(interval_tree_iter_start): Return the iterator.
	(interval_generator_next, interval_tree_destroy):
	Don't accept a NULL arg any more.

	* src/xdisp.c (load_overlay_strings, strings_with_newlines):
	* src/textprop.c (get_char_property_and_overlay):
	* src/buffer.c (copy_overlays, delete_all_overlays)
	(set_overlays_multibyte, swap_buffer_overlays, overlays_in)
	(next_overlay_change, previous_overlay_change, overlay_touches_p)
	(overlay_strings, Foverlay_lists, report_overlay_modification)
	(evaporate_overlays): Use the new ITREE_FOREACH macro.

	* src/buffer.h (buffer_overlay_iter_start1)
	(buffer_overlay_iter_start, buffer_overlay_iter_next)
	(buffer_overlay_iter_finish, buffer_overlay_iter_narrow):
	Delete declarations.

2022-10-01  Po Lu  <luangruo@yahoo.com>

	Only rely on EWMH window activation if possible

	* xterm.c (x_ewmh_activate_frame): Remove unnecessary
	x_wm_supports check.
	(x_focus_frame): When the window manager supports
	_NET_ACTIVE_WINDOW, just use it; anything else may confuse the
	window manager.

2022-10-01  Stefan Kangas  <stefankangas@gmail.com>

	Revert "Decrease use of the word "Emacsen" in docs"

	This reverts commit 55f46cc77cb9d72fbabadb63d8aeab45c5e005e2.

	Ref. https://lists.gnu.org/r/emacs-devel/2022-10/msg00016.html

2022-10-01  Michael Albinus  <michael.albinus@gmx.de>

	Tramp cleanup

	* doc/misc/tramp.texi (Password handling): Fix typos.

	* lisp/net/tramp-docker.el (tramp-default-remote-shell):
	* lisp/net/tramp-sshfs.el (tramp-default-remote-shell): Declare.

	* lisp/net/tramp.el (tramp-methods): Fix docstring.
	(tramp-get-remote-tmpdir): Revert previous patch, it isn't needed
	anymore.

2022-10-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-09-27 20:39:13 UTC.

2022-10-01  Michael Albinus  <michael.albinus@gmx.de>

	Use a version for the Tramp cache

	* lisp/net/tramp-cache.el (tramp-cache-version): New defconst.
	(top): Check the cache version, and flush the cache in case of
	mismatch.  Suggested by Paul Pogonyshev <pogonyshev@gmail.com>.

	* lisp/net/tramp-cmds.el (tramp-cleanup-all-connections):
	Re-initialize the cache version.

2022-10-01  Stefan Kangas  <stefankangas@gmail.com>

	Decrease use of the word "Emacsen" in docs

	"Emacsen" is either a less clear way of saying "old versions of
	Emacs", or an implicit reference to XEmacs.  We recommend against
	using it in the FAQ.  So use the more clear wording instead.

	* doc/misc/gnus.texi (Oort Gnus):
	* doc/misc/widget.texi (Basic Types, toggle):
	* lisp/cedet/semantic/bovine/c.el (semantic-c-skip-conditional-section):
	* lisp/cedet/semantic/wisent/comp.el (wisent-compile-grammar):
	* lisp/desktop.el (desktop-save):
	* lisp/erc/erc-compat.el:
	* lisp/erc/erc-log.el:
	* lisp/gnus/gnus-util.el (gnus-replace-in-string):
	* lisp/mail/footnote.el:
	* lisp/net/tramp-archive.el:
	* lisp/net/tramp-smb.el:
	* lisp/net/tramp-uu.el:
	* lisp/net/tramp.el:
	(with-tramp-locked-connection):
	* lisp/org/ol-eww.el:
	* lisp/org/org-compat.el:
	(org-define-error):
	* lisp/shadowfile.el:
	* lisp/winner.el: Don't use the word "Emacsen".

2022-10-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	be3eac3929 ; * etc/NEWS: Fix typos.
	99a8c53247 Fix connection property incompatibility in Tramp

	# Conflicts:
	#	etc/NEWS

2022-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make mailcap--regexp-quote-type more resilient

	* lisp/net/mailcap.el (mailcap--regexp-quote-type): Make more
	resilient in the presence of junk.

2022-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make "git pull" output slightly prettier

	* lisp/vc/vc-git.el (vc-git--pushpull): Translate ^M in output
	(bug#58199).

2022-10-01  Eli Zaretskii  <eliz@gnu.org>

	Fix vertical motion in some rare bidi situations

	* src/xdisp.c (move_it_by_lines): Handle the case where we
	didn't move vertically at all.

2022-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make mailcap consistent about regexp-quoting minors

	* lisp/net/mailcap.el (mailcap-mime-data): Quote regexp.
	(mailcap-mime-extensions): Ditto.
	(mailcap--regexp-quote-type): New function.
	(mailcap-parse-mimetype-file): Use it to get consistent quoting of
	(regexp) strings (bug#52038).  Before you'd get both
	application/vnd\.ms-excel and application/vnd.ms-excel (etc),
	making prompting confusing.

2022-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix url-retrieve-synchronously on very short timeouts

	* lisp/url/url.el (url-retrieve-synchronously): Don't kill the
	process buffer unless we made one (bug#58218).  This makes HTTP
	free connection marking work on premature timeouts.

2022-10-01  Matthias Meulien  <orontee@gmail.com>

	Define ansi-osc customization group

	* lisp/ansi-osc.el (ansi-osc): Define ansi-osc customization group
	(ansi-osc-for-compilation-buffer): Fix wrong group

2022-10-01  Matthias Meulien  <orontee@gmail.com>

	Rename osc.el to ansi-osc.el (bug#58200)

	* lisp/osc.el: Move from here...
	* lisp/ansi-osc.el: ...to here.
	* test/lisp/osc-tests.el: Move from here...
	* test/lisp/ansi-osc-tests.el: ...to here.

2022-10-01  Protesilaos Stavrou  <info@protesilaos.com>

	Update to Modus themes stable version 2.7.0

	* doc/misc/modus-themes.org (Load theme depending on time of day): Add
	missing keyword from sample configuration.
	(Full support for packages or face groups): Update list of supported packages.
	(Note on goto-address-mode faces): Add documentation about possible
	user-level tweaks.
	(Are these color schemes?): Fix typo.
	(Acknowledgements): Update list of contributors to the project.

	* etc/themes/modus-themes.el (modus-themes--version): Update to
	current stable version.
	(modus-themes-vivendi-colors): Tweak value of a single color.
	(modus-themes-faces): Update list of supported faces.
	(modus-themes-custom-variables): Remove outdated "TODO" comment.

	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-vivendi-theme.el: Update version header.

	Release notes: <https://protesilaos.com/codelog/2022-10-01-modus-themes-2-7-0/>.

2022-10-01  Gerd Möllmann  <gerd@gnu.org>

	Make it compile with ITREE_DEBUG defined

	* src/buffer.c (make_lispy_interval_node): Use make_fixnum.
	(overlay_tree): Use ITREE_NULL.

2022-10-01  Eli Zaretskii  <eliz@gnu.org>

	Fix 'C-a' and 'C-e' under 'visual-line-mode'

	* src/xdisp.c (move_it_vertically_backward): Fix last change.
	(Bug#58210)

2022-09-30  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2022-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.c: Improve division between tree and iterator

	* src/buffer.c (delete_all_overlays): Add comment.

	* src/itree.c (struct interval_generator): New fields `running`,
	`file`, and `line` moved from `interval_tree`.
	(interval_stack_push_flagged): Adjust comment to resolve a FIXME.
	(interval_tree_clear): Replace assignment with an a
	(interval_tree_iter_next): Delete function.
	(interval_tree_clear): Don't set `iter_running` here any more.
	(interval_generator_create): Set it here instead.
	(interval_tree_iter_start): Fetch `iter` once and for all.
	(interval_generator_narrow): Mark it as non-static.
	(interval_tree_iter_next, interval_tree_iter_narrow):
	Delete functions.  Inline their old bodies in the callers.
	(interval_tree_iter_finish): Take the iter rather than
	the whole tree.  Adjust all callers.
	(interval_generator_next): Move `running `assertion here from
	`interval_tree_iter_next`.

	* src/buffer.h: Adjust accordingly.

	* src/itree.h (struct interval_tree): Remove fields `iter_running`,
	`file`, and `line`, moved to `interval_generator`.
	(interval_generator_narrow): Replace `interval_tree_iter_narrow`.

2022-09-30  Yuan Fu  <casouri@gmail.com>

	Change tree-sitter indent anchor preset 'prev-line'

	* doc/lispref/modes.texi: Update manual.
	* lisp/treesit.el (treesit-simple-indent-presets): Change prev-line to
	mean bol of prev-line.

2022-09-30  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter manuals

	* doc/lispref/modes.texi: Fix typos, reword, etc.
	* doc/lispref/parsing.texi: Fix typos, reword, etc.

2022-09-30  Michael Albinus  <michael.albinus@gmx.de>

	Fix connection property incompatibility in Tramp

	* lisp/net/tramp.el (tramp-get-remote-tmpdir): Remove obsolete
	connection property "tmpdir".  (Bug#57800)

2022-09-30  Miha Rihtaršič  <miha@kamnitnik.top>

	Rename comint-fl-* to comint-fontify-input-* and mention it in NEWS

	* lisp/comint.el
	(comint-fontify-input-mode):
	(comint--fontify-input-saved-jit-lock-contextually):
	(comint--fontify-input-on):
	(comint--fontify-input-off):
	(comint--fontify-input-ppss-flush-indirect):
	(comint--fontify-input-fontify-region): Replace comint-fl-* with
	comint-fontify-input-*.

	* lisp/ielm.el (ielm-fontify-input-enable):
	(ielm-fontify-input-enable):
	(ielm-indirect-setup-hook):
	(inferior-emacs-lisp-mode): Replace comint-fl-* with
	comint-fontify-input-*.

	* lisp/shell.el (shell-comint-fl-enable):
	(shell-mode): Replace comint-fl-* with comint-fontify-input-*.

	* etc/NEWS: Mention the new modes and how to disable or enable
	them (bug#58169).

2022-09-30  Miha Rihtaršič  <miha@kamnitnik.top>

	comint-fl: Prevent fontification of output as input

	* lisp/comint.el (comint-output-filter): Inhibit jit-lock
	fontification of inserted process output before marking it with the
	'output' filed property (bug#58169).

2022-09-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Further with-locale-environment refresh fixes

	* lisp/international/mule-cmds.el
	(set-display-table-and-terminal-coding-system): Allow inhibiting
	refresh.
	(set-locale-environment): Inhibit refresh in more paths (bug#58193).

2022-09-30  Sean Whitton  <spwhitton@spwhitton.name>

	Add vc-edit-next-command

	* lisp/vc/vc.el (vc-read-revision): Override
	vc-filter-command-function back to its default value.
	(vc-print-branch-log): Remove recently-added prefix argument.
	(vc-edit-next-command): New command.
	* lisp/vc/vc-hooks.el (vc-prefix-map): Bind it to 'C-x v !'.
	* etc/NEWS:
	* doc/emacs/vc1-xtra.texi (Editing Shell Commands): Document it.

2022-09-30  Mattias Engdegård  <mattiase@acm.org>

	Rectify string= documentation

	* doc/lispref/strings.texi (Text Comparison): Describe the current
	behavior since about 20 years back.

2022-09-30  Mattias Engdegård  <mattiase@acm.org>

	Strengthen string-lessp tests

	* test/src/fns-tests.el (fns-tests--string-lessp-cases)
	(fns-tests-string-lessp): Check more cases, and in a more robust way.

2022-09-30  Mattias Engdegård  <mattiase@acm.org>

	Speed up string-lessp further

	* src/fns.c (Fstring_lessp): Use the memcmp fast path for ASCII-only
	multibyte strings as well.  Specialize loops on argument
	multibyteness.

2022-09-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't refresh the frame in with-locale-environment

	* lisp/international/mule-cmds.el (with-locale-environment):
	Inhibit refresh so that there's no flickering (bug#58193).
	(set-locale-environment): Allow inhibiting the refresh.
	* lisp/international/mule.el (set-terminal-coding-system): Ditto.

2022-09-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Make gnus-user-agent less verbose

	* lisp/gnus/gnus.el (gnus-user-agent): Don't include the Emacs/OS
	version for privacy reasons (bug#58171).

2022-09-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix the `dictionary' parent defgroup

	* lisp/net/dictionary.el (dictionary): The `hypermedia' group
	doesn't exist, so put it in the same parent group that `ispell'
	uses (bug#58178).

2022-09-30  Jose A. Ortega Ruiz  <jao@gnu.org>

	docview: fixes for imenu generation

	* lisp/doc-view.el: (doc-view--pdf-outline):
	(doc-view-imenu-index):
	(doc-view-imenu-setup): Fix multiple empty index generation for
	documents without an outline, caching the result (see discussion in
	bug#58103).
	(doc-view--imenu-subtree): Fix for nested imenus (bug introduced in
	commit fe002cc8ce) (bug#58180).

2022-09-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix rename-visited-file when renaming to a directory name

	* lisp/files.el (rename-visited-file): Allow renaming to a
	directory file name (bug#58182).

2022-09-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve message-sendmail-f-is-evil documentation

	* lisp/gnus/message.el (message-sendmail-f-is-evil): Move some of
	the explanation here.

	* lisp/mail/feedmail.el (feedmail-sendmail-f-doesnt-sell-me-out):
	Refer to message-sendmail-f-is-evil (bug#58185).

2022-09-30  Eli Zaretskii  <eliz@gnu.org>

	Fix some issues with vertical-motion in bidi-reordered text

	This fixes some uses of vertical-motion when a screen line
	starts withcharacters of directionality that is opposite to
	the current paragraph's base direction.
	* src/xdisp.c (move_it_vertically_backward): Adjust NLINES to
	compensate for its increasing when DY == 0.

2022-09-30  Gerd Möllmann  <gerd@gnu.org>

	Remove the per-tree null node

	"make check" shows 0 unexpected.

	* src/itree.h (itree_null): Declare extern.
	(ITREE_NULL): New macro
	(struct interval_tree): Remove null member.
	* src/alloc.c (mark_overlays): Use ITREE_NULL.
	* src/itree.c: Use ITREE_NULL insteads of a tree's null.
	* src/pdumper.c (dump_buffer): Use ITREE_NULL.

2022-09-30  Po Lu  <luangruo@yahoo.com>

	Fix calculation of frame times when X server time overflows

	* etc/TODO: Add TODO about frame synchronization and animations.
	* src/xterm.c (x_display_set_last_user_time): Handle cases when
	the monotonic time is not the server time due to the latter
	overflowing.

2022-09-30  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Toto script (bug#58181)

	* lisp/language/indian.el ("Toto"): New language environment.
	Add input method.
	* lisp/international/fontset.el (script-representative-chars):
	Support Toto.
	* lisp/leim/quail/indian.el ("toto"): New input method.

	* etc/NEWS: Announce the new language environment.

2022-09-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	64e8cc14b5 ; * lisp/image.el (create-image): Fix last change in doc s...
	f3e3632394 Update some Gnus documentation in the Emacs manual

2022-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree: Remove the `visited` flag from the tree nodes

	These bits really belong in the "workstack" used within
	`interval_generator_next`, so move them there.

	* src/itree.c (nodeptr_and_flag): New type;
	(struct interval_stack): Use it.
	(make_nav, nav_nodeptr, nav_flag): New functions.
	(interval_tree_insert_gap, interval_tree_delete_gap): Adjust accordingly.
	(interval_generator_next): Stash the `visited` bit in the work stack
	rather than inside the tree nodes.
	(interval_stack_create, interval_stack_destroy, interval_stack_clear)
	(interval_stack_ensure_space, interval_stack_push_flagged)
	(interval_stack_push, interval_stack_pop): Move before first use.

	* src/itree.h (struct interval_node): Remove `visited` field.
	* src/pdumper.c (dump_interval_node): Adjust accordingly.

2022-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	free_buffer_overlays: Move nearer to its sole caller

	* src/buffer.c (free_buffer_overlays): Move from `buffer.h`.
	* src/buffer.h (free_buffer_overlays): Move to `buffer.c`.

	* src/itree.c (interval_tree_iter_narrow, interval_tree_iter_finish)
	(interval_tree_iter_next): Prefer `eassert`.

2022-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/itree.c (interval_tree_iter_start): Improve error message

2022-09-29  Stefan Kangas  <stefankangas@gmail.com>

	Fix loading wallpaper.el on MS-Windows

	* lisp/image/wallpaper.el (wallpaper--find-command)
	(wallpaper--find-command-args): Avoid backtrace when
	'wallpaper--find-setter' returns nil, e.g. on MS-Windows.
	(Bug#58167)

2022-09-29  Alan Mackenzie  <acm@muc.de>

	CC Mode: Refactor c-forward-delarator and callers

	c-forward-declarator now moves over a complete declarator, including any
	arglist expression, but possibly not including certain C++20 constructs.

	* lisp/progmodes/cc-engine.el (c-forward-decl-arglist): New function,
	extracted from c-do-declarators.
	(c-forward-declarator): Extend the result list by one element, denoting
	whether the function parsed an argument list.  Insert special handling for a
	C++ operator<op> construct.  If there is a parenthesis expression, and it is
	an argument list, move forward over it.
	(c-do-declarators): Append an optional parameter, cdd-anon-accepted
	instructing the function to handle declarators without identifiers.  Extract
	c-forward-decl-arglist.

	* lisp/progmodes/cc-fonts.el (c-font-lock-declarators): New &optional
	parameter accept-anon, as above.  Analyze and use the identifier location
	returned by c-do-declarators, rather than using c-last-identifier-range.
	(c-font-lock-single-decl): Determine accept-anon from the context, passing it
	as argument to c-font-lock-declarators.

	* lisp/progmodes/cc-langs.el (c-opt-identifier-prefix-key): Make a
	c-lang-defvar out of this existing c-lang-defconst.

	* lisp/progmodes/cc-mode.el (c-fl-decl-end): Adapt for the new
	c-forward-declarator which now moves over arglists.  Amend better to handle
	certain syntactically invalid constructs in C++.

2022-09-29  Peter Münster  <pm@a16n.net>

	New command image-dired-do-flagged-delete

	* lisp/image/image-dired.el (image-dired-delete-marked): Remove command,
	because it was too buggy.
	(image-dired-do-flagged-delete): New command that does almost the same
	as the above removed command but with flagged images.
	(image-dired-thumbnail-mode-map): Bind "x" to
	'image-dired-do-flagged-delete'.

2022-09-29  Peter Münster  <pm@a16n.net>

	image-dired-delete-char: Don't disturb formatting

	* lisp/image/image-dired.el (image-dired-delete-char): Don't disturb
	the expected formatting of the thumbnail buffer (always one
	space/newline after a thumbnail).

2022-09-29  Stefan Kangas  <stefankangas@gmail.com>

	wallpaper-set: Get monitor name on non-graphical display

	* lisp/image/wallpaper.el
	(wallpaper--format-arg): Break out function from here...
	(wallpaper--x-monitor-name): ...to here.  Try to get the monitor name
	non-graphical displays, and prompt if that doesn't work.
	(wallpaper-default-set-function): Improve debugging output.
	Ref. https://lists.gnu.org/r/emacs-devel/2022-09/msg01910.html

2022-09-29  Stefan Kangas  <stefankangas@gmail.com>

	Prompt for wallpaper width/height only when needed

	* lisp/image/wallpaper.el (wallpaper--format-arg): Don't prompt for
	width and height unless the values are actually used.

2022-09-29  Stefan Kangas  <stefankangas@gmail.com>

	Make format-spec accept function substitutions

	* lisp/format-spec.el (format-spec): Accept a function producing the
	substitution for a character.
	* doc/lispref/strings.texi (Custom Format Strings): Document the
	above change.
	* test/lisp/format-spec-tests.el (format-spec/function): New test.
	Ref. https://lists.gnu.org/r/emacs-devel/2022-09/msg01875.html

2022-09-29  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Wancho script (bug#58159)

	* lisp/language/indian.el ("Wancho"): New language environment.
	Add sample text and input method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Wancho.
	* lisp/leim/quail/indian.el ("wancho"): New input method.

	* etc/HELLO: Add a Wancho greeting.
	* etc/NEWS: Announce the new language environment.

2022-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	alloc.c: Avoid nested overlay iterations (bug#58158)

	* src/alloc.c (mark_overlays): New function.
	(mark_buffer): Use it instead of using the overlay iterator.

2022-09-29  Stefan Kangas  <stefankangas@gmail.com>

	Remove Emacs 21 compat code for gnus-user-agent

	* lisp/gnus/gnus.el (gnus-user-agent): No longer convert old
	(< 2005-01-10) symbol type values.

2022-09-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Update some Gnus documentation in the Emacs manual

	* doc/emacs/misc.texi (Gnus Group Buffer, Gnus Summary Buffer):
	Update documentation (bug#58145).

2022-09-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak while-let definition

	* lisp/subr.el (while-let): Use if-let* since we don't need/want
	the backwards compat of if-let.

2022-09-29  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Mende Kikakui script (bug#58151)

	* lisp/language/misc-lang.el ("Mende Kikakui"): New language environment.
	Add sample text and input method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Mende Kikakui, Indic Siyaq Numbers,
	Ottoman Siyaq Numbers.
	* lisp/leim/quail/misc-lang.el ("mende-kikakui"): New input method.

	* etc/HELLO: Add Mende Kikakui greeting.
	* etc/NEWS: Announce the new language environment.

2022-09-29  Jacob First  <jacob.first@member.fsf.org>

	bind-keys supports passing a list of keymaps as :map argument

	Fix bind-chords docs: :map argument may be a list of keymaps

2022-09-29  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	cf38e1c393 Clarify image file search
	fc212364ce ; Fix typo.

2022-09-28  Po Lu  <luangruo@yahoo.com>

	Pacify compiler warning in xterm.c

	* src/xterm.c (handle_one_xevent): Mark gen_help_time UNINIT.
	Reported by Lars Ingebrigtsen <larsi@gnus.org>.

2022-09-28  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* config.bat: Add assert.in-h.
	* msdos/sed2v2.inp: Define HAVE_STDBOOL_H.
	* msdos/sedlibmk.inp (GL_GNULIB_LCHMOD, HAVE_LCHMOD): Define to
	reflect realities.
	(NEXT_ASSERT_H, @GL_GENERATE_ASSERT_H_CONDITION@): Define.
	(assert.h): Edit command group into individual commands appending
	to assert.h-t.

2022-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	itree.[ch]: Add sanity checks, comments, and minor tweaks

	* src/alloc.c (mark_overlay): Add sanity check.

	* src/buffer.c (next_overlay_change, previous_overlay_change):
	Tweak code to keep the same vars for the bounds.

	* src/itree.c (interval_tree_clear, interval_tree_insert)
	(interval_tree_remove, interval_tree_insert_fix, interval_tree_remove_fix):
	Adjust to the `color` -> `red` change.
	(interval_tree_clear): Prefer `true/false` for booleans.
	(interval_generator_create): Use an actual `interval_tree_order` value
	rather than 0.
	(interval_generator_next): Simplify a tiny bit.  Add comment.
	(interval_generator_narrow): Add sanity check.

	* src/itree.h (struct interval_node): Replace `color` field with
	boolean `red` field.
	(enum interval_tree_order): Remove unused `ITREE_DEFLT_ORDER` value.

	* src/pdumper.c (dump_interval_node): Adjust to the
	`color` -> `red` change.

2022-09-28  Eli Zaretskii  <eliz@gnu.org>

	Clarify image file search

	* doc/lispref/display.texi (Defining Images, Image Descriptors):
	* lisp/image.el (create-image): Clarify that non-absolute image
	files are searched along 'image-load-path'.  (Bug#52931)

2022-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/lispref/functions.texi (Declare Form) <compiler-macro>: Re-rephrase

2022-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/lispref/functions.texi (Declare Form) <compiler-macro>: Rephrase

	See bug#57397.

2022-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge remote-tracking branch 'origin/scratch/noverlay-wip' into noverlay

2022-09-28  Stefan Kangas  <stefankangas@gmail.com>

	* .mailmap: Fixes for Emacs 29.

2022-09-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	8033947fe2 .mailcap: Some additional fixes.
	b1e92c59ed Avoid assertion violations in 'pop_it'

2022-09-28  Gerd Möllmann  <gerd@gnu.org>

	Avoid nested iteration over intervals (bug#58144)

	* src/xdisp.c (strings_with_newlines): Call
	buffer_overlay_iter_finish.

2022-09-28  Gregory Heytings  <gregory@heytings.org>

	Remove hard-coded path to pwd in Makefiles.

	* Makefile.in:
	* lib-src/Makefile.in:
	* nextstep/Makefile.in:
	* nt/Makefile.in: Replace hard-coded calls to /bin/pwd by calls
	to 'pwd -P'.  Fixes bug#58080.

2022-09-28  Gerd Möllmann  <gerd@gnu.org>

	Add debugging help for nested iterators (nug#58144)

	When starting an iteration, store __FILE__ and __LINE__ where this
	happens in the interval_tree structure.

	* src/buffer.h (buffer_overlay_iter_start): New macro adding __FILE
	and __LINE__.
	(buffer_overlay_iter_start1): Renamed from ..._start.
	* src/itree.h (struct interval_tree): Add file and line info.
	* src/itree.c: (interval_tree_contains, interval_tree_nodes,
	interval_tree_insert_gap): Pass __FILE__ and __LINE__ to iter_start.
	(interval_tree_iter_start): Record file and line info in tree.

2022-09-28  Stefan Kangas  <stefankangas@gmail.com>

	.mailcap: Some additional fixes.

2022-09-28  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in 'pop_it'

	* src/xdisp.c (pop_it): Avoid assertion violations when handling
	lists or vectors of display properties.  (Bug#58122)

2022-09-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	72aac80184 ; Fix typo
	c54a64491f Add .mailmap for proper git log output
	f9a072c592 ; Fix typo
	3d056f6947 * doc/emacs/ack.texi (Acknowledgments): Update maintainers.
	00159c086c ; Add commentary to disabled OTF support code in font.c

	# Conflicts:
	#	src/font.c

2022-09-28  Stefan Kangas  <stefankangas@gmail.com>

	Add .mailmap for proper git log output

	This file is used to fix a few misspelled names in various git
	listings (e.g., "git log").  This can be used to fix incorrect
	attribution, poor display, or names showing up more than once.
	It also allows updating an old email addresses to a new one.
	See "man git-shortlog" for more information on the format.

	* .mailmap: New file.

2022-09-28  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Adlam script (bug#58111)

	* lisp/language/misc-lang.el ("Adlam"): New language environment.
	Add composition rules for Adlam. Add sample text and input method.
	* lisp/international/fontset.el (script-representative-chars):
	Support Adlam.
	* lisp/leim/quail/misc-lang.el ("adlam"): New input method.

	* etc/HELLO: Add Adlam greeting.
	* etc/NEWS: Announce the new language environment.

2022-09-28  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Improve Gurmukhi composition rules (Bug#58098)

	* lisp/language/indian.el: Improve composition rules for Gurmukhi.

	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Chess Symbols.

2022-09-28  Po Lu  <luangruo@yahoo.com>

	Apply root window coordinate optimizations to crossing events as well

	* src/xterm.c (xi_compute_root_window_offset_enter): New
	function.
	(handle_one_xevent): Apply root window crossing optimizations to
	XI_Enter and XI_Leave events too.  Not strictly necessary but
	since we apply them to motion events it would be consistent to
	apply them to crossing events as well as recommended by the
	ICCCM.

2022-09-28  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/files.el (auto-mode-alist): Add entry for ".mailmap".

2022-09-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Simplify eww--rescale-images code

	* lisp/net/eww.el (eww--rescale-images): Simplify code.

2022-09-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new macro 'while-let'

	* doc/lispref/control.texi (Conditionals): Document
	when-let/if-let/while-let.
	* lisp/subr.el (while-let): New macro.

2022-09-28  Jose A. Ortega Ruiz  <jao@gnu.org>

	docview: new customization options for imenu

	* doc/emacs/misc.texi (DocView Navigation):
	* lisp/doc-view.el (doc-view-imenu-title-format, doc-view-imenu-flatten):
	(doc-view--imenu-subtree): customizable format for imenu entry titles,
	and flag to disable nested submenus.
	* lisp/doc-view.el (doc-view--pdf-outline): clean up whitespace
	markers '\r' and '\t' in imenu item titles (bug#58131).

2022-09-28  Lin Sun  <sunlin7@hotmail.com>

	package-update would always re-install package

	* lisp/emacs-lisp/package.el (package--updateable-packages): fix
	version comparison between available packages and archived
	packages (bug#58129).

2022-09-28  Visuwesh  <visuweshm@gmail.com>

	Follow #target links in eww without re-rendering

	* lisp/net/eww.el (eww-follow-link): Do a text property search instead
	of re-rendering to follow #target links in the same page.  (bug#58118)
	(eww-link-keymap): Bind <mouse-2> to eww-follow-link as well.

2022-09-28  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: End thumbnail file names with ".jpg"

	* lisp/image/image-dired-util.el (image-dired-thumb-name): Always
	end thumbnail name in ".jpg" and simplify naming to just use the
	SHA-1 hash.  (Bug#57961)
	* test/lisp/image/image-dired-util-tests.el
	(image-dired-thumb-name/image-dired): Adjust test for the above
	change.
	* etc/NEWS: Announce the above change.

2022-09-28  Stefan Kangas  <stefankangas@gmail.com>

	Standardize XPM files

	These headers make GraphicsMagick croak with "Improper image header".
	Note that the copyright information is already in README.

	* etc/images/checked.xpm:
	* etc/images/gnus/gnus.xpm:
	* etc/images/gnus/gnus-pointer.xpm:
	* etc/images/mh-logo.xpm:
	* etc/images/unchecked.xpm: Normalize file headers.

2022-09-28  Gerd Möllmann  <gerd@gnu.org>

	Fix last change

2022-09-28  Paul Eggert  <eggert@cs.ucla.edu>

	Port better to C23 bool+true+false keywords

	C23 is adding the C++ keywords bool, true, and false;
	prefer them to <stdbool.h> if they are available.
	* admin/merge-gnulib (GNULIB_MODULES):
	Add stdbool, which emulates C23 on pre-C23 platforms.
	(AVOIDED_MODULES): Remove stdbool; Gnulib has renamed
	this module to stdbool-c99 and nobody uses it so it does
	not need to be avoided.
	* m4/c-bool.m4: New file, from Gnulib stdbool module.
	* lib-src/seccomp-filter.c, src/conf_post.h, src/dynlib.h:
	* src/emacs-module.c, src/nsterm.m, src/systhread.h:
	* test/src/emacs-module-resources/mod-test.c:
	Use the C23 style and use bool without including <stdbool.h>.
	The Gnulib stdbool module causes config.h to include stdbool.h
	on pre-C23 platforms.
	* src/emacs-module.h.in:
	Don’t include <stdbool.h> if C23 or later, or if
	it has already been included.

2022-09-28  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2022-09-27  Sean Whitton  <spwhitton@spwhitton.name>

	Maintaining ChangeLog history: add more details

	* admin/notes/repo (Maintaining ChangeLog history): Add more details.
	See <https://debbugs.gnu.org/58092#37>.

2022-09-27  Stefan Kangas  <stefankangas@gmail.com>

	Make image-dired-dired-toggle-marked-thumbs faster

	* lisp/image/image-dired-dired.el
	(image-dired-dired-toggle-marked-thumbs): Don't show progress, since
	it makes things slower.

2022-09-27  Lin Sun  <sunlin7@hotmail.com>

	Load compiled "calc-loaddefs", if any

	* lisp/calc/calc.el ("calc-loaddefs"): Load the .elc file (if it
	exists) (bug#58127).

2022-09-27  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Fix header line when file is missing

	* lisp/image/image-dired.el
	(image-dired-format-properties-string): Don't error when file has
	been deleted.

2022-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/files.el (file-backup-file-names): Don't burp if dir doesn't exist

2022-09-27  Stefan Kangas  <stefankangas@gmail.com>

	Add back useful information from gnus-coding.texi

	* lisp/international/rfc1843.el:
	* lisp/net/pop3.el: Improve Commentary by adding back text from
	deleted file gnus-coding.texi.

2022-09-27  Stefan Kangas  <stefankangas@gmail.com>

	* doc/emacs/ack.texi (Acknowledgments): Update maintainers.

2022-09-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove gnus-coding.text (bug#58119)

2022-09-27  Michael Albinus  <michael.albinus@gmx.de>

	Some tramp-docker.el adaptions

	* lisp/net/tramp-docker.el (tramp-docker--completion-function):
	Add ;;;###tramp-autoload cookie.  Make implementation more robust.
	(tramp-methods) Use `tramp-default-remote-shell'.

2022-09-27  Stefan Kangas  <stefankangas@gmail.com>

	* etc/NEWS.23: Belatedly announce 'format-spec'.

2022-09-27  Stefan Kangas  <stefankangas@gmail.com>

	Document the new "XRandR 1.5" value

	* src/xfns.c (Fx_display_monitor_attributes_list):
	* lisp/frame.el (display-monitor-attributes-list):
	* doc/lispref/frames.texi (Multiple Terminals): Document the new
	"XRandR 1.5" value.

2022-09-27  Po Lu  <luangruo@yahoo.com>

	Improve doc of `x-window-property'

	* src/xfns.c (Fx_window_property): Fix errors in doc string and
	document where to obtain documentation for standardized window
	properties.

2022-09-27  Jose A. Ortega Ruiz  <jao@gnu.org>

	docview: imenu access to table of contents

	* lisp/doc-view.el (doc-view-imenu-enabled): user option to disable
	imenu generation.
	* lisp/doc-view.el (doc-view--outline-rx):
	(doc-view--pdf-outline, doc-view--imenu-subtree, doc-view-imenu-index):
	functions implementing the imenu index generation via mutool.
	* lisp/doc-view.el (doc-view-imenu-setup, doc-view-mode): setup of the
	new functionality in doc-view mode.
	* lisp/imenu.el (imenu-submenus-on-top):
	(imenu--split-menu): new local variable to optionally inhibit
	grouping of entries with children at the top of imenu menus.
	* doc/emacs/misc.texi: documentation for the new functionality
	(bug#58103).

2022-09-27  Richard Hansen  <rhansen@rhansen.org>

	ert-x: Improve realism of `ert-with-test-buffer-selected'

	* lisp/emacs-lisp/ert-x.el (ert-with-test-buffer-selected): Set
	`inhibit-read-only' and `buffer-read-only' to nil when executing the
	body to provide a more realistic test environment.

2022-09-27  Gerd Möllmann  <gerd@gnu.org>

	Fix macOS build (bug#58108)

	* src/itree.h (struct interval_tree): Rename member nil to null.
	* src/itree.c: Use null instead of nil
	* src/pdumper.c (dump_buffer): Use null instead of nil.
	* src/itree.c: Fix copyright.
	* src/itree.h: Fix copyright.

2022-09-27  Alan Mackenzie  <acm@muc.de>

	* lisp/progmodes/cc-defs.el (c-let*-maybe-max-specpdl-size): Fix glitches

2022-09-27  Alan Mackenzie  <acm@muc.de>

	CC Mode: Don't bind max-specpdl-size when it doesn't exist or is obsolete

	This is part of the changes for bug #57911.

	* lisp/progmodes/cc-defs.el (c-let*-maybe-max-specpdl-size): New macro.
	(c-get-lang-constant): Use the new macro in place of let*.

2022-09-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	Avoid uninitialized variable warning

	* src/composite.c (composition_gstring_adjust_zero_width): Simplify
	last change with respect to an exit condition.

2022-09-26  Po Lu  <luangruo@yahoo.com>

	Optimize coordinate translation during event handling

	These changes noticeably improve turning the mouse wheel on top of
	scroll bars etc over slow network connections.

	* src/xterm.c (x_dnd_note_self_position, x_dnd_note_self_wheel)
	(x_dnd_note_self_drop): Use x_translate_coordinates.
	(x_compute_root_window_offset): New function for calculating and
	caching root window offsets of edit window.
	(x_translate_coordinates): New function.  Use cached values
	whenever possible.
	(xi_compute_root_window_offset)
	(xi_compute_root_window_offset_pinch): New wrappers for XI2
	events.
	(x_construct_mouse_click, handle_one_xevent): Use
	x_translate_coordinates wherever appropriate.
	* src/xterm.h (struct x_output): New fields for keeping track of
	the root window offset of the edit window.

2022-09-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	Adjust zero-width grapheme clusters so they are displayed (Bug#50951)

	* src/composite.c (composition_gstring_adjust_zero_width): New function.
	* src/composite.h: Declare it.
	* src/font.c (Ffont_shape_gstring): Use it before putting gstring to cache.

2022-09-26  Stefan Kangas  <stefankangas@gmail.com>

	Fix OBOE in image-dired--with-marked

	* lisp/image/image-dired.el (image-dired--with-marked): Fix off-by-one
	error.

2022-09-26  Sean Whitton  <spwhitton@spwhitton.name>

	vc-filter-command-function: Abbreviate default value

	* lisp/vc/vc-dispatcher.el (vc-filter-command-function): Abbreviate
	`(lambda (&rest args) args)' as just `list'.

2022-09-26  Stefan Kangas  <stefankangas@gmail.com>

	Get rid of default wallpaper-setter constructor

	* lisp/image/wallpaper.el (wallpaper-setter): Actually get rid of
	the default constructor.

2022-09-26  Stefan Kangas  <stefankangas@gmail.com>

	Set XFCE wallpaper also in single-workspace-mode

	This fixes setting the wallpaper on XFCE whether or not the
	"/backdrop/single-workspace-mode" setting is true or false.
	That XFCE setting controls whether or not the same wallpaper is used
	on all workspaces or not.

	* lisp/image/wallpaper.el (wallpaper-setter)
	(wallpaper-command-args, wallpaper-default-set-function): Allow
	using a function for getting the command line arguments.
	(wallpaper-xfce-command-args): New function.
	(wallpaper--default-setters): Use above new function for XFCE.

2022-09-26  Alan Mackenzie  <acm@muc.de>

	CC Mode: Handle C++20 concepts

	* lisp/progmodes/cc-align.el (c-lineup-topmost-intro-cont): Amend so as not to
	indent lines following a requires line.

	* lisp/progmodes/cc-engine.el (c-forward-primary-expression)
	(c-forward-c++-requires-clause): New functions.
	(c-forward-declarator): Skip forward over any trailing requires clause.
	(c-forward-decl-or-cast-1): Skip requires clauses before and after the type.
	Amend the second element of the return list to include information on two
	consecutive identifiers in <...>.
	(c-looking-at-or-maybe-in-bracelist): Don't recognize braces in requires
	expressions as brace lists.
	(c-guess-basic-syntax): CASE 5D.7: New case to handle the continuation of a
	"concept foo = " line.

	* lisp/progmodes/cc-fonts.el (c-basic-matchers-before): Add a new clause to
	handle the declaration of a concept.
	(c-get-fontification-context): Treat the arglist of a requires construct as a
	declaration arglist.

	* lisp/progmodes/cc-langs.el (c-equals-nontype-decl-kwds/key)
	(c-fun-name-substitute-kwds/key, c-pre-concept-<>-kwds/key): New
	c-lang-consts/vars.
	(c-constant-key): New c-lang-var.
	(c-type-decl-suffix-key): Include "requires" in the keywords matched.

	* lisp/progmodes/cc-mode.el (c-fl-decl-start): Fix an off by one error.  Use
	equal rather than eq to compare two syntax contexts.

2022-09-26  Stefan Kangas  <stefankangas@gmail.com>

	Don't auto-resize image if echo area is non-empty

	* lisp/image-mode.el (image-fit-to-window): Don't auto-resize
	image if there's a message in the echo area.

2022-09-26  Stefan Kangas  <stefankangas@gmail.com>

	Display a message when wallpaper was set

	* lisp/image/wallpaper.el (wallpaper-default-set-function): Display a
	message when the wallpaper was successfully set.

2022-09-26  Stefan Kangas  <stefankangas@gmail.com>

	Fix setting the wallpaper in XFCE

	* lisp/image/wallpaper.el  (wallpaper-command-args)
	(wallpaper-default-set-function): Support new format specifiers
	%S for screen, %W for workspace, and %M for monitor.
	(wallpaper--default-setters): Use above new specifiers for XFCE.
	(wallpaper--format-arg): New defun broken out from...
	(wallpaper-default-set-function): ...here.
	(wallpaper--get-height-or-width): Support noninteractive use.
	* test/lisp/image/wallpaper-tests.el (wallpaper--format-arg/filename)
	(wallpaper--format-arg/filename-hex)
	(wallpaper--format-arg/width, wallpaper--format-arg/screen)
	(wallpaper--format-arg/monitor, wallpaper--format-arg/workspace):
	New tests.

2022-09-26  Stefan Kangas  <stefankangas@gmail.com>

	Rewrite wallpaper.el to use a cl-defstruct

	* lisp/image/wallpaper.el
	(wallpaper--default-commands): Delete variable.
	(wallpaper-setter): New cl-defstruct.
	(wallpaper--default-methods-create): New macro.
	(wallpaper--default-setters):
	(wallpaper--current-setter): New variables.
	(wallpaper--find-setter): New defun to pick a wallpaper-setter.
	(wallpaper--find-command, wallpaper--find-command-args):
	Use 'wallpaper--find-setter'.
	(wallpaper-command): Doc fix.

	* test/lisp/image/wallpaper-tests.el
	(wallpaper--find-command/return-string)
	(wallpaper--find-command-args/return-list)
	(wallpaper--image-file-regexp/return-string): New tests.

2022-09-26  Protesilaos Stavrou  <info@protesilaos.com>

	Add log-edit-summary-separator face (bug#58092)

	* lisp/vc/log-edit.el (log-edit-summary-separator): Add new face.
	(log-edit-font-lock-keywords): Replace hardcoded face attributes with
	named face.
	* etc/NEWS: Announce the new face.

2022-09-26  Stefan Kangas  <stefankangas@gmail.com>

	Autoload image-dired-thumbnail-storage :safe property

	* lisp/image/image-dired.el (image-dired-thumbnail-storage):
	Autoload :safe property.

2022-09-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix (thing-at-point 'url) in eww forms

	* lisp/net/eww.el (eww-tag-input): Don't claim to have an URL here
	(bug#58091).

	* lisp/net/shr.el (shr-next-link, shr-previous-link): Search for
	shr-tab-stop instead of shr-url so that we can be more general.
	(shr-urlify): Mark all links as tabbable-to.

2022-09-26  João Távora  <joaotavora@gmail.com>

	Make clojure-lsp handle more major modes at once

	Suggested-by: Witoslaw Koczewski <wi@koczewski.de>

	* eglot.el (eglot-server-programs): Enhance clojure-specific section.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/682

2022-09-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Rescale images along with text in eww with `C-x C-+'

	* lisp/net/eww.el (eww--rescale-images): Also rescale images when
	using `C-x C-+' etc (bug#58047).

2022-09-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix percentage width computation in vtable

	* lisp/emacs-lisp/vtable.el (vtable--compute-width): Fix
	percentage computation (bug#58067).

2022-09-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Keep point in eww after hitting `g'

	* lisp/net/eww.el (eww-retrieve): Keep point after hitting `g'
	(bug#58076).

2022-09-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix whitespace-mode in read-only buffers

	* lisp/whitespace.el (whitespace--update-bob-eob): Don't bug out
	in read-only buffers (bug#58082).

2022-09-26  João Távora  <joaotavora@gmail.com>

	Add support for "single server, multiple modes"

	Previously, if an entry such as:

	   ((c++-mode c-mode) . ("clangd)")

	were found in eglot-server-programs, it meant that opening a .cpp file
	and a .c file in the same project and enabling eglot for both would
	lead to two clangd instances.  Now only one instance is created to
	handle all buffers of those major modes, as long as they are in the
	same project.

	This change accomplishes this with minimal changes and NO modification
	to the already complicated syntax of eglot-server-programs.

	Naturally, this means that a subtle backward-incompatibility was
	introduced.  If, instead of "clangd", someone is using some kind
	"c++-or-c-but-not-both-at-once" server, this commit now breaks that
	person's configuration.

	After analyzing the entries of this variable, an educated guess was
	made that this situation is rare.  If it's not rare, then some change
	to the syntax of eglot-server-programs will have to ensue.

	* eglot.el (eglot-server-programs): Update docstring.
	(eglot-lsp-server): Replace major-mode -> major-modes.
	(eglot--lookup-mode): Rework.
	(eglot--guess-contact): Rework.
	(eglot--connect): Reword first parameter.
	(eglot-reconnect): Use eglot--major-modes.
	(eglot--read-server): Rework.
	(eglot--ensure-list): New helper.
	(eglot-current-server): Rework.
	(eglot-handle-request workspace/configuration): Use first of
	managed major modes.

	* NEWS.md: Mention change.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/681

2022-09-26  João Távora  <joaotavora@gmail.com>

	Shoosh byte-compilation warnings about line numbering functions

	Also add warning at the top of file about not using functionality
	incompatible with 26.3

	* eglot.el:
	(eglot-current-column, eglot-current-column): Use line-beginning-position
	(eglot--xref-make-match): Use line-beginning-position,
	line-end-position, line-number-at-pos

2022-09-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/buffer.c (overlays_in): Fix confusion Z-vs-ZV

	This fixes test failures in `test-overlays-in-2` and `test-remove-overlays`.

2022-09-25  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	Make average width computation on ftcr more permissive (Bug#43058)

	* src/ftcrfont.c (ftcrfont_open): Use only non-zero width glyphs for
	computing average width.

2022-09-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge 'master' into noverlay

2022-09-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	tex-mode.el: Don't override AUCTeX modes

	* lisp/textmodes/tex-mode.el (TeX-mode, plain-TeX-mode, LaTeX-mode):
	Only define them as aliases in `lisp/loaddefs.el` so we don't
	override AUCTeX's own definitions when we load `tex-mode.el`.

2022-09-25  Mattias Engdegård  <mattiase@acm.org>

	Boolean constant detection additions

	* lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form):
	`set` is boolean identity in its second argument.
	(byte-compile-trueconstp): `set-marker` is always true.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	Refactor system specific code in wallpaper.el

	* lisp/image/wallpaper.el (wallpaper-set-function): New defvar
	containing system specific function for setting wallpaper.
	(wallpaper-default-set-function): Factor out function from...
	(wallpaper-set): ...here.  Use above new defvar.

	(wallpaper-default-file-name-regexp): Delete defvar.
	(wallpaper-image-file-extensions): New defvar.
	(wallpaper--image-file-regexp): New defun that returns a regexp to
	match for completion purposes.

	(wallpaper--use-default-set-function-p): New defun.
	(wallpaper--find-command, wallpaper--find-command-arguments):
	Do nothing on MS-Windows and Haiku.

2022-09-25  Mattias Engdegård  <mattiase@acm.org>

	Don't crash in copy-alist with non-list argument

	* src/fns.c (Fcopy_alist): Check argument type.
	* test/src/fns-tests.el (fns--copy-alist): New test.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	Add reasonable default to wallpaper-set

	* lisp/image/wallpaper.el
	(wallpaper-default-file-name-regexp): New variable.
	(wallpaper--get-default-file): New function.
	(wallpaper-set): Use above new function to set a default.
	* test/lisp/image/wallpaper-tests.el: New file.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	Add :buffer argument to ert-with-temp-file

	* lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Add new keyword
	argument :buffer SYMBOL to visit the file with `find-file-literally'
	before running the body, and cleaning up after.

2022-09-25  Po Lu  <luangruo@yahoo.com>

	Implement font-use-system-font on Haiku

	* doc/emacs/frames.texi (Fonts): Update documentation to say
	what font-use-system-font really does and where it can be used.
	* src/haiku_font_support.cc (language_code_points): Fix coding
	style.
	(font_style_to_flags, be_font_style_to_flags): Accept const char
	*.
	(be_send_font_settings, be_listen_font_settings)
	(be_lock_font_defaults, be_unlock_font_defaults)
	(be_get_font_default, be_get_font_size): New functions used to
	retrieve default font data.

	* src/haiku_io.c (haiku_len): Handle FONT_CHANGE_EVENT.
	* src/haiku_support.h (enum haiku_event_type): New event type
	FONT_CHANGE_EVENT.
	(enum haiku_what_font): New enum.
	(struct haiku_font_change_event): New struct.

	* src/haikufont.c (Ffont_get_system_normal_font)
	(Ffont_get_system_font, haiku_handle_font_change_event): New
	functions.
	(syms_of_haikufont): Provide `dynamic-setting' and define new
	variables and subrs.

	* src/haikuterm.c (haiku_default_font_parameter): Use system font.
	(haiku_read_socket): Handle FONT_CHANGE_EVENTS.
	(haiku_term_init): Start listening for font configuration changes.
	* src/haikuterm.h: Update prototypes.

	* src/xsettings.c (Ffont_get_system_normal_font)
	(Ffont_get_system_font): Update doc string.
	(syms_of_xsettings): Replace calls to intern with a static
	string.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	wallpaper: URI-encode gsettings argument

	* lisp/image/wallpaper.el (wallpaper--default-commands)
	(wallpaper-command-args, wallpaper-set): URI-encode gsettings
	argument.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	Improve shortdoc documentation

	* doc/emacs/help.texi (Name Help):
	* doc/lispref/help.texi (Documentation Groups): Refer to
	'shortdoc' convenience alias instead of 'shortdoc-display-group'.
	* lisp/emacs-lisp/shortdoc.el: Add Commentary.
	(shortdoc-next, shortdoc-previous)
	(shortdoc-next-section, shortdoc-previous-section): Doc fixes.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	Make image-dired-thumb-name more portable

	* lisp/image/image-dired-util.el
	(image-dired-thumb-name): Create file names in a portable manner.
	* test/lisp/image/image-dired-util-tests.el
	(image-dired-thumb-name/standard)
	(image-dired-thumb-name/image-dired)
	(image-dired-thumb-name/per-directory): Expand tests.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	Fix shortdoc movement commands

	* lisp/emacs-lisp/shortdoc.el (shortdoc--goto-section): Don't skip
	over current function or section when searching.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	Add new command 'shortdoc-copy-function-as-kill'

	* lisp/emacs-lisp/shortdoc.el
	(shortdoc-copy-function-as-kill): New command.
	(shortdoc-mode-map): Bind above new command to "w".

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	* etc/NEWS.22: Belatedly announce 'dired-copy-filename-as-kill'.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	Bind "N"/"P" to next/prev section in shortdoc

	* lisp/emacs-lisp/shortdoc.el (shortdoc-mode-map): Bind "N" and
	"P" to 'shortdoc-next-section' and 'shortdoc-previous-section'.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/bookmark.el (bookmark-rename): Improve prompt.

2022-09-25  Stefan Kangas  <stefankangas@gmail.com>

	Add new command image-dired-copy-filename-as-kill

	* lisp/image/image-dired.el
	(image-dired-copy-filename-as-kill): New command.
	(image-dired-thumbnail-mode-map): Bind above new command to "w".

2022-09-25  Philip Kaludercic  <philipk@posteo.net>

	* lisp/net/rcirc.el (rcirc-print): Remove 'fill-region' call

	See Bug#57376.

2022-09-25  Philip Kaludercic  <philipk@posteo.net>

	Add formatting commands to rcirc

	* etc/NEWS: Mention new command
	* lisp/net/rcirc.el (rcirc-format): Add new utility function.
	(rcirc-unformat):  Add new command.
	(rcirc-format-bold): Add new command.
	(rcirc-format-italic): Add new command.
	(rcirc-format-underline): Add new command.
	(rcirc-format-strike-trough): Add new command.
	(rcirc-format-fixed-width): Add new command.
	(rcirc-mode-map): Bind formatting commands.
	(rcirc-multiline-minor-mode-map): Bind formatting commands.

2022-09-25  Yuan Fu  <casouri@gmail.com>

	Fix treesit-induce-sparse-tree

	Because not-at-all-werid way we implemented ts_build_sparse_tree, it’s
	return value needs a bit post-processing (i.e., reverse its cdr).

	* src/treesit.c (Ftreesit_induce_sparse_tree): Reverse the top-level
	children list.
	(ts_build_sparse_tree): Add comment.

2022-09-25  Yuan Fu  <casouri@gmail.com>

	Improve treesit-search-forward-goto

	* doc/lispref/parsing.texi (Retrieving Node): Update manual.
	* lisp/treesit.el (treesit-search-forward-goto): Instead of taking a
	node, use the node at point, and make sure we make progress.

2022-09-25  Yuan Fu  <casouri@gmail.com>

	Fix treesit-search-forward

	* src/treesit.c (ts_search_forward): Fix return value.

2022-09-25  Yuan Fu  <casouri@gmail.com>

	Update and enable treesit-imenu function in python.el

	* lisp/progmodes/python.el (python--treesit-settings): Add docstring.
	(python--imenu-treesit-create-index-1): Rewrite with
	treesit-induce-sparse-tree.
	(python-imenu-treesit-create-index): Move main body to
	python--imenu-treesit-create-index-1.
	(python-imenu-treesit-create-flat-index): Fix typo.
	(python-mode): Enable treesit-imenu.  Also fix indentation for
	which-func code.

2022-09-25  Yuan Fu  <casouri@gmail.com>

	Add the treesit-search functions that supplant the removed ones

	The signatures also changed.

	treesit-traverse-depth-first   -> treesit-search-subtree
	treesit-traverse-breadth-first ->
	treesit-traverse-forward       -> treesit-search-forward
	treesit-search-forward         -> treesit-search-forward-goto
	treesit-search-beginning/end   -> treesit-search-forward-goto
	                               -> treesit-induce-sparse-tree

	* doc/lispref/parsing.texi (Retrieving Node): Add relevant manual
	sections.
	* lisp/treesit.el (treesit-search-forward-goto): New function.
	* src/treesit.c (ts_traverse_sibling_helper)
	(ts_traverse_match_predicate)
	(ts_search_dfs)
	(ts_search_forward)
	(treesit-search-subtree)
	(treesit-search-forward)
	(ts_build_sparse_tree)
	(Ftreesit_induce_sparse_tree): Add functions.
	* test/src/treesit-tests.el (treesit-node-supplemental): Add comments.

2022-09-25  Yuan Fu  <casouri@gmail.com>

	Remove treesit-traverse functions

	Remove before adding the replacements.

	* doc/lispref/parsing.texi (Retrieving Node): Remove relevant sections.
	* lisp/treesit.el (treesit-traverse-depth-first)
	(treesit--traverse-breadth-first-1)
	(treesit-traverse-breadth-first)
	(treesit-next-sibling-or-up)
	(treesit-traverse-forward)
	(treesit-search-forward)
	(treesit-search-beginning):
	(treesit-search-end): Remove functions.
	(treesit-defun-query): Remove variable.
	(treesit-beginning-of-defun)
	(treesit-end-of-defun): Remove functions.
	* test/src/treesit-tests.el: Remove comments.

2022-09-25  Yuan Fu  <casouri@gmail.com>

	Accept nil as NODE in treesit-node-text

	* lisp/treesit.el (treesit-node-text): Just wrap function body
	in (when ...).

2022-09-25  Yuan Fu  <casouri@gmail.com>

	Change make_string to build_string in treesit.c

	* src/treesit.c (Ftreesit_node_string)
	(Ftreesit_node_field_name_for_child): Change make_string to
	build_string.

2022-09-25  Yuan Fu  <casouri@gmail.com>

	Improve printing treesit nodes

	* src/print.c (print_vectorlike): Instead of position, print the type
	of the node.

2022-09-25  Yuan Fu  <casouri@gmail.com>

	Rename treesit-expand-query/pattern

	* src/treesit.c (treesit-expand-pattern): Rename to
	treesit-patter-expand.
	(treesit-expand-query): Rename to treesit-query-expand.
	(make_ts_query): Use new name.
	* test/src/treesit-tests.el (treesit-query-api): Fix name.

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak window handling in vc-pull-and-push

	* lisp/vc/vc-dispatcher.el (vc--inhibit-async-window): Rename
	variable.
	(vc-do-async-command): Allow inhibiting all window changes.

	* lisp/vc/vc-git.el (vc-git-pull-and-push): Don't pop up the
	window asynchronously on the "pull" because that gets in the way
	of doing other things.

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Add faces for header line

	* lisp/image/image-dired.el (image-dired-thumb-header-file-name)
	(image-dired-thumb-header-directory-name)
	(-image-dired-thumb-header-file-size)
	(image-dired-thumb-header-image-count): New faces.
	(image-dired-format-properties-string): Use above new faces.
	(image-dired-thumb-mark, image-dired-thumb-flagged): Move
	definition further down.

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Add new %-format specifiers for header line

	* lisp/image/image-dired.el
	(image-dired-format-properties-string): Add new specifiers "%n", "%d",
	and "%s".
	(image-dired-display-properties-format): Change default format to use
	above new specifiers.
	(image-dired--number-of-thumbnails): New variable.
	(image-dired-insert-thumbnail, image-dired-display-thumbs): Keep
	track of file number when appending it into the thumbnail buffer.
	(image-dired--update-header-line): Support above new format
	specifiers.  Rename from 'image-dired-update-header-line' and
	update callers.
	* lisp/image/image-dired-dired.el
	(image-dired-dired-display-properties): Support above new format
	specifiers.

2022-09-24  Sean Whitton  <spwhitton@spwhitton.name>

	Generalize & simplify implementation of user edits to VC commands

	* lisp/vc/vc-dispatcher.el (vc-pre-command-functions)
	(vc-want-edit-command-p): Delete.
	(vc-filter-command-function): New variable.
	(vc-user-edit-command): Factor out of vc-do-command.
	(vc-do-command, vc-do-async-command)
	* lisp/vc/vc-git.el (vc-git--pushpull)
	* lisp/vc/vc.el (vc-print-branch-log): Use vc-filter-command-function
	in place of vc-pre-command-functions and vc-want-edit-command-p.

2022-09-24  Juri Linkov  <juri@linkov.net>

	* lisp/emacs-lisp/icons.el (icons--create): Use default rotation 0 (bug#57813)

2022-09-24  Michael Albinus  <michael.albinus@gmx.de>

	Adapt tramp-docker integration

	* doc/misc/tramp.texi (Inline methods): Add docker.
	(Customizing Methods): Remove docker-tramp.  Adapt references to this.

	* etc/NEWS: Mention new Tramp method "docker".  Fix typos.

	* lisp/net/tramp-compat.el (docker-tramp): Warn, if that package is used.

	* lisp/net/tramp-docker.el: Format header lines.
	(tramp-docker): Remove custom group.
	(tramp-docker-program, tramp-docker-method): Add
	;;;###tramp-autoload cookie.
	(tramp-docker-program): Change group to `tramp'.  Add version.
	(tramp-docker--completion-function): Fix docstring.
	(tramp-docker--add-method, tramp-docker--remove-method)
	(tramp-docker-unload-function, tramp-docker-setup): Remove functions.
	(tramp-methods, tramp-set-completion-function): Initialize via
	`tramp--with-startup'.
	(tramp-unload-hook):  Unload `tramp-docker'.

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Move menu definitions to keymaps

	* lisp/image/image-dired.el (image-dired-thumbnail-mode-menu):
	* lisp/image/image-dired-dired.el (image-dired-minor-mode-menu):
	Delete variables and move menus to...
	* lisp/image/image-dired.el (image-dired-thumbnail-mode-map):
	* lisp/image/image-dired-dired.el(image-dired-minor-mode-map):
	...here.

2022-09-24  Manuel Giraud  <manuel@ledu-giraud.fr>

	Ensure no memory leaks of glyph_matrix

	each glyph_matrix only when it's NULL.  (Bug#58028)

2022-09-24  kobarity  <kobarity@gmail.com>

	hideshow.el: Improve hs-toggle-hiding behavior

	* lisp/progmodes/hideshow.el
	(hs-find-block-beginning-match): New function to be used in
	`hs-already-hidden-p'.
	(hs-already-hidden-p): Add check if beginning of line is inside a
	block.
	(hs-toggle-hiding): Don't change to selected-window's buffer when
	event arg is absent.

	* test/lisp/progmodes/hideshow-tests.el
	(hideshow-tests-with-temp-buffer-selected): New helper macro.
	(hideshow-tests-make-event-at): New helper function.
	(hideshow-already-hidden-p-1): New test.
	(hideshow-toggle-hiding-1): New test.
	(hideshow-mouse-toggle-hiding-1): New test (bug#52092).

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove "manual" package--builtin-versions updates

	* lisp/emacs-lisp/nadvice.el:
	* lisp/emacs-lisp/cl-generic.el: Don't push to
	package--builtin-versions "manually", because loaddefs-gen does
	this correctly now.

2022-09-24  Brian Cully  <bjc@kublai.com>

	* lisp/net/tramp-docker.el: New file.

2022-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	(event-start/end): Fix part of bug#52092

	When synthesizing a posn for keyboard events, make sure the `posn-point`
	i the same as `point`.

	* lisp/subr.el (event--posn-at-point): New function.
	(event-start, event-end): Use it.

2022-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'emacs-28'

2022-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/hideshow.el (hs-toggle-hiding): Fix `interactive` form

	This fixes the first part of bug#52092, which is a regression
	introduced by commit d0e9113de97.

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make dired-do-rename refuse to rename . and ..

	* lisp/dired-aux.el (dired-do-rename): Refuse to rename . and ..
	(bug#52004).  This used to error out after renaming.

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new command vc-pull-and-push

	* lisp/vc/vc-svn.el (vc-exec-after):
	* lisp/vc/vc-hg.el (vc-exec-after):
	* lisp/vc/vc-git.el (vc-exec-after):
	* lisp/vc/vc-cvs.el (vc-exec-after):
	* lisp/vc/vc-bzr.el (vc-exec-after):
	* lisp/org/org-macro.el (vc-exec-after):
	* lisp/obsolete/vc-mtn.el (vc-exec-after):
	* lisp/obsolete/vc-arch.el (vc-exec-after): Update declaration.
	* lisp/vc/vc-dispatcher.el (vc--process-sentinel): Allow running
	code only on success.
	(vc-exec-after): Ditto.
	(vc--inhibit-change-window-start): New variable.
	(vc-do-async-command): Use it to allow chaining commands without
	moving window point.  Return the process instead of the buffer,
	since the process may have exited already, and then we can't get
	at the process.

	* lisp/vc/vc-git.el (vc-git--pushpull): Return the process object.
	(vc-git-pull-and-push): New function.

	* lisp/vc/vc.el (vc-pull-and-push): New command (bug#51964).

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak binding of `+' in vc-dir

	* lisp/vc/vc-dir.el (vc-dir-mode-map): Point to the actual
	function instead of the alias.  This makes *Help* more helpful.

2022-09-24  Alan Mackenzie  <acm@muc.de>

	CC Mode.  Make AWK Mode work with electric-pair-mode

	Also fix some minor anomalies with other CC Mode modes in electric-pair-mode.
	This fixes bug #53446.

	* lisp/progmodes/cc-mode.el (c-open-string-opener): New buffer local
	variable.
	(c-after-change-mark-abnormal-strings): Set c-open-string-opener when an
	unbalanced string is detected.
	(c-before-change): Initialize c-open-string-opener to nil, each buffer change.
	(c-electric-pair-inhibit-predicate): Use the value of c-open-string-opener to
	flag an unbalaced string rather than trying to calculate it again.

	* lisp/progmodes/cc-awk.el (c-awk-syntax-tablify-string): Set
	c-open-string-opener when an unbalanced string is detected.

2022-09-24  Visuwesh  <visuweshm@gmail.com>

	docview: Use svg images when using mupdf for conversion

	* lisp/doc-view.el (doc-view-mupdf-use-svg, doc-view-svg-background)
	(doc-view-svg-foreground): New user options.
	(doc-view-insert-image): Add :background and :foreground image
	attributes when display svg images.
	(doc-view-set-up-single-converter): Produce svg images when using
	mupdf (bug#58041).

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Prefer command remapping

	* lisp/image/image-dired.el (image-dired-thumbnail-mode-map):
	Prefer command remapping to binding keys directly.

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Fix C-a/C-e in thumbnail buffer

	* lisp/image/image-dired.el
	(image-dired--movement-ensure-point-pos): New function, and...
	(image-dired--movement-command): ...new macros broken out from...
	(image-dired-next-line, image-dired-previous-line)
	(image-dired-beginning-of-buffer, image-dired-end-of-buffer):
	...here.
	(image-dired-move-beginning-of-line)
	(image-dired-move-end-of-line): New commands.
	(image-dired-thumbnail-mode-map): Remap 'move-beginning-of-line'
	and 'move-beginning-of-line' to above new commands.

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	Make thumbs.el obsolete

	* lisp/obsolete/thumbs.el: Add Obsolete-since.
	* etc/NEWS: Announce obsoletion of thumbs.el.  (Bug#57779)

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	Move thumbs.el to lisp/obsolete

	* lisp/thumbs.el:
	* test/lisp/thumbs-tests.el: Move from here...
	* lisp/obsolete/thumbs.el:
	* test/lisp/obsolete/thumbs-tests.el: ...to here.  (Bug#57779)

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Regenerate old thumbnails when needed

	* lisp/image/image-dired.el
	(image-dired--get-create-thumbnail-file): Rename from
	'image-dired-get-thumbnail-image'.  Update callers and make old
	name into an obsolete alias.
	(image-dired-display-thumbs): Use above function to simplify and
	regenerate the thumbnail if it's outdated.

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Improve performance of marking commands

	* lisp/image/image-dired.el (image-dired-thumbnail-storage): Mark
	(image-dired--thumb-update-mark-at-point): New function.
	(image-dired--thumb-update-marks):
	(image-dired--do-mark-command):  Use it.
	(image-dired--thumb-update-marks): Rename from
	'image-dired-thumb-update-marks'.  Update all callers and make the
	old name into an obsolete alias.

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Mark 'per-directory' as :safe

	* lisp/image/image-dired.el (image-dired-thumbnail-storage): Mark
	'per-directory' value as :safe.

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	Add new macro image-dired--with-dired-buffer

	* lisp/image/image-dired-util.el
	(image-dired--with-dired-buffer): New macro.
	* lisp/image/image-dired.el (image-dired-track-original-file)
	(image-dired--on-file-in-dired-buffer)
	(image-dired--do-mark-command)
	(image-dired--on-file-in-dired-buffer)
	(image-dired-jump-original-dired-buffer)
	(image-dired-thumb-file-marked-p, image-dired-delete-marked):
	Use above new macro to simplify and improve error handling.
	(image-dired-show-all-from-dir): Simplify removing Dired marks.
	(image-dired-thumb-update-marks): Avoid triggering above new error
	handling.

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak how :override advice is formatted in *Help*

	* lisp/emacs-lisp/nadvice.el (advice--make-single-doc): Format
	:overrides specially (bug#57974).
	(advice--make-docstring): Put overrides at the front.

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename file-name-directory

	* lisp/emacs-lisp/shortdoc.el (file-name):
	* doc/lispref/files.texi (Directory Names): Adjust.
	* lisp/files.el (file-name-parent-directory): Rename from
	`file-name-directory' (bug#58039).

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that cus-load doesn't add things twice

	* lisp/cus-dep.el (custom-make-dependencies): Use it.

	* lisp/custom.el (custom--add-custom-loads): New function.

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	`append' doc string clarification

	* src/fns.c (Fappend): Clarify whether arguments are copied.

2022-09-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify message-newline-and-reformat doc string

	* lisp/gnus/message.el (message-newline-and-reformat): Clarify the
	DWIM-ness in the doc string (bug#57986).

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	Improve image-dired-thumbnail-display-external

	* lisp/image/image-dired.el: (image-dired-external-viewer): Add more
	image viewers and slightly re-arrange.
	(image-dired-thumbnail-display-external): Correctly handle
	external viewers with spaces or flags.

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/emacs-lisp/shortdoc.el (file-name): Improve examples.

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Use command substitution for tags bindings

	* lisp/image/image-dired-tags.el
	(image-dired-dired-edit-comment-and-tags): Use substitute-command-keys

2022-09-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Various code clean ups

	* lisp/image/image-dired.el
	(image-dired--display-thumb-properties-fun): Delete function.
	(image-dired-forward-image): Immediately update header line.  Improve
	docstring.
	(image-dired-backward-image, image-dired-next-line)
	(image-dired-previous-line, image-dired-beginning-of-buffer)
	(image-dired-end-of-buffer, image-dired-display-image): Improve
	docstring.
	(image-dired-comment-thumbnail): Fix interactive declaration.

2022-09-24  João Távora  <joaotavora@gmail.com>

	Fix blunder in eglot--guess-contact

	* eglot.el (eglot--guess-contact): Add back
	'split-string-and-unquote' lost in https://github.com/joaotavora/eglot/issues/940 fix.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/940

2022-09-24  Po Lu  <luangruo@yahoo.com>

	Reduce complexity of scroll bar window protection code

	It turns out my previous theories of why ClientMessages were
	generated were wrong, and they are just generated so we can set
	finish to X_EVENT_GOTO_OUT to have them delivered immediately.

	This allows for the code to be simplified greatly, by not
	unpacking pointers to the raw window into the client messages.

	* src/xterm.c (x_unprotect_window_for_callback): Return the
	window removed from the queue, or nil if none.
	(x_scroll_bar_to_input_event)
	(x_horizontal_scroll_bar_to_input_event): Use window provided by
	x_unprotect_window_for_callback.
	(handle_one_xevent): Pass dpyinfo to functions that need it.
	(x_free_frame_resources): Remove "first scroll bar request"
	code.

	* src/xterm.h (struct x_display_info): Likewise.

2022-09-24  Augusto Stoffel  <arstoffel@gmail.com>

	New Flymake backend using the shellcheck program

	See bug#57884.

	* lisp/progmodes/sh-script.el: Require let-alist and subr-x when
	compiling.
	(sh--json-read): Helper function to deal with possible absence of
	json-parse-buffer.
	(sh-shellcheck-program, sh--shellcheck-process,
	sh-shellcheck-flymake): Variables and function defining a Flymake
	backend.
	(sh-mode): Add it to 'flymake-diagnostic-functions'.

2022-09-23  Sean Whitton  <spwhitton@spwhitton.name>

	vc-git--pushpull: Restore handling of vc-git-program

	* lisp/vc/vc-git.el (vc-git--pushpull): Restore handling of
	vc-git-program before recent change: respect a buffer-local value of
	vc-git-program, and don't ignore user edits to the git program name
	when PROMPT.

2022-09-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/eieio.el (defclass): Fix bug#51068

	Accept (defclass <class> <superclasses> (.. <slotname> ..)) without
	having to wrap the slot name within parentheses.

2022-09-23  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Rewrite and extend slideshow feature

	* lisp/image/image-dired.el
	(image-dired--slideshow-start-timer)
	(image-dired--slideshow-stop-timer)
	(image-dired--slideshow-show-message): New functions.
	(image-dired--slideshow-current-delay): New variable.
	(image-dired--slideshow-initial): Delete variable.
	(image-dired-slideshow-start): Simplify and ensure we display the
	image at start.
	* lisp/image/image-dired.el (image-dired--slideshow-stop): Add support
	for pausing, and going backwards and forwards during slideshow.

2022-09-23  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Mark two slideshow defuns as internal

	* lisp/image/image-dired.el (image-dired--slideshow-step)
	(image-dired--slideshow-stop): Rename from
	'image-dired--slideshow-step' and 'image-dired--slideshow-stop'.
	Update callers and make old names into obsolete aliases.

2022-09-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	cconv.el: Fix interactive closure bug#51695

	Make cconv.el detect when a closure's interactive form needs to
	capture variables from the context and tweak the code accordingly
	if so.

	* lisp/emacs-lisp/cconv.el (cconv--interactive-form-funs): New var.
	(cconv-convert): Handle the case where the interactive form captures
	vars from the surrounding context.  Remove left over handling of
	`declare` which was already removed from the cconv-analyze` phase.
	(cconv-analyze-form): Adjust analysis of interactive forms accordingly.

	* lisp/emacs-lisp/oclosure.el (cconv--interactive-helper): New type and
	function.
	* lisp/simple.el (function-documentation, oclosure-interactive-form):
	Add methods for it.

	* test/lisp/emacs-lisp/cconv-tests.el
	(cconv-tests-interactive-closure-bug51695): New test.

2022-09-23  Visuwesh  <visuweshm@gmail.com>

	Make Gnus respect mode-line-buffer-identification-keymap

	* lisp/gnus/gnus-group.el (gnus-group-set-mode-line): Use
	'propertized-buffer-identification' to buttonise and fontify the
	buffer name.
	* lisp/gnus/gnus-sum.el (gnus-set-mode-line):
	* lisp/gnus/gnus.el (gnus-mode-line-buffer-identification): Adjust
	calls to above.
	* lisp/gnus/gnus-srvr.el (gnus-browse-foreign-server): Add missing
	'gnus-modeline-buffer-identification' call (bug#57977).

2022-09-23  Visuwesh  <visuweshm@gmail.com>

	Make bounding box of 'image-crop' more noticeable

	* lisp/image/image-crop.el (image-crop--crop-image-1): Darken the
	selected region to make the bounding-box more noticeable in images
	which are mostly white (bug#58004).

2022-09-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't overwrite cus-load dependencies

	* lisp/cus-dep.el (custom-make-dependencies): Don't overwrite
	elements added by packages (bug#58015).

2022-09-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make loaddefs-gen register parent :groups from defcustom

	* lisp/emacs-lisp/loaddefs-gen.el
	(loaddefs-generate--make-autoload): Also register parent :groups from
	`defgroup' entries (bug#58015).

2022-09-23  kobarity  <kobarity@gmail.com>

	Fix syntax check in python-info-looking-at-beginning-of-defun

	* lisp/progmodes/python.el
	(python-info-looking-at-beginning-of-defun): Check syntax after moving
	to the beginning of line.
	* test/lisp/progmodes/python-tests.el (python-nav-beginning-of-defun-6)
	(python-end-of-defun-1, python-info-looking-at-beginning-of-defun-3):
	New tests (bug#58023).

2022-09-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Inhibit image-crop when there's overlays

	* lisp/image/image-crop.el (image-crop): Don't mess with overlays,
	because they're a pain to reconstruct (bug#58027).

2022-09-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Delete the correct region after cropping an image

	* lisp/image/image-crop.el (image-crop): Delete the correct region
	after editing (bug#58027).

2022-09-23  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Disable 'image-map' in thumbnail buffer

	These bindings are more likely to mess up the buffer than to be
	helpful here; image manipulation is better done in the display buffer.

	* lisp/image/image-dired.el (image-dired-insert-thumbnail): Disable
	`image-map' in thumbnail buffer.

2022-09-23  Stefan Kangas  <stefankangas@gmail.com>

	Update manual for recent image-dired changes

	* doc/emacs/dired.texi (Image-Dired): Update to reflect recent
	changes.

2022-09-23  Mattias Engdegård  <mattiase@acm.org>

	* lisp/files.el (risky-local-variable): Remove max-specpdl-size.

2022-09-23  Mattias Engdegård  <mattiase@acm.org>

	Remove max-specpdl-size overrun test

	* test/src/eval-tests.el (eval-tests--exceed-specbind-limit)
	(eval-exceed-specbind-with-signal-hook): Remove test that is
	no longer useful, since there is no longer any specpdl limit
	to overrun.  (The test still passed but vacuously so, by
	hitting the max-lisp-eval-depth limit instead.)
	This silences an obsoletion warning.

2022-09-23  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/bookmark.el (bookmark-make-record): Fix thinko.

2022-09-23  Stefan Kangas  <stefankangas@gmail.com>

	Improve prompt of 'image-dired' command

	* lisp/image/image-dired.el (image-dired-show-all-from-dir):
	Improve prompt.

2022-09-23  Stefan Kangas  <stefankangas@gmail.com>

	Rename 'image-dired-db-file' to 'image-dired-tags-db-file'

	* lisp/image/image-dired.el (image-dired-tags-db-file): Rename
	from 'image-dired-db-file'.  Update all uses and make old name
	into an obsolete variable alias.

2022-09-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	60ac12d21f Fix shaping with bitmap-only fonts on HarfBuzz 5.2.0 (Bug#...
	9f65e52362 ; Minor copyedits of elisp.texi

2022-09-23  Po Lu  <luangruo@yahoo.com>

	Fix more toolkit scroll bar window protection issues

	* src/xterm.c (handle_one_xevent): Ignore outdated scroll bar
	events.
	(x_free_frame_resources): Clear protected windows and invalidate
	previous scroll bar events.
	* src/xterm.h (struct x_display_info): New field
	`first_valid_scroll_bar_req'.

2022-09-23  Stefan Kangas  <stefankangas@gmail.com>

	Autoload wallpaper-set

	* lisp/image/wallpaper.el (wallpaper-set): Autoload.
	* lisp/image-mode.el (wallpaper):
	* lisp/image/image-dired.el (wallpaper):
	* lisp/thumbs.el (wallpaper): Don't require.

2022-09-23  Eli Zaretskii  <eliz@gnu.org>

	Support Noto Emoji font as fallback

	The black-and-white emoji font is back under active development,
	see https://github.com/googlefonts/noto-emoji.  So this adds
	that font as fallback for systems that don't have the capability
	of using color fonts.
	* lisp/international/fontset.el (setup-default-fontset): Support
	black-and-white Noto Emoji font as fallback for Emoji display.

2022-09-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	Fix shaping with bitmap-only fonts on HarfBuzz 5.2.0 (Bug#57976)

	* src/ftcrfont.c (ftcrhbfont_begin_hb_font): Undo last change for
	HarfBuzz 5.2.0.

2022-09-22  Stefan Kangas  <stefankangas@gmail.com>

	Support several new DEs in wallpaper.el

	* lisp/image/wallpaper.el (wallpaper--default-commands)
	(wallpaper--check-command, wallpaper-command): Add support for Unity,
	Pantheon, Budgie, LXQt, and LXDE.  Also add support for Lubuntu,
	Xubuntu, and Pop!_OS.

2022-09-22  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Obsolete two unused functions

	* lisp/image/image-dired-util.el (image-dired-display-window)
	(image-dired-associated-dired-buffer-window): Make obsolete; they are
	currently unused.

2022-09-22  Yuan Fu  <casouri@gmail.com>

	Utilize tree-sitter in python.el

	* lisp/progmodes/python.el (python-use-tree-sitter): New option.
	(python--treesit-keywords, python--treesit-builtins)
	(python--treesit-constants, python--treesit-operators)
	(python--treesit-special-attributes, python--treesit-exceptions): New
	variables.
	(python--treesit-fontify-string, python--treesit-settings)
	(python--imenu-treesit-create-index)
	(python--imenu-treesit-create-flat-index)
	(python-info-treesit-current-defun): New functions.
	(python-mode): Enable tree-sitter font-lock and which-func.

2022-09-22  Mattias Engdegård  <mattiase@acm.org>

	Don't rewrite `set` to `setq` of lexical variables

	Only perform the rewrite

	   (set 'VAR X) -> (setq VAR X)

	for dynamic variables, as `set` isn't supposed to affect
	lexical vars (and never does so when interpreted).

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-set):
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--xx): New.
	(bytecomp-tests--test-cases): Add test cases.
	* test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-nonvariable.el:
	Remove obsolete test.

2022-09-22  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Improve minor mode docstring

	* lisp/image/image-dired-dired.el (image-dired-minor-mode):
	Improve docstring.

2022-09-22  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Remove redundant keybindings

	* lisp/image/image-dired-dired.el (image-dired-minor-mode-map):
	Don't redundantly bind keys that are already bound in dired.

2022-09-22  Stefan Kangas  <stefankangas@gmail.com>

	Fix failing image-dired test

	* test/lisp/image/image-dired-util-tests.el (ert-x, xdg): Require.
	(image-dired-thumb-name/): Delete test.
	(image-dired-thumb-name/standard)
	(image-dired-thumb-name/image-dired)
	(image-dired-thumb-name/per-directory): New tests.

2022-09-22  Stefan Kangas  <stefankangas@gmail.com>

	Add X-Hashcash to the end of mail headers

	* lisp/mail/hashcash.el (mail-add-payment): Move headers to the end of
	the headers.

2022-09-22  Michael Albinus  <michael.albinus@gmx.de>

	Improve don't save bookmark context from encrypted files

	* etc/NEWS: Mention 'bookmark-inhibit-context-functions'.
	Fix typos.

	* lisp/bookmark.el (bookmark-inhibit-context-functions): New defcustom.
	(bookmark-make-record): Use it.

	* lisp/auth-source-pass.el (auth-source-pass-file-name-p):
	* lisp/auth-source.el (auth-source-file-name-p): New defuns.  Add
	them to `bookmark-inhibit-context-functions'.

	* lisp/epa-hook.el (epa-file-name-p):
	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-p): Add them to
	`bookmark-inhibit-context-functions'.

2022-09-22  Po Lu  <luangruo@yahoo.com>

	Work around rare crash when turning scroll wheel

	* src/xterm.c (handle_one_xevent): Don't allow devices to be
	added twice handling hierarchy events.

2022-09-21  Sean Whitton  <spwhitton@spwhitton.name>

	Add support for user edits to VC command arguments

	* lisp/vc/vc-dispatcher.el (vc-pre-command-functions): New hook.
	(vc-want-edit-command-p): New variable.
	(vc-do-command): If vc-want-edit-command-p is non-nil, prompt the user
	to edit the VC command & arguments before execution.  Run the new hook.
	(vc-do-async-command): Use the new hook to insert into BUFFER the
	command that's next to be run.
	* lisp/vc/vc-git.el (vc-git--pushpull): Drop prompting code.  Bind
	vc-want-edit-command-p so that vc-do-command handles the prompting.
	Use the new hook to update compile-command with the edited command.
	* lisp/vc/vc.el (vc-print-branch-log): A non-nil prefix argument now
	means vc-want-edit-command-p is bound to a non-nil value (bug#57807).

2022-09-21  Stefan Kangas  <stefankangas@gmail.com>

	Prefer command remapping in image-dired-minor-mode

	* lisp/image/image-dired-dired.el (image-dired-minor-mode-map):
	Prefer command remapping.
	(image-dired-minor-mode): Improve docstring.

2022-09-21  Stefan Kangas  <stefankangas@gmail.com>

	Obsolete image-mode--images-in-directory

	* lisp/image-mode.el (image-mode--images-in-directory): Make
	unused function obsolete.

2022-09-21  Robert Pluim  <rpluim@gmail.com>

	Update version tag of rmail-retry-ignored-headers

	* lisp/mail/rmail.el (rmail-retry-ignored-headers): Set :version to "29.1".

2022-09-21  Stefan Kangas  <stefankangas@gmail.com>

	* test/lisp/image/image-dired-util-tests.el: New file.

2022-09-21  Richard Stallman  <rms@gnu.org>

	Add more headers to default value of rmail-retry-ignored-headers.

	* rmail.el (rmail-retry-ignored-headers): Add more headers to default.
	Don't bother with `purecopy'.  Split value readably.

2022-09-21  Stefan Kangas  <stefankangas@gmail.com>

	Add new function xdg-session-type to xdg.el

	* lisp/xdg.el (xdg-session-type): New function.

2022-09-21  Thuna  <thuna.cing@gmail.com>  (tiny change)

	Correct the usage of `image-file-name-regexps'

	* lisp/image-file.el (image-file-name-regexp): Treat
	`image-file-name-regexps' as a list of regexps (as documented) in
	addition to a regexp string (bug#57971).

2022-09-21  Po Lu  <luangruo@yahoo.com>

	Fix handling of nil device names

	* lisp/frame.el (device-class):
	* lisp/term/pgtk-win.el (pgtk-device-class):
	* lisp/term/x-win.el (x-device-class): Handle `nil'
	correctly.  (bug#57969)

2022-09-21  Po Lu  <luangruo@yahoo.com>

	Small adjustments to precision pixel scrolling

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-interpolation-factor): Adjust for
	increased accuracy.
	(pixel-scroll-precision-interpolate): Slightly decrease accuracy
	in exchange for consing less floats.
	(pixel-scroll-interpolate-down, pixel-scroll-interpolate-up):
	Fix usage of function.

2022-09-21  Po Lu  <luangruo@yahoo.com>

	Improve scroll interpolation in pixel-s-precision-mode

	* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): New
	arg FACTOR.  Use it to determine the interpolation factor if
	non-nil.  Also, clear scroll remainder if direction changes, and
	determine deltas based on the absolute amount of time passed.
	(bug#57967)
	(pixel-scroll-interpolate-down, pixel-scroll-interpolate-up):
	Pass factor of 0 to scroll exactly 1 page.

2022-09-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make emacs-build-description into a command

	* lisp/mail/emacsbug.el (report-emacs-bug, submit-emacs-patch):
	Adjust callers.
	(emacs-build-description): Rename from
	`emacs-bug--system-description' and make into a command.

2022-09-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	478b786d5a ; * doc/lispref/windows.texi (Window Hooks): Fix a typo (b...
	5085351645 * lisp/text-modes/tex-mode.el (tex-mode): Fix AUCTeX regre...
	ee6f8598ca Add vc-annotate-switches to manual
	616dcf27e5 ; Fix typos in Lisp symbols
	5405852541 Remove mention of non-existent `annotate-switches'
	191505b8a3 Mention that src/macuvs.h sometimes needs committing
	10373c4b68 ; More comment fixes in font.h (bug#57935)
	c2595b8dcc ; * src/font.h (struct font_driver): Comment fix.
	97b928ce09 MacOS ld warning from native compilation (bug#57849)

2022-09-21  Stefan Kangas  <stefankangas@gmail.com>

	* admin/gitmerge.el (gitmerge): Use substitute-command-keys.

2022-09-21  Stefan Kangas  <stefankangas@gmail.com>

	Bind 'n'/'p' in gitmerge-mode to line scroll

	* admin/gitmerge.el (gitmerge-mode-map): Bind 'n' and 'p' to
	'next-line' and 'previous-line'.

2022-09-21  Robert Pluim  <rpluim@gmail.com>

	Fix substitute-command-keys for global binding lookup

	The previous change forgot to account for the (rare) case of doing a
	lookup for a global binding when a specific keymap is in force.

	* lisp/help.el (substitute-command-keys): Redo lookup in global map if
	lookup in specific map fails.
	*
	test/lisp/help-tests.el (help-tests-substitute-command-keys/keymap-change):
	Add testcase for specific map overriding advertised-binding.

2022-09-21  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el: More improvements for buttons/margins (bug#57813)

	(outline-minor-mode-use-margins): Don't use for modes derived from help-mode
	that are handled by 'outline-minor-mode-use-buttons'.
	(outline-open, outline-close, outline-close-rtl): Use image height
	proportional to font height of 0.8em.
	(outline-minor-mode): Remove overlays 'outline-button' and 'outline-margin',
	and move such overlay removal after the call of 'outline-show-all'
	that might trigger overlay addition.

2022-09-21  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Support the customize-mode command

	* lisp/image/image-dired.el (image-dired-thumbnail-mode)
	(image-dired-display-image-mode): Add custom group 'image-dired'.

2022-09-21  Po Lu  <luangruo@yahoo.com>

	Fix minor thinko in focus tracking logic

	* src/xterm.c (xi_handle_focus_change): Prefer explicit focus to
	implicit focus.

2022-09-20  Yuan Fu  <casouri@gmail.com>

	Improve treesit-query-capture

	* src/treesit.c (Ftreesit_query_capture): Add a suggestion in the
	signal message.

2022-09-20  Yuan Fu  <casouri@gmail.com>

	Fix treesit-query-validate

	* lisp/treesit.el (treesit-query-validate): Add a call to
	treesit-query-expand so this function works on both sexp and string
	query, as expected.

2022-09-20  Yuan Fu  <casouri@gmail.com>

	Rename treesit-expand-query/pattern

	* src/treesit.c (treesit-expand-pattern): Rename to
	treesit-patter-expand.
	(treesit-expand-query): Rename to treesit-query-expand.
	(make_ts_query): Use new name.

2022-09-20  Mauro Aranda  <maurooaranda@gmail.com>

	Recognize the backslash operator in perl-mode

	* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
	Add new rule to detect a backslash operator.  (Bug#11996)

	* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-11996): New
	test.

	* test/lisp/progmodes/cperl-mode-resources/cperl-bug-11996.pl: New
	file.

2022-09-20  Stefan Kangas  <stefankangas@gmail.com>

	Make linum.el obsolete

	* lisp/obsolete/linum.el: Add Obsolete-since.
	* etc/NEWS: Announce obsoletion of linum.el.  (Bug#57412)

	* doc/misc/efaq.texi (Displaying the current line or column):
	* etc/TODO:
	* lisp/faces.el: Don't mention linum.el.

2022-09-20  Stefan Kangas  <stefankangas@gmail.com>

	Move linum.el to lisp/obsolete

	* lisp/linum.el: Move from here...
	* lisp/obsolete/linum.el: ...to here.  (Bug#57412)

2022-09-20  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/ede.texi (Extending EDE): Fix reference.

2022-09-20  Philip Kaludercic  <philip@icterid>

	Have rcirc handle bridge bots

	* doc/misc/rcirc.texi (Dealing with Bridge Bots): Document new feature.
	* etc/NEWS: Mention the new feature.
	* lisp/net/rcirc.el (rcirc-markup-text-functions): Add new markup function
	(rcirc-pseudo-nicks): Add new local variable.
	(rcirc-channel-nicks): Use 'rcirc-pseudo-nicks' for nick completion.
	(rcirc-bridge-bot-alist): Add new user option.
	(rcirc-bridged-nick): Add new face.
	(rcirc-markup-bridge-bots): Add new function.

2022-09-20  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el: Bind margin mouse event to cycle outlines (bug#57813)

	(outline-minor-mode): In mode keymap bind
	'right/left-margin mouse-1' to outline-cycle, and
	'right/left-margin S-mouse-1' to outline-cycle-buffer.
	(outline-hide-subtree, outline-show-subtree): Add save-excursion
	to keep point unmoved after mouse click.
	(outline-cycle): Add optional arg 'event' like in
	outline-hide-subtree and outline-show-subtree, and
	add save-excursion to keep point unmoved after mouse click.
	(outline--make-button-overlay, outline--make-margin-overlay):
	Put overlay property 'evaporate' to t.
	(outline--insert-open-button, outline--insert-close-button):
	Remove temporary attempts to bind margin-local mouse events.

2022-09-20  Robert Pluim  <rpluim@gmail.com>

	Allow keymap to override advertised-binding in docstrings

	Previously

	(substitute-command-keys "\\<undo-repeat-map>\\[undo]")

	would use the global advertised-binding for `undo', even though
	there's a binding in `undo-repeat-map', which is highly
	counter-intuitive.  Now the binding is looked up in the specified
	keymap first.

	* lisp/help.el (substitute-command-keys): Restrict the initial key
	lookup to the specified keymap (if there is one).  (Bug#51384)

2022-09-20  Robert Pluim  <rpluim@gmail.com>

	Specify keymap in gnus-custom-mode docstring

	* lisp/gnus/gnus-cus.el (gnus-custom-mode): Put in the keymap to use,
	otherwise the bindings are looked up in the global map (where they
	don't exist).

2022-09-20  Drew Adams  <drew.adams@oracle.com>

	Tweak how use-region-p works with `use-empty-active-region'

	* lisp/simple.el (use-region-p): Don't report non-nil if the user
	has just clicked mouse-1 without extending the region (bug#51874).

2022-09-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Attempt to clarify Input Focus documentation

	* doc/lispref/frames.texi (Input Focus): Try to clarify the
	documentation (bug#51862).

2022-09-20  Gregory Heytings  <gregory@heytings.org>

	Improve display of advices on build failures.

	* Makefile.in: Use three leading '*' characters, and redirect to stderr.

2022-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/textmodes/tex-mode.el (tex-mode): Fix AUCTeX regression

	As discussed in
	https://lists.gnu.org/r/auctex/2022-08/msg00004.html
	AUCTeX installs its own advice to redefine `tex-mode`, and that
	advice used to take precedence before commit 6075a7c5ae3fa456cd.

2022-09-20  Michael Albinus  <michael.albinus@gmx.de>

	Wrap max-specpdl-size with with-no-warnings in Tramp

	* lisp/net/tramp-archive.el (max-specpdl-size):
	* lisp/net/tramp-gvfs.el (max-specpdl-size): Wrap with
	`with-no-warnings'.

2022-09-20  Robert Pluim  <rpluim@gmail.com>

	Add vc-annotate-switches to manual

	* doc/emacs/maintaining.texi (Old Revisions): Add description of
	`vc-annotate-switches' and `vc-BACKEND-annotate-switches'.

2022-09-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention compilation in the Package Installation node

	* doc/emacs/package.texi (Package Installation): Mention that
	packages are compiled (bug#51660).

2022-09-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow hl-line-mode so work when global-hl-line-mode is active

	* lisp/hl-line.el (hl-line-mode): Allow switching off the global
	mode in the current buffer (bug#51580).

2022-09-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Get fewer false positives for :keyword and &options

	* lisp/emacs-lisp/lisp-mode.el (lisp-mode--search-key): New
	function to check more carefully for start of :keywords and
	&options (bug#51574).
	(lisp-fdefs): Use it.

2022-09-20  Stefan Kangas  <stefankangas@gmail.com>

	Obsolete unused variable in debug.el

	* lisp/emacs-lisp/debug.el (debugger-previous-backtrace): Make
	unused variable obsolete.

2022-09-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Further ffap-read-file-or-url tweaks

	* lisp/ffap.el (ffap-read-file-or-url): Make this work for URLs
	again if you're using `ido-everywhere' (bug#57943).

2022-09-20  Robert Pluim  <rpluim@gmail.com>

	Remove mention of non-existent `annotate-switches'

	* lisp/vc/vc.el (vc-annotate-switches): Remove mention of
	`annotate-switches'.  As far as I can tell this has never existed in
	Emacs.

2022-09-20  Robert Pluim  <rpluim@gmail.com>

	Mention that src/macuvs.h sometimes needs committing

	* admin/notes/unicode: src/macuvs.h is generated, but needs to be
	committed sometimes.

2022-09-20  Stefan Kangas  <stefankangas@gmail.com>

	Use "set -o nounset" in bash scripts

	* admin/automerge:
	* admin/make-manuals:
	* admin/update-copyright:
	* admin/update_autogen:
	* admin/upload-manuals: Use "set -o nounset".

2022-09-20  Stefan Kangas  <stefankangas@gmail.com>

	Revert "Allow nil value for filter-buffer-substring-function"

	This reverts commit a7c65fc6660878e244432a5b25fb3a4ff20e8604.

2022-09-19  Po Lu  <luangruo@yahoo.com>

	Remove intern calls with a static string from haiku*.c

	* src/haikufns.c (Fx_show_tip, syms_of_haikufns):
	* src/haikufont.c (haikufont_maybe_handle_special_family)
	(syms_of_haikufont):
	* src/haikuterm.c (haiku_term_init, syms_of_haikuterm): Replace
	intern with real predefined symbols.

2022-09-19  F. Jason Park  <jp@neverwas.me>

	Bury new ERC buffers by default

	* lisp/erc/erc.el (erc-join-buffer): Change default value to `bury'.
	(erc-setup-buffer): Make `window-noselect' behave more like its
	description and abstain from ever replacing the current buffer.
	* test/lisp/erc/erc-scenarios-base-reconnect.el
	(erc-scenarios-common-base-reconnect-options): Update helper to handle
	new default value for option `erc-join-buffer'.
	(erc-scenarios-base-reconnect-options--buffer): Update and rename
	function `erc-scenarios-base-reconnect-options--default'.
	(erc-scenarios-base-reconnect-options--default): Update and rename
	function `erc-scenarios-base-reconnect-options--bury'.
	* etc/ERC-NEWS: Update existing display-buffers section for 5.5.
	(Bug#51753)

2022-09-19  F. Jason Park  <jp@neverwas.me>

	Offer to regexp-quote new items in erc-match commands

	* lisp/erc/erc-match.el (erc-match-quote-when-adding) Add new option
	to quote new items added to match lists.
	(erc-add-entry-to-list): Add optional `alt' parameter indicating
	whether to flip the behavior indicated by
	`erc-match-quote-when-adding'.
	(erc-add-pal, erc-add-fool, erc-add-keyword, erc-add-dangerous-host):
	Pass universal arg to `erc-add-entry-to-list' as `alt' argument.
	(erc-match-pal-p, erc-match-fool-p, erc-match-keyword-p,
	erc-match-dangerous-host-p): Don't bother matching when list is nil.

	* lisp/erc/erc.el (erc-list-match (lst str): Join input list as regexp
	union instead of looping over items.

	* etc/ERC-NEWS: Update misc-UX section for 5.5.

	* test/lisp/erc/erc-match-tests.el: New file. (Bug#56450)

2022-09-19  F. Jason Park  <jp@neverwas.me>

	Don't record undo history in erc-protocol buffers

	* lisp/erc/erc.el (erc-log-irc-protocol): Disable undo history.

2022-09-19  F. Jason Park  <jp@neverwas.me>

	Stabilize channels variant of erc-reuse-buffers test

	* lisp/erc/erc-networks.el (erc-networks--id-sort-buffers): Use
	`buffer-local-value' instead of `with-current-buffer'.

	* test/lisp/erc/erc-scenarios-base-reuse-buffers.el
	(erc-scenarios-common--base-reuse-buffers-channel-buffers): Wait for
	buffers to be created by server-initiated JOINs.
	(erc-scenarios-base-reuse-buffers-channel-buffers--disabled): Remove
	`:unstable' tag.

	* test/lisp/erc-tests.el (erc-ring-previous-command): Remove
	unnecessary `goto-char'.

2022-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Fix bug#57903

	Fall back to old slower calling convention in dynbound code (bug#56596).

2022-09-19  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline-open): Revert 'text' back to " open ".

	(outline-close): Revert 'text' back to " close ".
	(outline-close-rtl): Remove 'text' since it's inherited from the parent
	'outline-close'.

2022-09-19  Gregory Heytings  <gregory@heytings.org>

	Improve advices on build failures.

	* Makefile.in: Mention "make extraclean; make".  Mention mailing the
	bugtracker among the possible choices.  Fix typo.

2022-09-19  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline-minor-mode-use-margins): New user option.

	(outline--use-margins, outline--use-buttons, outline--use-rtl):
	New buffer-local internal variables.
	(outline-open, outline-close): Move :ascent center to default of define-icon.
	Use ASCII-art for text.  Fix docstring and help-echo.
	(outline-close-rtl, outline-open-in-margins)
	(outline-close-in-margins, outline-close-rtl-in-margins): New icon
	definitions.
	(outline-minor-mode-highlight-buffer): Remove outline--insert-open-button
	since initial outline--fix-up-all-buttons is added now to outline-minor-mode.
	(outline-minor-mode): Set buffer-local outline--use-buttons,
	outline--use-margins and outline--use-rtl.  Show/hide margins for
	outline--use-margins.  Add hook after-change-functions for editable buffers.
	Move outline--fix-up-all-buttons for both cases: font-lock and non-font-lock.
	(outline--use-buttons-p): Remove function.
	(outline--make-button-overlay): Use outline--use-rtl icon outline-close-rtl.
	(outline--make-margin-overlay): New function.
	(outline--insert-open-button, outline--insert-close-button): Add optional
	arg 'use-margins'.
	(outline--fix-up-all-buttons): Call outline--insert-close-button
	and outline--insert-open-button with arg outline--use-margins.
	(outline-cycle-buffer): Remove outline--fix-up-all-buttons
	that is already called from outline-flag-region.

	* lisp/emacs-lisp/icons.el (icons--create): Handle keywords :rotation
	and :ascent with the default value 'center (bug#57813).

	* doc/emacs/text.texi (Outline Mode): Mention outline-minor-mode-use-margins.

2022-09-19  Matthias Meulien  <orontee@gmail.com>

	Minor touch-ups of some recent OSC stuff

	* lisp/comint.el (comint-osc-handlers):
	(comint-osc-hyperlink-map): Use defvaralias (bug#57821).

	* lisp/osc.el: Fix some comments.

2022-09-19  Mauro Aranda  <maurooaranda@gmail.com>

	perl-mode: / is a regexp match if there's nothing before it

	* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
	A "/" that starts the first statement is a regexp match.  (Bug#997)
	* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-997): New
	test.

2022-09-19  Mattias Engdegård  <mattiase@acm.org>

	Abolish max-specpdl-size (bug#57911)

	The max-lisp-eval-depth limit is sufficient to prevent unbounded stack
	growth including the specbind stack; simplify matters for the user by
	not having them to worry about two different limits.  This change
	turns max-specpdl-size into a harmless variable with no effects,
	to keep existing code happy.

	* lisp/subr.el (max-specpdl-size):
	Define as an ordinary (but obsolete) dynamic variable.
	* admin/grammars/Makefile.in:
	* doc/lispintro/emacs-lisp-intro.texi (Loops & Recursion):
	* doc/lispref/control.texi (Cleanups):
	* doc/lispref/edebug.texi (Checking Whether to Stop):
	* doc/lispref/eval.texi (Eval):
	* doc/lispref/variables.texi (Local Variables):
	* doc/misc/calc.texi (Recursion Depth):
	Update documentation.
	* etc/NEWS: Announce.
	* src/eval.c
	(FletX): Use safe iteration to guard against circular bindings list.
	(syms_of_eval): Remove old max-specpdl-size definition.
	(init_eval_once, restore_stack_limits, call_debugger)
	(signal_or_quit, grow_specpdl_allocation):
	* leim/Makefile.in:
	* lisp/Makefile.in:
	* lisp/calc/calc-stuff.el (calc-more-recursion-depth)
	(calc-less-recursion-depth):
	* lisp/calc/calc.el (calc-do):
	* lisp/cedet/semantic/ede-grammar.el (ede-proj-makefile-insert-rules):
	* lisp/cedet/semantic/grammar.el (semantic-grammar-batch-build-one-package):
	* lisp/cus-start.el (standard):
	* lisp/emacs-lisp/comp.el (comp--native-compile):
	* lisp/emacs-lisp/edebug.el (edebug-max-depth):
	(edebug-read-and-maybe-wrap-form, edebug-default-enter):
	* lisp/emacs-lisp/regexp-opt.el (regexp-opt):
	* lisp/eshell/esh-mode.el (eshell-mode):
	* lisp/loadup.el (max-specpdl-size):
	* lisp/mh-e/mh-e.el (mh-invisible-headers):
	* lisp/net/shr.el (shr-insert-document, shr-descend):
	* lisp/play/hanoi.el (hanoi-internal):
	* lisp/progmodes/cperl-mode.el:
	* src/fileio.c (Fdo_auto_save):
	Remove references to and modifications of max-specpdl-size.

2022-09-19  João Távora  <joaotavora@gmail.com>

	Revert "fix jdtls support"

	This reverts commit e5b021c01fceea02b7e6622cde0a347b842ca6f3.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/1008

2022-09-19  João Távora  <joaotavora@gmail.com>

	Don't use three-argument plist-get

	* eglot.el (eglot-handle-request): Don't use three-argument
	plist-get.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/1024

2022-09-19  Stefan Kangas  <stefankangas@gmail.com>

	Allow nil value for filter-buffer-substring-function

	* lisp/simple.el
	(filter-buffer-substring): Support a nil value to be more resilient.
	(filter-buffer-substring-function): Doc fix; improve and update for
	above change.

2022-09-19  Stefan Kangas  <stefankangas@gmail.com>

	Support imenu in emacs-news-mode

	* lisp/outline.el (outline-imenu-generic-expression): New variable
	broken out from...
	(outline-mode): ...here.
	* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): Use
	above new variable to add imenu support.

2022-09-19  Eli Zaretskii  <eliz@gnu.org>

	Fix 'posn-at-point' around several 'display' properties

	* src/xdisp.c (pos_visible_p): Fix the case when CHARPOS is hidden
	by a display property, and its neighbors are also hidden.
	(Bug#45915)

2022-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/misc/eieio.texi (Introduction, Generics): Remove outdated limits

	Reported by Hokomo <hokomo@airmail.cc>.

2022-09-19  Philipp Stephani  <phst@google.com>

	Improve check for misleading 'cl-case' cases (Bug#57915).

	* lisp/emacs-lisp/cl-macs.el (cl-case): Check that the case is of the
	form (quote FOO), not just (quote).
	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-no-warning): New unit test.

2022-09-19  Michael Albinus  <michael.albinus@gmx.de>

	Revert change in Tramp inotifywait

	* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
	Revert use of "-P", it doesn't exist in older inotifywait versions.

	* test/lisp/filenotify-tests.el: Deactivate instrumentation.

2022-09-19  Stefan Kangas  <stefankangas@gmail.com>

	Prefer DE specific commands to set wallpaper

	* lisp/image/wallpaper.el (wallpaper--default-commands): Rearrange
	order to prioritize desktop environment specific commands before
	general Wayland commands like "wbg" or even "swaybg".  (Bug#57781)

2022-09-19  Stefan Kangas  <stefankangas@gmail.com>

	Avoid an unnecessary call to intern

	* src/doc.c (Fdocumentation): Prefer DEFSYM to using intern directly.

2022-09-19  Daniel Pettersson  <daniel@dpettersson.net>  (tiny change)

	Fix eshell directory and executable completion on action t

	* lisp/eshell/em-cmpl.el (eshell--pcomplete-executables): New
	function (bug#57905).
	(eshell--complete-commands-list): Use it.

2022-09-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't save bookmark context from encrypted files

	* doc/emacs/regs.texi (Bookmarks): Mention this.
	* lisp/bookmark.el (bookmark-make-record): Don't include context
	in encrypted files (bug#57856).

	* lisp/epa-hook.el (epa-file-name-p): New function.

2022-09-19  Gregory Heytings  <gregory@heytings.org>

	Revert 60de98f6f0 and b2d419ed5b.

2022-09-19  Po Lu  <luangruo@yahoo.com>

	* Makefile.in: Re-add warnings about "git clean -fdx"

2022-09-19  Po Lu  <luangruo@yahoo.com>

	Revert "; * Makefile.in: Partly revert 5b3c4004a9."

	This reverts commit e54da280ff4bf458c437f87dd64e848cdc75479c.

2022-09-19  Lars Ingebrigtsen  <larsi@gnus.org>

	make gen-clean remove some newly-added generated files

	* admin/unidata/Makefile.in (gen-clean): Remove some newly-added
	generated files.

2022-09-19  Gerd Möllmann  <gerd@gnu.org>

	MacOS ld warning from native compilation (bug#57849)

	* lisp/emacs-lisp/comp.el (native-comp-driver-options): Add "-Wl,-w"
	on Darwin systems.
	* etc/NEWS: Describe change.

2022-09-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a2f9788cbc ; Minor copyedits of *-frame-alist doc strings
	c200098dde ; * src/intervals.c (get_local_map): Fix commentary.
	69cc3d38bc Fix Tramp error with eshell integration

2022-09-18  Po Lu  <luangruo@yahoo.com>

	Remove calls to intern with a static string from code that runs on X

	* Makefile.in (actual-all): Reword build failure advice.

	* src/bytecode.c (exec_byte_code, syms_of_bytecode):
	* src/font.c (syms_of_font):
	* src/hbfont.c (uni_combining):
	* src/xfns.c (Fx_display_backing_store, Fx_display_visual_class)
	(x_create_tip_frame, Fx_show_tip, syms_of_xfns):
	* src/xfont.c (xfont_supported_scripts, xfont_driver)
	(syms_of_xfont):
	* src/xsmfns.c (Fhandle_save_session, syms_of_xsmfns): Remove
	calls to intern with a static string.

2022-09-18  Po Lu  <luangruo@yahoo.com>

	Get rid of intern calls to static strings in xterm.c

	* src/xterm.c (x_cr_export_frames): Use Qconcat instead of
	interning concat.
	(syms_of_xterm): New defsym Qconcat.

2022-09-18  Po Lu  <luangruo@yahoo.com>

	Fix GC protection of scroll bar windows

	* src/xterm.c (x_atom_refs): Add _EMACS prefix to
	vendor-specific scroll-bar atoms.
	(handle_one_xevent): Unprotect windows immediately upon
	receiving an _EMACS_SCROLLBAR event, instead of waiting for the
	event to be put on the keyboard buffer.  Reported by martin
	rudalics <rudalics@gmx.at>.

2022-09-18  Gregory Heytings  <gregory@heytings.org>

	Display a help message when building Emacs failed.

	* Makefile.in (actual-all): New target, replacing the former 'all'
	target.
	(advice-on-failure, sanity-check): New targets.
	(all): Use the new targets.
	(bootstrap-all): New target, identical to 'all' but meant for the
	'bootstrap' target in GNUmakefile.
	(actual-bootstrap): New target, replacing the former 'bootstrap'
	target.  Use the 'actual-all' target instead of the 'all' target.
	(bootstrap): Use the new targets.

	* GNUmakefile (bootstrap): Use the new 'bootstrap-all' target.

2022-09-18  Stefan Kangas  <stefankangas@gmail.com>

	Prefer using DEFSYMs to intern with wrong_type_argument

	* src/data.c (syms_of_data) <Qbooleanp>:
	* src/fileio.c (syms_of_fileio) <Qinserted_chars, Qfile_offset>:
	* src/font.c (syms_of_font) <Qfont_extra_type>: New DEFSYMs.
	* src/dbusbind.c (xd_signature, xd_append_arg):
	* src/fileio.c (file_offset, Finsert_file_contents):
	* src/font.c (Ffontp): Prefer using above new DEFSYMs to using intern
	directly.

2022-09-18  Michael Albinus  <michael.albinus@gmx.de>

	Minor Tramp cleanups

	* lisp/net/tramp-compat.el (tramp-compat-rx): Declare.

	* lisp/net/tramp-integration.el (info-lookup-maybe-add-help):
	Fix `rx' call.

2022-09-18  Michael Heerdegen  <michael_heerdegen@web.de>

	Turn gv-synthetic-place into a function

	This fixes Bug#57397.

	* lisp/emacs-lisp/gv.el (gv-synthetic-place): Make a function and add
	trivial compiler macro to avoid decreasing efficiency.

2022-09-18  Matthias Meulien  <orontee@gmail.com>

	Add NEWS entry for osc.el (bug#57821)

2022-09-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix osc.el compilation warning

	* lisp/osc.el (compilation-filter-start): Avoid compilation warning.

2022-09-18  Matthias Meulien  <orontee@gmail.com>

	OSC escape sequences filter for compilation buffer

	* lisp/osc.el (osc-control-seq-regexp): Regexp matching OSC control sequence.
	(osc-filter-region): Filter out OSC control sequences from region.
	(osc-for-compilation-buffer): Determines what to do with OSC escape
	sequences in compilation output.
	(osc-compilation-filter): Implement OSC escape sequence handling for
	compilation output (bug#57821).

2022-09-18  Matthias Meulien  <orontee@gmail.com>

	Handle OSC command to set window title

	* lisp/osc.el (osc-handlers): Bind osc-window-title-handler to OSC
	command 2.
	(osc-window-title): Local variable storing string extracted from OSC
	command 2.
	(osc-window-title-handler): Copy text from OSC command 2 to
	osc-window-title (bug#57821).

2022-09-18  Matthias Meulien  <orontee@gmail.com>

	Extract support of OSC escape sequences from comint

	* lisp/comint.el (osc): Now requires osc.el.
	(comint-osc-directory-tracker): Alias to osc-directory-tracker.
	(comint-osc-hyperlink-handler): Alias to osc-hyperlink-handler.
	(comint-osc-hyperlink-map): Alias to osc-hyperlink-map.
	(comint-osc-handlers): Alias to osc-handlers.
	(comint-osc-hyperlink): Alias to osc-hyperlink.
	(comint-osc-process-output): Rewritten to call osc-apply-on-region.
	* lisp/osc.el (osc-handlers): Clone comint-osc-handlers.
	(osc--marker): Clone comint-osc--marker.
	(osc-apply-on-region): Implementation taken from comint-osc-process-output.
	(osc-directory-tracker): Clone from comint-osc-directory-tracker.
	(osc-hyperlink-map): Clone from comint-osc-hyperlink-map.
	(osc-hyperlink): Clone from comint-osc-hyperlink.
	(osc-hyperlink--state): Clone from comint-osc-hyperlink--state.
	(osc-hyperlink-handler): Clone from comint-osc-hyperlink-handler.
	* test/lisp/osc-tests.el (osc): Test osc-apply-region (bug#57821).

2022-09-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the initial-frame-alist doc string

	* lisp/frame.el (initial-frame-alist): Clarify how to set this
	variable (bug#57890).

2022-09-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Restore the point after aborting an image crop

	* lisp/image/image-crop.el (image-crop): Restore point after
	aborted cropping (bug#57874).

2022-09-18  Augusto Stoffel  <arstoffel@gmail.com>

	pulse-momentary-highlight-one-line: Act on visual line

	* lisp/cedet/pulse.el (pulse-momentary-highlight-one-line):  Act on
	entire visual line, ignoring fields etc (bug#57876).

2022-09-18  Augusto Stoffel  <arstoffel@gmail.com>

	Remap 'up-list' in python-mode-map

	* lisp/progmodes/python.el (python-mode-map): Remap 'up-list' to
	'python-nav-up-list' (bug#57885).

2022-09-18  Augusto Stoffel  <arstoffel@gmail.com>

	Add new command python-shell-restart

	* lisp/progmodes/python.el (python-shell-restart): New command (bug#57885).

2022-09-18  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp error with eshell integration

	* lisp/net/tramp-integration.el (tramp-eshell-directory-change):
	Respect local `default-directory'.  (Bug#57556)

2022-09-18  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Don't require subr-x

	* lisp/image/image-dired-dired.el (subr-x):
	* lisp/image/image-dired.el (subr-x): Don't require, since string-join
	is now autoloaded.

2022-09-18  João Távora  <joaotavora@gmail.com>

	Don't return hash tables from e-w-configuration-plist

	* eglot.el (eglot-signal-didChangeConfiguration): Adjust.
	(eglot-handle-request workspace-configuration): Adjust.
	(eglot--workspace-configuration-plist): Don't return a hashtable.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/1033

2022-09-18  João Távora  <joaotavora@gmail.com>

	Allow eglot-workspace-configuration to be a plist

	Suggested-by: Augusto Stoffel <arstoffel@gmail.com>

	* NEWS.md: Mention change.

	* README.md (eglot-workspace-configuration): Update yet again.  Update
	examples to use pylsp.

	* eglot.el (eglot--workspace-configuration-plist): Noop if already
	a plist.
	(eglot-handle-request workspace/configuration): Use
	eglot--workspace-configuration-plist.
	(eglot-workspace-configuration): Document variable.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/590
	GitHub-reference: per https://github.com/joaotavora/eglot/issues/790
	GitHub-reference: per https://github.com/joaotavora/eglot/issues/1033

2022-09-18  João Távora  <joaotavora@gmail.com>

	Don't exceed max-specdl-size in big go projects

	When invoking client/registerCapability for
	workspace/didChangeWatchedFiles, Gopls lists each file to watch
	separately.  This makes eglot--glob-emit-{} emit a closure with an
	'or' form containing a potentially large number of 're-search-forward'
	forms.

	For large Go project such as "Kubernetes", this list becomes so large
	that -- for some reason I don't understand -- it triggers the
	'max-specdl-size' limit.

	An alternative using `regexp` opt doesn't seem to trigger the error.

	* eglot.el (eglot--glob-emit-{}): Use regexp-opt.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/633
	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/1067

2022-09-18  Po Lu  <luangruo@yahoo.com>

	Remove what should be unnecessary calls to block_input

	* src/xterm.c (handle_one_xevent): Do not block input inside.
	This function is not reentrant and is always called with input
	blocked.

2022-09-18  Gerd Möllmann  <gerd@gnu.org>

	Fix possible null pointer access

	* src/term.c (Ftty__output_buffer_size): Handle case of
	decode_tty_terminal returning NULL.

2022-09-18  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	50bb9ec84c ; * admin/admin.el (make-news-html-file): Fix typo.

2022-09-17  Sean Whitton  <spwhitton@spwhitton.name>

	vc-do-command: Actually include "torsocks" in the command

	* lisp/vc/vc-dispatcher.el (vc-do-command): When vc-tor is non-nil,
	actually include "torsocks" in the command to be run (bug#57870).

2022-09-17  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Display image on double click

	* lisp/image/image-dired.el (image-dired-thumbnail-mode-map):
	Display image on 'double-mouse-1'.

2022-09-17  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Remove spurious message on C-<mouse-1>

	* lisp/image/image-dired.el (image-dired-thumbnail-mode-map): Fix
	spurious message about C-<down-mouse-1> being undefined.

2022-09-17  João Távora  <joaotavora@gmail.com>

	Allow :initializationoptions in eglot-server-programs

	Also see https://github.com/joaotavora/eglot/issues/1038.

	This feature was poorly tested, and simply wouldn't work when trying
	to initialize the server object.

	The simple solution is to ignore :initializationOptions initarg in
	this context.  It is still stored separately as and accessed as the
	'eglot--saved-initargs' slot.

	Another complication arises in eglot--guess-contact, which tried too
	hard to be able to compose an interactive prompt (when the server
	program can't be found).  The solution is just to give up when
	:autoport or :initializationOptions is found.  It's not easy or
	practical to have the user provide non-string arguments via a string
	interface like the minibuffer.

	* eglot.el (initialize-instance :before eglot-lsp-server): Don't pass
	:initializationOptions initarg onward.
	(eglot--guess-contact): Simplify.  Don't try heroics with
	:autoport and :initializationOptions.

	* eglot-tests.el (eglot-server-programs-simple-missing-executable):
	  Update test.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/940

2022-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Increase image-dired-thumb-size to 128

	* lisp/image/image-dired.el (image-dired-thumb-size): Increase default
	to 128.

2022-09-17  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Change some custom types to natnum

	* lisp/image/image-dired.el (image-dired-thumb-size)
	(image-dired-thumb-relief, image-dired-thumb-margin)
	(image-dired-thumbs-per-row, image-dired-thumb-width)
	(image-dired-thumb-height): Change :type to natnum.

2022-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Make `image-dired-thumb-(height|width)' obsolete

	* lisp/image/image-dired.el (image-dired-thumb-width)
	(image-dired-thumb-height): Make obsolete.
	(image-dired-thumb-size): Clean up and improve docstring.
	* lisp/image/image-dired-external.el (image-dired-thumb-size): Use
	'image-dired-thumb-size' instead of above obsolete variables.
	(image-dired-create-thumb-1): Support %s format specifier for size.
	(image-dired-cmd-create-thumbnail-options): Document %s format
	specifier.
	(image-dired--thumb-size): Rename function from
	'image-dired-thumb-size' and make old name into an obsolete alias.
	Update all callers.

2022-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Simplify image-dired-thumbnail-storage customization

	* lisp/image/image-dired.el (image-dired-dir): Improve docstring.
	(image-dired-thumbnail-storage): Change default to `image-dired',
	maintain `use-image-dired-dir' for backwards compatibility.
	* lisp/image/image-dired-util.el (image-dired-thumb-name): Handle
	above new default value.

2022-09-17  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/image/image-dired.el: Bump version for Emacs 29.

2022-09-17  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	Fix rare shaping problems with Urdu and Arabic

	* src/composite.c (fill_gstring_body): Clear unused slots of the
	gstring.  (Bug#50951)

2022-09-17  Gerd Möllmann  <gerd@gnu.org>

	Optimize tty display updates (bug#57727)

	* src/dispnew.c (update_frame_1): Don'f flush if tty's
	output_buffer_size is non-zero.
	* src/sysdep.c (init_sys_modes): Setvbuf depending on the tty's
	output_buffer_size.
	* src/term.c (Ftty__set_output_buffer_size, Ftty__output_buffer_size):
	Low-level interface for setting and retrieving a tty's output buffer
	size.
	(syms_of_term): Defsubr the new functions.
	* src/termchar.h (struct tty_display_info): New member
	output_buffer_size.
	* etc/NEWS: Describe the change.

2022-09-17  Michael Albinus  <michael.albinus@gmx.de>

	Fix recent filenotify-tests changes

	* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
	Use "-P".

	* test/lisp/filenotify-tests.el (file-notify-test11-symlinks):
	Adapt test.

2022-09-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Autoload string-join

	* lisp/emacs-lisp/subr-x.el (string-join): Autoload since it's
	being used more now.

2022-09-17  Gregory Heytings  <gregory@heytings.org>

	Further improvements to admin/emake.

	* admin/emake: Better parsing of script options.  Add a --quieter option,
	which removes everything except errors.

2022-09-17  João Távora  <joaotavora@gmail.com>

	Adjust last commit about workspace configuration

	* README.md (way): Adjust.

	* eglot.el (json): Don't require needlessly.
	(eglot-show-workspace-configuration): Don't depend on json-mode.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/790
	GitHub-reference: per https://github.com/joaotavora/eglot/issues/590

2022-09-17  Po Lu  <luangruo@yahoo.com>

	Fix MPX focus tracking upon frame deletion

	* src/xterm.c (x_free_frame_resources): Consider focus change
	after.

2022-09-17  Eli Zaretskii  <eliz@gnu.org>

	Fix running spell-checking in remote buffers

	* lisp/textmodes/ispell.el (ispell-with-safe-default-directory):
	Don't use remote 'default-directory' when running the speller.
	(Bug#57649)

2022-09-17  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Update Unicode support to Unicode version 15.0.0 (bug#57846)

	* admin/unidata/BidiBrackets.txt
	* admin/unidata/BidiMirroring.txt
	* admin/unidata/Blocks.txt
	* admin/unidata/IVD_Sequences.txt
	* admin/unidata/IdnaMappingTable.txt
	* admin/unidata/NormalizationTest.txt
	* admin/unidata/PropertyValueAliases.txt
	* admin/unidata/ScriptExtensions.txt
	* admin/unidata/Scripts.txt
	* admin/unidata/SpecialCasing.txt
	* admin/unidata/UnicodeData.txt
	* admin/unidata/confusables.txt
	* admin/unidata/copyright.html
	* admin/unidata/emoji-data.txt
	* admin/unidata/emoji-sequences.txt
	* admin/unidata/emoji-test.txt
	* admin/unidata/emoji-zwj-sequences.txt
	* test/manual/BidiCharacterTest.txt: Updated files from Unicode
	15.0.

	* admin/unidata/unidata-gen.el (unidata-file-alist): Add new ranges.

	* lisp/international/fontset.el (script-representative-chars): Add
	new scripts.
	(otf-script-alist): Update from latest version.
	(setup-default-fontset): Add new scripts.
	* lisp/international/characters.el: Update syntax and category
	tables for new characters and scripts.
	(char-width-table): Update for changes in Unicode 15.0.

	* test/lisp/international/ucs-normalize-tests.el
	(ucs-normalize-tests--failing-lines-part1)
	(ucs-normalize-tests--failing-lines-part2): Update per the test
	results.

	* doc/lispref/nonascii.texi (Character Properties): Update Unicode
	version number.

	* etc/NEWS: Announce support for Unicode 15.0.

2022-09-17  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	320f0cac80 ; * etc/NEWS: Fix typo.
	5dbe4fa64a Simplify regexp in make-news-html-file
	069ffbda09 * admin/admin.el (make-news-html-file): Set id on correct ...
	bcc84ac7fe Add version headlines to HTML NEWS export
	5d227ae83e ; * etc/NEWS: Fix formatting.

	# Conflicts:
	#	etc/NEWS

2022-09-16  João Távora  <joaotavora@gmail.com>

	Rework readme.md about workspace configuration again

	Also tweak eglot-show-workspace-configuration a bit.

	* README.md (Workspace configuration): Rework.

	* eglot.el (eglot-show-workspace-configuration): Rework.
	(eglot--workspace-configuration-plist): New helper.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/590

2022-09-16  Fredrik Bergroth  <fbergroth@gmail.com>

	Add eglot-show-configuration to debug workspace configurations

	Also see https://github.com/joaotavora/eglot/issues/790, https://github.com/joaotavora/eglot/issues/1033.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/590

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Simplify regexp in make-news-html-file

	* admin/admin.el (make-news-html-file): Simplify regexp.
	Suggested by Mattias Engdegård <mattiase@acm.org>.

2022-09-16  Gregory Heytings  <gregory@heytings.org>

	Various improvements to admin/emake.

	* admin/emake: Return the status code of make when the build fails.
	Filter the output of emake *clean.  Add three options --no-color
	(useful for emake check for example), --no-check (useful for quicker
	builds during development) and --no-fast.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Support XFCE in wallpaper.el

	* lisp/image/wallpaper.el (wallpaper--default-commands)
	(wallpaper-command): Support XFCE.  (Bug#57781)
	Thanks to Thierry Volpiatto <thievol@posteo.net>.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Accept more wide function signatures in docstrings

	* test/lisp/emacs-lisp/bytecomp-tests.el
	("warn-wide-docstring-ignore-function-signature.el"): New test.
	* lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p):
	Make regexp more allowing to silence warning.
	* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-function-signature.el:
	New file.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Add support for PDF files (Bug#26432)

	* lisp/image/image-dired.el
	(image-dired--file-name-regexp): New function.
	(image-dired-display-thumbnail-original-image): Clean up.
	(image-dired-display-image): Support visiting PDF files.
	* lisp/image/image-dired-dired.el
	(image-dired-dired-toggle-marked-thumbs):
	* lisp/image/image-dired.el (image-dired-get-thumbnail-image)
	(image-dired-show-all-from-dir): Use above new function instead of
	'image-file-name-regexp'.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Print command when debugging

	* lisp/image/image-dired-external.el (image-dired-create-thumb-1):
	Display command and arguments when debugging.
	* lisp/image/image-dired-util.el (image-dired-debug): Rename from
	'image-dired-debug-message'.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Delete mystery code from cperl-mode.el

	* lisp/progmodes/cperl-mode.el: Delete commented out code referring to
	some 'edit-var-mode-alist' that we don't think is used for anything.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Delete some commented out code in cperl-mode.el

	The differences between this and the existing `cperl-ps-print-init'
	are that some faces had been moved from italic to bold or vice versa,
	and that there were some obsolete or non-existent face names
	mentioned.  So there is no point to keeping it given that it's been
	commented out since 1999.

	* lisp/progmodes/cperl-mode.el: Delete code commented out since 1999:
	a slightly different, duplicate definition of `cperl-ps-print-init'.

2022-09-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix last occurrence of `font-lock-reference-face`

	Well... except for CC-mode.

	* lisp/cedet/semantic/grammar.el (semantic-grammar-mode-keywords-1):
	Redirect reference to obsolete `font-lock-reference-face` to
	`font-lock-constant-face`.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	* admin/admin.el (make-news-html-file): Set id on correct tag.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Add version headlines to HTML NEWS export

	This allows linking to, e.g. "NEWS.28.html#28.1" to go directly to
	those release notes.
	* admin/admin.el (admin--org-export-headers-format)
	(make-news-html-file): Add XX.Y version headlines with an HTML anchor.

2022-09-16  Mattias Engdegård  <mattiase@acm.org>

	* lisp/subr.el (list-of-strings-p): Declare pure and error-free

2022-09-16  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el: Optimize performance of S-TAB (bug#57813)

	(outline-hide-subtree): Don't call outline--insert-close-button, because
	it's handled by outline--fix-up-all-buttons called from outline-flag-region.
	(outline-show-subtree): Don't call outline--insert-open-button, same reason.
	(outline--fix-up-all-buttons): Check invisible outlines explicitly instead of
	using slow outline--cycle-state.

2022-09-16  Michael Albinus  <michael.albinus@gmx.de>

	Enable `dont-follow' for inotify file notifications

	* doc/lispref/os.texi (File Notifications): Symlinks aren't followed.

	* lisp/filenotify.el (file-notify--add-watch-inotify):
	Add `dont-follow' flag.

	* lisp/net/tramp.el (tramp-handle-file-notify-rm-watch):
	Suppress errors when reading process output.

	* test/lisp/filenotify-tests.el (file-notify-test11-symlinks)
	(file-notify-test11-symlinks-remote): New tests.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Use substitute-command-keys in some vc messages

	* lisp/vc/vc-dispatcher.el (vc-start-logentry):
	* lisp/vc/vc.el (vc-steal-lock): Use substitute-command-keys.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f232d989fd Improve HTML export of NEWS file
	397890ba77 Delete "etc/NEWS*.html" from .gitignore
	70ca5f6524 ; * etc/NEWS: Fix typos.
	19de241a7d Recommend NonGNU ELPA over MELPA
	f25f9dbf30 Minor doc fixes in picture.el
	520b041b54 * lisp/textmodes/page-ext.el: Improve Commentary.

	# Conflicts:
	#	etc/NEWS

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Improve HTML export of NEWS file

	* admin/admin.el (admin--org-export-headers-format)
	(admin--org-html-postamble): New variables.
	(admin--require-external-package): New function.
	(make-news-html-file): Improve HTML export.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Add command to delete temporary markers in NEWS

	* lisp/textmodes/emacs-news-mode.el
	(emacs-news-delete-temporary-markers): New command.
	* admin/make-tarball.txt: Update instructions.

2022-09-16  Alan Mackenzie  <acm@muc.de>

	cc-fonts.el: Eliminate an Emacs compiler warning introduced yesterday.

	* lisp/progmodes/cc-fonts.el (top level): Introduce a cc-bytecomp-defvar for
	font-lock-reference-face.

2022-09-16  Mattias Engdegård  <mattiase@acm.org>

	Faster and more robust list-of-strings-p

	* lisp/subr.el (list-of-strings-p): Speed up by a factor 4 (approx.)
	and don't crash on dotted lists.
	* test/lisp/subr-tests.el (test-list-of-strings-p): Extend test.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Delete "etc/NEWS*.html" from .gitignore

	We actually do want to see it when preparing a release, so that we
	don't include it in a tarball by mistake.
	* .gitignore: Don't ignore "etc/NEWS*.html".

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Recommend NonGNU ELPA over MELPA

	* doc/misc/org.org (Using CDLaTeX to enter math, Footnotes): Recommend
	NonGNU ELPA over MELPA.

2022-09-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix *Help* output for native-comp functions from IELM

	* lisp/help-fns.el (find-lisp-object-file-name): Don't claim that
	native-comp functions that are defined outside of files (for
	instance, created by calling `native-compile' in IELM) are in C
	source (bug#57819).

2022-09-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-09-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Inhibit image-mode resizing in the minibuffer

	* lisp/image-mode.el (image-fit-to-window): Don't resize when in
	the minibuffer (bug#57823).

2022-09-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix cperl list indentation problem

	* lisp/progmodes/cperl-mode.el (cperl-calculate-indent): Indent
	foo:bar() in lists correctly (bug#57829).

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in picture.el

	* lisp/textmodes/picture.el (picture-mode-map): Prefer defvar-keymap.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	Minor doc fixes in picture.el

	* lisp/textmodes/picture.el: Improve Commentary.
	(picture-forward-column, picture-backward-column)
	(picture-move-down, picture-move-up, picture-movement-nw)
	(picture-movement-ne, picture-movement-sw, picture-movement-se)
	(picture-set-motion, picture-clear-line, picture-newline)
	(picture-tab, picture-yank-rectangle)
	(picture-yank-rectangle-from-register, picture-insert-rectangle)
	(picture-draw-rectangle): Minor doc fixes.

2022-09-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't use autoloaded functions for safe-local-variable

	* doc/lispref/symbols.texi (Standard Properties): Clarify how
	safe-local-variable should look.

	* lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-lisp-words)
	(checkdoc-symbol-words): Use list-of-strings-p.
	(checkdoc-list-of-strings-p): Obsolete.

	* lisp/vc/vc-git.el (vc-git-annotate-switches): Remove.
	(vc-git-annotate-switches): Open-code the check.

2022-09-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new predicate list-of-strings-p

	* lisp/subr.el (list-of-strings-p): New function.

2022-09-16  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/textmodes/page-ext.el: Improve Commentary.

2022-09-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix sorting of backends in vc-responsible-backend

	* lisp/vc/vc.el (vc-responsible-backend): When comparing directory
	names, expand them first so that we get consistent sorting of ~/
	etc (bug#57777).

2022-09-16  Po Lu  <luangruo@yahoo.com>

	Fix icon spec for outline icons

	* lisp/outline.el (outline-open):
	(outline-close): Fix listing of multiple images.  Reported by
	Lars Ingebrigtsen <larsi@gnus.org>.

2022-09-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename `image-elide' to `image-cut' and add more bindings

	* doc/lispref/display.texi (Showing Images): Update.
	* lisp/image.el (image-map): Move binding to mirror Gimp bindings.

	* lisp/image/image-crop.el (image-crop-cut-command): Rename.
	(image-cut-color): New user option.
	(image-cut): Rename and remove prefix.
	(image-crop): Remove prefix.
	(image-crop--crop-image-update): Add commands to switch to
	move/square modes.

2022-09-16  Po Lu  <luangruo@yahoo.com>

	Fix wrong source window being generated for XDND leave events

	* src/xterm.c (x_dnd_update_state, handle_one_xevent): Let
	x_dnd_last_seen_toplevel remain at its old value until any
	XdndLeave event was definitely sent.

2022-09-16  Po Lu  <luangruo@yahoo.com>

	Avoid asserting for fontset validity before it is used

	* src/fontset.c (face_for_char): Move `eassert' to before the
	fontset is really used.  Suggested by Eli Zaretskii
	<eliz@gnu.org>

2022-09-16  Po Lu  <luangruo@yahoo.com>

	Add portable versions of the outline SVGs

	* lisp/outline.el (outline-open):
	(outline-close): Add PBM images.

	* etc/images/outline-open.pbm:
	* etc/images/outline-close.pbm: New images used on systems
	without librsvg.

2022-09-16  Juri Linkov  <juri@linkov.net>

	Add outline open/close images (bug#57813)

	* etc/images/outline-open.svg:
	* etc/images/outline-close.svg: New files.

	* lisp/outline.el (outline-open, outline-close): Use images
	outline-open.svg and outline-close.svg.

	* lisp/emacs-lisp/icons.el (icons--create): Add :ascent 'center'.

2022-09-16  Gerd Möllmann  <gerd@gnu.org>

	Fix crash in GC on macOS (bug#57751)

	* src/nsterm.m ([EmacsView windowDidMove:]): Initialize input_event.

2022-09-15  Peter Münster  <pm@a16n.net>

	image-dired: Fix thumbnail options for gm

	* lisp/image/image-dired-external.el
	(image-dired-cmd-create-standard-thumbnail-options): Fix options for
	"gm" (GraphicsMagick).  (Bug#52200)

2022-09-15  Stefan Kangas  <stefankangas@gmail.com>

	Improve image-dired-display-properties-format

	* lisp/image/image-dired.el
	(image-dired-display-properties-format): Change default format,
	improve docstring and add :safe property

2022-09-15  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Show header line on start

	* lisp/image/image-dired.el (image-dired-show-all-from-dir): Update
	header line, to ensure that it is immediately visible on start.

2022-09-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	combine-change-calls-1: Fix case where `body` also changes other bufs

	* lisp/subr.el (combine-change-calls-1): Only set the current buffer's part
	of the `*-change-functions` hooks.

2022-09-15  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Fix performance bug with mouse click

	* lisp/image/image-dired.el
	(image-dired--on-file-in-dired-buffer): Move call to
	'image-dired-thumb-update-marks' from here...
	(image-dired--do-mark-command): ...to here.  Add new optional
	argument UPDATE to control calling it.  Update callers.
	(image-dired-mouse-toggle-mark-1): Fix performance bug by setting
	above new optional argument to nil.  (Bug#53599)

2022-09-15  Stefan Kangas  <stefankangas@gmail.com>

	Make image-dired-toggle-mark-thumb-original-file obsolete

	* lisp/image/image-dired.el
	(image-dired-toggle-mark-thumb-original-file): Make obsolete.
	(image-dired-mouse-toggle-mark-1): Don't use above obsolete
	function.

2022-09-15  Mattias Engdegård  <mattiase@acm.org>

	Include nil as valid wallpaper-command

	* lisp/image/wallpaper.el (wallpaper-command):
	Include nil in the type since that is a valid value for the variable,
	and may be the default value.  This should fix test-custom-opts.

2022-09-15  Alan Mackenzie  <acm@muc.de>

	CC Mode: Handle C++20 modules

	* lisp/progmodes/cc-engine.el (c-before-after-change-check-c++-modules): New
	function.
	(c-forward-<>-arglist): Add special handling for "import <...>".

	* lisp/progmodes/cc-fonts.el (c-preprocessor-face-name): Add extra "fallback"
	face after font-lock-reference-face, namely font-lock-constant-face.
	(c-cpp-matchers): Don't fontify the <> delimiters for XEmacs in #include <..>.
	(c-basic-matchers-before): Add c-font-lock-c++-modules to the C++ value.
	(c-forward-c++-module-name, c-forward-c++-module-partition-name)
	(c-font-lock-c++-modules): New functions.

	* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions)
	(c-before-font-lock-functions): Include
	c-before-after-change-check-c++-modules in the C++ value of these variables.
	(c-module-name-re): New c-lang-const/var.
	(c-other-decl-kwds): Add a C++ value "export".
	(c-<>-sexp-kwds): Add a new component c-import-<>-kwds.
	(c-import-<>-kwds, c-module-kwds): New c-lang-consts.
	(c-module-key): New c-lang-const/var.

2022-09-15  Stefan Kangas  <stefankangas@gmail.com>

	Document MS-Windows support in wallpaper.el

	* lisp/image/wallpaper.el: Add MS-Windows to Commentary.
	(wallpaper-command, wallpaper-command-args, wallpaper-set):
	Document MS-Windows support.

2022-09-15  Stefan Kangas  <stefankangas@gmail.com>

	Improve error when wallpaper-command is nil

	* lisp/image/wallpaper.el (wallpaper-set): Improve the error message
	when 'wallpaper-command' is nil.

2022-09-15  Stefan Kangas  <stefankangas@gmail.com>

	Support macOS in wallpaper.el

	* lisp/image/wallpaper.el (wallpaper--default-commands)
	(wallpaper-command): Support macOS using "osascript".
	(wallpaper-set): Display image name when wallpaper-debug is t.

2022-09-15  Juri Linkov  <juri@linkov.net>

	Fix outline image icon display (bug#57813)

	* lisp/outline.el (outline--make-button-overlay): Don't overwrite
	image display with string display when image exists.
	(outline--fix-up-all-buttons): Optimize.

2022-09-15  Eli Zaretskii  <eliz@gnu.org>

	Implement support for 'wallpaper-set' on MS-Windows

	* src/w32fns.c (Fw32_set_wallpaper): New primitive.
	(syms_of_w32fns): Defsubr it.
	(globals_of_w32fns): Attempt to load SystemParametersInfoW from
	its DLL at run time.

	* lisp/image/wallpaper.el (wallpaper-set): Support MS-Windows by
	calling 'w32-set-wallpaper'.

	* etc/NEWS: Update and simplify wording of the 'wallpaper-set'
	entry.

2022-09-15  Stefan Kangas  <stefankangas@gmail.com>

	Add rudimentary font-locking to edit-abbrevs-mode

	* lisp/abbrev.el (abbrev-table-name): New face.
	(edit-abbrevs-mode-font-lock-keywords): New defvar.
	(edit-abbrevs-mode): Support font-locking.

2022-09-15  Mattias Engdegård  <mattiase@acm.org>

	Use `eql` or `eq` instead of `=` in some places

	For a switch op to be generated, comparisons must be made using `eq`,
	`eql` or `equal`, not `=`.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	* lisp/files.el (file-modes-char-to-who, file-modes-char-to-right):
	* lisp/international/titdic-cnv.el (tit-process-header):
	* lisp/language/ethio-util.el (ethio-input-special-character)
	(ethio-fidel-to-tex-buffer):
	* lisp/language/lao.el (consonant):
	Use `eq` or `eql` instead of `=`.

	In these cases either `eq` or `eql` would do and the choice does not
	affect the resulting code.  We compare numbers with `eql` and
	characters with `eq` as a matter of style.

2022-09-15  Mattias Engdegård  <mattiase@acm.org>

	Simplify and shrink reader buffers

	A big on-stack buffer in a potentially long-running function can
	interact badly with the GC's conservative scanning of the C stack.
	It may make the scanning slower (since the stack frame is big) and
	risks accidental retention of objects from stack detritus
	(because the buffer isn't cleaned on entry).

	* src/lread.c (stackbufsize): Remove.
	(read_integer, read_string_literal, read_bool_vector): Use a local
	buffer instead of piggy-backing on that in read0.
	(read0): Reduce buffer to something suitable for most identifiers and
	numbers.

2022-09-15  Mattias Engdegård  <mattiase@acm.org>

	mapconcat fast path with `identity` function argument

	This makes (mapconcat #'identity SEQ) slightly faster than
	(apply #'concat SEQ), which used to be much faster.
	Notably, `string-join` benefits from this change as it uses mapconcat.

	* src/fns.c (Fmapconcat): Speed up execution when the function
	argument is `identity`.

2022-09-15  Po Lu  <luangruo@yahoo.com>

	More fixes for XDND proxy support

	* src/xterm.c (handle_one_xevent): Check replies against
	toplevel, not proxy.

2022-09-15  Stefan Kangas  <stefankangas@gmail.com>

	Use substitute-command-keys in proced-help

	* lisp/proced.el (proced-help-string, proced-help): Use
	substitute-command-keys.

2022-09-15  Eli Zaretskii  <eliz@gnu.org>

	Revert "; Fix doc string of 'loaddefs-generate'"

	This reverts commit 5fe9a1a85ae6d54196031157a735352f6ab655ff.
	It included unrelated changes.

2022-09-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	5543aea1b2 Automate exporting etc/NEWS to HTML
	23a91163ed * Makefile.in (uninstall): Remove the *.eln files.  (Bug#5...

2022-09-14  Jim Porter  <jporterbugs@gmail.com>

	Allow using a symbol as an index into an alist in Eshell

	* lisp/eshell/esh-var.el (eshell-index-value): If INDEX is a symbol,
	use 'assoc' for indexing.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-assoc)
	(esh-var-test/quoted-interp-var-assoc): Add checks for indexing via
	symbol (bug#57787).

2022-09-14  Sean Whitton  <spwhitton@spwhitton.name>

	Use '^' key for detach command bindings

	* lisp/tab-bar.el (tab-prefix-map): Move tear-off-window to C-x w ^ f.
	Bind tab-window-detach to C-x w ^ t.
	* lisp/window.el (window-prefix-map): Bind tab-detach to C-x t ^ f.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Add image-transform-reset-to-original to manual

	* doc/emacs/files.texi (Image Mode):
	Add 'image-transform-reset-to-original'.
	Suggested by Juri Linkov <juri@linkov.net>.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Support fbsetbg in wallpaper.el

	* lisp/image/wallpaper.el (wallpaper--default-commands)
	(wallpaper-command): Add "fbsetbg".

2022-09-14  Augusto Stoffel  <arstoffel@gmail.com>

	pcomplete: Generate completions from --help messages

	* lisp/pcomplete.el (pcomplete-from-help): New function (and hash
	table) to get pcomplete candidates from help messages.
	(pcomplete-here-using-help): Helper function to define pcomplete for
	simple commands
	(pcomplete-completions-at-point): Provide annotation-function and
	company-docsig properties.
	* lisp/pcmpl-git.el: New file, provides pcomplete for Git.
	* lisp/pcmpl-gnu.el: Add pcomplete for awk, gpg and gdb, emacs and
	emacsclient.
	* lisp/pcmpl-linux.el: Add pcomplete for systemctl and journalctl.
	* lisp/pcmpl-rpm.el: Add pcomplete for dnf.
	* lisp/pcmpl-unix.el: Add pcomplete for sudo and most commands found
	in GNU Coreutils.
	* lisp/pcmpl-x.el: Add pcomplete for tex, pdftex, latex, pdflatex,
	rigrep and rclone.
	* test/lisp/pcomplete-tests.el (pcomplete-test-parse-gpg-help,
	pcomplete-test-parse-git-help): Tests for the new functions.

2022-09-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow specifying the color to use in image-elide

	* lisp/image/image-crop.el (image-crop-elide-command): Adjust to
	allow specifying the color.
	(image-elide): Prompt for a color.
	(image-crop--crop-image-update): Pass the color along.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Automate exporting etc/NEWS to HTML

	* admin/admin.el (make-news-html-file): New function.
	* .gitignore: Ignore generated "etc/NEWS*.html" file.

2022-09-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Make image-crop variables into user options

	* lisp/image/image-crop.el (image-crop): New group.
	(image-crop-crop-command, image-crop-resize-command)
	(image-crop-elide-command, image-crop-crop-command): Make into
	defcustoms.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Support hsetroot in wallpaper.el

	* lisp/image/wallpaper.el (wallpaper--default-commands)
	(wallpaper-command): Add "hsetroot".

2022-09-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-09-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Speed up Emacs build by autoloading vc-git-annotate-switches-safe-p

	* lisp/vc/vc-git.el (vc-git-annotate-switches-safe-p): Put the
	definition into the loaddefs file.

2022-09-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix image-mode.el compilation

	* lisp/image/image-crop.el (text-property-search): Require.

2022-09-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Make image cropping work in image-mode buffers

	* lisp/image-mode.el (image-mode): Update the buffer text after
	cropping (bug#57793).

2022-09-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't alter the buffer contents in image-crop by default

	* lisp/image/image-crop.el (image-crop-buffer-text-function):
	Allow modes to alter the textual representation.
	(image-crop): Delete the complete image data without assuming it's
	all on one line (which isn't the case in image-mode, for instance).
	(image-crop--crop-image-update, image-crop--insert-image-data):
	Use image-crop-buffer-text-function.
	(image-crop--default-buffer-text): New default action -- don't
	alter the buffer contents (bug#57793).

2022-09-14  Mattias Engdegård  <mattiase@acm.org>

	Raise default max-specpdl-size and max-lisp-eval-depth

	Recent changes have caused bootstrapping to fail for certain
	configurations, and it was likely getting close to the limits
	for others.  This change raises the limits to those previously
	used when configured for nativecomp:

	  max-specpdl-size raised from 1800 to 2500
	  max-lisp-eval-depth raised from 800 to 1600

	* src/eval.c (init_eval_once): Raise limits.
	* doc/lispref/eval.texi (Eval):
	* doc/lispref/variables.texi (Local Variables): Document new values.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Rename image transform commands to be less confusing

	* lisp/image-mode.el
	(image-transform-original): Rename from this...
	(image-transform-reset-to-original): ...to this.  Make old name
	into an obsolete function alias and update all callers.
	(image-transform-reset): Rename from this...
	(image-transform-reset-to-initial): ...to this.  Make old name
	into an obsolete function alias and update all callers.
	(Bug#51451)
	* doc/emacs/files.texi (Image Mode): Update for above change.

2022-09-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove the save-match-data from shell-command

	* lisp/simple.el (shell-command): Remove save-match-data, since
	we're (in many cases) altering the match data earlier in the
	function anyway (bug#57795).

2022-09-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix textsec-suspicious foreground color

	* lisp/international/textsec-check.el (textsec-suspicious): Set
	the foreground, too (bug#57796).

2022-09-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Also use eww URL transformers in the actual links

	* lisp/net/eww.el (eww-mode): Use it to transform URLs
	(bug#57796).

	* lisp/net/shr.el (shr-url-transformer): New variable.
	(shr-tag-a): Use it.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Add new command image-mode-wallpaper-set

	* lisp/image-mode.el (wallpaper): Require.
	(image-mode-wallpaper-set): New command.
	(image-mode-map): Bind above new command to "W".

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Add :type to wallpaper-command

	* lisp/image/wallpaper.el (wallpaper-command): Make it easier to
	customize by adding a :type declaration covering all supported values.

2022-09-14  Evan Klitzke  <evan@eklitzke.org>  (tiny change)

	Add consteval and constinit keywords to cc-mode

	* lisp/progmodes/cc-langs.el (c-modifier-kwds): Add consteval and
	constinit keywords (introduced in C++20) (bug#51092).

2022-09-14  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (uninstall): Remove the *.eln files.  (Bug#57771)

2022-09-14  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix more misleading cl-case quoting in tests

	* test/lisp/dnd-tests.el (x-begin-drag):
	* test/lisp/so-long-tests/so-long-tests-helpers.el
	(so-long-tests-assert-active, so-long-tests-assert-reverted): Remove
	misleading quoting in cl-case clauses (bug#51368).

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Make it easier to customize wallpaper command

	* lisp/image/wallpaper.el
	(wallpaper--default-commands): New defvar.
	(wallpaper--find-command): Use above new defvar.
	(wallpaper--find-command-arguments): New defun.
	(wallpaper-command): Rename from 'wallpaper-commands' and change
	type to string.  Use 'wallpaper--find-command' to set it.
	(wallpaper-command-args): New defcustom.  Use
	'wallpaper--find-command-arguments' to set it.
	(wallpaper--set-wallpaper-command): New defun.  Use as :set property
	for 'wallpaper-command'.
	(wallpaper-set): Use above new defcustoms to set the wallpaper.
	Suggested by Eli Zaretskii <eliz@gnu.org>.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Improve wallpaper.el docs for recent changes

	* lisp/image/wallpaper.el: Fix documentation to better reflect that no
	external command is needed on Haiku.
	* etc/NEWS: Update entry on wallpaper.el.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Allow setting wallpaper from TTY

	* lisp/image/wallpaper.el (wallpaper-set): Allow setting wallpaper
	when 'display-graphic-p' is nil.
	(wallpaper-default-width, wallpaper-default-height):
	New variables.
	(wallpaper--get-height-or-width): New helper function.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/image/wallpaper.el (wallpaper-commands): Add xwallpaper.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Support recent KDE Plasma in wallpaper.el

	* lisp/image/wallpaper.el (wallpaper-commands): Support recent KDE
	Plasma.
	(wallpaper--check-command): New cl-defmethod.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Fix desktop environment check on Ubuntu

	* lisp/image/wallpaper.el (xdg): Require.
	(wallpaper--check-command): Use xdg-current-desktop instead of reading
	XDG_CURRENT_DESKTOP directly.  This fixes things on e.g. Ubuntu, where
	XDG_CURRENT_DESKTOP might contain a string like "ubuntu:GNOME".

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Add new function xdg-current-desktop to xdg.el

	* lisp/xdg.el (xdg-current-desktop): New function.
	* test/lisp/xdg-tests.el (xdg-current-desktop): New test.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Improve messages in image-crop.el

	* lisp/image/image-crop.el (image-crop)
	(image-crop--crop-image-1): Improve messages and include the name
	of the current operation.

2022-09-14  Po Lu  <luangruo@yahoo.com>

	Implement wallpaper.el support for Haiku

	* lisp/image/wallpaper.el (haiku-set-wallpaper, wallpaper-set):
	Use `haiku-set-wallpaper' on Haiku.
	* lisp/term/haiku-win.el (haiku-write-node-attribute)
	(haiku-send-message, haiku-set-wallpaper): New function.
	* src/haiku_support.cc (be_write_node_message, be_send_message):
	New functions.
	* src/haiku_support.h: Update prototypes.
	* src/haikuselect.c (haiku_message_to_lisp)
	(haiku_lisp_to_message): Fix CSTR type handling to include NULL
	byte.
	(haiku_report_system_error, Fhaiku_write_node_attribute)
	(Fhaiku_send_message): New functions.
	(syms_of_haikuselect): Add defsubrs.

2022-09-14  Stefan Kangas  <stefankangas@gmail.com>

	Support wbg in wallpaper.el (Bug#57781)

	* lisp/image/wallpaper.el (wallpaper-commands): Add "wbg".
	(wallpaper--check-command): New cl-defmethod for "wbg".

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix recently-added cl-macs tests

	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-error)
	(cl-case-warning): Fix warning matches.

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make help-fns--generalized-variable more resilient

	* lisp/help-fns.el (help-fns--generalized-variable): Don't bug out
	when a key binding isn't a symbol.

2022-09-13  Juri Linkov  <juri@linkov.net>

	Prefer defvar-keymap for repeat-map in outline.el

	* lisp/outline.el (outline-navigation-repeat-map)
	(outline-editing-repeat-map): Prefer defvar-keymap.

2022-09-13  Paul Eggert  <eggert@cs.ucla.edu>

	Port alignas definition to C23

	* src/lisp.h (alignas): C23 is removing the __alignas_is_defined
	macro, so do not rely on it. Instead, do not define alignas if C23
	or later, or if C++11 or later.

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix wallpaper.el build warning

	* lisp/image/wallpaper.el (require): Fix build warning.

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Fix help--analyze-key problem when not called from menu"

	This reverts commit 7e374b96635ce70f574fba351defc765e9a52da9.

	This should not be needed -- perhaps it was triggered by
	an ephemeral code change in my running Emacs.

2022-09-13  Stefan Kangas  <stefankangas@gmail.com>

	Use wallpaper-set in thumbs.el

	* lisp/thumbs.el (wallpaper): Require.
	(thumbs-setroot-command): Make defcustom obsolete.
	(thumbs-call-setroot-command): Make obsolete in favor of
	wallpaper-set.
	(thumbs-set-image-at-point-to-root-window, thumbs-set-root)
	(thumbs-dired-setroot): Use wallpaper-set instead of
	thumbs-call-setroot-command.
	(thumbs-before-setroot-hook, thumbs-after-setroot-hook): Make
	obsolete.

2022-09-13  Stefan Kangas  <stefankangas@gmail.com>

	Add new command image-dired-set-wallpaper

	* lisp/image/image-dired.el (wallpaper): Require.
	(image-dired-set-wallpaper): New command.
	(image-dired-thumbnail-mode-map): Bind above new command to "W".

2022-09-13  Stefan Kangas  <stefankangas@gmail.com>

	Add new library wallpaper.el

	* lisp/image/wallpaper.el: New file.

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove a nil cl-case case

	* lisp/emacs-lisp/testcover.el (testcover-coverage-combine):
	Remove the nil case, which will never match (bug#51368).

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some misleading quoting in cl-case

	* lisp/progmodes/compile.el (compilation-auto-jump):
	* lisp/image/image-crop.el (image-crop--crop-image-1):
	(image-crop--crop-image-1):
	* lisp/image/exif.el (exif--process-value):
	* lisp/image-mode.el (image-mode--next-file):
	* lisp/dnd.el (dnd-begin-text-drag):
	(dnd-begin-file-drag):
	(dnd-begin-drag-files): Fix misleading quoting in cl-case (bug#51368).

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-09-13  Philipp Stephani  <phst@google.com>

	Have 'cl-case' warn about suspicious cases

	* lisp/emacs-lisp/cl-macs.el (cl-case): Warn if the user passes a nil
	key list (which would never match).  Warn about quoted symbols that
	should probably be unquoted.

	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-warning): New unit
	test (bug#51368).

2022-09-13  Philipp Stephani  <phst@google.com>

	Signal an error if a fallback cl-case is misplaced

	* lisp/emacs-lisp/cl-macs.el (cl-case): Warn if the user passes a nil
	key list (which would never match).  Warn about quoted symbols that
	should probably be unquoted.

	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-warning): New unit
	test (bug#51368).

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Move imagep in image.c from the debugging section

	* lisp/simple.el (imagep): Remove.
	* src/image.c (Fimagep): Always define.

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix help--analyze-key problem when not called from menu

	* lisp/help.el (help--analyze-key): Don't bug out when not called
	from the menu.

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new commands 'image-crop' and 'image-elide'

	* doc/lispref/display.texi (Showing Images): Document it.

	* lisp/image.el (image-map): Bind commands.

	* lisp/image/image-crop.el: New file (bug#51331).

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function imagep

	* lisp/simple.el (imagep): New function.

2022-09-13  Gerd Möllmann  <gerd@gnu.org>

	Fix whitespace-tests on macOS

	* test/lisp/whitespace-tests.el (whitespace-tests--empty-bob):
	(whitespace-tests--empty-eob): Use C-a/C-e instead of
	<home>/<end> (bug#57763).

2022-09-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	comp-tests.el: Enable compilation again

	Rather than disable byte-compilation to circumvent bug#51104,
	change the ELisp code so that `most-positive/negative-fixnum` does
	not end up hardcoded in the `.elc` file.

	* test/src/comp-tests.el (comp-tests-define-type-spec-test):
	Don't quote the type expressions.
	(comp-tests-type-spec-tests): Quote them here instead.

2022-09-13  Eli Zaretskii  <eliz@gnu.org>

	Fix last change in image.c

	* src/image.c (svg_load_image): Don't call Lisp to remove trailing
	whitespace from librsvg error messages, do it in C instead; this
	reduces consing and is much cleaner.  Don't display empty error
	reason if librsvg happens to return an empty message text.
	(syms_of_image): Don't DEFSYM string-trim-right.  (Bug#57755)

2022-09-13  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in several cases

	* lisp/calc/calc-embed.el (calc-override-minor-modes-map):
	* lisp/calc/calc-yank.el (calc-edit-mode-map):
	* lisp/calc/calc.el (calc-trail-mode-map):
	* lisp/cedet/semantic/mru-bookmark.el (semantic-mru-bookmark-mode-map):
	* lisp/cedet/semantic/util-modes.el (semantic-highlight-edits-mode-map)
	(semantic-show-unmatched-syntax-mode-map)
	(semantic-show-parser-state-mode-map)
	(semantic-stickyfunc-mode-map, semantic-highlight-func-mode-map):
	* lisp/cedet/srecode/srt-mode.el (srecode-template-mode-map):
	* lisp/gnus/gnus-art.el (gnus-prev-page-map, gnus-next-page-map):
	* lisp/gnus/gnus-search.el (gnus-search-minibuffer-map):
	* lisp/gnus/score-mode.el (gnus-score-mode-map):
	* lisp/gnus/smime.el (smime-mode-map):
	* lisp/indent.el (edit-tab-stops-map):
	* lisp/isearch.el (minibuffer-local-isearch-map):
	* lisp/printing.el (pr-interface-map):
	* lisp/progmodes/prog-mode.el (prog-mode-map):
	* lisp/progmodes/subword.el (subword-mode-map):
	* lisp/reveal.el (reveal-mode-map):
	* lisp/strokes.el (strokes-mode-map):
	* lisp/textmodes/flyspell.el (flyspell-mouse-map):
	* lisp/textmodes/less-css-mode.el (less-css-mode-map):
	* lisp/textmodes/remember.el (remember-mode-map)
	(remember-notes-mode-map):
	* lisp/wid-browse.el (widget-browse-mode-map):
	* lisp/wid-edit.el (widget-key-sequence-map): Prefer defvar-keymap in
	some easy-to-convert cases.

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Enable undo in eww buffers

	* lisp/net/eww.el (eww-render): Enable undo after rendering.  This
	allows using `undo' in text input boxes.
	(eww-setup-buffer): Disable undo before rendering (bug#57750).

	* lisp/net/shr.el (shr-image-fetched): Inhibit undo tracking.

2022-09-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Indirect Buffers manual improvement

	* doc/emacs/buffers.texi (Indirect Buffers): There's no point in
	mentioning both clone-indirect-buffer and
	clone-indirect-buffer-other-window here since they do the pretty
	much the same (bug#57753).

2022-09-13  dickmao  <dick.r.chiang@gmail.com>

	Avoid double svg error reporting and segfaults

	* src/image.c (svg_load_image): Use g_error_free directly instead
	of the helder g_clear_error (since we're only calling it with
	non-nil values).
	(svg_load_image): Avoid segfault and double reporting errors.
	* test/manual/image-tests.el (image-tests-load-image/svg-too-big)
	(image-tests-load-image/svg-invalid): Test it (bug#57755).

2022-09-13  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in pixel-scroll-precision-mode-map

	* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Prefer
	defvar-keymap.

2022-09-13  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in tab-line.el

	* lisp/tab-line.el (tab-line-tab-map, tab-line-add-map)
	(tab-line-tab-close-map, tab-line-left-map, tab-line-right-map):
	Prefer defvar-keymap.

2022-09-13  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in lisp/epa*.el

	* lisp/epa-ks.el (epa-ks-search-mode-map):
	* lisp/epa.el (epa-key-list-mode-map, epa-key-mode-map): Prefer
	defvar-keymap.

2022-09-13  Po Lu  <luangruo@yahoo.com>

	Fix frames with explicit parent being unmapped after parent shuts down

	* src/xterm.c (handle_one_xevent): Delete leftover _XEMBED_INFO
	property after parent shuts down.

2022-09-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	86f0601392 ; * admin/notes/www: Fix typos.
	2cdb9d03fd ; * admin/make-tarball.txt: Minor clarifications.

2022-09-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	739b5d0e52 Update HISTORY for Emacs 28.2

2022-09-12  Stefan Kangas  <stefankangas@gmail.com>

	* Version 28.2 released.

2022-09-12  Paul Eggert  <eggert@cs.ucla.edu>

	Fix comp-tests.el problem after reconfiguring

	* test/src/comp-tests.el: Do not byte-compile, as the .elc
	file would be machine-dependent (bug#51104).

2022-09-12  Juri Linkov  <juri@linkov.net>

	Document the recently added branch commands (bug#50344)

	* doc/emacs/maintaining.texi (VC Directory Commands): Change the
	prefix key from "B" to "b".  Replace vc-create-tag with vc-create-branch,
	and vc-retrieve-tag with vc-switch-branch.
	(Switching Branches): Mention vc-switch-branch bound to 'C-x v b s'.
	(Creating Branches): Mention vc-create-branch bound to 'C-x v b c'.

	* lisp/vc/vc-dir.el (vc-dir-mode-map): In branch keymap 'b' rebind
	"c" from vc-create-tag to vc-create-branch, and "s" from
	vc-retrieve-tag to vc-switch-branch.

2022-09-12  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc.el (vc-print-branch-log): Fix interactive spec.

	For reading vc-read-revision in the interactive spec use the same 'backend'
	and 'rootdir' as in the body of the same function.

2022-09-12  Juri Linkov  <juri@linkov.net>

	'C-x v b' prefix key is used for branch commands to create/switch/print branch

	* lisp/vc/vc.el (vc-create-branch): New command.
	(vc-retrieve-tag): Add new optional arg 'branchp'.
	(vc-switch-branch): New command (bug#50344).

	* lisp/vc/vc-hooks.el (vc-prefix-map): Bind "b c" to vc-create-branch,
	"b l" to vc-print-branch-log, "b s" to vc-switch-branch.  Remove obsolete
	and suppressed "b" from vc-switch-backend.

	* lisp/vc/vc-dir.el (vc-dir-mode-map): Rebind 'branch-map' from "B" to "b"
	for consistency with 'vc-prefix-map'.

	* lisp/vc/vc-git.el (vc-git-create-tag): For a new branch read
	its start-point.  Ask a confirmation if modified files exist.

2022-09-12  Sean Whitton  <spwhitton@spwhitton.name>

	Add new C-x w prefix map

	* window.el (window-prefix-map): New map.
	(ctl-x-map): Unbind split-root-window-below and
	split-root-window-right.  Bind window-prefix-map to C-x w.

2022-09-12  Stefan Kangas  <stefankangas@gmail.com>

	Skip manual GIF metadata test on MS-Windows

	* test/manual/image-tests.el
	(image-skip-unless): Add new arg CONDITION.
	(image-tests-image-metadata/gif): Skip test on MS-Windows when
	using native image API.  (Bug#57691)

2022-09-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't overwrite error message in `x' in package.el

	* lisp/emacs-lisp/package.el (package-menu--perform-transaction):
	Return whether there were errors.
	(package-menu-execute): Don't overwrite the error message(s) with
	a success message (bug#51201).

2022-09-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove some XEmacs references in speedbar.el

	* lisp/speedbar.el (speedbar-toggle-etags): Remove some references
	to etags support being XEmacs specific (bug#51102).

2022-09-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Document :vert-only tool bar property

	* doc/lispref/keymaps.texi (Tool Bar): Document what :vert-only
	does (bug#51049).  This is not what it was intended to do -- but
	what it intended to do didn't really make that much sense either,
	so perhaps the prop should just be renamed :image-only?

2022-09-12  Arthur Miller  <arthur.miller@live.com>

	Remove edebug props in edebug-remove-instrumentation

	* lisp/emacs-lisp/edebug.el (edebug--strip-plist): New function
	(bug#51026).
	(edebug-remove-instrumentation): Use it to remove pros added while
	running edebug.

2022-09-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix length issues in gnus-cloud-make-chunk

	* lisp/gnus/gnus-cloud.el (gnus-cloud-make-chunk): Make buffer
	unibyte (bug#50988).

2022-09-12  Arash Esbati  <arash@gnu.org>

	Consider key=val labels when renumbering

	* lisp/textmodes/reftex-global.el (reftex-translate): Recognize
	key=val labels given in the optional or mandatory argument of
	environments (AUCTeX bug#57720).

	* test/lisp/textmodes/reftex-tests.el
	(reftex-renumber-simple-labels): New Test.

2022-09-12  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp test

	* lisp/net/tramp-compat.el (tramp-compat-rx):
	Add `tramp-autoload' function property.

2022-09-12  Po Lu  <luangruo@yahoo.com>

	Fix focus restoration upon x_mouse_leave again

	* src/xterm.c (x_mouse_leave): Call xi_handle_focus_change after
	changing the implicit focus.

2022-09-11  Stefan Kangas  <stefankangas@gmail.com>

	Update HISTORY for Emacs 28.2

	* etc/HISTORY: Update for the Emacs 28.2 release.

2022-09-11  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/progmodes/xref.el: Bump the version.

2022-09-11  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Restrict replace-*-in-region to the bounds defined by caller

	* lisp/subr.el (replace-string-in-region, replace-regexp-in-region):
	Narrow to region before iterating over matches, instead of giving a
	bound to the search functions.
	* test/lisp/subr-tests.el (test-replace-string-in-region): Add
	regression tests (bug#57733).

2022-09-11  Michael Albinus  <michael.albinus@gmx.de>

	Disable Tramp cache for relative file names

	* lisp/net/tramp.el (tramp-file-name-unify):
	Return `tramp-cache-undefined' if LOCALNAME is a relative file name.

	* lisp/net/tramp-cache.el (tramp-get-file-property)
	(tramp-set-file-property, tramp-file-property-p)
	(tramp-flush-file-property, tramp-flush-file-upper-properties)
	(tramp-flush-file-properties): Handle KEY being
	`tramp-cache-undefined'.
	(tramp-flush-file-function): Revert last change.

2022-09-11  Richard Hansen  <rhansen@rhansen.org>

	whitespace: Redo BoB/EoB empty line highlighting

	* lisp/whitespace.el (whitespace--empty-at-bob-matcher,
	whitespace--empty-at-eob-matcher, whitespace--update-bob-eob,
	whitespace-color-off, whitespace-color-on,
	whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp,
	whitespace-looking-back, whitespace-post-command-hook): Redo the
	`empty' line highlighting logic to ensure that a buffer change causes
	all affected `empty' lines to become (un)highlighted (bug#37467).
	Also, for improved UX, don't highlight BoB empty lines at or below
	point (not just when point is at 1), or EoB empty lines at or above
	point (not just when point is `eobp').
	(whitespace-bob-marker, whitespace-eob-marker): Clarify documentation.
	* test/lisp/whitespace-tests.el (whitespace--with-test-buffer,
	whitespace--fu, whitespace-tests--empty-bob,
	whitespace-tests--empty-eob): Add tests.

2022-09-11  Richard Hansen  <rhansen@rhansen.org>

	whitespace: Include empty final line in BoB empty match

	* lisp/whitespace.el (whitespace-empty-at-bob-regexp): Include any
	last line trailing whitespace in the BoB empty line match to ensure
	that those characters get highlighted.

2022-09-11  Richard Hansen  <rhansen@rhansen.org>

	whitespace: Reset `whitespace-buffer-changed' when refontifying

	* lisp/whitespace.el (whitespace-post-command-hook): Add missing reset
	of `whitespace-buffer-changed' back to nil between commands.

2022-09-11  Richard Hansen  <rhansen@rhansen.org>

	ert-x: New `ert-with-test-buffer-selected' convenience macro

	* lisp/emacs-lisp/ert-x.el (ert-with-test-buffer-selected): New
	convenience macro that extends `ert-with-test-buffer' by displaying
	the test buffer in a temporary selected window.  This makes it easier
	to simulate user input in the body via `execute-kbd-macro'.
	* test/lisp/emacs-lisp/ert-x-tests.el
	(ert-test-test-buffer-selected/*): Add tests.

2022-09-11  Philip Kaludercic  <philipk@posteo.net>

	Revert "Add new command 'toggle-theme'"

	This reverts commit f31b9d86a67f1b3fd70339f277dff52478890351.

2022-09-11  Philip Kaludercic  <philipk@posteo.net>

	Revert "Add new user option 'custom-ensure-single-theme'"

	This reverts commit b4dbf7184cd68ecd8d1a27fbc1407be0eae7e64c.

2022-09-11  Philip Kaludercic  <philipk@posteo.net>

	Add new user option 'custom-ensure-single-theme'

	* etc/NEWS: Mention it.
	* lisp/custom.el (custom-ensure-single-active-theme): Add it.
	(load-theme): Use it.

2022-09-11  Philip Kaludercic  <philipk@posteo.net>

	Add new command 'toggle-theme'

	* doc/emacs/custom.texi (Custom Themes): Mention it.
	* etc/themes/leuven-dark-theme.el (leuven-dark): Add dual theme.
	* etc/themes/leuven-theme.el (leuven): Add dual theme.
	* etc/themes/tango-dark-theme.el (tango-dark): Add dual theme.
	* etc/themes/tango-theme.el (tango): Add dual theme.
	* etc/themes/tsdh-dark-theme.el (tsdh-dark): Add dual theme.
	* etc/themes/tsdh-light-theme.el (tsdh-light): Add dual theme.
	* lisp/cus-theme.el (describe-theme-1): Say if a theme has a dual.
	* lisp/custom.el (toggle-theme): Add new command.

2022-09-11  Miha Rihtaršič  <miha@kamnitnik.top>

	Improve some shell highlight doc strings

	* lisp/shell.el (shell-highlight-undef-mode-restart): Rename function.
	* lisp/shell.el (shell-comint-fl-enable):
	(shell--highlight-undef-indirect)
	* lisp/ielm.el (ielm-comint-fl-enable):
	* lisp/comint.el: (comint--fl-fontify-region): Improve doc strings.

2022-09-11  Po Lu  <luangruo@yahoo.com>

	Make it easier to clear the Motif drag window for debugging

	* src/xterm.c (xm_get_drag_window_1): Add comment explaining
	side effect of x_special_window_exists_p.
	(handle_one_xevent): Clear Motif drag window upon DestroyNotify.
	In addition to debugging, it also reduces syncs necessary to
	communicate via the Motif protocol after a defective/old client
	sets the drag window without setting the disconnect mode.

2022-09-11  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc.el (vc-diff-patch-string): Fix arg in revert-buffer-function.

2022-09-11  Sean Whitton  <spwhitton@spwhitton.name>

	* lisp/vc/vc.el (vc-deduce-backend): Handle eshell-mode.

2022-09-10  John Wiegley  <johnw@newartisans.com>

	Merge pull request from sdwolfz/native-compiler-warning

	GitHub-reference: https://github.com/jwiegley/use-package/issues/998

2022-09-10  Codruț Constantin Gușoi  <mail+git@codrut.pro>

	Fix emacs native compilation warning for bind-key

	To reproduce, have emacs built with native compilation and notice the
	compilation logs. You can then open the offending file and run `M-x
	emacs-lisp-native-compile-and-load` before and after the changes to see
	the warning is removed.

	```
	 ■  Warning (comp): bind-key.el:150:2: Warning: docstring has wrong
	usage of unescaped single quotes (use \= or different quoting)
	```

2022-09-10  ookami  <mail@ookami.one>  (tiny change)

	Fix project-remember-projects-under when recursing

	* lisp/progmodes/project.el (project-remember-projects-under):
	Actually recurse into directories (bug#57714).

2022-09-10  Michael Albinus  <michael.albinus@gmx.de>

	Ensure, that Tramp cache works over absolute file names

	* lisp/net/tramp.el (tramp-skeleton-directory-files)
	(tramp-skeleton-directory-files-and-attributes)
	(tramp-skeleton-set-file-modes-times-uid-gid)
	(tramp-handle-add-name-to-file, tramp-handle-file-exists-p)
	(tramp-handle-file-readable-p, tramp-handle-file-writable-p):
	* lisp/net/tramp-adb.el (tramp-adb-handle-file-executable-p)
	(tramp-adb-handle-file-exists-p)
	(tramp-adb-handle-file-readable-p)
	(tramp-adb-handle-file-writable-p)
	* lisp/net/tramp-gvfs.el (tramp-gvfs-info, tramp-gvfs-handle-delete-file)
	(tramp-gvfs-get-directory-attributes)
	(tramp-gvfs-get-root-attributes)
	(tramp-gvfs-handle-file-executable-p):
	* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
	(tramp-sh-handle-file-exists-p)
	(tramp-sh-handle-set-visited-file-modtime)
	(tramp-sh-handle-file-selinux-context)
	(tramp-sh-handle-set-file-selinux-context)
	(tramp-sh-handle-file-acl, tramp-sh-handle-file-executable-p)
	(tramp-sh-handle-file-readable-p)
	(tramp-sh-handle-file-directory-p)
	(tramp-sh-handle-file-writable-p)
	(tramp-sh-handle-file-ownership-preserved-p)
	(tramp-sh-handle-add-name-to-file)
	(tramp-sh-handle-copy-directory, tramp-sh-handle-delete-file)
	(tramp-sh-handle-dired-compress-file):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-add-name-to-file)
	(tramp-sudoedit-handle-delete-file)
	(tramp-sudoedit-handle-file-acl)
	(tramp-sudoedit-handle-file-executable-p)
	(tramp-sudoedit-handle-file-exists-p)
	(tramp-sudoedit-handle-file-readable-p)
	(tramp-sudoedit-handle-file-selinux-context)
	(tramp-sudoedit-handle-file-writable-p)
	(tramp-sudoedit-handle-make-symbolic-link)
	(tramp-sudoedit-handle-set-file-selinux-context):
	Use `expand-file-name'.  (Bug#57572)

	* lisp/net/tramp-cache.el (tramp-flush-file-function):
	Expand `buffer-file-name'.  (Bug#57676)

	* lisp/net/tramp.el (tramp-file-name-unify): Extend error message.

	* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link):
	* lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-symbolic-link):
	Do not check remoteness of TARGET anymore.

2022-09-10  Po Lu  <luangruo@yahoo.com>

	Fix compliance with the XDND specification when dropping on a proxy

	* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
	(x_dnd_send_leave, x_dnd_send_drop, x_dnd_do_drop): New
	parameter `toplevel'.  Use it as the window in sent client
	messages.
	(x_dnd_cancel_dnd_early, x_dnd_cleanup_drag_and_drop)
	(x_dnd_process_quit, x_dnd_update_state, handle_one_xevent)
	(x_connection_closed): Give the right toplevel to the client
	message sending functions.

2022-09-10  Paul Eggert  <eggert@cs.ucla.edu>

	Make wdired match dired with symlink permissions

	* lisp/wdired.el (wdired-do-perm-changes): Do not follow symlinks,
	to be consistent with plain dired (bug#50189).

2022-09-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `format-prompt' use `substitute-command-keys'

	* doc/lispref/minibuf.texi (Text from Minibuffer): Mention it.
	* lisp/minibuffer.el (format-prompt): Run through
	`substitute-command-keys' (bug#51040).

2022-09-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix diff-mode.el compilation warnings

	* lisp/vc/diff-mode.el (diff-auto-refine-mode): Suppress
	byte-compile warnings.

2022-09-10  Stefan Kangas  <stefankangas@gmail.com>

	New function substitute-quotes

	* lisp/help.el (substitute-quotes): New function.  (Bug#51040)
	* doc/lispref/help.texi (Keys in Documentation): Document
	substitute-quotes.
	* test/lisp/help-tests.el (help-tests-substitute-quotes): New test.

	* lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
	* lisp/cus-theme.el (describe-theme-1):
	* lisp/emacs-lisp/cl-extra.el (cl--describe-class):
	* lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor):
	* lisp/emacs-lisp/package.el (describe-package-1):
	* lisp/help-fns.el (help-fns--parent-mode, help-fns--var-risky)
	(help-fns--var-file-local, help-fns--var-bufferlocal)
	(describe-face):
	* lisp/help.el (substitute-command-keys):
	* lisp/progmodes/octave.el (octave-help): Use the new function
	instead of 'substitute-command-keys'.

2022-09-10  Stefan Kangas  <stefankangas@gmail.com>

	Doc fixes for 'text-quoting-style'

	* doc/lispref/help.texi (Keys in Documentation): Remove duplicate
	entry for 'text-quoting-style'.  Document the function with the same
	name instead.
	* src/doc.c (Ftext_quoting_style): Doc fix: clarify the return values.
	(syms_of_doc) <Vtext_quoting_style>: Doc fix: clarify that you should
	not read the value of this variable directly; use Ftext_quoting_style
	instead (bug#51040).

2022-09-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Make a flymake.texi code example more resilient

	* doc/misc/flymake.texi (An annotated example backend): Make the
	example code resilient wrt. narrowed buffers (bug#51437).

2022-09-09  Stefan Kangas  <stefankangas@gmail.com>

	* src/w32image.c (w32_can_use_native_image_api): Fix comment.

2022-09-09  Stefan Kangas  <stefankangas@gmail.com>

	Support outline-minor-mode in emacs-authors-mode

	* lisp/textmodes/emacs-authors-mode.el (emacs-authors-mode):
	Support and enable outline-minor-mode.

2022-09-09  Po Lu  <luangruo@yahoo.com>

	Fix several printfs for 32 bit systems

	* lib-src/emacsclient.c (main): Use right length modifier when
	printing uintmax_t.
	* src/alloc.c (check_pure_size): Use right length modifier when
	printing ptrdiff_t.

2022-09-09  John Wiegley  <johnw@newartisans.com>

	Merge pull request from CeleritasCelery/master

	GitHub-reference: https://github.com/jwiegley/use-package/issues/743

2022-09-09  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/subr.el (string-split): New alias for split-string.

2022-09-09  Stefan Kangas  <stefankangas@gmail.com>

	Set vc-git-annotate-switches to "-w" in .dir-locals.el

	* .dir-locals.el: Set vc-git-annotate-switches to "-w".
	Ref: https://lists.gnu.org/r/emacs-devel/2022-09/msg00453.html

2022-09-09  Stefan Kangas  <stefankangas@gmail.com>

	Accept "-w" as safe value for vc-git-annotate-switches

	* lisp/vc/vc-git.el
	(vc-git-annotate-switches-safe-p): New predicate function.
	(vc-git-annotate-switches): Use above new predicate function to
	check if it's :safe.

2022-09-09  Theodor Thornhill  <theo@thornhill.no>

	Prefer documentchanges to changes in server-initiated edits

	Some servers return both.

	PR: https://github.com/joaotavora/eglot/issues/949

	* eglot.el (eglot--apply-workspace-edit): When both documentChanges
	and changes are present, prefer the documentChanges.  By doing that we
	ensure that we don't double edit, rendering the document in an
	unusable state.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/704

2022-09-09  jgart  <47760695+jgarte@users.noreply.github.com>  (tiny change)

	Add support for jedi-language-server (again)

	* eglot.el (eglot-server-programs): Add jedi-language-server

	* README.md: Mention jedi-language-server

	* NEWS.md: Mention jedi-language-server

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/961

2022-09-09  Paul Eggert  <eggert@cs.ucla.edu>

	Fix problem with Glib 2.73.2+ and SIGCHLD handler

	This code fix is by Stefan Monnier (Bug#57699).
	* src/process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
	Adjust to Glib 2.73.2 behavior change on Linux kernel 5.3+.

2022-09-09  John Wiegley  <johnw@newartisans.com>

	Merge pull request from sdwolfz/native-compiler-warning

	GitHub-reference: https://github.com/jwiegley/use-package/issues/997

2022-09-09  Miha Rihtaršič  <miha@kamnitnik.top>

	Input indentation for M-x shell

	* lisp/comint.el
	(comint-indent-input-line):
	(comint-indent-input-line-default):
	(comint-indent-input-region):
	(comint-indent-input-region-default): New functions that implement a
	general mechanism for input indentation through an indirect buffer in
	comint derived major modes.
	* lisp/shell.el (shell-mode): Set up input indentation according to
	sh-mode (bug#51940).

2022-09-09  Miha Rihtaršič  <miha@kamnitnik.top>

	Highlight non-existent commands in M-x shell

	* lisp/shell.el (shell-mode): Enable highlighting of non-existent
	commands if requested.
	(shell-highlight-undef-aliases):
	(shell-highlight-undef-remote-file-name-inhibit-cache): New user
	options.
	(shell-highlight-undef-mode): New minor mode.
	(shell-highlight-undef-defined-face):
	(shell-highlight-undef-undefined-face):
	(shell-highlight-undef-alias-face): New faces.
	(shell-highlight-undef--exec-cache):
	(shell-highlight-undef--face):
	(shell-highlight-undef-keywords):
	(shell-highlight-undef-regexp):
	(shell-highlight-undef--executable-find):
	(shell-highlight-undef-matcher):
	(shell-highlight-undef--indirect):
	(shell-highlight--setup):
	(shell-highlight-undef-reset-mode): New functions and buffer local
	variables (bug#51940).

2022-09-09  Miha Rihtaršič  <miha@kamnitnik.top>

	Input fontification for M-x ielm

	* lisp/ielm.el (ielm-comint-fl-enable): New user option to control
	input fontification.
	(ielm-indirect-setup-hook): New hook.
	(inferior-emacs-lisp-mode): Set up and enable input fontification.

2022-09-09  Miha Rihtaršič  <miha@kamnitnik.top>

	Input fontification for M-x shell

	* lisp/comint.el
	(comint-indent-input-line):
	(comint-indent-input-line-default):
	(comint-indent-input-region):
	(comint-indent-input-region-default): New functions that implement a
	general mechanism for input indentation through an indirect buffer in
	comint derived major modes.
	* lisp/shell.el (shell-mode): Set up input indentation according to
	sh-mode (bug#51940).
	* lisp/comint.el
	(comint-indent-input-line):
	(comint-indent-input-line-default):
	(comint-indent-input-region):
	(comint-indent-input-region-default): New functions that implement a
	general mechanism for input indentation through an indirect buffer in
	comint derived major modes.
	* lisp/shell.el (shell-mode): Set up input indentation according to
	sh-mode (bug#51940).

2022-09-09  Miha Rihtaršič  <miha@kamnitnik.top>

	Implement a general input fontification mechanism for comint modes

	* lisp/comint.el
	(comint-indent-input-line):
	(comint-indent-input-line-default):
	(comint-indent-input-region):
	(comint-indent-input-region-default): New functions that implement a
	general mechanism for input indentation through an indirect buffer in
	comint derived major modes.
	* lisp/shell.el (shell-mode): Set up input indentation according to
	sh-mode (bug#51940).

2022-09-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix "warn-lambda-malformed-interactive-spec.el" even more

	* test/lisp/emacs-lisp/bytecomp-tests.el
	("warn-lambda-malformed-interactive-spec.el"): Adjust test further.

2022-09-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't bind `s' in the normal backtrace map

	* lisp/emacs-lisp/backtrace.el (backtrace-mode-map): Don't bind
	the "s" command, because it's meaningless outside modes that have
	set the backtrace-goto-source-functions variable (and only edebug
	does that) (bug#57674).
	* lisp/emacs-lisp/edebug.el (edebug-pop-to-backtrace): Use it.
	(edebug-backtrace-mode-map, edebug-backtrace-mode): New mode.

2022-09-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Update a bytecomp test

	* test/lisp/emacs-lisp/bytecomp-tests.el
	("warn-lambda-malformed-interactive-spec.el"): Update test to code
	change.

2022-09-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in byte-compile-lambda warning

	* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Fix typo in
	message (bug#57690).

2022-09-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix --without-x compilation warnings

	* lisp/image/image-dired.el (clear-image-cache):
	* lisp/image/image-dired-external.el (clear-image-cache): Fix
	compilation warning (bug#57695).

2022-09-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Fix tramp-loaddefs compilation"

	This reverts commit 43e9c8e9d28dcb659a43e58778e2745d1279051f.

	The cookie seemed to go to lisp/loaddefs.el for a reason, but a bootstrap is needed.

2022-09-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix tramp-loaddefs compilation

	* lisp/net/tramp-compat.el: Fix build by putting tramp-compat-rx
	in the right loaddefs file.

2022-09-09  Michael Albinus  <michael.albinus@gmx.de>

	Make use of rx in Tramp backward compatoble

	* lisp/net/tramp-compat.el (tramp-compat-rx--runtime-params): New defvar.
	(tramp-compat-rx--transform-items)
	(tramp-compat-rx--transform-item, tramp-compat-rx--transform):
	New defuns.  Suggested by Mattias Engdegård <mattiase@acm.org>.
	(tramp-compat-rx): New defalias or defmacro.
	(tramp-compat-string-replace, tramp-compat-string-search):
	Use regexp-quote.

	* lisp/net/tramp.el:
	* lisp/net/tramp-adb.el:
	* lisp/net/tramp-archive.el:
	* lisp/net/tramp-cmds.el:
	* lisp/net/tramp-crypt.el:
	* lisp/net/tramp-fuse.el:
	* lisp/net/tramp-gvfs.el:
	* lisp/net/tramp-sh.el:
	* lisp/net/tramp-smb.el:
	* lisp/net/tramp-sudoedit.el: Use `tramp-compat-rx' where indicated.

	* test/lisp/net/tramp-archive-tests.el:
	* test/lisp/net/tramp-tests.el: Use `tramp-compat-rx' where indicated.

2022-09-09  Stefan Kangas  <stefankangas@gmail.com>

	Fix SVG loading test for old librsvg 2.40.1

	* test/manual/image-tests.el (image-tests-load-image/svg-invalid): Fix
	test for old librsvg 2.40.1.  (Bug#57691)

2022-09-09  Stefan Kangas  <stefankangas@gmail.com>

	Don't warn about some deleted variables in rst.el

	* lisp/textmodes/rst.el (rst-level-face-max)
	(rst-level-face-base-color, rst-level-face-base-light)
	(rst-level-face-format-light, rst-level-face-step-light)
	(rst-level-1-face, rst-level-2-face, rst-level-3-face)
	(rst-level-4-face, rst-level-5-face, rst-level-6-face): Don't issue
	obsoletion warnings for variables deleted in 24.3.

2022-09-09  Stefan Kangas  <stefankangas@gmail.com>

	Delete variable window-system-version obsolete since 24.3

	* lisp/frame.el (window-system-version): Delete variable.
	* src/dispnew.c (syms_of_display) <Vwindow_system_version>:
	Delete DEFVAR, obsolete since 24.3.
	(init_display_interactive, syms_of_display_for_pdumper):
	* src/msdos.c (internal_terminal_init):
	* src/nsterm.m (ns_term_init):
	* src/pgtkfns.c (pgtk_display_info_for_name):
	* src/w32fns.c (w32_display_info_for_name, Fx_open_connection):
	* src/xfns.c (x_display_info_for_name, Fx_open_connection): Don't
	set above deleted variable.
	* admin/admin.el (set-version): Don't update above deleted
	variable in msdos.c.
	* lisp/textmodes/artist.el (artist-submit-bug-report): Don't use
	above deleted variable.

2022-09-09  Stefan Kangas  <stefankangas@gmail.com>

	Delete many items obsolete since 24.3

	* lisp/allout.el (allout-exposure-change-hook)
	(allout-structure-added-hook, allout-structure-deleted-hook)
	(allout-structure-shifted-hook):
	* lisp/arc-mode.el (archive-extract-hooks):
	* lisp/buff-menu.el (Buffer-menu-buffer+size-width):
	* lisp/calendar/timeclock.el (timeclock-modeline-display)
	(timeclock-modeline-display, timeclock-update-modeline):
	* lisp/cedet/semantic/db-el.el
	(semanticdb-elisp-sym-function-arglist):
	* lisp/cedet/semantic/db-file.el (semanticdb-save-database-hooks):
	* lisp/cedet/semantic/edit.el (semantic-change-hooks)
	(semantic-edits-new-change-hooks)
	(semantic-edits-delete-change-hooks)
	(semantic-edits-reparse-change-hooks):
	* lisp/cedet/semantic/lex.el (semantic-lex-reset-hooks):
	* lisp/comint.el (comint--unquote&expand-filename)
	(comint-unquote-filename):
	* lisp/custom.el (user-variable-p):
	* lisp/dired.el (dired-shrink-to-fit, dired-pop-to-buffer)
	(dired-sort-set-modeline):
	* lisp/ebuff-menu.el (Electric-buffer-menu-mode):
	* lisp/emacs-lisp/byte-run.el (macro-declaration-function):
	* lisp/emacs-lisp/checkdoc.el (custom-print-functions)
	(checkdoc-comment-style-hooks):
	* lisp/emacs-lisp/cl-lib.el (custom-print-functions):
	* lisp/emacs-lisp/edebug.el (gud-inhibit-global-bindings):
	* lisp/erc/erc-dcc.el (erc-dcc-chat-filter-hook):
	* lisp/eshell/esh-mode.el (eshell-status-in-modeline):
	* lisp/eshell/eshell.el (eshell-add-to-window-buffer-names)
	(eshell-remove-from-window-buffer-names):
	* lisp/faces.el (set-face-underline-p, font-list-limit):
	* lisp/files.el (automount-dir-prefix, toggle-read-only):
	* lisp/filesets.el (filesets-cache-fill-content-hooks):
	* lisp/frame.el (automatic-hscrolling):
	* lisp/generic-x.el (javascript-generic-mode)
	(javascript-generic-mode-hook):
	* lisp/gnus/gnus-start.el (gnus-subscribe-newsgroup-hooks):
	* lisp/gnus/nndiary.el (nndiary-request-create-group-hooks)
	(nndiary-request-update-info-hooks)
	(nndiary-request-accept-article-hooks):
	* lisp/htmlfontify.el (hfy-post-html-hooks):
	* lisp/international/mule-cmds.el
	(inactivate-current-input-method-function)
	(inactivate-input-method, input-method-inactivate-hook)
	(ucs-insert):
	* lisp/international/quail.el (quail-inactivate)
	(quail-inactivate-hook):
	* lisp/international/robin.el (robin-inactivate)
	(robin-inactivate-hook):
	* lisp/leim/quail/hangul.el (hangul-input-method-inactivate):
	* lisp/leim/quail/uni-input.el (ucs-input-inactivate):
	* lisp/mail/emacsbug.el (report-emacs-bug-info):
	* lisp/mh-e/mh-e.el (mh-kill-folder-suppress-prompt-hooks):
	* lisp/mpc.el (mpc-string-prefix-p):
	* lisp/net/rcirc.el (rcirc-print-hooks, rcirc-sentinel-hooks)
	(rcirc-receive-message-hooks, rcirc-activity-hooks):
	* lisp/obsolete/crisp.el (crisp-mode-modeline-string):
	* lisp/pcomplete.el (pcomplete-arg-quote-list)
	(pcomplete-quote-argument):
	* lisp/progmodes/cc-mode.el (c-prepare-bug-report-hooks):
	* lisp/progmodes/python.el (python-info-ppss-context)
	(python-info-ppss-context-type)
	(python-info-ppss-comment-or-string-p, python-indent)
	(python-guess-indent, python-buffer, python-preoutput-result)
	(python-proc, python-send-receive, python-send-string)
	(python-use-skeletons):
	* lisp/progmodes/sh-script.el (sh-maybe-here-document):
	* lisp/replace.el (query-replace-interactive):
	* lisp/strokes.el (strokes-modeline-string):
	* lisp/subr.el (redraw-modeline):
	* lisp/term.el (term-default-fg-color, term-default-bg-color):
	* lisp/textmodes/tex-mode.el (latex-string-prefix-p)
	(tex-string-prefix-p):
	* lisp/url/url-parse.el (url-recreate-url-attributes):
	* lisp/vc/add-log.el (change-log-acknowledgement):
	* lisp/vc/ediff-wind.el
	(ediff-choose-window-setup-function-automatically):
	* lisp/vc/pcvs-util.el (cvs-string-prefix-p):
	* lisp/vc/vc.el (vc-string-prefix-p):
	* lisp/window.el (display-buffer-function):
	* lisp/winner.el (winner-mode-leave-hook): Remove many functions and
	variables obsolete since 24.3.

	* lisp/buff-menu.el (list-buffers--refresh):
	* lisp/dired.el (dired-mode-map):
	* lisp/files.el (abbreviate-file-name):
	* lisp/generic-x.el (generic-default-modes):
	* lisp/mh-e/mh-funcs.el (mh-kill-folder):
	* lisp/progmodes/hideif.el (hide-ifdef-mode-submap):
	* lisp/replace.el (query-replace-read-from):
	* lisp/term.el (term):
	* lisp/window.el (display-buffer): Don't use above deleted
	functions and variables.

	* src/marker.c (Fbuffer_has_markers_at): Delete DEFUN obsolete
	since 24.3.
	(syms_of_marker) <Sbuffer_has_markers_at>: Delete defsubr.
	* lisp/subr.el (buffer-has-markers-at): Remove obsoletion
	of above deleted DEFUN.
	* etc/TODO: Doc fix; don't mention above deleted function.

	* admin/cus-test.el (cus-test-get-options):
	* lisp/pcomplete.el: Doc fixes; don't mention removed items.

2022-09-09  Stefan Kangas  <stefankangas@gmail.com>

	Display error in emacsclient if setsockopt failed

	* lib-src/emacsclient.c (set_tcp_socket, set_socket_timeout): Display
	an error message if setsockopt failed.

2022-09-09  Po Lu  <luangruo@yahoo.com>

	Remove some redundant calls to x_ignore_errors_for_next_request

	* src/xterm.c (x_dnd_do_unsupported_drop, x_set_frame_alpha):
	Wrap some requests in x_ignore_errors_for_next_request instead
	of calling it each time.

2022-09-09  Codruț Constantin Gușoi  <mail+git@codrut.pro>

	Fix emacs native compilation warning

	```
	 ■  Warning (comp): use-package-core.el:907:2: Warning: docstring has
	wrong usage of unescaped single quotes (use \= or different quoting)
	 ■  Warning (comp): use-package-core.el:930:2: Warning: docstring has
	wrong usage of unescaped single quotes (use \= or different quoting)
	```

	To reproduce, have emacs build with native compilation and notice the
	compilation logs. You can then open this file and run `M-x
	emacs-lisp-native-compile-and-load` before and after the changes to see the
	warning is removed.

2022-09-08  Po Lu  <luangruo@yahoo.com>

	Remove long-broken TESTRM interface

	* src/xrdb.c: [TESTRM]:
	(fatal, main): Delete functions and code block.  They don't work
	and rely on XLIB_ILLEGAL_ACCESS.

2022-09-08  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in proced.el

	* lisp/proced.el (proced-mode-map): Prefer defvar-keymap.

2022-09-08  Stefan Kangas  <stefankangas@gmail.com>

	Set indent-tabs-mode for lisp-data-mode in .dir-locals.el

	* .dir-locals.el (lisp-data-mode): Enforce existing indent-tabs-mode
	policy.

2022-09-08  Stefan Kangas  <stefankangas@gmail.com>

	Display librsvg error when loading bad SVG

	* src/image.c (svg_load_image): Display the error message from librsvg
	when parsing a bad SVG image file.
	* test/manual/image-tests.el
	(image-tests-load-image/svg-invalid): New test.

2022-09-08  João Távora  <joaotavora@gmail.com>

	Don't return poorly supported "special elements" in eglot-imenu

	Fix https://github.com/joaotavora/eglot/issues/758, https://github.com/joaotavora/eglot/issues/536, https://github.com/joaotavora/eglot/issues/535.

	Eglot's eglot-imenu returned a structure compliant with the rules
	outlined in imenu--index-alist.  In particular, it returned some
	elements of the form

	  (INDEX-NAME POSITION GOTO-FN ARGUMENTS...)

	The original intention (mine) must have been to allow fancy
	highlighting of the position navigated to with a custom GOTO-FN.

	Not only was access to that fanciness never implemented, but many
	other imenu frontends do not support such elements.

	See for example https://github.com/joaotavora/eglot/issues/758, https://github.com/joaotavora/eglot/issues/536, https://github.com/joaotavora/eglot/issues/535.  And also related issues in other
	packages:

	https://github.com/IvanMalison/flimenu/issues/6
	https://github.com/bmag/imenu-list/issues/58

	So it's best to remove this problematic feature for now.  It can be
	added back later.

	* eglot.el (eglot-imenu): Simplify.

	* NEWS.md: Mention change

2022-09-08  Richard Stallman  <rms@gnu.org>

	Decode base64 attachments revealed by decryption.

	* lisp/mail/rmail.el (rmail-epa-decode): New function.
	(rmail-epa-decrypt): Call rmail-epa-decode.

2022-09-08  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	395760dcd3 Update ChangeLog and AUTHORS for Emacs 28.2
	ddabb03a01 * doc/misc/idlwave.texi (Troubleshooting): Don't say "Emacs...
	724444f3d5 ; * doc/emacs/misc.texi (emacsclient Options): Fix typo.
	b96257162d Don't mention very old Emacs versions in docs

	# Conflicts:
	#	doc/emacs/misc.texi
	#	etc/NEWS

2022-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/keyboard.c (safe_run_hook_funcall): Fix thinko

2022-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/keyboard.c (safe_run_hook_funcall): Fix recent regression

	The mutation of `args` was unsafe because that array was
	later reused (and assumed unchanged) by the caller.
	https://lists.gnu.org/archive/html/emacs-devel/2022-09/msg00329.html

2022-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	test: Remove redundant "" arg to `mapconcat`

	* test/src/process-tests.el (process-test-stderr-filter):
	* test/src/print-tests.el (print-tests-continuous-numbering):
	* test/src/fns-tests.el (fns-tests-mapconcat):
	* test/src/data-tests.el (test-bool-vector-to-hex-string):
	* test/src/casefiddle-tests.el (casefiddle-tests-char-properties)
	(casefiddle-tests-case-table, casefiddle-tests-casing-character):
	* test/lisp/tabify-tests.el (tabify-tests--test-changes):
	* test/lisp/subr-tests.el (subr-tests-bug22027):
	* test/lisp/sort-tests.el (sort-tests-random-word):
	* test/lisp/net/hmac-md5-tests.el (hmac-md5-test-encode-string):
	* test/lisp/md4-tests.el (md4-tests-digest->hex):
	* test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-map):
	* test/lisp/dired-tests.el (dired-test-directory-files):
	* test/lisp/char-fold-tests.el (char-fold--random-word):
	* test/lisp/ansi-color-tests.el (ansi-color-incomplete-sequences-test):
	Remove redundant "" arg to `mapconcat`.

2022-09-08  Yuan Fu  <casouri@gmail.com>

	Add node-only parameter to treesit-query-capture

	* doc/lispref/parsing.texi (Pattern Matching): Mention the new
	parameter.
	* lisp/treesit.el (treesit-query-in): Add node-only.
	* src/treesit.c (Ftreesit_query_capture): Add node-only.

2022-09-08  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el (treesit-can-enable-p): Minor fix.

2022-09-08  Phil Sainty  <psainty@orcon.net.nz>

	Add new user option ecomplete-auto-select

	* lisp/ecomplete.el (ecomplete-auto-select): New user option
	(bug#53935).
	(ecomplete-display-matches): Use it.

2022-09-08  Augusto Stoffel  <arstoffel@gmail.com>

	Add prefix argument to outline-cycle-buffer

	* lisp/outline.el (outline-cycle-buffer): Add prefix argument to show
	headings up to a given level.  Handle the case where the top
	heading level is not 1.

2022-09-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix diff-add-log-use-relative-names prompting

	* lisp/vc/diff-mode.el (diff-add-log-use-relative-names): Autoload
	to avoid prompting when set via dir-locals.

2022-09-08  Stefan Kangas  <stefankangas@gmail.com>

	* src/xrdb.c (main) [TESTRM]: Replace gets with fgets.

2022-09-08  Manuel Uberti  <manuel.uberti@inventati.org>

	Fix jdtls support

	PR https://github.com/joaotavora/eglot/issues/1026

	* eglot.el (eglot-server-programs): Add -data setup for java-mode.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/1008

2022-09-08  Artem Pyanykh  <arr@fb.com>  (tiny change)

	Add marksman server for markdown

	* eglot.el (eglot-server-programs): Update.
	* README (Connecting to a server): Add marksman.
	* NEWS.md: Mention change.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/1013

2022-09-08  Sam James  <sam@gentoo.org>  (tiny change)

	Recognize zstandard (.zst) compressed Info files

	* lisp/info.el (Info-suffix-list): Recognize .zst file extension
	from the zstd compression tool.  This allows reading Info pages
	compressed with 'zstd'.  (Bug#57636)

2022-09-08  Michael Albinus  <michael.albinus@gmx.de>

	Make call of remote `id' more performant in Tramp

	* lisp/net/tramp-adb.el (tramp-adb-handle-file-exists-p): New defun.
	(tramp-adb-file-name-handler-alist): Use it.
	(tramp-adb-handle-file-executable-p)
	(tramp-adb-handle-file-readable-p)
	(tramp-adb-handle-file-writable-p)
	(tramp-adb-handle-get-remote-uid)
	(tramp-adb-handle-get-remote-gid)
	(tramp-adb-handle-get-remote-groups): Use caches consequently.

	* lisp/net/tramp-sh.el (tramp-perl-id, tramp-python-id): New defconsts.
	(tramp-sh-handle-get-remote-uid, tramp-sh-handle-get-remote-gid)
	(tramp-sh-handle-get-remote-groups): Use caches consequently.
	(tramp-sh-handle-file-writable-p): Use `file-writable-p'.
	(tramp-expand-script): Handle also "python" expansion.
	(tramp-get-remote-id): Do not set connection property anymore,
	this is done differently now.
	(tramp-get-remote-uid-with-id, tramp-get-remote-uid-with-perl)
	(tramp-get-remote-uid-with-python, tramp-get-remote-gid-with-id)
	(tramp-get-remote-gid-with-perl)
	(tramp-get-remote-gid-with-python): Remove.

	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-executable-p)
	(tramp-sudoedit-handle-file-exists-p)
	(tramp-sudoedit-handle-file-readable-p)
	(tramp-sudoedit-handle-file-writable-p):
	(tramp-sudoedit-handle-get-remote-uid)
	(tramp-sudoedit-handle-get-remote-gid)
	(tramp-sudoedit-handle-get-remote-groups): Use caches consequently.

	* lisp/net/tramp.el (tramp-check-cached-permissions):
	Call `tramp-get-remote-groups' only if needed.
	(tramp-get-remote-groups): Do not return default value.
	(tramp-read-id-output): New defun.

	* test/lisp/net/tramp-tests.el (tramp--test-deftest-with-perl):
	Suppress also remote `id'.

2022-09-08  Philip Kaludercic  <philipk@posteo.net>

	Add new user option 'diff-add-log-use-relative-names'

	* .dir-locals.el: Set new option to t
	* etc/NEWS: Mention new option.
	* lisp/vc/diff-mode.el (diff-add-log-use-relative-names): Add new option.
	(diff-add-log-current-defuns): Use new option.
	* doc/emacs/maintaining.texi (Log Buffer): Mention new option.

2022-09-08  Po Lu  <luangruo@yahoo.com>

	Avoid selecting for excessive output configuration events

	* src/xterm.c (x_term_init): Only select for
	RROutputPropertyNotify if GTK is in use.  Emacs doesn't need it
	itself, and output property changes will otherwise lead to 2
	second freezes over connections with high network latency.

2022-09-07  Stefan Kangas  <stefankangas@gmail.com>

	Bump Emacs version to 28.2

	* README:
	* configure.ac:
	* msdos/sed2v2.inp:
	* nt/README.W32: Bump Emacs version to 28.2.

2022-09-07  Stefan Kangas  <stefankangas@gmail.com>

	dired-guess: Support zstandard archives

	* lisp/dired-aux.el (dired-guess-shell-alist-default): Support
	zstandard archives.

2022-09-07  Stefan Kangas  <stefankangas@gmail.com>

	Move some tests to test/manual/image-tests.el

	* test/src/image-tests.el: Move several tests from here...
	* test/manual/image-tests.el: ...to here.
	Suggested by Eli Zaretskii <eliz@gnu.org>.

2022-09-07  Morgan Smith  <Morgan.J.Smith@outlook.com>

	image-dired: Fix moving forward when marking files

	* lisp/image/image-dired.el (image-dired--do-mark-command): Make
	movement consistent regardless of the value of
	image-dired-marking-shows-next.  (Bug#57651)

2022-09-07  Morgan Smith  <Morgan.J.Smith@outlook.com>

	Make image-dired-rotate-original-{left,right} respect marks

	* lisp/image/image-dired.el (image-dired-rotate-original-left)
	(image-dired-rotate-original-right): Rotate all marked
	files.  (Bug#57651)

2022-09-07  Yuan Fu  <casouri@gmail.com>

	Fix tree-sitter manual entry for treesit-should-enable-p

	* doc/lispref/parsing.texi: Move two entries in the front to "Using
	Parser" section, replacing the old entry.

2022-09-07  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in icomplete.el

	* lisp/icomplete.el (icomplete-minibuffer-map)
	(icomplete-fido-mode-map)
	(icomplete-vertical-mode-minibuffer-map): Prefer defvar-keymap.

2022-09-07  Yuan Fu  <casouri@gmail.com>

	Remove treesit-disabled-modes and change treesit-should-enable-p

	Per emacs-devel discussion, remove treesit-disabled-modes and let
	major modes to provide tree-sitter switches.  I also decided to add
	treesit-max-buffer-size to elisp manual despite it being a user
	option.  Though we should still add it to the user manual.

	* doc/lispref/parsing.texi (Parsing Program Source): Update manual to
	remove entries for treesit-diabled-modes and add
	treesit-max-buffer-size.  Also update treesit-should-enable-p.
	* lisp/treesit.el (treesit-disabled-modes): Remove user option.
	(treesit-maximum-size): Change to treesit-max-buffer-size.
	(treesit-should-enable-p): Change to treesit-can-enable-p and remove
	checks of treesit-disabled-modes.

2022-09-07  Yuan Fu  <casouri@gmail.com>

	Add manual entry for tree-sitter search functions

	* doc/lispref/parsing.texi (Retrieving Node): New subsection
	"Searching for node".
	* doc/lispref/positions.texi (List Motion): Add entries for
	treesit-defun-query, treesit-beginning-of-defun, treesit-end-of-defun.
	* lisp/treesit.el (treesit-search-forward, treesit-search-beginning)
	(treesit-search-end): Minor docstring fix-up.

2022-09-07  Yuan Fu  <casouri@gmail.com>

	Add tree-sitter font-lock settings helper function/macro

	1. Add treesit-font-lock-rules that helps with settings
	treesit-font-lock-settings.
	2. Remove treesit-font-lock-defaults and with it, decoration levels.

	Now major modes should set treesit-font-lock-settings with the output
	of treesit-font-lock-rules rather than setting
	treesit-font-lock-defaults.

	* lisp/treesit.el (treesit-font-lock-settings): Update docstring.
	(treesit-font-lock-rules): New function.
	(treesit-font-lock-defaults): Remove variable.
	(treesit-font-lock-enable): Remove code that interacts
	treesit-font-lock-defaults.
	* doc/lispref/modes.texi: Update manual for
	treesit-font-lock-settings, treesit-font-lock-rules,
	treesit-font-lock-defaults.

2022-09-07  Mattias Engdegård  <mattiase@acm.org>

	Improve save-match-data hygiene

	* lisp/subr.el (save-match-data): Use uninterned variable symbol.
	Remove outdated comments.

2022-09-07  Eli Zaretskii  <eliz@gnu.org>

	Add instructions to 'standard-display-by-replacement-char'

	* lisp/disp-table.el (standard-display-by-replacement-char): Add a
	preamble to the generated code with instructions.  Suggested by
	Richard Stallman <rms@gnu.org>.

2022-09-07  Eli Zaretskii  <eliz@gnu.org>

	Don't follow symlinks in w32notify file watches

	* src/w32notify.c (add_watch): On filesystems that support
	symlinks, don't follow symlinks.  (Bug#57536)
	* src/w32.c (symlinks_supported): New function.
	* src/w32.h (symlinks_supported): Add prototype.

2022-09-07  Mattias Engdegård  <mattiase@acm.org>

	Simplify dolist and dotimes

	We no longer care enough about non-lexbind code generation for it
	to merit special attention; better to keep the code simple.

	Suggested by Philip Kaludercic in
	https://lists.gnu.org/archive/html/emacs-devel/2022-09/msg00354.html .

	* lisp/subr.el (dolist, dotimes): Use uninterned symbols for variable
	bindings generated by the macros, and discard the alternative code
	versions for non-lexbind code.  Use sensible variable names.

2022-09-07  Philip Kaludercic  <philipk@posteo.net>

	Untabify rcirc.el

2022-09-06  Po Lu  <luangruo@yahoo.com>

	Fix nsfont breakage since 6b1ed2f2c99a1c2da56c5f434570c438cad6576d

	* nsfont.m (ns_spec_to_descriptor): Fix coding style, also
	handle `monospace' special family.
	(ns_descriptor_to_entity): Fix reporting of spacing on fonts.
	(ns_findfonts): Fix coding style.

2022-09-06  Po Lu  <luangruo@yahoo.com>

	Reenable reporting of frame movement on NS

	* src/nsterm.m ([EmacsView windowDidMove:]): Restore code to
	generate MOVE_FRAME_EVENTS, and use kbd_buffer_store_event
	instead.

2022-09-06  Stefan Kangas  <stefankangas@gmail.com>

	Improve image-tests.el Commentary

	* test/src/image-tests.el: Doc fix; explain how to run from
	command line.

2022-09-06  Stefan Kangas  <stefankangas@gmail.com>

	Update ChangeLog and AUTHORS for Emacs 28.2

	* ChangeLog.3:
	* etc/AUTHORS:
	* etc/NEWS: Update for Emacs 28.2.

2022-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/jit-lock.el (jit-lock-function): Update comment

2022-09-06  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/idlwave.texi (Troubleshooting): Don't say "Emacsen".

2022-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/jit-lock.el (jit-lock-function): Don't fontify invisible text

	See bug#57447.  This can speed up fontification significantly when using
	things like outline-mode.

2022-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	* etc/NEWS.28: Mention `make-closure`

2022-09-06  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/mh-e.texi (Getting MH-E): Update.

2022-09-06  Stefan Kangas  <stefankangas@gmail.com>

	Don't mention ancient Gnus versions in MH-E manual

	* doc/misc/mh-e.texi (Preface, Reading PGP, Procmail): Don't mention
	pre-2000 versions of Gnus.

2022-09-06  Eli Zaretskii  <eliz@gnu.org>

	Fix the MS-Windows build

	* lib-src/emacsclient.c (DEFAULT_TIMEOUT): Move out of the
	!WINDOWSNT condition, to fix the MS-Windows compilation.
	(set_socket_timeout) [WINDOWSNT]: Protect against too-large values
	of timeout.

2022-09-06  Stefan Kangas  <stefankangas@gmail.com>

	Don't mention very old Emacs versions in docs

	* doc/misc/mh-e.texi (Conventions):
	* doc/misc/reftex.texi (Problems and Work-Arounds):
	* doc/misc/viper.texi (Loading Viper): Delete references to
	very old versions of Emacs.

2022-09-06  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/semantic.texi: Delete unused macro.

2022-09-06  Po Lu  <luangruo@yahoo.com>

	Correctly handle frame synchronization on fullscreen KWin

	* src/xfns.c (x_set_use_frame_synchronization): Announce that we
	do not want the compositor to unredirect the frame while
	fullscreen.
	* src/xterm.c (x_atom_refs): New atom
	`_NET_WM_BYPASS_COMPOSITOR'.
	* src/xterm.h (struct x_display_info): Likewise.

2022-09-06  Kai Tetzlaff  <emacs@tetzco.de>

	Fix (mostly multibyte) issues in sieve-manage.el (Bug#54154)

	The managesieve protocol (s. RFC5804) requires support for (a slightly
	restricted variant of) UTF-8 in script content and script names. This
	commit fixes/improves the handling of multibyte characters.

	In addition, `sieve-manage-getscript' now properly handles NO
	responses from the server instead of inflooping.

	There are also some logging improvements.

	* lisp/net/sieve-manage.el
	(sieve-manage--append-to-log):
	(sieve-manage--message):
	(sieve-manage--error):
	(sieve-manage-encode):
	(sieve-manage-decode):
	(sieve-manage-no-p): New functions.
	(sieve-manage-make-process-buffer): Switch process buffer to unibyte.
	(sieve-manage-open-server): Add `:coding 'raw-text-unix` to
	`open-network-stream' call. Use unix EOLs in order to keep matching
	CRLF (aka "\r\n") intact.
	(sieve-manage-send): Make sure that UTF-8 multibyte characters are
	properly encoded before sending data to the server.
	(sieve-manage-getscript):
	(sieve-manage-putscript): Use the changes above to fix down/uploading
	scripts containing UTF-8 multibyte characters.
	(sieve-manage-listscripts):
	(sieve-manage-havespace)
	(sieve-manage-getscript)
	(sieve-manage-putscript):
	(sieve-manage-deletescript):
	(sieve-manage-setactive): Use the changes above to fix handling of
	script names which contain UTF-8 multibyte characters.
	(sieve-manage-parse-string):
	(sieve-manage-getscript): Add handling of server responses with type
	NO. Abort `sieve-manage-getscript' and show error message in message
	area.
	(sieve-manage-erase):
	(sieve-manage-drop-next-answer):
	(sieve-manage-parse-crlf): Return erased/dropped data (instead of nil).
	(sieve-sasl-auth):
	(sieve-manage-getscript):
	(sieve-manage-erase):
	(sieve-manage-open-server):
	(sieve-manage-open):
	(sieve-manage-send): Improve logging.

2022-09-06  Kai Tetzlaff  <emacs@tetzco.de>

	Improve robustness of `sieve-manage-quit' in case of errors

	* lisp/net/sieve.el (sieve-manage-quit): Avoid killing buffers it's
	not supposed to touch (bug#54154).

2022-09-06  Stefan Kangas  <stefankangas@gmail.com>

	Add tests for opening different image formats

	* test/src/image-tests.el
	(image-tests-make-load-image-test): New macro.
	(image-tests-load-image/gif)
	(image-tests-load-image/jpeg)
	(image-tests-load-image/pbm)
	(image-tests-load-image/png)
	(image-tests-load-image/svg)
	(image-tests-load-image/tiff)
	(image-tests-load-image/webp)
	(image-tests-load-image/xbm)
	(image-tests-load-image/xpm): New tests.

2022-09-06  Stefan Kangas  <stefankangas@gmail.com>

	Fix interactive image.c tests

	* test/src/image-tests.el (image-tests-image-metadata/gif)
	(image-tests-image-metadata/webp): Fix tests.

2022-09-06  Drew Adams  <drew.adams@oracle.com>

	Add some new find-lisp commands

	* lisp/find-lisp.el (find-lisp-find-dired-other-window): New command.
	(find-lisp-find-dired): Improve the doc string.
	(find-lisp-find-dired-subdirectories): Clarify doc string.
	(find-lisp-find-dired-subdirs-other-window): New command.
	(find-lisp-find-dired-internal): Adjust to allow being called by
	the new command.
	(find-lisp-format): Make symlink output more regular.

2022-09-06  Laurence Warne  <laurencewarne@gmail.com>

	Apply syntax highlighting for all python f-strings

	* lisp/progmodes/python.el (python--f-string-p)
	(python--font-lock-f-strings): Edit functions to use a regular
	expression matching all f-strings (bug#56757).

2022-09-06  Michael Albinus  <michael.albinus@gmx.de>

	Use secondary groups when checking permissions in Tramp (Bug#57044)

	* lisp/net/tramp.el (tramp-check-cached-permissions): Check also for
	secondary groups.  (Bug#57044)
	(tramp-get-remote-groups):
	* lisp/net/tramp-adb.el (tramp-adb-handle-get-remote-groups):
	* lisp/net/tramp-sh.el (tramp-sh-handle-get-remote-groups):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-get-remote-groups):
	New defuns.

	* lisp/net/tramp.el (tramp-file-name-for-operation):
	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	Add `tramp-get-remote-groups'.

	* lisp/net/tramp.el:
	* lisp/net/tramp-adb.el:
	* lisp/net/tramp-cache.el:
	* lisp/net/tramp-crypt.el:
	* lisp/net/tramp-fuse.el:
	* lisp/net/tramp-gvfs.el:
	* lisp/net/tramp-integration.el:
	* lisp/net/tramp-rclone.el:
	* lisp/net/tramp-sh.el:
	* lisp/net/tramp-smb.el:
	* lisp/net/tramp-sudoedit.el: Use `blank' in `rx' forms.

	* test/lisp/net/tramp-archive-tests.el:
	* test/lisp/net/tramp-tests.el: Use `blank' in `rx' forms.

2022-09-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make ffap-file-finder work again

	* lisp/ffap.el (find-file-at-point): Allow people to set
	ffap-file-finder again (bug#50279).

	* lisp/ido.el (ido-everywhere): Add an interstitial to fulfill
	ffap-file-handler semantics.

2022-09-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	ecbdb3b0ad * lisp/server.el: Improve Commentary.
	ee5c591249 Explain how the font appearance can be fine-tuned in fbterm.

2022-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-symbol-macrolet: Fix recent regression

	The recent fix for bug#57397 introduced a regression, breaking
	the `cl-lib-symbol-macrolet-hide` test.  It turned out that the
	origin of the problem was that `gv.el` uses `macroexpand-1` which
	does not (can't) use `macroexpand` but `cl-symbol-macrolet` failed
	to advise `macroexpand-1` the way it advised `macroexpand`.

	To fix this, we change `cl-symbol-macrolet` so it advises both, and we
	do that with a new `macroexpand` advice which delegates the bulk of
	the work to `macroexpand-1`.

	Along the way, I bumped into another bug in the interaction between
	`cl-letf` and `cl-symbol-macrolet`, which I tried to fix in `cl-letf`.

	I hear the war on `cl-symbol-macrolet` was a failure.
	Maybe ... just say no?

	* lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand-1): New function,
	extracted from `cl--sm-macroexpand`.
	(cl--sm-macroexpand): Rewrite completely.
	(cl-symbol-macrolet): Advise both `macroexpand` and `macroexpand-1`.
	(cl--letf): Don't use the "simple variable" code for symbol macros.

	* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet-hide):
	Revert last change because the test was right.

	* test/lisp/emacs-lisp/cl-macs-tests.el
	(cl-macs-test--symbol-macrolet): Add a test case.

2022-09-05  Stefan Kangas  <stefankangas@gmail.com>

	Add new --timeout flag to emacsclient

	* lib-src/emacsclient.c (DEFAULT_TIMEOUT): New constant.
	(timeout): New static variable.
	(longopts, shortopts, decode_options, print_help_and_exit): Add new
	flag --timeout.
	(set_socket_timeout, check_socket_timeout): New helper functions.
	(main): Display a status message or exit after Emacs has not responded
	for a while, depending on above new --timeout flag.  (Bug#50849)

	* doc/emacs/misc.texi (emacsclient Options):
	* doc/man/emacsclient.1: Document the above new option.
	* etc/NEWS: Announce it.

2022-09-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Disable failing cl-lib-symbol-macrolet-hide test for now

	* test/lisp/emacs-lisp/cl-lib-tests.el
	(cl-lib-symbol-macrolet-hide): Disable until code is fixed.

2022-09-05  Gregory Heytings  <gregory@heytings.org>

	Simplify describe-function.

	* lisp/help-fns.el (describe-function-1): Do not pass
	'describe-function-orig-buffer' as argument to...
	(help-fns--key-bindings): but use it directly there instead.
	This simplifies 1d1158397b.

2022-09-05  Juri Linkov  <juri@linkov.net>

	Fit the re-builder window to the buffer

	* lisp/emacs-lisp/re-builder.el (re-builder): Fit the height to
	the buffer (bug#56772).

2022-09-05  Hugo Heagren  <hugo@heagren.com>

	Add new functions for splitting the root window

	* lisp/window.el (split-window-right): Add optional argument to
	control which window is split (previously, would only split selected
	window).  Update docstring.
	* doc/lispref/windows.texi (Splitting Windows): Update docs for
	`split-window-right'.
	* lisp/window.el (split-window-below): Add optional argument to
	control which window is split (previously, would only split selected
	window).  Update docstring.
	* doc/lispref/windows.texi (Splitting Windows): Update docs for
	`split-window-below'.
	* lisp/window.el (ctl-x-map): Bind `split-root-window-right' to 9 in
	ctl-x-map.  This is consistent with binding other window-splitting
	operations to numbers in this map.
	* lisp/window.el (ctl-x-map): Bind `split-root-window-below' to 7 in
	ctl-x-map.  This is consistent with binding other window-splitting
	operations to numbers in this map.
	* lisp/window.el (split-root-window-right): New function to split
	whole frame.
	* doc/lispref/windows.texi (Splitting Windows): Add documentation for
	`split-root-window-right'.
	* lisp/window.el (split-root-window-below): New function to split
	whole frame.
	* doc/lispref/windows.texi (Splitting Windows): Add documentation for
	`split-root-window-below' (bug#56791).

2022-09-05  Sean Whitton  <spwhitton@spwhitton.name>

	Font lock long Git commit summary lines

	* lisp/vc/vc-git.el (vc-git-log-edit-summary-target-len)
	(vc-git-log-edit-summary-max-len): New defcustoms.
	(vc-git-log-edit-summary-target-warning)
	(vc-git-log-edit-summary-max-warning): New faces.
	(vc-git--log-edit-summary-check): New function.
	(vc-git-log-edit-mode): Add vc-git--log-edit-summary-check to
	log-edit-font-lock-keywords to font lock long Git commit summary
	lines.
	* etc/NEWS (VC): Document the change.
	* .dir-locals.el: Set vc-git-log-edit-summary-target-len.

2022-09-05  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/server.el: Improve Commentary.

2022-09-05  Gregory Heytings  <gregory@heytings.org>

	Explain how the font appearance can be fine-tuned in fbterm.

	* doc/misc/efaq.texi (Emacs in a Linux console): Briefly document
	Xft font specifications with which the font appearance can be
	fine-tuned.

2022-09-05  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	5713c730f2 Update to Org 9.5.5
	aad38d6010 * lisp/emacs-lisp/comp.el (comp-run-async-workers): Fail m...

2022-09-04  Po Lu  <luangruo@yahoo.com>

	Fix crash while converting empty vector to X data

	* src/xselect.c (lisp_data_to_selection_data): Assume an empty
	vector represents INTEGER data, instead of blindly trying to
	aref its first element.

2022-09-04  Jim Porter  <jporterbugs@gmail.com>

	Let external Eshell processes send stdout and stderr to different places

	* lisp/eshell/esh-proc.el (eshell-put-process-properties): Pass INDEX.
	(eshell-gather-process-output): Create a pipe process for stderr when
	stderr goes somewhere different than stdout.
	(eshell-insertion-filter, eshell-sentinel): Consult
	':eshell-handle-index' property.

	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test/output/stdout-to-buffer)
	(esh-proc-test/output/stderr-to-buffer)
	(esh-proc-test/exit-status/with-stderr-pipe): New tests (bug#21605).

2022-09-04  Jim Porter  <jporterbugs@gmail.com>

	Put Eshell's bookkeeping data for external processes on the process object

	This allows tracking this information for process objects not recorded
	in 'eshell-process-list', which will be useful for pipe processes for
	stderr output.

	* lisp/eshell/esh-proc.el (eshell-process-list): Add docstring.
	(eshell-record-process-object): Only record the process object and
	whether it's a subjob.
	(eshell-remove-process-entry): Adapt to changes in
	'eshell-record-process-object'.
	(eshell-record-process-properties): New function...
	(eshell-gather-process-output): ... call it.
	(eshell-insertion-filter, eshell-sentinel): Use new process
	properties, don't require process to be in 'eshell-process-list'.

	* test/lisp/eshell/esh-proc-tests.el (esh-proc-test--output-cmd): New
	variable.
	(esh-proc-test--detect-pty-cmd): Add docstring.
	(esh-proc-test/output/to-screen)
	(esh-proc-test/output/stdout-and-stderr-to-buffer)
	(esh-proc-test/exit-status/success, esh-proc-test/exit-status/failure)
	(esh-proc-test/kill-process/foreground-only): New tests.
	(esh-proc-test/kill-background-process): Rename to...
	(esh-proc-test/kill-process/background-prompt): ... this, and use
	'eshell-wait-for-subprocess' instead of 'sit-for'.

2022-09-04  Jim Porter  <jporterbugs@gmail.com>

	Add support for more kinds of redirect operators in Eshell

	* lisp/eshell/esh-arg.el: Require cl-lib.
	(eshell-finish-arg): Allow passing multiple ARGUMENTS.
	(eshell-quote-argument): Handle the case when 'eshell-finish-arg' was
	passed multiple arguments.

	* lisp/eshell/esh-cmd.el (eshell-do-pipelines)
	(eshell-do-pipelines-synchronously): Only set stdout output handle.

	* lisp/eshell/esh-io.el (eshell-redirection-operators-alist): New
	constant.
	(eshell-io-initialize): Prefer sharp quotes for functions.
	(eshell-parse-redirection, eshell-strip-redirections): Add support for
	more redirection forms.
	(eshell-copy-output-handle, eshell-set-all-output-handles): New
	functions.

	* test/lisp/eshell/esh-io-tests.el
	(esh-io-test/redirect-all/overwrite, esh-io-test/redirect-all/append)
	(esh-io-test/redirect-all/insert, esh-io-test/redirect-copy)
	(esh-io-test/redirect-copy-first, esh-io-test/redirect-pipe): New
	tests.

	* doc/misc/eshell.texi (Redirection): Document new redirection syntax.
	(Pipelines): Document '|&' syntax.
	(Bugs and ideas): Update item about redirection syntax.

	* etc/NEWS: Announce this change.

2022-09-04  Jim Porter  <jporterbugs@gmail.com>

	Allow checking specific Eshell handles for interactive output

	This changes the default behavior of the function to check only stdout
	for interactivity, but for most cases this should be what we want.

	* lisp/eshell/esh-io.el (eshell-interactive-output-p): Pass HANDLES
	and handle INDEX.

	* lisp/eshell/em-term.el (eshell-visual-command-p): Check for
	interactivity of both stdout and stderr.

2022-09-04  Jim Porter  <jporterbugs@gmail.com>

	Simplify Eshell handle functions and add tests/documentation

	* lisp/eshell/esh-arg.el (eshell-parse-argument-hook): Explain how to
	use 'eshell-finish-arg'.

	* lisp/eshell/esh-io.el (eshell-create-handles): Only call
	'eshell-get-target' for stderr if necessary.
	(eshell-protect-handles): Use 'dotimes'.
	(eshell-set-output-handle): Pass HANDLES and fix an edge case with
	setting a duplicate TARGET.

	* test/lisp/eshell/eshell-tests-helpers.el (eshell-with-temp-buffer):
	New macro.

	* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/quoted-lisp-form)
	(esh-cmd-test/backquoted-lisp-form)
	(esh-cmd-test/backquoted-lisp-form/splice): New tests.

	* test/lisp/eshell/eshell-tests.el (eshell-test/redirect-buffer)
	(eshell-test/redirect-buffer-escaped): Move to...
	* test/lisp/eshell/esh-io-tests.el: ... here, and add other I/O tests.

	* doc/misc/eshell.texi (Arguments): Add documentation for special
	argument types.
	(Input/Output): Expand documentation for redirection and pipelines.

2022-09-04  Matt Armstrong  <matt@rfc20.org>

	Add basic test coverage for overlay modification hooks

	* test/src/buffer-tests.el: (overlay-modification-hooks) new
	ert-deftest.
	(overlay-tests-start-recording-modification-hooks): New function.
	(overlay-tests-get-recorded-modification-hooks): New function
	(bug#57150).

2022-09-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify that the region is in the Emacs manual

	* doc/emacs/mark.texi (Mark): Try to clarify what's so special
	about Emacs' regions (bug#50950).

2022-09-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Mark some filenotify tests unstable on EMBA

	* test/lisp/filenotify-tests.el (file-notify-test03-events)
	(file-notify-test09-watched-file-in-watched-dir): Mark as unstable
	on EMBA, because they seem to fail regularly.

2022-09-04  Michael Albinus  <michael.albinus@gmx.de>

	Fix comment in tramp.el

2022-09-04  Juri Linkov  <juri@linkov.net>

	Don't replace the first character with an arrow in outline-minor-mode

	* lisp/outline.el (outline--make-button-overlay): Add the first character
	to the displayed outline button (bug#56820).

2022-09-04  Juri Linkov  <juri@linkov.net>

	Use use-region-beginning/end in replacement commands (bug#45607)

	* lisp/isearch.el (isearch-query-replace): Use use-region-beginning
	and use-region-end.

	* lisp/textmodes/paragraphs.el (repunctuate-sentences):
	* lisp/replace.el (query-replace, query-replace-regexp)
	(map-query-replace-regexp, replace-string, replace-regexp):
	Add 'interactive-args' to 'declare' and use use-region-beginning,
	use-region-end, use-region-noncontiguous-p.

	* lisp/simple.el (use-region-noncontiguous-p): New function.
	(region-noncontiguous-p): Return more meaningful value.

2022-09-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a basic widget type for buffer predicates

	* lisp/paren.el (show-paren-predicate):
	* lisp/outline.el (outline-minor-mode-use-buttons): Use it.
	* lisp/wid-edit.el (buffer-predicate): New widget type.

2022-09-04  Po Lu  <luangruo@yahoo.com>

	Fix earlier change to xterm.c

	* src/xterm.c (x_detect_focus_change): Finally figure out what
	the call to x_new_focus_frame does with the core focus, and do
	the equivalent with the XInput 2 focus.

2022-09-04  Michael Albinus  <michael.albinus@gmx.de>

	Fix rx forms in Tramp

	* lisp/net/tramp.el (tramp-restricted-shell-hosts-alist)
	(tramp-local-host-regexp, tramp-echoed-echo-mark-regexp)
	(tramp-login-prompt-regexp, tramp-terminal-prompt-regexp)
	(tramp-antispoof-regexp)
	(tramp-build-completion-file-name-regexp)
	(tramp-debug-outline-regexp)
	(tramp-use-absolute-autoload-file-names)
	(tramp-lock-file-info-regexp, tramp-shell-quote-argument):
	* lisp/net/tramp-adb.el (tramp-do-parse-file-attributes-with-ls)
	* lisp/net/tramp-cache.el (tramp-flush-file-function):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name):
	* lisp/net/tramp-integration.el (tramp-rfn-eshadow-update-overlay-regexp)
	(info-lookup-maybe-add-help):
	* lisp/net/tramp-sh.el (tramp-default-user-alist, tramp-sunos-unames)
	(tramp-scp-direct-remote-copying, tramp-get-remote-locale):
	* lisp/net/tramp-smb.el (tramp-smb-prompt, tramp-smb-wrong-passwd-regexp)
	(tramp-smb-errors, tramp-smb-get-localname)
	(tramp-smb-read-file-entry): Simplify rx forms.

	* lisp/net/tramp.el (tramp-handle-find-backup-file-name)
	(tramp-handle-lock-file, tramp-handle-make-auto-save-file-name):
	* lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times)
	(tramp-adb-maybe-open-connection):
	* lisp/net/tramp-gvfs.el
	(tramp-gvfs-file-attributes-with-gvfs-ls-regexp):
	* lisp/net/tramp-sh.el (tramp-open-shell, tramp-find-shell): Do not use
	`eval-when-compile'.

	* lisp/net/tramp-cmds.el (tramp-rename-files, tramp-rename-these-files):
	Use rx.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-password-tcrypt): New defonst.
	(tramp-gvfs-handle-file-attributes): Use `number-to-string'.

	* test/lisp/net/tramp-archive-tests.el
	(tramp-archive-test17-insert-directory):
	* test/lisp/net/tramp-tests.el (tramp-test17-insert-directory)
	(tramp--test-share-p): Simplify rx forms.

2022-09-04  Damien Cassou  <damien@cassou.me>

	Add new function `seq-positions'

	* doc/lispref/sequences.texi (Sequence Functions): Document it.

	* lisp/emacs-lisp/seq.el (seq-positions): New function.

	* lisp/emacs-lisp/shortdoc.el (sequence): Mention it.

	* test/lisp/emacs-lisp/seq-tests.el (test-seq-positions): Test it
	(bug#57548).

2022-09-04  Augusto Stoffel  <arstoffel@gmail.com>

	Add Python import management commands

	* lisp/progmodes/python.el (python-interpreter): New variable
	(python-mode-map): Keybindings and menu entries for new commands
	(python--list-imports, python-import-history, python--query-import)
	(python--do-isort):  New variables and helper functions.
	(python-add-import, python-import-symbol-at-point)
	(python-remove-import, python-sort-imports, python-fix-imports): New
	interactive commands (bug#57574).

2022-09-04  Augusto Stoffel  <arstoffel@gmail.com>

	Python shells dedicated to a project

	* lisp/progmodes/python.el: Require 'seq' and (optionally) 'compat'
	and 'project' libraries.
	(python-shell-dedicated): New user option
	(python-shell-get-process-name): Adapt to project-dedicated shells.
	(run-python): Offer possibility to create a project-dedicated shell,
	or use 'python-shell-dedicated' as the default behavior.
	(python-shell-get-buffer): Adapt to project-dedicated shells
	(bug#56997).

2022-09-04  Damien Cassou  <damien@cassou.me>

	Add new function `seq-remove-at-position'

	* doc/lispref/sequences.texi (Sequence Functions): Document it.

	* lisp/emacs-lisp/seq.el (seq-remove-at-position): New function.

	* lisp/emacs-lisp/shortdoc.el (sequence): Mention it.

	* test/lisp/emacs-lisp/seq-tests.el (test-seq-remove-at-position):
	Test it.

2022-09-04  Damien Cassou  <damien@cassou.me>

	Improve documentation of several functions in seq.el

	* doc/lispref/sequences.texi (Sequence Functions):
	* lisp/emacs-lisp/seq.el (seq-contains):
	(seq-contains-p):
	(seq-set-equal-p):
	(seq-position):
	(seq-union):
	(seq-intersection):
	(seq-difference): Use more standard wording in the docstrings
	(bug#57561).

2022-09-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename the Mice node in the Emacs manual

	* doc/emacs/commands.texi (User Input, Keys): Rename "Mice" to
	Mouse Input.

2022-09-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some help-fns test failures

	* lisp/help-fns.el (help-fns--key-bindings): Fix test failures
	from recent change.

2022-09-04  Eli Zaretskii  <eliz@gnu.org>

	New command to facilitate text-mode display of unsupported chars

	* lisp/disp-table.el (standard-display-by-replacement-char): New
	command.

	* etc/NEWS: Announce it.

2022-09-04  Eli Zaretskii  <eliz@gnu.org>

	Fix update of Dired display when it was called on a cons cell

	* lisp/dired.el (dired-internal-do-deletions): Make sure that FN's
	directory entry is updated on display.  (Bug#57565)

2022-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/term/linux.el (gpm-mouse-enable): Remove left-over declaration

2022-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	gv.el and cl-macs.el: Fix bug#57397

	* lisp/emacs-lisp/gv.el (gv-get): Obey symbol macros.
	* lisp/emacs-lisp/cl-macs.el (cl--letf): Remove workaround placed to
	try and handle symbol macros.

	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-test--symbol-macrolet):
	Add new testcase.

2022-09-03  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.5.5

2022-09-03  Gregory Heytings  <gregory@heytings.org>

	Look up keybindings in correct buffer in describe-function.

	* lisp/help-fns.el (help-fns--key-bindings): New parameter.
	Use it when looking up keybindings.
	(describe-function-1): Add the buffer in which the command
	was invoked as argument to 'help-fns--key-bindings'.
	Fixes bug#57568.

2022-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/comp.el (comp-run-async-workers): Fail more gracefully

	Otherwise Emacs may fail to start if it can't find a writable
	`~/.emacs.d/eln-cache` directory.
	Fixes bug#57562.  See also Debian's bug #1017739.

2022-09-03  Jeff Walsh  <fejfighter@gmail.com>

	Update error message to reflect variable rename

	* src/comp.c (Fcomp_el_to_eln_filename): Update error message.  (Bug#55861)

	[ According to the Git metadata, this commit 8436e0bee9cf7a was already
	  merged from `emacs-28`, yet the code says it was not.  :-(  ]

2022-09-03  Eli Zaretskii  <eliz@gnu.org>

	Fix indexing of mouse-wheel events

	* doc/emacs/frames.texi (Mouse Commands): Add index entries for
	wheel events.

2022-09-03  Eli Zaretskii  <eliz@gnu.org>

	Revert "* doc/emacs/commands.texi (Mice): Improve indexing."

	This reverts commit 1cea0ae4133bb22fd70d483df105e5a4653bc56c.

	The index entries it added don't belong to the place where they were
	added.

2022-09-03  Mattias Engdegård  <mattiase@acm.org>

	lisp/emacs-lisp/seq.el: remove unnecessary compatibility code

	* lisp/emacs-lisp/seq.el (seq-take, seq--activate-font-lock-keywords):
	Simplify unnecessarily guarded code, as this file will only ever be
	used with the same version of Emacs.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	* doc/emacs/commands.texi (Mice): Improve indexing.

2022-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs

2022-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/macroexp.el (macroexp--compiler-macro): Soften message

	Clarify that the error is "harmless".

2022-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el: Use `define-symbol-prop` (bug#50869)

	(cl-define-compiler-macro, cl-defstruct, cl-deftype): Prefer
	`define-symbol-prop` over `put` so `unload-feature` can undo
	those definitions.

2022-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/loadhist.el (loadhist-unload-element): Remove auxiliary function info

	See bug#50869.

2022-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/help-fns.el (find-lisp-object-file-name): Revert last change

2022-09-03  Po Lu  <luangruo@yahoo.com>

	Improve documentation of scroll wheel event types in new Mice node

	* doc/emacs/commands.texi (Mice): Improve documentation of
	scroll wheel event types; fix doc for Emacs 29 and describe
	horizontal wheel movement.

2022-09-03  Po Lu  <luangruo@yahoo.com>

	Work around another X server bug in crossing event dispatch

	* src/xterm.c (xi_focus_handle_for_device): Clear implicit focus
	along with FocusOut.  (bug#57468)
	(x_mouse_leave): Avoid invalid reads of
	dpyinfo->x_focus_event_frame on input extension builds.

2022-09-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a Mice node in the Emacs manual

	* doc/emacs/commands.texi (User Input): Don't claim to not
	document mouse buttons.
	(Mice): New node (bug#50948).

2022-09-03  Philip Kaludercic  <philipk@posteo.net>

	* subr.el (buffer-match-p): Use 'pcase' (bug#57502)

2022-09-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention M-x list-packages in the Help node in the Emacs manual

	* doc/emacs/help.texi (Help): Mention listing packages
	(bug#50936).

2022-09-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Inhibit nativecomp of loaddefs files

	* lisp/emacs-lisp/generate-lisp-file.el
	(generate-lisp-file-trailer): Allow inhibiting nativecomp.

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric):
	Inhibit native-comp, because it's not very useful for loaddefs files.

2022-09-03  Po Lu  <luangruo@yahoo.com>

	Work around potential X server bug

	* src/xterm.c (handle_one_xevent): Ignore core crossing events
	on input extension builds.  The X server is not actually
	supposed to deliver them to us, and it messes up MPX focus
	tracking.  (bug#57468)

2022-09-03  Eli Zaretskii  <eliz@gnu.org>

	Teach 'max-char' about the Unicode code range

	* src/character.c (Fmax_char): Accept an optional argument
	UNICODE, and, if non-nil, return the maximum codepoint defined by
	Unicode.

	* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Update the
	signature of 'max-char'.

	* etc/NEWS:
	* doc/lispref/nonascii.texi (Character Codes): Update the
	documentation of 'max-char'.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	Increase image-dired-show-all-from-dir-max-files to 1000

	* lisp/image/image-dired.el
	(image-dired-show-all-from-dir-max-files): Increase to 1000.

2022-09-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix image-dired-util.el compile warning

	* lisp/image/image-dired-util.el (require): Require for cl-case.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	Add new defgroup image-dired-dired

	* lisp/image/image-dired-dired.el
	(image-dired-dired-append-when-browsing): Rename from
	'image-dired-append-when-browsing'.  Update all uses.
	(image-dired-dired): New defgroup.
	(image-dired-dired-append-when-browsing)
	(image-dired-dired-disp-props): Use above new defgroup.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Minor cleanups

	* lisp/image/image-dired-dired.el
	(image-dired-dired-after-readin-hook, image-dired-minor-mode):
	Minor doc fixes.
	(image-dired-dired-display-image): Don't accept ineffectual prefix
	argument.
	* lisp/image/image-dired-util.el
	(image-dired-file-name-at-point): Use when-let.
	(image-dired-display-thumb-properties): Redefine as obsolete function
	alias for 'image-dired-update-header-line'.

	* lisp/image/image-dired-util.el
	(image-dired-window-width-pixels): Make obsolete in favor of
	window-body-width.
	* lisp/image/image-dired.el (image-dired-line-up-dynamic)
	(image-dired-display-window-width): Don't use above obsolete function.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Prefer defvar-keymap

	* lisp/image/image-dired-dired.el (image-dired-minor-mode-map):
	* lisp/image/image-dired.el
	(image-dired-thumbnail-mode-line-up-map)
	(image-dired-thumbnail-mode-tag-map)
	(image-dired-thumbnail-mode-map)
	(image-dired-display-image-mode-map): Prefer defvar-keymap.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	Add new defgroup image-dired-external

	* lisp/image/image-dired-external.el (image-dired-external): New
	defgroup.
	(image-dired-cmd-create-thumbnail-program)
	(image-dired-cmd-create-thumbnail-options)
	(image-dired-cmd-pngnq-program, image-dired-cmd-pngnq-options)
	(image-dired-cmd-pngcrush-program)
	(image-dired-cmd-pngcrush-options)
	(image-dired-cmd-optipng-program)
	(image-dired-cmd-optipng-options)
	(image-dired-cmd-create-standard-thumbnail-options)
	(image-dired-cmd-rotate-original-program)
	(image-dired-cmd-rotate-original-options)
	(image-dired-temp-rotate-image-file)
	(image-dired-rotate-original-ask-before-overwrite)
	(image-dired-cmd-write-exif-data-program)
	(image-dired-cmd-write-exif-data-options): Use above new defgroup.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Make HTML gallery generation obsolete

	* lisp/image/image-dired.el (image-dired-gallery): Delete
	defgroup again.
	(image-dired-gallery-dir, image-dired-gallery-image-root-url)
	(image-dired-gallery-thumb-image-root-url)
	(image-dired-gallery-hidden-tags, image-dired-tag-file-list)
	(image-dired-file-tag-list, image-dired--add-to-tag-file-lists)
	(image-dired--add-to-file-comment-list)
	(image-dired--create-gallery-lists, image-dired--hidden-p)
	(image-dired-gallery-generate): Make obsolete.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Do more interactive mode tagging

	* lisp/image/image-dired-dired.el
	(image-dired-dired-toggle-marked-thumbs)
	(image-dired-next-line-and-display)
	(image-dired-previous-line-and-display)
	(image-dired-toggle-append-browsing)
	(image-dired-mark-and-display-next)
	(image-dired-toggle-dired-display-properties)
	(image-dired-dired-next-line, image-dired-dired-previous-line)
	(image-dired-create-thumbs, image-dired-display-thumbs-append)
	(image-dired-display-thumb, image-dired-dired-display-external)
	(image-dired-dired-display-image)
	(image-dired-copy-with-exif-file-name, image-dired-mark-tagged-files)
	(image-dired-dired-display-properties):
	* lisp/image/image-dired-external.el
	(image-dired-thumbnail-set-image-description):
	* lisp/image/image-dired-tags.el (image-dired-tag-files)
	(image-dired-tag-thumbnail, image-dired-delete-tag)
	(image-dired-tag-thumbnail-remove)
	(image-dired-dired-comment-files)
	(image-dired-dired-edit-comment-and-tags):
	* lisp/image/image-dired.el (image-dired-display-thumbs)
	(image-dired-track-original-file)
	(image-dired-toggle-movement-tracking)
	(image-dired-forward-image, image-dired-backward-image)
	(image-dired-line-up, image-dired-line-up-dynamic)
	(image-dired-line-up-interactive)
	(image-dired-thumbnail-display-external)
	(image-dired-display-thumbnail-original-image)
	(image-dired-rotate-original-left)
	(image-dired-rotate-original-right)
	(image-dired-comment-thumbnail, image-dired-delete-marked)
	(image-dired-rotate-thumbnail-left)
	(image-dired-rotate-thumbnail-right): Do interactive mode tagging.

	* lisp/image/image-dired.el (image-dired-delete-marked): Signal error
	if not in image-dired-thumbnail-mode.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	Split image-dired.el into several files (part 2/2)

	Use a git trick to split a file while preserving line history (for
	"git blame", "git log --follow", etc.):

	1) Make exact copies of the original file, in the same commit as
	   moving it.

	2) Next, trim down the extra copies to contain only the relevant
	   parts.  [this commit]

	* lisp/image-dired.el:
	* lisp/image/image-dired-dired.el:
	* lisp/image/image-dired-external.el:
	* lisp/image/image-dired-tags.el:
	* lisp/image/image-dired-util.el:
	* lisp/image/image-dired.el: Trim files down to keep only one copy of
	each definition.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	Split image-dired.el into several files (part 1/2)

	Use a git trick to split a file while preserving line history (for
	"git blame", "git log --follow", etc.):

	1) Make exact copies of the original file, in the same commit as
	   moving it.  [this commit]

	2) Next, trim down the extra copies to contain only the relevant
	   parts.

	* lisp/image-dired.el: Move from here...
	* lisp/image/image-dired-dired.el:
	* lisp/image/image-dired-external.el:
	* lisp/image/image-dired-tags.el:
	* lisp/image/image-dired-util.el:
	* lisp/image/image-dired.el: ...to here.

	* test/lisp/image-dired-tests.el: Move from here...
	* test/lisp/image/image-dired-tests.el: ...to here.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	Make "rlogin" method obsolete in url*.el

	* lisp/url/url-about.el (url-probe-protocols): Remove "rlogin".
	* lisp/url/url-gw.el (url-gateway-rlogin-host)
	(url-gateway-rlogin-user-name, url-gateway-rlogin-parameters)
	(url-open-rlogin): Make obsolete.  (Bug#56891)
	(url-open-stream):
	* lisp/url/url-misc.el (url-do-terminal-emulator): Warn when using
	"rlogin".
	(url-rlogin): Make obsolete.
	* lisp/url/url-vars.el (url-gateway-method): Remove "rlogin"
	choice.

	* lisp/url/url-gw.el (url-gw-rlogin-obsolete-warned-once)
	* lisp/url/url-misc.el (url-misc-rlogin-obsolete-warned-once): New
	variables, immediately marked obsolete.

	* doc/misc/url.texi (telnet/tn3270): Rename section from
	"rlogin/telnet/tn3270".
	(Gateways in general, Customization): Don't mention "rlogin"
	method.

2022-09-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d89e65c638 Update acknowledgments

2022-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Update acknowledgments

	* doc/emacs/ack.texi (Acknowledgments): Update.
	* doc/emacs/emacs.texi (Acknowledgments): Add several names from
	Author: headers.

2022-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Make some versions in docs match package version

	* doc/emacs/misc.texi (Interactive Shell): Bump Emacs version.
	* doc/misc/ediff.texi:
	* doc/misc/flymake.texi:
	* doc/misc/viper.texi: Fix version to match package.
	* lisp/emulation/viper.el: Make version match variable.

2022-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	917da2641e Minor doc fix; improve sorting of VC backends
	89695bce3e Clarify the doc string of 'set-face-attribute'

2022-09-02  Gregory Heytings  <gregory@heytings.org>

	Display a warning for some uses of nil in face attributes.

	* src/xfaces.c (HANDLE_INVALID_NIL_VALUE): New macro, which displays
	a warning for invalid uses of nil as a face attribute value.
	(Finternal_set_lisp_face_attribute): Use the macro for the attributes
	:foreground, :distant-foreground and :background.

2022-09-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/help-fns.el: Minor fixes

	(describe-mode--minor-modes): Don't burp on minor modes that lack a docstring.
	(describe-mode--minor-modes): Simplify eta-redex.
	(find-lisp-object-file-name): Use `autoload-file`.
	(help-fns--describe-function-or-command-prompt): Allow the user to
	insist on choosing a function even if it appears not to exist.

2022-09-02  Robert Pluim  <rpluim@gmail.com>

	Use `format-prompt' in `describe-char-fold-equivalences'

	* lisp/char-fold.el (describe-char-fold-equivalences): Use `format-prompt'.

2022-09-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix define-minor-mode :keymap obsoletion warning

	* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Fix some
	warning.

2022-09-02  Stefan Kangas  <stefankangas@gmail.com>

	Make minibuffer-eldef-shorten-default obsolete

	* lisp/minibuf-eldef.el (minibuffer-eldef-shorten-default): Make
	variable obsolete in favor of 'minibuffer-default-prompt-format'.
	* doc/emacs/mini.texi (Basic Minibuffer): Delete above obsolete
	variable (bug#50935).

2022-09-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Default show-paren-mode to off in special-mode buffers

	* doc/emacs/programs.texi (Matching): Mention the new user option.

	* doc/misc/efaq.texi (Matching parentheses): Adjust text to the
	current state of affairs.

	* lisp/paren.el (show-paren-function): New user option (bug#50894).
	(show-paren-mode): Mention it.
	(show-paren-function): Use it.

2022-09-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up ispell "look"-related variables

	* lisp/textmodes/ispell.el (ispell-look-p): Make obsolete.
	(ispell-lookup-words): Look up the look command at run time
	instead (bug#50852).
	(ispell-have-new-look): Make obsolete.
	(ispell-look-options): Adjust.  Apparently the version of "look"
	that had a "-r" (regexp interface) never took off -- it's not
	present in GNU/Linux or Macos, at least, as far as we can tell.

2022-09-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix quotes in mailcap-add-mailcap-entry doc string

	* lisp/net/mailcap.el (mailcap-add-mailcap-entry): Fix usage of
	quotes.

2022-09-02  Felix Dietrich  <felix.dietrich@sperrhaken.name>

	Restructure ‘mailcap-add-mailcap-entry’

	* lisp/net/mailcap.el (mailcap-add-mailcap-entry):
	Restructure mailcap-add-mailcap-entry to improve readability.

2022-09-02  Felix Dietrich  <felix.dietrich@sperrhaken.name>

	Add tests for ‘mailcap-add-mailcap-entry’

	* test/lisp/net/mailcap-tests.el:
	Add tests for ‘mailcap-add-mailcap-entry’

2022-09-02  Robert Pluim  <rpluim@gmail.com>

	Use frame-monitor-attributes in gamegrid

	* lisp/play/gamegrid.el (gamegrid-calculate-glyph-size): Use
	`frame-monitor-attributes' to get the frame attributes directly
	instead of iterating over `display-monitor-attributes-list'.

2022-09-02  Po Lu  <luangruo@yahoo.com>

	Prevent crashes when embedding Emacs in a nonexistent parent

	* src/xfns.c (x_window, Fx_create_frame): Handle X errors while
	trying to reparent the frame onto an explicitly specified
	parent.
	* src/xterm.c (handle_one_xevent): Handle unparenting embedded
	windows correctly.  This only works if the embedder is aware of
	the fixes extension and has put the window into the right save
	set.
	(x_embed_frame): New function.
	* src/xterm.h (FRAME_X_EMBEDDED_P): Fix coding style.

2022-09-02  Robert Pluim  <rpluim@gmail.com>

	Make single char entry easier for `describe-char-fold-equivalences'

	* lisp/char-fold.el (describe-char-fold-equivalences): Improve
	docstring.  Pass t for 'allow-single' arg in call to
	`read-char-by-name' so that single characters can be entered directly.

2022-09-02  Robert Pluim  <rpluim@gmail.com>

	Allow easy entry of single chars in `read-char-by-name'

	* lisp/international/mule-cmds.el (read-char-by-name): Add optional
	'allow-single' argument, meaning to accept single chars as themselves.

2022-09-02  Fabrice Bauzac-Stehly  <noon@mykolab.com>

	ldap-host-parameters-alist: Add auth-source option

	* lisp/net/ldap.el (ldap-host-parameters-alist): Add auth-source
	to checklist.

2022-09-01  Jim Porter  <jporterbugs@gmail.com>

	Under no-X builds, allow any value for 'fringe-bitmap' options

	* lisp/cus-edit.el (fringe-bitmap): Always match under no-X.

2022-09-01  Po Lu  <luangruo@yahoo.com>

	Fix bug#57476 for Xt builds

	* src/xterm.c (handle_one_xevent): Add similar event mode check
	to code under USE_X_TOOLKIT conditional.  (bug#57476)

2022-09-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make easy-mmode-define-keymap obsolete

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode-define-keymap): Make
	obsolete.
	(define-minor-mode): Add comment.

2022-09-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make easy-mmode-defmap obsolete and adjust only caller

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap): Make obsolete.
	* lisp/progmodes/gud.el (gud-menu-map): Use easy-menu-define.

2022-09-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix outline-minor-mode-map

	* lisp/outline.el (outline-minor-mode): Avoid using
	easy-mmode-define-keymap, since it doesn't handle :inherit
	correctly (bug#57512).

2022-09-01  Daanturo  <daanturo@gmail.com>

	Make file-parent-directory more efficient

	* lisp/files.el (file-parent-directory): Use equal instead of
	file-equal-p to compare the found parent and the child
	(bug#56355).  This is much faster.

2022-09-01  Stefan Kangas  <stefankangas@gmail.com>

	Minor doc fix; improve sorting of VC backends

	* doc/emacs/maintaining.texi (Version Control Systems): Minor doc fix;
	rearrange list to put git, cvs and subversion at the top.

2022-09-01  Eli Zaretskii  <eliz@gnu.org>

	Clarify the doc string of 'set-face-attribute'

	* lisp/faces.el (set-face-attribute): Clarify the issue with
	resetting attribute values to 'unspecified' for future frames.
	(Bug#57499)

2022-09-01  Mattias Engdegård  <mattiase@acm.org>

	Better `take` and `ntake` bignum argument handling

	* src/fns.c (Ftake, Fntake): Treat positive bignum arguments
	as most-positive-fixnum which results in better error checking
	of improper lists.

2022-09-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	8807a4f532 Enable 256 colors in fbterm.
	bbc23ca8ab One more fix for find-file.el
	0cbcaf5119 ; Yet another doc fix for 'ff-other-file-alist' (bug#57325)
	2d9a391727 Recommend using fbterm in the Linux console.
	a5a92e577c ; * src/window.c (syms_of_window) <window-point-insertion-...
	4d52fe6b96 * lisp/find-file.el (ff-other-file-alist): Doc fix.  (Bug#...
	d111b5b651 * lisp/info.el (Info-mode): Support the Linux console better.
	cc945ec0ed ; Fix doc strings in latin1-disp.el
	195fcc932e Improve the documentation of glyphless-character display
	72ae02377e ; * lisp/jit-lock.el (jit-lock-chunk-size): Doc fix.
	3fb69fad49 Fix documentation of 'glyphless-char-display'

	# Conflicts:
	#	lisp/international/characters.el
	#	src/xdisp.c

2022-09-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-08-25 13:54:14 UTC.

2022-08-31  Jim Porter  <jporterbugs@gmail.com>

	Don't fail Eshell ERT tests when an internal signal gets raised

	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test/pipeline-connection-type/middle)
	(esh-proc-test/pipeline-connection-type/last): Set 'debug-on-error' to
	nil.

	Ref: https://lists.gnu.org/archive/html/emacs-devel/2022-08/msg01452.html

2022-08-31  Alan Mackenzie  <acm@muc.de>

	C++ Mode: Fontify functions correctly with commas in template expressions

	This fixes bug #57318.

	Also apply an optimization which marks generic expressions as already
	analyzed, thus avoiding repeating this analysis when not needed.  This
	optimization prevents the fix slowing down scrolling when the C++ source has
	lots of template structures.

	* lisp/progmodes/cc-engine.el (top-level) Near the beginning of the file, add
	a comment describing the new text property c-<>-c-types-set.
	(c-update-brace-stack): Bind c-restricted-<>-arglists to nil rather than t
	around the call to c-forward-<>-arglist.
	(c-forward-<>-arglist-recur): Allow the abbreviated analysis of a generic
	expression also when the opening < is marked with a c-<>-c-types-set text
	property.  Set this property at the same time as the c-type properties are set
	on the commas inside the template structure.

	* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Clear the
	c-<>-c-types-set text property, along with c-type, from the region being
	fontified.

2022-08-31  Robert Pluim  <rpluim@gmail.com>

	Fix describe-char-fold-equivalences for composed characters

	* lisp/char-fold.el (describe-char-fold-equivalences): Map
	`get-char-code-property' across all the component codepoints of the
	equivalent character rather than just the first one.

2022-08-31  ookami  <mail@ookami.one>  (tiny change)

	Fix semantic-find-file-noselect binding of recentf-exclude

	* lisp/cedet/semantic/fw.el (semantic-find-file-noselect):
	recentf-exclude should be a list (bug#57489).

2022-08-30  Po Lu  <luangruo@yahoo.com>

	Gently nudge Xt into always setting size hints

	* src/widget.c (update_wm_hints): Force a resource to change
	every time this function is called.  (bug#57475)
	(EmacsFrameInitialize): Initialize new field.
	* src/widgetprv.h (EmacsFramePart): New field `size_switch'.
	* src/xterm.c (x_wm_set_size_hint): Don't change flags if flags
	is 0.

2022-08-30  Po Lu  <luangruo@yahoo.com>

	Fix bug#57476

	* src/xterm.c (handle_one_xevent): Don't reset valuators on certain
	crossing events, for the benefit of xfwm4.  (bug#57476)

2022-08-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	t-mouse.el: Make sure we apply the setting to new terminals

	* lisp/t-mouse.el (gpm-mouse-tty-setup): New function.
	(gpm-mouse-mode): Use it as well as `tty-setup-hook`.
	* lisp/term/linux.el (terminal-init-linux): Remove gpm-specific code,
	not needed any more.

2022-08-30  Gregory Heytings  <gregory@heytings.org>

	Enable 256 colors in fbterm.

	* lisp/term/fbterm.el: New file.

	* doc/misc/efaq.texi (Emacs in a Linux console): Document the TERM
	environment variable with which the new file is used.

2022-08-30  Juri Linkov  <juri@linkov.net>

	Fix 744ed0ceeed7472a160fea7154939cf641205577 from bug#57082 (bug#57176)

	* lisp/outline.el (outline-minor-mode-highlight-buffer): Handle 'append'.
	(outline-minor-mode): Call outline--fix-up-all-buttons when font-lock is used.

	* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): Fix regexp.

2022-08-30  Eli Zaretskii  <eliz@gnu.org>

	One more fix for find-file.el

	* lisp/find-file.el (ff-get-file-name): Use 'expand-file-name'
	instead of 'concat', which doesn't DTRT with absolute file names.
	(ff-other-file-alist): Yet another doc fix.  (Bug#57325)

2022-08-30  Mattias Engdegård  <mattiase@acm.org>

	Accept bignum arguments in `take` and `ntake`

	* src/fns.c (Ftake, Fntake): Accept any integer as first argument, for
	completeness.
	* test/src/fns-tests.el (fns--take-ntake): Add test cases.

2022-08-30  Po Lu  <luangruo@yahoo.com>

	Fix junk data being returned with incremental selection transfers

	* src/xselect.c (receive_incremental_selection): New arg
	REAL_BYTES_RET.  Set it to the actual size instead of using the
	size of the array after it was grown by xpalloc.
	(x_get_window_property_as_lisp_data): Adjust call to
	receive_incremental_selection.

2022-08-30  Philip Kaludercic  <philipk@posteo.net>

	* package-vc.el (package-vc-unpack): Fix 'vc-ignore' call

	When generating the manual node (/dir), we need to ensure that the
	default-directory is set to the package root, otherwise the file is
	ignored in some other repository, that probably doesn't exist.

2022-08-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix char-fold compilation warning

	* lisp/char-fold.el (require): Get string-join definition.

2022-08-30  Juri Linkov  <juri@linkov.net>

	* lisp/char-fold.el (describe-char-fold-equivalences): New command.

	(char-fold--no-regexp): New internal variable.
	(char-fold--make-table): Use it to skip translation to regexp.
	Suggested by Robert Pluim <rpluim@gmail.com>.
	https://lists.gnu.org/archive/html/emacs-devel/2022-07/msg00864.html

2022-08-29  Jim Porter  <jporterbugs@gmail.com>

	Handle 'eshell-pipe-broken' when evaluating Lisp forms in Eshell

	* lisp/eshell/esh-cmd.el (eshell-exec-lisp): Handle
	'eshell-pipe-broken'.

	* lisp/eshell/esh-io.el (eshell-output-object-to-target): Only signal
	'eshell-pipe-broken' if the process being written to has finished.

	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test/pipeline-connection-type/middle)
	(esh-proc-test/pipeline-connection-type/last): Remove ':unstable'.

	Ref: https://lists.gnu.org/archive/html/emacs-devel/2022-08/msg00524.html

2022-08-29  Gregory Heytings  <gregory@heytings.org>

	Recommend using fbterm in the Linux console.

	* doc/misc/efaq.texi (Emacs in a Linux console): New node.
	(Common requests): Entry for the new node.

	* etc/PROBLEMS (Linux console problems...): Mention the new FAQ node.

2022-08-29  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	Merge remote-tracking branch 'origin/master' into feature/tree-sitter

2022-08-29  Stefan Kangas  <stefankangas@gmail.com>

	Improve point-at-{bol,eol} obsoletion message

	* lisp/subr.el (point-at-eol, point-at-bol): Mention 'pos-eol' and
	'pos-bol' in obsoletion message.

2022-08-29  Mattias Engdegård  <mattiase@acm.org>

	Fix reader memory leak upon error (bug#56623)

	Reported by Tom Gillespie; error found by Greg Hendershott.

	* src/lread.c (read_stack_reset): New.
	(read0): Reset read stack when unwinding from an error.

2022-08-29  Jake Moss  <jake.moss@uq.net.au>  (tiny change)

	Show gdb-mi disassembly over tramp

	* lisp/progmodes/gdb-mi.el (gdb-invalidate-disassembly): Show
	gdb-mi disassembly over tramp (bug#57464).

2022-08-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Work around `&' dired command when using the fish shell

	* lisp/dired-aux.el (dired-shell-stuff-it): Add a space before
	&wait; this apparently makes the `&' command work with the fish
	shell (bug#57472).

2022-08-29  Eli Zaretskii  <eliz@gnu.org>

	* lisp/find-file.el (ff-other-file-alist): Doc fix.  (Bug#57325)

2022-08-29  Eli Zaretskii  <eliz@gnu.org>

	Fix point adjustment in recreated *Messages* buffers

	* lisp/startup.el (normal-top-level): Move setting of
	'window-point-insertion-type' from here...
	* lisp/simple.el (messages-buffer-mode): ...to here.  This is so
	any *Messages* buffers we create instead of the original one, if
	it's killed, will have the same type of the window-point marker.
	(Bug#57466)

2022-08-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/keyboard.c (safe_run_hooks*): Simplify and generalize

	(safe_run_hooks_1, safe_run_hook_funcall): Simplify and generalize to
	arbitrary `nargs`.
	(safe_run_hooks_error): Remove unneeded assertion.

2022-08-29  Michael Albinus  <michael.albinus@gmx.de>

	Do not connect unreachable remote hosts in recentf

	* lisp/recentf.el (recentf-expand-file-name): Protect against
	stalled remote hosts.  (Bug#57336)

2022-08-29  Po Lu  <luangruo@yahoo.com>

	Unify floating point handling when reading XI motion events

	* src/xterm.c (handle_one_xevent): Always round values as
	recommended, instead of just truncating them.  Also fixes
	weird "jitter" during drag-and-drop on some clients.

2022-08-28  Juri Linkov  <juri@linkov.net>

	'C-c C-d' on vc-log buffer shows the diff from 'vc-log-fileset' (bug#52349)

	* lisp/vc/log-edit.el (log-edit-diff-fileset): New function.

	* lisp/vc/vc-dispatcher.el (vc-log-edit): Set log-edit-diff-function to
	log-edit-diff-fileset instead of vc-diff.

	* lisp/vc/vc.el (vc-diff): New optional arg ‘fileset’.
	If non-nil, use instead of vc-deduce-fileset.

2022-08-28  Juri Linkov  <juri@linkov.net>

	'C-x v v' on a diff buffer commits it as a patch (bug#52349)

	* lisp/vc/diff-mode.el (diff-vc-deduce-fileset): New function.

	* lisp/vc/log-edit.el (log-edit-diff-patch): New function.

	* lisp/vc/vc-dispatcher.el (vc-log-edit): Set log-edit-diff-function
	to log-edit-diff-patch when vc-patch-string is non-nil.
	(vc-start-logentry): New optional arg 'patch-string'.
	Set buffer-local 'vc-patch-string' to 'patch-string'.
	(vc-dispatcher-browsing): Add (derived-mode-p 'diff-mode).

	* lisp/vc/vc-git.el (vc-git-checkin-patch): New function.
	(vc-git-checkin): When vc-git-patch-string is non-nil,
	use `git apply --cached` to add the patch to the index,
	then commit the staged changes.

	* lisp/vc/vc.el: New backend function 'checkin-patch'.
	(vc-deduce-fileset-1): Call diff-vc-deduce-fileset in diff-mode.
	(vc-next-action): For model 'patch' call vc-checkin with the
	diff buffer string.
	(vc-checkin): New optional arg 'patch-string'.
	Call backend function 'checkin-patch' when 'patch-string' is non-nil.
	Call vc-start-logentry with 'patch-string'.
	(vc-diff-patch-string): New function.

2022-08-28  Juri Linkov  <juri@linkov.net>

	Revert parts of 3f076a8e44 that caused test failures

	* lisp/simple.el (line-move-finish):
	* lisp/window.el (scroll-command--goto-goal-column):
	Revert back to using truncate-partial-width-windows instead of
	truncated-partial-width-window-p.  This change caused test failures
	in lisp/ls-lisp-tests.log and lisp/emacs-lisp/edebug-tests.log.

2022-08-28  Ken Brown  <kbrown@cornell.edu>

	Fix data for files-tests-bug-21454 on Cygwin

	* test/lisp/files-tests.el (files-tests-bug-21454): Fix test data
	to reflect the fact that Cygwin supports UNC paths.

2022-08-28  Eli Zaretskii  <eliz@gnu.org>

	* lisp/info.el (Info-mode): Support the Linux console better.

2022-08-28  Eli Zaretskii  <eliz@gnu.org>

	Improve the documentation of glyphless-character display

	* lisp/international/characters.el (glyphless-char-display-control):
	* src/xdisp.c (syms_of_xdisp) <glyphless-char-display>: Mention
	the 'glyphless-char' face in the doc string.

	* doc/lispref/display.texi (Glyphless Chars): Index
	'glyphless-char' face.

2022-08-28  Po Lu  <luangruo@yahoo.com>

	Fix two issues in xterm.c

	* src/xterm.c (x_atom_refs): Make EMACS_SERVER_TIME_PROP atom
	have a vendor-specific prefix.
	(x_query_pointer_1): Fix leak of button mask.

2022-08-27  Juri Linkov  <juri@linkov.net>

	Use truncated-partial-width-window-p in more places (bug#56815)

	* lisp/simple.el (line-move, line-move-finish):
	Use truncated-partial-width-window-p.

	* lisp/window.el (count-screen-lines, scroll-command--goto-goal-column):
	Use truncated-partial-width-window-p.
	(truncated-partial-width-window-p): Replace window-width with
	window-total-width.

	* src/indent.c (scan_for_column): Bring the logic of using
	truncated-partial-width-window-p closer to what the display engine does.

2022-08-27  Juri Linkov  <juri@linkov.net>

	Use a list of text properties to search in symlink filenames in Wdired

	* lisp/dired-aux.el (dired-isearch-search-filenames):
	Use text properties 'dired-filename' and 'dired-symlink-filename'.

	* lisp/dired.el (dired-font-lock-keywords): Add text property
	'dired-symlink-filename' on symlinks.

	* lisp/isearch.el (isearch-search-fun-in-text-property):
	Support a list of text properties (bug#57293).

2022-08-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Make dynamic info-lookup more backwards-compatible

	* lisp/info-look.el (info-lookup--expand-info): Don't try to
	expand elements that aren't functions (bug#57446).

2022-08-27  Daniel Martín  <mardani29@yahoo.es>

	Fix webp detection on some Macos systems

	* configure.ac (HAVE_RSVG): Make webp detection work with Macos
	10.3/Homebrew (bug#57420).

2022-08-27  Eli Zaretskii  <eliz@gnu.org>

	Fix regression with cursor motion in Magit buffers

	* lisp/simple.el (line-move): Condition movement optimizations on
	presence of very long lines.  (Bug#57433)

2022-08-27  Eli Zaretskii  <eliz@gnu.org>

	Fix antialias face attribute when text is scaled

	This restores the code we had in realize_gui_face before commit bf0d3f7.
	The problem described in bug#17973, which led to that commit, only
	happens if one uses a specific (misc-fixed) font family, not for
	the usual default fonts used by Emacs, and I'm not sure what's
	described there is a bug at all.  At least for the purposes of
	text-scale-adjust, it makes no sense to ignore the
	foundry/family/adstyle of the original font, because we _want_ the
	same (or very similar) font, just of a different size.

	And likely in other use cases: if the :font attribute of a face
	specifies some font properties, we want to keep them all, not
	arbitrarily to ignore some of them.  And definitely catering to an
	obscure use case such as the one cited in bug#17973 is NOT a good
	reason to make such radical changes in face-realization behavior.

	So I think backing out that part of commit bf0d3f7 is TRT, and if
	we decide that this causes bug#17973 in too many situations we care
	about, I'd rather find a kludge for that specific case than do that
	for every face realization.
	* src/xfaces.c (realize_gui_face): Preserve face attributes when
	text is scaled.  This reverts part of the changes installed in
	commit bf0d3f7.  (Bug#37473)

2022-08-27  Alan Mackenzie  <acm@muc.de>

	CC Mode: Remove double evaluation of self-quoting function in cc-langs.el

	This is a followup to Stefan Monnier's fix for bug #57065 from 2022-08-25.

	* lisp/progmodes/cc-langs.el (c-init-language-vars): Add a #' after the
	funcall.

2022-08-27  Eli Zaretskii  <eliz@gnu.org>

	Support "replacement characters" on TTY frames

	* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground):
	* src/pgtkterm.c (pgtk_draw_glyphless_glyph_string_foreground):
	* src/haikuterm.c (haiku_draw_glyphless_glyph_string_foreground):
	* src/xterm.c (x_draw_glyphless_glyph_string_foreground):
	* src/w32term.c (w32_draw_glyphless_glyph_string_foreground):
	* src/xdisp.c (lookup_glyphless_char_display): Handle extra-slot
	of 'glyphless-char-display' that is a cons cell.
	(syms_of_xdisp) <glyphless-char-display>: Update doc string.

	* etc/NEWS:
	* doc/lispref/display.texi (Glyphless Chars): Document the new
	feature.

	* lisp/faces.el (glyphless-char): Make the face stand out on TTY
	frames that don't support the underline attribute.

2022-08-27  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of 'glyphless-char-display'

	* src/xdisp.c (syms_of_xdisp)<glyphless-char-display>: Doc fix.
	(gui_produce_glyphs, lookup_glyphless_char_display): Fix
	indentation.

2022-08-26  Po Lu  <luangruo@yahoo.com>

	Fix crash when handling "swallowed" generic events

	* src/xmenu.c (x_menu_translate_generic_event, x_menu_show):
	Pass through more events, correctly.
	* src/xterm.c (handle_one_xevent): Don't abort if must_free_data
	and xi_event is NULL; this is an Xlib bug.

2022-08-26  Dmitry Gutov  <dgutov@yandex.ru>

	xref-matches-in-files: Use with-connection-local-variables

	* lisp/progmodes/xref.el (xref-matches-in-files):
	Use with-connection-local-variables (bug#57385).

2022-08-26  Stefan Kangas  <stefankangas@gmail.com>

	Use shr as default for mm-text-html-renderer

	* lisp/gnus/mm-decode.el (mm-text-html-renderer): Use 'shr' as
	default to avoid a nil value.
	Problem reported by Mattias Engdegård <mattiase@acm.org>.

2022-08-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify the :box attributes in Face Attributes lispref node

	* doc/lispref/display.texi (Face Attributes): Mention that the
	elements are optional (bug#50699).

2022-08-26  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fontify correctly a brace list element followed only
	by syntactic WS

	This fixes a regression introduced in the fix for bug #56841
	on 2022-08-24.

	* lisp/progmodes/cc-engine.el (c-forward-declarator): Allow
	point to be at EOB after the call to c-forward-name, rather
	than rejecting it as an invalid declarator.  Also reindent
	a section of this function.

2022-08-26  Michael Albinus  <michael.albinus@gmx.de>

	Use `rx' in Tramp where possible

	* lisp/net/tramp.el:
	* lisp/net/tramp-adb.el:
	* lisp/net/tramp-archive.el:
	* lisp/net/tramp-cache.el:
	* lisp/net/tramp-cmds.el:
	* lisp/net/tramp-compat.el:
	* lisp/net/tramp-crypt.el:
	* lisp/net/tramp-ftp.el:
	* lisp/net/tramp-fuse.el:
	* lisp/net/tramp-gvfs.el:
	* lisp/net/tramp-integration.el:
	* lisp/net/tramp-rclone.el:
	* lisp/net/tramp-sh.el:
	* lisp/net/tramp-smb.el:
	* lisp/net/tramp-sudoedit.el: Use `rx' where possible.

	* lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times):
	Use `eval-when-compile'.
	(tramp-adb-maybe-open-connection): Use file-property for "/".  Use
	`eval-when-compile'.

	* lisp/net/tramp-cmds.el (mm-7bit-chars): Declare.
	(tramp-reporter-dump-variable): Simplify point movement.

	* lisp/net/tramp-gvfs.el (tramp-dbus-function): Fix typo.
	(tramp-zeroconf-parse-device-names): Use `tramp-prefix-port-format'.

	* lisp/net/tramp-sh.el (tramp-open-shell, tramp-find-shell):
	Use `eval-when-compile'.  Improve sanity check.

	* lisp/net/tramp.el (tramp-prefix-format, tramp-prefix-regexp)
	(tramp-method-regexp, tramp-postfix-method-format)
	(tramp-postfix-method-regexp, tramp-prefix-ipv6-format)
	(tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format)
	(tramp-postfix-ipv6-regexp, tramp-postfix-host-format)
	(tramp-postfix-host-regexp, tramp-remote-file-name-spec-regexp)
	(tramp-file-name-structure, tramp-file-name-regexp)
	(tramp-completion-method-regexp)
	(tramp-completion-file-name-regexp): Declare.
	(tramp-set-syntax): Set also `tramp-completion-method-regexp'.
	(tramp-volume-letter-regexp, tramp-completion-method-regexp-alist):
	New defconsts.
	(tramp-build-completion-method-regexp): New defun.
	(tramp-completion-method-regexp): New defvar.
	(tramp-completion-file-name-regexp-default)
	(tramp-completion-file-name-regexp-simplified)
	(tramp-completion-file-name-regexp-separate)
	(tramp-completion-file-name-regexp-alist): Remove.
	(tramp-build-completion-file-name-regexp): Rwrite.
	(tramp-make-tramp-file-name): Use `tramp-archive-method'.
	(tramp-handle-file-directory-p): Ignore errors.
	(tramp-handle-find-backup-file-name, tramp-handle-lock-file)
	(tramp-handle-make-auto-save-file-name): Use `eval-when-compile'.

	* test/lisp/net/tramp-archive-tests.el:
	* test/lisp/net/tramp-tests.el: Use `rx' where possible.
	(tramp-test01-file-name-syntax): Adapt test.

2022-08-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the *Ido COmpletions* buffer fit the window to the buffer

	* lisp/ido.el (ido-completion-help): Display the ido completions
	buffer pretty much the same way that the default *Completions*
	buffer is displayed (bug#50671).  This means that we're defaulting
	to fit-window-to-buffer.

2022-08-26  Augusto Stoffel  <arstoffel@gmail.com>

	New option 'thrifty' for Man-notify-method

	* lisp/man.el (Man-notify-when-ready): Accept new 'thrifty' notify
	method.
	(Man-notify-method): Explain what 'thrifty' does (bug#57408).

2022-08-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Delete blank lines at the start of the cited text in message-indent-citation

	* lisp/gnus/message.el (message-indent-citation): Fix thinko in
	the fix for the previous thinko.

2022-08-26  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix recent gamegrid.el change for nox build

	* lisp/play/gamegrid.el (gamegrid-make-glyph): Declare
	image-scaling-factor as special before dynamically binding it, for
	the sake of --without-x builds which do not preload lisp/image.el.

2022-08-26  Basil L. Contovounesios  <contovob@tcd.ie>

	Pacify obsolete gv warnings in xt-mouse-tests.el

	* test/lisp/xt-mouse-tests.el (with-xterm-mouse-mode): Replace
	deprecated generalized variables frame-width and frame-height with
	direct calls to set-frame-width and set-frame-height, respectively.

2022-08-26  Jim Porter  <jporterbugs@gmail.com>

	Kill the buffer for the temp file after using '$<command>' in Eshell

	* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Kill the temp
	file's buffer when we're done.

	Ref: https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-08/msg01444.html

2022-08-26  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e3b8577525 ; * etc/DEBUG: Fix wording of "X protocol errors" section.

2022-08-26  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	9e03e29c4e * lisp/wdired.el: Improve "Commentary" section.
	92e90297f9 * lisp/wdired.el: Doc fix; don't mention obsolete variable.
	2ccefef4c7 * lisp/progmodes/etags.el (next-file): Minor doc fix.

2022-08-25  Po Lu  <luangruo@yahoo.com>

	Restore old code in x_sync_trigger_fence

	* src/xterm.c (x_sync_trigger_fence): Restore old code, since that
	makes it easier to adapt to more than 2 sync fences (which might be
	necessary in the future, if we ever decide to do frame handling
	asynchronously), and is much more recognizable for people coming from
	other programs.

2022-08-25  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2022-08-25  Paul Eggert  <eggert@cs.ucla.edu>

	Fix overflows in HAVE_XSYNC timestamp handling

	Also, port to platforms lacking CLOCK_MONOTONIC and int64_t, and
	use 0 more consistently to represent missing timestamps.
	* src/xterm.h (struct x_display_info):
	Omit server_time_monotonic_p and server_time_offset if
	!HAVE_CLOCK_GETTIME since they are unused in that case.
	* src/xterm.h (struct x_display_info, struct x_output):
	* src/xterm.c (x_sync_get_monotonic_time)
	(x_sync_current_monotonic_time, x_sync_note_frame_times):
	Use int_fast64_t instead of int64_t as POSIX doesn't
	guarantee the latter.  Similarly for uint_fast64_t.
	(x_sync_get_monotonic_time, x_sync_current_monotonic_time)
	(x_sync_note_frame_times, x_display_set_last_user_time):
	Check for integer overflow in time arithmetic.
	(CLOCK_MONOTONIC): Define to CLOCK_REALTIME if absent.
	(x_sync_current_monotonic_time): Check for clock_gettime failure
	and fall back on CLOCK_REALTIME if CLOCK_MONOTONIC does not work,
	which POSIX allows.
	(x_sync_current_monotonic_time, x_sync_note_frame_times)
	(x_display_set_last_user_time):
	Use 0 more consistently to represent missing timestamps.

2022-08-25  Paul Eggert  <eggert@cs.ucla.edu>

	Fix unlikely core dump with Xaw

	* lwlib/lwlib-Xaw.c (make_dialog): Don’t dump core if calloc fails.
	Caught with --enable-gcc-warnings.

2022-08-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/cc-langs.el (c-make-no-parens-syntax-table): Fix bug#57065

	(c-lang-const c-make-mode-syntax-table) already returns a function,
	so quote it to avoid double evaluation since it could fail if the
	function is not self-evaluating, such as when it's a symbol or
	a value of the form (closure ...).

2022-08-25  Stefan Kangas  <stefankangas@gmail.com>

	Improve explanation of init file in FAQ

	* doc/misc/efaq.texi (Setting up a customization file): Improve
	and update section to reflect current behavior.  Add
	cross-references back to this section.
	* doc/emacs/custom.texi (Init File): Add comment to remind about
	also updating the FAQ.
	Ref: https://lists.gnu.org/r/emacs-devel/2022-08/msg01056.html

2022-08-25  Stefan Kangas  <stefankangas@gmail.com>

	Don't refer to Emacs 24.3 or older in FAQ

	* doc/misc/efaq.texi: Don't say that the FAQ has been edited.
	(Displaying the current line or column, Automatic indentation)
	(Problems with very large files, Emacs for other operating systems)
	(Right-to-left alphabets, Expanding aliases when sending mail): Remove
	references to Emacs 24.3 or older.

	(Learning how to do something): Don't include the reference card
	price; it is currently incorrect and is likely to be incorrect again
	in the future.

2022-08-25  Robert Pluim  <rpluim@gmail.com>

	Treat smtp-auth method from auth-info as a symbol

	The lookup of the SMTP auth method is done based on symbols, but
	sometimes the requested value comes from `auth-info', in which case it
	is a string, so call `intern-soft' to convert it to a symbol (which
	does nothing if it's already a symbol).

	* lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Call
	`intern-soft' on the smtp-auth key's value.  (Bug#57373)

	Do not merge to master

2022-08-25  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/wdired.el: Improve "Commentary" section.

	* lisp/wdired.el: Doc fix; don't mention obsolete variable.

	* lisp/progmodes/etags.el (next-file): Minor doc fix.

2022-08-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new user option grep-command-position

	* lisp/progmodes/grep.el (grep-command): Mention it.
	(grep-command-position): New user option.
	(grep): Use it (bug#50502).

2022-08-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Document how :map and :scale interacts in image maps

	* doc/lispref/display.texi (Image Descriptors): Mention problems
	with scaling (bug#50487).

2022-08-25  Stefan Kangas  <stefankangas@gmail.com>

	Fix generalized variable documentation for recent change

	* doc/lispref/variables.texi (Setting Generalized Variables): Delete
	obsolete generalized variable 'frame-width'.

2022-08-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Make a prefix go to the previous error

	* lisp/textmodes/flyspell.el (flyspell-goto-next-error): Make a
	prefix find the previous error (bug#50443).

2022-08-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention C-x C-q + revert change in NEWS

2022-08-25  Robert Pluim  <rpluim@gmail.com>

	Treat smtp-auth method from auth-info as a symbol

	The lookup of the SMTP auth method is done based on symbols, but
	sometimes the requested value comes from `auth-info', in which case it
	is a string, so call `intern-soft' to convert it to a symbol (which
	does nothing if it's already a symbol).

	* lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Call
	`intern-soft' on the smtp-auth key's value.  (Bug#57373)

2022-08-25  Kien Nguyen  <kien.n.quang@gmail.com>

	Allow symlink creation on MS-Windows without Administrator privileges

	* src/w32.c (symlink): Use the
	SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE flag when available.
	(Bug#57386)

2022-08-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix warning about obsoleted generalized variables

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete):
	Autoload so that the call here from gv.el (about obsolete
	generalized variables) doesn't bug out (bug#57394).

2022-08-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Make frame-width obsolete as a generalized variable

	* lisp/emacs-lisp/gv.el (frame-width): Make obsolete as
	generalized variable.

2022-08-25  Daniel Martín  <mardani29@yahoo.es>

	Fix instrumented eval-defun not printing "Edebug:" to the echo area

	* lisp/progmodes/elisp-mode.el (elisp--eval-defun): Determine if we're
	instrumenting a function and call eval-region with PRINTFLAG set to
	nil if so (Bug#50245).

	* test/lisp/progmodes/elisp-mode-tests.el
	(eval-defun-prints-edebug-when-instrumented): Add a new test.

2022-08-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Add hideshow-test.el file (bug#56635)

2022-08-25  kobarity  <kobarity@gmail.com>

	Add Python blocks support for hideshow

	* lisp/progmodes/python.el (python-nav-beginning-of-block-regexp):
	New variable.
	(python-hideshow-forward-sexp-function): Change to call
	`python-nav-end-of-block'.
	(python-hideshow-find-next-block): New function to be used as
	FIND-NEXT-BLOCK-FUNC in `hs-special-modes-alist'.
	(python-info-looking-at-beginning-of-block): New function to be
	used as LOOKING-AT-BLOCK-START-P-FUNC in `hs-special-modes-alist'.
	(python-mode): Change settings of `hs-special-modes-alist'.

	* test/lisp/progmodes/python-tests.el
	(python-hideshow-hide-levels-1): Fix to keep empty lines.
	(python-info-looking-at-beginning-of-block-1)
	(python-hideshow-hide-levels-3, python-hideshow-hide-levels-4)
	(python-hideshow-hide-all-1, python-hideshow-hide-all-2)
	(python-hideshow-hide-all-3, python-hideshow-hide-block-1): New
	tests (bug#56635).

2022-08-25  kobarity  <kobarity@gmail.com>

	Extend `hs-special-modes-alist' for languages such as Python

	* lisp/progmodes/hideshow.el (hs-special-modes-alist): Add
	elements FIND-BLOCK-BEGINNING-FUNC, FIND-NEXT-BLOCK-FUNC, and
	LOOKING-AT-BLOCK-START-P-FUNC.
	(hs-find-block-beginning-func): New variable to hold
	FIND-BLOCK-BEGINNING-FUNC.
	(hs-find-next-block-func): New variable to hold
	FIND-NEXT-BLOCK-FUNC.
	(hs-looking-at-block-start-p-func): New variable to hold
	LOOKING-AT-BLOCK-START-P-FUNC.
	(hs-grok-mode-type): Set new variables from
	`hs-special-modes-alist'.
	(hs-find-next-block): New function.
	(Misc.): Update callers of the above functions.

	* test/lisp/progmodes/hideshow-tests.el: New test file (bug#56635).

2022-08-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow not deleting the config.cache file with "make FAST=true bootstrap"

	* Makefile.in: Add some commentary about make bootstrap,
	./configure -C and FASTo
	(top_bootclean): Don't delete config.cache here.
	(top_distclean): Delete it here instead.
	(bootstrap-clean): Allow not deleting the cache file.

	* admin/emake (cores): Adjust.

2022-08-25  Michael Albinus  <michael.albinus@gmx.de>

	Minor fixes in tramp-tests.el

	* test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat)
	(tramp--test-deftest-with-perl)
	(tramp--test-deftest-with-ls): Skip if underlying test didn't run
	or lasted too long.
	(tramp--test-shell-file-name): Do not depend on `tramp--test-adb-p'.

2022-08-25  Andreas Schwab  <schwab@suse.de>

	* configure.ac: Move AC_LANG_PUSH/POP out of AC_CACHE_CHECK.  (Bug#57380)

2022-08-25  Po Lu  <luangruo@yahoo.com>

	Fix various problems with mouse highlight on XI2 builds

	* src/dispextern.h (reset_mouse_highlight): Fix coding style.
	* src/xterm.c (xi_position_changed): New functions.
	(xi_report_motion_window_clear, handle_one_xevent): Don't report
	motion events if the pixel position did not actually change.

	* src/xterm.h (struct xi_device_t): New fields
	`last_motion_window', `last_motion_x' and `last_motion_y'.

2022-08-24  Dmitry Gutov  <dgutov@yandex.ru>

	vc-merge: Look for 'merge-file' instead of 'merge'

	* lisp/vc/vc.el (vc-merge):
	Look for 'merge-file' in second clause (bug#50258).

2022-08-24  Alan Mackenzie  <acm@muc.de>

	C++ Mode - Fontify "class Foo {\n  ~Foo() noexcept;" correctly

	This fixes bug #49787.

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): (In `if' form just
	before CASE 8) Remove the (not ...) around the (looking-at
	c-after-suffixed-type-maybe-decl-key).

	* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Add
	`c-not-decl' to the values of c-type which are erased at the start of a
	fontification.

2022-08-24  Eli Zaretskii  <eliz@gnu.org>

	Fix handling of UNCs in 'parse-colon-path

	* lisp/files.el (parse-colon-path): Don't remove the second
	leading slash on systems that support UNCs.  (Bug#57353)

	* test/lisp/files-tests.el (files-tests-bug-21454): Update
	expected results.
	(files-colon-path): Add a new test pattern.

2022-08-24  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fontify args correctly when arglist closing ) is not on the same line

	This fixes bug #56841.

	* lisp/progmodes/cc-engine.el (c-forward-declarator): Fix an off-by-one
	comparing the position after a c-forward-name with a limit.

	* lisp/progmodes/cc-mode.el (c-fl-decl-end): Handle correctly point starting
	inside a literal.  Insert a missing c-backward-syntactic-ws in the handling of
	C++ attributes.  Correctly handle an unmatched (.  Better handle point
	starting inside a [ or (.  Tidy up the handling of syntactic whitespace at the
	end of the buffer.

2022-08-24  Santiago Calandrino  <san@disroot.org>  (tiny change)

	Fix string padding in gdb-mi

	* lisp/progmodes/gdb-mi.el (gdb-table): Fix string padding in
	gdb-mi (bug#57362).
	(gdb-pad-string): Unobsolete.
	(gdb-table-string): Re-fix string padding.

2022-08-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't lose read-only marking when reverting a view-mode buffer

	* lisp/view.el (view--enable): Don't lose read-only-ness when
	reverting (bug#35166).

2022-08-24  Lars Ingebrigtsen  <larsi@gnus.org>

	When reverting, preserve the readedness state set by `C-x C-q'

	* lisp/files.el (revert-buffer): Save the user's intention in a
	variable (bug#50431).

	* lisp/simple.el (read-only-mode): Use it.

2022-08-24  Po Lu  <luangruo@yahoo.com>

	Fix input extension focus tracking with some window managers

	* src/xterm.c (handle_one_xevent): If a window manager sends us
	FocusIn and FocusOut with XSendEvent (they do that), don't
	detect focus changes when XInput 2 is enabled.  The X server
	will tell us the actual truth if the focus really did change.

2022-08-24  Stefan Kangas  <stefankangas@gmail.com>

	Make mh-colors-available-p obsolete

	* lisp/mh-e/mh-utils.el (mh-colors-available-p): Redefine as
	obsolete function alias for 'display-color-p'.

2022-08-24  Stefan Kangas  <stefankangas@gmail.com>

	Prefer saying "init file" to ".emacs" in FAQ

	* doc/misc/efaq.texi: Prefer saying "init file" to
	".emacs".  (Bug#49424)

2022-08-23  Stefan Kangas  <stefankangas@gmail.com>

	Use substitute-command-keys in a few more places

	* lisp/indent.el (edit-tab-stops):
	* lisp/printing.el (pr-help-message, pr-show-setup):
	* lisp/progmodes/cperl-mode.el (cperl-narrow-to-here-doc): Use
	substitute-command-keys.

2022-08-23  Stefan Kangas  <stefankangas@gmail.com>

	Move generalized variable `substring' doc to elisp manual

	* doc/misc/cl.texi (Setf Extensions): Move documentation on
	'substring' generalized variable from here...
	* doc/lispref/variables.texi (Setting Generalized Variables):
	...to here.

2022-08-23  Stefan Kangas  <stefankangas@gmail.com>

	Move generalized variable docs to elisp manual

	* doc/misc/cl.texi (Setf Extensions): Delete documentation on obsolete
	generalized variable 'buffer-substring'.  Move documentation on
	generalized variables from here...
	* doc/lispref/variables.texi (Setting Generalized Variables):
	...to here.  These variables have already been moved to gv.el.

2022-08-23  Stefan Kangas  <stefankangas@gmail.com>

	Update documentation for obsolete generalized variables

	* doc/misc/cl.texi (Setf Extensions): Delete obsolete generalized
	variables from list.
	* etc/NEWS: Fix sorting of obsolete generalized variables.

2022-08-23  Gregory Heytings  <gregory@heytings.org>

	Merge master into feature/improved-locked-narrowing.

2022-08-23  Gregory Heytings  <gregory@heytings.org>

	Improve detection of long lines.

	* src/buffer.h (struct buffer_text): New field.
	(BUF_CHARS_UNCHANGED_MODIFIED, CHARS_UNCHANGED_MODIFIED): New macros.

	* src/buffer.c (Fget_buffer_create): Initialize the new field.

	* src/xdisp.c (mark_window_display_accurate_1): Set the new field.
	(redisplay_window): Use it, together with CHARS_MODIFF, instead of
	MODIFF and UNCHANGED_MODIFIED to decide whether to check for long
	lines.

	* src/pdumper.c (dump_buffer): Dump the new field.

2022-08-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Add NEWS entry about obsoleted generalized variables

2022-08-23  Stefan Kangas  <stefankangas@gmail.com>

	Make XEmacs compat alias face-background-pixmap obsolete

	* lisp/faces.el (face-background-pixmap)
	(set-face-background-pixmap): Make XEmacs compat aliases obsolete in
	favor of 'face-stipple' and 'set-face-stipple'.  Update callers.

	* lisp/emacs-lisp/gv.el (face-background-pixmap): Make XEmacs
	alias obsolete as a generalized variable.
	(face-stipple): New generalized variable.
	* doc/misc/cl.texi (Setf Extensions): Refer to above new generalized
	variable instead of the obsolete one.

2022-08-23  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/elisp-mode.el (elisp--local-variables-1): Fix bug#50034

	Don't burp if the arg list of a function is not actually a list.

2022-08-23  Stefan Kangas  <stefankangas@gmail.com>

	Make Emacs 20 compat alias obsolete in eudcb-ldap.el

	* lisp/net/eudcb-ldap.el (eudc-ldap-get-host-parameter): Make
	Emacs 20 compat alias obsolete.

2022-08-23  Gerd Möllmann  <gerd@gnu.org>

	Fix pixel-scroll-precision in a corner case

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up-page): Handle
	case that point cannot be found.
	(pixel-scroll-precision-scroll-up): Handle case that window is one line high
	(bug#57349)

2022-08-23  Po Lu  <luangruo@yahoo.com>

	Make frame synchronization conditional on clock_gettime

	* src/xfns.c (x_set_parent_frame)
	(x_set_use_frame_synchronization):
	* src/xterm.c (x_update_begin, show_back_buffer, x_update_end)
	(x_display_set_last_user_time, handle_one_xevent):
	* src/xterm.h (struct x_output): Define out vsync code when
	!HAVE_CLOCK_GETTIME.  (bug#57346)

2022-08-23  Po Lu  <luangruo@yahoo.com>

	Make frame synchronization conditional on clock_gettime

	* src/xfns.c (x_set_parent_frame)
	(x_set_use_frame_synchronization):
	* src/xterm.c (x_update_begin, show_back_buffer, x_update_end)
	(x_display_set_last_user_time, handle_one_xevent):
	* src/xterm.h (struct x_output): Define out vsync code when
	!HAVE_CLOCK_GETTIME.

2022-08-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Disable a lisp-mode test that now fails

	* test/lisp/emacs-lisp/lisp-mode-tests.el
	(test-lisp-current-defun-name): Comment-out now-failing tests.

2022-08-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert the changes to lisp-current-defun-name

	* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Revert
	back to the old version before bug#49592.  The new approach just
	doesn't work well enough -- we don't really have the data to know
	that, say, `make-obsolete-variable' is about the second symbol and
	not the first.

2022-08-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't mention obsolete generalized variables in *Help*

	* lisp/help-fns.el (help-fns--generalized-variable): Don't mention
	obsolete ones.

2022-08-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make buffer-local-value obsolete as a generalized variable

	* lisp/electric.el (electric-indent-local-mode)
	(electric-layout-local-mode, electric-quote-local-mode):
	* lisp/elec-pair.el (electric-pair-local-mode): Adjust usage.
	* lisp/emacs-lisp/gv.el (make-obsolete-generalized-variable): Move
	since we're using it earlier in the file.
	(buffer-local-value): Make obsolete as a generalized variable
	since the semantics are unclear (bug#26624).

2022-08-23  Thierry Volpiatto  <thievol@posteo.net>

	Fix wdired with (dired '(dir f1 f2 ...))

	* lisp/wdired.el (wdired-finish-edit): Fix wdired with (dired
	'(dir f1 f2 ...)) (bug#57334).

2022-08-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1dd0a5c5db ; * doc/misc/htmlfontify.texi: Fix version.

2022-08-22  Augusto Stoffel  <arstoffel@gmail.com>

	Fix completion-predicate of Python shell commands

	* lisp/progmodes/python.el:  Change some completion predicates.
	(python-shell--completion-predicate): New completion predicate
	function.  (Bug#57184)

2022-08-22  Stefan Kangas  <stefankangas@gmail.com>

	Make point-at-eol and point-at-bol obsolete

	* lisp/subr.el (point-at-eol, point-at-bol): Make XEmacs compat
	aliases obsolete in favor of `pos-bol'/'line-beginning-position' or
	'pos-eol'/'line-end-position'.  Update callers.
	Ref: https://lists.gnu.org/r/emacs-devel/2022-08/msg00853.html

2022-08-22  Po Lu  <luangruo@yahoo.com>

	Allow disabling the input extension at runtime on GTK 3

	* src/xterm.c (xi_check_toolkit): New function.
	(x_term_init): Do not enable the input extension should that
	fail.

2022-08-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some no-X build warnings

	* lisp/cus-edit.el (fringe-bitmap-p): Autoload.

	* lisp/image.el (clear-image-cache): Declare.

	* lisp/mouse.el (dnd-begin-file-dram): Autoload.

	* lisp/thumbs.el (image-supported-file-p): Declare (bug#57342).

	* lisp/mail/rmailmm.el (rmail-mime-set-bulk-data):
	* lisp/emacs-lisp/icons.el (icons--create): Avoid warnings on no-X
	builds.

2022-08-22  Michael Albinus  <michael.albinus@gmx.de>

	auth-source: Fix wrong-type-argument when searching secret services

	`auth-source-search' can be called with an integer port number,
	while the backend implementation doesn't allow non-string attributes.

	* doc/misc/auth.texi (Secret Service API): Attribute values are
	stringified.

	* lisp/auth-source.el (auth-source-secrets-search):
	Ensure attributes are string.  (Bug#55199)

2022-08-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Link the "f" interactive spec to `read-file-name' in the manual

	* doc/lispref/commands.texi (Interactive Codes): Link to the
	Reading File Names node.

2022-08-22  Robert Pluim  <rpluim@gmail.com>

	Use the attributes of frame's monitor for gamegrid

	* lisp/play/gamegrid.el (gamegrid-calculate-glyph-size): Use the
	monitor where the current frame is displayed rather than the primary
	monitor.

2022-08-22  Stefan Kangas  <stefankangas@gmail.com>

	Prefer pos-bol and pos-eol in tabulated-list.el

	* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print)
	(tabulated-list-print-entry, tabulated-list-delete-entry)
	(tabulated-list-set-col, tabulated-list-previous-column): Prefer
	pos-bol and pos-eol.

2022-08-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Make ispell-find-hunspell-dictionaries more resilient

	* lisp/textmodes/ispell.el (ispell-find-hunspell-dictionaries):
	Try harder to find the dictionary (bug#49982).

2022-08-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix indent-tabs-mode globality

	* lisp/simple.el (indent-tabs-mode): This is not a global mode, so
	don't claim it is (bug#49971).

2022-08-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the size of elements the same in pgtk and X in tetris

	* lisp/play/gamegrid.el (gamegrid-glyph-height-mm): Decrease
	height a bit (since it wasn't really that height).
	(gamegrid-calculate-glyph-size): Change calculation to work on
	both X and pgtk (bug#49937).
	(gamegrid-make-glyph): Inhibit image scaling.

2022-08-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove probably debugging code in reb-fontify-string-re

	* lisp/emacs-lisp/re-builder.el (reb-fontify-string-re): Remove
	code that looks like left-over debugging code.  This fixes a
	compilation warning.

2022-08-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Make start/end in libxml-parse-html-region optional

	* doc/lispref/text.texi (Parsing HTML/XML): Adjust.

	* src/xml.c (parse_region): Default start/end to point-min/point-max.
	(Flibxml_parse_html_region, Flibxml_parse_xml_region): Make
	start/end optional.

2022-08-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix defcustom type of auto-save-file-name-transforms

	* lisp/files.el (auto-save-file-name-transforms): Fix the
	defcustom type (bug#57321).

2022-08-22  Gerd Möllmann  <gerd@gnu.org>

	LLDB support: handle unsorted enum member lists

	* etc/emacs_lldb.py (enumerator_name): Handle the case that enum
	member list is not sorted by value.

2022-08-22  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix some type spec

2022-08-22  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	582ea6a1e9 Update to Org 9.5.4-19-g4dff42
	7a3ae3cb62 ; * lisp/find-file.el (ff-other-file-alist): Fix typo.
	c3087b59f0 ; * lisp/find-file.el (ff-other-file-alist): Another doc f...
	1e1263b00b * lisp/find-file.el (ff-other-file-alist): Doc fix.  (Bug#...

2022-08-21  Po Lu  <luangruo@yahoo.com>

	Fix child frame focus for MPX environments

	* src/xterm.c (handle_one_xevent): Set child frame click-to
	focus on the pointer device's attachment.

2022-08-21  Gonzalo Larumbe  <gonzalomlarumbe@gmail.com>

	Fix more lexical-binding fallout in vhdl-speedbar-insert-hierarchy

	* lisp/progmodes/vhdl-mode.el (vhdl-speedbar-insert-hierarchy):
	Check the input arguments, not the dynamically bound `end-arglist'
	(bug#57327).

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make *Help* display info about generalized variables

	* lisp/help-fns.el (help-fns--generalized-variable): New function
	to document generalized variables.

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Make the generalized buffer-local-variable obsolete"

	This reverts commit bfe222288e02472bff0e1ab5ba7ef26af6a2769a.

	This led to the local modes not working.

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the generalized buffer-local-variable obsolete

	* lisp/paren.el (show-paren-local-mode):
	* lisp/electric.el (electric-indent-local-mode)
	(electric-layout-local-mode, electric-quote-local-mode):
	* lisp/elec-pair.el (electric-pair-local-mode): Don't use it.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): Autoload.

	* lisp/emacs-lisp/gv.el (buffer-local-variable): Make obsolete
	(bug#26624).

	* lisp/emacs-lisp/gv.el (make-obsolete-generalized-variable): Move
	to allow usage.

2022-08-21  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.5.4-19-g4dff42

2022-08-21  Gregory Heytings  <gregory@heytings.org>

	Minor improvements to locked narrowing.

	* lisp/subr.el (with-locked-narrowing): Add 'save-restriction' around
	the macro body.  Update docstring.

	* src/editfns.c (Fwiden, Fnarrowing_lock): Docstring improvements.

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust autorevert tests to recent change

	* test/lisp/autorevert-tests.el (auto-revert--wait-for-revert):
	Adjust test to code change.

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make many seldom-used generalized variables obsolete

	The vast majority of these are unused in-tree, and many of them
	perform actions that aren't obvious when reading the code.

	* lisp/server.el (server-ensure-safe-dir): Prefer with-file-modes
	over letf-ing default-file-modes.
	(server-start): Ditto.

	* lisp/winner.el (winner-set-conf): Don't use generalized variable
	window-height.

	* lisp/emacs-lisp/gv.el: Make most little-used generalized
	variables obsolete.

	* lisp/org/oc-basic.el (org-cite-basic--set-keymap): Adjust
	buffer-substring generalized variable usage.

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make it possible to mark generalized variables as obsolete

	* doc/lispref/variables.texi (Adding Generalized Variables):
	Document it.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): Alter
	the interface so that it can also be used by generalized variable
	warnings.
	(byte-compile-function-warn): Adjust caller.
	(byte-compile-check-variable): Adjust caller.

	* lisp/emacs-lisp/gv.el (gv-get): Warn about obsolete generalized
	variables (bug#49730).
	(make-obsolete-generalized-variable): New function.

2022-08-21  Gregory Heytings  <gregory@heytings.org>

	Better way to protect redisplay routines from locked narrowings.

	* src/xdisp.c (reset_outermost_narrowing,
	unwind_reset_outermost_narrowing): New functions.
	(redisplay_internal): Use the new functions.

	* src/editfns.c (Fnarrow_to_region): Use the limits of the
	locked restriction instead of the position arguments if necessary.
	Update docstring.
	(Fnarrowing_lock): Update docstring.

2022-08-21  Gregory Heytings  <gregory@heytings.org>

	Revert 4f19e1a5d1

2022-08-21  Eli Zaretskii  <eliz@gnu.org>

	* lisp/find-file.el (ff-other-file-alist): Doc fix.  (Bug#57325)

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention delete-line in shortdoc

	* lisp/emacs-lisp/shortdoc.el (buffer): Mention delete-line.

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Simplify `delete-line'

	* lisp/subr.el (delete-line): Simplify.

2022-08-21  Stefan Kangas  <stefankangas@gmail.com>

	Prefer pos-bol and pos-eol in bookmark.el

	* lisp/bookmark.el (bookmark--set-fringe-mark)
	(bookmark--remove-fringe-mark, bookmark-kill-line)
	(bookmark--jump-via): Prefer pos-bol and pos-eol.

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove a newline from the end of an error message

	* src/pdumper.c (dump_native_comp_unit): Remove newline from end
	of error message.

2022-08-21  Mattias Engdegård  <mattiase@acm.org>

	Fix eshell-pipe-broken signaling

	* lisp/eshell/esh-io.el (eshell-output-object-to-target):
	Second argument to `signal` should be a list.

2022-08-21  Stefan Kangas  <stefankangas@gmail.com>

	Mark another esh-proc test as unstable

	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test/pipeline-connection-type/middle): Mark test as unstable
	as it fails quite a lot.

2022-08-21  Stefan Kangas  <stefankangas@gmail.com>

	Prefer pos-bol and pos-eol in tests

	* test/lisp/calendar/todo-mode-tests.el
	(todo-test-toggle-item-header02, todo-test-edit-item-date-month)
	(todo-test-multiline-item-indentation-1)
	(todo-test-multiline-item-indentation-2)
	(todo-test-multiline-item-indentation-3):
	* test/lisp/cedet/semantic-utest-ia.el (semantic-ia-utest-buffer)
	(semantic-sr-utest-buffer-refs):
	* test/lisp/cedet/semantic-utest.el (semantic-utest-kill-indicator)
	(semantic-utest-unkill-indicator):
	* test/lisp/dired-tests.el (dired-test-bug27968):
	* test/lisp/emacs-lisp/backtrace-tests.el
	(backtrace-tests--verify-single-and-multi-line):
	* test/lisp/emacs-lisp/find-func-tests.el
	(find-func-tests--find-library-verbose):
	* test/lisp/erc/erc-tests.el (erc-ring-previous-command)
	(erc-log-irc-protocol):
	* test/lisp/gnus/message-tests.el (message-mode-propertize):
	* test/lisp/info-xref-tests.el (info-xref-test-emacs-manuals):
	* test/lisp/mail/footnote-tests.el (footnote-tests-same-place):
	* test/lisp/progmodes/elisp-mode-tests.el
	(elisp-shorthand-completion-at-point):
	* test/lisp/progmodes/f90-tests.el (f90-test-bug38415):
	* test/lisp/progmodes/python-tests.el
	(python-indent-electric-comma-inside-multiline-string)
	(python-indent-electric-comma-after-multiline-string)
	(python-indent-electric-colon-1, python-indent-electric-colon-2)
	(python-indent-electric-colon-3, python-indent-electric-colon-4)
	(python-mark-defun-2, python-mark-defun-3, python-mark-defun-4)
	(python-mark-defun-5, python-nav-end-of-defun-2)
	(python-nav-end-of-statement-1, python-nav-end-of-block-1)
	(python-indent-dedent-line-backspace-2)
	(python-indent-dedent-line-backspace-3)
	(python-eldoc--get-symbol-at-point-1)
	(python-info-beginning-of-statement-p-1)
	(python-info-beginning-of-statement-p-2):
	* test/lisp/replace-tests.el (replace-occur-revert-bug32543)
	(replace-occur-revert-bug32987):
	* test/lisp/simple-tests.el (simple-delete-indentation-boundaries)
	(simple-delete-indentation-region)
	(line-number-at-pos-in-narrow-buffer)
	(line-number-at-pos-keeps-restriction):
	* test/lisp/textmodes/css-mode-tests.el (css-mode-test-selectors)
	(scss-mode-test-selectors):
	* test/lisp/textmodes/fill-tests.el (fill-test-unbreakable-paragraph)
	(fill-test-breakable-paragraph):
	* test/lisp/time-stamp-tests.el (time-stamp-custom-pattern):
	* test/src/lread-tests.el (lread-tests--last-message):
	* test/src/process-tests.el (set-process-filter-t):
	* test/src/undo-tests.el (undo-test-skip-invalidated-markers): Prefer
	pos-bol and pos-eol.

2022-08-21  Stefan Kangas  <stefankangas@gmail.com>

	Don't end autorevert message with a period

	* lisp/autorevert.el (auto-revert-handler): Don't end message with
	a period.

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak emacs-bug--system-description

	* lisp/mail/emacsbug.el (emacs-bug--system-description): Fill the
	commonly-overlong Emacs version bit.

2022-08-21  Mattias Engdegård  <mattiase@acm.org>

	Update function properties and optimizations

	* lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form):
	Recognize boolean identity in aset, put, function-put and puthash.
	* lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp):
	Mark more functions as non-nil-returning, including the new
	pos-bol and pos-eol.
	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns):
	Mark pos-bol and pos-eol as side-effect-free.

2022-08-21  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/shortdoc.el (buffer): Add missing functions

	Add preceding-char and char-before because following-char and
	char-after were already there.

2022-08-21  Gerd Möllmann  <gerd@gnu.org>

	Fix src-depending-on-lisp target

	* Makefile.in (src-depending-on-lisp): Pass BIN_DESTDIR and
	ELN_DESTDIR to make -C src (bug#57309).

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Mark esh-proc test as unstable

	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test/pipeline-connection-type/last): Mark test as
	unstable as it fails quite a lot.

2022-08-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename newly-added eol/bol functions to pos-eol/pos-bol

	* lisp/emacs-lisp/shortdoc.el (buffer):
	* doc/lispref/positions.texi (Text Lines): Adjust.
	* src/editfns.c (Fpos_bol): Rename from Fpos.
	(Fpos_eol): Rename from Feol.

2022-08-21  Gregory Heytings  <gregory@heytings.org>

	Fix mode line redisplay bug when locked narrowing is in effect.

	* src/xdisp.c (decode_mode_spec): Use the actual narrowing bounds when
	redisplay is called while a locked narrowing is in effect.

2022-08-21  Po Lu  <luangruo@yahoo.com>

	Minor optimization to x_query_pointer_1

	* src/xterm.c (x_query_pointer_1): Clear client pointer if it
	disappeared.

2022-08-20  Gregory Heytings  <gregory@heytings.org>

	Fix user narrowing handling.

	* src/editfns.c (syms_of_editfns): New 'outermost-narrowing' internal
	variable.
	(Fwiden, Fnarrow_to_region): Set and reset the variable.
	(Fnarrowing_lock): Use it.

2022-08-20  Gregory Heytings  <gregory@heytings.org>

	Improved locked narrowing.

	* src/editfns.c (Fnarrowing_lock, Fnarrowing_unlock,
	narrow_to_region_locked, unwind_narrow_to_region_locked):
	New functions.
	(Fnarrow_to_region, Fwiden): Adapt, and make it possible to use
	these functions within the bounds of the locked narrowing.
	(syms_of_editfns): Change the name of the variable, make it
	buffer-local, and add the two Snarrowing_lock and Snarrowing_unlock
	subroutines.

	* src/lisp.h: Prototype of 'narrow_to_region_locked'.

	* src/xdisp.c (handle_fontified_prop):
	* src/keyboard.c (safe_run_hooks_maybe_narrowed): Use
	'narrow_to_region_locked'.

	* lisp/subr.el (with-locked-narrowing): New macro.

2022-08-20  Philip Kaludercic  <philipk@posteo.net>

	* package-vc.el (package-vc-unpack): Ignore dir files

2022-08-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't use the system-file-manager icon in the toolbar

	* lisp/term/x-win.el (x-gtk-stock-map):
	* lisp/term/pgtk-win.el (x-gtk-stock-map): Don't use
	n:system-file-manager, because it's larger than the other Gtk
	icons in some themes (bug#56627).

2022-08-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Make conf-javaprop-mode only claim that # lines are comments

	* lisp/textmodes/conf-mode.el (conf-javaprop-mode-syntax-table):
	Make obsolete and remove syntax entries for // and /* (bug#49077),
	because only # are comments in javaprop files.
	(conf-javaprop-mode): Adjust doc string to just mention #
	comments.

2022-08-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak admin/emacs output

2022-08-20  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp's manual

	* doc/misc/tramp.texi (Frequently Asked Questions):
	Improve recommendations for speeding up.

2022-08-20  Protesilaos Stavrou  <info@protesilaos.com>

	Fix typos in modus-themes.org

	* modus-themes.org (Option for inhibiting theme reload)
	(Option for completion framework aesthetics, Advanced customization)
	(Remap face with local value, Cycle through arbitrary colors)
	(Custom Org emphasis faces, Note on git-gutter in Doom Emacs): Fix
	typographic errors.

2022-08-19  Po Lu  <luangruo@yahoo.com>

	Fix crash when the keymap changes

	* src/xterm.c (handle_one_xevent): Call
	XkbRefreshKeyboardMapping first before trying to update the map.

2022-08-19  Mattias Engdegård  <mattiase@acm.org>

	Move `while` syntax check from optimizer to macroexpand

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-while): Move check...
	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): ...here.

2022-08-19  Philip Kaludercic  <philipk@posteo.net>

	* package-vc.el (package-vc-unpack): Mark packages as selected

2022-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Fix return value of help--key-description-fontified

	This fixes a bug with warning about obsolete commands in
	`command-execute', where we incorrectly showed empty parenthesis
	instead of the empty string when there was no keybinding for the new
	command.

	* lisp/help.el (help--key-description-fontified): Return nil instead
	of the empty string if KEYS argument is nil.
	* test/lisp/help-tests.el (help--key-description-fontified): New test.
	(with-substitute-command-keys-test): Fix indentation.

2022-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Display new keybinding in obsolete command warning

	* lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning):
	* lisp/simple.el (command-execute): When warning about an obsolete
	command, display the keybinding for the new command.

2022-08-19  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/bookmark.el (bookmark-menu-heading): Delete face.

2022-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Ignore variable Info-fontify, deleted in 22.1

	* lisp/info.el (Info-mode-hook): Don't obey variable Info-fontify,
	deleted in Emacs 22.1.

2022-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Make two compat aliases obsolete in cc-defs.el

	* lisp/progmodes/cc-defs.el (c-regexp-opt, c-regexp-opt-depth):
	Make compat alias obsolete.

2022-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Delete two functions obsolete since Emacs 23

	These were announced as removed in Emacs 28.1 NEWS, but apparently
	never actually deleted: only their obsoletion warning was removed.
	So the warnings were reintroduced in Emacs 28.2, and we now actually
	delete them here instead.

	* src/process.c (Fset_process_filter_multibyte)
	(Fprocess_filter_multibyte_p): Delete functions obsolete since
	Emacs 23.
	(syms_of_process): Delete corresponding defsubrs.
	* lisp/subr.el (process-filter-multibyte-p)
	(set-process-filter-multibyte): Delete obsoletion.
	* lisp/erc/erc-dcc.el (erc-dcc-server): Don't use obsolete functions.

2022-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f2c0fb2615 Resurrect obsoletion warning for two functions
	9c0eec4ed8 * src/window.c (select_window): Fix assert for buffer = no...
	16dfe04be2 Find libgccjit on macOS with Homebrew differently

	# Conflicts:
	#	etc/NEWS

2022-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Resurrect obsoletion warning for two functions

	These were supposed to have been deleted, but never were.  Resurrect
	their obsoletion warning and let's delete them in Emacs 29 instead.

	* lisp/subr.el (process-filter-multibyte-p)
	(set-process-filter-multibyte): Resurrect obsoletion warning.
	* etc/NEWS: Don't announce their deletion.

2022-08-19  Alan Mackenzie  <acm@muc.de>

	* src/window.c (select_window): Fix assert for buffer = non-active minibuffer

2022-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in doc-view.el

	* lisp/doc-view.el (doc-view-mode-map, doc-view-minor-mode-map)
	(doc-view-presentation-mode-map): Prefer defvar-keymap.

2022-08-19  Robert Pluim  <rpluim@gmail.com>

	Improve 'ns-read-file-name' docstring

	* src/nsfns.m (Fns_read_file_name): Use '-' instead of '_' when naming
	args.

2022-08-19  Robert Pluim  <rpluim@gmail.com>

	Mark only VS-16 as emoji

	* admin/unidata/blocks.awk: Only mark U+FE0F as belonging to the
	'emoji' script.  (Bug#57072)

2022-08-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix underscores in argument names in ns-win

	* lisp/term/ns-win.el (x-file-dialog): Don't use underscores in
	argument names.

2022-08-19  Augusto Stoffel  <arstoffel@gmail.com>

	python.el: Add completion-predicate symbol property to commands

	* lisp/progmodes/python.el: Add a completion-predicate property to
	most commands defined in this file; some are only useful in
	python-mode, others in inferior-python mode as well.  (Bug#53913)
	(python-skeleton-define, python-define-auxiliary-skeleton): Add
	appropriate completion-predicate properties.
	(python--completion-predicate): New function.

2022-08-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new functions eol and bol

	* doc/lispref/positions.texi (Text Lines): Document them
	* lisp/emacs-lisp/shortdoc.el: Mention them, and also the
	buffer/line predicates.

	* src/editfns.c (bol): New function.
	(Fbol): New defun.
	(Fline_beginning_position): Use `bol'.
	(eol): New function.
	(Feol): New defun.
	(Fline_end_position): Use `eol'.

2022-08-19  Augusto Stoffel  <arstoffel@gmail.com>

	python-mode: Remove special outline-heading-end-regexp

	It doesn't work well with the new type annotation syntax introduced in
	Python 3.5.

	* lisp/progmodes/python.el (python-mode): Remove buffer-local setting
	of outline-heading-end-regexp.  (Bug#53913)

2022-08-19  Augusto Stoffel  <arstoffel@gmail.com>

	python.el: Adjustments to Flymake backend

	* lisp/progmodes/python.el (python-flymake-command): Advertise
	possibility to use pylint.
	(python-flymake-command-output-pattern): Make compatible with recent
	versions of pyflakes.  (Bug#53913)

2022-08-19  Augusto Stoffel  <arstoffel@gmail.com>

	python-check-command: Don't use absolute file names

	Absolute executable file names are incompatible with Tramp and
	packages that switch between virtualenvs.

	* lisp/progmodes/python.el (python-check-command): Don't use absolute
	file names.  (Bug#53913)

2022-08-19  Paul A. Patience  <paul@apatience.com>  (tiny change)

	Fix mis-spelling of c-awk-old-ByLL and really make it buffer-local

	* lisp/progmodes/cc-awk.el (c-awk-old-ByLL): Make the
	correct variable buffer-local (bug#57294).

2022-08-19  Mattias Engdegård  <mattiase@acm.org>

	* lisp/edmacro.el (edmacro-sanitize-for-string): Fix condition.

	This is of little consequence in practice since the input is always a
	vector of keys representing a prefix, where bit 7 isn't likely to be
	set when higher bits are set, but it silences a (justified) warning.

2022-08-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix region-extract-function compilation warning

	* lisp/simple.el (region-extract-function): Clean up the logic
	slightly to avoid a warning.

2022-08-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix ns-win.el (x-file-dialog) declaration

	* lisp/term/ns-win.el (x-file-dialog): Give the function the same
	signature here as other definitions.

2022-08-19  Protesilaos Stavrou  <info@protesilaos.com>

	Update the modus-themes to their 2.6.0 version

	* doc/misc/modus-themes.org (Sample configuration with and without
	use-package): Add missing parenthesis to the manual.
	(Option for completion framework aesthetics)
	(Custom Org emphasis faces): Minor rewording.
	(Custom hl-todo colors): Add instructions on how to add user-level
	support for the 'solaire' package, as the modus-themes no longer
	support it.
	(Full support for packages or face groups): Remove 'solaire' from the
	list of supported packages.
	(Note on git-gutter in Doom Emacs)
	(Note on php-mode multiline comments)
	(Note on highlight-parentheses.el): Clarify need to re-load the
	theme for changes to take effect.
	(Acknowledgements): Update acknowledgements.

	* etc/themes/modus-themes.el (modus-themes-faces): Fix typo.
	(modus-themes--version): Reword docstring and update to current value.
	(modus-themes--weight): Stop using deprecated alias of symbol.

	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-vivendi-theme.el: Bump version number.

	Detailed release notes:
	<https://protesilaos.com/codelog/2022-08-19-modus-themes-2-6-0/>.

2022-08-19  Gerd Möllmann  <gerd@gnu.org>

	Find libgccjit on macOS with Homebrew differently

	* configure.ac (MAC_LIBS): Find libgccjit's directory slightly
	differently for brew installations.

2022-08-19  Andrea Corallo  <akrl@sdf.org>

	* src/pdumper.c (dump_native_comp_unit): Error if CU is not fixed-up

	* src/alloc.c (pure_alloc): Warn for pure space overflow

	* src/pdumper.c (Fdump_emacs_portable): Check and warn for pure space overflow

2022-08-19  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	Remove treesit manual entries for deleted functions

	* doc/lispref/parsing.texi: Remove documentation for
	treesit-get-parser-create and treesit-get-parser.

2022-08-19  John Wiegley  <johnw@newartisans.com>

	Revert "Remove use-package-font-lock-keywords"

	This reverts commit 4938167bfffcf08279445827d2eaae78c9557675.

2022-08-19  Morgan Smith  <Morgan.J.Smith@outlook.com>

	Speed up image-dired-display-image

	* lisp/image-dired.el (image-dired-display-image): Open file literally
	so we don't run image-mode twice.  (Bug#57281)

2022-08-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e64d811b51 Improve image-mode-as-hex docstring

2022-08-18  Po Lu  <luangruo@yahoo.com>

	Fix more calls to XQueryPointer for MPX

	* src/xterm.c (x_dnd_begin_drag_and_drop): Set DND devices to -1
	if XI2 is not supported on the given display.
	(x_query_pointer): Make wrapper around x_query_pointer_1.
	(x_query_pointer_1): Split off most of x_query_pointer to this
	function.  Allow a specific client pointer to be specified.
	(x_dnd_update_tooltip_now, x_dnd_update_state): Use
	x_query_pointer_1 with the right device instead of
	XQueryPointer.

2022-08-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from belak/remove-extra-font-lock-keywords

	GitHub-reference: https://github.com/jwiegley/use-package/issues/859

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	Improve obsoletion of image-transform-fit-to-{height,width}

	* lisp/image-mode.el (image-transform-fit-to-height)
	(image-transform-fit-to-width): Change obsoletion to refer to new
	command 'image-transform-fit-to-window'.

2022-08-18  Andrea Corallo  <akrl@sdf.org>

	* Rename `comp--typeof-builtin-types'

	* lisp/emacs-lisp/comp-cstr.el (comp--typeof-builtin-types): Rename.
	(comp-normalize-valset, comp-common-supertype-2): Update.

2022-08-18  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp-cstr.el (comp--all-builtin-types): Remove

2022-08-18  Arash Esbati  <arash@gnu.org>

	Adjust the environment name for the minted package

	* lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Fix
	the name of the environment which can contain a \label macro.

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	Improve image-mode-as-hex docstring

	* lisp/image-mode.el: Fix typos.
	(image-mode-as-hex): Doc fix; say that it uses 'hexl-mode' and reflow.

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	Do interactive mode tagging in image-mode.el

	* lisp/image-mode.el (image-forward-hscroll)
	(image-backward-hscroll, image-next-line, image-previous-line)
	(image-scroll-up, image-scroll-down, image-scroll-left)
	(image-scroll-right, image-bol, image-eol, image-bob, image-eob)
	(image-mode-fit-frame, image-kill-buffer, image-next-file)
	(image-previous-file, image-mode-copy-file-name-as-kill)
	(image-mode-mark-file, image-mode-unmark-file)
	(image-transform-set-percent, image-transform-set-scale)
	(image-transform-fit-to-height, image-transform-fit-to-width)
	(image-transform-fit-both, image-transform-fit-to-window)
	(image-transform-set-rotation, image-transform-set-smoothing)
	(image-transform-original, image-transform-reset): Add interactive tag
	for image-mode.

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	Make toggling between image, hex and text more consistent

	* lisp/image-mode.el (image-toggle-hex-display, image-toggle-display):
	Ensure commands work correctly also in `hexl-mode'.
	(image-mode-to-text):
	(image-mode-as-hex, image-mode-as-text): Enable image-minor-mode also
	in hexl-mode, which adds the "C-c C-x" keybinding for easier toggling.

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	New command image-transform-set-percent

	* lisp/image-mode.el (image-transform-set-percent): New command.
	(image-mode-map): Bind above new command to "s p".
	* doc/emacs/files.texi (Image Mode): Document it.

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in image-mode.el

	* lisp/image-mode.el (image-mode-map, image-minor-mode-map):
	Prefer defvar-keymap.

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	ef1e68f11d * lisp/image-mode.el (image-mode-as-hex): Fix toggle instr...
	dc0fce3a7d ; lisp/image-mode.el: Fix typo.
	254ba1d3e5 * lisp/image-mode.el: Improve commentary.
	ac43ac1af9 cl-reduce doc string improvement

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/image-mode.el (image-mode-as-hex): Fix toggle instructions.

2022-08-18  Michael Albinus  <michael.albinus@gmx.de>

	Fix encoding problem in tramp-sh.el

	* lisp/net/tramp-sh.el (tramp-sh-handle-file-local-copy):
	Compute inline coding only if needed.

2022-08-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/misc/cl.texi (Macro Bindings): Fix bug#57263

	Update `cl-symbol-macrolet` according to the change in response to bug#26073.

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/image-mode.el: Improve commentary.

2022-08-18  Mattias Engdegård  <mattiase@acm.org>

	Fix string-to-syntax signature in comp-known-type-specifiers

	* lisp/emacs-lisp/comp.el (comp-known-type-specifiers):
	`string-to-syntax` can return nil.

2022-08-18  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix some type

2022-08-18  Mattias Engdegård  <mattiase@acm.org>

	More non-nil-returning functions in source optimization

	This change was partially generated and mechanically cross-validated
	with function type information from comp-known-type-specifiers in
	comp.el.

	* lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp):
	Extend list of functions and fix a typo (logxor).

2022-08-18  Mattias Engdegård  <mattiase@acm.org>

	Copy-edit doc strings and comments wrt bignum and fixnum

	Don't say that a value is a fixnum if small enough and a bignum
	otherwise, because that is now how Lisp integers always work,
	and we generally don't expose the fixnum/bignum difference to the user
	unless really necessary.

	* src/charset.c (Fencode_char):
	* src/editfns.c (Fuser_uid, Fuser_real_uid, Fgroup_gid)
	(Fgroup_real_gid, Femacs_pid):
	* src/font.c (Ffont_variation_glyphs):
	* src/process.c (Fprocess_id):
	Edit doc strings.
	* src/pgtkselect.c:
	* src/xselect.c: Edit comments.

2022-08-18  kobarity  <kobarity@gmail.com>

	Fix Python indentation of block continuation

	* lisp/progmodes/python.el (python-indent--calculate-indentation):
	Fix indentation of :after-backslash-block-continuation.

	* test/lisp/progmodes/python-tests.el
	(python-indent-after-backslash-6): New test (bug#57262).

2022-08-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Make GEN message from loaddefs-generate nicer

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Shorten the
	informational GEN file relative to the stated directory
	(bug#57265).  This makes the message nicer for ELPA packages.

2022-08-18  Colin Woodbury  <colin@fosskers.ca>

	cl-reduce doc string improvement

	* lisp/emacs-lisp/cl-seq.el (cl-reduce): Explain what happens when
	using :from-end (bug#57273).

2022-08-18  Gerd Möllmann  <gerd.moellmann@gmail.com>

	Rebuild the Emacs executable if loaddefs.el has changed

	* Makefile.in (src-depending-on-lisp): Ensure that we check
	whether we need to rebuild the Emacs executable if loaddefs.el has
	been updated.

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	Improve update-directory-autoloads deprecation message

	* lisp/obsolete/autoload.el (update-directory-autoloads): Improve
	deprecation message.  (Bug#57276)

2022-08-18  Stefan Kangas  <stefankangas@gmail.com>

	Improve cryptic syntax switch message in re-builder

	* lisp/emacs-lisp/re-builder.el (reb-restart-font-lock): Move message
	from here...
	* lisp/emacs-lisp/re-builder.el (reb-change-syntax): ...to here.
	Change it to be less cryptic.

2022-08-18  Andrea Corallo  <akrl@sdf.org>

	* lisp/loadup.el: Always fix-up all loaded compilation units

2022-08-18  Andrea Corallo  <akrl@sdf.org>

	* Expose `comp-loaded-comp-units-h'

	* src/comp.c : remove 'all_loaded_comp_units_h'.
	(syms_of_comp): Define `comp-loaded-comp-units-h'.
	(register_native_comp_unit, Fnative_elisp_load): Use it.

2022-08-18  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	Add treesit-parser-delete

	* src/treesit.c (ts_record_change): Replace CHECK_TS_PARSER with
	ts_check_parser.
	(make_ts_parser): Initialize deleted field.
	(Ftreesit_parser_delete): Replace CHECK_TS_PARSER with
	ts_check_parser. Set deleted field.
	(Ftreesit_parser_buffer, Ftreesit_parser_language): Replace
	CHECK_TS_PARSER with ts_check_parser.
	(ts_check_parser): New function.
	(Ftreesit_parser_root_node, Ftreesit_parser_set_included_ranges)
	(Ftreesit_parser_included_ranges): Replace CHECK_TS_PARSER with
	ts_check_parser.
	(Qtreesit_parser_deleted): New symbol.
	(Qtreesit_parser_deleted): New error.
	* src/treesit.h (Lisp_TS_Parser): New field 'deleted'.

2022-08-18  Philip Kaludercic  <philipk@posteo.net>

	Merge remote-tracking branch 'origin/master' into feature/package+vc

2022-08-18  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* config.bat: Generate stdckdint.in.h
	* msdos/sedlibmk.inp (STDCKDINT_H)
	(GL_GENERATE_STDCKDINT_H_CONDITION): Update these variables too.

2022-08-18  Paul Eggert  <eggert@cs.ucla.edu>

	Fix broken build on Solaris 10 emacs_spawn

	* src/callproc.c (emacs_spawn) [SETUP_SLAVE_TTY]:
	pty_flag no longer exists.  Use pty_in && std_in >= 0,
	which at least compiles.

2022-08-17  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2022-08-17  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/bytecomp.el (byte-compile-log-1): Create buffer if necessary

2022-08-17  Alan Mackenzie  <acm@muc.de>

	* lisp/progmodes/cc-defs.el (c-safe-scan-lists): Evaluate LIMIT just once

2022-08-17  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix Linux APM BIOS flag testing in battery.el

	Original sin detected by recent byte-compiler improvements; see:
	https://lists.gnu.org/r/emacs-devel/2022-08/msg00611.html

	* lisp/battery.el (battery-linux-proc-apm): Treat result of logand
	as a number, not boolean.

2022-08-17  Stefan Kangas  <stefankangas@gmail.com>

	Shorten new manual section "Shell Command Guessing"

	* doc/emacs/dired.texi (Shell Command Guessing): Don't document
	unimportant details, and improve wording to be shorter.

2022-08-17  Stefan Kangas  <stefankangas@gmail.com>

	Assume dired-guess is now always available

	* lisp/dired-aux.el (dired-read-shell-command): Use
	dired-guess-shell-command unconditionally, as it is now always
	available.
	(dired-do-shell-command): Doc fix; dired-guess is always available.
	* lisp/dired.el (dired-do-man): Don't require dired-x.

2022-08-17  Stefan Kangas  <stefankangas@gmail.com>

	Move dired-guess commands from dired-x to dired

	* lisp/dired-x.el (dired-shell-command-history)
	(dired-guess-shell-alist-default, dired-guess-default)
	(dired-guess-shell-command): Move from here...
	* lisp/dired-aux.el (dired-shell-command-history)
	(dired-guess-shell-alist-default, dired-guess-default)
	(dired-guess-shell-command): ...to here.  (Bug#21981)

	* lisp/dired-x.el (dired-guess-shell-gnutar)
	(dired-guess-shell-gzip-quiet, dired-guess-shell-znew-switches)
	(dired-guess-shell-case-fold-search, dired-guess-shell-alist-user):
	Move from here...
	* lisp/dired.el (dired-guess-shell-gnutar)
	(dired-guess-shell-gzip-quiet, dired-guess-shell-znew-switches)
	(dired-guess-shell-case-fold-search, dired-guess-shell-alist-user):
	...to here.  Change :group to dired-guess.
	(dired-guess): New defgroup.

	* test/lisp/dired-x-tests.el (dired-guess-default): Move from here...
	* test/lisp/dired-aux-tests.el (dired-guess-default): ...to here.

	* doc/misc/dired-x.texi (Features, Technical Details, Installation):
	Delete any mention of shell command guessing.
	(Shell Command Guessing): Move from here...
	* doc/emacs/dired.texi (Shell Command Guessing): ...to here.  Adapt to
	better fit the Emacs Manual conventions.
	* lisp/dired-aux.el (dired-do-shell-command): Doc fix to adjust for
	above changes.
	* etc/NEWS: Announce the above change.

2022-08-17  Stefan Kangas  <stefankangas@gmail.com>

	Make compat function cperl-putback-char obsolete

	* lisp/progmodes/cperl-mode.el (cperl-putback-char): Make
	obsolete.  Update callers.

2022-08-17  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/progmodes/cperl-mode.el: Improve commentary.

2022-08-17  Stefan Kangas  <stefankangas@gmail.com>

	Don't check if autoloaded functions are fboundp

	* lisp/progmodes/cperl-mode.el (cperl-menu, cperl-init-faces):
	Assume some autoloaded ps-print.el functions are always there.

2022-08-17  Brendan O'Dea  <bod@debian.org>

	em-unix.el: only pass -H option to grep

	* lisp/eshell/em-unix.el (eshell-grep): Don't add -H, because that
	breaks agrep/glimpse etc (bug#57247).
	(eshell/grep, eshell/egrep, eshell/fgrep): Instead add it here.

2022-08-17  kobarity  <kobarity@gmail.com>

	Enhance Python font-lock to support multilines

	* test/lisp/progmodes/python-tests.el
	(python-tests-assert-faces-after-change): New helper function.
	(python-font-lock-keywords-level-1-3)
	(python-font-lock-assignment-statement-multiline-*): New tests.

	* lisp/progmodes/python.el (python-rx): Add `sp-nl' to represent
	space or newline (with/without backslash).
	(python-font-lock-keywords-level-1)
	(python-font-lock-keywords-maximum-decoration): Allow newlines
	where appropriate.
	(python-font-lock-extend-region): New function.
	(python-mode): Set `python-font-lock-extend-region' to
	`font-lock-extend-after-change-region-function'.

2022-08-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Add Python blocks support for hideshow"

	This reverts commit af4cfb519415ed3c1d6d036aac908e4f9ee383eb.

	This led to test failures.

2022-08-17  Stefan Kangas  <stefankangas@gmail.com>

	Fix some recently introduced byte-compiler warnings

	* lisp/emulation/viper-util.el (viper-key-to-character):
	* lisp/vc/vc-svn.el (vc-svn-dir-extra-headers): Fix warnings.
	* lisp/net/eudc-export.el (eudc-batch-export-records-to-bbdb):
	Fix buglet.

2022-08-17  kobarity  <kobarity@gmail.com>

	Add Python blocks support for hideshow

	* lisp/progmodes/python.el (python-nav-beginning-of-block-regexp):
	New variable.
	(python-hideshow-forward-sexp-function): Change to call
	`python-nav-end-of-block'.
	(python-hideshow-find-next-block): New function to be used as
	FIND-NEXT-BLOCK-FUNC in `hs-special-modes-alist'.
	(python-info-looking-at-beginning-of-block): New function to be
	used as LOOKING-AT-BLOCK-START-P-FUNC in `hs-special-modes-alist'.
	(python-mode): Change settings of `hs-special-modes-alist'.

	* test/lisp/progmodes/python-tests.el
	(python-hideshow-hide-levels-1): Fix to keep empty lines.
	(python-info-looking-at-beginning-of-block-1)
	(python-hideshow-hide-levels-3, python-hideshow-hide-levels-4)
	(python-hideshow-hide-all-1, python-hideshow-hide-all-2)
	(python-hideshow-hide-all-3, python-hideshow-hide-block-1): New
	tests (bug#56635).

2022-08-17  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a4078fa628 ; * lisp/vc/ediff.el: Improve wording in last change.
	dd077ebded Revert "; * doc/lispintro/emacs-lisp-intro.texi: Fix typo."
	362c9ab879 * doc/misc/gnus.texi (Article Washing): Fix Links URL.

2022-08-16  Po Lu  <luangruo@yahoo.com>

	Avoid disabling device multiple times while handling XI attachment events

	* src/xterm.c (handle_one_xevent): Avoid disabling devices if we
	notice it has been disabled while handling XISlaveDetached or
	XISlaveAttached.

2022-08-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/buffer.c (Frename_buffer): Fix bug#56693

2022-08-16  Mattias Engdegård  <mattiase@acm.org>

	* lisp/dired.el (dired-mark-if): Evaluate MSG once to avoid warning.

2022-08-16  Mattias Engdegård  <mattiase@acm.org>

	Improved `null` (alias `not`) optimization

	Take static boolean information of the argument into account.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-not): New.

2022-08-16  Mattias Engdegård  <mattiase@acm.org>

	Improved `and` and `or` optimization

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-and, byte-optimize-or):
	Rewrite.  Avoid branching on arguments statically known to be true or
	false, and hoist code out to an unconditional prefix when possible.

2022-08-16  Mattias Engdegård  <mattiase@acm.org>

	Improved `if` and `while` optimization

	Recognize some more special cases:

	  (if X nil t)      -> (not X)
	  (if X t)          -> (not (not X))
	  (if X t nil)      -> (not (not X))
	  (if VAR VAR X...) -> (or VAR (progn X...))

	* lisp/emacs-lisp/byte-opt.el (byte-opt-negate): New.
	(byte-optimize-if): Add transformations above and refactor.
	(byte-optimize-while): Better static nil-detection.

2022-08-16  Mattias Engdegård  <mattiase@acm.org>

	Improved static detection of nil and non-nil expressions

	* lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form): New.
	(byte-compile-trueconstp, byte-compile-nilconstp): Determine a static
	nil or non-nil result in more cases.  These functions have grown and
	are no longer defsubst.

2022-08-16  Michael Albinus  <michael.albinus@gmx.de>

	Fix autoload in tramp.el

2022-08-16  Michael Albinus  <michael.albinus@gmx.de>

	Handle root permissions on remote files

	* lisp/net/tramp.el (tramp-check-cached-permissions): Check also
	for remote uid/gid being 0.  (Bug#57238)

	* lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls):
	Convert numeric uid/gid strings into real strings.
	(tramp-sh-get-signal-strings): Use `zerop'.

	* lisp/net/tramp.el (tramp-root-id-string, tramp-root-id-integer):
	New defconsts.
	(tramp-handle-find-backup-file-name, tramp-handle-lock-file)
	(tramp-local-host-p, tramp-handle-make-auto-save-file-name)
	* lisp/net/tramp-sh.el (tramp-default-method-alist)
	(ramp-default-user-alist, tramp-find-shell):
	* lisp/net/tramp-sudoedit.el (tramp-default-user-alist): Use them.

2022-08-16  Lars Ingebrigtsen  <larsi@gnus.org>

	dired-do-shell-command doc string clarification

	* lisp/dired-aux.el (dired-do-shell-command): Clarify doc string
	(bug#57228).

2022-08-16  Stefan Kangas  <stefankangas@gmail.com>

	Advertise obsolete library pgg.el less

	* doc/misc/gnus-faq.texi (FAQ 8-2):
	* doc/misc/gnus.texi (Security):
	* doc/misc/message.texi (Using OpenPGP, PGP Compatibility):
	* doc/misc/mh-e.texi (Reading PGP, Sending PGP):
	* lisp/gnus/mml2015.el (mml2015-use):
	* lisp/info-look.el (mapc):
	* lisp/mh-e/mh-e.el (mh-mml-method-default): Advertise obsolete
	library pgg.el less.

	* lisp/mh-e/mh-identity.el (mh-identity-pgg-default-user-id): Rename
	from 'mh-identity-gpg-default-user-id', and make the old name into
	obsolete variable alias.  Update all uses.

2022-08-16  Po Lu  <luangruo@yahoo.com>

	Fix XInput hierarchy events not being delivered in daemon mode

	* src/xfns.c (setup_xi_event_mask): Stop selecting for device
	hierarchy events.

	* src/xterm.c (xi_select_hierarchy_events, x_term_init): Select
	those here instead, on the default root window.

2022-08-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Make message-delete-line obsolete

	* lisp/gnus/message.el (message-delete-line): Make obsolete.
	(message-change-subject, message-cross-post-insert-note)
	(message-reduce-to-to-cc, message-indent-citation)
	(message-send-mail-with-mh, message-generate-headers)
	(message-fill-field-general): Adjust callers.

2022-08-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix buffer-start cleanup in message-indent-citation

	* lisp/gnus/message.el (message-indent-citation): Fix thinko in loop.

2022-08-16  Eli Zaretskii  <eliz@gnu.org>

	Don't look for long lines beyond the narrowed region

	* src/xdisp.c (redisplay_window): Don't scan for newlines outside
	the current buffer's restriction.

2022-08-16  Stefan Kangas  <stefankangas@gmail.com>

	Revert "; * doc/lispintro/emacs-lisp-intro.texi: Fix typo."

	This reverts commit 9d0dba44da7ac83d018fff3c26d33dac12ebd806.

	This was not a typo, but incorrectly matching parens in Info-mode.

2022-08-16  Stefan Kangas  <stefankangas@gmail.com>

	Modernize spam section in Gnus manual slightly

	* doc/misc/gnus.texi (The problem of spam): Don't explain what
	spam is; there is no need for that in 2022.  Don't explain
	limitations of obsolete software TMDA; its website has stopped
	working but seems to have been updated last in 2007.
	(Thwarting Email Spam, Anti-Spam Basics)
	(Spam Package Configuration Examples): Prefer "spam" to "UCE".
	(The problem of spam): Use example.org in example.
	(SpamAssassin, Hashcash): Improve wording.

2022-08-16  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/gnus.texi (Article Washing): Fix Links URL.

2022-08-16  Stefan Kangas  <stefankangas@gmail.com>

	Delete implicit XEmacs references from Gnus manual

	* doc/misc/gnus.texi (Group Buffer Format, Summary Buffer, RSS):
	Delete some implicit references to XEmacs.
	(RSS): Fix default value.

2022-08-16  Jim Porter  <jporterbugs@gmail.com>

	Make the bookmark fringe icon look like a bookmark

	* src/fringe.c (large_circle_bits): New variable.
	(standard_bitmaps): Add large_circle_bits.

	* lisp/fringe.el (fringe-bitmaps): Add 'large-circle'.
	(fringe-custom-set-bitmap): New function.

	* lisp/cus-edit.el (widget-fringe-bitmap-prompt-value-history): New
	variable.
	(fringe-bitmap): New widget.

	* lisp/bookmark.el (bookmark-set-fringe-mark): Obsolete in favor of...
	(bookmark-fringe-mark): ... this.
	(bookmark-fringe-mark): Rename this fringe bitmap to...
	(bookmark-mark): ... and change it to look like a bookmark.
	(bookmark-face): Don't set the ':background' of the face.  Instead,
	set ':distant-foreground'.
	(bookmark--set-fringe-mark, bookmark--remove-fringe-mark)
	(bookmark-store, bookmark--jump-via): Consult the
	'bookmark-fringe-mark' option.

	* doc/lispref/customize.texi (Simple Types): Document 'fringe-bitmap'
	type.

	* doc/lispref/display.texi (Fringe Bitmaps): Mention 'large-circle'.

	* etc/NEWS: Announce this change (bug#56896).

2022-08-15  Jim Porter  <jporterbugs@gmail.com>

	Fix non-interactive use of conditionals in Eshell

	* lisp/eshell/esh-cmd.el (eshell-rewrite-if-command): Fix misplaced
	't' symbol; it should be passed to 'eshell-invokify-arg'.
	(eshell-do-eval): Pass 'synchronous-p' to recursive calls in some
	missing cases.

	* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/if-statement,
	(esh-cmd-test/if-else-statement)
	(esh-cmd-test/if-else-statement-lisp-form)
	(esh-cmd-test/if-else-statement-lisp-form-2)
	(esh-cmd-test/if-else-statement-ext-cmd)
	(esh-cmd-test/unless-statement)
	(esh-cmd-test/unless-else-statement)
	(esh-cmd-test/unless-else-statement-lisp-form)
	(esh-cmd-test/unless-else-statement-ext-cmd): Use
	'eshell-command-result-equal'.

2022-08-15  Jim Porter  <jporterbugs@gmail.com>

	Add 'eshell-command-result-equal' with an ERT explainer

	* test/lisp/eshell/eshell-tests-helpers.el
	(eshell-command-result--equal, eshell-command-result--equal-explainer)
	(eshell-command-result-equal): New functions.

	* test/lisp/eshell/em-basic-tests.el
	* test/lisp/eshell/em-dirs-tests.el
	* test/lisp/eshell/esh-cmd-tests.el
	* test/lisp/eshell/esh-proc-tests.el
	* test/lisp/eshell/esh-var-tests.el
	* test/lisp/eshell/eshell-tests.el: Use 'eshell-command-result-equal'.

2022-08-15  Jim Porter  <jporterbugs@gmail.com>

	Provide ERT explainer for 'eshell-match-command-output'

	This was formerly named 'eshell-command-result-p', but "result" isn't
	quite the right terminology, since this function specifically tested
	the output of a command, not its Lisp result (as
	'eshell-command-result' would return).

	* test/lisp/eshell/eshell-tests-helpers.el (eshell-insert-command):
	Provide a more-complete docstring.
	(eshell-match-result): Rename to...
	(eshell-match-output): ... this.
	(eshell-match-output--explainer): New function.
	(eshell-command-result-p): Rename to...
	(eshell-match-command-output): ... this.

	* test/lisp/eshell/em-alias-tests.el
	* test/lisp/eshell/em-dirs-tests.el
	* test/lisp/eshell/em-extpipe-tests.el
	* test/lisp/eshell/em-script-tests.el
	* test/lisp/eshell/esh-cmd-tests.el
	* test/lisp/eshell/esh-proc-tests.el
	* test/lisp/eshell/esh-var-tests.el
	* test/lisp/eshell/eshell-tests-helpers.el
	* test/lisp/eshell/eshell-tests.el: Use 'eshell-match-command-output'.

2022-08-15  Po Lu  <luangruo@yahoo.com>

	Avoid lowering child frames below scroll bars on X

	* src/xterm.c (x_lower_frame_1): New function.
	(x_lower_frame): Avoid calling XLowerFrame when there is a
	parent with scroll bars.

2022-08-15  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/gnus.texi (Troubleshooting): Update section.

2022-08-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/lispref/functions.texi (What Is a Function): Improve further

2022-08-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from realcomplex/override-global-mode-fix

	GitHub-reference: https://github.com/jwiegley/use-package/issues/993

2022-08-15  Eli Zaretskii  <eliz@gnu.org>

	Produce TAGS in 'lib' as well and include them in src/TAGS

	* src/Makefile.in (TAGS): Include ../lib/TAGS.
	($(lib)/TAGS): New target.
	(tags): Depend on $(lib)/TAGS.

2022-08-15  Michael Albinus  <michael.albinus@gmx.de>

	Fix tmpdir handling in Tramp for Android sshd

	* doc/misc/tramp.texi (Android shell setup): Rework.

	* lisp/net/tramp.el (tramp-get-remote-tmpdir): Cache result in
	temporary connection property.

2022-08-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up message-sort-headers code slightly

	* lisp/gnus/message.el (message-sort-headers): Simplify code by
	removing always-true `if' statement.

2022-08-15  kobarity  <kobarity@gmail.com>

	Fix `python-nav-forward-block' moving backward under certain conditions

	* lisp/progmodes/python.el (python-nav-forward-block): Add check
	for not moving backward (bug#57223).

2022-08-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix fix_command for non-symbol functions

	* src/callint.c (fix_command): Don't bug out on commands that
	aren't symbols (like lambdas, for instance).

2022-08-15  Alan Mackenzie  <acm@muc.de>

	Enhance safe_run_hooks_1 and safe_run_hook_funcall to handle more arguments

	This fixes bug #57179.

	* src/keyboard.c (safe_run_hooks_1, safe_run_hook_funcall): Enhance these
	functions so that nargs == 3 or 4 is handled as well as nargs == 2.  This
	allows them to be used to call hooks with 1 or 2 arguments.

2022-08-15  Yury Kholodkov  <yurykholodkov@gmail.com>  (tiny change)

	Fix variable types in warnings-suppress

	* lisp/emacs-lisp/warnings.el (warnings-suppress): The type of
	these user options is a list of lists of symbols, not a list of
	symbols (bug#57183).

2022-08-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Make eshell-mode more resilient towards `mode-line-format'

	* lisp/eshell/esh-mode.el (eshell-mode): `mode-line-format' can be
	a string (bug#57185).  In that case, don't alter anything.

2022-08-15  Matt Armstrong  <matt@rfc20.org>

	Pacify warnings from gcc 12 in encode_coding_object

	* src/coding.c (encode_coding_object): Mark saved_pt_byte with UNINIT
	to silence a false alarm from -Wmaybe-uninitialized.  This was already
	done in decode_coding_object.  The fix is correct because saved_pt is
	used as a sentinel before saved_pt_byte is used (bug#57219).

2022-08-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up the exclusion logic in loaddefs-generate

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Allow
	excluding files completely (bug#57144).

2022-08-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak autoloads of defsubsts containing spaces/control chars

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form):
	Escape control chars in bodies so that we don't end up with
	trailing spaces if we're autoloading a defsubst containing
	"\\`[ \t\n\r]*\\'".

2022-08-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-08-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove Gnus Compatibility manual section

	* doc/misc/gnus.texi (Compatibility): Remove outdated section
	(bug#57178).

2022-08-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Further lisp-current-defun-name tweaks

	* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Further
	tweaks to make (autoload 'foo) work again.  Perhaps this should
	all be reverted to the original version and then given a new rething.

2022-08-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Make update-directory-autoloads available by default again

	* lisp/subr.el (make-directory-autoloads)
	(update-directory-autoloads): Make available by default again
	(bug#57200).

	* lisp/obsolete/autoload.el (make-directory-autoloads): Add
	obsoletion form.
	(batch-update-autoloads): Fix warning.

2022-08-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	9d0dba44da ; * doc/lispintro/emacs-lisp-intro.texi: Fix typo.
	0e336fa51f ; Improve documentation of minibuffer history wrt completion

2022-08-14  Po Lu  <luangruo@yahoo.com>

	Fix uninitialized variable false-positives

	* src/xterm.c (xm_setup_dnd_targets):
	(x_dnd_free_toplevels): Mark dpy and recs UNINIT, since GCC
	thinks they can be used uninitialized.  (bug#57208)

2022-08-14  Stefan Kangas  <stefankangas@gmail.com>

	Make message-mark-active-p obsolete in favor of mark-active

	* lisp/gnus/message.el (message-mark-active-p): Make obsolete in
	favor of 'mark-active'.  Update callers.

2022-08-14  Stefan Kangas  <stefankangas@gmail.com>

	Make gnus-uu-view-with-metamail obsolete

	The metamail package was last released in 1994, and has been removed
	from most GNU/Linux distributions due to being buggy and unmaintained.

	* lisp/gnus/gnus-uu.el (gnus-uu-view-with-metamail): Make obsolete.
	* doc/misc/gnus.texi (Other Decode Variables): Don't document
	above obsolete variable.

2022-08-14  Stefan Kangas  <stefankangas@gmail.com>

	Don't use obsolete library as example in Elisp Intro

	* doc/lispintro/emacs-lisp-intro.texi (Several files recursively)
	(Sorting, Files List): Don't use obsolete library makesum.el as
	example.

2022-08-14  Stefan Kangas  <stefankangas@gmail.com>

	Make gnus-iswitchb-completing-read obsolete

	* lisp/gnus/gnus-util.el (gnus-iswitchb-completing-read): Make
	obsolete.  It depends on the obsolete library iswitchb.el.
	(gnus-completing-read-function): Don't advertise above obsolete
	function.

2022-08-14  Stefan Kangas  <stefankangas@gmail.com>

	Don't advertise obsolete library html2text.el

	* doc/misc/emacs-mime.texi (Display Customization):
	* doc/misc/gnus-faq.texi (FAQ 4-7):
	* doc/misc/gnus.texi (Article Washing):
	* doc/misc/mh-e.texi (HTML):
	* lisp/gnus/mm-decode.el (mm-text-html-renderer): Don't advertise
	obsolete library html2text.el.

2022-08-14  Paul Eggert  <eggert@cs.ucla.edu>

	Improve timefns speed on integers

	* src/timefns.c (decode_lisp_time) [FASTER_TIMEFNS]:
	Speed up when SPECIFIED_TIME is an integer.
	(time_cmp) [FASTER_TIMEFNS]: Speed up when comparing integers.

2022-08-14  Paul Eggert  <eggert@cs.ucla.edu>

	Decode time conses before floats

	* src/timefns.c (decode_lisp_time): Test for conses before floats,
	as conses are more common.

2022-08-14  Paul Eggert  <eggert@cs.ucla.edu>

	Work around Bug#57211

	* src/buffer.c (Fgenerate_new_buffer_name): Allocate a bigger buffer.

2022-08-14  Paul Eggert  <eggert@cs.ucla.edu>

	* doc/lispref/functions.texi: Fix capitalization.

2022-08-14  Paul Eggert  <eggert@cs.ucla.edu>

	Fix selection preservation bug when USE_XCB

	* src/xterm.c (x_preserve_selections) [USE_XCB]: Fix bug: use of
	wrong ‘tem’ value.  Found by GCC -Wanalyzer-use-of-uninitialized-value.
	Move decl of local to make the (former) bug more obvious.

2022-08-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/ring.el (ring): Define as a type

2022-08-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	(compiled-function-p): New function (bug#56648)

	* lisp/subr.el (compiled-function-p): New function.

	* test/lisp/international/ucs-normalize-tests.el (ucs-normalize-part1):
	* lisp/gnus/gnus.el (gnus):
	* lisp/mh-e/mh-e.el (mh-version):
	* lisp/emacs-lisp/macroexp.el (emacs-startup-hook):
	* lisp/emacs-lisp/cl-macs.el (compiled-function):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-fdefinition)
	(byte-compile, display-call-tree):
	* lisp/emacs-lisp/byte-opt.el (<toplevel-end>):
	* lisp/emacs-lisp/advice.el (ad-compiled-p):
	* lisp/cedet/semantic/bovine.el (semantic-bovinate-stream):
	* lisp/loadup.el (macroexpand-all):
	* admin/unidata/unidata-gen.el (unidata--ensure-compiled): Use it.

	* lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates):
	Add entries for it.
	(pcase--split-pred): Use it.

	* lisp/help-fns.el (help-fns-function-description-header): Use `functionp`.
	(help-fns--var-safe-local): Use `compiled-function-p`.

2022-08-14  Michael Albinus  <michael.albinus@gmx.de>

	Tramp code cleanup

	* lisp/net/tramp-adb.el
	(tramp-adb-handle-directory-files-and-attributes): Use it.

	* lisp/net/tramp-compat.el (tramp-compat-replace-regexp-in-region):
	New defalias.

	* lisp/net/tramp-crypt.el (tramp-crypt-do-encrypt-or-decrypt-file-name):
	Fix root filename for cache.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
	Adapt check for proper remote command.

	* lisp/net/tramp-sh.el (tramp-open-shell): Add sanity check for
	shell prompt.
	(tramp-get-ls-command): Check, that argument "--color=never" has
	the intended effect.

2022-08-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/cedet/ede/emacs.el (ede-emacs-load): Delete obsolete name arg

	* lisp/calendar/time-date.el (seconds-to-time): Use the original arg list

2022-08-14  Stefan Kangas  <stefankangas@gmail.com>

	* src/Makefile.in (elnlisp): Delete autoload.eln from list.

2022-08-14  Stefan Kangas  <stefankangas@gmail.com>

	Make Gnus FAQ more contemporary

	* doc/misc/gnus-faq.texi (FAQ - Introduction): Fix timeline.
	(FAQ - Changes): Delete outdated section.
	(FAQ 5-5): Update to reflect that ispell.el and flyspell.el is
	distributed with Emacs.
	(FAQ 4-1, FAQ 4-7, FAQ 4-8, FAQ 4-14, FAQ 5-8, FAQ 5-10, FAQ 6-3)
	(FAQ 7-2): Delete references to ancient versions of Gnus.
	(FAQ 6-3): Delete reference to obsolete library nnir.el.
	(FAQ - Glossary): Remove "Emacs" entry.  This is self-explanatory, and
	risks causing confusion; our docs never mean anything but "GNU Emacs"
	when we say "Emacs".

2022-08-14  Mattias Engdegård  <mattiase@acm.org>

	Strength-reduce apply with (list ...) as tail argument

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-apply):
	Transform (apply F ... (list X ...)) -> (funcall F ... X ...)

2022-08-14  Mattias Engdegård  <mattiase@acm.org>

	Simplify code using take, ntake and butlast

	* lisp/calc/calc-vec.el (calcFunc-rhead):
	* lisp/calc/calc.el (calc-top-list, calc-pop):
	* lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
	Simplify.

2022-08-14  Eli Zaretskii  <eliz@gnu.org>

	Further speedups of redisplay of long and truncated lines

	* src/xdisp.c (mode_line_update_needed, redisplay_window)
	(decode_mode_spec): Don't avoid calling current_column, as it is
	now fast enough.
	(redisplay_window) <optional_new_start>: Don't call 'move_it_to'
	if its result will not be used.
	(Flong_line_optimizations_p): New primitive.
	* src/indent.c (Fcurrent_column): Doc fix.
	(current_column, scan_for_column): When in a buffer with long
	and/or truncated lines, quickly return an approximate value.
	* src/window.c (Frecenter): Use the old text-mode code when the
	buffer has very long lines.

	* lisp/simple.el (line-move): Avoid costly calls to
	'line-move-partial' and 'line-move-visual' when lines are
	truncated and/or very long.
	(move-beginning-of-line): Call 'line-beginning-position' instead
	of the slower 'skip-chars-backward'.

	* etc/NEWS: Announce 'long-line-optimizations-p'.

2022-08-13  Po Lu  <luangruo@yahoo.com>

	More fixes to MPX drag-and-drop interaction

	* src/xterm.c (x_dnd_begin_drag_and_drop): Also initialize the
	keyboard device used for drag-and-drop.
	(handle_one_xevent): Verify deviceid in more places; also test
	keyboard device before swallowing F1.

2022-08-13  Basil L. Contovounesios  <contovob@tcd.ie>

	Document time-convert FORM argument as mandatory

	This is a followup to commit b70369c557 of 2022-08-05
	"time-convert): Deprecate calls without an explicit FORM arg".

	* doc/lispref/os.texi (Time Conversion):
	* src/timefns.c (Ftime_convert): Describe FORM argument as required
	as per the advertised calling convention.

2022-08-13  Stefan Kangas  <stefankangas@gmail.com>

	Improve time-convert docstring formatting for readability

	* src/timefns.c (Ftime_convert): Doc fix; improve formatting for
	readability.

2022-08-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	nadvice.el: Avoid exponential blow up in interactive-form recursion

	* lisp/emacs-lisp/nadvice.el (advice--interactive-form): Sink the call
	to `commandp` into the autoloaded function case since it's redundant in
	the other branch.
	(advice--make-interactive-form): Take just the interactive forms rather
	than the actual functions as arguments.
	(oclosure-interactive-form): Use `advice--interactive-form` rather than
	`commandp` since we'd call `advice--interactive-form` afterwards anyway.

2022-08-13  Stefan Kangas  <stefankangas@gmail.com>

	Update Gnus Installation FAQ

	* doc/misc/gnus-faq.texi (FAQ 1-1, FAQ 1-2, FAQ 1-3, FAQ 1-4)
	(FAQ 1-5): Update to reflect that Gnus is no longer released
	separately from Emacs.  Delete FAQ on Gnus 5.10, released in May 2003.

2022-08-13  Stefan Kangas  <stefankangas@gmail.com>

	Make many gnus version variables obsolete

	Many haven't been bumped since 1997, others not since 2004.
	* lisp/gnus/deuglify.el (gnus-outlook-deuglify-version):
	* lisp/gnus/gnus-diary.el (gnus-diary-version):
	* lisp/gnus/nnagent.el (nnagent-version):
	* lisp/gnus/nnbabyl.el (nnbabyl-version):
	* lisp/gnus/nndiary.el (nndiary-version):
	* lisp/gnus/nndir.el (nndir-version):
	* lisp/gnus/nndoc.el (nndoc-version):
	* lisp/gnus/nndraft.el (nndraft-version):
	* lisp/gnus/nneething.el (nneething-version):
	* lisp/gnus/nnfolder.el (nnfolder-version):
	* lisp/gnus/nnmaildir.el (nnmaildir-version):
	* lisp/gnus/nnmbox.el (nnmbox-version):
	* lisp/gnus/nnmh.el (nnmh-version):
	* lisp/gnus/nnml.el (nnml-version):
	* lisp/gnus/nnrss.el (nnrss-version):
	* lisp/gnus/nnspool.el (nnspool-version):
	* lisp/gnus/nntp.el (nntp-version):
	* lisp/gnus/nnvirtual.el (nnvirtual-version): Make obsolete in
	favor of emacs-version.

2022-08-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	js.el: Tweak last change

	* lisp/progmodes/js.el (js-json-mode): Use a function as value of
	`syntax-propertize-function`.

2022-08-13  Eli Zaretskii  <eliz@gnu.org>

	Speed up display of long lines under 'truncate-lines'

	* src/xdisp.c (partial_line_height): Return zero for long and
	truncated lines.
	(fast_move_it_horizontally): New function.
	(hscroll_window_tree, display_line): Use
	'fast_move_it_horizontally' in preference to
	'move_it_in_display_line_to', when dealing with long and truncated
	lines.
	(redisplay_internal): Optimize "optimization 3" for long and
	truncated lines.
	* src/buffer.c (syms_of_buffer) <large-hscroll-threshold>: New
	variable.

	* etc/NEWS: Announce 'large-hscroll-threshold'.

2022-08-13  Po Lu  <luangruo@yahoo.com>

	Add new value `dont-save' to `deactivate-mark'

	* etc/NEWS: Announce new value of `deactivate-mark'.

	* lisp/simple.el (deactivate-mark): Handle new value.
	(bug#57147)

	* src/keyboard.c (syms_of_keyboard): Update doc string of
	`deactivate-mark'.

2022-08-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak outline symbol icons

	* lisp/outline.el (outline-close, outline-open): Use icons of the
	same size in Symbola.

2022-08-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow EXCLUDED-FILES in loaddefs-generate to be relative

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Allow the
	excluded files to be relative (bug#57144).

2022-08-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't hide final dump in admin/emake

2022-08-13  Stefan Kangas  <stefankangas@gmail.com>

	Make ps-mode-version variable obsolete

	* lisp/progmodes/ps-mode.el (ps-mode-version): Make obsolete.
	(ps-mode-show-version, ps-mode-submit-bug-report): Don't use above
	obsolete variable.

2022-08-13  Stefan Kangas  <stefankangas@gmail.com>

	Make htmlfontify-version variable obsolete

	* lisp/htmlfontify.el (htmlfontify-version): Make obsolete.
	(hfy-meta-tags): Don't use above obsolete variable.

2022-08-13  Stefan Kangas  <stefankangas@gmail.com>

	Delete many references to Emacs 23 or older from docs

	* doc/emacs/glossary.texi (Glossary):
	* doc/emacs/msdos.texi (Windows Fonts):
	* doc/lispref/loading.texi (Library Search):
	* doc/lispref/processes.texi (Accepting Output):
	* doc/misc/auth.texi (GnuPG and EasyPG Assistant Configuration):
	* doc/misc/efaq-w32.texi (Font names):
	* doc/misc/efaq.texi (Turning on syntax highlighting)
	(Escape sequences in shell output):
	* doc/misc/eshell.texi (Bugs and ideas):
	* doc/misc/gnus.texi (nnmairix requirements):
	* doc/misc/gnus-faq.texi (FAQ 1-5):
	* doc/misc/idlwave.texi (Troubleshooting):
	* doc/misc/message.texi (Using S/MIME):
	* doc/misc/mh-e.texi (Preface, Incorporating Mail):
	* doc/misc/viper.texi (Viper Specials): Delete references to Emacs 23
	or older.

2022-08-13  Po Lu  <luangruo@yahoo.com>

	Prevent selection converter from signaling if buffer is narrowed

	* lisp/select.el (xselect-convert-to-string): If positions are
	outside the accessible portion of the buffer, don't return
	anything.

2022-08-13  Eli Zaretskii  <eliz@gnu.org>

	Fix a recently-added Eshell test on MS-Windows

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/last-result-var-ext-cmd): Fix the test on
	MS-Windows by making sure the internal 'format' command
	is invoked.  (Bug#57129)

2022-08-13  Jim Porter  <jporterbugs@gmail.com>

	Make '$?' and '$$' variables more consistent in Eshell

	Previously, '$?' (last exit code) was only useful for external
	commands, and '$$' (last result) was only useful for Lisp commands.

	* lisp/eshell/esh-cmd.el (eshell-lisp-form-nil-is-failure): New
	option.
	(eshell-lisp-command): Set last exit code to 1 when the command
	signals an error, and 2 if it returns nil (for Lisp forms only).

	* lisp/eshell/esh-proc.el (eshell-sentinel): Set last result to t if
	the command succeeded.

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/while-loop-lisp-form, esh-cmd-test/until-loop-lisp-form)
	(esh-cmd-test/if-else-statement-lisp-form)
	(esh-cmd-test/if-else-statement-lisp-form-2)
	(esh-cmd-test/unless-else-statement-lisp-form): New tests.

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/last-status-var-lisp-command)
	(esh-var-test/last-status-var-lisp-form)
	(esh-var-test/last-status-var-lisp-form-2)
	(esh-var-test/last-status-var-ext-cmd)
	(esh-var-test/last-status-var-ext-cmd): New tests.
	(esh-var-test/last-result-var2): Rename from this...
	( esh-var-test/last-result-var-twice): ... to this.

	* doc/misc/eshell.texi (Variables): Update documentation about '$?'
	and '$$'.
	(Control Flow): Mention that '(lisp forms)' can be used as
	conditionals.

	* etc/NEWS: Announce this change (bug#57129).

2022-08-13  Jim Porter  <jporterbugs@gmail.com>

	Allow using dollar expansions in Eshell conditionals

	* lisp/eshell/esh-cmd.el (eshell-structure-basic-command): Forms
	beginning with 'eshell-escape-arg' are "data-wise".

	* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/while-loop)
	(esh-cmd-test/until-loop, esh-cmd-test/if-statement)
	(esh-cmd-test/if-else-statement, esh-cmd-test/unless-statement)
	(esh-cmd-test/unless-else-statement): Use variable interpolation.
	(esh-cmd-test/while-loop-ext-cmd, esh-cmd-test/until-loop-ext-cmd)
	(esh-cmd-test/if-else-statement-ext-cmd)
	(esh-cmd-test/unless-else-statement-ext-cmd): New tests, adapted from
	the existing ones.

	* doc/misc/eshell.texi (Control Flow): Update documentation for
	conditionals (bug#57129).

2022-08-13  Jim Porter  <jporterbugs@gmail.com>

	Only set Eshell execution result metavariables when non-nil

	This simplifies usage of 'eshell-close-handles' in several places and
	makes it work more like the docstring indicated it would.

	* lisp/eshell/esh-io.el (eshell-close-handles): Only store EXIT-CODE
	and RESULT if they're non-nil.  Also, use 'dotimes' and 'dolist' to
	simplify the implementation.

	* lisp/eshell/em-alias.el (eshell-write-aliases-list):
	* lisp/eshell/esh-cmd.el (eshell-rewrite-for-command)
	(eshell-structure-basic-command): Adapt calls to
	'eshell-close-handles'.

	* test/lisp/eshell/eshell-tests.el (eshell-test/simple-command-result)
	(eshell-test/lisp-command, eshell-test/lisp-command-with-quote)
	(eshell-test/for-loop, eshell-test/for-name-loop)
	(eshell-test/for-name-shadow-loop, eshell-test/lisp-command-args)
	(eshell-test/subcommand, eshell-test/subcommand-args)
	(eshell-test/subcommand-lisp): Move from here...

	* test/lisp/eshell/esh-cmd-tests.el
	(esh-cmd-test/simple-command-result, esh-cmd-test/lisp-command)
	(esh-cmd-test/lisp-command-with-quote, esh-cmd-test/for-loop)
	(esh-cmd-test/for-name-loop, esh-cmd-test/for-name-shadow-loop)
	(esh-cmd-test/lisp-command-args, esh-cmd-test/subcommand)
	(esh-cmd-test/subcommand-args, esh-cmd-test/subcommand-lisp): ... to
	here.
	(esh-cmd-test/and-operator, esh-cmd-test/or-operator)
	(esh-cmd-test/for-loop-list, esh-cmd-test/for-loop-multiple-args)
	(esh-cmd-test/while-loop, esh-cmd-test/until-loop)
	(esh-cmd-test/if-statement, esh-cmd-test/if-else-statement)
	(esh-cmd-test/unless-statement, esh-cmd-test/unless-else-statement):
	New tests.

	* doc/misc/eshell.texi (Invocation): Explain '&&' and '||'.
	(for loop): Move from here...
	(Control Flow): ... to here, and add documentation for other control
	flow forms.

2022-08-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	72fc7258bf Delete references to deleted library hilit19.el
	e746fc2e7b Delete stale comments from Lisp Intro manual
	77613b9217 ; Delete redundant installation instructions from ebnf2ps.el

2022-08-12  Po Lu  <luangruo@yahoo.com>

	Improve MPX interaction with drag-and-drop

	* src/xfns.c (Fx_set_mouse_absolute_pixel_position): Use
	internal client pointer record.
	* src/xterm.c (x_dnd_cancel_dnd_early): New function.  Only used
	on XI2 builds so far.
	(x_dnd_begin_drag_and_drop): Set the pointer device used for DND
	events.
	(xi_disable_devices): Cancel the drag-and-drop operation if that
	device is disabled.
	(x_send_scroll_bar_event): Update outdated comment.
	(handle_one_xevent): Only accept DND events from that device.
	(frame_set_mouse_pixel_position): Use internal client pointer
	record.

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Hide local variable section in emacs-news-modes

	* lisp/textmodes/emacs-authors-mode.el
	(emacs-authors-mode--hide-local-variables): Move from here...
	* lisp/emacs-lisp/subr-x.el (emacs-etc--hide-local-variables):
	...to here.

	* lisp/textmodes/emacs-authors-mode.el (subr-x): Require.
	(emacs-authors-mode): Use above renamed function.

	* lisp/textmodes/emacs-news-mode.el (subr-x): Require.
	(emacs-news--mode-common): Call 'emacs-etc--hide-local-variables'
	to hide local variables section.

2022-08-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't update loaddefs.el timestamps uselessly in loaddefs-generate

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't
	re-write the loaddefs.el file when there's no reason to.

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Support imenu in emacs-authors-mode

	* lisp/textmodes/emacs-authors-mode.el
	(emacs-authors-imenu-generic-expression): New variable.
	(emacs-authors-mode): Add imenu support.

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Rename etc-authors-mode to emacs-authors-mode

	* emacs-authors-mode.el: Rename all symbols from 'etc-authors-*' to
	'emacs-authors-*'.  Make most old names into obsolete compat aliases.
	* admin/authors.el:  (Bug#57105)
	* etc/AUTHORS: Use 'emacs-authors' instead of 'etc-authors'.

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Rename etc-authors-mode.el to emacs-authors-mode.el

	* lisp/textmodes/etc-authors-mode.el: Move from here...
	* lisp/textmodes/emacs-authors-mode.el: ...to here.  (Bug#57105)

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Delete references to deleted library hilit19.el

	* doc/misc/gnus.texi (Compatibility):
	* lisp/progmodes/f90.el:
	* lisp/ps-print.el:
	* lisp/vc/ediff.el: Delete references to hilit19.el.

2022-08-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix emacs-news-view-mode-map inheritance

	* lisp/textmodes/emacs-news-mode.el (emacs-news-view-mode-map):
	Fix inheritance from `special-mode-map' (bug#57100).

2022-08-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify bookmark-set prompt

	* lisp/bookmark.el (bookmark-set): Clarify prompt further
	(bug#57128).

2022-08-12  Harald Jörg  <haj@posteo.de>

	gud.el: invoke 'perldb' with '-E' instead of '-e'

	* lisp/progmodes/gud.el (gud-perldb-massage-args): Allow '-E' switch
	and use it as a default in favor of '-e'

	* etc/NEWS ('perldb' now recognizes '-E') New entry in section 'Gud'

2022-08-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove some more outdated Gnus manual stuff

	* doc/misc/gnus.texi (Mail Source Customization): Remove more
	outdated text (bug#57156).

2022-08-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove (gnus) Gnus Development manual section

	* doc/misc/gnus.texi (Gnus Development): Remove outdated section
	(bug#57156).

2022-08-12  Philip Kaludercic  <philipk@posteo.net>

	* package-vc.el (package-vc-fetch): Autoload it

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/gnus.texi (Emacsen): Delete section.

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Make some more cedet version variables obsolete

	* lisp/cedet/ede.el (ede-version):
	* lisp/cedet/semantic.el (semantic-version):
	* lisp/cedet/srecode.el (srecode-version): Make obsolete.
	* lisp/cedet/semantic/db-file.el (semanticdb-file-version): Don't
	use above obsolete variable semantic-version.

2022-08-12  Philip Kaludercic  <philipk@posteo.net>

	Merge remote-tracking branch 'origin/master' into feature/package+vc

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Delete stale comments from Lisp Intro manual

	* doc/lispintro/emacs-lisp-intro.texi (Args as Variable or List)
	(print-elements-of-list, Miscellaneous): Delete some references to
	Emacs 22.

2022-08-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify face-at-point doc string and add (thing-at-point 'face)

	* lisp/faces.el (face-at-point): Say what this function does.

	* lisp/thingatpt.el (thing-at-point-face-at-point): Add `face'
	type (bug#57087).
	(thing-at-point-provider-alist, thing-at-point): Mention it in the
	doc strings.

2022-08-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Further seq-uniq speed-ups for lists

	* lisp/emacs-lisp/seq.el (seq-uniq): Speed up more for long lists
	(bug#57079).

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Make finder-mode inherit special-mode

	* lisp/finder.el (finder-mode): Inherit special-mode.
	(finder-mode-map): Inherit special-mode-map.

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/finder.el (finder-summary): Improve formatting.

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Use help-key-binding face in package list help

	* lisp/emacs-lisp/package.el (package--prettify-quick-help-key):
	Use help-key-binding face.

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Make cedet version variables obsolete

	* lisp/cedet/cedet.el (cedet-version, cedet-packages): Make
	obsolete.

2022-08-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Default outline-minor-mode-use-buttons to only happen in *Help*

	* lisp/outline.el (outline-minor-mode-use-buttons): Change the
	default to only use buttons in the *Help* buffer (for now),
	because it's too disruptive in other modes.  This will probably be
	changed again to have some other mechanism to opt in in certain
	modes, but it's not clear what that mechanism should look like.

2022-08-12  Stephen Berman  <stephen.berman@gmx.net>

	Reverse the outline arrows

	* lisp/outline.el (outline-open): Reverse the arrows to match
	arrows in Customize (bug#57082).

2022-08-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	9419bc904d ; * lisp/printing.el: Delete outdated download instructions.
	31af0f4eb7 Don't list Emacs as requirement for built-in package
	ae348b719e Fix wrong metrics for bitmap-only fonts with HarfBuzz 5

2022-08-11  Po Lu  <luangruo@yahoo.com>

	Prevent SelectionNotify etc from reaching GTK 3

	* src/xterm.c (handle_one_xevent): Prevent selection events from
	reaching GTK if they are destined for an Emacs window.

2022-08-11  Alan Mackenzie  <acm@muc.de>

	New debugging facility: backtraces from errors in Lisp called from redisplay

	Setting backtrace-on-redisplay-error to non-nil enables the generation of a
	Lisp backtrace in buffer *Redisplay-trace* following an error in Lisp called
	from redisplay.

	* doc/lispref/debugging.texi (Debugging Redisplay): New subsection.
	(Error Debugging): Reference to the new subsection.

	* etc/NEWS: New entry for the new facility.

	* src/eval.c (redisplay_deep_handler): New variable.
	(init_eval): Initialize redisplay_deep_handler.
	(call_debugger): Don't throw to top-level after calling debug-early
	(internal_condition_case_n): "Bind" redisplay_deep_handler to the current
	handler.
	(backtrace_yet): New boolean variable.
	(signal_or_quit): New code section to handle Lisp errors occurring in
	redisplay.
	(syms_of_eval): New DEFVAR_BOOL backtrace-on-redisplay-error.

	* src/keyboard.c (command_loop_1): Set backtrace_yet to false each time around
	the loop.
	(safe_run_hooks_error): Allow args to be up to four Lisp_Objects long.
	(safe_run_hooks_2): New function.

	* src/lisp.h (top level): declare as externs backtrace_yet and
	safe_run_hooks_2.

	* src/xdisp.c (run_window_scroll_functions): Replace a call to
	run_hook_with_args_2 with one to safe_run_hooks_2.

2022-08-11  Axel Svensson  <mail@axelsvensson.com>  (tiny change)

	Support the full range of variation selectors

	* lisp/international/characters.el: Provide acronyms for variation
	selectors.
	(update-glyphless-char-display): Update display of the full range
	of variation selectors.
	(glyphless-char-display-control): Update doc string.  (Bug#57072)

	* doc/lispref/display.texi (Glyphless Chars): Document more
	variation selectors.

2022-08-11  Stefan Kangas  <stefankangas@gmail.com>

	Make ad-version variable obsolete

	* lisp/emacs-lisp/advice.el (ad-version): Make obsolete in favor
	of emacs-version.  It has not been bumped since 1994.

2022-08-11  Stefan Kangas  <stefankangas@gmail.com>

	Make ebnf-version variable obsolete

	* lisp/progmodes/ebnf2ps.el (ebnf-version): Make obsolete.
	(ebnf-setup, ebnf-begin-file, ebnf-eps-finish-and-write): Don't
	use above obsolete variable.

2022-08-11  Stefan Kangas  <stefankangas@gmail.com>

	Make ps-print-version variable obsolete

	* lisp/ps-print.el (ps-print-version): Make obsolete.
	(ps-setup, ps-begin-file):
	* lisp/progmodes/ebnf2ps.el:
	* lisp/printing.el:
	(pr-help-message, pr-interface-help-message)
	(pr-create-interface): Don't use above obsolete variable.

2022-08-11  Stefan Kangas  <stefankangas@gmail.com>

	Make pr-version variable obsolete

	* lisp/printing.el (pr-version): Make obsolete.
	(pr-help-message, pr-interface-help-message, pr-setup)
	(pr-create-interface): Don't use above obsolete variable.

2022-08-11  Stefan Kangas  <stefankangas@gmail.com>

	Don't list Emacs as requirement for built-in package

	* doc/misc/htmlfontify.texi (Requirements): Don't list Emacs as
	requirement for built-in package.

2022-08-11  Stefan Kangas  <stefankangas@gmail.com>

	Don't show status message in Helper-describe-bindings

	* lisp/emacs-lisp/helper.el (Helper-describe-bindings): Don't show
	status message.

2022-08-11  Philip Kaludercic  <philipk@posteo.net>

	Add "send patches" note to package-vc TODO section

	* package.el (describe-package-1): Add news if available

	* package.el (package--get-activatable-pkg): Prefer source packages

2022-08-11  Ulf Jasper  <ulf.jasper@web.de>

	newsticker: fix bug#57045

	* lisp/net/newst-treeview.el
	(newsticker--treeview-list-items-with-age) (newsticker-treeview-update):
	Fix issues with changing sort order in virtual feed 'all' (Bug#57045).

2022-08-11  Philip Kaludercic  <philipk@posteo.net>

	Allow updating source packages

	* lisp/emacs-lisp/package-vc.el (package-vc-update): Add new function.
	* lisp/emacs-lisp/package.el (package-update): Use 'package-vc-update'.

2022-08-11  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/vc/emerge.el (emerge-show-file-name): Make obsolete.

2022-08-11  Stefan Kangas  <stefankangas@gmail.com>

	Make emerge-define-key-if-possible obsolete

	* lisp/vc/emerge.el (emerge-define-key-if-possible): Make unused
	function obsolete.

2022-08-11  Philip Kaludercic  <philipk@posteo.net>

	Ignore files in .elpaignore during byte compilation

	* package.el (package--parse-elpaignore): Add new function.
	(package--compile): Bind 'byte-compile-ignore-files' to the result of
	'package--parse-elpaignore'.

2022-08-11  Philip Kaludercic  <philipk@posteo.net>

	* package-vc.el (package-vc-unpack): Detect TeXinfo manuals

2022-08-11  Michael Albinus  <michael.albinus@gmx.de>

	* test/lisp/net/tramp-tests.el (tramp--test-utf8): Adapt test.

2022-08-11  Philip Kaludercic  <philipk@posteo.net>

	Allow ignoring files during byte compilation

	* bytecomp.el (byte-compile-ignore-files): Add new variable.
	(byte-recompile-directory): Respect 'byte-compile-ignore-files'.

2022-08-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	Fix wrong metrics for bitmap-only fonts with HarfBuzz 5

	* src/ftcrfont.c (ftcrhbfont_begin_hb_font): Always use the standard
	position unit value on HarfBuzz 5 and later regardless of whether the
	font is bitmap-only or not.  (Bug#57066)

2022-08-11  Philip Kaludercic  <philipk@posteo.net>

	Guess Git repositories from the URL header

	* package-vc.el (package-vc-probable-repository-regexp): Add new user option.
	(package-vc-sourced-packages-list): Add new function using
	'package-vc-probable-repository-regexp'.
	(package-vc-fetch): Use 'package-vc-sourced-packages-list'.

2022-08-11  realcomplex  <koenvg@posteo.net>  (tiny change)

	Go back to making `override-global-mode` non-global

2022-08-11  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	648acc8848 ; Fix @setfilename in calc.texi

2022-08-10  Po Lu  <luangruo@yahoo.com>

	Adjust client pointer upon help event

	* src/xterm.c (handle_one_xevent): Keep track of the device that
	set do_help and make it the client pointer so that tooltips show
	up under the right pointer.

2022-08-10  Eli Zaretskii  <eliz@gnu.org>

	Fix 'describe-char' in "C" locale

	* lisp/descr-text.el (describe-char): Avoid assertions if
	'buffer-file-coding-system' is nil.  (Bug#57066)

2022-08-10  Visuwesh  <visuweshm@gmail.com>

	Improve the bengali-probhat input method

	* lisp/leim/quail/indian.el ("bengali-probhat"): Set KBD-TRANSLATE
	and SHOW-LAYOUT flags non-nil.  This makes the IM usable with Dvorak
	keyboard and also shows more useful help.  Reported by Akib Azmain
	Turja <akib@disroot.org>.

2022-08-10  Po Lu  <luangruo@yahoo.com>

	Fix some undesirable frame focus changes

	* src/xterm.c (handle_one_xevent): Only detach upon actual
	device tree change.

2022-08-10  Stefan Kangas  <stefankangas@gmail.com>

	Make gdb-pad-string obsolete in favor of string-pad

	* lisp/progmodes/gdb-mi.el (subr-x): Require.
	(gdb-pad-string): Make obsolete in favor of 'string-pad'.  Update
	callers.

2022-08-10  Mattias Engdegård  <mattiase@acm.org>

	Extend LAP optimizations to more operations

	Extend the set of eligible opcodes for certain peephole
	transformations, which then provide further optimization
	opportunities.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
	Optimize empty save-current-buffer in the same way as we already
	do for save-excursion and save-restriction.  This is safe
	because (save-current-buffer) is a no-op.
	(byte-compile-side-effect-and-error-free-ops): Add list3, list4 and
	listN.  These were all apparent oversights as list1 and list2 were
	already included.
	(byte-after-unbind-ops): Add stack-ref, stack-set, discard, list3,
	list4 and listN.  Stack manipulation is safe because unbind cannot
	read or modify stack entries.

2022-08-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation warning in wisent/comp.el

	* lisp/cedet/semantic/wisent/comp.el (require): string-pad is used
	run-time.

2022-08-10  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in vc/*.el

	* lisp/vc/add-log.el (change-log-mode-map):
	* lisp/vc/ediff-mult.el (ediff-dir-diffs-buffer-map):
	* lisp/vc/vc-annotate.el (vc-annotate-mode-map):
	* lisp/vc/vc-bzr.el (vc-bzr-shelve-map):
	* lisp/vc/vc-dir.el (vc-dir-status-mouse-map)
	(vc-dir-filename-mouse-map):
	* lisp/vc/vc-git.el (vc-git-stash-shared-map, vc-git-stash-map)
	(vc-git-stash-button-map, vc-git-log-edit-mode-map):
	* lisp/vc/vc-hg.el (vc-hg-log-edit-mode-map)
	(vc-hg-extra-menu-map):
	* lisp/vc/vc-hooks.el (vc-prefix-map): Prefer defvar-keymap.

2022-08-10  Koen van Greevenbroek  <koen@localhost.com>  (tiny change)

	Make sure that bind-key's `override-global-mode` is initially on

	In 4004dde the arguments to `define-minor-mode` were changed
	erroneously. Whereas the `override-global-mode` was initially defined
	as `(define-minor-mode override-global-mode "..." t "")`, the two
	latter arguments where changed to `:global t :lighter ""`. However,
	the two original arguments corresponded to the keywords `:init-value`
	and `:lighter`, respectively.

	With `:init-value t` now missing, the minor mode isn't enabled by
	default, and `bind-key*` appears not to work.

2022-08-10  Stefan Kangas  <stefankangas@gmail.com>

	Delete dead code in checkdoc.el

	* lisp/emacs-lisp/checkdoc.el: Delete code commented out since
	1997.

2022-08-10  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespacing issues in array.el

	* lisp/array.el (array--limit-index, array-current-line)
	(array-move-to-column-untabify, array--untabify-backward): Rename
	from 'limit-index', 'current-line', 'move-to-column-untabify', and
	'untabify-backward'.  Update callers.

2022-08-10  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	14833cd9df Improve wording when documenting other TRAMP syntaxes
	628df15da5 ; * doc/misc/viper.texi (Rudimentary Changes): Avoid alias.
	85de996bbb * lisp/vc/diff-mode.el: Don't mention XEmacs.

2022-08-09  Po Lu  <luangruo@yahoo.com>

	Improve MPX interaction with xwidgets and drag-and-drop

	* src/xterm.c (handle_one_xevent): Handle focus interaction in
	more places.

2022-08-09  Dmitry Gutov  <dgutov@yandex.ru>

	js--font-lock-keywords-2: Remove the 'for each' matcher

	* lisp/progmodes/js.el (js--font-lock-keywords-2):
	Remove the 'for each' matcher.  First, because it was slow
	(bug#56682), and second: the 'for each' syntax was only present in
	Mozilla's dialect of JavaScript (added in version 1.5), and has
	been deprecated for a decade now.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make wisent-pad-string obsolete in favor of string-pad

	* lisp/cedet/semantic/wisent/comp.el (wisent-pad-string): Make
	obsolete in favor of 'string-pad'.  Update callers.
	(subr-x): Require when compiling.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make unused function filesets-ormap obsolete

	* lisp/filesets.el (filesets-ormap): Simplify and make obsolete in
	favor of 'seq-drop-while'.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make filesets-filter-list obsolete in favor of seq-filter

	* lisp/filesets.el (filesets-filter-list): Make obsolete in favor
	of 'seq-filter'.  Update callers.

2022-08-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid having language environments interpreted as sections

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make rng-collapse-space obsolete

	* lisp/nxml/rng-util.el (rng-collapse-space): Make obsolete in favor
	of 'string-clean-whitespace'.  Update callers.
	Suggested by Lars Ingebrigtsen <larsi@gnus.org>.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Improve wording when documenting other TRAMP syntaxes

	* doc/misc/tramp.texi (Change file name syntax): Improve wording.
	(Bug#57061)

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Avoid using aliases for color functions

	* lisp/emulation/viper-init.el (viper-has-face-support-p):
	* lisp/emulation/viper-util.el (viper-save-cursor-color)
	(viper-change-cursor-color):
	* lisp/faces.el (read-color):
	* lisp/net/dictionary.el (dictionary-color-support):
	* lisp/obsolete/gs.el (gs-set-ghostview-colors-window-prop):
	* lisp/progmodes/cperl-mode.el (cperl-choose-color):
	* lisp/woman.el (woman-fontify): Avoid using aliases for
	color-defined-p, display-color-p, and color-values.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Remove some compat code from ps-print.el

	* lisp/ps-print.el (ps-print-color-p): Assume color-values is
	fboundp; it always is.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/vc/pcvs-util.el (cvs-partition): Simplify.

	* lisp/nxml/rng-util.el (rng-collapse-space): Simplify.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make rng-blank-p obsolete in favor of string-blank-p

	* lisp/nxml/rng-util.el (rng-blank-p): Make obsolete in favor of
	string-blank-p.  Update callers.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Autoload string-blank-p

	* lisp/eshell/em-hist.el (subr-x):
	* lisp/net/eudc.el (subr-x): Don't require.
	* lisp/emacs-lisp/subr-x.el (string-blank-p): Autoload.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/ibuf-ext.el (ibuffer-remove-alist): Simplify.

2022-08-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Use new convenience functions in replace-string

	* lisp/replace.el (replace-string): Use new convenience functions.

2022-08-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Add use-region-beginning and use-region-end

	* lisp/simple.el (use-region-beginning, use-region-end): New functions.
	(use-region-p): Mention them in the doc strings (bug#45607).

2022-08-09  Juri Linkov  <juri@linkov.net>

	* lisp/replace.el (replace-highlight): Optimize for large buffers (bug#56815)

	Let-bind isearch-lazy-count and lazy-highlight-buffer to nil to avoid
	revisiting all matches in the whole buffer after every replacement.

2022-08-09  Andrea Greselin  <greselin.andrea@gmail.com>

	Add new user option electric-quote-replace-consecutive

	* lisp/electric.el (electric-quote-replace-consecutive): New user
	option (bug#57057).
	(electric-quote-post-self-insert-function): Use it.

2022-08-09  Stephen Berman  <stephen.berman@gmx.net>

	Make outline buttons work in NEWS

	* lisp/outline.el (outline-minor-mode-highlight-buffer): Fix
	button insertion.
	(outline-minor-mode): Ditto.
	(outline--insert-open-button): Don't mark buffer as modified when
	inserting buttons.
	(outline--insert-close-button): Ditto.

	* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common):
	Adjust outline regexp.

2022-08-09  Eli Zaretskii  <eliz@gnu.org>

	Revert "Make compat alias check-ispell-version obsolete"

	This reverts commit 24795e45e5fab6e2f699582662f9be7c5c6e25f8.

	That alias is in no way obsolete, and was added for a different
	reason.

2022-08-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Further lisp-current-defun-name tweaks

	* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Tweak so
	that cl-defmethod and friends work again.

2022-08-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a faster seq-uniq for lists

	* lisp/emacs-lisp/seq.el (seq-uniq): Add a faster method for lists
	(bug#57079).

2022-08-09  Laurence Warne  <laurencewarne@gmail.com>

	Fix python escape code fontification for multi-line literals

	* lisp/progmodes/python.el (python--string-bytes-literal-matcher): Go
	backward one char after a match so that consecutive escape codes are
	highlighted
	(python--not-raw-string-literal-start-regexp): Make regular expression
	more comprehensive, so multi-line bytes literals are not caught
	(python-rx): Accept one to three octal digits in octal escape codes
	instead of always three

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make ibuffer-aif obsolete in favor of if-let

	* lisp/ibuf-macs.el (ibuffer-aif): Make obsolete in favor of 'if-let'.
	* lisp/ibuffer.el (ibuffer-mouse-toggle-mark)
	(ibuffer-mark-interactive, ibuffer-compile-format, process):
	Prefer 'if-let' to above obsolete macro.
	(ibuffer-toggle-marks, ibuffer-map-lines): Prefer 'when-let'
	to above obsolete macro.

2022-08-09  Michael Albinus  <michael.albinus@gmx.de>

	Further Tramp fixes for Android 12

	* lisp/net/tramp-adb.el (tramp-adb-handle-file-attributes)
	(tramp-adb-handle-directory-files-and-attributes)
	(tramp-adb-handle-file-name-all-completions): Pipe "ls" output
	through "cat", in order to avoid quoting special characters.
	(tramp-adb-sh-fix-ls-output): Remove fix for file names with spaces.

	* test/lisp/net/tramp-tests.el (tramp-test22-file-times): Adapt test.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Improve message regarding missing LEIM

	* lisp/international/ja-dic-utl.el (skkdic-lookup-key):
	* lisp/international/mule-diag.el (list-input-methods-1):
	* lisp/international/quail.el (quail-use-package): Explain that LEIM
	is installed together with Emacs.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Improve readability of list-input-methods

	* lisp/international/mule-diag.el: Make screen more readable by
	improving the formatting.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Replace utility functions with seq-uniq

	* lisp/gnus/gnus-util.el (gnus-delete-duplicates):
	* lisp/ibuf-ext.el (ibuffer-remove-duplicates): Redefine as
	obsolete function alias for 'seq-uniq'.  Update callers.

2022-08-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the loaddefs.el file slightly shorter

	* lisp/emacs-lisp/loaddefs-gen.el
	(loaddefs-generate--shorten-autoload): New function.
	(loaddefs-generate--make-autoload): Use it to drop optional nil
	values from the `autoloads' forms.  This makes the loaddefs.el
	file about 12K shorter.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make ibuffer-awhen obsolete in favor of when-let

	* lisp/ibuf-macs.el (ibuffer-awhen): Make obsolete in favor of
	'when-let'.  Update callers.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make ibuffer-split-list obsolete in favor of seq-group-by

	* lisp/ibuf-ext.el (ibuffer-split-list): Make obsolete in favor of
	'seq-group-by'.
	(ibuffer-generate-filter-groups): Don't use above obsolete
	function.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make compat alias check-ispell-version obsolete

	* lisp/textmodes/ispell.el (check-ispell-version): Make compat
	alias obsolete.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/ibuffer.el (ibuffer): Use substitute-command-keys for help.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make compat alias image-refresh obsolete

	* lisp/image.el (image-refresh): Make compat alias obsolete.
	Update callers.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Make compat aliases obsolete in fortran.el

	* lisp/progmodes/fortran.el (fortran-indent-new-line)
	(fortran-auto-fill-mode): Make compat aliases obsolete; update
	callers.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/isearch.el (isearch-mode-help): Make compat alias obsolete.

2022-08-09  Alan Mackenzie  <acm@muc.de>

	CC Mode: Allow the insertion of long strings of letters in reasonable time

	This fix allows M-: (insert (make-string 1000000 ?y)) to work fast when
	inserted between C++ raw string delimiters after (setq long-line-threshold
	nil).

	* lisp/progmodes/cc-langs.el (c-symbol-key): Replace a "*" by "\\{,1000\\}" in
	a regexp.

2022-08-09  Po Lu  <luangruo@yahoo.com>

	Factor out some duplicate code from handle_one_xevent

	* src/xterm.c (xi_disable_devices): New function.
	(handle_one_xevent): Use that to disable an array of device IDs
	instead of copypasting the same block of code over and over
	again.

2022-08-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d91ffdbec2 Don't mention XEmacs toolbar in ediff manual

2022-08-08  Po Lu  <luangruo@yahoo.com>

	Fix handling of XI_DeviceChanged events

	* src/xterm.c (xi_get_scroll_valuator): New function.
	(xi_handle_device_changed): New function.
	(handle_one_xevent): Factor out most of the device changed code
	to that function, and make it specifically query for the device
	information.  (bug#57020)

2022-08-08  Michael Heerdegen  <michael_heerdegen@web.de>

	Another lisp-current-defun-name tweak

	* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Avoid error
	when edebug spec is the symbol t.

2022-08-08  Dmitry Gutov  <dgutov@yandex.ru>

	Add separate tiny major mode for JSON

	* lisp/progmodes/js.el (js-json-mode): New major mode.

	* lisp/files.el (auto-mode-alist): Use it for JSON (bug#56682).

	* lisp/progmodes/js.el (js--class-decl-matcher):
	Skip work if there are no frameworks enabled.

2022-08-08  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsiiformes/quote-quote

	GitHub-reference: https://github.com/jwiegley/use-package/issues/990

2022-08-08  Jonas Bernoulli  <jonas@bernoul.li>

	Quote single quotes in docstrings or use different quoting

	The byte-compiler started pointing this out:
	  Warning: docstring has wrong usage of unescaped single
	  quotes (use \= or different quoting)

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/vc/diff-mode.el: Don't mention XEmacs.

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Don't mention XEmacs toolbar in ediff manual

	* doc/misc/ediff.texi (Other Session Commands): Don't mention XEmacs
	specific toolbar support for now.  This can be changed back once the
	toolbar is ported to Emacs.

2022-08-08  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsiiformes/cleanup-manual

	GitHub-reference: https://github.com/jwiegley/use-package/issues/968

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/progmodes/antlr-mode.el: Remove remnants of XEmacs support.

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove XEmacs specific symbol from gnus-user-agent

	* lisp/gnus/gnus.el (gnus-user-agent): Remove XEmacs specific
	'codename' symbol.

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove some XEmacs compat code from mh-alias.el

	* lisp/mh-e/mh-alias.el (crm): Don't require for autoloaded
	function.
	(multi-prompt): Don't require XEmacs specific library.

2022-08-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up fix_command code slightly

	* src/callint.c (fix_command): Remove superfluous check.

2022-08-08  Lars Ingebrigtsen  <larsi@gnus.org>

	select-active-regions doc string improvement

	* src/keyboard.c (syms_of_keyboard): Mention
	post-select-region-hook.

2022-08-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Do some NEWS tagging

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/obsolete/makesum.el: Add "Obsolete-since" header.

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Make makesum.el obsolete

	* lisp/makesum.el: Move from here...
	* lisp/obsolete/makesum.el: ...to here.  (Bug#56979)

	* test/lisp/makesum-tests.el: Move from here...
	* test/lisp/obsolete/makesum-tests.el: ...to here.

2022-08-08  Mattias Engdegård  <mattiase@acm.org>

	* src/print.c (struct print_buffer): Revert gratuitous format change.

2022-08-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Add NEWS note about interactive-args

2022-08-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Update TODO about fix_command

	* etc/TODO: Remove bit about fix_command, which has now been fixed.

2022-08-08  Arash Esbati  <arash@gnu.org>

	Improve collecting of citation keys

	* lisp/textmodes/reftex-cite.el (reftex-all-used-citation-keys):
	Improve regexp for matching various cite commands incl. optional
	arguments.
	Recognize comments more robustly and don't interpret the control
	symbol \% as a comment starter.  (bug#56655)

	* test/lisp/textmodes/reftex-tests.el
	(reftex-all-used-citation-keys): New test.

2022-08-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up fix_command slightly

	* src/callint.c (fix_command): Remove now-unused parameter.
	(Fcall_interactively): Ditto.

2022-08-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Further lisp-current-defun-name tweaks

	* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Further
	tweaks to finding the symbol being defined (defalias).

2022-08-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow specifying how args are to be stored in `command-history'

	* doc/lispref/functions.texi (Declare Form): Document
	`interactive-args'
	* lisp/replace.el (replace-string): Store the correct interactive
	arguments (bug#45607).

	* lisp/emacs-lisp/byte-run.el (byte-run--set-interactive-args):
	New function.
	(defun-declarations-alist): Use it.

	* src/callint.c (fix_command): Remove the old hack (which now
	longer works since interactive specs are byte-compiled) and
	instead rely on `interactive-args'.

2022-08-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Make which-func-mode output less junk

	* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Use
	edebug specs to find the name (if they exist), and default to
	returning the top-level symbol if there isn't a define-like form
	(bug#49592).

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	* test/lisp/emacs-lisp/nadvice-tests.el: Re-add no-byte-compile.

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove redundant local variables in tests

	* test/lisp/calc/calc-tests.el:
	* test/lisp/progmodes/python-tests.el: Remove redundant local
	variables.
	* test/src/coding-tests.el: Pacify byte-compiler without using local
	variable.

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Revert "Don't autoload obsolete library tpu-extras.el"

	This reverts commit 77bf50cb330807039cc84138fb84870bd6d532e2.

2022-08-08  Jonas Bernoulli  <jonas@bernoul.li>

	manual: Regenerate texi file

2022-08-08  Mattias Engdegård  <mattiase@acm.org>

	Group print buffer state in a struct

	* src/print.c (print_buffer, print_buffer_size, print_buffer_pos)
	(print_buffer_pos_byte): Replace with...
	(struct print_buffer, print_buffer): ...this.
	* src/print.c: (print_free_buffer, print_unwind)
	(print_prepare, print_finish, printchar, strout): Adapt users.

2022-08-08  Mattias Engdegård  <mattiase@acm.org>

	Turn large macros in print.c to functions

	This is easier to read and maintain, and makes the state explicit.
	It is a pure refactoring; the compiled code should be equivalent.

	* src/print.c (PRINTPREPARE, PRINTFINISH): Replace with...
	(struct print_context, print_prepare, print_finish): ...these new
	functions and explicit state in a struct.
	(Fwrite_char, write_string, Fterpri, Fprin1, Fprin1_to_string)
	(Fprinc, Fprint): Adapt callers.

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove no-byte-compile cookie from some libraries

	This gives us back byte-compiler warnings for these files.
	* lisp/mh-e/mh-acros.el:
	* test/lisp/comint-tests.el:
	* test/lisp/emacs-lisp/nadvice-tests.el:
	* test/lisp/emacs-lisp/syntax-tests.el:
	* test/lisp/xml-tests.el:
	* test/src/font-tests.el: Remove no-byte-compile cookie.
	* test/src/font-tests.el (font-parse-explain): Fix warning.

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Don't autoload obsolete library tpu-extras.el

	* lisp/obsolete/tpu-edt.el: Remove autoloads of obsolete library
	tpu-extras.el.
	* lisp/obsolete/tpu-extras.el: Don't set generated-autoload-file
	to tpu-edt.el.

2022-08-08  Stefan Kangas  <stefankangas@gmail.com>

	Clean up some local variable sections

	* lisp/filesets.el:
	* lisp/mh-e/mh-*.el:
	* lisp/progmodes/python.el (python): Don't set options that are
	already set in .dir-locals.el.
	* lisp/textmodes/ispell.el: Remove redundant local variables.
	* lisp/gnus/nnmaildir.el: Remove local variables that conflicts with
	Emacs defaults.

2022-08-07  Po Lu  <luangruo@yahoo.com>

	Fix warnings outside XI2 builds

	* src/xterm.c (x_query_pointer): Juggle some definitions around.

2022-08-07  Po Lu  <luangruo@yahoo.com>

	Improve handling of pointer focus under the input extension

	* src/xfns.c (x_relative_mouse_position)
	(Fx_mouse_absolute_pixel_position, compute_tip_xy): Use
	x_query_pointer instead of XQueryPointer.
	* src/xterm.c (xi_populate_device_from_info): Set new attachment
	field.
	(xi_handle_focus_change): Set client pointer.
	(xi_focus_handle_for_device, xi_handle_interaction): Use
	attached keyboard device to handle focus.
	(x_query_pointer): New function.
	(XTmouse_position, x_scroll_bar_report_motion)
	(x_horizontal_scroll_bar_report_motion, handle_one_xevent): Use
	x_query_pointer instead of XQueryPointer.
	(x_term_init): Initialize client pointer device.
	* src/xterm.h (struct xi_device_t): New field `attachment'.
	(struct x_display_info): New field `client_pointer_device'.

2022-08-07  Stefan Kangas  <stefankangas@gmail.com>

	Minor cleanups in ediff-*.el

	* lisp/vc/ediff-init.el (ediff-window-visible-p):
	(ediff-nonempty-string-p): Simplify.
	(stipple-pixmap): Don't try XEmacs specific(?) variable.
	(ediff-frame-unsplittable-p): Make obsolete.  Update callers.
	(ediff-has-gutter-support-p): Redefine as obsolete function alias for
	'ignore'.
	(ediff-mouse-event-p): Redefine as obsolete function alias for
	'mouse-event-p'.  Update callers.
	* lisp/vc/ediff-util.el (ediff-submit-report): Simplify.
	(ediff-filename-magic-p): Make obsolete.  Update callers.
	(ediff-activate-mark): Make obsolete.  Update callers.
	* lisp/vc/ediff-help.el:
	* lisp/vc/ediff-hook.el:
	* lisp/vc/ediff-util.el:
	* lisp/vc/ediff-wind.el: Remove superfluous defvars.

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from conao3/fix-declare-style

	GitHub-reference: https://github.com/jwiegley/use-package/issues/760

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from waymondo/ensure-system-packages-use-package-as-one

	GitHub-reference: https://github.com/jwiegley/use-package/issues/774

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from waymondo/use-package-hook-handler-flatten-mode-symbols

	GitHub-reference: https://github.com/jwiegley/use-package/issues/775

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from waymondo/use-package-chords-autoloading-and-mapping-improvements

	GitHub-reference: https://github.com/jwiegley/use-package/issues/778

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from matzebond/master

	GitHub-reference: https://github.com/jwiegley/use-package/issues/787

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from wcy123/master

	GitHub-reference: https://github.com/jwiegley/use-package/issues/822

2022-08-07  Stefan Kangas  <stefankangas@gmail.com>

	Make ediff-window-display-p obsolete

	* lisp/vc/ediff-init.el (ediff-window-display-p): Redefine as
	obsolete function alias for 'display-graphic-p'.

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phst/lex

	GitHub-reference: https://github.com/jwiegley/use-package/issues/848

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phst/flet

	GitHub-reference: https://github.com/jwiegley/use-package/issues/849

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from conao3/add-custom-face-description

	GitHub-reference: https://github.com/jwiegley/use-package/issues/863

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from iaeerfung/master

	GitHub-reference: https://github.com/jwiegley/use-package/issues/912

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from wyuenho/set-default-use-package-enable-imenu-support

	GitHub-reference: https://github.com/jwiegley/use-package/issues/920

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from wyuenho/statistics-sorting

	GitHub-reference: https://github.com/jwiegley/use-package/issues/921

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from Hugo-Heagren/bind-keys-repeat-map

	GitHub-reference: https://github.com/jwiegley/use-package/issues/974

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from danielpza/add-update-custom-package

	GitHub-reference: https://github.com/jwiegley/use-package/issues/930

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsiiformes/silencio

	GitHub-reference: https://github.com/jwiegley/use-package/issues/936

2022-08-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Pacify a gcc warning in xi_handle_focus_change

	* src/xterm.c (xi_handle_focus_change): Pacify a wrong warning on
	gcc (Debian 10.2.1-6).

	xterm.c: In function ‘xi_handle_focus_change’:
	xterm.c:12564:25: warning: ‘source’ may be used uninitialized in
	this function [-Wmaybe-uninitialized]
	12564 |       ie.device = source->name;
	      |                   ~~~~~~^~~~~~

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from DamienCassou/update-texi

	GitHub-reference: https://github.com/jwiegley/use-package/issues/979

2022-08-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from skangas/fix-typo

	GitHub-reference: https://github.com/jwiegley/use-package/issues/987

2022-08-07  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp error message

	* lisp/net/tramp-sh.el (tramp-sh-handle-file-local-copy):
	Simplify for empty files.  Better error message.  (Bug#56879)

2022-08-07  kobarity  <kobarity@gmail.com>

	Fix blank/comment line handling in python-nav-beginning-of-block

	* lisp/progmodes/python.el (python-nav-beginning-of-block): Fix
	handling of blank/comment line right after block start (bug#57038).

2022-08-07  Eli Zaretskii  <eliz@gnu.org>

	Fix 'vertical-motion' in bidi-reordered text

	* src/xdisp.c (move_it_vertically_backward): Fix the case of long
	bidi-reordered lines when starting from its last (top-most) screen
	line.
	(move_it_by_lines): Fix logic of detection when going by lines
	overshoots.

2022-08-07  Stefan Kangas  <stefankangas@gmail.com>

	Make ediff-file-remote-p obsolete in favor of file-remote-p

	* lisp/vc/ediff-init.el (ediff-file-remote-p): Make into obsolete
	function alias for file-remote-p.  Update callers.

2022-08-07  Stefan Kangas  <stefankangas@gmail.com>

	Declare unused function ediff-user-grabbed-mouse obsolete

	* lisp/vc/ediff-init.el (ediff-user-grabbed-mouse): Declare unused
	function obsolete.  As far as I can tell, this has been unused
	since 1996.

	* lisp/vc/ediff-wind.el (ediff-mouse-pixel-position): Make
	variable obsolete.  It is only used in the above obsolete funct
	* lisp/vc/ediff-mult.el (ediff-filegroup-action)
	(ediff-registry-action):
	* lisp/vc/ediff-util.el (ediff-setup): Don't set above unused
	variable.

	* lisp/vc/ediff-init.el (ediff-spy-after-mouse): Make obsolete.
	* lisp/vc/ediff-util.el (ediff-setup): Don't add above obsolete
	function to pre-command-hook.

2022-08-07  Stefan Kangas  <stefankangas@gmail.com>

	Make compat function custom-reset-variables obsolete

	* lisp/custom.el (custom-reset-variables): Make unused XEmacs compat
	function obsolete.

2022-08-07  Stefan Kangas  <stefankangas@gmail.com>

	Remove workaround for XEmacs bug in ediff-util.el

	* lisp/vc/ediff-util.el (ediff-make-empty-tmp-file): Remove
	workaround for XEmacs bug.

2022-08-07  Stefan Kangas  <stefankangas@gmail.com>

	* lib-src/etags.c: Remove XEmacs support.

2022-08-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify lisp/Makefile.in comment

	* lisp/Makefile.in: Clarify comment.

2022-08-07  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix looping in patch from yesterday

	* lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings)
	(c-after-change-mark-abnormal-strings): Check (eobp) in loops advancing over
	escaped newlines.

2022-08-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak autoloads lisp/Makefile.in dependencies

	* lisp/Makefile.in (autoloads): Adjust the dependencies to what
	they were before, and update the comments.

2022-08-07  Stefan Kangas  <stefankangas@gmail.com>

	Improve how url-http displays status messages

	* lisp/url/url-util.el (url-display-message): New function.
	(url-display-percentage): Make obsolete in favor of
	url-display-message.

	* lisp/url/url-http.el
	(url-http-content-length-after-change-function):
	Prefer 'url-display-message' to 'url-display-percentage'.
	(url-http-content-length-after-change-function)
	(url-http-chunked-encoding-after-change-function):
	Remove ineffectual calls to 'url-display-percentage'.

2022-08-07  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	7ffcba4213 * etc/PROBLEMS: Problems with Alacritty and Emoji.  (Bug#5...
	df95118e83 Link from (emacs)Init Syntax to (elisp)Introduction
	7793cf0c3d Don't mention removed XEmacs support in reftex manual
	3d1cf1b47a Don't mention removed XEmacs support in idlwave manual
	7ff60c62a9 ; * admin/make-tarball.txt: Fix last change.
	2fd5590d0c ; * lisp/play/fortune.el (fortune-ask-file): Doc fix.

2022-08-07  Mattias Engdegård  <mattiase@acm.org>

	Cease emitting negative file offsets for user variables

	'User variables' were made obsolete in Emacs 24 along with
	user-variable-p; the sign of the position in (#$ . POS) hasn't
	mattered since.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform):
	Don't emit negative position when doc string starts with `*`.
	* src/lread.c (get_lazy_string): Explain.

2022-08-07  Mattias Engdegård  <mattiase@acm.org>

	Use struct for saved strings in the reader

	* src/lread.c (saved_doc_string, saved_doc_string_size)
	(saved_doc_string_length, saved_doc_string_position)
	(prev_saved_doc_string, prev_saved_doc_string_size)
	(prev_saved_doc_string_length, prev_saved_doc_string_position):
	Replace with...
	(struct saved_string, saved_strings): ...this.
	* src/lread.c (Fload, skip_lazy_string, get_lazy_string):
	Adapt code.

2022-08-07  Mattias Engdegård  <mattiase@acm.org>

	Make force-load-doc-strings work again

	When load-force-doc-strings is true, read (#$ . POS) as the (unibyte)
	string referred to.  This feature was lost by mistake in the recent
	nonrecursive reader rewrite.

	Noticed by Stefan Monnier.

	* src/lread.c (get_lazy_string): New function (code mostly recycled
	from an old version).
	(read0): Detect (#$ . FIXNUM) and retrieve the string if appropriate.
	* test/src/lread-resources/lazydoc.el:
	* test/src/lread-tests.el (lread-force-load-doc-strings):
	New test.

2022-08-06  Po Lu  <luangruo@yahoo.com>

	Revert "Improve X event timestamp tracking"

	This reverts commit 4b98a79a508ebdc719abfcf51ee6de32e46d0e1c.

	This change was installed without answering several important
	questions.

2022-08-06  Daniel Colascione  <dancol@dancol.org>

	Improve X event timestamp tracking

	Fix two problems with our handling of X timestamps

	1) We're not properly updating the X interaction timestamp after
	receiving certain input events, and

	2) X events sent in response to emacsclient commands get stale
	timestamps because the timestamp tracking doesn't take into account
	that interactions with the user can occur outside the X input
	event channel.

	* src/xterm.c:
	(x_display_set_last_user_time_1): New function.
	(x_display_set_last_user_time): Call it.
	(x_ewmh_activate_frame): Refactor.
	(x_focus_frame): Don't call XSetInputFocus if we can use EWMH activation.
	(server_timestamp_predicate): New function.
	(x_get_server_time): New function.
	(x_note_oob_interaction): New function.
	(x_create_terminal): Register new function as terminal hook.

	* src/termhooks.h: New hook: note_oob_interaction_hook.

	* src/gtkutil.h:
	(xg_set_user_timestamp): Declare.

	* src/gtkutil.c:
	(xg_set_user_timestamp): New function.

	* src/frame.c:
	(Fframe_note_oob_interaction): New function.
	(syms_of_frame): Register it.

	* lisp/server.el:
	(server-switch-buffer): Call frame-note-oob-interaction when user
	requests frame be raised.

2022-08-06  Po Lu  <luangruo@yahoo.com>

	Correctly set user time on GTK+ for key press events

	* src/xterm.c (x_set_gtk_user_time): New function.
	(handle_one_xevent): Call that after key press event on GTK+.

2022-08-06  Jonas Bernoulli  <jonas@bernoul.li>

	* lisp/transient.el: Update to package version v0.3.7-158-gc09b34e

2022-08-06  Alan Mackenzie  <acm@muc.de>

	CC Mode: Optimize font-locking stanzas for long raw strings.

	Also replace some regexp searches which had caused regexp engine stack
	overflows with simple end-of-line calls.

	* lisp/progmodes/cc-fonts.el (c-make-syntactic-matcher)
	(c-make-font-lock-search-form): Start the generated functions with a skipping
	of comments and strings.
	(c-make-font-lock-BO-decl-search-function): Start the generated function with
	a (fast) movement to the start of any literal.

	* lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings)
	(c-after-change-mark-abnormal-strings): Replace complicated regexp searches
	for end of logical line with basic Lisp functions.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Finish up obsoletion of mh-compat.el

	* lisp/obsolete/mh-compat.el: Add "Obsolete-since" header.
	* lisp/mh-e/mh-e.el (mh-compat): Don't require.
	* lisp/mh-e/mh-utils.el (mailabbrev): Require.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Make mh-compat.el obsolete

	This used to be for XEmacs and old version compatibility, but nowadays
	everything in this file is obsolete.

	* lisp/mh-e/mh-compat.el: Move from here...
	* lisp/obsolete/mh-compat.el: ...to here.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Move mh-flet macro to mh-acros.el

	* lisp/mh-e/mh-compat.el (mh-flet): Move from here...
	* lisp/mh-e/mh-acros.el (mh-flet): ...to here.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Make compat macro mh-display-completion-list obsolete

	* lisp/mh-e/mh-compat.el (mh-display-completion-list): Make compat
	macro obsolete.  Update callers.

2022-08-06  Eli Zaretskii  <eliz@gnu.org>

	* etc/PROBLEMS: Problems with Alacritty and Emoji.  (Bug#56952)

2022-08-06  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp for Android 12

	* lisp/net/tramp-adb.el (tramp-methods): Use "%d".
	(tramp-adb-handle-directory-files-and-attributes): Fix "." and
	".." in listing.
	(tramp-adb-sh-fix-ls-output): Fix file names with spaces.
	(tramp-adb-maybe-open-connection): Compute args from `tramp-login-args'.

	* lisp/net/tramp.el (tramp-methods): Adapt docstring.
	(tramp-handle-make-process): Check for adb device if indicated.

	* test/lisp/net/tramp-tests.el (tramp-test17-insert-directory)
	(tramp-test22-file-times): Adapt tests.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespacing problem in allout.el

	* lisp/allout.el (allout-outlinify-sticky): Rename from
	'outlineify-sticky'.  Make old name into obsolete alias.
	(outlinify-sticky): Make into obsolete function alias for
	'allout-outlinify-sticky'.
	(allout-mode): Doc fix.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Fix defvar-keymap example in elisp manual

	* lisp/textmodes/text-mode.el (text-mode-map): Convert to
	defvar-keymap.
	* doc/lispref/modes.texi (Example Major Modes): Fix example to
	match code.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Make indented-text-mode alias obsolete

	* lisp/textmodes/text-mode.el (indented-text-mode): Make compat
	alias obsolete.
	* lisp/allout.el (allout-use-hanging-indents):
	* lisp/emulation/viper.el (viper-vi-state-mode-list):
	* lisp/textmodes/remember.el (remember-mode):
	* lisp/textmodes/text-mode.el (text-mode-map):
	* lisp/vc/ediff-util.el (ediff-choose-syntax-table): Don't mention or
	use above obsolete alias.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Make {close,replace}-rectangle compat aliases obsolete

	* lisp/rect.el (close-rectangle, replace-rectangle): Make compat
	aliases obsolete.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Don't mention test failures on Ubuntu 16.04 in PROBLEMS

	Ubuntu 16.04 LTS reached end of life on April 30th, 2021.
	Furthermore, test failures don't seem significant enough to warrant an
	entry.  It's rather cosmetic.
	* etc/PROBLEMS: Delete entry on test failures on Ubuntu 16.04.

2022-08-06  Eli Zaretskii  <eliz@gnu.org>

	New function 'composition-sort-rules'

	* src/composite.c (Fcomposition_sort_rules)
	(compare_composition_rules): New functions.

2022-08-06  Jonas Bernoulli  <jonas@bernoul.li>

	* doc/misc/transient.texi: Update to transient v0.3.7-156-ga5562cb

	Eventually we want to be able to generate "transient.texi" from
	"transient.org", without having to either give up on idiomatic texinfo
	or making it much more painful to maintain the org file.

	We are much closer to that now, but there are still a few areas where
	additional work is needed.  This was mostly accomplished by using Org
	macros.

	The most significant outstanding issue is that the generated
	references don't yet look like an experienced texinfo author like Eli
	would like them to look.  Additionally it is not yet possible to use a
	macro that produces @dots{} in the places Eli added them, and in Org
	code blocks it is not possible to use macros, so we cannot have
	@var{...} appear in "@lisp ... @end lisp".  The last issue probably
	cannot be changed on Org's side, but since there are only two such
	code blocks, this might be a situation where the compromise has to
	come from the texinfo side.  There are also three other very minor
	and inconsequential differences.

	For now I have regenerated the texinfo file from the org file and then
	discarded the differences mentioned in the previous paragraph.

	The process of merging (1) Eli's changes to the texinfo file
	(including, but certainly not limited to markup), (2) changes to the
	org source (updated content, formatting changes backported earlier,
	fixes for formatting changes Eli did not fix, etc.) and (3) changes to
	the code that converts the org source to texinfo, was very laborious
	and painful.  In essence, this amounted to a (at least) three-way
	merge across three different languages and three repositories.

	I tried very hard to not waste any of the effort Eli had put into
	fixing up the generated texinfo file.  I.e., I went back and forth
	making improvements to the org source, implementing org macros,
	regenerating the texinfo and comparing the remaining difference, and
	creating commits on both sides.  This resulted in a dozen commits on
	both sides and took me well over a day.  I could have put in even more
	effort to absolutely ensure nothing at all is lost in the process, but
	I think that would have amounted to a colossal waste of my time.

	Going forward, if you find unidiomatic texinfo, then please don't fix
	each instance.  Instead write me an email, explaining what the problem
	is.  You are welcome to make limited fixes to the content or fix
	one-of markup issue in the texinfo file; those are relatively simple
	to backport in comparison.

2022-08-06  Eli Zaretskii  <eliz@gnu.org>

	Speed up display of Arabic

	* lisp/language/misc-lang.el (composition-function-table): Move
	some of the Arabic composition rules to ZWJ and ZWNJ cells.  This
	speeds up display of Arabic by a factor of 2.  (Bug#56682)

2022-08-06  Eli Zaretskii  <eliz@gnu.org>

	Fix C-n/C-p inside bidirectional text

	* src/xdisp.c (move_it_by_lines, try_cursor_movement): Handle
	glyph rows whose direction of increasing buffer positions is
	reverse of the normal: going down in the window makes buffer
	positions higher.
	* src/indent.c (Fvertical_motion): When looking for the last glyph
	row occupied by point, take into account the bidi iteration
	direction.

2022-08-06  YugaEgo  <yet@ego.team>

	Link from (emacs)Init Syntax to (elisp)Introduction

	* doc/emacs/custom.texi (Init Syntax): Link to the ELisp manual (Bug#56870)

2022-08-06  lWarne  <laurencewarne@gmail.com>

	Fontify python escape sequences in literals

	* lisp/progmodes/python.el (python-rx): Add regular expressions
	matching escape codes in string and byte literals
	(python--string-bytes-literal-matcher): new function
	(python--not-raw-bytes-literal-start-regexp): new constant
	(python--not-raw-string-literal-start-regexp): new constant
	* test/lisp/progmodes/python-tests.el: Add tests for new
	fontification (bug#57004).

2022-08-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix mh-e.texi syntax (from previous change)

	* doc/misc/mh-e.texi (Viewing): Add closing brace to @footnote.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	* etc/PROBLEMS: Delete entry on 20+ years old version of X-Symbol.

	* admin/check-doc-strings: Remove XEmacs support.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Don't mention removed XEmacs support in reftex manual

	* doc/misc/reftex.texi (Installation, Imprint): Don't mention
	removed XEmacs support.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Don't mention removed XEmacs support in mh-e manual

	* doc/misc/mh-e.texi (Preface, Incorporating Mail, Viewing)
	(Tool Bar, Tool Bar): Remove any reference to XEmacs.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Make alias widget-visibility-value-create obsolete

	* lisp/wid-edit.el (widget-visibility-value-create): Make compat
	alias obsolete.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Make an rmail compat alias obsolete

	* lisp/mail/rmailsum.el (rmail-summary-output-to-rmail-file): Make
	compat alias obsolete.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Make compat alias ede-toplevel-project-or-nil obsolete

	* lisp/cedet/ede/files.el (ede-toplevel-project-or-nil): Make
	compat alias obsolete.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Drop support for XEmacs package func-menu from idlwave

	* lisp/progmodes/idlwave.el (idlwave-function-menu): Make into
	obsolete alias for imenu.  Update callers.
	* doc/misc/idlwave.texi (Introduction, Motion Commands): Remove
	any mention of func-menu.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Make face-doc-string aliases obsolete

	* lisp/faces.el (face-doc-string, set-face-doc-string): Make
	aliases obsolete.

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	* admin/update_autogen: Fix generating ldefs-boot.el.

	* admin/update_autogen: Fix refreshing grammar-wy.el.

2022-08-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Put no-byte-compile cookie back in ldefs-boot.el

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Don't mention removed XEmacs support in idlwave manual

	* doc/misc/idlwave.texi (Lesson I---Development Cycle)
	(Syntax Highlighting, Windows and macOS, Troubleshooting): Delete
	most references to XEmacs.  Support for it was deleted in 28.1.

2022-08-06  Po Lu  <luangruo@yahoo.com>

	Correctly initialize values after a new device is enabled

	* src/xterm.c (handle_one_xevent): Initialize new device to
	zero.  (bug#57011)

2022-08-06  Eli Zaretskii  <eliz@gnu.org>

	* src/puresize.h (BASE_PURESIZE): Bump the value.  (Bug#57007)

2022-08-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f3b9bccb45 * lisp/play/fortune.el: Doc fixes.

2022-08-05  Po Lu  <luangruo@yahoo.com>

	Improve XI focus handling for entry and exit events

	* src/xterm.c (handle_one_xevent): Skip useless
	x_detect_focus_change calls in more cases.

2022-08-05  Po Lu  <luangruo@yahoo.com>

	* src/callproc.c (emacs_spawn): Fix Mac OS X build.

2022-08-05  Po Lu  <luangruo@yahoo.com>

	Fix signature of `seconds-to-time'

	* lisp/calendar/time-date.el (seconds-to-time): Fix after change
	to time-convert.

2022-08-05  Po Lu  <luangruo@yahoo.com>

	Improve XI focus handling

	* src/xterm.c (handle_one_xevent): Skip useless
	x_detect_focus_change calls in some cases.

2022-08-05  Jim Porter  <jporterbugs@gmail.com>

	Add STREAM argument to 'process-tty-name'

	* src/process.c (process-tty-name): Add STREAM argument.

	* lisp/eshell/esh-io.el (eshell-close-target): Only call
	'process-send-eof' once if the process's stdin is a pipe.

	* test/src/process-tests.el (make-process/test-connection-type): Check
	behavior of 'process-tty-name'.

	* doc/lispref/processes.texi (Process Information): Document the new
	argument.

	* etc/NEWS: Announce this change.

2022-08-05  Jim Porter  <jporterbugs@gmail.com>

	Allow creating processes where only one of stdin or stdout is a PTY

	* src/lisp.h (emacs_spawn):
	* src/callproc.c (emacs_spawn): Add PTY_IN and PTY_OUT arguments to
	specify which streams should be set up as a PTY.
	(call_process): Adjust call to 'emacs_spawn'.

	* src/process.h (Lisp_Process): Replace 'pty_flag' with 'pty_in' and
	'pty_out'.

	* src/process.c (is_pty_from_symbol): New function.
	(make-process): Allow :connection-type to be a cons cell, and allow
	using a stderr process with a PTY for stdin/stdout.
	(create_process): Handle creating a process where only one of stdin or
	stdout is a PTY.

	* lisp/eshell/esh-proc.el (eshell-needs-pipe, eshell-needs-pipe-p):
	Remove.
	(eshell-gather-process-output): Use 'make-process' and set
	':connection-type' as needed by the value of 'eshell-in-pipeline-p'.

	* lisp/net/tramp.el (tramp-handle-make-process):
	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	* lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Don't signal an
	error when ':connection-type' is a cons cell.

	* test/src/process-tests.el
	(process-test-sentinel-wait-function-working-p): Allow passing PROC
	in, and rework into...
	(process-test-wait-for-sentinel): ... this.
	(process-test-sentinel-accept-process-output)
	(process-test-sentinel-sit-for, process-test-quoted-batfile)
	(process-test-stderr-filter): Use 'process-test-wait-for-sentinel'.
	(make/process/test-connection-type): New function.
	(make-process/connection-type/pty, make-process/connection-type/pty-2)
	(make-process/connection-type/pipe)
	(make-process/connection-type/pipe-2)
	(make-process/connection-type/in-pty)
	(make-process/connection-type/out-pty)
	(make-process/connection-type/pty-with-stderr-buffer)
	(make-process/connection-type/out-pty-with-stderr-buffer): New tests.

	* test/lisp/eshell/esh-proc-tests.el (esh-proc-test--detect-pty-cmd):
	New variable.
	(esh-proc-test/pipeline-connection-type/no-pipeline)
	(esh-proc-test/pipeline-connection-type/first)
	(esh-proc-test/pipeline-connection-type/middle)
	(esh-proc-test/pipeline-connection-type/last): New tests.

	* doc/lispref/processes.texi (Asynchronous Processes): Document new
	':connection-type' behavior.
	(Output from Processes): Remove caveat about ':stderr' forcing
	'make-process' to use pipes.

	* etc/NEWS: Announce this change (bug#56025).

2022-08-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	time-convert): Deprecate calls without an explicit FORM arg

	* lisp/subr.el (time-convert): Deprecate calls without an explicit FORM arg.

	* doc/lispref/os.texi (Time Conversion): Adjust doc accordingly.

	* lisp/calendar/time-date.el (days-to-time):
	* lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
	* lisp/gnus/nnrss.el (nnrss-normalize-date):
	* lisp/epa-ks.el (epa-ks--parse-buffer): Silence corresponding warnings.

2022-08-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that leim-list.el is built

	* lisp/Makefile.in: Ensure that leim-list.el is built (bug#56998).

2022-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Allow newline after def*-form for definition-prefix

	* lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions):
	Add another semantic function.
	(loaddefs-generate--compute-prefixes): Allow newline after the "(def*"
	form.  (Bug#57000)

2022-08-05  Filipp Gunbin  <fgunbin@fastmail.fm>

	Add variable end-of-defun-moves-to-eol

	* lisp/emacs-lisp/lisp.el (end-of-defun-moves-to-eol): New variable.
	(end-of-defun): Use it.

2022-08-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/keyboard.c (timer_check_2): Replace redundant test with assertion

2022-08-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	timer.el: Avoid repeated timers

	https://mail.gnu.org/archive/html/emacs-devel/2022-07/msg01127.html
	points out that end-users can get bitten by this, accidentally
	calling `timer-activate` on an already activated timer.

	* lisp/emacs-lisp/timer.el (timer--activate): Signal an error if we try
	to re-add a timer that's already on the timer-list.

2022-08-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	bytecomp.el: Update comments referring to `make-docfile`

2022-08-05  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in 'back_to_previous_visible_line_start'

	* src/xdisp.c (init_iterator): Always initialize narrowed_begv to
	zero, since SET_WITH_NARROWED_BEGV depends on it being non-zero as
	an indication that long-line optimizations are in use.
	(back_to_previous_visible_line_start): When long-line
	optimizations are in effect, we may end up not on a newline.

2022-08-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	bytecomp.el: Further simplifications enabled by commit 59732a83c8875c

	* lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform): Don't
	insert a \n before the #@ docstrings since make-docfile doesn't scan
	.elc files any more.

2022-08-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix lisp/Makefile.in autoloads dependency

	* lisp/Makefile.in (autoloads): Ensure that loaddefs-gen.elc
	exists before making autoloads.

2022-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Make ange-ftp-re-read-dir compat alias obsolete

	* lisp/net/ange-ftp.el (ange-ftp-re-read-dir): Make alias obsolete.
	Update callers.

2022-08-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Make loaddefs.el dependencies more explicit in src/Makefile.in

	* src/Makefile.in (LC_ALL): Add loaddefs.el as a dependency, too,
	since that file may be deleted, but the loaddefs.elc file still
	exists.  This causes problems in nativecomp builds.

2022-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Rename object-sort-list to srecode-object-sort-list

	* lisp/cedet/srecode/table.el (srecode-object-sort-list): Rename
	from 'object-sort-list'.  Retain old name as an obsolete alias.

2022-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespace problems in viper.el

	* lisp/emulation/viper.el
	(viper-this-major-mode-requires-vi-state): Rename from
	'this-major-mode-requires-vi-state'.  Retain old name as an
	obsolete alias.
	(viper-set-state-in-major-mode): Rename from
	'set-viper-state-in-major-mode'.  Retain old name as an obsolete
	alias.

2022-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespace problems in xscheme.el

	* lisp/progmodes/xscheme.el (xscheme-default-runlight): Rename
	from 'default-xscheme-runlight'.  Retain old name as an obsolete
	alias.
	(xscheme-verify-buffer): Rename from 'verify-xscheme-buffer'.
	Retain old name as an obsolete alias.

2022-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespace problem in saveplace.el

	* lisp/saveplace.el (save-place-load-alist-from-file): Rename from
	'load-save-place-alist-from-file'.  Retain old name as an obsolete
	alias.  Update callers.

2022-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Make two perl-mode aliases obsolete

	* lisp/progmodes/perl-mode.el (indent-perl-exp)
	(mark-perl-function): Make obsolete.

2022-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespace problem in ede/custom.el

	* lisp/cedet/ede/custom.el (ede-eieio-old-variables): Rename from
	'ede-eieio-old-variables'.  Retain old name as an obsolete alias.

2022-08-05  Stefan Kangas  <stefankangas@gmail.com>

	* test/lisp/env-tests.el: New file.

	* lisp/play/fortune.el: Doc fixes.

2022-08-05  Po Lu  <luangruo@yahoo.com>

	Fix oldXMenu grab handling

	* src/xmenu.c (x_menu_translate_generic_event, pop_down_menu):
	Clear grab correctly on individual XI2 devices.

2022-08-05  Po Lu  <luangruo@yahoo.com>

	Improve C-x C-q in emacs-news-mode

	* lisp/textmodes/emacs-news-mode.el (emacs-news-mode-map)
	(emacs-news-view-mode-map): Make C-x C-q switch to the
	appropriate mode for editing, and vice versa.
	(emacs-news-mode): Disable button-mode and make buffer
	read-write.

2022-08-05  Po Lu  <luangruo@yahoo.com>

	Improve multi-pointer X support

	* etc/TODO: Document that MPX support still needs work.
	* src/xterm.c (xi_handle_interaction): New function.
	(handle_one_xevent): Call it in the appropriate places.

2022-08-05  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f484da5fcb * doc/lispref/loading.texi (Autoload by Prefix): Fix typo.

2022-08-04  Po Lu  <luangruo@yahoo.com>

	Improve input extension focus handling with multiple master devices

	* src/xterm.c (x_cache_xi_devices): Initialize device fields to
	0.
	(xi_handle_focus_change, xi_focus_handle_for_device)
	(xi_handle_delete_frame): New functions; store focus information
	per-device instead.
	(x_detect_focus_change): Handle GenericEvents that way instead.
	(handle_one_xevent): Don't cache XI devices on DeviceChanged.
	(x_free_frame_resources): Clear any frame focus information.

	* src/xterm.h (struct xi_device_t): New fields for focus
	tracking.  Add comments describing fields.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in mail/*.el

	* lisp/mail/mspools.el (mspools-mode-map):
	* lisp/mail/rmailedit.el (rmail-edit-map):
	* lisp/mail/rmailsum.el (rmail-summary-edit-map):
	* lisp/mail/supercite.el (sc-T-keymap, sc-mode-map)
	(sc-electric-mode-map, sc-minibuffer-local-completion-map)
	(sc-minibuffer-local-map): Prefer defvar-keymap.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Whitespace fix in gdb-mi.el

	* lisp/progmodes/gdb-mi.el (gdb-memory-next-page)
	(gdb-memory-prev-page): Change tab after "defvar" to space, to avoid
	potential bugs in tooling.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Be more lax when picking up prefixes for loaddefs

	* lisp/emacs-lisp/loaddefs-gen.el
	(loaddefs-generate--compute-prefixes): Allow tabs and spaces before
	symbol name, so that "(defvar\tfoo-bar nil)" is properly picked up.
	Before this change, such a definition would be wrongly picked up as
	the symbol "nil".

2022-08-04  Andreas Schwab  <schwab@linux-m68k.org>

	* lisp/Makefile.in (distclean): Also remove loaddefs.elc.

2022-08-04  Gregory Heytings  <gregory@heytings.org>

	Merge branch 'feature/long-lines-improvements'

2022-08-04  Peder O. Klingenberg  <peder@klingenberg.no>

	* lisp/org/org.el: Fix load of compiled or compressed org-loaddefs

	* lisp/org/org.el (eq): Fix load of compiled or compressed
	org-loaddefs (bug#56982).

2022-08-04  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp for backward compatibility

	* lisp/net/tramp-compat.el (tramp-compat-auth-source-netrc-parse-all):
	New defalias.

	* lisp/net/tramp.el (tramp-parse-netrc): Use it.  (Bug#56976)

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that updated loaddefs files are byte-compiled

	* lisp/Makefile.in: Add autoloads as an ordering-only dependency
	to compile-main so that newly updated loaddefs files are byte-compiled.

2022-08-04  Michael Albinus  <michael.albinus@gmx.de>

	Fix last Tramp change, especially for bug#56963

	* lisp/net/tramp-adb.el (tramp-adb-handle-write-region):
	Add missing space.

	* lisp/net/tramp-sh.el (tramp-sh-handle-write-region): Use "cat",
	"echo -n" isn't portable.  (Bug#56963)

	* lisp/net/tramp.el (tramp-file-name-unify): Unquote file name in time.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Suppress compilation warnings in netrc.el

	* lisp/obsolete/netrc.el (netrc-machine-user-or-password)
	(netrc-credentials): Suppress some warnings.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Document obsoletion of netrc-parse better

	* lisp/obsolete/netrc.el (netrc-parse): Add 'obsolete' declaration
	pointing to 'auth-source-netrc-parse-all' for documentation purposes.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Clean up output of make-command-summary slightly

	* lisp/makesum.el (make-command-summary): Don't print today's date
	or status messages.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Move netrc tests to auth-source-tests.el

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add obsolete-since header to netrc.el

	* lisp/obsolete/netrc.el: Add obsolete-since header (bug#56976).

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Move netrc.el to lisp/obsolete/

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Use auth-source in tramp-parse-netrc

	* lisp/auth-source.el (auth-source-netrc-parse-all): Autoload.

	* lisp/net/tramp.el (tramp-parse-netrc): Don't use netrc-parse,
	because it's going to be made obsolete (bug#56976).

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add obsolete-since line to autoload.el and adjust comments

	* lisp/obsolete/autoload.el: Add obsolete-since line.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Move autoload.el to lisp/obsolete/

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust autoload require in cus-dep.el

	* lisp/cus-dep.el (loaddefs-gen): Don't require autoload, because
	none of the functions are used.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't require netrc in nnimap.el

	* lisp/gnus/nnimap.el (netrc): Don't require, since it's not used.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function auth-source-netrc-parse-all

	* lisp/auth-source.el (auth-source-netrc-parse-all): New function
	(bug#56976).
	(auth-source-netrc-parse): Partially revert behavior in previous
	change -- require :allow-null to match.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Minor cleanups in autoload.el/loaddefs-gen.el

	* lisp/subr.el (package--builtin-versions): Adjust comments.

	* lisp/emacs-lisp/loaddefs-gen.el (no-update-autoloads): Moved
	here from autoload.el.
	* lisp/emacs-lisp/loaddefs-gen.el: Removed now that it's no longer
	used.

	* lisp/emacs-lisp/package.el
	(package-autoload-ensure-default-file): Don't warn about
	soon-to-be obsolete function.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Minor checkdoc.el clean up

	* lisp/emacs-lisp/checkdoc.el (generate-autoload-cookie): This is
	no longer used, so remove reference.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust admin/emacs for new autoloads

	* admin/emake: Adjust for new autoloads.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow auth-source-netrc-parse to return all lines

	* lisp/auth-source.el (auth-source-netrc-parse): If host/user/port
	is nil, don't require those to match.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up nntp-send-authinfo after removing obsolete variable

	* lisp/gnus/nntp.el (netrc-parse, netrc-machine, netrc-get):
	Remove declarations.
	(nntp-send-authinfo): Now that `nntp-authinfo-file' is removed,
	don't parse the .authinfo file twice, but just rely on the
	auth-source functions (bug#56972).

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add define-keymap to autoload-ignored-definitions

	* lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions):
	Ignore `define-keymap', too (bug#56973).

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Add define-key-after to autoload-ignored-definitions

	* lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions):
	Add define-key-after and define-ibuffer-sorter.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	* doc/lispref/loading.texi (Autoload by Prefix): Fix typo.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespace problem in meta-mode.el

	* lisp/progmodes/meta-mode.el
	(meta-font-lock-match-declaration-item-and-skip-to-next): Rename
	from 'font-lock-match-meta-declaration-item-and-skip-to-next'.
	Retain old name as an obsolete alias.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Add more autoload-ignored-definitions

	* lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions):
	Add define-ibuffer-column.

2022-08-04  Philip Kaludercic  <philipk@posteo.net>

	* eww.el (eww-browse): Raise error if there are no arguments

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/find-dired.el (lookfor-dired): Make obsolete.

2022-08-04  Gregory Heytings  <gregory@heytings.org>

	Merge branch 'master' into feature/long-lines-improvements

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Rename recently added macro to follow conventions

	* lisp/eshell/em-extpipe.el (eshell-extpipe--or-with-catch):
	Rename from 'em-extpipe--or-with-catch'.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespace problem in dired-aux.el

	* lisp/dired-aux.el (dired-minibuffer-default-add-shell-commands):
	Rename from 'minibuffer-default-add-dired-shell-commands'.  Retain
	old name as an obsolete alias.

2022-08-04  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp test

	* test/lisp/net/tramp-tests.el (tramp-test48-unload):
	Ignore autoload functions in `tramp-file-name' structure tests,
	since `tramp-file-name-handler' is also autoloaded.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Rename timep to type-break-timep

	* lisp/type-break.el (type-break-timep): Rename from 'timep'.
	Retain old name as an obsolete alias.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespace problem in mpc.el

	* lisp/mpc.el (mpc-tag-browser-tagtypes): Rename from
	'tag-browser-tagtypes'.  Retain old name as an obsolete alias.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Rename set-woman-file-regexp to woman-set-file-regexp

	* lisp/woman.el (woman-set-file-regexp): Rename from
	'set-woman-file-regexp'.  Retain old name as an obsolete alias.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Rename alphabetp to hangul-alphabetp

	* lisp/leim/quail/hangul.el (hangul-alphabetp): Rename from
	'alphabetp'.  Retain old name as an obsolete alias.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Make trivial convenience defsubst notzerop obsolete

	* lisp/leim/quail/hangul.el (notzerop): Make obsolete.  Adjust
	callers.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add more autoload-ignored-definitions defs

	* lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions):
	Add more definition forms that shouldn't trigger prefix
	registration (bug#56970).

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	url-about.el: Add obsolete-since

	* lisp/obsolete/url-about.el: Add obsolete-since.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make url-about.el obsolete (bug#56885)

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Fix about:protocols in EWW"

	This reverts commit b49c1740105dd3715315aa433674c95f44aaeac4.

	We're making this obsolete instead.

2022-08-04  Gregory Heytings  <gregory@heytings.org>

	Improve Bidi with long lines.

	* src/composite.c (composition_compute_stop_pos): Use an 'endpos' that
	is not too far away.
	(find_automatic_composition): Use a 'head' that is not too far away.
	Also make sure that this code path is not taken when long line
	optimizations are disabled.

	* src/dispextern.h (struct composition_it): Add a field that points
	to the parent iterator.

	* src/xdisp.c (init_iterator): Set it.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix eww--download-directory naming

	* lisp/net/eww.el (eww--download-directory):
	(eww-download-directory): Rename function that was mistakenly
	named "erc--"   (bug#56969).

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up some prefix registration problems in doc strings

	* lisp/uniquify.el (uniquify-buffer-name-style):
	* lisp/org/ob-core.el (org-src-sha):
	* lisp/emacs-lisp/cl-macs.el (cl--optimize):
	* lisp/battery.el (battery-update-functions): Avoid triggering the
	`register-definition-prefixes' in doc strings (bug#56968).

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix double-encoding attachment headers in single-part rfc2047

	* lisp/mail/rfc2047.el (rfc2047-header-encoding-alist): Don't
	double-encode Content-Disposition in mails with no other body
	(bug#56906).

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Rename make-doctor-variables to doctor-make-variables

	* lisp/play/doctor.el (doctor-make-variables): Rename from
	'make-doctor-variables'.  Retain old name as an obsolete function
	alias.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Rename nil-blank-string to eshell-nil-blank-string

	* lisp/eshell/em-unix.el (eshell-nil-blank-string): Rename from
	'nil-blank-string'.  Retain old name as an obsolete function alias.

2022-08-04  Stefan Kangas  <stefankangas@gmail.com>

	Rename pod2man-program to cperl-pod2man-program

	* lisp/progmodes/cperl-mode.el (cperl-pod2man-program): Rename
	from 'pod2man-program'.  Retain old name as an obsolete
	variable alias.

2022-08-04  Po Lu  <luangruo@yahoo.com>

	Fix about:protocols in EWW

	* lisp/net/eww.el (eww--dwim-expand-url): Handle `about: ' URLs.
	(bug#56885)
	* lisp/url/url-about.el (url-about): Return correct content type
	for HTML data.
	* lisp/url/url-http.el (url-http--get-referer): Refrain from
	looking for a referrer if the lastloc had no host.

2022-08-04  Po Lu  <luangruo@yahoo.com>

	Correctly implement refresh synchronization fences

	* configure.ac (HAVE_XSYNC): Also check for XSyncTriggerFence.

	* src/xfns.c (Fx_create_frame): Create fences.
	* src/xterm.c (x_atom_refs): New atom.
	(x_sync_trigger_fence, x_sync_init_fences, x_sync_free_fences):
	New functions.
	(x_sync_update_finish): Trigger the appropriate fence.
	(x_free_frame_resources): Free fences.
	* src/xterm.h (struct x_display_info): New atom
	`_NET_WM_SYNC_FENCES'.
	(struct x_output): New field `sync_fences'.

2022-08-04  Kira Bruneau  <kira.bruneau@gmail.com>

	Fix ignored-local-variable-values for non-primitive values

	* lisp/files.el (hack-local-variables-filter): Fix
	`ignored-local-variable-values' for non-primitive values (bug#56957).

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make flyspell-check-word-p work better with delete-selection-mode

	* lisp/textmodes/flyspell.el (flyspell-check-word-p): Deactivate
	the region immediately (bug#53773).

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust documentation for make-docfile

	* doc/lispref/loading.texi (Autoload): We're no longer using
	make-docfile for loaddefs.el, but we're retaining the format.
	Adjust the documentation.
	* lisp/loadup.el: Adjust commentary.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove outdated TODO item about make-docfile and .el files

	* etc/TODO: Remove outdated item about make-docfile and .el files.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust src/Makefile.in comments about make-docfile

	* src/Makefile.in ($(etc)/DOC): Remove comment about make-docfile
	being run twice (because it no longer is).

2022-08-04  Po Lu  <luangruo@yahoo.com>

	Reduce code duplication in XI scroll bar code

	* src/xterm.c (xi_select_scroll_bar_events): New function.
	(x_create_toolkit_scroll_bar)
	(x_create_horizontal_toolkit_scroll_bar, x_scroll_bar_create):
	Factor out input extension code there.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust loaddefs-generate--print-form comments

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form):
	Adjust doc string and comments now that make-docfile doesn't scan
	this.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove read_string_literal purify doc string hack

	* src/lread.c (read_string_literal): Since we're now
	byte-compiling the loaddefs files (so doc strings come from the
	.elc files), remove the hack that make this return 0 when the
	string starts with "\\n".

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove VCSWITNESS dependency, since we're always rescanning now

	* Makefile.in (VCSWITNESS): Remove, since we're always rescanning
	for loaddefs.
	* src/Makefile.in ($(lispsource)/loaddefs.el): Remove VCSWITNESS
	dependency.

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-08-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Still mark ldefs-boot.el as non-byte-compilable

	* lisp/Makefile.in (ldefs-boot.el): Mark ldefs-boot.el as
	non-byte-compiled.

2022-08-03  Po Lu  <luangruo@yahoo.com>

	Avoid redundant calls to XFlush in x_make_frame_visible

	* src/xterm.c (x_make_frame_visible): Keep track of whether or
	not the output buffer was implicitly flushed before issuing
	XFlush.

2022-08-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	Revert "Revert part of 59732a83c8 to fix bug#52969"

	This reverts commit 460f35e96df1c39ce2ba0f424b36365a2f9e9825.

	Re-remove the code that scans .el files for docstrings, now
	that even `lisp/loaddefs.el` is compiled.

	* lib-src/make-docfile.c (scan_file): Don't call `scan_lisp_file`.
	(scan_lisp_file, skip_white, read_lisp_symbol, search_lisp_doc_at_eol):
	Delete functions.

2022-08-03  Philip Kaludercic  <philipk@posteo.net>

	Only suggest packages with VC metadata

	* package-vc.el (package-vc-fetch): Filter out packages without :vc
	information in the interactive specification.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/help.el (describe-map-tree, describe-map): Simplify.

2022-08-03  Michael Albinus  <michael.albinus@gmx.de>

	Reorganize Tramp

	* lisp/net/tramp-adb.el (tramp-adb-handle-write-region): Handle special
	case that START is "".
	(tramp-adb-handle-set-file-modes)
	(tramp-adb-handle-set-file-times):
	Use `tramp-skeleton-set-file-modes-times-uid-gid'.
	(tramp-adb-handle-make-process):
	Use `with-tramp-saved-connection-properties'.

	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	Use `tramp-archive-handle-file-exists-p'.
	(tramp-archive-handle-file-exists-p): New defun.
	(tramp-archive-file-name-handler): Add ;;;###tramp-autoload cookie.

	* lisp/net/tramp-cache.el (tramp-compat, tramp-loaddefs)
	(time-stamp): Require.
	(tramp-get-file-property, tramp-set-file-property)
	(tramp-flush-file-property, tramp-flush-file-upper-properties)
	(tramp-flush-file-properties): Use `tramp-file-name-unify'.  Adapt
	message.
	(tramp-flush-directory-properties): Simplify.
	(tramp-flush-file-function): Add ;;;###tramp-autoload cookie.
	Don't use `with-parsed-tramp-file-name', it isn't exposed.
	(with-tramp-file-property, with-tramp-connection-property)
	(with-tramp-saved-connection-property): Macros moved from tramp.el.
	(with-tramp-saved-file-property)
	(with-tramp-saved-file-properties)
	(with-tramp-saved-connection-properties): New defmacros.

	* lisp/net/tramp-cmds.el (tramp-cleanup-connection): Flush "/".

	* lisp/net/tramp-crypt.el (tramp-crypt-handle-set-file-modes)
	(tramp-crypt-handle-set-file-times)
	(tramp-crypt-handle-set-file-uid-gid):
	Use `tramp-skeleton-set-file-modes-times-uid-gid'.

	* lisp/net/tramp-ftp.el (tramp-archive-file-name-handler):
	Don't declare.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-info): New defun.
	(tramp-gvfs-do-copy-or-rename-file)
	(tramp-gvfs-handle-delete-directory)
	(tramp-gvfs-handle-delete-file, tramp-gvfs-get-root-attributes)
	(tramp-gvfs-handle-make-directory): Use it.
	(tramp-gvfs-handle-set-file-modes)
	(tramp-gvfs-handle-set-file-times)
	(tramp-gvfs-handle-set-file-uid-gid):
	Use `tramp-skeleton-set-file-modes-times-uid-gid'.

	* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link):
	Expand TARGET when flushing file properties.
	(tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times)
	(tramp-sh-handle-set-file-uid-gid):
	Use `tramp-skeleton-set-file-modes-times-uid-gid'.
	(tramp-sh-handle-file-name-all-completions): Protect, when
	connection is not established yet.
	(tramp-do-copy-or-rename-file-directly): Flush file properties of
	NEWNAME when constructing a new remote file name.
	(tramp-do-copy-or-rename-file-out-of-band, tramp-sh-handle-make-process):
	Use `with-tramp-saved-connection-properties'.
	(tramp-sh-handle-delete-file): Flush file properties only after
	deleting, otherwise we get a false alarm.
	(tramp-sh-handle-process-file): Flush "/".
	(tramp-sh-handle-write-region): Handle special case that START is "".

	* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
	(tramp-smb-handle-file-acl, tramp-smb-handle-process-file)
	(tramp-smb-handle-set-file-acl)
	(tramp-smb-handle-start-file-process):
	Use `with-tramp-saved-connection-properties'.
	(tramp-smb-remote-acl-p): New defun.
	(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl): Use it.
	(tramp-smb-handle-set-file-modes):
	Use `tramp-skeleton-set-file-modes-times-uid-gid'.
	(tramp-smb-handle-process-file, tramp-smb-maybe-open-connection):
	Flush "/".

	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): Flush "/".
	(tramp-sshfs-handle-set-file-modes)
	(tramp-sshfs-handle-set-file-times):
	Use `tramp-skeleton-set-file-modes-times-uid-gid'.

	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-modes)
	(tramp-sudoedit-handle-set-file-times)
	(tramp-sudoedit-handle-set-file-uid-gid):
	Use `tramp-skeleton-set-file-modes-times-uid-gid'.

	* lisp/net/tramp.el (tramp-archive-file-name-handler): Don't declare.
	(tramp-verbose, tramp-file-name-unify, tramp-tramp-file-p)
	(tramp-file-local-name, tramp-dissect-file-name)
	(tramp-make-tramp-file-name, tramp-get-connection-buffer)
	(tramp-get-buffer-string, tramp-debug-message)
	(tramp-inhibit-progress-reporter, tramp-message):
	Add ;;;###tramp-autoload cookie.
	(tramp-file-name): Expose defstruct to tramp-loaddefs.el
	(tramp-file-name-unify): New optional arg FILE.
	(tramp-get-default-directory, tramp-get-buffer-string)
	(tramp-message, tramp-backtrace, tramp-error-with-buffer)
	(tramp-with-demoted-errors, tramp-barf-if-file-missing)
	(tramp-skeleton-copy-directory, tramp-skeleton-delete-directory)
	(tramp-skeleton-directory-files)
	(tramp-skeleton-directory-files-and-attributes)
	(tramp-skeleton-file-local-copy, tramp-skeleton-write-region):
	Remove `tramp-suppress-trace' property, it isn't needed for
	defmacros and defsubsts.
	(with-tramp-file-property, with-tramp-connection-property)
	(with-tramp-saved-connection-property): Move macros to tramp-cache.el.
	(tramp-skeleton-directory-files-and-attributes): Fix implementation.
	(tramp-skeleton-file-local-copy): Fix docstring.
	(tramp-skeleton-set-file-modes-times-uid-gid): New defmacro.
	(tramp-skeleton-write-region): Set "file-exists-p" cache property.
	(tramp-handle-file-exists-p): Use cached value.
	(tramp-process-sentinel): Flush "/".
	(tramp-make-tramp-temp-file): Suppress also `tramp-smb-remote-acl-p'.
	(tramp-get-connection-buffer):

	* test/lisp/net/tramp-tests.el (tramp-test10-write-region)
	(tramp-test20-file-modes, tramp-test22-file-times): Extend tests.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Mark keys in apropos.el for substitute-command-keys

	* lisp/apropos.el (apropos-symbol, apropos-function)
	(apropos-macro, apropos-command, apropos-variable)
	(apropos-user-option, apropos-face, apropos-group)
	(apropos-widget, apropos-plist, apropos-library): Mark keys for
	'substitute-command-keys'.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Add face to mouse buttons in command substitutions

	* lisp/help.el (substitute-command-keys): Add help-key-binding face to
	mouse buttons in literal key substitutions.
	* test/lisp/help-tests.el
	(help-tests-substitute-command-keys/literal-key-sequence): Expand
	test for above change.

2022-08-03  Eli Zaretskii  <eliz@gnu.org>

	Teach 'symbol-file' about .eln natively-compiled files

	* lisp/subr.el (locate-eln-file): New function.
	(symbol-file): Accept an optional 3rd argument NATIVE-P, and, if
	non-nil, try to locate and report the .eln file where SYMBOL was
	defined.

	* etc/NEWS:
	* doc/lispref/loading.texi (Where Defined): Document the new
	optional argument of 'symbol-file'.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Do interactive mode tagging in apropos.el

	* lisp/apropos.el (apropos-follow, apropos-next-symbol)
	(apropos-previous-symbol): Tag for 'apropos-mode'.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Remove superfluous autoloads from url-util.el

	* lisp/url/url-util.el (timezone-parse-date)
	(timezone-make-date-arpa-standard): Remove superfluous autoloads.

2022-08-03  Philip Kaludercic  <philipk@posteo.net>

	* package-vc.el (package-vc-unpack): Delete using package--delete-directory

2022-08-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Byte-compile the in-tree loaddefs.el files

	* lisp/Makefile.in (all): Add "autoloads", which now otherwise
	won't be done.
	($(lisp)/loaddefs.el): Remove this target, since it's always done,
	and would then trigger a re-compilation of loaddefs.elc.

	* lisp/loadup.el: Load loaddefs.elc (if it exists).

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't
	include no-byte-compile cookies in the Emacs build.

	* src/Makefile.in ($(pdmp)): Depend on loaddefs.elc to ensure that
	it's built by this point.
	($(etc)/DOC): Don't scan loaddefs.el for doc strings, since they
	are now picked up from the .elc file (bug#53024).

2022-08-03  Po Lu  <luangruo@yahoo.com>

	Fix crash on setting frame background color

	* src/xfns.c (x_set_background_color): Stop setting scroll bar
	window background, since this is now taken care of
	automatically.

2022-08-03  Philip Kaludercic  <philipk@posteo.net>

	Add TODO section for package-vc

2022-08-03  Protesilaos Stavrou  <info@protesilaos.com>

	Update modus-themes to their version 2.5.0

	* doc/misc/modus-themes.org (Debian 11 Bullseye): Clarify that the
	Debian package as it is long outdated.
	(Option for inhibiting theme reload): Fix typo
	(Option for completion framework aesthetics): Remove reference to
	obsolete package.
	(Option for line highlighting): Mention 'lin' package from GNU ELPA.
	(Option for the headings' overall style): Document support for
	headings level 0.
	(Advanced customization): Fix typo.
	(Override colors): Remove obsolete entries.  Add link to new section.
	(Override colors through blending): Add section with a complete
	technology demonstration of overriding the color values.
	(Font configurations for Org and others): Mention the 'fontaine'
	package from GNU ELPA.
	(Custom Org emphasis faces): Fix typo.
	(Full support for packages or face groups, Indirectly covered
	packages): Update list of supported packages.
	(Note on vc-annotate-background-mode): Remove note.:(Are these color
	schemes?): Fix typo.
	(Acknowledgements): Update acknowledgements.
	* etc/themes/modus-operandi-theme.el
	* etc/themes/modus-vivendi-theme.el: Update version header.

	* etc/themes/modus-themes.el (modus-themes--version): Update version.
	(modus-themes-special-cold, modus-themes-special-mild)
	(modus-themes-special-warm, modus-themes-special-calm)
	(modus-themes-diff-added, modus-themes-diff-changed)
	(modus-themes-diff-removed, modus-themes-diff-refine-added)
	(modus-themes-diff-refine-changed, modus-themes-diff-refine-removed)
	(modus-themes-diff-focus-added, modus-themes-diff-focus-changed)
	(modus-themes-diff-focus-removed, modus-themes-mark-symbol)
	(modus-themes-inhibit-reload, modus-themes-mode-line)
	(modus-themes--paren): Fix doc string warning about quotes.
	(modus-themes-operandi-color-overrides)
	(modus-themes-vivendi-color-overrides): Fix ":link" to the Info
	manual's relevant node.
	(modus-themes-headings): Add support for headings level 0.
	(modus-themes-org-agenda): Tweak spacing in the doc string.
	(modus-themes--syntax-comment): Tweak combination of properties.
	(modus-themes--list-colors-render, modus-themes-list-colors): Refine
	how the command works to preview colors in the buffer.
	(modus-themes-faces): Edit supported faces.
	(modus-themes-custom-variables): Edit supported variables.

	Release notes: <https://protesilaos.com/codelog/2022-08-03-modus-themes-2-5-0/>.

2022-08-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix #' quoting in uniquify-buffer-name-style doc string

	* lisp/uniquify.el (uniquify-buffer-name-style): Fix wrong quoting.

2022-08-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Check for mis-quoted #' in doc strings during byte-compile

	* lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-style-warn):
	Check for mis-quoted #' in doc strings, too.

2022-08-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix quoting of #' in some doc strings

	* lisp/org/ox.el (org-export-to-file):
	* lisp/eshell/esh-arg.el (eshell-concat):
	* lisp/emacs-lisp/edebug.el (edebug-read-special):
	* lisp/dired-aux.el (dired-split): Fix quoting of #' in doc strings.

2022-08-03  Jonas Bernoulli  <jonas@bernoul.li>

	* lisp/transient.el: Update to package version v0.3.7-143-g1b0a8a7

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Improve obsoletion of trimming functions in url-util.el

	* lisp/url/url-util.el (url-eat-trailing-space): Redefine as
	obsolete function alias for 'string-trim-right'.
	(url-strip-leading-spaces): Redefine as obsolete function alias
	for 'string-trim-left'.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Use string-trim in newsticker--remove-whitespace

	* lisp/net/newst-backend.el (newsticker--remove-whitespace): Use
	string-trim.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Remove some spurious references to XEmacs

	* lisp/desktop.el (desktop--emacs-pid-running-p):
	* lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-lisp-words): Don't
	mention XEmacs.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Remove XEmacs compat code from reftex-ref.el

	* lisp/textmodes/reftex-ref.el (reftex-latin1-to-ascii): Remove
	XEmacs compat code.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Remove more XEmacs compat code from viper-util.el

	* lisp/emulation/viper-util.el (viper-check-version): Remove
	XEmacs compat code.
	(viper-get-visible-buffer-window): Make obsolete.  Update caller.
	(viper-key-press-events-to-chars): Make obsolete.

2022-08-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	CEDET: Try and (re)fix bug#56902, in a better way

	* lisp/cedet/semantic/complete.el (semantic-displayer-abstract):
	Move definition before first use (in `semantic-displayer-focus-abstract`).

2022-08-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	Revert "; Fix last change (bug#56902)"

	This reverts commit 99bbc1fa23c3a54f1cbd2c56c57773dd471b3ef3.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Remove some XEmacs compat code from url-util.el

	These functions only exist in the XEmacs GTK support.
	* lisp/url/url-util.el (url-display-percentage): Remove XEmacs
	compat code.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Make url-util space trimming functions obsolete

	* lisp/url/url-util.el (url-eat-trailing-space)
	(url-strip-leading-spaces): Make obsolete in favor of
	'string-trim'.  Update caller.

2022-08-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f23d456039 * lisp/term.el: Doc fix; don't mention rlogin.
	f522d2d90b ; * admin/make-tarball.txt: Minor tweaks.

2022-08-03  Po Lu  <luangruo@yahoo.com>

	Improve X server time computation

	* src/xterm.c (x_sync_get_monotonic_time): Use that if
	available.
	(x_display_set_last_user_time): Compute an offset between the
	monotonic time and the X server time if they are not identical.
	* src/xterm.h (struct x_display_info): New field
	`server_time_offset'.

2022-08-02  Po Lu  <luangruo@yahoo.com>

	Prevent GC threshold from exceeding fixnum limit during precision scrolling

	* lisp/pixel-scroll.el (pixel-scroll-start-momentum): Prevent GC
	threshold from exceeding most-positive-fixnum.

2022-08-02  Po Lu  <luangruo@yahoo.com>

	Add preparations for animation frame timing support

	* src/xterm.c (x_sync_get_monotonic_time)
	(x_sync_current_monotonic_time, x_sync_note_frame_times): New
	functions.
	(x_sync_wait_for_frame_drawn_event, x_sync_update_begin)
	(x_sync_handle_frame_drawn): Note frame times.
	(x_display_set_last_user_time): Check if the X server time is
	probably the same as CLOCK_MONOTONIC.

	* src/xterm.h (struct x_display_info, struct x_output): New
	fields and flags for clock handling and frame times.

2022-08-02  Po Lu  <luangruo@yahoo.com>

	Fix window iconification, raising and lowering frames, etc

	* src/xterm.c (XFlush): Remove define to 0.
	(x_clear_frame, x_scroll_run, x_draw_window_cursor)
	(x_free_frame_resources): Remove calls to XFlush where it is not
	really necessary.  Leave the calls that actually are intact.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Avoid cl-cXXXr compat aliases

	* lisp/emacs-lisp/cl-lib.el (cl-third, cl-fourth):
	* lisp/emacs-lisp/cl-macs.el (cl--do-&aux, cl--do-arglist)
	(cl--parse-loop-clause, cl--loop-let, cl--loop-build-ands)
	(cl--do-proclaim, cl-defstruct): Prefer using cXXXr functions
	directly, instead of cl-cXXXr prefixed compat aliases.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/vtable.texi (Commands): Fix typo.  (Bug#56899)

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in footnote.el

	* lisp/mail/footnote.el (footnote-mode-map)
	(footnote-minor-mode-map): Prefer defvar-keymap.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Obsolete unused variable footnote-use-message-mode

	* lisp/mail/footnote.el (footnote-use-message-mode): Make
	obsolete.

2022-08-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve sendmail-program doc string

	* lisp/mail/sendmail.el (sendmail-program): Document that the
	program shouldn't output text (bug#56855).

2022-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/xdisp.c (redisplay_window): Use BEG rather than hard coding 1

2022-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	CEDET: Remove left-over uses of obsolete <class>-child-p predicates

	Those predicates were still sometimes used in a few places, notably via
	`:type ... <class>-child` which was never technically correct.

	* lisp/cedet/ede/config.el (ede-extra-config, ede-project-with-config):
	* lisp/cedet/ede/base.el (ede-project-placeholder): Avoid pseudo-type
	`<class>-child`.

	* lisp/cedet/semantic/complete.el (semantic-displayer-focus-abstract):
	Move before use of `cl-typep` on it.
	(semantic-complete-current-match):
	* lisp/cedet/ede/speedbar.el (ede-speedbar-menu): Use `cl-typep`
	instead of `<class>-child-p`.

	* lisp/cedet/semantic/db.el (semanticdb-get-buffer):
	Use `cl-defgeneric` for the main/default definition.
	(semantic-tag-parent-buffer): Add method.

	* lisp/cedet/semantic/tag-file.el (semantic-tag-parent-buffer):
	New generic function extracted from `semantic-go-to-tag`.
	This allows us to keep the semanticdb-table part in semantic/db and
	thus break a cyclic dependency.
	(semantic-go-to-tag): Use it.
	Demote to a plain `defun` since it's not overloaded anywhere.

	* lisp/cedet/semantic/util.el (semanticdb-abstract-table-child-p):
	Remove unused declaration.

	* lisp/cedet/srecode/compile.el (srecode-template-inserter-newline-child-p):
	Remove unused declaration.
	(srecord-compile-inserter-newline-p): New generic function, so we can
	move the `srecode-template-inserter-newline` case to `srecode/insert.el`,
	to avoid a cyclic dependency.

	* lisp/cedet/srecode/insert.el (srecord-compile-inserter-newline-p):
	New method.

2022-08-02  Philip Kaludercic  <philipk@posteo.net>

	Have VC ignore auto generated files

	* package-vc.el (package-vc-unpack): Generate autoloads and ignore
	have the VCS ignore them (along with package description file).

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Delete obsolete variable nntp-authinfo-file

	* lisp/gnus/nntp.el (nntp-authinfo-file): Delete variable obsolete
	since 24.1.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/textmodes/sgml-mode.el (html-tag-alist): Add https.

	* lisp/term.el: Doc fix; don't mention rlogin.

2022-08-02  Philip Kaludercic  <philipk@posteo.net>

	Assume VC data is directly usable in 'package-archive-contents'

	* package-vc.el (package-vc-fetch): Remove string parsing and
	translation code.

2022-08-02  Philip Kaludercic  <philipk@posteo.net>

	* package-vc.el (vc-clone): Remove superfluous declaration

2022-08-02  Robert Pluim  <rpluim@gmail.com>

	Signal error on duplicate key definitions

	* lisp/keymap.el (define-keymap, defvar-keymap): Signal error if the
	same key is specified twice.  (Bug#56873)

	* doc/lispref/keymaps.texi (Creating Keymaps): Document error
	signaling behavior.

	* test/src/keymap-tests.el (keymap-test-duplicate-definitions): Test
	duplicate definition detection.

2022-08-02  Robert Pluim  <rpluim@gmail.com>

	Remove duplicate key definitions from keymaps

	* lisp/gnus/gnus-srvr.el (gnus-browse-mode-map): Remove binding for
	'gnus-browse-prev-map'.
	* lisp/gnus/gnus-sum.el (gnus-summary-mode-map): Remove
	'gnus-summary-down-thread' binding, and by symmetry
	'gnus-summary-up-thread' (it's still available on "T-u").
	* lisp/ibuffer.el (ibuffer-mode-map): Remove binding for
	'ibuffer-mark-for-delete'.
	* lisp/wdired.el (wdired-perm-mode-map): Remove duplicate binding of
	"s" to 'wdired-set-bit'.

	* etc/NEWS: Announce 'gnus-summary-up-thread' change.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	url-about: Ignore missing directories in load-path

	* lisp/url/url-about.el (url-probe-protocols): Ignore missing
	directories in load-path.

2022-08-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix find-dired over tramp

	* lisp/find-dired.el (find-dired-with-command): Set the
	filter/sentinel immediately -- scheduling may make process output
	(and exit) happen before these are set otherwise (bug#56865).
	(find-dired-sort-by-filename): Don't bug out on error messages
	from find.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Delete function alias x-selection obsolete since 23.3

	* lisp/select.el (x-selection): Delete function alias obsolete since
	23.3.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/mail/binhex.el: Improve commentary.

2022-08-02  Matt Armstrong  <matt@rfc20.org>

	Consider built-in packages to be installed

	* lisp/emacs-lisp/package.el (package-installed-p): Check for built-in
	packages before initialization. (bug#56877).

2022-08-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't disable eldoc when doing edebug

	* lisp/emacs-lisp/eldoc.el
	(eldoc-display-message-no-interference-p): Don't disable eldoc
	when edebugging (bug#56459).  There should be no interference in
	that case, because edebug messaging is done after stepping, and
	eldoc messaging is done after other movements.

2022-08-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix url-dired obsoletion warning

	* lisp/url/url-file.el (url-file): Don't use obsolete url-dired
	function.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Make url-dired.el obsolete (part 2/2)

	* lisp/obsolete/url-dired.el: Add "Obsolete-since" header.
	(url-dired-minor-mode-map): Minor fix.
	* lisp/url/url-file.el (url-dired): Don't require.
	* etc/NEWS: Announce its obsoletion.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Make url-dired.el obsolete (part 1/2)

	It doesn't have any real effect since 2007.
	Ref: https://lists.gnu.org/r/emacs-devel/2022-07/msg01156.html

	* lisp/url/url-dired.el: Move from here...
	* lisp/obsolete/url-dired.el: ...to here.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Make gnus-url-unhex into alias for url-unhex

	* lisp/gnus/gnus-util.el (gnus-url-unhex): Make into obsolete function
	alias for url-unhex; they are identical.  Update callers.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Add tests for url-{hexify,unhex}-string

	* test/lisp/url/url-util-tests.el (url-unhex-string-tests)
	(url-hexify-string-tests): New tests.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Remove extraneous defvars from edmacro.el

	* lisp/edmacro.el (edmacro-fix-menu-commands): Remove extraneous
	defvars; they are already declared above.

2022-08-02  Po Lu  <luangruo@yahoo.com>

	Further reduce monitor change event duplication

	* src/xterm.c (handle_one_xevent): Also don't store duplicate
	events for ConfigureNotify events bound for the root window.

2022-08-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e6af4968f9 ; Update ChangeLog and AUTHORS

2022-08-01  Po Lu  <luangruo@yahoo.com>

	Avoid extra consing on monitor configuration change

	* src/xterm.c (x_find_monitors_changed_event): New function.
	(x_monitors_changed_cb, handle_one_xevent): Look through the
	entire event queue to skip delivering monitor change events.

2022-08-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation warning in spam.el

	* lisp/gnus/spam.el (spam-check-blackholes): Adjust now that
	query-dig is obsolete.

2022-08-01  Juri Linkov  <juri@linkov.net>

	Wrap around the search on typing a letter (bug#56535)

	* doc/emacs/search.texi (Repeat Isearch): Improve values no/no-ding.

	* lisp/isearch.el (isearch-search-and-update): Try to repeat the search
	on an error when isearch-wrap-pause is no/no-ding.

2022-08-01  Gregory Heytings  <gregory@heytings.org>

	Fix the bytecode incompatibility due to the change to 'narrow-to-region'.

	* src/editfns.c (narrow_to_region_internal): New function, which
	contains the body previously in 'Fnarrow_to_region' but accepts
	a third argument.
	(Fnarrow_to_region): Use the new function. Update the docstring.
	(Fwiden): Update the docstring.

	* src/lisp.h: Prototype of the new function.

	* src/xdisp.c (handle_fontified_prop): Use the new function instead
	of 'Fnarrow_to_region'.

	* src/process.c (Finternal_default_process_filter):
	* src/lread.c (readevalloop): Remove the third argument to
	'Fnarrow_to_region'.

	* src/bytecode.c (exec_byte_code):
	* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst):
	* lisp/emacs-lisp/bytecomp.el: Restore the status quo ante.

	* etc/NEWS: Remove the entry about the new optional argument.

	* doc/lispref/positions.texi (Narrowing): Update the documentation.

2022-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Don't bind non-existent command in picture-mode-map

	* lisp/textmodes/picture.el (picture-mode-map): Remove ineffectual
	binding of non-existent command.

2022-08-01  Eli Zaretskii  <eliz@gnu.org>

	* src/eval.c (Fdefvaralias): Clarify error messages.  (Bug#56863)

2022-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Prefer command remapping to substitute-key-definition

	* lisp/textmodes/reftex-index.el (reftex-index-mode-map):
	* lisp/textmodes/reftex-sel.el (reftex-select-shared-map):
	* lisp/textmodes/reftex-toc.el (reftex-toc-mode-map): Prefer command
	remapping to 'substitute-key-definition'.

2022-08-01  Eli Zaretskii  <eliz@gnu.org>

	* src/xdisp.c (get_visually_first_element): Fix a typo.

2022-08-01  Gregory Heytings  <gregory@heytings.org>

	Various improvements to long lines handling.

	* src/xdisp.c (get_visually_first_element,
	(move_it_vertically_backward): Do not go back too far with bidi.
	(get_narrowed_begv): Do not return 0 anymore instead of BEGV.
	(handle_fontified_prop): Simplify accordingly.

	* src/keyboard.c (safe_run_hooks_maybe_narrowed): Simplify accordingly.

	* src/composite.c (find_automatic_composition): Ditto.

2022-08-01  Gregory Heytings  <gregory@heytings.org>

	Fix forgotten initialization for long line optimizations.

	* src/xdisp.c (init_iterator): Initialize the 'narrowed_begv'
	field.

	* src/buffer.c (syms_of_buffer): Docstring clarification.

2022-08-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix loaddefs quirk w.r.t. pinyin-convert

	* lisp/international/titdic-cnv.el (pinyin-convert): Use
	`generate-lisp-file' for the file.  This avoids having it scanned
	by loaddefs-gen, which will trigger re-compilation of Emacs since
	pinyin.el is generated after Emacs is built.

2022-08-01  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/net/dig.el: Improve Commentary.

2022-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Doc fix in eudc-hotlist.el

	* lisp/net/eudc-hotlist.el (eudc-hotlist-mode): Doc fix; use command
	substitution.

2022-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespacing issue in dig.el

	* lisp/net/dig.el (dig-query): Rename from 'query-dig'.
	(query-dig): Make into obsolete function alias for 'dig-query'.

2022-08-01  Po Lu  <luangruo@yahoo.com>

	Improve handling of xsettings events

	* src/xsettings.c (xft_settings_event):
	* src/xsettings.h: Return if the event was handled.
	* src/xterm.c (handle_one_xevent): If it was, don't handle the
	event any further.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Improve GCC pacification in xterm.c

	* src/xterm.c (x_dnd_free_toplevels, x_composite_image):
	Use UNINIT for initialization needed only to pacify GCC.
	(x_dnd_free_toplevels): Add an eassume to pacify GCC 12.1 x86-64
	-Wanalyzer-null-dereference.

	2022-07-31  Paul Eggert  <eggert@cs.ucla.edu>

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Fix time comparison in primitive-undo

	* lisp/simple.el (primitive-undo): Fix time comparison.
	The old code was a circa-2013 mistranslation of what used to be in
	src/undo.c’s Fprimitive_undo.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Use list-form timestamps in .nnmh-articles

	* lisp/gnus/nnmh.el (nnmh-update-gnus-unreads): Store list form
	timestamps into .nnmh-articles, even if current-time-list is nil.
	That way, older Emacs versions can read them.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer ‘time-equal-p’ to ‘equal’ on timestamps

	This is more robust since timestamps can have multiple forms.
	* lisp/auth-source.el (auth-source-netrc-parse):
	* lisp/bookmark.el (bookmark--watch-file-already-queried-p)
	(bookmark-maybe-load-default-file):
	* lisp/cedet/semantic/db.el (semanticdb-needs-refresh-p):
	* lisp/dired.el (dired-directory-changed-p):
	* lisp/files.el (dir-locals-find-file):
	* lisp/gnus/gnus-util.el (gnus-cache-file-contents):
	* lisp/gnus/nneething.el (nneething-create-mapping):
	* lisp/gnus/nnfolder.el (nnfolder-read-folder):
	* lisp/gnus/nnmaildir.el (nnmaildir--update-nov)
	(nnmaildir--scan, nnmaildir-request-scan)
	(nnmaildir-request-update-info):
	* lisp/gnus/nnmh.el (nnmh-update-gnus-unreads):
	* lisp/gnus/spam-stat.el (spam-stat-load):
	* lisp/mail/mailabbrev.el (mail-abbrevs-sync-aliases):
	* lisp/mail/sendmail.el (sendmail-sync-aliases):
	* lisp/net/netrc.el (netrc-parse):
	* lisp/nxml/rng-loc.el (rng-get-parsed-schema-locating-file):
	* lisp/play/cookie1.el (cookie-snarf):
	* lisp/vc/vc-cvs.el (vc-cvs-state-heuristic):
	* lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p)
	(vc-hg--cached-dirstate-search):
	* lisp/vc/vc-hooks.el (vc-after-save):
	Prefer ‘time-equal-p’ to ‘equal’ when comparing
	timestamps for equality.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify a few timestamps

	* lisp/calendar/time-date.el (safe-date-to-time):
	* lisp/calendar/timeclock.el (timeclock-generate-report):
	* lisp/epg.el (epg--start):
	* lisp/gnus/gnus-demon.el (gnus-demon-nntp-close-connection):
	* lisp/gnus/gnus-util.el (gnus-date-get-time):
	* lisp/gnus/nnheader.el (nnheader-last-message-time):
	* lisp/gnus/nnrss.el (nnrss-request-expire-articles):
	* lisp/vc/ediff-util.el (ediff-command-begin-time)
	(ediff-calc-command-time, ediff-profile):
	Prefer an integer like 0 to a timestamp list like (0 0)
	where either will do.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Omit some (current-time) calls

	* lisp/emacs-lisp/ert.el (ert-write-junit-test-summary-report):
	* lisp/emacs-lisp/shortdoc.el (file):
	* lisp/find-lisp.el (find-lisp-find-dired-insert-file):
	* lisp/progmodes/hideif.el (hide-ifdefs):
	* lisp/tar-mode.el (tar-subfile-save-buffer):
	Prefer nil or omitted arg to (current-time) where this is better
	or more-efficient.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	* lisp/vc/vc.el: Remove stray comment hyphen.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Fix "cons up a storm" issue in type-break

	* lisp/type-break.el (type-break-time-last-command)
	(type-break-mode, type-break, type-break-check)
	(type-break-time-sum, type-break-keystroke-reset):
	Use integer timestamps; that’s good enough for this module.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Fix year-285428751 bug in hanoi-unix-64

	* lisp/play/hanoi.el (hanoi-move-period, hanoi, hanoi-unix)
	(hanoi-unix-64): Use integers, not floating point, to avoid
	rounding errors for timestamps greater than 2**53.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	* src/timefns.c (Ffloat_time): Fix doc string.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Improve time-equal-p etc. performance

	* src/timefns.c (time_cmp): Return EMACS_INT, not int; no need to
	change callers.  Compare (X . Z) to (Y . Z) quickly if X and Y are
	fixnums.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Improve float-time etc. performance

	* src/timefns.c (decode_float_time): Assume T is finite.
	All callers changed.
	(decode_time_components): Assume FORM is not TIMEFORM_FLOAT.
	All callers changed.
	(decode_lisp_time): If the specified time is a float,
	signal an error if it is not finite.
	(Ffloat_time): If the specified time is a float,
	simply return it.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Make time arithmetic more like comparison

	Since time comparison says X == X, have time arithmetic behave
	similarly for X - X.  This should also be a bit faster due to not
	having to test for floats and NaNs.
	* src/timefns.c (time_arith, time_cmp):
	Simplify by not worrying about NaNs, which are not time values.
	(time_arith): Simplify by not worrying about subtracting nil from
	nil; the caller now handles this.
	(Ftime_subtract): Handle subtracting X from X specially.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Fix get-internal-runtime precision

	* src/sysdep.c (make_lisp_s_us): Also define if HAVE_GETRUSAGE.
	(Fget_internal_run_time): Don’t generate more precision than the
	underlying primitives.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	(time-equal-p nil X) returns nil

	* src/timefns.c (Ftime_equal_p): nil compares unequal to non-nil.

2022-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Tune blv_found

	* src/lisp.h (blv_found): Prefer BASE_EQ to EQ where either will do.

2022-08-01  Po Lu  <luangruo@yahoo.com>

	Improve frame synchronization support on Haiku

	* src/ftcrfont.c (ftcrfont_draw):
	* src/haikufns.c (haiku_set_background_color):
	* src/haikuterm.c (haiku_clip_to_string):
	(haiku_clip_to_string_exactly):
	(haiku_clear_frame_area):
	(haiku_clear_frame):
	(haiku_draw_box_rect):
	(haiku_draw_relief_rect):
	(haiku_draw_underwave):
	(haiku_draw_text_decoration):
	(haiku_draw_plain_background):
	(haiku_draw_stipple_background):
	(haiku_draw_glyph_string_foreground):
	(haiku_draw_glyphless_glyph_string_foreground):
	(haiku_draw_stretch_glyph_string):
	(haiku_start_clip):
	(haiku_end_clip):
	(haiku_clip_to_row):
	(haiku_draw_composite_glyph_string_foreground):
	(haiku_draw_image_glyph_string):
	(haiku_draw_glyph_string):
	(haiku_after_update_window_line):
	(haiku_draw_hollow_cursor):
	(haiku_draw_bar_cursor):
	(haiku_draw_vertical_window_border):
	(haiku_draw_window_divider):
	(haiku_scroll_bar_create):
	(haiku_set_horizontal_scroll_bar):
	(haiku_set_vertical_scroll_bar):
	(haiku_draw_fringe_bitmap):
	(haiku_scroll_run):
	(haiku_read_socket):
	(haiku_flash):
	(haiku_clear_under_internal_border):
	(haiku_scroll_bar_remove):
	* src/haikuterm.h (MAKE_FRAME_DIRTY):
	(FRAME_CR_CONTEXT): Don't dirty frames if not necessary.

2022-08-01  Po Lu  <luangruo@yahoo.com>

	Implement primitive frame synchronization on Haiku

	Instead of relying on a compositor to do the work, we simply
	wait for VBLANK and hope that the update finishes soon enough.

	* doc/lispref/frames.texi (Management Parameters): Document that
	frame synchronization is now supported on Haiku.

	* src/haiku_support.cc (class EmacsView): New field
	`use_frame_synchronization'.
	(FlipBuffers): Wait for vertical blanking period.
	(be_set_use_frame_synchronization): New function.
	* src/haiku_support.h: Update prototypes.
	* src/haikufns.c (haiku_create_frame): Set
	`use-frame-synchronization'.

	(haiku_set_use_frame_synchronization)
	(haiku_frame_parm_handlers): New param handler.

2022-08-01  Po Lu  <luangruo@yahoo.com>

	* lisp/cedet/ede/base.el (ede-project): Fix warning when loading EDE.

2022-08-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-07-28 15:23:34 UTC.

2022-07-31  Po Lu  <luangruo@yahoo.com>

	Make frame synchronization a frame parameter

	* doc/lispref/frames.texi (Management Parameters): Document
	`use-frame-synchronization'.
	* etc/NEWS: Update entry.

	* src/frame.c (frame_parms): New frame parameter
	`use-frame-synchronization'.
	(syms_of_frame): New defsym.
	* src/haikufns.c (haiku_frame_parm_handlers):
	* src/nsfns.m (ns_frame_parm_handlers):
	* src/pgtkfns.c (pgtk_frame_parm_handlers):
	* src/w32fns.c (w32_frame_parm_handlers): Update frame param
	handlers correctly.
	* src/xfns.c (x_set_use_frame_synchronization): New function.
	(Fx_create_frame): Set default value of said parameter.
	(x_frame_parm_handlers): Add handler.

	* src/xterm.c (x_sync_wait_for_frame_drawn_event): Clear
	parameter if sync fails.

2022-07-31  Gregory Heytings  <gregory@heytings.org>

	Move the computation of narrowing bounds for long line optimizations.

	* src/xdisp.c (init_iterator): Move the computation from here...
	(reseat): ... to here.  Also recompute the position in certain cases.

2022-07-31  Gregory Heytings  <gregory@heytings.org>

	Add locked narrowing around pre- and post-command-hook

	* src/keyboard.c (safe_run_hooks_maybe_narrowed): New function.
	(command_loop_1): Use it for 'pre-command-hook' and 'post-command-hook'.
	(syms_of_keyboard): Update docstrings of 'pre-command-hook' and
	'post-command-hook'.

	* src/lisp.h: Prototype of the new function.

2022-07-31  Philip Kaludercic  <philipk@posteo.net>

	Extract package-fetch and related functionality

	Note that the "package kind" was renamed from "source" to "vc".

	* package-vc.el: (package-vc-commit): Copy from package.el
	(package-vc-version): Add new function
	(package-vc-generate-description-file): Add new function.
	(package-vc-unpack): Add new function.
	(package-vc-fetch): Copy from package.el
	(package-checkout): Add alias for package-vc-fetch
	* package.el (package-devel-dir): Remove option.  The checkouts are
	stored in package-user-dir
	(package-desc): Handle (vc . VERS) version strings
	(package-desc-full-name): Return the plain name for vc packages
	(package-devel-commit): Move function to package-vc
	(package-load-descriptor): Refactor according to other changes
	(package-load-all-descriptors): Remove package-devel-dir
	(package-unpack): Remove vc package handling
	(package-generate-description-file): Remove special handling for vc
	packages
	(package-install-from-archive): Remove special handling for vc
	packages
	(package-fetch): Move function to package-vc
	(package-desc-status): Use "vc" instead of "source"
	(package--remove-hidden): Use "vc" instead of "source"
	(package-menu--print-info-simple): Refactor according to other changes

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow specifying that loaddefs files shouldn't not be compiled

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric):
	Allow specifying that we shouldn't include a no-compile cookie
	(bug#53024).

2022-07-31  Mattias Engdegård  <mattiase@acm.org>

	Declare `key-valid-p` and `readablep` as error-free

	* lisp/keymap.el (key-valid-p):
	* lisp/subr.el (readablep): These functions are effect-free; declare
	them correspondingly.  Note that readablep is not pure since its
	return value depends on ambient state.

2022-07-31  Stefan Kangas  <stefankangas@gmail.com>

	Make ps-def.el obsolete (part 2/2)

	* lisp/obsolete/ps-def.el: Add "Obsolete-since".
	* lisp/ps-print.el (ps-def): Don't require.

2022-07-31  Stefan Kangas  <stefankangas@gmail.com>

	Make ps-def.el obsolete (part 1/2)

	This file was created to maintain Emacs/XEmacs compat code more
	easily, and no longer serves any purpose.  It currently contains only
	obsolete function and variable aliases.

	* lisp/ps-def.el: Move from here...
	* lisp/obsolete/ps-def.el: ...to here.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't make a custom-save-icons section if there's nothing to save

	* lisp/cus-edit.el (custom-save-icons): Only make an entry when
	there's something to save (bug#56860).  Also autoload.

2022-07-31  Stefan Kangas  <stefankangas@gmail.com>

	Move some definitions from ps-def.el to ps-print.el

	* lisp/ps-def.el (ps-face-bold-p, ps-face-italic-p)
	(ps-face-strikeout-p, ps-face-overline-p, ps-face-box-p)
	(ps-color-format, ps-float-format)
	(ps-generate-postscript-with-faces1): Move from here...
	* lisp/ps-print.el (ps-face-bold-p, ps-face-italic-p)
	(ps-face-strikeout-p, ps-face-overline-p, ps-face-box-p)
	(ps-color-format, ps-float-format)
	(ps-generate-postscript-with-faces1): ...to here.

2022-07-31  Stefan Kangas  <stefankangas@gmail.com>

	Remove some leftover compat code from ps-print

	* lisp/ps-def.el (ps-mark-active-p): Make obsolete in favor of
	'mark-active'.  Update callers.
	(ps-face-foreground-name): Make obsolete in favor of
	'face-foreground'.  Update callers.
	(ps-face-background-name): Make obsolete in favor of
	'face-background'.  Update callers.
	(ps-color-device): Make into obsolete function alias for
	'display-color-p'.  Update callers.

2022-07-31  Michael Albinus  <michael.albinus@gmx.de>

	Declare Tramp function for backward compatibility

	* lisp/net/tramp.el (tramp-archive-file-name-handler):
	* lisp/net/tramp-ftp.el (tramp-archive-file-name-handler): Declare.

2022-07-31  Philip Kaludercic  <philipk@posteo.net>

	Merge remote-tracking branch 'origin/master' into feature/package+vc

2022-07-31  Mattias Engdegård  <mattiase@acm.org>

	Reduce internal rx autoloads

	* lisp/emacs-lisp/rx.el (rx--to-expr, rx--pcase-transform):
	Don't autoload.
	(rx--pcase-macroexpander): Extract body into...
	(rx--pcase-expand): ...a separate function, which is autoloaded.

2022-07-31  Philip Kaludercic  <philipk@posteo.net>

	Fix electric paring in rcirc buffers

	* rcirc.el (rcirc--electric-pair-inhibit): Add new predicate function.
	(rcirc-mode): Use rcirc--electric-pair-inhibit.

2022-07-31  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/emacs-lisp/eieio-base.el (eieio-persistent-read): Simplify.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation warnings in tramp-loaddefs.el

	* lisp/files.el (file-name-quoted-p): Autoload because it's
	referred to from tramp-loaddefs.
	* lisp/net/tramp.el (defvar): Put the entire form into the
	loaddefs file instead of eval-and-compile -- this fixes a
	dependency problem when byte-compiling the loaddefs file.
	(tramp-methods, tramp-default-method-alist)
	(tramp-default-user-alist, tramp-default-host-alist)
	(tramp-local-host-regexp, tramp-terminal-type)
	(tramp-foreign-file-name-handler-alist): Autoload to avoid
	compilation warnings.  Also put (require 'cl-lib) into the
	loaddefs file for the same reason.
	(tramp-ensure-dissected-file-name)
	(tramp-set-completion-function)
	(tramp-register-foreign-file-name-handler): Autoload.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix org.el byte-compile warning in org-loaddefs.el

	* lisp/org/org.el (org-dynamic-block-define): Autoload because
	it's referred to in org-loaddefs.el.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix ede byte-compile warnings in loaddefs.el

	* lisp/emacs-lisp/eieio.el (make-instance):
	* lisp/cedet/ede/auto.el (ede-add-project-autoload): Autoload
	functions referred to by ede/loaddefs.el.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove loaddefs debug code

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric):
	Remove code inadvertently checked in.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix cl byte-compile warning in cl-loaddefs.el

	* lisp/emacs-lisp/cl-macs.el (cl--optimize)
	(cl-struct-sequence-type, cl-struct-slot-offset): Autoload since
	they are referred to by code in cl-loaddefs.el.

2022-07-31  Stefan Kangas  <stefankangas@gmail.com>

	Delete additional items obsolete since 20, 21 and 22

	* lisp/font-lock.el (font-lock-reference-face): Delete variable
	alias obsolete since 20.3.
	* lisp/progmodes/cc-cmds.el (c-toggle-auto-state): Delete alias
	obsolete since 22.1.
	* lisp/replace.el (query-replace-regexp-eval): Delete function
	obsolete since 22.1.
	(replace-count, replace-re-search-function): Doc fixes; adjust for
	above deleted function.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix remaining byte-compile warnings in loaddefs.el

	* lisp/progmodes/compile.el (compilation--default-buffer-name):
	* lisp/kmacro.el (kmacro-name-last-macro):
	* lisp/emacs-lisp/package.el (package--activate-all): Autoload to
	avoid byte-compilation warnings when byte-compiling loaddefs.el.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix rx.el byte-compile warning in loaddefs.el

	* lisp/emacs-lisp/rx.el (rx--to-expr, rx--pcase-transform):
	Autoload to avoid warning when byte-compiling loaddefs.el.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix sendmail.el byte-compile warning in loaddefs.el

	* lisp/mail/sendmail.el (mail-send-and-exit): Autoload since it's
	referred to by autoloaded code in loaddefs.el.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	tramp fixes for byte-compiling loaddefs.el

	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler):
	Move to the main loaddefs file since it's referred to by functions
	there.
	* lisp/net/tramp.el (tramp-file-name-handler): Autoload to avoid
	warning when byte-compiling loaddefs.el.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix further package.el loaddefs byte-compile warnings

	* lisp/emacs-lisp/package.el (package-directory-list)
	(package-quickstart-file): Specify group to avoid warning when
	byte-compiling loaddefs.el.
	(package-activated-list): Autoload since we're assigning the
	variable from a function completely autoloaded.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix loaddefs byte-compile warnings from grep.el

	* lisp/progmodes/grep.el (grep-highlight-matches)
	(grep-match-face): Autoload to avoid byte-compile warnings from
	loaddefs.el.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix loaddefs byte-compile warning from package.el

	* lisp/emacs-lisp/package.el (package-user-dir): :group has to be
	explicit for autoloaded defcustoms.

2022-07-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Reformulate compile-command condition

	* lisp/progmodes/compile.el: Reformulate to avoid a byte-compile
	warning when compiling loaddefs.el.

2022-07-31  Stefan Kangas  <stefankangas@gmail.com>

	Delete aliases obsolete since 21.1 and 22.1

	* lisp/ls-lisp.el (ls-lisp-dired-ignore-case):
	* lisp/files.el (find-file-not-found-hooks): Delete variable aliases,
	obsolete since 21.1 and 22.1 respectively.

2022-07-31  Eli Zaretskii  <eliz@gnu.org>

	Support keyboard input and display of U+1E9E

	* lisp/international/latin1-disp.el (latin1-display):
	* lisp/international/iso-transl.el (iso-transl-char-map)
	(iso-transl-language-alist): Add U+1E9E capital sharp S.

2022-07-31  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	eb11dae499 Improve documentation of column-related functions
	c95a34c960 * src/macfont.m (macfont_open): Initialize font->space_wid...
	31a6a37d45 Improve indexing of keymap variables

2022-07-30  Po Lu  <luangruo@yahoo.com>

	Fix NS unexec build

	* nextstep/Makefile.in (all): Only build Emacs.pdmp on pdumper
	builds.

	* src/sheap.h: Make STATIC_HEAP_SIZE bigger, otherwise I get:
	static heap exhausted: avail 67108864 used 67101824 failed
	request 20480

2022-07-30  Po Lu  <luangruo@yahoo.com>

	Fix frame synchronization with scroll bar movement

	* src/xfns.c (x_set_inhibit_double_buffering): Stop condeming
	scroll bars.

	* src/xterm.c (x_scroll_bar_create): Create an InputOnly window.
	Update event masks accordingly and stop allocating back buffer.
	(x_scroll_bar_remove): Stop deallocating back buffer.
	(XTset_vertical_scroll_bar, x_scroll_bar_set_handle): Draw onto
	the edit window so they can be synchronized with buffer flips.
	(x_scroll_bar_clear): Redraw scroll bars instead of just
	clearing them.
	(x_scroll_bar_handle_expose, x_scroll_bar_redraw): New
	functions.
	(x_scroll_bar_expose, x_scroll_bar_end_update): Delete
	functions.
	(handle_one_xevent): Update exposure logic accordingly.

	* src/xterm.h (struct scroll_bar): Remove `x_drawable' field.

2022-07-30  Stefan Kangas  <stefankangas@gmail.com>

	Delete redisplay-end-trigger-functions and related defuns

	This variable and related functions have been obsolete since 23.1.
	The last things to depend on this (fast-lock.el and lazy-lock.el) were
	recently removed.

	* src/dispextern.h (struct it): Delete field
	'redisplay_end_trigger_charpos'.
	* src/window.c (Fwindow_redisplay_end_trigger)
	(Fset_window_redisplay_end_trigger): Delete defuns and corresponding
	defsubrs for functions obsolete since 23.1.
	* src/window.h (wset_redisplay_end_trigger): Delete function.
	(GCALIGNED_STRUCT): Delete 'redisplay_end_trigger'.
	* src/xdisp.c (run_redisplay_end_trigger_hook): Delete function.
	(syms_of_xdisp) <redisplay_end_trigger_functions>: Delete
	variable obsolete since 23.1.
	(init_iterator, next_element_from_buffer): Don't run or set above
	deleted hook variable.

	* lisp/subr.el: Delete obsoletion definitions for above deleted
	defuns and variable.
	* doc/lispref/hooks.texi (Standard Hooks):
	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns):
	* lisp/loadhist.el (unload-feature-special-hooks): Don't mention
	above deleted variable.
	* admin/coccinelle/window.cocci: Adjust for above changes.

2022-07-30  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of column-related functions

	* doc/lispref/text.texi (Primitive Indent, Columns):
	* src/indent.c (Fcurrent_indentation, Fmove_to_column): Document
	that column counting ignores invisible text.  (Bug#56837)

2022-07-30  Gerd Möllmann  <gerd@gnu.org>

	Fix native compiler handling of narrow-to-region

	* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Use auto for
	byte-narrow-to-region.

2022-07-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak icons.el emoji detection

	* lisp/emacs-lisp/icons.el (icons--create): Choose another
	character that's unlikely to appear in non-Emoji fonts.  (Comment
	left in place since this should be fixed in a less breakable way.)

2022-07-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the symbol icons in outline.el more logical

	* lisp/outline.el (outline-open, outline-close): Use symbols from
	the same series so that it's more likely that they match up (bug#56823).

2022-07-30  Eli Zaretskii  <eliz@gnu.org>

	Make sure to preserve point across locked narrowing

	* src/editfns.c (Fnarrow_to_region): Save the position of point
	when locking the restriction, since this function can move point.

2022-07-30  Gregory Heytings  <gregory@heytings.org>

	Handle the optional argument of 'narrow-to-region' in byte-compiled code.

	* lisp/emacs-lisp/bytecomp.el: Adapt the specifications.

	* src/bytecode.c (exec_byte_code): Get the optional argument.

2022-07-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify mail-header address parsing doc strings

	* lisp/mail/mail-parse.el (mail-header-parse-address-lax):
	* lisp/mail/ietf-drums.el (ietf-drums-parse-address): Clarify what
	these functions do (bug#56824).

2022-07-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix outline-minor-mode-use-buttons defcustom type

	* lisp/outline.el (outline-minor-mode-use-buttons): Fix wrong type.

2022-07-30  Lars Ingebrigtsen  <larsi@gnus.org>

	buffer-match-p doc string clarification

	* lisp/subr.el (buffer-match-p): Actually say that nil is a valid
	value.

2022-07-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust outline--use-buttons-p to buffer-match-p change

	* lisp/outline.el (outline-minor-mode-use-buttons): Adjust doc string.
	(outline--use-buttons-p): No longer any need to special-case t/nil.

2022-07-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Move a test from subr-tests to print-tests

2022-07-30  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/apropos.el (apropos-documentation): Simplify.

2022-07-30  Stefan Kangas  <stefankangas@gmail.com>

	Avoid leaving temp buffers in bib-mode and refbib

	* lisp/textmodes/bib-mode.el (bib-capitalize-title):
	* lisp/textmodes/refbib.el (r2b-capitalize-title): Use
	with-temp-buffer.

2022-07-30  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in dns-mode-map

	* lisp/textmodes/dns-mode.el (dns-mode-map): Prefer defvar-keymap.

2022-07-30  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in nroff-mode-map

	* lisp/textmodes/nroff-mode.el (nroff-mode-map): Prefer defvar-keymap.

2022-07-30  Stefan Kangas  <stefankangas@gmail.com>

	Fix namespace use in bib-mode.el

	* lisp/textmodes/bib-mode.el (bib-unread-file, bib-add)
	(bib-return-key, bib-mark, bib-unread): Rename from
	'unread-bib-file', 'addbib', 'return-key-bib', 'mark-bib', and
	'unread-bib' respectively.  Maintain old names as obsolete aliases and
	update uses.
	(bib-mode-map): Prefer defvar-keymap.

2022-07-30  Stefan Kangas  <stefankangas@gmail.com>

	Make ffap-newfile-prompt obsolete

	* lisp/ffap.el (ffap-newfile-prompt): Obsolete in favor of
	'find-file-not-found-functions'.

2022-07-30  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/ffap.el (ffap-url-regexp): Add gemini.

2022-07-30  Stefan Kangas  <stefankangas@gmail.com>

	Make outline-view-change-hook obsolete

	According to a comment, this hook "Seems only used by lazy-lock.
	I.e. obsolete."  But lazy-lock has been deleted.
	* lisp/outline.el (outline-view-change-hook): Make obsolete.

2022-07-30  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* src/macfont.m (macfont_open): Initialize font->space_width.  (Bug#56808)

2022-07-30  Eli Zaretskii  <eliz@gnu.org>

	Improve indexing of keymap variables

	* doc/lispref/maps.texi (Standard Keymaps):
	* doc/lispref/display.texi (Button Buffer Commands)
	(Button Properties):
	* doc/lispref/keymaps.texi (Translation Keymaps): Improve indexing
	of keymaps.  (Bug#56816)

2022-07-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e0f54c62ec CC Mode: fontify variables/functions after line comments e...
	2c6a94c5b8 ; Correct the meaning of "cf." in tips.texi

2022-07-29  Po Lu  <luangruo@yahoo.com>

	Minor improvements to precision scroll interpolation

	* lisp/pixel-scroll.el (pixel-scroll-start-momentum): Bump GC
	cons threshold temporarily.  This leads to a very noticeable
	improvement to animation speed.

2022-07-29  Po Lu  <luangruo@yahoo.com>

	Fix failure caused by misreading the frame synchronization spec

	* src/xterm.c (x_sync_update_begin): Ensure value % 4 is 1.
	(x_sync_update_finish): Then, add 3.

2022-07-29  Po Lu  <luangruo@yahoo.com>

	Don't freeze if the compositing manager crashes

	* src/xterm.c (x_if_event): New function, like XIfEvent but with
	a timeout.
	(x_sync_wait_for_frame_drawn_event): Disable frame
	synchronization if x_if_event times out after 1 second.

2022-07-29  Alan Mackenzie  <acm@muc.de>

	CC Mode: fontify variables/functions after line comments ending in spaces

	* lisp/progmodes/cc-engine.el (c-forward-comment-minus-1): Take account of
	spaces preceding a linefeed when scanning a putative line comment end.

2022-07-29  Gregory Heytings  <gregory@heytings.org>

	Improve narrowing when iterator has moved outside of narrowing bounds.

	* src/xdisp.c (get_narrowed_begv, get_narrowed_zv): Add 'pos'
	parameter.
	(init_iterator): Add arguments to 'get_narrowed_begv' and
	'get_narrowed_zv'.
	(handle_fontified_prop): Recompute the narrowing when iterator
	has moved outside of narrowing bounds.

	* src/dispextern.h (get_narrowed_begv, get_narrowed_zv): Adapt
	prototypes.

	* src/composite.c (find_automatic_composition): Add argument
	to 'get_narrowed_begv'.

2022-07-29  Philip Kaludercic  <philipk@posteo.net>

	* subr.el (buffer-match-p): Add t as trivial a condition

2022-07-29  Gregory Heytings  <gregory@heytings.org>

	Improvement for long line optimizations.

	* src/xdisp.c (handle_fontified_prop): Also apply the forced
	narrowing at BOB.

2022-07-29  Gerd Möllmann  <gerd@gnu.org>

	Adapt native compiler to change in narrow-to-region

	* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Add third
	argument nil for narrow-to-region.

2022-07-29  Po Lu  <luangruo@yahoo.com>

	Fix handling of extended frame resize synchronization

	* src/xterm.c (x_sync_wait_for_frame_drawn_event): Don't wait if
	the frame is invisible.  If it is mapped again the compositing
	manager is obliged to send us another event, so we can wait in
	that case.
	(x_sync_update_begin, x_sync_update_finish): Handle extended
	resize synchronization here.
	(XTframe_up_to_date, handle_one_xevent): Save stuff here.

	* src/xterm.h (struct x_output): New field
	`resize_counter_value'.

2022-07-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix outline byte compilation warning from previous change

	* lisp/outline.el (outline--use-buttons-p): Move around to fix
	byte compilation warning.

2022-07-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up the outline minor mode button logic

	* lisp/outline.el (outline-minor-mode-highlight-buffer): Factor
	out... (bug#56820).
	(outline--use-buttons-p): ... to here.
	(outline-hide-subtree, outline--fix-up-all-buttons)
	(outline-show-subtree): Use it.

2022-07-29  Po Lu  <luangruo@yahoo.com>

	Minor additions to last change

	* doc/emacs/xresources.texi (Table of Resources): Update
	description of `extended'.
	* etc/NEWS: Announce frame tearing reduction.

	* src/xterm.c (x_sync_update_finish, x_sync_update_begin)
	(x_update_begin, x_update_end, show_back_buffer, x_flip_and_flush)
	(XTframe_up_to_date, handle_one_xevent): Minor redesign of frame
	synchronization feature.  Fix crash with overflow and checking.

2022-07-29  Po Lu  <luangruo@yahoo.com>

	Implement monitor refresh rate synchronization on X

	* src/xfns.c (x_set_parent_frame, Fx_create_frame): Disable
	vsync on child and embedded frames.
	* src/xmenu.c (x_menu_show): Fix XMenu position calculation in
	child frames.

	* src/xterm.c (x_sync_is_frame_drawn_event)
	(x_sync_wait_for_frame_drawn_event): New functions.
	(x_sync_update_begin): Wait for frame to be drawn if not double
	buffered.
	(x_sync_update_finish): Set FRAME_X_WAITING_FOR_DRAW (f).
	(show_back_buffer): Wait for frame to be drawn before flipping
	buffers.
	(XTframe_up_to_date): Set FRAME_X_WAITING_FOR_DRAW if bumped.
	(handle_one_xevent): Handle frame drawn events.

	* src/xterm.h (struct x_output): New fields for frame dirtiness
	and vsync.

2022-07-29  Gregory Heytings  <gregory@heytings.org>

	Merge branch 'feature/long-lines-and-font-locking'

2022-07-29  Gregory Heytings  <gregory@heytings.org>

	Further minor improvements of documentation

	* src/xdisp.c (syms_of_xdisp) <fontification-functions>:
	* etc/NEWS: Further minor wording improvements.

2022-07-29  Eli Zaretskii  <eliz@gnu.org>

	Minor improvements of recent documentation changes

	* src/editfns.c (Fwiden):
	* doc/lispref/display.texi (Auto Faces):
	* src/xdisp.c (syms_of_xdisp) <fontification-functions>:
	* etc/NEWS: Clarify and improve wording of documentation changes.

2022-07-29  Po Lu  <luangruo@yahoo.com>

	Also update after buffer flip caused by flush_frame

	* src/xterm.c (x_flip_and_flush): Mark the end of a sync frame.

2022-07-28  Po Lu  <luangruo@yahoo.com>

	Implement extended frame synchronization

	* src/xterm.c (x_atom_refs): New atom _NET_WM_FRAME_TIMINGS.
	(x_sync_update_finish, x_sync_update_begin): New frame.
	(x_update_begin, x_update_end, XTframe_up_to_date): Begin and
	end frames accordingly if extended frame synchronization is
	enabled.
	(handle_one_xevent): Ignore timing and frame drawn events.

	* src/xterm.h (struct x_display_info): New atom.
	(FRAME_X_COUNTER_VALUE): New macro.

2022-07-28  Po Lu  <luangruo@yahoo.com>

	Don't offer meaningless selection targets during drag-and-drop

	* lisp/select.el (xselect-dnd-target-available-p): New function.
	(selection-converter-alist): Register it as the availability
	function for DND specific targets.

2022-07-28  Gregory Heytings  <gregory@heytings.org>

	Final documentation tweaks.

	* etc/NEWS: Update the NEWS entry.

	* src/xdisp.c (syms_of_xdisp): Mention the fact that restrictions
	may be locked around 'fontification-functions'.

2022-07-28  Gregory Heytings  <gregory@heytings.org>

	Add an optional 'lock' parameter to 'narrow-to-region'

	* src/editfns.c (Fnarrow_to_region): Add the parameter to the
	function, and handle it. Update docstring.
	(unwind_locked_begv, unwind_locked_zv): New functions.
	(Fwiden): Do nothing when restrictions are locked. Update
	docstring.
	(syms_of_editfns): Replace the 'inhibit-widen' symbol and variable
	with a 'restrictions-locked' symbol and variable. Update docstring.

	* src/xdisp.c (handle_fontified_prop): Use Fnarrow_to_region with
	the new parameter.
	(unwind_narrowed_zv): Remove function.

	* src/process.c (Finternal_default_process_filter): Add a third
	argument to Fnarrow_to_region.

	* src/lread.c (readevalloop): Add a third argument to
	Fnarrow_to_region.

	* src/bytecode.c (exec_byte_code): Add a third argument to
	Fnarrow_to_region.

	* etc/NEWS (like): Mention the new parameter of 'narrow-to-region'.

	* doc/lispref/positions.texi (Narrowing): Document it.

2022-07-28  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-prefix-map): Fix key broken by conversion.

2022-07-28  Sam Steingold  <sds@gnu.org>

	Cleanup `string-equal-ignore-case' declarations.

	Also, a minor declaration cleanup for other `compare-strings' thin wrappers.
	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Remove
	  `string-equal-ignore-case', `string-prefix-p', `string-suffix-p'.
	(side-effect-and-error-free-fns): Add `proper-list-p' (it already
	  was in `pure-fns').
	(pure-fns): Remove `string-prefix-p', `string-suffix-p'
	  (`string-equal-ignore-case' was missing here).
	* lisp/subr.el (proper-list-p): Remove partially duplicate `put's from here.
	(string-equal-ignore-case, string-prefix-p, string-suffix-p): Add
	  `pure' and `side-effect-free' declarations.
	(string-equal-ignore-case): Make inline.

2022-07-28  Sam Steingold  <sds@gnu.org>

	a couple more `string-equal-ignore-case' test cases

2022-07-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Comment fixes for recent icon code

	* lisp/cus-edit.el (custom-icon-state): Add comment.

	* lisp/emacs-lisp/icons.el: Remove comment.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Delete fast-lock.el and lazy-lock.el

	The 'font-lock-support-mode' is occasionally useful for debugging
	purposes, so it remains as a defvar.
	Ref: https://lists.gnu.org/r/emacs-devel/2020-08/msg00125.html

	* lisp/obsolete/fast-lock.el:
	* lisp/obsolete/lazy-lock.el: Delete libraries obsolete since
	22.1.  (Bug#56560)

	* lisp/font-lock.el (font-lock-support-mode): Make into a defvar and
	delete any mention of 'lazy-lock-mode' and 'fast-lock-mode'.
	(font-lock-turn-on-thing-lock, font-lock-turn-off-thing-lock):
	Drop support for obsolete modes lazy-lock and fast-lock.
	(font-lock-after-fontify-buffer)
	(font-lock-after-unfontify-buffer): Make into obsolete function
	aliases for 'ignore'.  Adjust callers.
	(font-lock-keywords, font-lock-inhibit-thing-lock): Adjust
	documentation to not mention lazy-lock and fast-lock.
	* lisp/font-core.el (font-lock-defaults): Adjust documentation to
	not mention 'font-lock-inhibit-thing-lock'.
	* lisp/mail/rmail.el (rmail-variables): Don't inhibit obsolete
	lazy-lock-mode and fast-lock-mode.

2022-07-28  Po Lu  <luangruo@yahoo.com>

	Fix grab view persisting on Haiku after popup menu closes

	* src/haiku_support.cc (BasicMouseUp): Improve handling of
	wait_for_release_message.
	(be_clear_grab_view): New function.
	* src/haiku_support.h: Update prototypes.
	* src/haikumenu.c (haiku_menu_show): Call it here.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Convert ffap comments to tests

	* test/lisp/ffap-tests.el (ffap-file-remote-p, ffap-machine-p):
	New tests.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	ba54f7e39c ; * doc/lispref/windows.texi (Window Sizes): Another typo....
	7990d0c36a ; * doc/lispref/windows.texi (Window Sizes): Fix a typo.  ...

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	92e77873ad Update ChangeLog and AUTHORS for 28.1.91 pretest
	093214402b ; * admin/authors.el (authors-aliases): Update.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	23112f89f9 ; Improve documentation of 'file-name-with-extension'
	4be938169d Release the desktop lock in 'kill-emacs-hook'
	4ea1f6c7f8 ; * doc/lispref/tips.texi (Documentation Tips): Fix typos....

	# Conflicts:
	#	doc/lispref/tips.texi

2022-07-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Use icons in warnings buffers

	* lisp/emacs-lisp/warnings.el (warning-suppress-action)
	(warning-suppress-log-action): Removed.
	New icon.
	(warnings-suppress): New helper function.
	(display-warning): Use it (bug#46025).

2022-07-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Use icons in outline

	* lisp/help.el (describe-bindings): Don't force buttons on
	(bug#56691).

	* lisp/outline.el (outline-minor-mode-use-buttons): Default
	buttons on in special-mode buffers.
	* lisp/outline.el (outline-minor-mode-buttons): Remove.
	(outline-open, outline-close): New icons.
	(outline-minor-mode-highlight-buffer): Use the new predicate to
	switch on/off.
	(outline--make-button): Remove.
	(outline--make-button-overlay): Use icons.el instantiation.
	(outline--valid-emoji-p): Remove.
	(outline--valid-char-p): Remove.
	(outline--insert-open-button, outline--insert-close-button): Make
	point movement better in *Help* buffers.

2022-07-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Add support for user-customizable icons

	* doc/emacs/custom.texi (Specific Customization): Mention it.

	* doc/emacs/display.texi (Icons): New node.

	* doc/lispref/display.texi (Icons): New node.

	* lisp/button.el (buttonize):
	(button--properties, buttonize-region): Allow not overriding faces.

	* lisp/cus-edit.el (custom-save-all): Save icons.
	(custom-icon): New widget.
	(custom-icon-value-create, custom-toggle-hide-icon)
	(custom--icons-widget-value, custom-icon-set): Helper functions
	for the widget.
	(customize-icon): Main command.
	(custom-icon-state-set, custom-icon-state): Helper functions.
	(custom-theme-set-icons): Function to be used by theme writers.
	(custom-set-icons): Function to be used in .emacs.
	(custom-save-icons): New function.

	* lisp/custom.el (custom-push-theme): Add icons.

	* lisp/emacs-lisp/icons.el: New file.

	* test/lisp/emacs-lisp/icons-tests.el: Add some tests.

2022-07-28  Po Lu  <luangruo@yahoo.com>

	Correctly set marker position after specpdl is unwound during printing

	* src/print.c (PRINTFINISH): Don't call set_marker_both with the
	wrong current_buffer.  Reported by Lars Ingebrigtsen
	<larsi@gnus.org>.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Make quickurl.el obsolete (part 2/2)

	* lisp/obsolete/quickurl.el: Add "Obsolete-since" header.
	* lisp/info.el (Info-file-list-for-emacs): Delete quickurl entry.
	* doc/misc/autotype.texi (QuickURL): Delete section.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Make net/quickurl.el obsolete (part 1/2)

	* lisp/net/quickurl.el: Move from here...
	* lisp/obsolete/quickurl.el: ...to here.

2022-07-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't export print--unreadable-callback-buffer to lisp

	* src/print.c (syms_of_print): Don't export
	`print--unreadable-callback-buffer' to lisp.

2022-07-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that we don't call print-unreadable-function from " prin1"

	* src/print.c (PRINTPREPARE): Bind the current buffer so that we
	can retrieve it later.
	(print_vectorlike): Use it (bug#56773).
	(syms_of_print): New internal `print--unreadable-callback-buffer'
	variable.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Bump Emacs version to 28.1.91

	* README:
	* configure.ac:
	* msdos/sed2v2.inp:
	* nt/README.W32: Bump Emacs version to 28.1.91.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Update ChangeLog and AUTHORS for 28.1.91 pretest

	* ChangeLog.3:
	* etc/AUTHORS: Update.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Doc fixes: don't mention EFS

	* doc/misc/ede.texi (ede-project):
	* doc/misc/gnus.texi (Directory Groups, Various Various):
	* lisp/cedet/ede/base.el (ede-project):
	* lisp/gnus/mml.el (mml-attach-external):
	* lisp/org/org.el (org-file-apps):
	* lisp/url/url-file.el (url-file-find-possibly-compressed-file):
	Doc fixes; don't mention XEmacs specific library EFS.

2022-07-28  Eli Zaretskii  <eliz@gnu.org>

	Minor update of truncate-line optimization

	* src/xdisp.c (forward_to_next_line_start): Look into display and
	overlay strings only when lines are truncated on display.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	New test ffap-replace-file-component

	* test/lisp/ffap-tests.el (ffap-replace-file-component): New test.

2022-07-28  Stefan Kangas  <stefankangas@gmail.com>

	Minor doc fixes in ffap.el

	* lisp/ffap.el:
	(ffap-url-fetcher): Minor doc fixes.  Adapt to new default; don't
	mention defunct/missing library ffap-url.el.

2022-07-28  Po Lu  <luangruo@yahoo.com>

	Fix minor problem with scroll bar grabs on Haiku

	* haiku_support.cc (class EmacsScrollBar, EmacsScrollBar)
	(MouseDown, MouseUp): Keep a counter of the mouse down events
	received.

2022-07-28  Po Lu  <luangruo@yahoo.com>

	Fix race conditions in mouse button handling on Haiku

	* src/haiku_support.cc (class EmacsView): New field
	`grabbed_buttons'.  Remove `previous_buttons'.
	(BasicMouseDown, BasicMouseUp): Accept new parameter `message'.
	Use data from that message instead.
	(MouseDown, MouseUp): Pass the current message to BasicMouseUp
	and BasicMouseDown.

2022-07-28  Paul Pogonyshev  <pogonyshev@gmail.com>

	Release the desktop lock in 'kill-emacs-hook'

	* lisp/desktop.el: Run 'desktop--on-kill' in 'kill-emacs-hook'.
	(desktop--on-kill): New function, refactored from 'desktop-kill'.
	(desktop-kill): Call 'desktop--on-kill'.  (Bug#56800)

2022-07-27  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_set_offset): Respect x-no-window-manager.

2022-07-27  Po Lu  <luangruo@yahoo.com>

	Remove excessive synchronization from x_sync_with_move

	* src/xterm.c (x_sync_with_move): Remove redundant XSync.  The X
	server always handles requests in order.

2022-07-27  Stefan Kangas  <stefankangas@gmail.com>

	Drop support for obsolete "Lisp Code Directory" from ffap

	Ref: https://flex.phys.tohoku.ac.jp/texi/faq/faq_146.html
	Note also that the host "archive.cis.ohio-state.edu" is unknown.
	* lisp/ffap.el (ffap-alist): Drop support for obsolete "Lisp Code
	Directory".
	(ffap-lcd): Make obsolete.

2022-07-27  Stefan Kangas  <stefankangas@gmail.com>

	Drop support for XEmacs package EFS

	EFS is a long defunct XEmacs-specific fork of Ange FTP that is
	superseded by TRAMP.
	* lisp/ffap.el (ffap-ftp-default-user)
	(ffap-replace-file-component, ffap-host-to-filename):
	* lisp/gnus/mml.el (mml-parse-file-name):
	* lisp/gnus/nnheader.el (nnheader-re-read-dir):
	* lisp/net/browse-url.el (browse-url-filename-alist):
	* lisp/speedbar.el (speedbar-check-vc): Drop support for XEmacs
	package EFS.

2022-07-27  Stefan Kangas  <stefankangas@gmail.com>

	Make ffap-file-suffix obsolete

	* lisp/ffap.el (ffap-file-suffix): Make obsolete in favor of
	file-name-extension.  Update callers.

2022-07-27  Michael Albinus  <michael.albinus@gmx.de>

	Remove Tramp instrumentation

	* lisp/net/tramp.el (tramp-handle-shell-command): Modify sentinel handling.

2022-07-27  Eli Zaretskii  <eliz@gnu.org>

	Speed up Isearch in very long lines under line truncation

	* src/xdisp.c (strings_with_newlines): New function.
	(forward_to_next_line_start): Call 'strings_with_newlines' in
	buffers with very long lines, to avoid falling back on slow
	iteration.  (Bug#56682)

2022-07-27  Michael Albinus  <michael.albinus@gmx.de>

	Further Tramp instrumentation

2022-07-27  F. Jason Park  <jp@neverwas.me>

	Add compat from GNU ELPA as a soft dependency in ERC

	* lisp/erc/erc-backend.el (erc-parse-server-response,
	erc--parse-isupport-value): Remove sub-28 compat code involving
	`string-search'.

	* lisp/erc/erc-compat.el: Require compat package, but don't error
	when absent.

	* lisp/erc/erc-dcc.el (erc-dcc-member): Remove `string-search' compat
	code.
	(erc-dcc-unquote-filename): Remove `string-replace' compat code.

	* lisp/erc/erc-speedbar.el (erc-speedbar-expand-server,
	erc-speedbar-expand-channel, erc-speedbar-expand-user): Remove
	`string-search' compat code.

	* lisp/erc/erc.el: Add compat version 28.1.2.0 to Package-Requires
	header and require `erc-compat' after other libraries.
	(erc--valid-local-channel-p): Remove `string-search' compat code.
	(erc-update-mode-line-buffer): Remove `string-replace' compat code.
	(erc-message-english-PART): Remove `string-replace' compat code.

2022-07-27  F. Jason Park  <jp@neverwas.me>

	Avoid mutating default value of erc-server-last-peers

	* lisp/erc/erc-backend.el (erc-server-last-peers): Leave default as
	nil instead of a quoted constant.
	(erc-server-connect): Initialize `erc-server-last-peers' to a new
	value local to a server buffer.
	(erc-message): Operate on server's local `erc-server-last-peers' value
	instead of the global default.  Prefer replacing value instead of
	mutating CDR to make for easier testing.
	(erc-server-PRIVMSG): Create a new `erc-server-last-peers' for easier
	testing. (Bug#56449)

2022-07-27  F. Jason Park  <jp@neverwas.me>

	Ensure erc-dcc-chat-setup runs in the right buffer

	* lisp/erc/erc-dcc.el (erc-dcc-chat-setup): Ensure initialization runs
	in the intended buffer regardless of the value of `erc-join-buffer'.
	(erc-dcc--send-final-turbo-ack, erc-dcc-get-filter): Rename internal
	variable formerly known as `erc-dcc--X-send-final-turbo-ack'.

2022-07-27  F. Jason Park  <jp@neverwas.me>

	Fix CTCP regression in erc-server-PRIVMSG

	* lisp/erc/erc-backend.el (erc-server-PRIVMSG): Don't create a query
	buffer for non-ACTION CTCP messages.

	* test/lisp/erc/erc-scenarios-misc.el (erc-scenarios-dcc-chat-accept):
	Add test for basic DCC CHAT accept dialog.

	* test/lisp/erc/resources/dcc/chat/accept-dcc.eld: New file.
	* test/lisp/erc/resources/dcc/chat/accept.eld: New file.

2022-07-27  F. Jason Park  <jp@neverwas.me>

	Allow non-IRC line delimiters with ERC test server

	* test/lisp/erc/resources/erc-d/erc-d.el (erc-d-server-fqdn,
	erc-d--initialize-client, erc-d--log, erc-d--send, erc-d--filter,
	erc-d-run): Add new variable and use it.  Also optionally accept
	keyword arguments in `erc-d-run'.

	* test/lisp/erc/resources/erc-d/erc-d-tests.el
	(erc-d-run-direct-foreign-protocol): Add test demoing newline-only
	line-wise protocol.

	* test/lisp/erc/resources/erc-d/resources/foreign.eld: New file.

2022-07-27  Po Lu  <luangruo@yahoo.com>

	Fix thinko in last change

	* src/print.c (PRINTPREPARE): Also remove `print_free_buffer'.
	Record unwind protect instead.
	(PRINTFINISH): Stop freeing the print buffer.  (bug#56773)

2022-07-27  Michael Albinus  <michael.albinus@gmx.de>

	In Tramp, use `string-empty-p' and `string-equal-ignore-case' consequently

	* lisp/net/tramp.el (tramp-find-method):
	* lisp/net/tramp-cmds.el (tramp-change-syntax):
	* lisp/net/tramp-sh.el (tramp-sh-get-signal-strings)
	(tramp-open-connection-setup-interactive-shell): Use `string-empty-p'.

	* lisp/net/tramp-compat.el (tramp-compat-string-equal-ignore-case):
	New defalias.
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handler-mounted-unmounted): Use it.

2022-07-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Update test-print-unreadable-function after fix

	* test/lisp/subr-tests.el (test-print-unreadable-function): Update
	test after fix.

2022-07-27  YugaEgo  <yet@ego.team>

	Improve 'diff-whitespace-style' user option declaration

	* lisp/vc/diff-mode.el (diff-whitespace-style):
	Use ':require'.  Minor docstring fix.
	(top level): Do not require 'whitespace.
	(whitespace-style, whitespace-trailing-regexp):
	Add defvars (rollback recent removal).
	* etc/NEWS: Extend 'diff-whitespace-style' introduction.
	(Bug#56679) (bug#56679).

2022-07-27  Po Lu  <luangruo@yahoo.com>

	Fix invalid current buffer after print-unreadable-function signals

	* src/print.c (PRINTPREPARE): Remove `old' and
	record_unwind_current_buffer instead.
	(PRINTFINISH): Stop restoring `old'.  (bug#56773)

2022-07-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a test for python-mode comment/else problem

	Based on a patch from kobarity <kobarity@gmail.com>

2022-07-27  Stephen Berman  <stephen.berman@gmx.net>

	Fix comment/else indentation problem in python-mode

	* lisp/progmodes/python.el
	(python-info-dedenter-opening-block-positions): Fix indentation of
	"else" after a comment (bug#56742).

2022-07-27  Po Lu  <luangruo@yahoo.com>

	Fix frame determination for XI touch events

	* src/xterm.c (handle_one_xevent): Find touchscreen event
	windows using x_window_to_frame.

2022-07-27  Po Lu  <luangruo@yahoo.com>

	Remove workaround for some input method problems

	* src/xterm.c (handle_one_xevent): Remove modifier key
	workaround for some input method problems, since they cause more
	problems than they fix.  (bug#56782)

2022-07-26  Po Lu  <luangruo@yahoo.com>

	Fix NS stretch glyph display

	* src/nsterm.m (ns_draw_window_cursor): Just draw hollow cursor.
	There is no need to draw the phys cursor glyph.
	(ns_dumpglyphs_stretch): Delete function.
	(ns_draw_glyph_string): New function.  Port code from X and use
	it instead.  (bug#56787)

2022-07-26  Alan Mackenzie  <acm@muc.de>

	CC Mode: correct the calculation and handling of c-use-category.

	This fixes bug #56629.  The use of c-use-category was inconsistent, with the
	result that it would be nil at compilation time, but t at run time.  This
	resulted in wrongly writing syntax-table text properties to <s and >s, yet
	testing for category properties on them.

	* lisp/progmodes/cc-defs.el (c-use-category): Move to after the definition of
	c-<-as-paren-syntax and c->-as-paren-syntax so as correctly to be able to use
	their values.  Put an eval-when-compile around the calculation of its value,
	to reduce the chances of future failure.
	(c-mark-<-as-paren, c-mark->-as-paren, c-unmark-<->-as-paren, c-sc-scan-lists)
	(c-sc-parse-partial-sexp): Wrap c-use-category in (eval-when-compile ...) as
	an optimization, preventing the XEmacs code also being generated.

2022-07-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Add missing @end defun to strings.texi

	* doc/lispref/strings.texi (Text Comparison): Add missing @end defun.

2022-07-26  Sam Steingold  <sds@gnu.org>

	restore and obsolete `gnus-string-equal' and `bibtex-string='

	* lisp/gnus/gnus-util.el (gnus-string-equal): Restore and declare obsolete.
	* lisp/textmodes/bibtex.el (bibtex-string=): Likewise.

2022-07-26  Sam Steingold  <sds@gnu.org>

	avoid error when message-fetch-field returns nil

	* gnus-art.el (article-hide-boring-headers): Use "" when
	  `message-fetch-field' returns `nil'

2022-07-26  Sam Steingold  <sds@gnu.org>

	string-equal-ignore-case: new function

	* lisp/cedet/semantic/complete.el (semantic-collector-calculate-completions):
	  Use `string-prefix-p' instead of explicit `compare-strings'.
	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns):
	  Add `string-equal-ignore-case'.
	* lisp/emacs-lisp/cl-extra.el (cl-equalp): Use `string-equal-ignore-case'.
	* lisp/emacs-lisp/shadow.el (load-path-shadows-find): Likewise.
	* lisp/emacs-lisp/shortdoc.el (string): Add `string-equal-ignore-case'.
	* lisp/files.el (file-truename): Use `string-equal-ignore-case'.
	(file-relative-name): Likewise.
	* lisp/gnus/gnus-art.el (article-hide-boring-headers):
	  Use `string-equal-ignore-case' instead of `gnus-string-equal'.
	* lisp/gnus/gnus-util.el (gnus-string-equal):
	  Remove, use `string-equal-ignore-case' instead.
	* lisp/international/mule-cmds.el (describe-language-environment):
	  Use `string-equal-ignore-case'.
	(locale-charset-match-p): Likewise.
	* lisp/man.el (Man-softhyphen-to-minus): Use `string-prefix-p'.
	* lisp/minibuffer.el (completion--string-equal-p):
	  Remove, use `string-equal-ignore-case' instead.
	(completion--twq-all): Use `string-equal-ignore-case'.
	(completion--do-completion): Likewise.
	* lisp/net/browse-url.el (browse-url-default-windows-browser):
	  Use `string-prefix-p' instead of explicit `compare-strings'.
	* lisp/org/ob-core.el (org-babel-results-keyword):
	  Use `string-equal-ignore-case' instead of explicit `compare-strings'.
	(org-babel-insert-result): Likewise.
	* lisp/org/org-compat.el (string-equal-ignore-case):
	  Define unless defined already.
	(org-mode-flyspell-verify): Use `string-equal-ignore-case'.
	* lisp/org/org-lint.el (org-lint-duplicate-custom-id): Likewise.
	* lisp/org/ox.el (org-export-resolve-radio-link): Use
	  `string-equal-ignore-case' and `string-clean-whitespace'.
	* lisp/progmodes/flymake-proc.el
	  (flymake-proc--check-patch-master-file-buffer):
	  Use `string-prefix-p' instead of explicit `compare-strings'.
	* lisp/progmodes/idlwave.el (idlwave-class-or-superclass-with-tag):
	  Use `string-equal-ignore-case' instead of explicit `compare-strings'.
	* lisp/subr.el (member-ignore-case): Use `string-equal-ignore-case'.
	(string-equal-ignore-case): Compare strings ignoring case.
	* lisp/textmodes/bibtex.el (bibtex-string=): Remove.
	(bibtex-format-entry, bibtex-font-lock-url, bibtex-autofill-entry)
	(bibtex-print-help-message, bibtex-validate, bibtex-validate-globally)
	(bibtex-clean-entry, bibtex-completion-at-point-function, (bibtex-url):
	  Use `string-equal-ignore-case' instead of `bibtex-string='.
	* lisp/textmodes/sgml-mode.el (sgml-get-context):
	  Use `string-equal-ignore-case' instead of explicit `compare-strings'.
	(sgml-calculate-indent): Likewise
	* test/lisp/subr-tests.el (string-comparison-test):
	  Add tests for `string-equal-ignore-case'.

2022-07-26  Christian Garbs  <mitch@cgarbs.de>
	    João Távora  <joaotavora@gmail.com>

	Add out-of-box support for perl lsp server

	* eglot.el (eglot-server-programs): Support Perl lsp.
	* README.md: Update.
	* NEWS.md: Update.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/952

2022-07-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't bind `M-X' when doing general completion

	* lisp/minibuffer.el (minibuffer-local-must-match-map): Remove the
	M-X binding here, because it's nonsensical outside
	read-extended-command (bug#56741).

	* lisp/simple.el (read-extended-command-mode-map)
	(read-extended-command-mode): New minor mode to bind `M-X' in
	read-extended-command.
	(read-extended-command-1): Use it.

2022-07-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a test for print-unreadable-function

	* test/lisp/subr-tests.el (test-print-unreadable-function): Add
	failing test (bug#56773).

2022-07-26  Mattias Engdegård  <mattiase@acm.org>

	Add duplicate-dwim (bug#56418)

	Like duplicate-line but duplicates the region instead if active.
	Rectangular regions are duplicated on the right-hand side.
	The region remains active afterwards, to facilitate further
	duplication or other operations on the same text.

	* lisp/rect.el (rectangle--duplicate-right):
	* lisp/misc.el (duplicate-dwim): New.
	* test/lisp/misc-tests.el (misc--duplicate-dwim): New test.
	* etc/NEWS: Announce.

2022-07-26  Robert Pluim  <rpluim@gmail.com>

	Teach 'network-lookup-address-info' to validate numeric addresses

	* src/process.c (Fnetwork_lookup_address_info): Add optional 'hints'
	argument, pass AI_NUMERICHOST to 'getaddrinfo' if it's 'numeric'.
	(syms_of_process): Add 'numeric' symbol.
	* doc/lispref/processes.texi (Misc Network): Expunge passive voice.
	Update 'network-lookup-address-info' description.
	* test/src/process-tests.el (lookup-hints-specification):
	(lookup-hints-values): Test new functionality.
	* etc/NEWS: Announce change.

2022-07-26  Michael Albinus  <michael.albinus@gmx.de>

	Fix regression in last Tramp change

	* lisp/net/tramp-sh.el (tramp-readlink-file-truename): Remove.
	(tramp-sh-handle-file-truename): Revert implementation.  (Bug#56774)

2022-07-26  Po Lu  <luangruo@yahoo.com>

	Fix flicker when moving tooltips between frames during mouse drag-and-drop

	* src/haikufns.c (Fx_show_tip):
	* src/nsfns.m (Fx_show_tip): Allow sharing existing tooltip
	frames between any two frames.
	* src/xfns.c (Fx_show_tip): Allow that but only between frames
	on the same X display.

2022-07-26  Po Lu  <luangruo@yahoo.com>

	Handle modifiers during Haiku DND wheel movement

	* lisp/term/haiku-win.el (haiku-dnd-modifier-mask)
	(haiku-dnd-wheel-modifier-type): New functions.
	(haiku-handle-drag-wheel): Use them.
	* lisp/x-dnd.el (x-dnd-modifier-mask): Remove outdated comment.
	* src/haikuselect.c (haiku_note_drag_wheel): Pass modifiers to
	wheel function.
	(syms_of_haikuselect): Update doc strings.

2022-07-26  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	970190b844 Avoid infloop in 'recenter'
	a866674b2a Fix inaccuracies in "lax search" documentation

2022-07-25  Po Lu  <luangruo@yahoo.com>

	Remove some redundant checks in the DND code

	* src/xterm.c (handle_one_xevent): Don't check tab_bar_p or
	tool_bar_p before clearing last items during drag-and-drop.

2022-07-25  Gregory Heytings  <gregory@heytings.org>

	Improvement for long lines in buffers with font locking.

	* src/xdisp.c (get_narrowed_width): Factored out from 'get_narrowed_len'.
	(get_narrowed_len): Updated to use 'get_narrowed_width'.
	(get_closer_narrowed_begv): New function.
	(SET_WITH_NARROWED_BEGV): Add parameter to the macro.
	(back_to_previous_line_start): Use the new function.
	(get_visually_first_element, move_it_vertically_backward): Update the
	calls to the macro.

	* src/dispextern.h: Prototype of 'get_closer_narrowed_begv'.
	Fix the prototypes of 'get_narrowed_begv' and 'get_narrowed_zv'.

2022-07-25  Paul Eggert  <eggert@cs.ucla.edu>

	Note guideline for doc string expressions

	* doc/lispref/tips.texi (Documentation Tips):
	Mention \\=' and \\=` and say that expressions like
	(NAME TYPE RANGE) should not be quoted.

2022-07-25  Eli Zaretskii  <eliz@gnu.org>

	Avoid infloop in 'recenter'

	* src/window.c (Frecenter): Avoid infinite loop in the minibuffer
	under 'fido-vertical-mode'.  (Bug#56765)

2022-07-25  Michael Albinus  <michael.albinus@gmx.de>

	Fix regexp in tramp-tests.el

	* test/lisp/net/tramp-tests.el (tramp--test-enabled): Fix regexp
	for Tramp test files.

2022-07-25  Robert Pluim  <rpluim@gmail.com>

	Make package-archives URL treatment slightly laxer

	'package-archives' URLs are expected to end in '/', but we can
	cater for people typoing that by using 'url-expand-file-name'.

	* lisp/emacs-lisp/package.el (package--with-response-buffer-1): Use
	'url-expand-file-name' instead of 'concat'.

2022-07-25  João Távora  <joaotavora@gmail.com>

	Clean up more robustly in compile.el

	* lisp/progmodes/compile.el (compilation-sentinel): Use
	unwind-protect.

2022-07-25  Eli Zaretskii  <eliz@gnu.org>

	Fix inaccuracies in "lax search" documentation

	* doc/emacs/search.texi (Lax Search): Update the examples of
	character folding in search.  (Bug#56747)

2022-07-25  Po Lu  <luangruo@yahoo.com>

	Fix mouse face handling during frame reentry on Haiku

	* src/haikuterm.c (haiku_read_socket): Clear
	last_mouse_glyph_frame like on X.

2022-07-25  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	ba70d0f77c Update to Org 9.5.4-17-g6e991f

2022-07-24  Po Lu  <luangruo@yahoo.com>

	Fix typo in x-dnd-tests.el

	* test/lisp/x-dnd-tests.el (x-begin-drag): Avoid extra leading /
	in file names.  (bug#56712)

2022-07-24  Po Lu  <luangruo@yahoo.com>

	Fix mouse face handling with tooltips

	* src/xterm.c (handle_one_xevent): Clear last_mouse_motion_frame
	and last_mouse_glyph_frame on LeaveNotify.  Otherwise, mouse
	face will be restored by gui_redo_mouse_highlight and will not
	be restored if an EnterNotify is later sent on top of the same
	glyph.

2022-07-24  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.5.4-17-g6e991f

2022-07-24  João Távora  <joaotavora@gmail.com>

	Merge commit '7738854e09' to fix fallout of force-push in gnu elpa

2022-07-24  Mike Kupfer  <mkupfer@alum.berkeley.edu>

	Fix the prompt for mh-mime-save-parts (SF#500)

	* mh-mime.el (mh-mime-save-parts): Use the default argument to
	read-directory-name; don't use format-prompt.

2022-07-24  Mike Kupfer  <mkupfer@alum.berkeley.edu>

	* mh-mime.el (mh-mime-save-parts): Restore default-directory (SF#498)

2022-07-24  Michael Albinus  <michael.albinus@gmx.de>

	Refactor Tramp

	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
	Use `tramp-adb-handle-get-remote-gid' and
	`tramp-adb-handle-get-remote-uid'.
	(tramp-adb-handle-file-attributes): Use `tramp-convert-file-attributes'.
	(tramp-do-parse-file-attributes-with-ls): Remove ID-FORMAT.
	(tramp-adb-handle-directory-files-and-attributes):
	Use `tramp-skeleton-directory-files-and-attributes'.
	(tramp-adb-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'.
	(tramp-adb-handle-copy-file, tramp-adb-handle-rename-file):
	Use `tramp-barf-if-file-missing'.
	(tramp-adb-handle-get-remote-uid)
	(tramp-adb-handle-get-remote-gid): New defuns.

	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	Use `tramp-archive-handle-directory-files'.
	(tramp-archive-handle-directory-files): New defun.

	* lisp/net/tramp-cache.el (tramp-file-property-p): New defun.

	* lisp/net/tramp-compat.el (tramp-compat-take): New defalias.

	* lisp/net/tramp-crypt.el (tramp-crypt-do-copy-or-rename-file):
	Use `tramp-barf-if-file-missing'.
	(tramp-crypt-handle-directory-files):
	Use `tramp-skeleton-directory-files'.

	* lisp/net/tramp-fuse.el (tramp-fuse-handle-directory-files):
	Use `tramp-skeleton-directory-files'.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
	Use `tramp-barf-if-file-missing'.

	* lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file):
	Use `tramp-barf-if-file-missing'.

	* lisp/net/tramp-sh.el (tramp-readlink-file-truename)
	(tramp-stat-file-attributes)
	(tramp-stat-directory-files-and-attributes): New defconsts.
	(tramp-perl-file-attributes)
	(tramp-perl-directory-files-and-attributes): Adapt.
	(tramp-sh-handle-make-symbolic-link): Flush TARGET file properties.
	(tramp-sh-handle-file-truename): Use `tramp-readlink-file-truename'
	(tramp-sh-handle-file-exists-p)
	(tramp-sh-handle-file-executable-p)
	(tramp-sh-handle-file-readable-p)
	(tramp-sh-handle-file-directory-p)
	(tramp-sh-handle-file-writable-p): Adapt check of file properties.
	(tramp-sh-handle-file-attributes): Simplify.
	(tramp-do-file-attributes-with-ls): Remove ID-FORMAT.  Combine two
	remote commands.  Compute both versions of uid and gid together.
	(tramp-do-file-attributes-with-perl)
	(tramp-do-directory-files-and-attributes-with-perl):
	Remove ID-FORMAT.
	(tramp-do-file-attributes-with-stat): Remove ID-FORMAT.  Use
	`tramp-stat-file-attributes'.
	(tramp-sh-handle-directory-files-and-attributes):
	Use `tramp-skeleton-directory-files-and-attributes'.
	(tramp-do-directory-files-and-attributes-with-stat):
	Remove ID-FORMAT.  Use `tramp-stat-directory-files-and-attributes'.
	(tramp-sh-handle-copy-directory): Use `tramp-skeleton-copy-directory'.
	(tramp-do-copy-or-rename-file): Use `tramp-barf-if-file-missing'.
	(tramp-sh-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'.
	(tramp-sh-handle-write-region): Combine two remote commands.
	(tramp-sh-gio-monitor-process-filter): Simplify `cond' call.
	(tramp-expand-script): Extend for ls, readling and stat.
	(tramp-open-connection-setup-interactive-shell): Do not set
	`tramp-end-of-output'.
	(tramp-open-connection-setup-interactive-shell): Do not send
	prompt formatting command, it's superfluous.
	(tramp-send-command-and-check): Rearrange in order to accept also
	heredoc scripts.
	(tramp-convert-file-attributes): Move function to tramp.el.
	(tramp-get-remote-id): Set connection property.
	(tramp-get-remote-uid-with-id): Use it.
	(tramp-get-remote-python): Don't check for python2 anymore.

	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	Use `tramp-handle-directory-files'.
	(tramp-smb-handle-copy-directory): Use `tramp-skeleton-copy-directory'.
	(tramp-smb-handle-directory-files): Remove.
	(tramp-smb-handle-file-attributes): Use `tramp-convert-file-attributes'.
	(tramp-smb-do-file-attributes-with-stat): Remove ID-FORMAT.
	(tramp-smb-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'.

	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
	Use `tramp-barf-if-file-missing'.
	(tramp-sudoedit-file-attributes): New defconst.
	(tramp-sudoedit-handle-file-attributes): Simplify code.

	* lisp/net/tramp.el (tramp-setup-debug-buffer): Set debug buffer
	as not modified.
	(tramp-barf-if-file-missing, tramp-skeleton-copy-directory)
	(tramp-skeleton-directory-files)
	(tramp-skeleton-directory-files-and-attributes)
	(tramp-skeleton-file-local-copy): New macros.
	(tramp-handle-copy-directory): Use `tramp-skeleton-copy-directory'.
	(tramp-handle-directory-files): Use `tramp-skeleton-directory-files'.
	(tramp-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'.
	(tramp-handle-insert-file-contents): Use `tramp-barf-if-file-missing'.
	(tramp-get-process-attributes, tramp-action-out-of-band):
	Simplify `cond' call.
	(tramp-check-cached-permissions): Simplify.
	(tramp-make-tramp-temp-file): Reimplement.

	* test/lisp/net/tramp-archive-tests.el (tramp-copy-size-limit):
	Don't set.

	* test/lisp/net/tramp-tests.el (tramp--test-enabled):
	Remove superfluous test files.
	(tramp-test21-file-links): Protect file name deletion.

2022-07-24  Po Lu  <luangruo@yahoo.com>

	Throw errors in XDS handler directly

	* lisp/x-dnd.el (x-dnd-xds-testing): New defvar.
	(x-dnd-handle-direct-save): Signal errors directly if it is
	true.
	* test/lisp/x-dnd-tests.el (x-dnd-xds-testing): New defvar.
	(x-dnd-tests-do-direct-save-internal): Bind it to t around
	x-begin-drag.  (bug#56712)

2022-07-24  Paul Pogonyshev  <pogonyshev@gmail.com>

	Don't exclude current dir in `package--reload-previously-loaded'

	* lisp/emacs-lisp/package.el (package--reload-previously-loaded):
	Don't exclude the current directory (bug#56614).

2022-07-24  YugaEgo  <yet@ego.team>

	Add new user option 'diff-whitespace-style'

	* lisp/vc/diff-mode.el (diff-whitespace-style): New user option.
	(diff-setup-whitespace): Use it (Bug#56679).
	(top level): require 'whitespace.
	(whitespace-style, whitespace-trailing-regexp): Remove defvars.

2022-07-24  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	b4067394dc Set `default-directory' of Tramp archive connection buffer
	2529e82002 ; * doc/lispref/functions.texi (Declare Form): Fix typo.
	54c4ceb009 Update the documentation of 'declare' forms
	7263631dca Fix bookmark support for Help functions in native-compilat...

	# Conflicts:
	#	lisp/help.el

2022-07-23  Po Lu  <luangruo@yahoo.com>

	Prevent exposing tooltip frames to Lisp code during drag-and-drop

	* src/xterm.c (x_dnd_compute_toplevels): Ignore tooltip frames.
	(x_tooltip_window_to_frame): Allow unrelated_tooltip_p to be
	NULL.
	(handle_one_xevent): Ignore DND events to tooltip frames.

2022-07-23  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/progmodes/xref.el: Bump the version.

2022-07-23  Michael Albinus  <michael.albinus@gmx.de>

	Set `default-directory' of Tramp archive connection buffer

	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler):
	Set `default-directory' of Tramp connection buffer.  (Bug#56628)

2022-07-23  Mattias Engdegård  <mattiase@acm.org>

	Fix `lsh` warning shortcomings (bug#56641)

	Reported by Basil Contovounesios.

	* etc/NEWS: Mention how to suppress the warning.
	* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Amend doc string.
	* lisp/subr.el: Use `macroexp-warn-and-return` to delay the warning
	until codegen time (which makes it suppressible) and to prevent
	repeated warnings.
	* test/lisp/international/ccl-tests.el (shift):
	* test/src/data-tests.el (data-tests-ash-lsh):
	Suppress warning in tests of `lsh` itself.

2022-07-23  Eli Zaretskii  <eliz@gnu.org>

	Improve display of columns on mode-line

	* src/xdisp.c (decode_mode_spec): A better representation for
	"unknown column number".

2022-07-23  Eli Zaretskii  <eliz@gnu.org>

	Optimize 'set_vertical_scroll_bar' for long lines

	* src/xdisp.c (set_vertical_scroll_bar): Don't bother
	being accurate about window_end_pos if long-line shortcuts
	are in effect in the current buffer.

2022-07-23  Eli Zaretskii  <eliz@gnu.org>

	Avoid calling 'current_column' in buffers with long lines.

	* src/xdisp.c (decode_mode_spec, redisplay_window)
	(mode_line_update_needed):
	* src/indent.c (Fcurrent_column): In a buffer with long-line
	optimizations enabled, avoid calling 'current_column', which is
	very slow in that case.

2022-07-23  Basil L. Contovounesios  <contovob@tcd.ie>

	Update pdumper.c after recent long lines changes

	For discussion, see:
	https://lists.gnu.org/r/emacs-devel/2022-07/msg00761.html

	* src/pdumper.c (dump_buffer): Dump new field
	long_line_optimizations_p introduced in commit e7b5912b23 of
	2022-07-16 "Improvements to long lines handling."
	(dump_buffer) [CHECK_STRUCTS]: Update hash accordingly
	for --enable-checking=structs.

2022-07-23  Eli Zaretskii  <eliz@gnu.org>

	Speed up redisplay of long truncated lines

	* src/xdisp.c (forward_to_next_line_start): Fix logic of
	interpreting the result of Fnext_single_property_change.
	(reseat_at_next_visible_line_start): When ON_NEWLINE_P is zero,
	pass NULL to 'forward_to_next_line_start', to avoid costly bidi
	iteration when none is needed.  This speeds up redisplay of very
	long lines under 'truncate-lines'.

2022-07-23  Mattias Engdegård  <mattiase@acm.org>

	Correct symbol in error for failed CHECK_INTEGER (bug#56723)

	Reported by Jeronimo Pellegrini.

	* src/lisp.h (CHECK_INTEGER): Use integerp, not numberp.

2022-07-23  Dmitry Gutov  <dgutov@yandex.ru>

	Support new "binary file matches" format in Ripgrep 13

	* lisp/progmodes/xref.el (xref-matches-in-files):
	Support new "binary file matches" format in Ripgrep 13
	(bug#56624).

2022-07-23  Po Lu  <luangruo@yahoo.com>

	Remove macOS region color code

	* lisp/faces.el (region): Remove macOS specific definition.
	Equivalent functionality is no longer available on free
	operating systems.

2022-07-23  Mattias Engdegård  <mattiase@acm.org>

	Use `ash` instead of `lsh` in verilog-mode (bug#56641)

	* lisp/progmodes/verilog-mode.el (verilog-simplify-range-expression):
	Use `ash`; the result will be the same because the first argument is
	nonnegative.

2022-07-23  Mattias Engdegård  <mattiase@acm.org>

	Warn about calls to `lsh` (bug#56641)

	* lisp/subr.el (lsh): Warn when compiled; recommend `ash`.
	* etc/NEWS: Add note.

2022-07-23  Eli Zaretskii  <eliz@gnu.org>

	Update the documentation of 'declare' forms

	* doc/lispref/compile.texi (Native-Compilation Variables): Mention
	the 'declare' alternative for 'native-comp-speed'.
	* doc/lispref/functions.texi (Declare Form): Document 'declare'
	forms that were previously undocumented.

2022-07-23  Po Lu  <luangruo@yahoo.com>

	Undo C parts of "Don't use the Gtk region face"

	This reverts commit a24f710395f9777cb9f8b000300e5e9c892d7794, apart
	from the change to faces.el and NEWS.

2022-07-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't use the Gtk region face

	* lisp/faces.el (region): Don't use the Gtk region face, because
	it produces low contrast combinations (bug#46493).
	* src/gtkutil.h:
	* src/gtkutil.c (xg_check_special_colors): Remove.

	* src/xfns.c (x_defined_color):
	* src/pgtkterm.c (pgtk_defined_color): Don't call.

2022-07-23  kobarity  <kobarity@gmail.com>

	Fix Python navigation problem with a line continuation using backslash

	* lisp/progmodes/python.el (python-nav--beginning-of-defun): Fix
	line continuation using backslash in nested defun (bug#56615).

2022-07-23  Eli Zaretskii  <eliz@gnu.org>

	Fix bookmark support for Help functions in native-compilation builds

	* lisp/help.el (describe-key--helper, describe-function--helper):
	New helper functions.
	(describe-key): Call 'describe-key--helper' instead of a
	lambda-function.
	* lisp/help-fns.el (describe-function): Call
	'describe-function--helper' instead of a lambda-function.
	(Bug#56643)

2022-07-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix wdired entry when there are hidden subdirs

	* lisp/dired.el (dired--unhide): Allow `C-c C-q' to work when
	there are hidden inserted subdirs (bug#56698).

2022-07-23  Visuwesh  <visuweshm@gmail.com>

	New user option to disable deleting current input in comint mouse-2

	* etc/NEWS: Announce the user option (bug#56646).
	* lisp/comint.el (comint-delete-old-input): New user option to disable
	deleting current input when insert an old input using mouse-2.
	(comint-insert-input): Use it.

2022-07-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Use special-mode in eldoc--doc-buffer

	* lisp/emacs-lisp/eldoc.el (eldoc--format-doc-buffer): Use
	`special-mode' to allow normal customizations of the buffer
	(bug#56659).

2022-07-23  Po Lu  <luangruo@yahoo.com>

	Fix PGTK DND after a source leaves without dropping anything

	* lisp/pgtk-dnd.el (pgtk-dnd-clear-data-on-motion): New flag.
	(pgtk-dnd-handle-gdk): Set flag upon drag-leave.  Clear state
	upon drag-motion if it is set.

2022-07-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix off-by-one error in string-truncate-left

	* lisp/emacs-lisp/subr-x.el (string-truncate-left): Fix off-by-one
	error (bug#56685).

2022-07-23  Po Lu  <luangruo@yahoo.com>

	Handle text scale and global text scale during DND wheel movement

	* lisp/x-dnd.el (x-dnd-mwheel-scroll): Handle `text-scale' and
	`global-text-scale' mwheel actions.

2022-07-23  Miha Rihtaršič  <miha@kamnitnik.top>

	Fix mode line mouse-1 binding when showing only column numbers

	* lisp/bindings.el (mode-line-position): Fix the mouse-1 binding
	when showing only column numbers (bug#56694).

2022-07-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't bug out in src when there's no srcset

	* lisp/net/shr.el (shr--preferred-image): Don't bug out when
	there's no srcset.

2022-07-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix srcset parsing in shr

	* lisp/net/shr.el (shr--preferred-image): Factor out srcset
	parsing for easier testing.
	(shr--parse-srcset): Don't misparse URLs with commas in them.

2022-07-22  Po Lu  <luangruo@yahoo.com>

	Improve efficiency of DND tooltip movement

	* src/xterm.c (x_dnd_begin_drag_and_drop): Clear new flag.
	(x_dnd_update_tooltip_position): Save last tooltip X and Y
	somewhere, so we don't move it upon client lists being updated.

2022-07-22  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	ae1ace1cf4 Adjust help-fns.el tests for recent change
	04bdcf4aaa * src/terminal.c (Fframe_terminal): Use active voice
	7fa491a9e9 Improve 'terminal-live-p' docstring some more
	b9ac8c29ae Improve terminal-live-p docstring
	0b4c81a152 * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): F...
	8f8373170f * lisp/progmodes/cperl-mode.el: Don't mention obsolete arc...
	25bc330a6d Make 'describe-function' say "byte-compiled" when appropriate
	2b31e667be ;Improve documentation of locale-specific string comparison

2022-07-22  Stefan Kangas  <stefankangas@gmail.com>

	Adjust help-fns.el tests for recent change

	* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun)
	(help-fns-test-lisp-defsubst): Adjust tests for recent change.

2022-07-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in error message in native-compile-prune-cache

	* lisp/emacs-lisp/comp.el (native-compile-prune-cache): Fix typo
	(bug#56713).

2022-07-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix spacing in *Help* buttons

	* lisp/help-mode.el (help-xref--navigation-buttons): Fix spacing
	before single [forward] button.

2022-07-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Give a better error message in native-compile-prune-cache

	* lisp/emacs-lisp/comp.el (native-compile-prune-cache): Give a
	better error message in non-nativecomp builds.

2022-07-22  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in 'handle_fontified_prop'

	* src/xdisp.c (handle_fontified_prop): Avoid assertion violations
	due to automatic narrowing.  (Bug#56682)

2022-07-22  Eli Zaretskii  <eliz@gnu.org>

	Fix display of scroll-bar in mini-windows

	* src/xdisp.c (set_vertical_scroll_bar): Ensure current_buffer is
	set correctly when displaying scroll bar of a mini-window.
	(Bug#56692)

2022-07-22  Robert Pluim  <rpluim@gmail.com>

	* src/terminal.c (Fframe_terminal): Use active voice

2022-07-22  Robert Pluim  <rpluim@gmail.com>

	Improve 'terminal-live-p' docstring some more

	* terminal.c (Fterminal_live_p): Improve description of arguments and
	return value.

2022-07-22  Po Lu  <luangruo@yahoo.com>

	Fix bug#56692 questionably

	* src/xdisp.c (set_vertical_scroll_bar): Don't recompute window
	end of a mini window.  (bug#56692)

2022-07-22  Gregory Heytings  <gregory@heytings.org>

	Improve font locking in buffers with long lines (bug#56682).

	* src/dispextern.h (struct it): New 'narrowed_zv' field.

	* src/xdisp.c (init_iterator): Set the field.
	(get_narrowed_zv): New function to set the field.
	(handle_fontified_prop): Use the field, together with 'narrowed_begv',
	to narrow the portion of the buffer that 'Vfontification_functions'
	will see.  Also bind 'inhibit-widen'.
	(get_narrowed_len): New function, factored out of 'get_narrowed_begv'.
	(unwind_narrowed_zv): New function.

	* src/editfns.c (syms_of_editfns): New variable and symbol 'inhibit-widen'.
	(Fwiden): Do nothing when 'inhibit-widen' is non-nil.

2022-07-22  Robert Pluim  <rpluim@gmail.com>

	Explain how to override Author with VC

	* CONTRIBUTE: Describe how to use Author header line and
	'log-edit-setup-add-author'.

2022-07-22  Robert Pluim  <rpluim@gmail.com>

	Improve terminal-live-p docstring

	* src/terminal.c (Fterminal_live_p): Explain what happens when the
	argument is nil.

2022-07-22  Robert Pluim  <rpluim@gmail.com>

	* lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): Fix grammar

2022-07-22  Po Lu  <luangruo@yahoo.com>

	Fix handling hscroll during drag-and-drop

	* lisp/x-dnd.el (x-dnd-hscroll-flags): Delete function.
	(x-dnd-get-modifiers, x-dnd-wheel-modifier-type): New functions.
	(x-dnd-mwheel-scroll): Use that to determine hscroll instead.
	* src/window.c (set_window_hscroll): Mark window as needing
	redisplay if the hscroll really changed.

2022-07-21  Po Lu  <luangruo@yahoo.com>

	Fix posn-timestamp of scroll bar events on GTK

	* src/xterm.c (x_get_last_toolkit_time): New function.
	(x_scroll_bar_to_input_event)
	(x_horizontal_scroll_bar_to_input_event): Use it to retrieve
	toolkit time.
	(xg_scroll_callback, xg_end_scroll_callback): Set last user time
	if possible.

2022-07-21  João Távora  <joaotavora@gmail.com>

	Always default eglot-strict-mode to nil

	it's mostly useful for developers/debugger.  It's better to have the
	latter remember to set it than users being hindered by it.

	See https://github.com/joaotavora/eglot/issues/131#issuecomment-1191997167

	* eglot.el (eglot-strict-mode): default to nil.

2022-07-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/help-mode.el (help-news): Use `view-file`

	* lisp/vc/vc-dispatcher.el (vc-log-edit): Un-quote the lambda

	* lisp/progmodes/verilog-mode.el (verilog-surelint-off): Silence warning

2022-07-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	(compilation-parse-errors-function): Remove obsolete var

	* lisp/progmodes/compile.el (compilation-parse-errors-function): Remove.
	(compilation--parse-region): Simplify accordingly.
	(compilation--compat-parse-errors): Remove function, not used any more.
	(compilation-error-list, compilation-parsing-end)
	(compilation-old-error-list): Remove vars, not used any more.
	(compilation-last-buffer): Mark as obsolete (sadly, forgot to do that
	back in Emacs-22).

	* lisp/textmodes/tex-mode.el: Remove old code that was needed for
	Emacs<24.

	* lisp/progmodes/prolog.el (prolog-consult-compile): Remove long-dead code.
	(compilation-parse-errors-function): Remove declaration, not used any more.
	(prolog-parse-sicstus-compilation-errors): Remove function, not used any more.

2022-07-21  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Don't end messages with "."

	* lisp/image-dired.el (image-dired-toggle-dired-display-properties)
	(image-dired--on-file-in-dired-buffer)
	(image-dired-thumbnail-set-image-description)
	(image-dired-mark-tagged-files)
	(image-dired-dired-edit-comment-and-tags)
	(image-dired-modify-mark-on-thumb-original-file): Don't end messages
	with "." to better comply with '(elisp) Programming Tips'.

2022-07-21  Eli Zaretskii  <eliz@gnu.org>

	Fix reference to 'x-max-tooltip-size' in complete.el

	* lisp/cedet/semantic/complete.el: Don't assume that
	x-max-tooltip-size is a cons cell.

2022-07-21  Gregory Heytings  <gregory@heytings.org>

	Merge branch 'feature/fix-the-long-lines-display-bug'

2022-07-21  Eli Zaretskii  <eliz@gnu.org>

	Update buffer's chars-modified tick when inserting from gap

	* src/insdel.c (insert_from_gap): Update buffer's chars-modified
	tick.  (Bug#56393)

	* test/src/buffer-tests.el (test-buffer-chars-modified-ticks): New
	test.

2022-07-21  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/progmodes/cperl-mode.el: Don't mention obsolete archive.

2022-07-21  Po Lu  <luangruo@yahoo.com>

	Apply tooltip assertions to all instances of x-show-tip

	* src/haikufns.c (Fx_show_tip):
	(syms_of_haikufns):
	* src/nsfns.m (Fx_show_tip):
	(syms_of_nsfns):
	* src/pgtkfns.c (Fx_show_tip):
	(syms_of_pgtkfns):
	* src/xfns.c (Fx_show_tip):
	(syms_of_xfns): Add assertion and adjust default values.

2022-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Minor doc fix in search-forward-help-for-help

	* lisp/help.el (search-forward-help-for-help): Use command
	substitution.

2022-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Make bs-help obsolete in favor of describe-mode

	* lisp/bs.el (bs-help): Make obsolete in favor of describe-mode.
	Update uses.

2022-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Make dictionary-help obsolete in favor of describe-mode

	* lisp/net/dictionary.el (dictionary-help): Make obsolete in favor
	of describe-mode.  Update uses.

2022-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Don't list obsolete in "other commands" help section

	* lisp/help-fns.el (help-fns--list-local-commands): Don't list
	obsolete commands.

2022-07-21  Eli Zaretskii  <eliz@gnu.org>

	Make 'describe-function' say "byte-compiled" when appropriate

	* lisp/help-fns.el (help-fns-function-description-header): Say
	"byte-compiled" when describing byte-compiled functions.

2022-07-21  Eli Zaretskii  <eliz@gnu.org>

	Make sure we don't unknowingly truncate tooltip text

	* src/w32fns.c (Fx_show_tip): Add assertion when the default
	tooltip dimension limits are insufficient.  (Bug#56561)

2022-07-21  Po Lu  <luangruo@yahoo.com>

	Avoid wasting bandwidth to set user time

	* src/xterm.c (x_display_set_last_user_time): Don't change the
	user time property if nothing actually changed.

2022-07-21  Eli Zaretskii  <eliz@gnu.org>

	;Improve documentation of locale-specific string comparison

	* doc/lispref/strings.texi (Text Comparison): Mention the Unicode
	collation rules and buffer-local case-tables.

2022-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Make bubbles-quit obsolete in favor of quit-window

	* lisp/play/bubbles.el (bubbles-quit): Make obsolete in favor of
	quit-window.  Update uses.

2022-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Remove superfluous installation instructions

	These functions are already autoloaded.
	* lisp/mail/mspools.el:
	* lisp/progmodes/opascal.el:
	* lisp/textmodes/remember.el:
	* lisp/woman.el: Remove superfluous installation instructions.

2022-07-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	ea44d7ddfc ; * lisp/mail/smtpmail.el (smtpmail-via-smtp): Explain with...

2022-07-20  Po Lu  <luangruo@yahoo.com>

	Improve handling screen resizes when built without RandR

	* src/xterm.c (handle_one_xevent): Update DND tooltip position
	upon ConfigureNotify for root window.

2022-07-20  Po Lu  <luangruo@yahoo.com>

	Revert "Prefer defvar-keymap in xwidget.el"

	This reverts commit daf2c3e23a45bff14f9d444d2d07455376d4b6da.

2022-07-20  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in xwidget.el

	* lisp/xwidget.el (xwidget-webkit-mode-map)
	(xwidget-webkit-edit-mode-map): Prefer defvar-keymap.

2022-07-20  Gregory Heytings  <gregory@heytings.org>

	* src/xdisp.c (redisplay_window): Small optimization.

2022-07-20  Gregory Heytings  <gregory@heytings.org>

	Further tweaks to long lines handling.

	* src/xdisp.c (redisplay_window): Increase the threshold above which
	long lines detection is performed in the buffer.  This should avoid
	triggering that detection for most simple editing operations.

	* src/lisp.h (modiff_incr): Explain why the counter is incremented
	logarithmically.

	* src/buffer.h (struct buffer_text): Adapt the comment about the
	'modiff' field accordingly.

	* src/buffer.c (modify_overlay): Increase the counter by 1 instead of
	the size of the buffer section on which the overlay is placed.

	* etc/NEWS: Small improvement.

2022-07-20  Po Lu  <luangruo@yahoo.com>

	Fix mouse wheel DND scroll direction on Haiku

	* lisp/term/haiku-win.el (haiku-handle-drag-wheel): Record the
	last wheel direction.  If it differs, clear the click counter.

2022-07-20  Eli Zaretskii  <eliz@gnu.org>

	Fix error during startup in -nw sessions

	* lisp/startup.el (normal-top-level, command-line-1): Don't mess
	with fonts in a text-mode session.  (Bug#56660)

2022-07-20  Mattias Engdegård  <mattiase@acm.org>

	Gently discourage use of `lsh` (bug#56641)

	* lisp/subr.el (lsh): Note the general preference for `ash`.
	* lisp/emacs-lisp/shortdoc.el (number): Remove entry for `lsh`.
	It was identical to that for `ash` which is misleading.
	Shortdoc is very helpful for finding the right function to use,
	and `lsh` is just for compatibility at this point.

2022-07-20  Po Lu  <luangruo@yahoo.com>

	Fix calculation of default highlightForeground in the lucid menu bar

	* lwlib/xlwmenu.c (xlwMenuResources, display_menu_item)
	(make_drawing_gcs, make_shadow_gcs, openXftFont, XlwMenuRealize)
	(XlwMenuSetValues): Use -1 as the default for
	highlight_foreground.  Replace that with the normal foreground
	when creating GCs.  Reported by Colin Baxter
	<m43cap@yandex.com>.

2022-07-20  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	cb911febc6 ; Fix typos

	# Conflicts:
	#	test/lisp/net/tramp-tests.el

2022-07-20  Po Lu  <luangruo@yahoo.com>

	Implement wheel movement during DND on Haiku

	* lisp/term/haiku-win.el (haiku-dnd-wheel-count): New defvar.
	(haiku-note-wheel-click, haiku-handle-drag-wheel): New
	functions.

	* src/haiku_support.cc (EmacsWindow): Get rid of window ID
	logic.
	(MessageReceived, MouseMoved, be_drag_message): Use thread ID to
	identify windows instead of window ID.

	* src/haikuselect.c (Fhaiku_drag_message): Record whether or not
	the DND frame is a valid drop target.
	(haiku_note_drag_wheel): New function.
	(syms_of_haikuselect): New defvar.

	* src/haikuterm.c (haiku_read_socket): Call
	`haiku_note_drag_wheel' when appropriate.
	* src/haikuterm.h: Update prototypes.

2022-07-20  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in some trivial cases

	* lisp/calendar/diary-lib.el (diary-fancy-overriding-map):
	* lisp/emacs-lisp/chart.el (chart-mode-map):
	* lisp/emulation/cua-base.el (cua-global-keymap)
	(cua--cua-keys-keymap, cua--prefix-override-keymap)
	(cua--prefix-repeat-keymap, cua--global-mark-keymap)
	(cua--rectangle-keymap, cua--region-keymap):
	* lisp/emulation/viper-keym.el (viper-vi-intercept-map)
	(viper-insert-intercept-map, viper-emacs-intercept-map)
	(viper-vi-global-user-map, viper-vi-basic-map, viper-vi-kbd-map)
	(viper-vi-diehard-map, viper-insert-global-user-map)
	(viper-insert-basic-map, viper-insert-diehard-map)
	(viper-insert-kbd-map, viper-replace-map)
	(viper-emacs-global-user-map, viper-emacs-kbd-map)
	(viper-empty-keymap, viper-mode-map, viper-minibuffer-map)
	(viper-ex-cmd-map, ex-read-filename-map)
	(viper-slash-and-colon-map, viper-comint-mode-modifier-map)
	(viper-dired-modifier-map, viper-gnus-modifier-map):
	* lisp/gnus/gnus-sum.el (gnus-summary-generic-mark-map):
	* lisp/menu-bar.el (global-buffers-menu-map)
	(menu-bar-preferences-menu):
	* lisp/mh-e/mh-e.el (mh-folder-mode-map, mh-inc-spool-map)
	(mh-search-mode-map, mh-show-mode-map):
	* lisp/play/dunnet.el (dungeon-batch-map):
	* lisp/progmodes/autoconf.el (autoconf-mode-map):
	* lisp/tool-bar.el (tool-bar-map):
	* lisp/vc/ediff-help.el (ediff-help-region-map):
	* lisp/vc/ediff-hook.el (menu-bar-epatch-menu)
	(menu-bar-ediff-merge-menu, menu-bar-ediff-menu):
	* lisp/windmove.el (windmove-mode-map):
	* lisp/xwidget.el (xwidget-webkit-isearch-mode-map)
	(xwidget-webkit-edit-mode-map): Prefer defvar-keymap.

2022-07-19  Po Lu  <luangruo@yahoo.com>

	Fix setting user time upon scrolling self during DND

	* src/xterm.c (handle_one_xevent): Set user time for emulated
	scroll wheel events if Emacs ends up scrolled during DND.

2022-07-19  João Távora  <joaotavora@gmail.com>

	Make eldoc-echo-area-prefer-doc-buffer consider all frames

	Previously, it considered only windows on 'visible' frames (according
	to get-buffer-window).  This seemed correct at first, but it's not
	much use for multiple TTY frames and not particularly reliable on GUI
	frames either.  There's no reliable way to tell what is actually
	visible, so it's best to assume that users setup frames that are
	indeed visible when using this parameter.

	* lisp/emacs-lisp/eldoc.el (eldoc--echo-area-prefer-doc-buffer-p):
	Consider all frames.

2022-07-19  João Távora  <joaotavora@gmail.com>

	Ensure Eldoc buffer displays on interactive M-x eldoc

	* lisp/emacs-lisp/eldoc.el (eldoc-display-in-buffer): Call
	eldoc-doc-buffer with interactive set to t.
	(Version): Bump to 1.13.0.

2022-07-19  Gregory Heytings  <gregory@heytings.org>

	Simplified and improved heuristic for long lines detection.

	* src/lisp.h (modiff_incr): Add a parameter to 'modiff_incr' to record
	the extent of the modification.

	* src/insdel.c (insert_1_both, insert_from_string_1, insert_from_gap,
	insert_from_buffer_1, adjust_after_replace, replace_range,
	replace_range_2, del_range_2, modify_text): Add an argument to each
	call to 'modiff_incr'.

	* src/textprop.c (modify_text_properties): Add an argument to the call
	to 'modiff_incr'.

	* src/buffer.c (Frestore_buffer_modified_p, Fbuffer_swap_text,
	modify_overlay): Add an argument to each call to 'modiff_incr'.

	* src/xdisp.c (redisplay_window): Use the improved version of 'MODIFF'
	for the heuristic.

2022-07-19  Gregory Heytings  <gregory@heytings.org>

	Revert commits 1ff69cc744 and 9a894206f6.

2022-07-19  João Távora  <joaotavora@gmail.com>

	Fix embarrassing paren-matching blunder in eglot.el

	* eglot.el (eglot-handle-request workspace/applyEdit): Fix parens.

2022-07-19  João Távora  <joaotavora@gmail.com>

	Reply more reasonably to server's workspace/applyedit

	* eglot.el (eglot-handle-request): Return non-nil
	(eglot--apply-workspace-edit): Signal jsonrpc-error, not error.

2022-07-19  João Távora  <joaotavora@gmail.com>

	Appease byte-compiler warnings about wrong use of quotes

	* eglot.el (eglot-stay-out-of, eglot--code-action): Just give it
	what it wants.

2022-07-19  João Távora  <joaotavora@gmail.com>

	Eglot-workspace-configuration can be a function

	* README.md (Workspace configuration): Renamed from per-project
	configuration.  Rework.

	* NEWS.md: Mention change.

	* eglot.el (eglot-workspace-configuration): Overhaul.
	(eglot-signal-didChangeConfiguration): Use new
	eglot-workspace-configuration.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/967

2022-07-19  Philip Kaludercic  <philipk@posteo.net>

	* eudc.texi: Unquote setopt option names

2022-07-19  Gregory Heytings  <gregory@heytings.org>

	Improve the heuristic for long lines detection again.

	* src/xdisp.c (redisplay_window): Improve the heuristic again.

2022-07-19  Mattias Engdegård  <mattiase@acm.org>

	Use `ash` instead of `lsh`

	* lisp/files.el (file-modes-number-to-symbolic):
	* lisp/image/exif.el (exif--direct-ascii-value):
	* lisp/term/haiku-win.el (defun):
	* lisp/x-dnd.el (x-dnd-handle-xdnd, x-dnd-handle-motif):
	`lsh` is slower and has confusing semantics; avoid.

2022-07-19  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in bindings.el

	* lisp/bindings.el (narrow-map, undo-repeat-map)
	(next-error-repeat-map, goto-map, search-map, ctl-x-r-map)
	(page-navigation-repeat-map, abbrev-map, ctl-x-x-map): Prefer
	defvar-keymap.
	(mode-specific-map): Minor doc fix.

2022-07-19  Mattias Engdegård  <mattiase@acm.org>

	Speed up `butlast`

	* lisp/subr.el (butlast): Don't duplicate the removed part.
	* test/lisp/subr-tests.el (subr-tests--butlast-ref, subr-butlast):
	Add test.

2022-07-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	282dde887d ; Fix typo missed in previous change
	62c47ffd5f ; * lisp/net/tramp-crypt.el: Improve commentary
	cba30431ff Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/e...
	8f9993bb3f ; * src/buffer.c (syms_of_buffer) <mode-line-format>: Doc ...
	fec4bb89f9 ; Fix typos (Bug#56550)

2022-07-18  Po Lu  <luangruo@yahoo.com>

	Document workaround for bug#56627

	* etc/PROBLEMS: Document problems with GTK tool bar icons on
	some icon themes.  (bug#56627)

2022-07-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	(help-fns--first-release): Try and avoid false positives

	We used to use a very "optimistic" regexp which worked well for
	longish symbol names but suffered from too many false positives on
	short names.  Use a more restrictive regexp, which should make the
	recent "weed out" change unnecessary.

	This in turn requires the use of '...' more consistently in etc/NEWS* files.

	* lisp/help-fns.el (help-fns--first-release-regexp): New function.
	(help-fns--first-release): Use it.  Fix minor issue with the Emacs
	version regexp.
	(help-fns--mention-first-release): Undo last change.

	* etc/NEWS*: Replace `...' with '...'.  Indent code examples by at
	least 2 spaces. Add previously missing '...' quotes around many of
	the variables and functions described.

2022-07-18  Po Lu  <luangruo@yahoo.com>

	Fix timestamp specified in wheel movement XDND events

	* src/xterm.c (handle_one_xevent): Use the time of the wheel
	event in XDND events sent in response to wheel movement.

2022-07-18  Po Lu  <luangruo@yahoo.com>

	Make drag-and-drop wheel movement work locally too on X

	This is provided by the XDND protocol, so it isn't fair for it
	to not work with local drag-and-drop.

	* lisp/x-dnd.el (x-dnd-note-wheel-movement): New function.  Set
	it as the `x-dnd-wheel-function'.
	* src/xterm.c (x_dnd_cleanup_drag_and_drop): Clear new flags.
	(x_dnd_note_self_wheel): New function.  Set some flags.
	(x_dnd_process_quit, x_dnd_begin_drag_and_drop, handle_one_xevent)
	(x_connection_closed, x_delete_terminal, mark_xterm): Handle and
	set new wheel movement flags
	(syms_of_xterm): New variable `x-dnd-wheel-function'.

2022-07-18  Eli Zaretskii  <eliz@gnu.org>

	* src/xdisp.c (set_vertical_scroll_bar): Remove stale comment.

2022-07-18  Eli Zaretskii  <eliz@gnu.org>

	Fix calculation of the vertical scroll bar's thumb

	* src/xdisp.c (set_vertical_scroll_bar): Compute window's end
	position "by hand" if w->window_end_pos cannot be relied upon.

2022-07-18  Gregory Heytings  <gregory@heytings.org>

	* etc/PROBLEMS: Remove the entry which is no longer relevant.

2022-07-18  Michael Albinus  <michael.albinus@gmx.de>

	Use ntake also in tramp-adb.el

	* lisp/net/tramp-adb.el (tramp-adb-handle-directory-files-and-attributes):
	Use `tramp-compat-ntake'.

2022-07-18  Alexander Adolf  <alexander.adolf@condition-alpha.com>

	Additional query and results attributes in eudcb-macos-contacts.el

	* lisp/net/eudcb-macos-contacts.el: wider set of attributes for
	queries, and in query results
	* lisp/net/eudc-vars.el (eudc-inline-expansion-format): update
	docstring to explain how to use the function eudc-translate-query to
	translate to generic attribute names in the user supplied formatting
	function
	* etc/NEWS: announce wider query/result attribute set
	* doc/misc/eudc.texi: more details on eudcb-mab.el's limitations

2022-07-18  Gregory Heytings  <gregory@heytings.org>

	Improve the heuristic for long lines detection.

	* src/buffer.h (struct buffer_text): New 'unchanged_size' field.
	(BUF_UNCHANGED_SIZE): New macro to access the field.

	* src/buffer.c (Fget_buffer_create): Initialize the field.
	(Fbuffer_swap_text): Handle it.

	* src/xdisp.c (mark_window_display_accurate_1): Set the field.
	(redisplay_window): Use the field for long lines detection.

2022-07-18  Gregory Heytings  <gregory@heytings.org>

	Shorter and safer fix for the segfault.

	* src/xdisp.c (get_visually_first_element): Shorter and safer fix for
	the segfault.  Improves the fix introduced in cc7f37b2a4.

2022-07-18  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp new test macros

	* test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat)
	(tramp--test-deftest-with-perl, tramp--test-deftest-with-ls):
	Skip for all methods but those from tramp-sh.el.

2022-07-18  Michael Albinus  <michael.albinus@gmx.de>

	Use ntake in Tramp

	* lisp/net/tramp-compat.el (tramp-compat-ntake): New defalias.

	* lisp/net/tramp.el (tramp-handle-directory-files):
	* lisp/net/tramp-crypt.el (tramp-crypt-handle-directory-files):
	* lisp/net/tramp-sh.el (tramp-sh-handle-directory-files-and-attributes):
	* lisp/net/tramp-smb.el (tramp-smb-handle-directory-files): Use it.

2022-07-18  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/rect.el (rectangle-mark-mode-map): Prefer defvar-keymap.

2022-07-18  Gregory Heytings  <gregory@heytings.org>

	Fix typo in NEWS title.

2022-07-18  Mattias Engdegård  <mattiase@acm.org>

	Clarify `take` and `ntake` documentation (bug#56521)

	* doc/lispref/lists.texi (List Elements): Describe `ntake` better.
	* src/fns.c (Ftake, Fntake): Rephrase doc strings.

2022-07-18  Mattias Engdegård  <mattiase@acm.org>

	Speed up `seq-subseq` for lists (bug#56521)

	* lisp/emacs-lisp/seq.el (seq-subseq):
	Make faster by using `take` instead of a lisp loop,
	and more importantly by not front-loading the error text formatting.
	* test/lisp/emacs-lisp/seq-tests.el (seq-tests--list-subseq-ref)
	(test-seq-subseq): Test `seq-subseq` for lists more thoroughly.

2022-07-18  Mattias Engdegård  <mattiase@acm.org>

	Use `take` where clearly safe to do so (bug#56521)

	* lisp/emacs-lisp/seq.el (seq-take):
	* lisp/auth-source.el (auth-source-secrets-search)
	(auth-source-plstore-search):
	* lisp/gnus/message.el (message-insert-formatted-citation-line):
	* lisp/net/dbus.el (dbus-unregister-object):
	* lisp/replace.el (occur-context-lines):
	* test/src/print-tests.el (print-circular): Replace hand-written loop
	or `butlast` call with `take` for clarity, performance and validation.
	We have the equivalence
	(take N LIST) = (butlast LIST (- (length LIST) N)).

2022-07-18  Gregory Heytings  <gregory@heytings.org>

	Further improvements to long lines handling.

	* src/xdisp.c (get_visually_first_element): Fix segfault.
	(get_narrowed_begv): Specific improvement for character-only terminals.

2022-07-18  Juri Linkov  <juri@linkov.net>

	* lisp/minibuffer.el (minibuffer-complete-history): Define sorting by metadata

	(minibuffer-complete-history, minibuffer-complete-defaults):
	Use completion metadata to disable sorting of the completion table
	(bug#56613)

2022-07-18  Po Lu  <luangruo@yahoo.com>

	Implement last change on Haiku as well

	* lisp/term/haiku-win.el (haiku-dnd-drag-handler): Stop
	redisplaying here.
	* src/haikuselect.c (haiku_note_drag_motion): Use
	redisplay_preserve_echo_area.

2022-07-18  Po Lu  <luangruo@yahoo.com>

	Preserve echo area message when running DND mouse movement function

	* lisp/term/x-win.el (x-dnd-movement): Stop redisplaying here.
	* src/xterm.c (x_dnd_begin_drag_and_drop): Redisplay with the
	echo area preserved.

2022-07-17  Richard Hansen  <rhansen@rhansen.org>

	Derive `Info-mode' from `special-mode'

	* lisp/info.el (Info-mode): Derive `Info-mode' from `special-mode'.
	This makes it easier to exclude it from globalized minor modes that
	don't apply to special modes (such as `global-whitespace-mode' and
	`global-display-fill-column-indicator-mode').

2022-07-17  Richard Hansen  <rhansen@rhansen.org>

	info-edit: Delay `ibuffer' var change until after `ibuffer' loads

	* lisp/obsolete/info-edit.el: Delay the addition of `Info-edit-mode'
	to the `ibuffer-help-buffer-modes' list until after `ibuffer' is
	loaded.  This fixes a "(void-variable ibuffer-help-buffer-modes)"
	error when `info-edit' is loaded before `ibuffer'.

2022-07-17  Po Lu  <luangruo@yahoo.com>

	Handle virtual modifiers in the DND scrolling code

	* lisp/x-dnd.el (x-dnd-modifier-mask): Handle virtual modifiers.
	* src/xfns.c (Fx_get_modifier_masks): New function.
	(syms_of_xfns): Define new subr.
	* src/xterm.c (x_get_keyboard_modifiers): New function.
	* src/xterm.h: Update prototypes.

2022-07-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/minibuffer.el (minibuffer-complete-history): Ensure a list of strings

2022-07-17  Juri Linkov  <juri@linkov.net>

	* lisp/subr.el (read-char-from-minibuffer, y-or-n-p): Simplify to use HIST=t.

2022-07-17  Juri Linkov  <juri@linkov.net>

	* lisp/minibuffer.el (minibuffer-complete-history): Check for history=t.

	Signal a user error when the history is not a list (bug#56613).

2022-07-17  Mattias Engdegård  <mattiase@acm.org>

	Add `take` and `ntake` (bug#56521)

	These are useful list primitives, complementary to `nthcdr`.

	* src/fns.c (Ftake, Fntake): New.
	(syms_of_fns): Defsubr them.
	* doc/lispref/lists.texi (List Elements):
	* lisp/emacs-lisp/shortdoc.el (list): Document.
	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns):
	Declare `take` pure and side-effect-free.
	* test/src/fns-tests.el (fns-tests--take-ref, fns--take-ntake):
	New test.
	* etc/NEWS: Announce.

2022-07-17  Eli Zaretskii  <eliz@gnu.org>

	Fix leaking of file descriptors due to pipe processes on MS-Windows

	* src/w32proc.c (reader_thread): Wait for 'sys_close' to finish
	processing the pipe read descriptor, before trying to close it.

	* src/w32.c (sys_close): Attempt to detect when the reader thread
	already exited, so that it would be possible to close descriptors
	open by pipe processes for reading from the pipe.  (Bug#56606)

2022-07-17  Po Lu  <luangruo@yahoo.com>

	Improve handling of tilt scroll and flip options during DND

	* lisp/x-dnd.el (x-dnd-mwheel-scroll): New function.
	(x-dnd-handle-xdnd): Use that instead of abusing mwheel.el.

2022-07-17  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in mpc.el

	* lisp/mpc.el (mpc-mode-map, mpc-tagbrowser-dir-mode-map)
	(mpc-volume-map, mpc-songs-mode-map): Prefer defvar-keymap.

2022-07-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C' in over tramp work in archive mode

	* lisp/arc-mode.el (archive-copy-file): Make `C' in over tramp
	work (bug#56574).

2022-07-17  Eli Zaretskii  <eliz@gnu.org>

	Fix tab-bar resizing under 'auto-resize-tab-bars' = 'grow-only'

	* src/xdisp.c (redisplay_tab_bar): Compute the desired height of
	the tab-bar before iterating over the tab-bar string, to detect
	the required resizing earlier.  Default 'change_p' to 'false'.

	* lisp/tab-bar.el (tab-bar--update-tab-bar-lines): Support
	'auto-resize-tab-bars' set to 'grow-only'.

2022-07-17  Visuwesh  <visuweshm@gmail.com>

	Ensure that directories exist when copying files from archive

	* lisp/arc-mode.el (archive-copy-file): If the directory the file is
	being extracted to does not exist, then create it (bug#56603).

2022-07-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve error messaging when parent archive buffers are missing

	* lisp/arc-mode.el (archive-write-file-member):
	* lisp/tar-mode.el (tar-subfile-save-buffer): Give a better error
	message when the parent buffer is dead (bug#56605).

2022-07-17  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f5218385c0 Fix obsoletion of nntp-authinfo-file
	10b6919870 ; Fix typos

2022-07-16  Po Lu  <luangruo@yahoo.com>

	Handle scrolling during XDND drag-and-drop

	* lisp/x-dnd.el (x-dnd-get-object-rectangle): Handle cases where
	`posn-x-y' is nil.
	(x-dnd-modifier-mask, x-dnd-hscroll-flags, x-dnd-note-click):
	New functions.
	(x-dnd-click-count): New defvar.
	(x-dnd-handle-xdnd): Handle button press events.

	* src/xterm.c (x_dnd_send_position): Fix handling of mouse
	rects.

2022-07-16  Po Lu  <luangruo@yahoo.com>

	Fix drag-and-drop button button flags

	* src/xterm.c (x_dnd_send_position): Always send buttons
	regardless of version.  Fix bit indices.
	(handle_one_xevent): Likewise.

2022-07-16  Gregory Heytings  <gregory@heytings.org>

	Fix typo in e7b5912b23.

2022-07-16  Gregory Heytings  <gregory@heytings.org>

	Improvements to long lines handling.

	* src/buffer.h (struct buffer): New field 'long_line_optimizations_p'.

	* src/buffer.c (syms_of_buffer): New variable 'long-line-threshold'.
	(reset_buffer): Initialize the 'long_line_optimizations_p' field.
	(Fbuffer_swap_text): Handle it.

	* src/xdisp.c (redisplay_window): Set 'long_line_optimizations_p' when
	a buffer contains long lines.
	(init_iterator): Use 'long_line_optimizations_p'.
	(get_narrowed_begv): Update.
	(SET_WITH_NARROWED_BEGV): New macro.
	(unwind_narrowed_begv): New internal function used by the new macro.
	(back_to_previous_line_start, get_visually_first_element,
	move_it_vertically_backward): Use the new macro.

	* src/search.c (find_newline1): Make it externally visible.

	* src/lisp.h: Make 'find_newline1' externally visible.

	* src/dispextern.h (struct it): Update comment.  Remove the
	'WITH_NARROWED_BEGV' macro.

	* etc/NEWS: Mention the 'long-line-threshold' variable.

2022-07-16  kobarity  <kobarity@gmail.com>

	Fix python navigation problem with an empty line in nested defun

	* lisp/progmodes/python.el (python-nav--beginning-of-defun): Fix
	bug when point is on an empty line (bug#56600).

2022-07-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix xref links in `C-h o'

	* lisp/help-fns.el (describe-symbol): Make xref links happen in
	all sections (bug#49587).

	* lisp/help-fns.el (describe-symbol): Add back/forward links.

	* lisp/help-mode.el (help-make-xrefs): Factor out links from
	here...
	(help-xref--navigation-buttons): To here.

2022-07-16  Stefan Kangas  <stefankangas@gmail.com>

	New test for make_symbol_constant

	* test/src/data-tests.el (data-tests-make_symbol_constant): New
	test.

2022-07-16  Eli Zaretskii  <eliz@gnu.org>

	* src/composite.c (find_automatic_composition): Fix off-by-one error.

2022-07-16  Po Lu  <luangruo@yahoo.com>

	Improve documentation of `posn-timestamp'

	* doc/lispref/commands.texi (Accessing Mouse): Improve
	documentation of `posn-timestamp' by actually describing the
	timestamp it returns.

2022-07-16  Mattias Engdegård  <mattiase@acm.org>

	Update `eshell-variable-aliases-list` defcustom type

	* lisp/eshell/esh-var.el (eshell-variable-aliases-list):
	Add type for SIMPLE-FUNCTION value.

2022-07-16  Michael Albinus  <michael.albinus@gmx.de>

	Comment docstrings in tramp-test macros

	* test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat)
	(tramp--test-deftest-with-perl, tramp--test-deftest-with-ls)
	(tramp--test-deftest-direct-async-process): Comment docstring,
	it doesn't work this way.  Use `tramp-test-vec' if appropriate.

2022-07-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Weed out some false positives in help-fns--mention-first-release

	* lisp/help-fns.el (help-fns--mention-first-release): Weed out
	things that give too many false positives (bug#49062).

2022-07-16  Manuel Giraud  <manuel@ledu-giraud.fr>

	Colored menu highlight in Lucid backend

	* lwlib/xlwmenuP.h:
	* lwlib/xlwmenu.h:
	* lwlib/xlwmenu.c: Introduce resources to handle colored highlighting
	of menu entries.
	* doc/emacs/xresources.texi (Lucid Resources): Documentation.

2022-07-16  Po Lu  <luangruo@yahoo.com>

	Decrease network traffic with some XDND programs

	* lisp/x-dnd.el (x-dnd-get-drop-width-height):
	(x-dnd-get-drop-x-y): Remove functions.

	(x-dnd-get-window-rectangle, x-dnd-intersect-rectangles)
	(x-dnd-get-object-rectangle, x-dnd-get-drop-rectangle): New
	functions.
	(x-dnd-handle-xdnd): Generate mouse rectangles consisting of the
	object (glyph) under point.

2022-07-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow ;;;###autoloading transient-define-prefix

	* lisp/emacs-lisp/loaddefs-gen.el
	(loaddefs-generate--make-autoload): Allow ;;;###autoloading
	transient-define-prefix (bug#48694).

	* lisp/transient.el (transient-define-prefix): Autoload.

2022-07-16  Mattias Engdegård  <mattiase@acm.org>

	Optimize `append` calls

	Add the transforms

	  (append) -> nil
	  (append X) -> X
	  (append '(X) Y) -> (cons 'X Y)
	  (append (list X) Y) -> (cons X Y)
	  (append (list X...) nil) -> (list X...)

	and the argument transforms:

	  (list X...) (list Y...) -> (list X... Y...)
	  nil -> ;nothing
	  CONST1 CONST2 -> CONST1++CONST2
	  (list CONSTANTS...) -> '(CONSTANTS...)

	(the last three for non-tail arguments only)

	* lisp/emacs-lisp/byte-opt.el: New.

2022-07-16  Mattias Engdegård  <mattiase@acm.org>

	Improved cons optimization

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-cons):
	Add the transform

	 (cons X (list Y...)) -> (list X Y...)

2022-07-16  Mattias Engdegård  <mattiase@acm.org>

	Transform (list) -> nil in source optimizer

	This optimization is already done in the code generator but performing
	it at this earlier stage is a useful normalizing step that uncovers
	more opportunities.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-list): New.

2022-07-16  Stefan Kangas  <stefankangas@gmail.com>

	Delete obsolete variable gnus-secondary-servers

	* lisp/gnus/gnus.el (gnus-secondary-servers): Delete variable
	obsolete since 24.1.
	* lisp/gnus/gnus-group.el (gnus-group-browse-foreign-server):
	* lisp/gnus/gnus-int.el (gnus-start-news-server): Don't use above
	deleted variable.

2022-07-16  Stefan Kangas  <stefankangas@gmail.com>

	Fix obsoletion of nntp-authinfo-file

	* lisp/gnus/nntp.el (nntp-authinfo-file): Fix obsoletion.

2022-07-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	db259d8fd3 Build Seccomp filter only if we have a 64-bit userspace (B...

2022-07-15  Po Lu  <luangruo@yahoo.com>

	Handle XDND mouse rects synchronously

	* src/xterm.c (x_dnd_send_position): Record event X and Y for
	consumption by the XdndStatus handler.  Ignore mouse rects if
	waiting for status.
	(x_dnd_send_leave): Clear pending DND event.
	(handle_one_xevent): When handling XdndStatus, check if the
	pending event is contained in the new mouse rect.

2022-07-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/url/url-vars.el (url-mime-separator-chars): Fix last cosmetic change

2022-07-15  Michael Albinus  <michael.albinus@gmx.de>

	Extend tramp-tests

	* test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat)
	(tramp--test-deftest-with-perl, tramp--test-deftest-with-ls):
	New defmacros.
	(tramp-test18-file-attributes-with-stat)
	(tramp-test18-file-attributes-with-perl)
	(tramp-test18-file-attributes-with-ls)
	(tramp-test19-directory-files-and-attributes-with-stat)
	(tramp-test19-directory-files-and-attributes-with-perl)
	(tramp-test19-directory-files-and-attributes-with-ls): New tests.
	(tramp-test21-file-links): Delete also `tmp-name2'.
	(tramp--test-deftest-direct-async-process): Rename from
	`tramp--test--deftest-direct-async-process'.  Remove DOCSTRING.
	Adapt callees.
	(tramp--test-special-characters): Remove.  Move body to ...
	(tramp-test41-special-characters): ... here.
	(tramp--test-utf8): Remove.  Move body to ...
	(tramp-test42-utf8): ... here.
	(tramp-test41-special-characters-with-stat)
	(tramp-test41-special-characters-with-perl)
	(tramp-test41-special-characters-with-ls)
	(tramp-test42-utf8-with-stat)
	(tramp-test42-utf8-with-perl)
	(tramp-test42-utf8-with-ls): Rewrite, using the new macros.

2022-07-15  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/tar-mode.el (tar-mode-map): Prefer defvar-keymap.

2022-07-15  Philipp Stephani  <phst@google.com>

	Build Seccomp filter only if we have a 64-bit userspace (Bug#56549)

	* configure.ac (SIZEOF_LONG): New variable.
	* lib-src/Makefile.in (SIZEOF_LONG): New variable; added conditional.

2022-07-15  Andreas Schwab  <schwab@linux-m68k.org>

	Fix ASAN error with fringe bitmap on NS

	* src/nsterm.m (ns_define_fringe_bitmap): Correctly access fringe
	bitmap data.  (Bug#56553)

2022-07-15  Po Lu  <luangruo@yahoo.com>

	Fix double unfocus during NS cursor display

	* src/nsterm.m (ns_draw_window_cursor): Unfocus around calls to
	draw_phys_cursor_glyph, then focus again later.  (bug#56559)

2022-07-15  Po Lu  <luangruo@yahoo.com>

	Only preserve PRIMARY and CLIPBOARD selection ownership by default

	* lisp/cus-start.el (standard): Update defcustom type.
	* src/xselect.c (x_should_preserve_selection): New function.
	(x_clear_frame_selections): Use it to determine whether or not
	to preserve a selection.
	* src/xterm.c (x_preserve_selections): Fix tail initialization.
	(syms_of_xterm): Update doc string of
	`x-auto-preserve-selections'.

2022-07-15  João Távora  <joaotavora@gmail.com>

	Be more conservative with the lsp identifier guess

	If the user is not requesting a prompt, opt for the safer approach
	which is to get the location from textDocument/definition, not from
	workspace/symbol.  Because of things like function overloading, the
	latter is not always successful in finding exactly the definition of
	the thing one is invoking M-. on.

	This requires using an xref-internal symbol, which is kind of
	unfortunate.

	* eglot.el (xref-backend-identifier-at-point): Rework.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/131
	GitHub-reference: per https://github.com/joaotavora/eglot/issues/314

2022-07-15  João Távora  <joaotavora@gmail.com>

	Guess the "lsp identifier at point"

	* eglot.el (eglot--workspace-symbols): New helper.
	(xref-backend-identifier-completion-table): Rework.
	(xref-backend-identifier-at-point): Rework.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/131
	GitHub-reference: per https://github.com/joaotavora/eglot/issues/314

2022-07-15  Eli Zaretskii  <eliz@gnu.org>

	Avoid infloop in redisplay when displaying a tooltip

	* src/xdisp.c (try_window): Ensure we fail if 'display_line'
	indicates that the dimensions of the glyph matrix are
	insufficient.  (Bug#56561)

2022-07-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak how dired-copy-filename-as-kill handles file names with spaces

	* lisp/dired.el (dired-copy-filename-as-kill): Quote files
	containing spaces (bug#48657).

2022-07-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust whitespace tests

2022-07-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix whitespace-mode display table restoration logic

	* lisp/whitespace.el (whitespace-display-char-on): Fix the saving
	logic -- `whitespace-mode' is on by this point (bug#48583).

2022-07-15  Visuwesh  <visuweshm@gmail.com>

	Fix mailcap-user-mime-data doc string

	* lisp/net/mailcap.el (mailcap-user-mime-data): Make the doc
	string reflect the actual structure (bug#56568).

2022-07-15  João Távora  <joaotavora@gmail.com>

	Tweak some details, fix some bugs

	eglot--recover-workspace-symbol-meta had a bug that still made it
	choke on improper lists.

	Also, when simply M-. to the thing at point, let's not lose time on
	iterating a potentially out-of-date eglot--workspace-symbols-cache.
	So clear it early in the pre-command-hook.

	* eglot.el (eglot--workspace-symbols-cache): Move up.
	(eglot--pre-command-hook): Clear eglot--workspace-symbols-cache here.
	(eglot--recover-workspace-symbol-meta): Check for consp.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/131

2022-07-15  Po Lu  <luangruo@yahoo.com>

	Fix generated drag-and-drop mouse rectangles

	* lisp/x-dnd.el (x-dnd-get-drop-width-height): Handle window
	width and height correctly.  Remove unused parameter.
	(x-dnd-after-move-frame): New function.
	(move-frame-functions): Add new hook.
	(x-dnd-compute-root-window-position): New function.
	(x-dnd-get-drop-x-y): Use that instead of `left' and `top'
	parameters, which include the title bar.
	(x-dnd-handle-xdnd): Update accordingly.
	* src/xfns.c (Fx_translate_coordinates): New function.
	(syms_of_xfns): New defsym.

2022-07-15  Gerd Möllmann  <gerd@gnu.org>

	Extend support for debugging Emacs with LLDB

	* etc/emacs_lldb.py: Handle case of Lisp_Object being a
	struct (--enable-lisp-type-checking).  Enable Emacs type category by
	default.  Expand children in type summary for Lisp_Object.

2022-07-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	6a05715552 Update the Samaritan's contact details in M-x doctor
	d19834dfda ; Fix typos

2022-07-14  Po Lu  <luangruo@yahoo.com>

	Fix sending button presses if the drop target specified a mouse rectangle

	* src/xterm.c (x_dnd_send_position): Handle button presses
	specially, ignoring mouse rectangles.

2022-07-14  Sean Whitton  <spwhitton@spwhitton.name>

	Use notmuch thread:{} operator instead of performing two searches

	This also avoids some command line length limit problems (bug#56442).

	* gnus-search.el (gnus-search-run-search): Delete notmuch method.
	(gnus-search-indexed-search-command): In the notmuch method, when
	searching for threads, wrap whole query in thread:{} operator, and
	always use --output=files, never --output=threads (bug#56442).

2022-07-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix --without-x build after previous image cache changes

	* src/alloc.c (garbage_collect): Fix --without-all --without-x build.

2022-07-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Restore how (read-from-minibuffer ... read-expression-map) worked

	* lisp/simple.el (read-expression-map): Don't override RET and C-j
	here, since that leads to breakages of other usages of this map
	(bug#56548).
	(read--expression-map): New map.
	(read--expression): Use it.

2022-07-14  Visuwesh  <visuweshm@gmail.com>

	Make gnus display webp images inline

	* lisp/gnus/mm-decode.el (mm-inline-media-tests): Add webp handler.
	* lisp/net/mailcap.el (mailcap-mime-extensions): Add webp mimetype
	(bug#56552).

2022-07-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Make image-map commands work with inline image attachments in mm

	* lisp/gnus/mm-view.el (mm-inline-image): Use insert-image so that
	point movement is more pleasant and so that image-map commands
	work (bug#56554).

2022-07-14  Visuwesh  <visuweshm@gmail.com>

	* lisp/image.el (put-image): Fix typo.

	* lisp/image.el (put-image): Actually use the image-map keymap
	(bug#56554).

2022-07-14  Visuwesh  <visuweshm@gmail.com>

	Use compose-mail in submit-emacs-patch

	* lisp/mail/emacsbug.el (submit-emacs-patch): Prefer
	compose-mail-other-window over message-mail-other-window (bug#56555).

2022-07-14  Stefan Kangas  <stefankangas@gmail.com>

	Make ps-print-ensure-fontified obsolete

	* lisp/ps-print.el (ps-print-ensure-fontified): Redefine as
	obsolete function alias for font-lock-ensure.  Update callers.

2022-07-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Prune animation cache when images are no longer reachable

	* lisp/image.el (image-animate-timeout): Eject cached animated
	images that are no longer reachable (bug#56546).

	* src/image.c (Fclear_image_cache): Allow specifying a cached
	animated image to eject.
	(gif_load, webp_load): Adjust what to use as the caching key --
	the identity of the list itself is apparently changed by some
	callers.

2022-07-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Make image-cache-size also include the animation cache

	* src/image.c (struct anim_cache, anim_create_cache): Store approx
	cache size.
	(gif_load, webp_load): Ditto.
	(Fimage_cache_size): Also report animation cache size (bug#56546).

2022-07-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Prune the animation cache from gc

	* src/alloc.c (garbage_collect): Prune animation cache
	(bug#56546).

2022-07-14  Eli Zaretskii  <eliz@gnu.org>

	* src/gtkutil.c (xg_free_frame_widgets): Avoid compiler warning.

2022-07-14  Stefan Kangas  <stefankangas@gmail.com>

	Update the Samaritan's contact details in M-x doctor

	* lisp/play/doctor.el (doctor-death): Update the Samaritans's contact
	details; anon.twwells.com is no longer valid.  Add link to Wikipedia.

2022-07-14  João Távora  <joaotavora@gmail.com>

	Cosmetic decisions guaranteed to tick off someone somewhere (tm)

	The symbols returned by the LSP server must be converted to unique
	strings if Emacs is to present them in a list.  On the other hand, the
	search operates on the pattern and is completely controlled by the
	backend.  There is not much Eglot, the LSP client, can do about this.

	Decided to present the unique string to the user, even though it could
	be hidden.  All the manner of :annotation-function,
	:affixation-function, :group-funcion etc didn't seem to add much
	value.

	Grouping was especially useless, since it makes sense to respect the
	LSP server's account of sorting score, so that better results bubble
	up to the top.

	* eglot.el (xref-backend-identifier-completion-table): Uniquify
	symbols with containerName and kind.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/131

2022-07-14  João Távora  <joaotavora@gmail.com>

	Experiment with grouping in xref-backend-identifier-completion-table

	Doesn't look very good.

	* eglot.el (xref-backend-identifier-completion-table): Add stuff.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/131

2022-07-14  João Távora  <joaotavora@gmail.com>

	Make c-u m-. work half decently

	* NEWS.md: Mention change.

	* eglot.el (eglot--lsp-interface-alist): Add WorkspaceSymbol
	(eglot--workspace-symbols-cache): New variable.
	(eglot--recover-workspace-meta): New helper.
	(xref-backend-identifier-completion-table): Complicate.
	(xref-backend-definitions): Complicate.
	(completion-category-overrides): Register a category and a style here.
	(completion-styles-alist): Add eglot--lsp-backend-style style
	(eglot--lsp-backend-style-call): New function.
	(eglot--lsp-backend-style-all-completions): New function.
	(eglot--lsp-backend-style-try-completion): New function.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/131

2022-07-14  Stefan Kangas  <stefankangas@gmail.com>

	Silence unused variable warning in a build --without-all

	* src/xfns.c (Fx_double_buffered_p): Silence unused variable warning
	in a build --without-all.

2022-07-14  Stefan Kangas  <stefankangas@gmail.com>

	Compress hashcash headers by default

	* lisp/mail/hashcash.el (hashcash-extra-generate-parameters):
	Use compression by default.

2022-07-14  Stefan Kangas  <stefankangas@gmail.com>

	Pacify -Wunused-macros in --without-all builds

	* src/image.c (IMAGE_TYPE_INIT): Make conditional on image support.

2022-07-14  Stefan Kangas  <stefankangas@gmail.com>

	Update the 'etags' test suite

	* ETAGS_good_1:
	* ETAGS_good_2:
	* ETAGS_good_3:
	* ETAGS_good_4:
	* ETAGS_good_5:
	* ETAGS_good_6: Adapt to recent changes in test sources.

2022-07-14  Po Lu  <luangruo@yahoo.com>

	Try to restore the initial "daemon" frame when a display goes down

	* src/xterm.c (x_try_restore_frame): New function.
	(x_connection_closed): Call it if selected_frame is nil.

2022-07-14  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	76878ce6a0 * etc/PROBLEMS: Describe problems with remote files.  (Bug...

2022-07-14  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	9db6817d63 Remove uneffective test
	7af88de410 Mark async worker tmp file as utf-8-emacs-unix (bug#48029)

	# Conflicts:
	#	test/src/comp-resources/comp-test-45603.el
	#	test/src/comp-tests.el

2022-07-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Make clear-image-cache clear the animation cache

	* src/dispextern.h: Declare image_prune_animation_caches for use
	in gc.

	* src/image.c (Fclear_image_cache): Clear animation cache.
	(anim_prune_animation_cache, anim_get_animation_cache): Allow
	clearing in addition to pruning.
	(imagemagick_prune_animation_cache)
	(imagemagick_get_animation_cache): Ditto.
	(image_prune_animation_caches): New function (bug#56546).

2022-07-14  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	5e47ec9511 ; * lisp/url/url-http.el (url-http-parse-headers): Fix typo.
	ba0871bef1 ; Fix typos: prefer American spelling
	e3e7f31faa Adapt Tramp doc

	# Conflicts:
	#	etc/NEWS
	#	etc/themes/modus-themes.el
	#	lisp/emacs-lisp/byte-opt.el
	#	test/lisp/so-long-tests/spelling-tests.el

2022-07-14  Gerd Möllmann  <gerd@gnu.org>

	Improve support for debugging Emacs with LLDB

	* etc/emacs_lldb.py: Refactor and support more Lisp types.

2022-07-14  Eli Zaretskii  <eliz@gnu.org>

	* etc/PROBLEMS: Describe problems with remote files.  (Bug#56499)

2022-07-14  Visuwesh  <visuweshm@gmail.com>

	Add new customizable phonetic Tamil input method

	* lisp/language/indian.el ("Tamil"): Change the default input method
	of the Tamil language environment to the new input method.

	* lisp/leim/quail/indian.el
	(quail-tamil-itrans-compute-syllable-table): New function extracted
	from...
	(quail-tamil-itrans-syllable-table): ... here.  Use the above
	function.
	(quail-tamil-itrans--consonant-order): Auxiliary variable for the
	above function.
	(quail-tamil-itrans-compute-signs-table): Add new VARIOUS argument.
	(quail-tamil-itrans-various-signs-and-digits-table)
	(quail-tamil-itrans-various-signs-table): Adjust call to the above
	function.

	("tamil-phonetic"): Add new input method.
	(tamil-input): New group for the input method.
	(tamil-translation-rules): New defcustom for the input method to
	change the translation rules.

	(tamil--syllable-table, tamil--signs-table, tamil--hashtables)
	(tamil--vowel-signs): Internal variables used by the input method.
	(tamil--setter, tamil--make-tables)
	(tamil--update-quail-rules): Internal functions for the input method.
	(bug#56323)

	* etc/NEWS: Announce the new input method.

2022-07-13  Po Lu  <luangruo@yahoo.com>

	Fix killing Emacs upon display disconnect

	* src/xterm.c (x_connection_closed): On Xt builds terminals can
	be left alive without any frames on them, so take that into
	account.  (bug#56528)

2022-07-13  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in tab-bar.el

	* lisp/tab-bar.el: Prefer keymap-set.
	(tab-bar-map, tab-switcher-mode-map)
	(tab-bar-switch-repeat-map, tab-bar-move-repeat-map): Prefer
	defvar-keymap.

2022-07-13  Andrea Corallo  <akrl@sdf.org>

	Remove uneffective test

	* test/src/comp-tests.el (45603-1): Remove test.
	* test/src/comp-resources/comp-test-45603.el: Delete.

2022-07-13  Andrea Corallo  <akrl@sdf.org>

	Mark async worker tmp file as utf-8-emacs-unix (bug#48029)

	* lisp/emacs-lisp/comp.el (comp-final): Mark async worker tmp file
	as utf-8.
	* test/src/comp-tests.el (48029-1): New test.
	* test/src/comp-resources/comp-test-funcs.el
	(comp-test-48029-nonascii-žžž-f): New function.

2022-07-13  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/vc/vc-bzr.el (vc-bzr-program): Support breezy.

2022-07-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make smtpmail try all auth methods

	* lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Try all valid
	methods, even if one fails (bug#48562).

2022-07-13  Po Lu  <luangruo@yahoo.com>

	Fix recursive calls of x_connection_closed leading to dead terminal

	* src/xterm.c (x_connection_closed): Return if called again for
	the current display.
	(x_io_error_quitter): Fix attributes.  (bug#56528)

2022-07-13  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp version integrated in Emacs 28.2

	* lisp/net/trampver.el (customize-package-emacs-version-alist):
	Adapt Tramp version integrated in Emacs 28.2.

2022-07-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Make mouse-2 respect delete-selection mode"

	This reverts commit 215a700751f88bba18989e340181361a484d5b3a.

	This leads to unintended consequences for cua-mode, among others (bug#56530).

2022-07-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make bibtex-mode not signal errors when used programmatically

	* lisp/textmodes/bibtex.el (bibtex-mode): Ensure that the font
	lock machinery is set up (bug#48447).

2022-07-13  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp doc

	* doc/misc/tramp.texi (Configuration): Mention enable-remote-dir-locals.
	(Traces and Profiles): Fix tramp-verbose description.

	* lisp/net/tramp.el (tramp-verbose): Fix docstring.

2022-07-13  Stefan Kangas  <stefankangas@gmail.com>

	Make the rsh command obsolete

	* lisp/net/telnet.el (rsh): Make obsolete.
	(telnet-connect-command, telnet-mode): Adjust documentation for
	above change.

2022-07-13  Po Lu  <luangruo@yahoo.com>

	Implement TIMESTAMP target for Haiku selections

	* lisp/term/haiku-win.el (haiku-selection-targets): Fix return
	values.
	(gui-backend-get-selection): Handle TIMESTAMP specially.
	* src/haiku_select.cc (be_get_clipboard_count): New function.
	* src/haikuselect.c (Fhaiku_selection_timestamp): New function.
	(syms_of_haikuselect): Add new defsubr.
	* src/haikuselect.h: Update prototypes.

2022-07-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a3dab1e621 Don't mention cl-cXXXr aliases in cl-lib manual

2022-07-13  Po Lu  <luangruo@yahoo.com>

	New user option 'webjump-use-internal-browser'

	* lisp/net/webjump.el (webjump-use-internal-browser): New defcustom.
	(webjump): Respect it.  Reported by Youmu <condy0919@gmail.com>.

2022-07-12  Po Lu  <luangruo@yahoo.com>

	Fix closing displays when preserving selections is enabled

	* src/frame.c (delete_frame): Bind `x-auto-preserve-selections'
	to nil if deleting display.
	* src/xselect.c (x_clear_frame_selections): Pass original frame
	to that function.
	* src/xterm.c (x_preserve_selections): Fix determining the new
	owner.
	(syms_of_xterm): New defsym `x-auto-preserve-selections'.
	* src/xterm.h: Update prototypes.

2022-07-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak image-converter-add-handler interface

	* doc/emacs/files.texi (Image Mode): Adjust documentation.
	* lisp/image/image-converter.el (image-convert): Let the converter
	know whether it's a file or not.

2022-07-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Autoload image-converter-add-handler

	* lisp/image/image-converter.el (image-converter-add-handler):
	Autoload.

2022-07-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Add support for viewing "images" such as Krita (.kra) files

	* doc/emacs/files.texi (Image Mode): Document it.

	* lisp/image/image-converter.el (image-converter-add-handler): New
	function (bug#48415).
	(image-convert): Use it.

2022-07-12  Stefan Kangas  <stefankangas@gmail.com>

	Drop obsolete rsh/rlogin from two user options

	* lisp/net/ange-ftp.el (ange-ftp-gateway-program):
	* lisp/net/imap.el (imap-shell-program): Drop obsolete "rsh"/"rlogin".

2022-07-12  Stefan Kangas  <stefankangas@gmail.com>

	Make pcomplete/{rsh,rlogin} into alias for pcomplete/ssh

	* lisp/pcmpl-unix.el (pcomplete/rlogin, pcomplete/rsh): Make into
	aliases for 'pcomplete/ssh', as "rsh" and "rlogin" is more often than
	not aliases for "ssh" on modern machines.

2022-07-12  Michael Albinus  <michael.albinus@gmx.de>

	Remove rsh from Tramp manual, Overview section

	* doc/misc/tramp.texi (Overview, Frequently Asked Questions):
	Don't mention obsolete rsh and rcp.

2022-07-12  Jim Porter  <jporterbugs@gmail.com>

	Ensure Eshell variable aliases properly handle indexing

	* lisp/eshell/em-dirs.el (eshell-dirs-initialize): Properly handle
	indexing for variable aliases.

	* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Properly
	handle indexing for variable aliases, and add SIMPLE-FUNCTION
	entry for aliases.
	(eshell-get-variable): Update how variable alias functions are called.

	* test/lisp/eshell/em-alias-tests.el
	(em-alias-test/alias-arg-vars-indices)
	(em-alias-test/alias-arg-vars-split-indices)
	(em-alias-test/alias-all-args-var-split-indices):
	* test/lisp/eshell/em-dirs-tests.el (em-dirs-test/pwd-var-indices)
	(em-dirs-test/oldpwd-var-indices)
	(em-dirs-test/directory-ring-var-indices):
	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/inside-emacs-var-split-indices)
	(esh-var-test/last-result-var-split-indices): New tests.
	(esh-var-test/last-arg-var-split-indices): Expand test to check
	conversion behavior inside double quotes (bug#56509).

2022-07-12  Jim Porter  <jporterbugs@gmail.com>

	Allow Eshell variable aliases to point to other aliases

	In particular, this resolves an issue where '$+' referenced the real
	environment variable '$PWD' instead of the Eshell variable alias of
	the same name.  This meant that changing directories in Eshell
	wouldn't update the value of '$+'.

	* lisp/eshell/esh-var.el (eshell-get-variable): Allow Eshell variable
	aliaes to point to other aliases.

	* test/lisp/eshell/em-dirs-tests.el (em-dirs-test/pwd-var)
	(em-dirs-test/short-pwd-var): Adapt tests to check this case
	(bug#56509).

2022-07-12  Jim Porter  <jporterbugs@gmail.com>

	Improve tests/organization for built-in variables

	* lisp/eshell/em-dirs.el (eshell-inside-emacs)
	(eshell-dirs-initialize): Move 'INSIDE_EMACS' from here...

	* lisp/eshell/esh-var.el (eshell-inside-emacs)
	(eshell-variable-aliases-alist): ... to here, and improve doc string.

	* test/lisp/eshell/eshell-tests.el (eshell-test/inside-emacs-var):
	Move from here...

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/inside-emacs-var):
	... to here.
	(esh-var-test/last-arg-var-indices)
	(esh-var-test/last-arg-var-split-indices): New tests.

	* test/lisp/eshell/em-alias-tests.el:
	* test/lisp/eshell/em-dirs-tests.el:
	* test/lisp/eshell-em-script-tests.el: New files.

	* doc/misc/eshell.texi (Built-ins): Fix 'cd' documentation; it works
	with the directory ring, not the directory stack.  Move built-in
	variables documentation from here...
	(Variables): ... to here, and add documentation for missing built-in
	variables.

2022-07-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix buffer-stale-function fix

	* src/buffer.c (Fmake_indirect_buffer): Kill the local
	buffer-stale-function variable instead of setting it
	buffer-locally to the default value.  This should have the same
	effect, but is less confusing.

2022-07-12  Po Lu  <luangruo@yahoo.com>

	Reduce syncing when fetching selection names during frame deletion

	* src/xterm.c (x_preserve_selections): Use XCB to asynchronously
	fetch the selection owner.

2022-07-12  Stefan Kangas  <stefankangas@gmail.com>

	Don't mention cl-cXXXr aliases in cl-lib manual

	* doc/misc/cl.texi (Lists, List Functions, Efficiency Concerns): Don't
	mention 'cl-cXXXr' compatibility aliases for built-in 'cXXXr'
	functions.  They shouldn't be used in new code.

2022-07-12  Stefan Kangas  <stefankangas@gmail.com>

	Make some rst.el compat aliases obsolete

	* lisp/textmodes/rst.el (rst-adjust-section-title)
	(rst-display-adornments-hierarchy, rst-straighten-adornments)
	(rst-toc-insert-update, rst-goto-section)
	(rst-toc-mode-goto-section, rst-toc-mode-mouse-goto)
	(rst-toc-mode-mouse-goto-kill, rst-toc-quit-window): Make
	compatibility aliases obsolete.

2022-07-12  Stefan Kangas  <stefankangas@gmail.com>

	Make remote-shell-program default to ssh only

	* lisp/files.el (remote-shell-program): Default to "ssh" only.  The
	other commands in this list have severe security issues, and it is
	easy enough for users to customize them manually if they want to.
	See also the discussion in: https://debbugs.gnu.org/56461

2022-07-12  Stefan Kangas  <stefankangas@gmail.com>

	Recognize gemini in thing-at-point

	* lisp/thingatpt.el (thing-at-point-uri-schemes): Recognize gemini.

2022-07-12  Mattias Engdegård  <mattiase@acm.org>

	Better gomoku X color with bright background

	* lisp/play/gomoku.el (gomoku-X): Use blue rather than green for
	crosses on bright background for better legibility.
	(Red for naughts could be adjusted but seems just about bearable.)

2022-07-12  Alan Mackenzie  <acm@muc.de>

	Expunge unused recompute-lucid-menubar, lucid-menu-bar-dirty-flag

	This fixes bug #56502.  That function and these variables were manipulated by
	the former file emacs-lisp/lmenu.el that was finally expunged from directory
	obsolete/ by Stefan Kangas on 2020-05-15.  There remain references to them in
	the *.c, and *.m files.

	* src/keyboard.c (syms_of_keyboard): Remove declarations of the symbol and
	variable.

	* src/haikumenu.c (set_frame_menu_bar)
	* src/keyboard.c (command_loop_1)
	* src/nsmenu.m (ns_update_menubar)
	* src/pgtkmenu.c (set_frame_menubar)
	* src/xdisp.c (update_menu_bar)
	* src/xmenu.c (set_frame_menubar): Remove calls to Qrecompute_lucid_menubar
	conditional on Vlucid_menu_bar_dirty_flag.

2022-07-12  Po Lu  <luangruo@yahoo.com>

	Fix preserving selections if `x-lost-selection-functions' signals

	* src/xterm.c (x_preserve_selections): Get selection owner and
	run lost selection hook separately.

2022-07-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	9183d1672c ; * etc/PROBLEMS: Give a URL for bug#50666.
	1f508a8b6f etc/PROBLEMS: Describe issues with native compilation on C...
	84a5d47125 ; Fix last change
	0461021893 ; * lisp/emacs-lisp/comp.el (native-comp-speed): Explain t...
	876317271b * lisp/find-dired.el (find-dired): Doc fix; add crossrefer...

2022-07-11  Po Lu  <luangruo@yahoo.com>

	Try to save selections from being disowned during frame deletion

	* lisp/cus-start.el (standard): Add
	`x-auto-preserve-selections'.
	* src/xselect.c (x_clear_frame_selections): Collect deleted
	selections into a variable and preserve them.
	* src/xterm.c (x_preserve_selections): New function.
	(syms_of_xterm): New variable `x-auto-preserve-selections'.
	* src/xterm.h: Update prototypes.

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/mail/mail-utils.el (mail-string-delete): Make obsolete.

2022-07-11  Ken Brown  <kbrown@cornell.edu>

	etc/PROBLEMS: Describe issues with native compilation on Cygwin

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in thumbs.el

	* lisp/thumbs.el (thumbs-mode-map, thumbs-view-image-mode-map):
	Prefer defvar-keymap.

2022-07-11  Mattias Engdegård  <mattiase@acm.org>

	Remove obsolete uses of obsolete functions

	* src/minibuf.c (minibuf_conform_representation): Remove.
	(Ftry_completion): Don't call it.
	(Ftest_completion): Don't use the obsolete Fstring_make_unibyte or
	Fstring_make_multibyte; they don't serve any useful purpose here.
	We don't try to equate unibyte and multibyte raw bytes in symbol
	lookups elsewhere and there is no reason to do it here.

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	Remove dead branch from substitute-command-keys

	* lisp/help.el (substitute-command-keys): Remove dead branch;
	where-is-internal will follow any remaps for us.  Note also that the
	test case for remapping still pass.

2022-07-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `g' in `vc-annotate' not bug out

	* lisp/vc/vc-annotate.el (vc-annotate): Don't bug out on `g'
	(bug#48359).

2022-07-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Only reset buffer-local buffer-stale-function in make-indirect-buffer

	* src/buffer.c (Fmake_indirect_buffer): Don't set the global
	buffer-stale-function (bug#48348).

2022-07-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Document the recent add-global-abbrev change

	* doc/emacs/abbrevs.texi (Defining Abbrevs): Document that you can
	use the active region.

2022-07-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make add-mode-abbrev use the active region

	* lisp/abbrev.el (add-mode-abbrev, add-global-abbrev): Document it.
	(add-abbrev): If there's an active region, use that as the
	expansion (bug#56496).

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/obsolete/rlogin.el: Add "Obsolete-since" line.

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	Make net/rlogin.el obsolete

	* lisp/net/rlogin.el: Move from here...
	* lisp/obsolete/rlogin.el: ...to here.  (Bug#56461)

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	* src/.lldbinit: Fix copyright year.

2022-07-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow commands that call `yes-or-no-p' to be repeatable again

	* lisp/subr.el (y-or-n-p): Enable commands that call this function
	to be repeatable (bug#45999).  This stopped working after this
	function started using read-from-minibuffer.
	* src/fns.c (Fyes_or_no_p): Ditto.

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	Move EIEIO autoloads to the common loaddefs.el

	* lisp/emacs-lisp/eieio-core.el:
	* lisp/emacs-lisp/eieio-custom.el:
	* lisp/emacs-lisp/eieio-opt.el:
	* lisp/obsolete/eieio-compat.el: Remove generated-autoload-file
	setting and don't require eieio-loaddefs.el.

2022-07-11  Gerd Möllmann  <gerd@gnu.org>

	Support for debugging Emacs with LLDB

	* (src/.lldbinit): New file.
	* (etc/emacs_lldb.py): Module loaded from .lldbinit.

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	Don't create unused file rmail-loaddefs.el

	* lisp/mail/undigest.el: Remove 'generated-autoload-file' local
	variable.  (Bug#56491)

2022-07-11  Mattias Engdegård  <mattiase@acm.org>

	Simplify str_to_multibyte and related code

	* src/character.h (str_to_multibyte):
	* src/character.c (str_to_multibyte): Remove `nbytes` argument; return
	it instead.  Copy forwards.
	* src/fns.c (concat_to_string, Fstring_make_multibyte):
	Use str_to_multibyte.
	(string_make_multibyte): Remove.
	(string_to_multibyte):
	* src/print.c (print_string):  Adapt calls.

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	Doc fix; don't mention rlogin

	* doc/emacs/misc.texi (Remote Host):
	* doc/misc/eshell.texi (Bugs and ideas): Don't mention
	rlogin.  (Bug#56461)

2022-07-11  Po Lu  <luangruo@yahoo.com>

	Improve behavior of `lost-selection-mode' with multiple buffers

	* etc/NEWS: Announce new hook `post-select-region-hook'.

	* lisp/select.el (lost-selection-last-region-buffer): New
	variable.
	(lost-selection-post-select-region-function): New function.
	Deactivate the mark if the buffer changed.
	(lost-selection-mode): Add new hook.

	* src/keyboard.c (command_loop_1): Run that hook when
	appropriate.
	(syms_of_keyboard): New hook `post-select-region-hook'.

2022-07-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix crm.el compilation warning

	* lisp/emacs-lisp/crm.el (crm-default-separator): Move to avoid
	compilation warning.

2022-07-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't call home from test/src/process-tests.el

	* test/src/process-tests.el (process-num-processors): Move from
	here...
	* test/manual/process-callout-tests.el: ... to here (bug#55858).

2022-07-11  Visuwesh  <visuweshm@gmail.com>

	Make mouse-2 respect delete-selection mode

	* lisp/delsel.el: Make the mouse yank commands delete-selection-mode
	aware (bug#56421).

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/emacs-lisp/package.el (define-package): Make obsolete.

2022-07-11  Po Lu  <luangruo@yahoo.com>

	Prevent setting user time if the WM doesn't support it

	* src/xterm.c (x_update_frame_user_time_window): Don't set
	_NET_WM_USER_TIME if it's not supported by the window manager.

2022-07-11  Mattias Engdegård  <mattiase@acm.org>

	Add test for the gradle-android compilation message pattern

	* etc/compilation.txt (symbol): Add example.
	* test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data):
	(compile-test-error-regexps): Add test case (bug#56249).

2022-07-11  Daniel Martín  <mardani29@yahoo.es>

	Fix memory leak in ns_draw_relief

	* src/nsterm.h (struct ns_output): New fields to store the relief
	colors.
	* src/nsterm.m (ns_setup_relief_colors): New function to keep the
	relief colors as part of the ns_output structure.
	(ns_draw_relief): Remove static local variables.  Assigning them to
	nil caused a memory leak of NSColor instances (bug#56462).  Call
	ns_setup_relief_colors instead.

2022-07-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Autoload named-let

	* lisp/emacs-lisp/subr-x.el (named-let): Autoload `named-let' for
	easier use (bug#56473).

2022-07-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix `M-x lisp-fill-paragraph'

	* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Fix filling
	when called directly with `M-x lisp-fill-paragraph' instead of via
	`M-q' (bug#56476).

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	Make crm-default-separator obsolete as per FIXME

	* lisp/emacs-lisp/crm.el (crm-default-separator): Make into
	obsolete variable alias for crm-separator.
	(crm-separator): Update docstring for above change.

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/find-dired.el (find-dired): Doc fix; add cross-reference.

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	Re-add comment on autoloading cookies in preloaded files

	This comment was removed in 2009, but it is useful to explain why
	we are keeping these autoload cookies.
	* lisp/bindings.el:
	* lisp/font-core.el:
	* lisp/format.el:
	* lisp/international/mule-cmds.el: Re-add comment on autoloading.
	* lisp/font-core.el (font-lock-defaults): Re-add autoload cookie,
	despite the fact that this file is preloaded.

2022-07-11  Stefan Kangas  <stefankangas@gmail.com>

	Prefer :risky defcustom keyword

	* lisp/align.el (align-region-separate, align-rules-list)
	(align-exclude-rules-list, align-vhdl-rules-list):
	* lisp/bindings.el (mode-line-percent-position):
	* lisp/filesets.el (filesets-menu-cache-file, filesets-commands)
	(filesets-external-viewers, filesets-ingroup-patterns)
	(filesets-data):
	* lisp/hi-lock.el (hi-lock-file-patterns-policy):
	* lisp/mail/mailalias.el (mail-complete-alist)
	(mail-directory-process, mail-directory-stream)
	(mail-directory-parser):
	* lisp/mail/rmail.el (rmail-confirm-expunge):
	* lisp/mail/sendmail.el (mail-signature):
	* lisp/mail/supercite.el (sc-cite-frame-alist)
	(sc-uncite-frame-alist, sc-recite-frame-alist)
	(sc-default-cite-frame, sc-default-uncite-frame)
	(sc-default-recite-frame, sc-attrib-selection-list)
	(sc-rewrite-header-list):
	* lisp/progmodes/make-mode.el (makefile-special-targets-list):
	* lisp/so-long.el (so-long-action-alist):
	* lisp/textmodes/sgml-mode.el (sgml-tag-alist): Prefer defcustom
	:risky keyword argument to directly setting the 'risky-local-variable'
	symbol property.

2022-07-11  Mattias Engdegård  <mattiase@acm.org>

	Simplify and speed up string-to-multibyte

	* src/character.h (str_to_multibyte):
	* src/character.c (str_to_multibyte): Change signature and simplify;
	the conversion is no longer done in-place.
	* src/fns.c (string_to_multibyte): Drop temporary buffer and memcpy;
	adapt to new str_to_multibyte signature.
	* src/print.c (print_string): Drop memcpy; adapt call to str_to_multibyte.
	* test/src/fns-tests.el (fns--string-to-unibyte): Rename to...
	(fns--string-to-unibyte-multibyte): ... this and strengthen, so that
	the test covers string-to-multibyte reasonably well.

2022-07-11  Manuel Giraud  <manuel@ledu-giraud.fr>

	Rename 'longlines-breakpoint-chars' to 'longlines-break-chars'

	* etc/NEWS:
	* lisp/longlines.el (longlines-break-chars): Rename
	'longlines-breakpoint-chars' to 'longlines-break-chars'
	(bug#56335).

2022-07-10  Po Lu  <luangruo@yahoo.com>

	Handle errors sending selection decline events asynchronously

	* src/xselect.c (x_decline_selection_request): Handle errors
	asynchronously.
	* src/xterm.c (x_ignore_errors_for_next_request)
	(x_stop_ignoring_errors): Export functions.
	* src/xterm.h: Update prototypes.

2022-07-10  Matthias Schmitt  <male.schmitt@posteo.de>

	Add: 'local' keyword

2022-07-10  Philip Kaludercic  <philipk@posteo.net>

	* time-date.el (decoded-time-period): Rename TIME in docstring

2022-07-10  Stefan Kangas  <stefankangas@gmail.com>

	Remove some ineffectual calls to purecopy

	* lisp/dired.el (dired-chown-program, dired-trivial-filenames):
	* lisp/emacs-lisp/shortdoc.el (shortdoc--display-function):
	* lisp/help-fns.el (help-fns--mention-shortdoc-groups):
	* lisp/mail/mail-extr.el (mail-extr-full-name-prefixes)
	(mail-extr-all-letters-but-separators, mail-extr-all-letters)
	(mail-extr-first-letters, mail-extr-last-letters)
	(mail-extr-bad-dot-pattern, mail-extr-full-name-suffix-pattern)
	(mail-extr-alternative-address-pattern)
	(mail-extr-trailing-comment-start-pattern)
	(mail-extr-name-pattern, mail-extr-telephone-extension-pattern)
	(mail-extr-ham-call-sign-pattern, mail-extr-normal-name-pattern)
	(mail-extr-two-name-pattern)
	(mail-extr-listserv-list-name-pattern)
	(mail-extr-stupid-vms-date-stamp-pattern)
	(mail-extr-hz-embedded-gb-encoded-chinese-pattern)
	(mail-extr-x400-encoded-address-pattern)
	(mail-extr-x400-encoded-address-field-pattern-format)
	(mail-extr-x400-encoded-address-surname-pattern)
	(mail-extr-x400-encoded-address-given-name-pattern)
	(mail-extr-x400-encoded-address-full-name-pattern): Remove
	ineffectual calls to purecopy.

2022-07-10  Stefan Kangas  <stefankangas@gmail.com>

	Rename new option to browse-url-default-scheme

	* lisp/net/browse-url.el (browse-url-default-scheme): Rename from
	'browse-url-guess-default-scheme'.  Update caller.
	Suggested by Eli Zaretskii <eliz@gnu.org>.

2022-07-10  Mattias Engdegård  <mattiase@acm.org>

	Speed up string-to-unibyte

	* src/character.h (str_to_unibyte):
	* src/character.c (str_to_unibyte): Remove.
	* src/fns.c (Fstring_to_unibyte): Ditch the call to str_to_unibyte and
	the unnecessary heap allocation.  Write new, faster code.
	* test/src/fns-tests.el (fns--string-to-unibyte): New test.

2022-07-10  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp test environment on hydra.nixos.org

	* lisp/emacs-lisp/ert-x.el (tramp-remote-path): Declare.  Adapt
	`tramp-remote-path' on hydra.  (Bug#56424)

	* test/lisp/dnd-tests.el (dnd-tests-begin-drag-files): Remove instrumentation.

	* test/lisp/filenotify-tests.el:
	* test/lisp/shadowfile-tests.el:
	* test/lisp/net/tramp-tests.el: Do not adapt `tramp-remote-path'.

2022-07-10  Stefan Kangas  <stefankangas@gmail.com>

	Don't use purecopy in dictionary.el

	* lisp/net/dictionary.el (dictionary-pre-buffer)
	(dictionary-display-dictionary-line)
	(dictionary-display-more-info, dictionary-display-strategy-line)
	(dictionary-display-match-lines): Don't use purecopy; it has no
	effect here.

2022-07-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/dired.c (directory_files_internal): Update comment

2022-07-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/dired.c (directory_files_internal): Fix bug#56469

	Avoid concatenating encoded and decoded file names.

2022-07-10  Stefan Kangas  <stefankangas@gmail.com>

	New user option browse-url-guess-default-scheme

	* lisp/net/browse-url.el (browse-url-guess-default-scheme): New
	user option.
	(browse-url-url-at-point): Use above new user option.

2022-07-10  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/tramp.texi (Frequently Asked Questions): Fix formatting.

2022-07-10  Po Lu  <luangruo@yahoo.com>

	Minor fixes to WM_DELETE_WINDOW handling

	* src/xterm.c (handle_one_xevent): Only handle WM_DELETE_WINDOW
	to toplevel windows, and set event timestamp.

2022-07-10  Stefan Kangas  <stefankangas@gmail.com>

	Make browse-url.el support for plain "mozilla" obsolete

	* lisp/net/browse-url.el (browse-url-mozilla-program)
	(browse-url-mozilla-arguments)
	(browse-url-mozilla-startup-arguments)
	(browse-url-mozilla-new-window-is-tab, browse-url-mozilla)
	(browse-url-mozilla-sentinel): Make obsolete.  (Bug#56464)
	(browse-url--browser-defcustom-type, browse-url-default-browser):
	Don't refer to above obsolete function 'browse-url-mozilla'.

2022-07-10  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/net/browse-url.el: Improve commentary.

2022-07-10  Eli Zaretskii  <eliz@gnu.org>

	Fix the startup.el behavior when 'face-font-rescale-alist' is non-nil

	* lisp/startup.el (command-line-1, normal-top-level): Reset the
	default face's font only if 'face-font-rescale-alist' affects that
	face's font.  For the use case where it matters, see
	https://lists.gnu.org/archive/html/emacs-devel/2022-07/msg00157.html.
	Make the 'inhibit-startup-screen' and non-inhibit branches behave
	the same in that case.

2022-07-10  Po Lu  <luangruo@yahoo.com>

	Fix build with old sqlite libraries

	* src/sqlite.c (Fsqlite_open): Don't use SQLITE_OPEN_FULLMUTEX
	if not defined.

2022-07-10  Eli Zaretskii  <eliz@gnu.org>

	Speed up 'find_automatic_composition'

	* src/composite.c (find_automatic_composition): Limit search
	backward in buffers to the first newline.  Fix commentary.

2022-07-10  Po Lu  <luangruo@yahoo.com>

	Don't sync for errors setting up DND targets and toplevels

	* src/xterm.c (xm_setup_dnd_targets, x_dnd_free_toplevels)
	(x_dnd_compute_toplevels): Avoid catching errors synchronously.

2022-07-10  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	115261b323 ; Improve wording of recently-changed doc strings.

2022-07-09  Po Lu  <luangruo@yahoo.com>

	Make `x-no-window-manager' cover user time as well

	* src/xterm.c (x_update_frame_user_time_window):
	(x_wm_supports_1): Respect `x-no-window-manager'.  This makes
	testing some features easier.

2022-07-09  Glenn Morris  <rgm@gnu.org>

	* test/Makefile.in (WRITE_LOG): Always be verbose on hydra.nixos.

2022-07-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	Make STRING_SET_MULTIBYTE an inline function

	* src/lisp.h (STRING_SET_MULTIBYTE): Make it into a function.

	* src/composite.c (Fcomposition_get_gstring):
	Prefer `make_multibyte_string` over Fconcat+STRING_SET_MULTIBYTE.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Exclude platform specific browsers from custom type

	* lisp/net/browse-url.el (browse-url--browser-defcustom-type):
	Don't include platform specific browsers on other platforms.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/net/eww.el (eww): Improve docstring.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Make browse-url-default-browser fall back to EWW

	* lisp/net/browse-url.el (browse-url-default-browser): Fall back
	to EWW.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Drop support for the dead third-party w3 package

	The w3 package was removed from GNU ELPA in 2020 as it doesn't run on
	a recent Emacs, and development had stopped over a decade before that.
	If anyone wants to revive the w3 package, they should look this all
	over, but it doesn't make sense for us to maintain this support code.
	Ref: https://debbugs.gnu.org/25395

	* lisp/net/browse-url.el (browse-url-w3): Make obsolete.
	(browse-url--browser-defcustom-type)
	(browse-url-default-browser):
	* lisp/ffap.el (ffap-url-at-point, ffap-file-at-point):
	* lisp/net/newst-plainview.el (newsticker--buffer-do-insert-text):
	* lisp/net/newst-reader.el (newsticker-html-renderer)
	(newsticker-show-news):
	* lisp/net/newst-treeview.el (newsticker--treeview-render-text):
	* lisp/org/ol.el (org-store-link):
	* lisp/url/url.el (url-retrieve): Remove w3 support code and related
	documentation and comments.  (Bug#56435)

	* test/lisp/net/browse-url-tests.el
	(browse-url-tests-browser-kind): Adjust test for above changes.

	* etc/TODO: Remove TODO to install W3.
	* doc/misc/org.org (Handling Links): Don't mention W3.
	* lisp/msb.el (msb--few-menus, msb--very-many-menus): Check for
	eww-mode instead of w3-mode.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Improve introductory section of TRAMP manual

	* doc/misc/tramp.texi (Top, Overview): Explain what TRAMP is
	without contrasting to Ange FTP.  (Bug#56440)
	(Frequently Asked Questions): Move information on Ange FTP here.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in net/*.el

	* lisp/net/dictionary.el (dictionary-mode-map):
	* lisp/net/dig.el (dig-mode-map):
	* lisp/net/eudc-hotlist.el (eudc-hotlist-mode-map):
	* lisp/net/eudc.el (eudc-mode-map):
	* lisp/net/mairix.el (mairix-searches-mode-map):
	* lisp/net/newst-treeview.el
	(newsticker-treeview-list-sort-button-map)
	(newsticker-treeview-mode-map):
	* lisp/net/quickurl.el (quickurl-list-mode-map):
	* lisp/net/rcirc.el (rcirc-mode-map)
	(rcirc-multiline-minor-mode-map, rcirc-track-minor-mode-map):
	* lisp/net/rlogin.el (rlogin-mode-map):
	* lisp/net/secrets.el (secrets-mode-map):
	* lisp/net/sieve-mode.el (sieve-mode-map):
	* lisp/net/sieve.el (sieve-manage-mode-map):
	* lisp/net/snmp-mode.el (snmp-mode-map):
	* lisp/net/telnet.el (telnet-mode-map): Prefer defvar-keymap.

2022-07-09  Po Lu  <luangruo@yahoo.com>

	Avoid extra sync and atom name query on ending Motif DND

	* src/xterm.c (handle_one_xevent): Use `x_dnd_action_symbol' to
	set the Motif action instead.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Delete obsolete variable tooltip-use-echo-area

	* lisp/tooltip.el (tooltip-use-echo-area): Delete variable
	obsolete since 24.1.
	(tooltip-help-tips):
	* lisp/progmodes/gud.el (gud-tooltip-process-output)
	(gud-tooltip-tips): Don't use above deleted variable.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/woman.el (woman-fill-column): Increase default to 70.

	* lisp/mh-e/mh-mime.el (mh-small-show-buffer-p): Double value.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Delete obsolete variable font-lock-maximum-size

	* lisp/font-lock.el (font-lock-maximum-size): Delete variable
	obsolete since 24.1.
	(font-lock-initial-fontify):
	* lisp/mail/rmail.el (rmail-variables):
	* lisp/mh-e/mh-mime.el (mh-small-show-buffer-p): Don't use above
	deleted variable.
	* lisp/font-core.el (font-lock-mode):
	* lisp/font-lock.el:
	* lisp/info.el: Don't mention above deleted variable.

2022-07-09  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in 'back_to_previous_visible_line_start'

	* src/xdisp.c (back_to_previous_visible_line_start): Avoid
	assertion violations when narrowed_begv is in effect.

2022-07-09  Eli Zaretskii  <eliz@gnu.org>

	Fix segfault in composite.c

	* src/composite.c (find_automatic_composition): Don't use
	narrowed_begv if it's zero.  This avoids segfault in
	BACKWARD_CHAR, since zero is not a valid buffer position.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	New command emacs-news-toggle-tag

	* lisp/textmodes/emacs-news-mode.el (emacs-news-toggle-tag): New
	command.
	(emacs-news-mode-map): Bind above new command to "C-c C-t".
	* test/lisp/textmodes/emacs-news-mode-resources/toggle-tag.erts:
	* test/lisp/textmodes/emacs-news-mode-tests.el: New files.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Improve ert-test-erts-file documentation

	* lisp/emacs-lisp/ert.el (ert-test-erts-file): Improve docstring.
	* doc/misc/ert.texi (erts files): Fix typo.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Bind M-G unconditionally in Dired

	* lisp/dired-x.el: Move dired-goto-subdir binding from here...
	* lisp/dired.el (dired-mode-map): ...to here.  (Bug#21981)

	* doc/misc/dired-x.texi (Miscellaneous Commands): Move
	documentation of above command from here...
	* doc/emacs/dired.texi (Subdirectory Motion): ...to here.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Move dired-buffer-more-recently-used-p to dired.el

	* lisp/dired-x.el (dired-buffer-more-recently-used-p): Move from
	here...
	* lisp/dired.el (dired-buffer-more-recently-used-p): ...to here.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Delete obsolete variable buffer-substring-filters

	* lisp/simple.el (buffer-substring-filters): Delete variable obsolete
	since 24.1.
	(buffer-substring--filter): Adjust for deleted variable.
	* doc/lispref/text.texi (Buffer Contents): Adjust documentation
	for deleted variable.

2022-07-09  Po Lu  <luangruo@yahoo.com>

	Improve drag-and-drop emulation time handling

	* src/xselect.c (x_handle_selection_request): Use
	display-specific pending DND time.
	(x_set_pending_dnd_time): Delete function.
	* src/xterm.c (x_dnd_do_unsupported_drop, handle_one_xevent):
	Set dpyinfo->pending_dnd_time instead.
	* src/xterm.h (struct x_display_info): New field
	`pending_dnd_time'.  Make handling pending drops
	display-specific to avoid interference when there are multiple
	displays.

2022-07-09  Po Lu  <luangruo@yahoo.com>

	Fix race conditions handling selection clear events on Haiku

	* src/haiku_select.cc (be_handle_clipboard_changed_message):
	Include current clipboard count.
	(be_selection_outdated_p): New function.
	* src/haikuselect.c (haiku_handle_selection_clear): Ignore
	outdated events.
	(haiku_selection_disowned): New argument `count'.  Include it in
	the timestamp field of the selection clear event.
	* src/haikuselect.h: Update prototypes.
	* src/systime.h: Define `Time' to an appropriate value on Haiku.

2022-07-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	3442de2edd Doc fix; don't mention obsolete variable
	c4e251103b ; * lisp/textmodes/rst.el: Update URLs.

2022-07-08  Po Lu  <luangruo@yahoo.com>

	Fix redisplay after running selection hook on Haiku

	* src/haikuselect.c (haiku_handle_selection_clear): Call
	redisplay_preserve_echo_area.

2022-07-08  Po Lu  <luangruo@yahoo.com>

	Add new minor mode to deactivate the region once PRIMARY is lost

	* doc/emacs/killing.texi (Primary Selection): Document new minor
	mode `lost-selection-mode'.
	* etc/NEWS: Announce new minor mode.
	* lisp/select.el (lost-selection-function): New function.
	(lost-selection-mode): New global minor mode.

2022-07-08  jgart  <47760695+jgarte@users.noreply.github.com>  (tiny change)

	Add support for jedi-language-server

	* eglot.el (eglot-server-programs): Add jedi-language-server

	* README.md: Mention jedi-language-server

	* NEWS.md: Mention jedi-language-server

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/961

2022-07-08  Po Lu  <luangruo@yahoo.com>

	Speed up querying for window manager support

	* src/xterm.c (handle_one_xevent): Clear net_supported_window if
	it is destroyed.
	(x_get_wm_check_window): New function.
	(x_wm_supports_1): First try net_supported_window.  If it still
	exists, don't ask for _NET_SUPPORTING_WM_CHECK.

2022-07-08  Gregory Heytings  <gregory@heytings.org>

	Fix typo in 1792cbaddc.

2022-07-08  Gregory Heytings  <gregory@heytings.org>

	Actually fix the long lines display bug (bug#56393).

	* src/dispextern.h (struct it): New 'narrowed_begv' field.

	* src/dispextern.h (WITH_NARROWED_BEGV): New macro.

	* src/xdisp.c (get_narrowed_begv): New function.
	(init_iterator): Initialize the 'narrowed_begv' field.
	(back_to_previous_line_start, get_visually_first_element,
	move_it_vertically_backward): Use the new macro.

	* src/dispextern.h: Prototype of 'get_narrowed_begv'.

	* src/window.c (window_body_height): Make it externally visible.

	* src/window.h: Prototype of 'window_body_height'.

	* src/composite.c (find_automatic_composition): Optimize display in buffers
	with very long lines with 'get_narrowed_begv'.

	* lisp/obsolete/longlines.el: Reobsolete longlines-mode.

	* etc/NEWS: Announce the new minor mode, and remove the unobsoletion
	indication for 'longlines-mode'.

	* doc/emacs/trouble.texi (Long Lines): Remove the section.
	(Lossage): Remove the entry for the Long Lines section.

	* doc/emacs/emacs.texi (Top): Remove the entry for the Long Lines section.

2022-07-08  Gregory Heytings  <gregory@heytings.org>

	Revert commit 38b3780f6e.

	Revert commits 9ea9533f17, c0c4600ece, 7b19ce51fc, 051d2a1e36 and eb6d2fb58d.

2022-07-08  Alan Mackenzie  <acm@muc.de>

	Remove now unused parameter TRACK from do_switch_frame.

	* src/lisp.h (extern do_swith_frame declaration)
	* src/frame.c (do_switch_frame): Remove parameter TRACK and its comment.
	* src/frame.c (Fselect_frame, Fhandle_switch_frame, delete_frame)
	* src/keyboard.c (quit_throw_to_read_char)
	* src/minibuf.c (read_minibuf_unwind (twice))
	* src/window.c (Fset_window_configuration): Remove argument TRACK.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Doc fix; don't mention obsolete variable

	* src/window.c (Fset_window_hscroll): Doc fix; don't mention obsolete
	variable.

2022-07-08  Juri Linkov  <juri@linkov.net>

	* lisp/isearch.el (isearch-search-fun-in-noncontiguous-region): New function.

	(isearch-search-fun-in-text-property): Refactor body to
	'search-within-boundaries', then call it (bug#14013).
	(search-within-boundaries): New function refactored from
	isearch-search-fun-in-text-property.

	* test/lisp/isearch-tests.el: Add tests for new search functions.
	(isearch--test-search-within-boundaries): New function.
	(isearch--test-search-fun-in-text-property)
	(isearch--test-search-fun-in-noncontiguous-region): New tests.

2022-07-08  Juri Linkov  <juri@linkov.net>

	Display the number of invisible matches for isearch-lazy-count (bug#40808)

	* lisp/isearch.el (lazy-count-invisible-format): New variable.
	(isearch-mode): Set isearch-lazy-count-invisible to nil.
	(isearch-lazy-count-format): Use lazy-count-invisible-format and
	isearch-lazy-count-invisible.
	(isearch-range-invisible): Handle the value 'can-be-opened' of
	'search-invisible' and don't open overlays for it, just check
	if these overlays can be opened.
	(isearch-lazy-count-invisible): New variable.
	(isearch-lazy-highlight-new-loop): Set isearch-lazy-count-invisible to nil.
	(isearch-lazy-highlight-search): Let-bind search-invisible either to t
	for non-nil isearch-lazy-count, or to 'can-be-opened'.
	(isearch-lazy-highlight-match): Don't highlight matches intended
	to be counted only, not highlighted.
	(isearch-lazy-highlight-buffer-update): Separately count invisible
	matches by isearch-lazy-count-invisible.

	* lisp/info.el (Info-isearch-filter): Check if search-invisible is t.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Don't mention moved variable in dired-x manual

	* doc/misc/dired-x.texi (Technical Details): Remove mention of
	'dired-clean-up-buffers-too'; it has been moved to dired.el.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Delete redundant defgroup dired-keys

	* lisp/dired-x.el (dired-keys): Delete defgroup.
	(dired-bind-vm): Move to :group dired-x.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Move dired-do-relsymlink from dired-x.el to dired.el

	* lisp/dired-x.el (dired-do-relsymlink, dired-make-relative-symlink)
	(dired-do-relsymlink-regexp): Move from here...
	* lisp/dired-aux.el (dired-do-relsymlink, dired-make-relative-symlink)
	(dired-do-relsymlink-regexp): ...to here.  (Bug#21981)

	* lisp/dired-x.el: Move keybinding and menu binding from here...
	* lisp/dired.el (dired-mode-map, dired-mode-regexp-menu): ...to
	here.

	* lisp/dired-x.el (dired-keep-marker-relsymlink): Move from here...
	* lisp/dired.el (dired-keep-marker-relsymlink): ...to here.  Improve
	docstring.

	* doc/misc/dired-x.texi (Miscellaneous Commands): Move
	documentation of above commands from here...
	* doc/emacs/dired.texi (Operating on Files)
	(Transforming File Names): ...to here.

2022-07-08  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/ruby-mode.el (ruby-mode): Set outline-regexp, outline-level.

	Suggested by Yilkal Argaw <yilkalargawworkneh@gmail.com>.

2022-07-08  Mattias Engdegård  <mattiase@acm.org>

	Remove unused member of internal struct

	* src/fns.c (struct textprop_rec, concat_to_string): Remove `from`.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/dired.el (dired-jump-map): Bind also "j" to dired-jump.

2022-07-08  Po Lu  <luangruo@yahoo.com>

	Ensure correct position is returned after child frame movement

	* src/xterm.c (x_set_offset): Synchronize child frame movement
	correctly.

2022-07-08  Mattias Engdegård  <mattiase@acm.org>

	Fix file-name-case-insensitive-p in ffap (bug#56443)

	Don't crash if the file name argument to file-name-case-insensitive-p,
	after expansion, doesn't have a parent directory.  This occurs
	when calling ffap on something that looks like an email address.

	* src/fileio.c (Ffile_name_case_insensitive_p): Return nil if no file
	or parent directory could be found.
	* test/src/fileio-tests.el (fileio-tests--identity-expand-handler)
	(fileio--file-name-case-insensitive-p): New test.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove many items obsolete since 24.1

	* lisp/allout.el (allout-abbreviate-flattened-numbering)
	(allout-mode-deactivate-hook):
	* lisp/ansi-color.el (ansi-color-unfontify-region):
	* lisp/auth-source.el (auth-source-hide-passwords)
	(auth-source-user-or-password)
	(auth-source-forget-user-or-password):
	* lisp/cedet/data-debug.el (data-debug-map):
	* lisp/cedet/semantic/grammar.el (semantic-grammar-syntax-table)
	(semantic-grammar-map):
	* lisp/chistory.el (command-history-map):
	* lisp/comint.el (comint-dynamic-complete)
	(comint-dynamic-complete-as-filename)
	(comint-dynamic-simple-complete):
	* lisp/dired-x.el (read-filename-at-point)
	(dired-x-submit-report):
	* lisp/dos-fns.el (register-name-alist, make-register)
	(register-value, set-register-value, intdos, mode25, mode4350):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-disable-print-circle):
	* lisp/emacs-lisp/chart.el (chart-map):
	* lisp/emacs-lisp/package.el (package-menu-view-commentary):
	* lisp/emacs-lock.el (toggle-emacs-lock, emacs-lock-from-exiting):
	* lisp/erc/erc.el (erc-complete-word):
	* lisp/eshell/em-cmpl.el (eshell-cmpl-suffix-list):
	* lisp/eshell/esh-util.el (eshell-for):
	* lisp/files.el (inhibit-first-line-modes-regexps)
	(inhibit-first-line-modes-suffixes):
	* lisp/gnus/gnus-msg.el (gnus-outgoing-message-group)
	(gnus-debug-files, gnus-debug-exclude-variables):
	* lisp/gnus/gnus-registry.el (gnus-registry-user-format-function-M):
	* lisp/gnus/gnus.el (gnus-local-domain, gnus-carpal):
	* lisp/gnus/nnimap.el (nnimap-split-rule):
	* lisp/iimage.el (turn-on-iimage-mode):
	* lisp/image.el (image-extension-data, image-library-alist):
	* lisp/mail/emacsbug.el (report-emacs-bug-pretest-address):
	* lisp/mail/mail-utils.el (rmail-dont-reply-to):
	* lisp/mail/mailalias.el (mail-complete-function)
	(mail-completion-at-point-function):
	* lisp/mail/rmail.el (rmail-dont-reply-to-names)
	(rmail-default-dont-reply-to-names):
	* lisp/mail/sendmail.el (mail-mailer-swallows-blank-line)
	(mail-sent-via):
	* lisp/menu-bar.el (menu-bar-kill-ring-save):
	* lisp/minibuffer.el (completion-annotate-function)
	(minibuffer-local-filename-must-match-map):
	* lisp/msb.el (msb-after-load-hooks):
	* lisp/obsolete/eieio-compat.el (eieio-defmethod)
	(eieio-defgeneric):
	* lisp/obsolete/info-edit.el (Info-edit-map):
	* lisp/obsolete/starttls.el (starttls-any-program-available):
	* lisp/progmodes/cfengine.el (cfengine-mode-abbrevs):
	* lisp/progmodes/cwarn.el (turn-on-cwarn-mode):
	* lisp/progmodes/make-mode.el (makefile-complete):
	* lisp/progmodes/meta-mode.el (meta-complete-symbol)
	(meta-mode-map):
	* lisp/progmodes/pascal.el (pascal-toggle-completions)
	(pascal-last-completions, pascal-show-completions):
	* lisp/progmodes/prolog.el (prolog-char-quote-workaround):
	* lisp/progmodes/which-func.el (which-func-mode): [FUNCTION]
	* lisp/simple.el (count-lines-region, minibuffer-completing-symbol):
	* lisp/speedbar.el (speedbar-syntax-table, speedbar-key-map):
	* lisp/strokes.el (strokes-report-bug):
	* lisp/subr.el (condition-case-no-debug):
	* lisp/term/ns-win.el (ns-alternatives-map)
	(ns-store-cut-buffer-internal):
	* lisp/term/w32-win.el (w32-default-color-map):
	* lisp/term/x-win.el (x-cut-buffer-or-selection-value):
	* lisp/textmodes/bibtex.el (bibtex-complete)
	(bibtex-entry-field-alist):
	* lisp/textmodes/reftex-index.el (reftex-index-map)
	(reftex-index-phrases-map):
	* lisp/textmodes/reftex-sel.el (reftex-select-label-map)
	(reftex-select-bib-map):
	* lisp/textmodes/reftex-toc.el (reftex-toc-map):
	* lisp/textmodes/rst.el (rst-block-face, rst-external-face)
	(rst-definition-face, rst-directive-face, rst-comment-face)
	(rst-emphasis1-face, rst-emphasis2-face, rst-literal-face)
	(rst-reference-face):
	* lisp/vc/vc-hooks.el (vc-toggle-read-only):
	* lisp/view.el (view-return-to-alist)
	(view-return-to-alist-update): Remove many functions and variables
	obsolete since 24.1.

	* lisp/textmodes/bibtex.el (bibtex-entry-alist): Don't use above
	removed variable 'bibtex-entry-field-alist'.
	* lisp/cedet/data-debug.el (data-debug-edebug-expr)
	(data-debug-eval-expression):
	* lisp/emacs-lisp/trace.el (trace--read-args):
	* lisp/files-x.el (read-file-local-variable-value):
	* lisp/simple.el (read--expression): Don't use above removed variable
	'minibuffer-completing-symbol'.
	* lisp/textmodes/rst.el (rst-font-lock-keywords): Don't use above
	removed variables.
	* src/w32fns.c (Fw32_default_color_map): Delete obsolete function.
	(syms_of_w32fns): Delete defsubr for above defun.
	* src/keyboard.c (syms_of_keyboard) <Vdeferred_action_list>
	<Vdeferred_action_function>: Delete DEFVARs.
	<Qdeferred_action_function>: Delete DEFSYM.
	(syms_of_keyboard_for_pdumper): Adjust for above change.
	(command_loop_1): Don't run deferred-action-function hook.
	* lisp/subr.el (deferred-action-list, deferred-action-function):
	Delete obsoletion statements.
	* lisp/emacs-lisp/ert-x.el (ert-simulate-command): Don't run
	'deferred-action-list' hook.
	* doc/lispref/hooks.texi (Standard Hooks): Delete
	'deferred-action-function'.

	* lisp/emacs-lisp/lisp.el (field-complete):
	* lisp/eshell/em-cmpl.el (eshell-cmpl-initialize):
	* lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc):
	* lisp/gnus/nnmail.el (nnmail-fancy-expiry-target):
	* lisp/mail/mail-utils.el (mail-dont-reply-to):
	* lisp/mail/sendmail.el (sendmail-send-it):
	* lisp/mail/smtpmail.el (smtpmail-send-it):
	* lisp/minibuffer.el (minibuffer-completion-help):
	* lisp/progmodes/python.el: Don't use above removed items.
	* lisp/emacs-lisp/eieio-core.el:
	* lisp/mail/mailalias.el (mail-complete-alist): Doc fixes; don't refer
	to above removed items.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Put safe-local-variable property on auto-insert

	* lisp/autoinsert.el (auto-insert): Put safe-local-variable
	property to allow disabling auto-inserting without a warning.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Stop ffap-machine-at-point from pinging random hosts

	Having this on by default is highly problematic from a security and
	privacy standpoint, as it risks having outgoing traffic that could
	potentially reveal sensitive data (passwords, names, etc.).

	It also seems to be causing issues for users, see e.g.
	https://github.com/emacs-helm/helm/issues/648

	* lisp/ffap.el (ffap-machine-p-known): Change default to 'accept'.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Add :safe property to ffap-machine-p-* variables

	* lisp/ffap.el (ffap--accept-or-reject-p): New predicate defun.
	(ffap-machine-p-local, ffap-machine-p-known)
	(ffap-machine-p-unknown): Add :safe property using above new
	predicate.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Add tests for mail-extr.el

	* test/lisp/mail/mail-extr-tests.el: New file.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Avoid obsolete initial-input argument in net-utils.el

	* lisp/net/net-utils.el (ping, nslookup-host, dns-lookup-host)
	(run-dig, ftp, smbclient, smbclient-list-shares, finger)
	(network-connection-to-service): Don't use obsolete initial-input
	argument.  Use 'format-prompt'.  (Bug#56436)

2022-07-08  Po Lu  <luangruo@yahoo.com>

	Improve behavior of sticky tooltips on Haiku

	* src/haiku_support.cc (class EmacsView, MouseMoved): Remove
	`tooltip_position'.
	(class EmacsMotionSuppressionView): New class.
	(BView_set_and_show_sticky_tooltip): Rename to
	`be_show_sticky_tooltip'.  Add motion suppression view.

	* src/haiku_support.h: Update prototypes.
	* src/haikufns.c (Fx_show_tip): Update for renamed function.

2022-07-08  Po Lu  <luangruo@yahoo.com>

	Fix flickering system tooltips on Haiku

	* src/haiku_support.cc (class EmacsView, MouseMoved): Restore
	sticky status and mouse relative position.
	(BView_set_and_show_sticky_tooltip):
	* src/haikufns.c (haiku_hide_tip): Fix coding style.

2022-07-08  Eli Zaretskii  <eliz@gnu.org>

	* src/xdisp.c (set_vertical_scroll_bar): Remove stale comment.

2022-07-08  Eli Zaretskii  <eliz@gnu.org>

	Fix calculation of the vertical scroll bar's thumb

	* src/xdisp.c (set_vertical_scroll_bar): Compute window's end
	position "by hand" if w->window_end_pos cannot be relied upon.

2022-07-08  Po Lu  <luangruo@yahoo.com>

	Reduce synchronization setting frame alpha

	* src/xterm.c (x_set_frame_alpha): Don't synchronize while
	setting alpha property, and don't ask for the current value of
	the opacity property, which is much more expensive than changing
	it.

2022-07-08  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	2ac0ddc4ac ; * lisp/net/net-utils.el: Minor doc fixes.

2022-07-07  Po Lu  <luangruo@yahoo.com>

	Fix returned action symbol upon "xterm" drop

	* src/xterm.c (x_dnd_do_unsupported_drop): Set
	x_dnd_action_symbol.
	(x_dnd_begin_drag_and_drop): Don't clear it afterwards.

2022-07-07  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/emacs-lisp/ert.el (Commentary): Refer to the Info manual.

2022-07-07  Stefan Kangas  <stefankangas@gmail.com>

	Prefer keymap inheritance in shr-image-map

	* lisp/net/shr.el (shr-image-map): Replace copy-keymap with
	inheritance.

2022-07-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make imenu--create-keymap more resilient

	* lisp/imenu.el (imenu--create-keymap): Ignore nil items in the
	alist (bug#56430).

2022-07-07  Eli Zaretskii  <eliz@gnu.org>

	Fix buffer-tests

	* test/src/buffer-tests.el (test-restore-buffer-modified-p): Don't
	assume turning on auto-save-mode cannot auto-save immediately.

2022-07-07  Mattias Engdegård  <mattiase@acm.org>

	Faster append and vconcat

	By separating the code paths for append and vconcat, each becomes
	simpler and faster.

	* src/fns.c (concat_strings): Rename to...
	(concat_to_string): ...this.
	(concat): Split into concat_to_list and concat_to_vector.
	(concat_to_list, concat_to_vector): New, specialized and
	streamlined from earlier combined code.
	(concat2, concat3, Fappend, Fconcat, Fvconcat): Adjust calls.

2022-07-07  Alan Mackenzie  <acm@muc.de>

	Remove obscure, obsolete code from do_switch_frame

	This is relevant for bug #56305, and might solve that bug.  The code being
	removed went into Emacs between 1992 and 1994, and looks to have been a
	workaround for switching frames, before the command 'other-frame' had been
	written.  Nowadays, that code has harmful effects, causing frames' focus to be
	redirected at random, sometimes back to the frame itself.

	* src/frame.c (do_switch_frame): Remove 53 lines of code.

2022-07-07  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/net/dig.el (dig): Provide default.

2022-07-07  Stefan Kangas  <stefankangas@gmail.com>

	Make net-utils-url at point funs obsolete in favor of ffap

	* lisp/net/net-utils.el (net-utils-machine-at-point)
	(net-utils-url-at-point): Redefine as obsolete function alias for
	'ffap-machine-at-point' and 'ffap-url-at-point'.  Update callers.
	* lisp/ffap.el (ffap-machine-at-point, ffap-url-at-point): Autoload.

2022-07-07  Po Lu  <luangruo@yahoo.com>

	Fix selection disowning upon frame deletion on Wayland

	* src/pgtkselect.c (pgtk_clear_frame_selections): Manually
	disown cleared selections.  (bug#56434)

2022-07-07  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/net/eww.el (eww-browse-url): Add 'browser-kind' property.

	* lisp/woman.el (woman): Fix comment; don't mention gnudoit.

2022-07-07  Stefan Kangas  <stefankangas@gmail.com>

	Make two XEmacs related variables obsolete

	* lisp/net/browse-url.el (browse-url-gnudoit-program)
	(browse-url-gnudoit-args): Make obsolete.  The corresponding command
	'browse-url-w3-gnudoit' is already obsolete since 25.1.

2022-07-07  Po Lu  <luangruo@yahoo.com>

	Fix GTK build

	* src/xterm.c (x_dnd_begin_drag_and_drop): Update GTK quitting
	code for last change too.  Reported by Norbert Koch
	<viteno@netic.de>.

2022-07-07  João Távora  <joaotavora@gmail.com>

	Prevent desktop.el from saving/restoring eglot--managed-mode

	Although desktop.el compatibility is Emacs bughttps://github.com/joaotavora/eglot/issues/56407, the optimal
	solution agreed to there is a bit more work than what I have time to
	right now.  See e.g.
	https://debbugs.gnu.org/cgi/bugreport.cgi?bug=bug%2356407https://github.com/joaotavora/eglot/issues/68.  For
	now, just use `with-eval-after-load'

	* eglot.el (Hacks desktop): Add eglot--managed-mode to
	desktop-minor-mode-handlers

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/990

2022-07-07  João Távora  <joaotavora@gmail.com>

	Apply any additionaltextedits unconditionally

	* eglot.el (eglot-completion-at-point): Apply any
	additionalTextEdits unconditionally.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/981

2022-07-07  Po Lu  <luangruo@yahoo.com>

	Fix quitting out of selection converters during drag and drop

	* src/xterm.c (x_dnd_process_quit): New function.
	(x_dnd_begin_drag_and_drop): Use it instead.  Also quit if
	quit-flag is true immediately after a selection converter is
	run.

2022-07-07  Stefan Kangas  <stefankangas@gmail.com>

	Mark comint modes in net-utils.el as non-interactive

	* lisp/net/net-utils.el (net-utils-mode, nslookup-mode, ftp-mode)
	(smbclient-mode, network-connection-mode): Mark as non-interactive.
	(nslookup-mode-map, ftp-mode-map): Prefer defvar-keymap.

2022-07-07  Stefan Kangas  <stefankangas@gmail.com>

	Make 'run-dig' command obsolete in favor of 'dig'

	* lisp/net/net-utils.el (run-dig): Redefine in terms of `dig' and make
	obsolete.  (Bug#56432).
	(dig-program): Delete duplicate defcustom; it is also in dig.el.
	(dig-program-options): Move from here...
	* lisp/net/dig.el (dig-program-options): ...to here.
	(dig-invoke): Respect 'dig-program-options'.
	(dig): Prompt for DNS server when given double prefix argument.

2022-07-07  Eli Zaretskii  <eliz@gnu.org>

	Fix undo of changes in cloned indirect buffers

	* lisp/simple.el (primitive-undo): If the visited-modtime of the
	indirect buffer's file is bogus, use the modtime of the file
	visited by its base buffer.

	* src/undo.c (record_first_change): Call
	'buffer_visited_file_modtime' with the correct buffer, instead of
	always calling 'Fvisited_file_modtime', which returns possibly
	bogus values for indirect buffers.
	* src/fileio.c (Fset_visited_file_modtime): Signal a meaningful
	error for indirect buffers.
	(buffer_visited_file_modtime): New function, with implementation
	taken from 'Fvisited_file_modtime'.
	(Fvisited_file_modtime): Call 'buffer_visited_file_modtime'.
	* src/lisp.h: Add prototype for 'buffer_visited_file_modtime'.
	(Bug#56397)

2022-07-07  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/net/dig.el (dig-exit): Mark for 'dig-mode'.

2022-07-07  Visuwesh  <visuweshm@gmail.com>

	Make the Indian itrans methods more phonetic

	The characters ऋ and ॠ are pronunced as ru in languages such as
	Marathi, Gujarati, Telugu, etc. so add new translation rules that
	reflects this sound.  (bug#56414)

	* lisp/language/ind-util.el (indian-itrans-v5-table): Add new
	translation rules to make the input method more phonetic.
	(indian-tml-base-table, indian-tml-base-digits-table): Fix typo.

2022-07-07  Juri Linkov  <juri@linkov.net>

	Don't accumulate trailing newlines on every save of .dir-locals.el

	* lisp/files-x.el (modify-dir-local-variable): Insert a newline
	only after creating a new file.
	(dir-locals-to-string): Remove newline to not add more newlines
	on every save.

2022-07-07  Po Lu  <luangruo@yahoo.com>

	Fix `trace-function' default buffer

	* lisp/emacs-lisp/trace.el (trace--read-args): Don't use
	format-prompt; instead, use DEF arg to read-buffer.

2022-07-06  Sean Whitton  <spwhitton@spwhitton.name>

	gnus-advanced-body: Fix return value

	* gnus-logic.el (gnus-advanced-body): Return whether the search
	succeeded, not the value of one of the cleanup forms.

2022-07-06  Po Lu  <luangruo@yahoo.com>

	Fix NS build

	* src/keyboard.c (process_special_events): Don't define copy and
	moved events on the wrong toolkit.

2022-07-06  Po Lu  <luangruo@yahoo.com>

	Port `x-lost-selection-functions' to Haiku

	* src/haiku_io.c (haiku_len): Add `CLIPBOARD_CHANGED_EVENT'.
	* src/haiku_select.cc (be_update_clipboard_count): Set ownership
	flags.
	(be_handle_clipboard_changed_message):
	(be_start_watching_selection): New functions.

	* src/haiku_support.cc (class Emacs): Handle
	B_CLIPBOARD_CHANGED.

	* src/haiku_support.h (enum haiku_event_type): New event
	`CLIPBOARD_CHANGED_EVENT'.
	(struct haiku_clipboard_changed_event): New struct.

	* src/haikuselect.c (haiku_handle_selection_clear)
	(haiku_selection_disowned, haiku_start_watching_selections): New
	functions.
	(syms_of_haikuselect): New defsym and defvar.

	* src/haikuselect.h: Update prototypes.
	* src/haikuterm.c (haiku_read_socket): Handle selection events.
	(haiku_term_init): Start watching selections.
	* src/haikuterm.h: Update prototypes.
	* src/keyboard.c (kbd_buffer_get_event, process_special_events)
	(mark_kboards): Handle SELECTON_CLEAR_EVENTs correctly on Haiku.

2022-07-06  Po Lu  <luangruo@yahoo.com>

	Avoid excessive synchronization performing "xterm" drops

	* src/xterm.c (x_dnd_do_unsupported_drop): Asynchronously catch
	errors around XSendEvent.

2022-07-06  Stefan Kangas  <stefankangas@gmail.com>

	End new .dir-locals.el files with a newline

	* lisp/files-x.el (dir-locals-to-string): Add newline at the end of
	newly created .dir-locals.el files.  This avoids git complaining about
	"No newline at end of file".

2022-07-06  Stefan Kangas  <stefankangas@gmail.com>

	Autoload safe local property for plstore-encrypt-to

	* lisp/plstore.el (plstore-encrypt-to): Autoload 'safe-local-variable'
	property for improved security.

2022-07-06  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defcustom :safe to putting 'safe-local-variable'

	* lisp/emacs-lisp/lisp-mode.el (lisp-indent-offset)
	(lisp-body-indent, emacs-lisp-docstring-fill-column):
	* lisp/files.el (version-control):
	* lisp/progmodes/modula2.el (m2-indent):
	* lisp/progmodes/octave.el (octave-block-offset):
	* lisp/progmodes/sh-script.el (sh-basic-offset):
	* lisp/progmodes/tcl.el (tcl-indent-level)
	(tcl-continued-indent-level):
	* lisp/simple.el (fill-prefix):
	* lisp/textmodes/fill.el (colon-double-space):
	* lisp/textmodes/paragraphs.el (paragraph-start)
	(paragraph-separate, sentence-end-double-space)
	(sentence-end-without-period, sentence-end-without-space)
	(sentence-end, sentence-end-base, page-delimiter)
	(paragraph-ignore-fill-prefix):
	* lisp/textmodes/tex-mode.el (tex-fontify-script):
	* lisp/vc/add-log.el (add-log-dont-create-changelog-file):
	* lisp/vc/vc-hooks.el (vc-follow-symlinks): Prefer defcustom :safe to
	putting 'safe-local-variable'.

2022-07-06  Juri Linkov  <juri@linkov.net>

	* lisp/repeat.el (describe-repeat-maps): Handle non-symbol keymap (bug#21634).

2022-07-06  Juri Linkov  <juri@linkov.net>

	Add new args MESSAGE and TIMEOUT to set-transient-map (bug#21634)

	* lisp/subr.el (set-transient-map): Add new args MESSAGE and TIMEOUT.
	(set-transient-map-timeout, set-transient-map-timer): New variables.

	* lisp/international/emoji.el (emoji-zoom-increase):
	* lisp/indent.el (indent-rigidly):
	* lisp/face-remap.el (text-scale-adjust, global-text-scale-adjust):
	Use the arg MESSAGE of set-transient-map.

	* doc/lispref/keymaps.texi (Controlling Active Maps): Mention new args
	MESSAGE and TIMEOUT of set-transient-map.

2022-07-06  Stefan Kangas  <stefankangas@gmail.com>

	Make some additional defcustom types more restrictive

	* lisp/desktop.el (desktop-lazy-idle-delay):
	* lisp/files.el (dired-kept-versions)
	(kept-old-versions, kept-new-versions):
	* lisp/filesets.el (filesets-max-submenu-length)
	(filesets-max-entry-length, filesets-tree-max-level)
	(filesets-query-user-limit):
	* lisp/hi-lock.el (hi-lock-file-patterns-range)
	(hi-lock-highlight-range):
	* lisp/ido.el (ido-max-work-directory-list):
	* lisp/image/gravatar.el (gravatar-cache-ttl):
	* lisp/imenu.el (imenu-auto-rescan-maxout, imenu-max-items):
	* lisp/informat.el (Info-split-threshold):
	* lisp/mail/hashcash.el (hashcash-default-payment)
	(hashcash-default-accept-payment):
	* lisp/mail/mail-hist.el (mail-hist-history-size):
	* lisp/mail/smtpmail.el (smtpmail-retries):
	* lisp/msb.el (msb-display-most-recently-used):
	* lisp/nxml/rng-valid.el (rng-state-cache-distance)
	(rng-validate-chunk-size):
	* lisp/progmodes/gdb-mi.el (gdb-max-source-window-count):
	* lisp/recentf.el (recentf-arrange-by-rules-min-items):
	* lisp/simple.el (kill-ring-max, mark-ring-max)
	(global-mark-ring-max):
	* lisp/tab-line.el (tab-line-tab-name-truncated-max):
	* lisp/term.el (term-buffer-maximum-size, term-input-chunk-size):
	* lisp/thumbs.el (thumbs-max-image-number)
	(thumbs-thumbsdir-max-size, thumbs-relief, thumbs-margin)
	(thumbs-image-resizing-step):
	* lisp/type-break.el (type-break-interval)
	(type-break-good-rest-interval, type-break-query-interval)
	(type-break-warning-repeat):
	* lisp/vc/compare-w.el (compare-windows-sync-string-size):
	* lisp/woman.el (woman-fill-column): Use defcustom :type natnum.

	* lisp/emacs-lisp/backtrace.el (backtrace-line-length):
	* lisp/doc-view.el (doc-view-conversion-refresh-interval):
	Use defcustom :type natnum and allow the nil value.

	* lisp/gnus/spam-stat.el (spam-stat-process-directory-age):
	Use defcustom :type integer.

2022-07-06  Gregory Heytings  <gregory@heytings.org>

	Fix improvement of isearch in auto-narrow-mode.

	* lisp/files.el (auto-narrow--reset-isearch-lazy-highlight): New internal
	function.
	(auto-narrow-pre-command-function, auto-narrow-post-command-function): Use the
	new internal function.

2022-07-06  Stefan Kangas  <stefankangas@gmail.com>

	Fix missing :value with defcustom const :type

	* lisp/calendar/calendar.el (calendar-intermonth-header)
	(calendar-intermonth-text, calendar-date-style):
	* lisp/calendar/diary-lib.el (diary-face-attrs):
	* lisp/emacs-lisp/package.el (package-check-signature):
	* lisp/erc/erc-dcc.el (erc-dcc-get-default-directory):
	* lisp/gnus/gnus-art.el (gnus-auto-select-part):
	* lisp/gnus/gnus-cus.el (gnus-agent-parameters):
	* lisp/gnus/gnus.el (gnus-user-agent):
	* lisp/mail/rmail.el (rmail-retry-ignored-headers):
	* lisp/progmodes/sh-script.el (sh-indent-after-continuation):
	Fix missing :value with defcustom const :type.

2022-07-06  Gregory Heytings  <gregory@heytings.org>

	Improve isearch in auto-narrow-mode.

	* lisp/isearch.el (isearch-search): Set isearch-lazy-highlight to nil before
	widening in auto-narrow-mode.

	* lisp/files.el (auto-narrow--isearch-lazy-highlight): New internal variable.
	(auto-narrow-pre-command-function, auto-narrow-post-command-function): Use it.

2022-07-06  Po Lu  <luangruo@yahoo.com>

	Fix infinite looping around Haiku menus

	* src/haikumenu.c (haiku_menu_show): Block SIGIO around menu
	event loop.
	* src/haikuterm.c (haiku_read_socket): Flush tooltip frames
	after resize.

2022-07-06  Davide Masserut  <dm@mssdvd.com>

	Send region to the subshell specified by the current file interpreter

	* sh-script.el (sh-execute-region): Send region to the subshell
	specified by the current file interpreter (bug#56406).

2022-07-06  Manuel Giraud  <manuel@ledu-giraud.fr>

	Remove soft newlines in longlines-mode

	* lisp/longlines.el (longlines-mode, longlines-encode-string): Update
	from `buffer-substring-filters' to `filter-buffer-substring-function'.
	Remove soft newlines in substring (bug#56335).

2022-07-06  Gregory Heytings  <gregory@heytings.org>

	Various improvements to auto-narrow mode.

	* lisp/files.el (auto-narrow-display-length): Improve docstring.
	(auto-narrow-widen-automatically): Add 'undo' to the command list.
	(auto-narrow-hook): New defcustom.
	(auto-narrow-pre-command-function, auto-narrow-post-command-function):
	Move initialization code.
	(auto-narrow-mode): Do not make the 'auto-narrow-mode' permanent local
	anymore.

	* lisp/font-lock.el (turn-off-font-lock-mode): New convenience function.

	* src/xdisp.c (set_vertical_scroll_bar): Fix typo.
	(redisplay_window): Use the new convenience function.

	* src/buffer.h (BUFFER_NEEDS_AUTO_NARROWING_P,
	BUFFER_AUTO_NARROWED_NON_NARROWED_P): Two new convenience functions.

	* src/window.c (Frecenter): Do not recenter auto-narrowed buffers that
	are not actually narrowed.

	* etc/NEWS: Improvement.

	* doc/emacs/display.texi (Auto-Narrowing): Improvement.

2022-07-06  F. Jason Park  <jp@neverwas.me>

	* lisp/erc/erc-track.el (erc-track-minor-mode-map): Doc fix.

2022-07-06  dickmao  <dick.r.chiang@gmail.com>

	Use compatibility macro for ISUPPORT caching in ERC

	* lisp/erc/erc-backend.el (erc--with-memoization): Defalias was a
	kung-fu I've never seen before. (Bug#56340)

2022-07-06  Po Lu  <luangruo@yahoo.com>

	Stop synchronizing after sending XEmbed events

	* src/xterm.c (xembed_send_message): Don't sync and handle
	errors, which is actually why the XSync call in the spec exists.

2022-07-06  Martin Rudalics  <rudalics@gmx.at>

	Fix 'fit-frame-to-buffer' (Bug#56102)

	* lisp/window.el (fit-frame-to-buffer-sizes): Fix doc-string.
	Give calls to 'max' a second argument so they do something
	useful.  If ONLY equals 'vertically', call
	'window-text-pixel-size' with X-LIMIT nil (Bug#56102).  For
	minimum sizes of the window to fit, use 'window-safe-min-size' by
	default.
	* doc/lispref/windows.texi (Resizing Windows): Fix descriptions of
	'fit-frame-to-buffer' and 'fit-frame-to-buffer-sizes'.

2022-07-06  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* msdos/sedlibmk.inp: Define GL_GNULIB_RAWMEMCHR.
	* src/process.c (Fsignal_names): Disable on MS-DOS and use
	SIGNUM_BOUND, which is always provided by gnulib.

2022-07-06  Po Lu  <luangruo@yahoo.com>

	Speed up interning XDS atoms

	* src/xselect.c (symbol_to_x_atom, x_atom_to_symbol)
	(syms_of_xselect): Handle new atoms.
	* src/xterm.c (x_atom_refs):
	* src/xterm.h (struct x_display_info): New atoms
	`XdndDirectSave0', `XdndActionDirectSave' and `text/plain'.

2022-07-06  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

	* admin/merge-gnulib (AVOIDED_MODULES): Add chmod.

2022-07-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	6b5d829d9d Add index entry for "ignore case"
	29e1459965 ; * lisp/files.el (remote-file-name-inhibit-cache): Minor ...

2022-07-06  Paul Eggert  <eggert@cs.ucla.edu>

	Adjust better to Autoconf quoting style change

	* admin/gitmerge.el (gitmerge-emacs-version):
	* admin/nt/dist-build/build-zips.sh (ACTUAL_VERSION):
	* admin/quick-install-emacs (VERSION):
	* lisp/cedet/ede/emacs.el (ede-emacs-version):
	Adjust to change in configure.ac’s Autoconf quoting style.
	* etc/srecode/ede-autoconf.srt:
	* test/lisp/progmodes/autoconf-tests.el:
	(autoconf-tests-current-defun-function-define)
	(autoconf-tests-current-defun-function-subst):
	Use better Autoconf quoting.
	* make-dist (version): Simplify.

2022-07-05  Po Lu  <luangruo@yahoo.com>

	Reduce duplicate code cleaning up DND processes

	* src/xterm.c (x_restore_events_after_dnd): New function.
	(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop): Use
	that instead of manually cleaning up properties and events.

2022-07-05  Po Lu  <luangruo@yahoo.com>

	Don't select for unnecessary properties during DND

	* src/xterm.c (x_dnd_begin_drag_and_drop): Don't select for
	property changes when not using toplevels.

2022-07-05  Po Lu  <luangruo@yahoo.com>

	Fix announcements of XDND mouse rectangles

	* lisp/x-dnd.el (x-dnd-handle-xdnd): Use correct meaning of "2",
	which isn't well documented.
	* src/xterm.c (handle_one_xevent): Likewise.  Also fix unpacking
	of mouse rects.

2022-07-05  Gregory Heytings  <gregory@heytings.org>

	Actually fix the long lines display bug (bug#56393).

	* lisp/files.el (auto-narrow-mode): New minor mode.
	(auto-narrow-pre-command-function, auto-narrow-post-command-function):
	New auxiliary functions for the minor mode.
	(auto-narrow-display-length, auto-narrow-widen-automatically): New
	defcustoms for the minor mode.
	(auto-narrow--widen-automatically, auto-narrow--isearch-widen-automatically,
	auto-narrow--initialized): New internal variables for the minor mode.

	* src/buffer.h (struct buffer): New internal variable for the minor mode.
	(bset_auto_narrow__narrowing_state, BUFFER_AUTO_NARROWED_P): New
	auxiliary functions.

	* src/buffer.c (init_buffer_once, syms_of_buffer): New internal variable
	for the minor mode. Update the docstring of mode-line-format.

	* src/fileio.c (Finsert_file_contents): Detect whether the minor mode should
	be entered when the buffer is displayed.
	(syms_of_fileio): New defcustom for the minor mode.

	* src/keyboard.c (syms_of_keyboard): New hook functions for the minor mode.
	(command_loop_1): Execute the hook functions.

	* src/xdisp.c (redisplay_window): Enter the minor mode when the buffer is
	displayed.
	(decode_mode_spec): Indicate when the minor mode is active
	in the modeline.  Indicate the buffer position relative to the whole buffer.
	(set_vertical_scroll_bar): Indicate the buffer position relative to the
	whole buffer.
	(syms_of_xdisp): Two new symbols.

	* lisp/isearch.el (isearch-widen-automatically): New defcustom.
	(isearch-search): Use the new defcustom.

	* lisp/bindings.el (mode-line-modes): Do not propertize the indication
	in the modeline when the new minor mode is active.

	* etc/NEWS: Announce the new minor mode, and remove the unobsoletion
	indication for 'longlines-mode'.

	* lisp/longlines.el: Reobsolete longlines-mode.

	* doc/emacs/display.texi (Auto-Narrowing): New section, describing the new
	minor mode.
	(Display): Entry for the new section.

	* doc/emacs/trouble.texi (Long Lines): Remove the section.
	(Lossage): Remove the entry for the Long Lines section.

	* doc/emacs/emacs.texi (Top): Remove the entry for the Long Lines section.

2022-07-05  Glenn Morris  <rgm@gnu.org>

	* make-dist: Fix after recent configure.ac quoting changes.

2022-07-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix custom-initialize-reset bootstrap error

	* lisp/custom.el (custom-initialize-reset): Fix bootstrap problem
	by avoiding when-let.

2022-07-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix rcirc buffer name collisions

	* lisp/net/rcirc.el (rcirc-handler-NICK): Avoid naming collisions
	when renaming buffers (bug#45872).

2022-07-05  Michael Albinus  <michael.albinus@gmx.de>

	Mention remote-file-name-inhibit-auto-save-visited in Tramp manual

	* doc/misc/tramp.texi (Auto-save File Lock and Backup):
	Explain remote-file-name-inhibit-auto-save-visited.

2022-07-05  Stefan Kangas  <stefankangas@gmail.com>

	Add index entry for "ignore case"

	* doc/emacs/glossary.texi (Glossary): Add index entry for "ignore
	case" pointing to "Case Folding".

2022-07-05  Stefan Kangas  <stefankangas@gmail.com>

	Rename new option to remote-file-name-inhibit-auto-save-visited

	* lisp/files.el (remote-file-name-inhibit-auto-save-visited):
	Rename from 'auto-save-visited-remote-files' and invert logic.
	(auto-save-visited-mode): Adjust accordingly.  (Bug#41333)
	Suggested by Michael Albinus <michael.albinus@gmx.de>.

2022-07-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-07-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Give a warning if setopt has been used with an invalid value

	* lisp/cus-edit.el (setopt--set): Mark the variable for checking.

	* lisp/custom.el (custom-initialize-reset): Give a warning if the
	type is wrong (bug#56400).

	* lisp/wid-edit.el (widget-convert): Autoload.

2022-07-05  Stefan Kangas  <stefankangas@gmail.com>

	Re-fix narrowing problem in tramp-debug-buffer-command-completion-p

	* lisp/net/tramp.el (tramp-debug-buffer-command-completion-p):
	Respect narrowing also for end of substring.  (Bug#56225)

2022-07-05  Stefan Kangas  <stefankangas@gmail.com>

	Make some defcustom types more restrictive

	* lisp/abbrev.el (abbrev-suggest-hint-threshold):
	* lisp/bookmark.el (bookmark-bmenu-file-column)
	(bookmark-menu-length):
	* lisp/buff-menu.el (Buffer-menu-size-width)
	(Buffer-menu-mode-width):
	* lisp/calendar/calendar.el (calendar-week-start-day)
	(calendar-intermonth-spacing, calendar-column-width)
	(calendar-day-digit-width):
	* lisp/calc/calc.el (calc-undo-length):
	* lisp/calendar/timeclock.el (timeclock-workday):
	* lisp/comint.el (comint-buffer-maximum-size)
	(comint-input-ring-size):
	* lisp/doc-view.el (doc-view-resolution, doc-view-image-width):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-max-column):
	* lisp/emacs-lisp/comp.el (native-comp-debug)
	(native-comp-verbose, native-comp-async-jobs-number):
	* lisp/emacs-lisp/package.el (package-name-column-width)
	(package-version-column-width, package-status-column-width)
	(package-archive-column-width):
	* lisp/eshell/esh-mode.el (eshell-buffer-maximum-lines):
	* lisp/frame.el (blink-cursor-blinks):
	* lisp/info.el (Info-breadcrumbs-depth):
	* lisp/jit-lock.el (jit-lock-chunk-size):
	* lisp/kmacro.el (kmacro-ring-max):
	* lisp/menu-bar.el (yank-menu-length, yank-menu-max-items):
	* lisp/midnight.el (clean-buffer-list-delay-general)
	(clean-buffer-list-delay-special):
	* lisp/net/dictionary.el (dictionary-port)
	(dictionary-proxy-port):
	* lisp/net/ldap.el (ldap-default-port):
	* lisp/net/pop3.el (pop3-port, pop3-stream-length):
	* lisp/net/rcirc.el (rcirc-default-port):
	* lisp/net/sieve-manage.el (sieve-manage-default-port):
	* lisp/play/spook.el (spook-phrase-default-count):
	* lisp/play/tetris.el (tetris-buffer-width)
	(tetris-buffer-height, tetris-width, tetris-height)
	(tetris-top-left-x, tetris-top-left-y):
	* lisp/profiler.el (profiler-sampling-interval):
	* lisp/progmodes/sql.el (sql-port):
	* lisp/recentf.el (recentf-max-menu-items):
	* lisp/strokes.el (strokes-grid-resolution):
	* lisp/tab-bar.el (tab-bar-tab-name-truncated-max):
	* lisp/term/xterm.el (xterm-max-cut-length):
	* lisp/time.el (display-time-interval, world-clock-timer-second):
	* lisp/url/url-cache.el (url-cache-expire-time):
	* lisp/url/url-cookie.el (url-cookie-save-interval):
	* lisp/url/url-history.el (url-history-save-interval):
	* lisp/url/url-queue.el (url-queue-parallel-processes)
	(url-queue-timeout):
	* lisp/url/url-vars.el (url-max-password-attempts)
	(url-max-redirections):
	* lisp/vc/emerge.el (emerge-min-visible-lines):
	* lisp/vc/vc.el (vc-log-show-limit):
	* lisp/window.el (window-min-height, window-min-width):
	* lisp/winner.el (winner-ring-size): Use :type natnum.

	* lisp/savehist.el (savehist-file-modes): Fix setting to nil value and
	use :type natnum.

2022-07-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't hard-code `M-c' in `read-regexp'

	* lisp/replace.el (read-regexp-map): New map.
	(read-regexp--case-fold, read-regexp-toggle-case-folding)
	(read-regexp): Factor out to avoid hard-coding `M-c'.

2022-07-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Document left/right mwheel events

	* doc/lispref/commands.texi (Misc Events): Document left/right
	mwheel events (bug#41722).

2022-07-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention byte order marks in string-limit doc string

	* lisp/emacs-lisp/subr-x.el (string-limit): Mention byte order
	marks (bug#48324).

2022-07-05  Stefan Kangas  <stefankangas@gmail.com>

	New user option auto-save-visited-remote-files

	* lisp/files.el (auto-save-visited-remote-files): New user option.
	(auto-save-visited-mode): Use above new variable to decide whether
	or not to save remote files.  (Bug#41333)

2022-07-05  Stefan Kangas  <stefankangas@gmail.com>

	New user option auto-save-visited-mode-predicate

	* lisp/files.el (auto-save-visited-mode-predicate): New defcustom.
	(auto-save-visited-mode): Use above new variable as a predicate to
	decide whether or not to save a buffer.

2022-07-05  Stefan Kangas  <stefankangas@gmail.com>

	Shorten name of recently added command to emacs-news-open-line

	* lisp/textmodes/emacs-news-mode.el (emacs-news-open-line): Rename
	from 'emacs-news-mode-open-line'.

2022-07-05  Po Lu  <luangruo@yahoo.com>

	Fix manually disowning Emacs drag atoms

	* src/xterm.c (handle_one_xevent): Disown Motif drag atom if
	eventp->time is CurrentTime as well.  This can happen with some
	synthetic events.

2022-07-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove the interactive prefix from emoji-insert

	* lisp/international/emoji.el (emoji-insert): Remove the prefix
	action from this command, since the same is already available on
	`C-x 8 e s', and we're considering using the prefix to copy to the
	kill ring.

2022-07-05  Po Lu  <luangruo@yahoo.com>

	Allow immediately saving XDS drops

	This fixes things with programs that have a very timeout, such
	as Chromium, within which it isn't practical for the user to
	confirm the default file name.

	* lisp/x-dnd.el (x-dnd-direct-save-function): Add new choices to
	defcustom.
	(x-dnd-init-frame): Use fast protocol requests.
	(x-dnd-save-direct-immediately): New function.
	(x-dnd-handle-xds-drop): Fix nil values of selected file name.

2022-07-05  Paul Eggert  <eggert@cs.ucla.edu>

	Quote configure.ac arguments more consistently

	This should help avoid further Autoconf portability gotchas such as
	the one recently fixed in 2022-06-27T04:26:01Z!meyering@fb.com.
	* autogen.sh (autoconf_min): Adjust pattern to match
	updated configure.ac.
	* configure.ac: Quote arguments more consistently,
	as per the Autoconf manual.

2022-07-05  Paul Eggert  <eggert@cs.ucla.edu>

	Don’t mishandle preset emacs_cv_lesstif

	* configure.ac: Restore CFLAGS etc. correctly even when
	emacs_cv_lesstif is already set on the command line.

2022-07-05  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d5e1424174 Expand docstrings related to auto-saving

2022-07-04  Po Lu  <luangruo@yahoo.com>

	Don't take XCB socket every time we want the no of the next request

	* src/xterm.c (x_ignore_errors_for_next_request, x_uncatch_errors)
	(x_check_errors, x_had_errors_p): Don't call XNextRequest
	redundantly.  Use NextRequest if it was immediately preceded by
	XNextRequest, which updates dpy->request.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	New command emacs-news-mode-open-line

	* lisp/textmodes/emacs-news-mode.el
	(emacs-news-mode-open-line): New command.
	(emacs-news-mode-map): Remap 'open-line' to above new command.

2022-07-04  Po Lu  <luangruo@yahoo.com>

	Improve support for remote files in XDS

	* lisp/x-dnd.el (x-dnd-direct-save-function): Remove "local file
	name" from documentation.
	(x-dnd-save-direct): Handle remote file names normally.
	(x-dnd-handle-xds-drop): Handle remote file names in URI.

2022-07-04  Po Lu  <luangruo@yahoo.com>

	Don't overestimate supported input extension version on GTK 3

	* src/xterm.c (x_term_init): If minor > original_minor (the
	maximum version supported by libXi), set it back to
	original_minor.

2022-07-04  Alexander Adolf  <alexander.adolf@condition-alpha.com>

	Add reverse mapping for EUDC attribute names

	* lisp/net/eudc.el (eudc-translate-query): new optional parameter to
	reverse the mapping direction
	(eudc-translate-attribute-list): new optional parameter to
	reverse the mapping direction

2022-07-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(gnus-inverse-list-range-intersection): Update alias

	* lisp/gnus/gnus-range.el (gnus-inverse-list-range-intersection):
	Don't alias to an obsolete alias.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	Expand docstrings related to auto-saving

	* lisp/files.el (auto-save-visited-mode):
	* lisp/simple.el (auto-save-mode): Expand docstring.

2022-07-04  Paul Eggert  <eggert@cs.ucla.edu>

	Fix core dump with x-get-local-selection

	* src/xselect.c (Fx_get_local_selection): Check that VALUE has 4
	elements, since x_get_local_selection can dump core otherwise.
	This pacifies gcc -Wanalyzer-null-dereference, which found the
	problem.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	Add quit-window entry to list-timers menu

	* lisp/emacs-lisp/timer-list.el (timer-list-mode-map): Add
	quit-window entry to menu.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in emacs-lisp/*.el

	* lisp/emacs-lisp/backtrace.el (backtrace-mode-map):
	* lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-mode-map):
	* lisp/emacs-lisp/checkdoc.el (checkdoc-minor-mode-map):
	* lisp/emacs-lisp/crm.el (crm-local-completion-map)
	(crm-local-must-match-map):
	* lisp/emacs-lisp/debug.el (debugger-mode-map):
	* lisp/emacs-lisp/edebug.el (edebug-mode-map, edebug-global-map)
	(edebug-eval-mode-map):
	* lisp/emacs-lisp/eieio-custom.el (eieio-custom-mode-map):
	* lisp/emacs-lisp/elp.el (elp-results-symname-map):
	* lisp/emacs-lisp/lisp-mode.el (lisp-mode-shared-map):
	* lisp/emacs-lisp/re-builder.el (reb-mode-map)
	(reb-lisp-mode-map, reb-subexp-mode-map):
	* lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode-map)
	(tabulated-list-sort-button-map):
	* lisp/emacs-lisp/timer-list.el (timer-list-mode-map):

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	Document using make-composed-keymap with defvar-keymap

	* doc/lispref/keymaps.texi (Inheritance and Keymaps): Document
	using 'make-composed-keymap' with 'defvar-keymap'.

	* lisp/help-mode.el (help-mode-map): Use defvar-keymap to make this
	code match the above documentation change.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	Doc fix; quote keys in face-remap.el

	* lisp/face-remap.el (text-scale-adjust, global-text-scale-adjust):
	Doc fix; quote keys.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	Inherit instead of copying keymap in bookmark.el

	* lisp/bookmark.el (bookmark-rename): Inherit instead of copying
	keymap.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	* src/keymap.c (Fcopy_keymap): Document using defvar-keymap.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	Use substitute-command-keys in Helper-help

	* lisp/emacs-lisp/helper.el (Helper-help-scroller)
	(Helper-help-options, Helper-help): Use substitute-command-keys.
	(Helper-help-map): Prefer defvar-keymap.

2022-07-04  Po Lu  <luangruo@yahoo.com>

	Avoid code duplication converting XI event state in toolkit menu code

	* src/xmenu.c (x_menu_translate_generic_event):
	(popup_get_selection): Use `xi_convert_event_state' instead.
	* src/xterm.c (xi_convert_event_state): Export on non-GTK
	builds.
	* src/xterm.h: Update prototypes.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	Fix scrolling backwards in Helper-help

	* lisp/emacs-lisp/helper.el (Helper-help-scroller): Fix scrolling
	backwards.

2022-07-04  Mattias Engdegård  <mattiase@acm.org>

	Remove some useless `eval-when-compile`

	* lisp/cedet/semantic/java.el (semantic-java-number-regexp):
	* lisp/cedet/semantic/lex.el (semantic-lex-number-expression):
	* lisp/emacs-lisp/cl-indent.el (common-lisp-indent-function-1):
	* lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression)
	(lisp--el-match-keyword, lisp-string-in-doc-position-p):
	* lisp/emacs-lisp/shorthands.el (shorthands-font-lock-shorthands):
	* lisp/net/socks.el (socks-send-command):
	* lisp/progmodes/meta-mode.el (meta-font-lock-keywords):
	* lisp/shell.el (shell--parse-pcomplete-arguments):
	* lisp/textmodes/sgml-mode.el (sgml-mode):
	* lisp/textmodes/tex-mode.el (tex--guess-mode)
	(tex-common-initialization, tex-input-files-re):
	* lisp/textmodes/tildify.el (tildify-mode):
	* lisp/xdg.el (xdg-line-regexp):
	Eliminate `eval-when-compile` when the argument would be evaluated by
	the compiler anyway.

2022-07-04  Mattias Engdegård  <mattiase@acm.org>

	Replace lisp-mode-symbol-regexp with (rx lisp-mode-symbol)

	This is shorter, simplifies use inside rx expressions, and removes
	need for eval-when-compile elsewhere (for later exploitation).

	* lisp/emacs-lisp/lisp-mode.el (lisp-mode-symbol): New rx-define.
	(lisp-mode-symbol-regexp): Redefine using lisp-mode-symbol.
	(lisp-imenu-generic-expression, lisp--el-match-keyword)
	(lisp-fdefs, lisp-string-in-doc-position-p):
	* lisp/emacs-lisp/checkdoc.el (checkdoc--error-bad-format-p):
	* lisp/emacs-lisp/shorthands.el (shorthands-font-lock-shorthands):
	Use lisp-mode-symbol instead of lisp-mode-symbol-regexp.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/progmodes/ebrowse.el (ebrowse-tree-mode): Fix typo.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	Remove remaining Helper-help support from view-mode

	* lisp/view.el (view-old-Helper-return-blurb): Make obsolete.
	(view--enable, view--disable): Delete remaining Helper-help support
	code; view-mode stopped using it in 1995.

2022-07-04  Daanturo  <daanturo@gmail.com>

	Add file-parent-directory function

	* doc/lispref/files.texi: Document the function.
	* etc/NEWS: Add its entry.
	* lisp/emacs-lisp/shortdoc.el: Add it to 'file-name' group.
	* lisp/files.el: implementation (bug#56355).

2022-07-04  Benjamin Riefenstahl  <b.riefenstahl@turtle-trading.net>

	lisp/thumbs.el: Fix calling the "convert" command

	* lisp/thumbs.el (thumbs-call-convert): Pass 'action-prefix' and
	'action' as a combined parameter.  Do not pass 'arg' if it is nil.
	(thumbs-modify-image): Do not pass "" as 'arg' to
	'thumbs-call-convert' (bug#56375).

	Some time in the past this was converted from using the shell to
	passing the parameters directly, but the fallout was not handled
	correctly.

2022-07-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Preserve <title> in the Emacs manuals

	* admin/admin.el (manual-html-fix-headers): Preserve the <title>
	element (bug#48334).

2022-07-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't bug out in manual-html-fix-index-2 on newer makeinfo versions

	* admin/admin.el (manual-html-fix-index-2): Don't bug out if the
	makeinfo version doesn't include <ul>.

2022-07-04  Visuwesh  <visuweshm@gmail.com>

	Exclude radio buttons when suggesting URI in eww

	* lisp/net/eww.el (eww-links-at-point): Exclude radio links.
	(bug#56366).

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	New command help-fns-edit-mode-cancel

	* lisp/help-fns.el (help-fns-edit-mode-cancel): New command.
	(help-fns--edit-value-mode-map): Bind it to 'C-c C-k'.
	(help-fns-edit-variable): Advertise it in help text.

2022-07-04  Po Lu  <luangruo@yahoo.com>

	Handle errors caused by ignoring errors with GDK's trap installed

	* src/xterm.c (x_ignore_errors_for_next_request)
	(x_stop_ignoring_errors): Also tell GDK to ignore errors from
	the following requests.  (bug#56372)

2022-07-04  Po Lu  <luangruo@yahoo.com>

	Always wait for XdndStatus before sending XdndDrop

	* src/xterm.c (x_dnd_do_drop): New function.
	(x_dnd_begin_drag_and_drop): Clear new flag.
	(handle_one_xevent): Use that function; send drops upon receipt
	of pending XdndStatus, to avoid race conditions where we don't
	yet know the selected action.

2022-07-04  Po Lu  <luangruo@yahoo.com>

	Fix accessing dpyinfo after it is deallocated

	* src/xterm.c (x_connection_closed): Print disconnect error for
	the last terminal before freeing it.

2022-07-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	41472f3b6c Document 'jit-lock-debug-mode'

2022-07-03  Po Lu  <luangruo@yahoo.com>

	Display list of traps and handlers when crashing due to an X error

	* src/xterm.c (x_connection_closed): Print list of installed
	error handlers if not crashing due to an IO error.
	(NO_INLINE): Include error serial in error message.

2022-07-03  Florian Rommel  <mail@florommel.de>

	Add support for fullscreen values fullheight and fullwidth on PGTK

	* src/pgtkterm.c (window_state_event): Support values fullheight and
	fullwidth for the fullscreen frame-parameter
	* doc/lispref/frames.texi (Size Parameters): Document inability to
	actively set hullheight/fullwidth for PGTK frames
	* configure.ac: Bump GTK version for PGTK
	* etc/NEWS: Change GTK version in PGTK announcement

2022-07-03  Po Lu  <luangruo@yahoo.com>

	Add some more error checking code to `x_stop_ignoring_errors'

	* src/xterm.c (x_stop_ignoring_errors): Abort if no request was
	actually made, making the state inconsistent.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Simplify lisp-el-font-lock-keywords-2 definition slightly

	* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2):
	Simplify slightly.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Quote some literal keys to get help-key-binding face

	* lisp/align.el (align):
	* lisp/bindings.el (undo-repeat-map):
	* lisp/calc/calc-embed.el (calc-do-embedded):
	* lisp/calc/calc-prog.el (calc-user-define-invocation):
	* lisp/calc/calc-yank.el (calc--edit-mode):
	* lisp/comint.el (comint-history-isearch)
	* lisp/dired.el (dired-mode):
	* lisp/emulation/viper.el (viper-mode):
	* lisp/erc/erc-button.el (erc-button-face):
	* lisp/erc/erc-track.el (erc-track-enable-keybindings):
	* lisp/gnus/gnus-art.el (gnus-article-button-face):
	* lisp/gnus/gnus-eform.el (gnus-edit-form):
	* lisp/gnus/gnus-sum.el (gnus-summary-stop-at-end-of-message)
	(gnus-summary-goto-unread):
	* lisp/icomplete.el (icomplete-show-matches-on-no-input):
	* lisp/image-mode.el (image-scroll-up):
	* lisp/international/iso-transl.el (iso-transl-set-language):
	* lisp/isearch.el (isearch-forward-regexp):
	* lisp/misc.el (butterfly):
	* lisp/outline.el (outline-minor-mode-cycle-filter)
	(outline-minor-mode-cycle):
	* lisp/progmodes/grep.el (rgrep):
	* lisp/progmodes/gud.el (gud-gdb-repeat-map, gud-sdb-repeat-map)
	(gud-dbx-repeat-map, gud-xdb-repeat-map, gud-perldb-repeat-map)
	(gud-pdb-repeat-map, gud-guiler-repeat-map, gud-jdb-repeat-map):
	* lisp/progmodes/idlw-shell.el (idlwave-shell-graphics-window-size)
	(idlwave-shell-mode):
	* lisp/progmodes/idlwave.el (idlwave-shell-debug-modifiers)
	(idlwave-list-shell-load-path-shadows):
	* lisp/progmodes/python.el (python-shell-get-process-or-error):
	* lisp/repeat.el (repeat-check-key):
	* lisp/replace.el (query-replace, query-replace-regexp)
	(read-regexp):
	* lisp/simple.el (read-extended-command-predicate):
	* lisp/tab-bar.el (tab-bar-switch-repeat-map)
	(tab-bar-move-repeat-map):
	* lisp/term.el (ansi-term):
	* lisp/textmodes/reftex-index.el (reftex-index-phrases-set-macro-key):
	* lisp/vc/emerge.el (emerge-scroll-left, emerge-scroll-right):
	* lisp/windmove.el:
	* lisp/winner.el (winner-mode): Quote literal keys to get
	'help-key-binding' face.
	* lisp/comint.el (comint-insert-previous-argument): Use regular
	quotes.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Use command substitutions instead of literal keys in some places

	* lisp/emulation/viper-macs.el (ex-map, viper-set-register-macro):
	* lisp/minibuffer.el (minibuffer-beginning-of-buffer-movement):
	* lisp/speedbar.el (speedbar-frame-mode):
	* lisp/subr.el (kbd):
	* lisp/textmodes/page-ext.el (pages-directory)
	(pages-directory-for-addresses):
	* lisp/textmodes/reftex-toc.el: Use command substitutions instead of
	literal keys.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Normalize definition of erc-track-minor-mode-map

	* lisp/erc/erc-track.el (erc-track-minor-mode-map): Normalize keymap
	definition.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Use substitute-command-keys in reftex-toc-show-help

	* lisp/textmodes/reftex-toc.el (reftex-toc-help)
	(reftex-toc-show-help): Use substitute-command-keys.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Font lock \\<> and \\{} command substitutions in docstrings

	* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2):
	Support \\<> and \\{} command substitutions.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Fix warning in last commit

	* lisp/calc/calc-misc.el (calc-dispatch-help): Fix warning.

2022-07-03  Juri Linkov  <juri@linkov.net>

	Use more help-key-binding faces in repeat-mode message

	* lisp/repeat.el (repeat-echo-message-string): Use
	substitute-command-keys for repeat-exit-key as well.

2022-07-03  Juri Linkov  <juri@linkov.net>

	* lisp/mwheel.el: More fixes for global-text-scale (bug#48307)

	(mouse-wheel-global-text-scale): Move down closer to mouse-wheel-text-scale.
	(mouse-wheel-scroll-amount): Add :value global-text-scale and mention it
	in the docstring.
	(mouse-wheel-global-text-scale, mouse-wheel--setup-bindings):
	Add mouse-wheel-down-alternate-event and mouse-wheel-up-alternate-event.
	Allow a list of modifiers for 'text-scale'.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Improve calc-dispatch-help docstring

	* lisp/calc/calc-misc.el (calc-dispatch-help): Use command
	substitutions.

2022-07-03  Michael Albinus  <michael.albinus@gmx.de>

	Tramp code cleanup

	* lisp/net/tramp-cache.el (tramp-get-file-property)
	(tramp-get-connection-property): Make DEFAULT optional.  Adapt callees.

	* lisp/net/tramp.el:
	* lisp/net/tramp-adb.el:
	* lisp/net/tramp-cmds.el:
	* lisp/net/tramp-compat.el:
	* lisp/net/tramp-crypt.el:
	* lisp/net/tramp-ftp.el:
	* lisp/net/tramp-fuse.el:
	* lisp/net/tramp-gvfs.el:
	* lisp/net/tramp-integration.el:
	* lisp/net/tramp-sh.el:
	* lisp/net/tramp-smb.el:
	* lisp/net/tramp-sshfs.el:
	* lisp/net/trampver.el: Code cleanup.

	* test/lisp/net/tramp-tests.el (tramp--test-sh-no-ls--dired-p)
	(tramp--test-with-proper-process-name-and-buffer): Code cleanup.

2022-07-03  Florian Rommel  <mail@florommel.de>

	abort-redisplay: Add missing unbind_to in 'recenter'

	* src/window.c (recenter): Add ubind_to before early return.
	(Bug#56369)

2022-07-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/elec-pair.el: Simplify last change

	* lisp/elec-pair.el (electric-pair--with-syntax):
	Rename from `electric-pair--with-text-syntax`.
	Make `start` mandatory.  Run `body` in the normal syntax if `start` is nil.
	(electric-pair--with-syntax-1): New function, extracted from
	`electric-pair--with-text-syntax`.
	(electric-pair-syntax-info, electric-pair--balance-info):
	Adjust calls accordingly.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Fix dired-goto-subdir prompt

	* lisp/dired-aux.el (dired-goto-subdir): Fix prompt and improve
	docstring.  Add interactive mode tag for dired-mode.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Fix warnings in my last commit

	* lisp/textmodes/emacs-news-mode.el (outline): Require.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Improve navigation keybindings in emacs-news-mode

	* lisp/textmodes/emacs-news-mode.el (emacs-news-common-map): New
	defvar-keymap.  Bind navigation commands as in 'org-mode' and
	'outline-minor-mode'.
	(emacs-news-mode-map): Inherit from 'emacs-news-common-map'.
	(emacs-news-view-mode-map): New defvar-keymap; inherit from
	'emacs-news-common-map'.

2022-07-03  Eli Zaretskii  <eliz@gnu.org>

	Fix implementation of 'reset' face values

	* src/xfaces.c (Finternal_merge_in_global_face)
	(gui_supports_face_attributes_p):  Only modify local copy of face
	attributes when replacing 'reset' pseudo-values with real values.
	(Bug#38771)

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Move dired-clean-up-buffers-too to dired.el

	* lisp/dired-x.el (dired-clean-up-buffers-too)
	(dired-clean-confirm-killing-deleted-buffers): Move from here...
	* lisp/dired.el (dired-clean-up-buffers-too)
	(dired-clean-confirm-killing-deleted-buffers): ...to
	here.  (Bug#21981)
	(dired-clean-up-after-deletion): Adjust documentation.
	* etc/NEWS: Announce the change.

2022-07-03  kobarity  <kobarity@gmail.com>

	Fix `python-nav-beginning-of-defun' line continuation using backslash

	* lisp/progmodes/python.el (python-nav--beginning-of-defun): Allow
	line continuation using backslash in defuns (bug#55702).
	(python-info-looking-at-beginning-of-defun): Add CHECK-STATEMENT
	argument.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/dired-x.el (dired-omit-size-limit): Increase value.

2022-07-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make string-limit with encoding return complete glyphs

	* lisp/emacs-lisp/subr-x.el (string-limit): Return more correct
	results in the CODING-SYSTEM case for coding systems with BOM and
	charset designations (bug#48324).  Also amend the algorithm to
	return complete glyphs, not just complete code points.

2022-07-03  Po Lu  <luangruo@yahoo.com>

	Improve performance when rejecting XI touch event

	* src/xterm.c (handle_one_xevent): Avoid sync handling simple
	error.

2022-07-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix streaming problems in nnimap-retrieve-headers

	* lisp/gnus/nnimap.el (nnimap-retrieve-headers): Don't stream the
	UID FETCH commands, since the server may return the results
	out-of-order (bug#56332).

2022-07-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function `seq-split'

	* doc/lispref/sequences.texi (Sequence Functions): Document it.

	* lisp/emacs-lisp/seq.el (seq-split): New function.

	* lisp/emacs-lisp/shortdoc.el (sequence): Mention it.

2022-07-03  Allen Li  <darkfeline@felesatra.moe>

	elec-pair: Fix bug incorrectly hiding syntax-propertize-function

	* lisp/elec-pair.el (electric-pair--with-text-syntax): New macro.
	(electric-pair-syntax-info):
	(electric-pair--balance-info):
	(electric-pair--syntax-ppss, electric-pair--balance-info): Use it.
	(electric-pair--with-uncached-syntax): Remove (bug#49629).

	The main bug that this is fixing is `syntax-propertize-function' being
	hidden in `electric-pair--balance-info' when the original syntax table
	is to be used, not `electric-pair-text-syntax-table'.

	Notably, this causes `electric-pair-mode' to often misbehave in HTML
	files when pairing angle brackets.

	This commit also flushes the cache before installing
	`electric-pair-text-syntax-table', to prevent cached syntax for the
	original table from affecting things.

2022-07-03  Po Lu  <luangruo@yahoo.com>

	Improve efficiency of `x_frame_highlight' and `x_frame_unhighlight'

	* src/xterm.c (x_frame_highlight, x_frame_unhighlight): Don't
	sync catching errors.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/dired.el (dired-do-eww): New command.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Improve dired-do-{info,man} error handling

	* lisp/dired.el (dired-do-man, dired-do-info): Use
	'dired-get-file-for-visit' to get better error handling.
	Interactive mode tagging.

2022-07-03  Eli Zaretskii  <eliz@gnu.org>

	Implement pseudo-value 'reset' of face attributes

	* doc/lispref/display.texi (Face Attributes):
	* etc/NEWS: Document the new pseudo-value 'reset'.

	* src/xfaces.c (realize_named_face, lookup_derived_face)
	(gui_supports_face_attributes_p, lookup_named_face)
	(Finternal_merge_in_global_face, merge_named_face, merge_faces):
	Handle the 'reset' pseudo-value of a face's attribute.
	(syms_of_xfaces): New symbol 'reset'.
	(RESET_P): New macro.
	(check_lface_attrs, Finternal_set_lisp_face_attribute): Allow
	'reset' as a value of any attribute except ':inherit'.
	(Bug#38771)

2022-07-03  James Thomas  <jimjoe@gmx.net>

	* lisp/leim/quail/indian.el ("malayalam-mozhi"): Set DETERMINISTIC.

2022-07-03  Po Lu  <luangruo@yahoo.com>

	Fix deadlocks with very old versions of libXi

	* src/xfns.c (setup_xi_event_mask, Fx_create_frame): Set
	`xi_mask' ourselves if the version of libXi is too old to have
	working XIGetSelectedEvents.
	* src/xterm.c (x_destroy_window): Free `xi_mask' with xfree in
	that case.

2022-07-03  Eli Zaretskii  <eliz@gnu.org>

	Document 'jit-lock-debug-mode'

	* doc/lispref/modes.texi (Other Font Lock Variables): Document
	'jit-lock-debug-mode'.

2022-07-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	dc3d01a5af CC Mode: Fix a c-backward-token-2 call wrongly jumping bac...
	e390396e68 Doc fixes; don't use obsolete names
	c85f7c2e8a Don't refer to obsolete alias for insert-char
	60ad45c5d2 Don't use obsolete face name in manoj-dark-theme

2022-07-02  Po Lu  <luangruo@yahoo.com>

	Speed up receiving drops over slow connections

	* lisp/x-dnd.el (x-dnd-debug-errors): New variable.
	(x-dnd-handle-drag-n-drop-event): Bind
	`x-fast-protocol-requests' to t if that is off.

	* src/xfns.c (Fx_change_window_property):
	(Fx_delete_window_property):
	* src/xselect.c (Fx_send_client_message, x_send_client_event):
	Don't sync to check for errors if fast protocol requests are
	enabled.

	* src/xterm.c (x_catch_errors_for_lisp, x_check_errors_for_lisp)
	(x_uncatch_errors_for_lisp): New functions.
	(syms_of_xterm): New variable `x-fast-protocol-requests'.
	* src/xterm.h: Update prototypes.

2022-07-02  Lars Ingebrigtsen  <larsi@gnus.org>

	REQUIRE-MATCH doc string clarification

	* src/minibuf.c (Fcompleting_read):
	* lisp/minibuffer.el (read-file-name): Clarify what the return
	value is in the REQUIRE-MATCH function case.

2022-07-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some typos in NEWS

2022-07-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Add sanity check for Emacsen distributed without .el files

	* src/lread.c (maybe_swap_for_eln): Add sanity check for Emacsen
	distributed without .el files (bug#48342).

2022-07-02  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix a c-backward-token-2 call wrongly jumping back over macros.

	This fixes bug #56256.

	* lisp/progmodes/cc-fonts.el (c-font-lock-c++-lambda-captures): Replace a
	c-backward-token-2, which could jump back too far leading to an infinite
	loop, with a save-excursion to remember the point we've got to go back to.

2022-07-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Filter out nul bytes when killing from a *grep* buffer

	* lisp/progmodes/grep.el (grep-mode): Filter out the nul bytes
	(bug#48321).

2022-07-02  Manuel Giraud  <manuel@ledu-giraud.fr>

	Add more separators to longlines-mode

	* lisp/obsolete/longlines.el (longlines-breakpoint-chars): New
	custom to have multiple breakpoint chars.
	(longlines-set-breakpoint): Add a target-column parameter and use
	`longlines-breakpoint-chars'.
	(longlines-find-break-backward, longlines-find-break-foreward):
	Use `longlines-breakpoint-chars'.
	(longlines-wrap-line): Do not insert space upon merging, just
	remove the soft newline. Fix "space before tab" in indent.
	(longlines-merge-lines-p): Use the new target-column parameter to
	find out if the next line could be merged with the current one.
	(longlines-encode-region): Do not replace a soft newline with a
	space, just remove it.
	* etc/NEWS: New user option 'longlines-breakpoint-chars'

2022-07-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Unobsolete longlines-mode (bug#18589)

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	Use help-key-binding face in text scale adjust messages

	* lisp/face-remap.el (text-scale-adjust)
	(global-text-scale-adjust): Use substitute-command-keys.

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	Use help-key-binding face in repeat-mode message

	* lisp/repeat.el (repeat-echo-message-string): Use
	substitute-command-keys.

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	Make dired-jump repeatable in repeat-mode

	* lisp/dired.el (dired-jump-map): New variable.
	(dired-jump): Put 'repeat-map' property with 'dired-jump-map'.

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	Move dired-info and dired-man from dired-x to dired

	* lisp/dired-x.el (dired-bind-man, dired-bind-info): Change into
	defvars and make obsolete.
	(dired-extra-startup): Doc fix.
	(dired-info, dired-man): Move from here...
	* lisp/dired.el (dired-do-info, dired-do-man): ...to here and
	rename.  (Bug#21981)

	* lisp/dired.el (dired-mode-map): Bind 'I' and 'N' to 'dired-do-info'
	and 'dired-do-man'.

	* doc/misc/dired-x.texi (Miscellaneous Commands): Remove documentation
	of 'dired-info' and 'dired-man'.
	* doc/emacs/dired.texi (Dired Enter): Document 'dired-do-info' and
	'dired-do-man'.
	* etc/NEWS: Announce the above changes.

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in nxml/*.el

	* lisp/nxml/nxml-mode.el (nxml-mode-map):
	* lisp/nxml/nxml-outln.el (nxml-outline-prefix-map)
	(nxml-outline-show-map, nxml-outline-hiding-tag-map)
	(nxml-outline-showing-tag-map): Prefer defvar-keymap.

2022-07-02  Po Lu  <luangruo@yahoo.com>

	Fix error handling for XCB Xlib

	* src/xterm.c (xm_send_drop_message)
	(xm_send_top_level_enter_message, xm_send_drag_motion_message)
	(xm_send_top_level_leave_message, x_dnd_compute_toplevels)
	(x_dnd_send_enter, x_dnd_send_position, x_dnd_send_leave)
	(x_dnd_send_drop, handle_one_xevent, x_catch_errors_with_handler)
	(x_request_can_fail, x_clean_failable_requests)
	(x_ignore_errors_for_next_request, x_stop_ignoring_errors)
	(x_uncatch_errors, x_check_errors, x_had_errors_p, x_error_handler)
	(frame_set_mouse_pixel_position, x_focus_frame): Record serial
	sequences instead of simply the next request when ignoring a
	single request.  Use XNextRequest instead of NextRequest, since
	the latter is unreliable when using Xlib built with XCB.

	* src/xterm.h (struct x_failable_request): New struct..
	(struct x_display_info): Make failable request variables the
	right type.

2022-07-02  Po Lu  <luangruo@yahoo.com>

	Fix display disconnect when tooltip frame is alive

	* src/xterm.c (x_connection_closed): Don't dereference nil when
	loop finds a tooltip frame.

2022-07-02  Gregory Heytings  <gregory@heytings.org>

	Command for global adjustments to the default face

	* lisp/face-remap.el (global-text-scale-adjust): New command.
	(text-scale-adjust): Refer to the new related command.
	(global-text-scale-adjust-resizes-frames): New user option.

	* lisp/mwheel.el (mouse-wheel-scroll-amount): Add the new command
	to the mouse wheel scrolling events.
	(mouse-wheel-global-text-scale): New function.
	(mouse-wheel-mode): Use the new function with mouse-wheel-mode.

	* doc/emacs/display.texi (Text Scale): Document the new command and
	the new user option.

	* etc/NEWS: Mention the new command and its bindings, and the new
	user option.

2022-07-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a comment about buffer_local_value/find_symbol_value

	* src/data.c: Note that buffer_local_value is very similar
	(bug#48281).

2022-07-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow NUL characters in JSON input

	* src/json.c (Fjson_parse_string, Fjson_parse_buffer): Allow NUL
	characters in JSON (bug#48274).

2022-07-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Make comint-watch-for-password-prompt more resilient

	* lisp/comint.el (comint-watch-for-password-prompt): Don't try to
	send commands to the process after it's exited (bug#56336).  (This
	commonly happens when invoked via `M-&'.)

2022-07-02  Michael Albinus  <michael.albinus@gmx.de>

	Preserve connection-local settings in dired

	* lisp/dired-aux.el (dired-shell-command):
	Preserve connection-local settings.  (Bug#56333)

2022-07-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Add native-compile-prune-cache command

	* lisp/emacs-lisp/comp.el (native-compile-prune-cache): New
	command (bug#48108).

2022-07-02  Lars Ingebrigtsen  <larsi@gnus.org>

	native-comp-eln-load-path doc string fix

	* src/comp.c (syms_of_comp): Fix grammar in doc string.

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	Doc fixes; don't use obsolete names

	* etc/compilation.txt:
	* lisp/mh-e/mh-funcs.el (mh-kill-folder): Don't use obsolete
	names.

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	Don't refer to obsolete alias for insert-char

	* lisp/leim/quail/persian.el: Don't refer to obsolete alias for
	insert-char.

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	Don't use obsolete face name in manoj-dark-theme

	* etc/themes/manoj-dark-theme.el (change-log-acknowledgment): Don't
	use obsolete/non-existent face name.

2022-07-02  Eli Zaretskii  <eliz@gnu.org>

	* src/sheap.h (STATIC_HEAP_SIZE): Double the size of static heap.

2022-07-02  Po Lu  <luangruo@yahoo.com>

	Completely get rid of races during Motif drag window creation

	* src/xterm.c (x_special_window_exists_p): New function.
	(xm_get_drag_window_1): Rework workflow and display grabbing.

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	* src/xfns.c (Fx_server_input_extension_version): Fix typo.

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1c3d107cb5 Fix "C-u C-x =" for SPC
	7e33618bbc ; * src/fns.c (Frequire): Fix a typo in the doc string.  (...
	6908309827 Doc fixes: don't refer to some obsolete items
	dc3cb749f3 Remove obsolete cust-print from elisp index
	9ffbbddf8e * admin/make-tarball.txt: Minor clarifications.
	f5421104e9 Fix external image conversion on MS-Windows
	6f22631a63 * doc/emacs/buffers.texi (Indirect Buffers): Mention modif...

	# Conflicts:
	#	doc/emacs/buffers.texi
	#	lisp/emacs-lisp/nadvice.el
	#	lisp/image/image-converter.el

2022-07-02  Lele Gaifax  <lele@metapensiero.it>  (tiny change)

	Fix repeated "the"

	* configure.ac (EMACS_CONFIG_FEATURES):
	* etc/NEWS:
	* lisp/dnd.el (dnd-begin-text-drag):
	* src/pgtkfns.c (Fx_display_mm_height, Fx_display_mm_width):
	(Fx_display_backing_store, Fx_display_visual_class):
	* src/xterm.c: Fix repeated "the".  (Bug#56341)

2022-07-02  Visuwesh  <visuweshm@gmail.com>

	Fix fallout from bug#50143

	* lisp/language/ind-util.el (indian-tml-base-table)
	(indian-tml-base-digits-table): Add TAMIL OM sign and more Sanskrit
	consonants to the table (bug#50143) (bug#56323).

2022-07-02  Omar Polo  <op@omarpolo.com>

	Improve rcirc's CertFP documentation

	* doc/misc/rcirc.texi: Clarify meaning of key and password
	* lisp/net/rcirc.el (rcirc-authinfo): Add example

2022-07-02  Po Lu  <luangruo@yahoo.com>

	Fix drag-and-drop from Chromium family browsers

	* lisp/x-dnd.el (x-dnd-copy-types): New defcustom.
	(x-dnd-default-test-function): Check if data type warrants using
	`copy'.
	(x-dnd-do-direct-save): Offer application/octet-stream as well.

2022-07-02  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/ruler-mode.el (ruler-mode-map): Use defvar-keymap.

	* lisp/epa-mail.el (epa-mail-mode-map): Use defvar-keymap.

2022-07-01  Stefan Kangas  <stefankangas@gmail.com>

	Font lock \\`' command substitutions in docstrings

	* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2):
	Support \\`' command substitutions.

2022-07-01  Po Lu  <luangruo@yahoo.com>

	Add interactive XDS test

	* test/lisp/dnd-tests.el (dnd-tests-direct-save): New test.

2022-07-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* editfns.c (Fbyte_to_string): Use `make_unibyte_string`

2022-07-01  Po Lu  <luangruo@yahoo.com>

	Return the correct action from the Lisp side of drag-and-drop

	* lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Select
	`window' when handling internal DND events.
	(x-dnd-handle-unsupported-drop): Return an appropriate action.
	* src/keyboard.c (kbd_buffer_get_event):
	* src/termhooks.h (enum event_kind): Delete
	`UNSUPPORTED_DROP_EVENT'.
	* src/xterm.c (x_dnd_send_unsupported_drop): Set flags instead
	of recording input event.
	(x_clear_dnd_monitors): Rename to `x_clear_dnd_variables'.  Also
	clear unsupported drop data.
	(x_dnd_begin_drag_and_drop): Run unsupported drop function
	inline (and safely), and use its return value if it returned a
	symbol.
	(syms_of_xterm): Update doc string of
	`x-dnd-unsupported-drop-function'.

	* src/xterm.h: Update declarations.

2022-07-01  Stefan Kangas  <stefankangas@gmail.com>

	Use command substitution in kmacro.el

	* lisp/kmacro.el (kmacro-bind-to-key, kmacro-view-macro-repeat):
	Use command substitution.

2022-07-01  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/erc.texi (Connecting): Fix typo.

2022-07-01  Eli Zaretskii  <eliz@gnu.org>

	Fix "C-u C-x =" for SPC

	* lisp/descr-text.el (describe-char): Don't report 'nobreak-space'
	face for SPC.  (Bug#56337)

2022-07-01  Eli Zaretskii  <eliz@gnu.org>

	Fix quoting of file names in 'ctags'

	* lib-src/etags.c (main) [WINDOWSNT || MSDOS]: Quote file names
	according to the rules of the system shells.

2022-07-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add support for <mark> in shr

	* lisp/net/shr.el (shr-mark): New face (bug#48211).
	(shr-tag-mark): New function

2022-07-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix elisp-byte-compile-buffer requirements

	* lisp/progmodes/elisp-mode.el (elisp-byte-compile-buffer):
	Require bytecomp so that byte-compile-dest-file-function is
	defined.  (The byte compiler didn't catch this, because it's
	defined in bytecomp.)

2022-07-01  dick r. chiang  <dick.r.chiang@gmail.com>

	Fix typo in Property Search manual entry

	* doc/lispref/text.texi (Property Search): Fix typo (bug#56329).

2022-07-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make time-stamp-tests.el work in a Norwegian language environment

	The short version of names for days/month is not necessary the same as
	limiting the string with a #n operator.  For instance:

	(format-time-string "%^A" time)
	=> "FREDAG"

	(format-time-string "%^a" time)
	=> "FR."

	(time-stamp-string "%#3a" time)
	=> "FRE"

2022-07-01  Po Lu  <luangruo@yahoo.com>

	Document XDS stuff

	* doc/emacs/frames.texi (Drag and Drop):
	* doc/lispref/frames.texi (Drag and Drop): Add documentation
	about XDS features.
	* etc/NEWS: Tag entry.

2022-07-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make it easier to debug nnimap-retrieve-headers

	* lisp/gnus/nnimap.el (nnimap--max-retrieve-headers): New variable
	to ease debugging.
	(nnimap-retrieve-headers): Use it.

2022-07-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the emoji-zoom commands use a transient map for repetition

	* lisp/international/emoji.el (emoji-zoom-increase)
	(emoji-zoom-decrease): Use a transient map for convenience.

2022-07-01  Po Lu  <luangruo@yahoo.com>

	Expand file names read from XDS functions

	* lisp/x-dnd.el (x-dnd-handle-xds-drop): Expand file names
	before use.  Some GUI dialogs read un-expanded file names.

2022-07-01  Po Lu  <luangruo@yahoo.com>

	Prevent XdndPosition messages from rarely being sent out of band

	* src/xterm.c (handle_one_xevent): Don't clear
	`x_dnd_waiting_for_status_window' if a pending position message
	was sent in reply to an XdndStatus event.

2022-07-01  Po Lu  <luangruo@yahoo.com>

	Support receiving XDS drops correctly

	* etc/NEWS: Announce new feature.  It is not yet documented.
	* lisp/x-dnd.el (x-dnd-known-types): Add XdndDirectSave0.
	(x-dnd-direct-save-function): New defcustom.
	(x-dnd-xdnd-to-action): Add `direct-save'.
	(x-dnd-maybe-call-test-function): If XDS is present, use `direct-save'.
	(x-dnd-find-type): New function.
	(x-dnd-handle-xdnd): Handle XDS position and drop messages.
	(x-dnd-handle-direct-save): Don't use local-file-uri if nil.
	(x-dnd-save-direct): New function.
	(x-dnd-handle-octet-stream-for-drop):
	(x-dnd-handle-xds-drop): New functions.

2022-07-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-06-29 19:13:08 UTC.

2022-06-30  Po Lu  <luangruo@yahoo.com>

	Add tests for XDS protocol support

	* test/lisp/x-dnd-tests.el (x-dnd-tests-xds-property-value): New
	variable.
	(x-window-property): Handle new kind of window property.
	(x-dnd-tests-xds-target-dir, x-dnd-tests-xds-name)
	(x-dnd-tests-xds-include-hostname): New variables.
	(x-dnd-tests-call-xds-converter): New function.
	(x-begin-drag, x-change-window-property):
	(x-delete-window-property): New replacement functions.
	(x-dnd-tests-do-direct-save-internal): New function.
	(x-dnd-tests-do-direct-save): New test.

2022-06-30  Po Lu  <luangruo@yahoo.com>

	Fix `clipboard-yank' inserting off the kill ring instead of CLIPBOARD

	* lisp/select.el (gui-last-cut-in-clipboard)
	(gui-last-cut-in-primary): New variables.
	(gui-select-text): Set those variables.
	(gui--selection-value-internal, gui-selection-value): Don't
	return nil if the last cut did not own the chosen
	selection.  (bug#56325)

2022-06-30  Po Lu  <luangruo@yahoo.com>

	Disable middle click selection emulation during XDS

	* doc/lispref/frames.texi (Drag and Drop): Document new
	variable.
	* lisp/x-dnd.el (x-dnd-do-direct-save): Disable drop emulation
	during XDS drag-and-drop.

	* src/keyboard.c (kbd_buffer_get_event): Handle recorded value.
	* src/xterm.c (x_dnd_do_unsupported_drop): Return if new
	variable is nil.
	(x_dnd_send_unsupported_drop): Record value of new variable in
	events.
	(x_dnd_begin_drag_and_drop): Handle recorded value.
	(syms_of_xterm): New variable `x-dnd-use-unsupported-drop'.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Update ERC's Info doc with network-ID related changes

	* doc/misc/erc.texi: Update the `erc' and `erc-tls' entry-point
	sections with the new :id keyword parameter.  Expand the auth-info
	related information in the passwords section.  Remove all mention of
	the variable `erc-rename-buffers', whose "on" behavior has been made
	permanent.

	* etc/ERC-NEWS: Add new section for future 5.5 release.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Optionally prevent sending multiline input in ERC

	* lisp/erc/erc.el (erc-inhibit-multiline-input): Add option to cap the
	number of lines to be sent before admonishing the user.
	(erc-ask-about-multiline-input): Add option to ask instead of warning
	user when `erc-inhibit-multiline-input' is reached.
	(erc--check-prompt-input-for-excess-lines): Add validator to possibly
	warn when too many lines are submitted for transmission.

	* test/lisp/erc/erc-tests.el
	(erc--check-prompt-input-for-excess-lines): Add test.
	(Bug#54536)

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Improve ERC's handling of multiline prompt input

	* lisp/erc/erc.el (erc--pre-send-split-functions): Add new internal
	hook allowing members to revise individual lines before sending.  This
	was created with an eye toward possibly exporting it publicly as a
	customizable option.
	(erc-last-input-time): Tweak meaning of variable to match likely
	original intent, which is that it's only updated on successful calls
	to `erc-send-current-line'.
	(erc--discard-trailing-multiline-nulls): Conditionally truncate list
	of lines to be sent, skipping trailing blanks.  This constitutes a
	behavioral change.  But, considering the nature of the bug being
	fixed, it is thought to be justified.
	(erc--input-split): Add new internal struct containing split input
	lines and flag for command detection.
	(erc--input-line-delim-regexp): Add regex var for splitting multiline
	prompt input.
	(erc--blank-in-multiline-p): Add helper for detecting blank lines.
	(erc--check-prompt-input-for-multiline-blanks,
	erc--check-prompt-input-for-point-in-bounds,
	erc--check-prompt-input-for-running-process): New functions to
	encapsulate logic for various pre-flight idiot checks.
	(erc--check-prompt-input-functions): Add new hook for validating
	prompt input prior to clearing it, internal for now.
	(erc-send-current-line): Pre-screen for blank lines and bail out if
	necessary.
	(erc-send-input): Add optional param to skip checking for blank lines.
	Call hook `erc--pre-send-split-functions'.

	* test/lisp/erc/erc-tests.el (erc-ring-previous-command): Use new test
	helper.
	(erc--input-line-delim-regexp,
	erc--blank-in-multiline-input-p): Add tests.
	(erc-tests--send-prep, erc-tests--set-fake-server-process,
	erc-tests--with-process-input-spy): Add test helpers.
	(erc--check-prompt-input-functions, erc-send-current-line,
	erc-send-whitespace-lines): Add tests.
	(Bug#54536)

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Fix regression in erc-send-input-line

	* lisp/erc/erc.el (erc-send-input-line): Restore remedial single-space
	padding to ensure empty messages typed at the prompt without an
	explicit /msg aren't rejected by the server.  This behavior is only
	noticeable when `erc-send-whitespace-lines' is active.

	* test/lisp/erc/erc-tests.el (erc-process-input-line): Add trailing
	newline to more correctly simulate how it's actually called by
	`erc-send-input'. (Bug#50008)

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Standardize auth-source queries in ERC

	* lisp/erc/erc.el (erc-password): Deprecate variable only used by
	`erc-select-read-args'.  Server passwords are primarily used as
	surrogates for other forms of authentication.  Such use is common but
	nonstandard and often discouraged in favor of the de facto standard,
	SASL.  Folks in the habit of invoking `erc(-tls)' interactively should
	be encouraged to use auth-source instead.
	(erc-select-read-args): Before this change, `erc-select-read-args'
	offered to use the value of a non-nil `erc-password' as the :password
	argument for `erc' and `erc-tls', referring to it as the "default"
	password.  And when `erc-prompt-for-password' was nil and
	`erc-password' wasn't, the latter was passed along unconditionally.
	This only further complicated an already confusing situation for new
	users, who in most cases shouldn't be worried about sending a PASS
	command at all.  Until SASL arrives, they should provide server
	passwords manually or learn to use auth-source.
	(erc-auth-source-server-function, erc-auth-source-join-function): New
	user options for retrieving a password externally, ostensibly by
	calling `auth-source-search'.
	(erc--auth-source-determine-params-defaults): New helper for
	`erc--auth-source-search' with potential for exporting publicly in the
	future.  Favors :host and :port fields above others.  Prioritizes
	network IDs over announced servers and dialed endpoints.
	(erc--auth-source-determine-params-merge): Add new function for
	merging contextual and default parameters.  This is another contender
	for possible exporting.
	(erc--auth-source-search): New function for consulting auth-source and
	sorting the result as filtered and prioritized by the previously
	mentioned helpers.
	(erc-auth-source-search): New function to serve as default
	value for auth-source query-function options.
	(erc-server-join-channel): Use user option for consulting auth-source
	facility.  Also accept nil for first argument (instead of server).
	(erc-cmd-JOIN): Use above-mentioned facilities when joining new
	channel.  Omit server when calling `erc-server-join-channel'.  Don't
	filter target buffers twice.  Don't call `switch-to-buffer', which
	would create phantom buffers with names like target/server that were
	never used.  IOW, only switch to existing target buffers.
	(erc--compute-server-password): Add new helper function for
	determining password.
	(erc-open, erc-determine-parameters): Move password figuring from the
	first to the latter.

	* lisp/erc/erc-services.el
	(erc-auth-source-services-function): Add new option for consulting
	auth-source in a NickServ context.
	(erc-nickserv-get-password): Pass network-context ID, when looking up
	password in `erc-nickserv-passwords' and when formatting prompt for
	user input.
	(erc-nickserv-passwords): Add comment to custom option definition type
	tag.

	* test/lisp/erc/erc-services-tests.el: Add new test file for above
	changes.  For now, stash auth-source-related tests here until a
	suitable home can be found.

	* lisp/erc/erc-join.el (erc-autojoin--join): Don't pass session-like
	entity from `erc-autojoin-channels-alist' match to
	`erc-server-join-channel'.  Allow that function to decide for itself
	which host to look up if necessary.

	* test/lisp/erc/resources/base/auth-source/foonet.eld: New file.
	* test/lisp/erc/resources/base/auth-source/nopass.eld: New file.
	* test/lisp/erc/resources/erc-scenarios-common.el: New file.
	* test/lisp/erc/resources/services/auth-source/libera.eld: New file.
	* test/lisp/erc/erc-scenarios-auth-source.el: New file.
	* test/lisp/erc/erc-scenarios-base-reuse-buffers.el: New file.
	* test/lisp/erc/erc-scenarios-join-auth-source.el: New file.
	* test/lisp/erc/resources/base/reuse-buffers/channel/barnet.eld: New file.
	* test/lisp/erc/resources/base/reuse-buffers/channel/foonet.eld: New file.
	* test/lisp/erc/resources/join/auth-source/foonet.eld: New file.
	(Bug#48598)

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Favor network identities in erc-join

	* lisp/erc/erc-join.el (erc-autojoin-server-match): Favor network
	identities, falling back on old definition.
	(erc-autojoin--join): Add new helper containing common code from
	hookees `erc-autojoin-after-ident' and `erc-autojoin-channels'.
	(erc-autojoin-after-ident, erc-autojoin-channels): No longer make a
	point of returning nil because the hooks they're registered on,
	`erc-nickserv-identified-hook' and `erc-after-connect', don't stop on
	success.
	(erc-autojoin--mutate): Add helper for `erc-autojoin-add' and
	`erc-autojoin-remove'.
	(erc-autojoin-add, erc-autojoin-remove): Favor given network
	identities, over networks, when matching keys for
	`erc-autojoin-channels-alist'.

	* test/lisp/erc/erc-scenarios-base-reconnect.el: New file.
	* test/lisp/erc/erc-scenarios-join-netid-newcmd-id.el: New file.
	* test/lisp/erc/erc-scenarios-join-netid-newcmd.el: New file.
	* test/lisp/erc/erc-scenarios-join-netid-recon-id.el: New file.
	* test/lisp/erc/erc-scenarios-join-netid-recon.el: New file.
	* test/lisp/erc/resources/erc-scenarios-common.el: New file.
	* test/lisp/erc/resources/join/legacy/foonet.eld: New file.
	* test/lisp/erc/resources/join/network-id/barnet.eld: New file.
	* test/lisp/erc/resources/join/network-id/foonet-again.eld: New file.
	* test/lisp/erc/resources/join/network-id/foonet.eld: New file.
	* test/lisp/erc/resources/join/reconnect/foonet-again.eld: New file.
	* test/lisp/erc/resources/join/reconnect/foonet.eld: New file.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Don't call erc-auto-query twice on PRIVMSG

	* lisp/erc/erc-backend.el (erc-server-JOIN): Use `erc--open-target'
	instead of `erc-join'.
	(erc-server-PRIVMSG): Don't call `erc-auto-query' at all, and instead
	borrow the portion of its logic that detects when a query buffer
	should be created instead of a channel buffer.

	* lisp/erc/erc.el (erc-cmd-QUERY): Update the mode line explicitly
	after calling `erc-query' in case it's needed after `erc-setup-buffer'
	runs. Simplify.
	(erc-query, erc--open-target): Replace uses of `erc-query'
	with `erc--open-target' and make the former obsolete.  Don't call
	`erc-update-mode-line' because `erc-open' already does that.
	(erc-auto-query): Make this function obsolete.  It was previously only
	used in erc-backend.el and only sewed confusion.
	(erc-query-on-unjoined-chan-privmsg): Add note questioning its role.
	It was previously only used by the now deprecated `erc-auto-query'.

	* test/lisp/erc/erc-scenarios-misc.el
	(erc-scenarios-base-mask-target-routing): Add test for server masks.
	* test/lisp/erc/resources/base/mask-target-routing/foonet.eld: New file.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Register erc-kill-buffer-function locally

	* lisp/erc/erc.el (erc-kill-buffer-function): Don't add hook when
	loading file.  Move to major-mode setup and make buffer-local instead.
	Depends on tests in bug#48598.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Add user-oriented test scenarios for ERC

	* test/lisp/erc/erc-scenarios-base-association-nick.el: New file.
	* test/lisp/erc/erc-scenarios-base-association-samenet.el: New file.
	* test/lisp/erc/erc-scenarios-base-association.el: New file.
	* test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el: New file.
	* test/lisp/erc/erc-scenarios-base-misc-regressions.el: New file.
	* test/lisp/erc/erc-scenarios-base-netid-bouncer-id.el: New file.
	* test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-base.el: New file.
	* test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-both.el: New file.
	* test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-id.el: New file.
	* test/lisp/erc/erc-scenarios-base-netid-bouncer.el: New file.
	* test/lisp/erc/erc-scenarios-base-netid-samenet.el: New file.
	* test/lisp/erc/erc-scenarios-base-reconnect.el: New file.
	* test/lisp/erc/erc-scenarios-base-renick.el: New file.
	* test/lisp/erc/erc-scenarios-base-reuse-buffers.el: New file.
	* test/lisp/erc/erc-scenarios-base-unstable.el: New file.
	* test/lisp/erc/erc-scenarios-base-upstream-recon-soju.el: New file.
	* test/lisp/erc/erc-scenarios-base-upstream-recon-znc.el: New file.
	* test/lisp/erc/erc-scenarios-misc.el: New file.
	* test/lisp/erc/erc-scenarios-services-misc.el: New file.
	* test/lisp/erc/resources/base/assoc/bouncer-history/barnet.eld: New file.
	* test/lisp/erc/resources/base/assoc/bouncer-history/foonet.eld: New file.
	* test/lisp/erc/resources/base/assoc/bumped/again.eld: New file.
	* test/lisp/erc/resources/base/assoc/bumped/foisted.eld: New file.
	* test/lisp/erc/resources/base/assoc/bumped/refoisted.eld: New file.
	* test/lisp/erc/resources/base/assoc/bumped/renicked.eld: New file.
	* test/lisp/erc/resources/base/assoc/multi-net/barnet.eld: New file.
	* test/lisp/erc/resources/base/assoc/multi-net/foonet.eld: New file.
	* test/lisp/erc/resources/base/assoc/reconplay/again.eld: New file.
	* test/lisp/erc/resources/base/assoc/reconplay/foonet.eld: New file.
	* test/lisp/erc/resources/base/assoc/samenet/chester.eld: New file.
	* test/lisp/erc/resources/base/assoc/samenet/tester.eld: New file.
	* test/lisp/erc/resources/base/assoc/samenet/tester2.eld: New file.
	* test/lisp/erc/resources/base/channel-buffer-revival/foonet.eld: New file.
	* test/lisp/erc/resources/base/flood/soju.eld: New file.
	* test/lisp/erc/resources/base/gapless-connect/barnet.eld: New file.
	* test/lisp/erc/resources/base/gapless-connect/foonet.eld: New file.
	* test/lisp/erc/resources/base/gapless-connect/pass-stub.eld: New file.
	* test/lisp/erc/resources/base/netid/bouncer/barnet-again.eld: New file.
	* test/lisp/erc/resources/base/netid/bouncer/barnet-drop.eld: New file.
	* test/lisp/erc/resources/base/netid/bouncer/barnet.eld: New file.
	* test/lisp/erc/resources/base/netid/bouncer/foonet-again.eld: New file.
	* test/lisp/erc/resources/base/netid/bouncer/foonet-drop.eld: New file.
	* test/lisp/erc/resources/base/netid/bouncer/foonet.eld: New file.
	* test/lisp/erc/resources/base/netid/bouncer/stub-again.eld: New file.
	* test/lisp/erc/resources/base/netid/samenet/chester.eld: New file.
	* test/lisp/erc/resources/base/netid/samenet/tester.eld: New file.
	* test/lisp/erc/resources/base/reconnect/aborted-dupe.eld: New file.
	* test/lisp/erc/resources/base/reconnect/aborted.eld: New file.
	* test/lisp/erc/resources/base/reconnect/options-again.eld: New file.
	* test/lisp/erc/resources/base/reconnect/options.eld: New file.
	* test/lisp/erc/resources/base/reconnect/timer-last.eld: New file.
	* test/lisp/erc/resources/base/reconnect/timer.eld: New file.
	* test/lisp/erc/resources/base/renick/queries/bouncer-barnet.eld: New file.
	* test/lisp/erc/resources/base/renick/queries/bouncer-foonet.eld: New file.
	* test/lisp/erc/resources/base/renick/queries/solo.eld: New file.
	* test/lisp/erc/resources/base/renick/self/auto.eld: New file.
	* test/lisp/erc/resources/base/renick/self/manual.eld: New file.
	* test/lisp/erc/resources/base/renick/self/qual-chester.eld: New file.
	* test/lisp/erc/resources/base/renick/self/qual-tester.eld: New file.
	* test/lisp/erc/resources/base/reuse-buffers/server/barnet.eld: New file.
	* test/lisp/erc/resources/base/reuse-buffers/server/foonet.eld: New file.
	* test/lisp/erc/resources/base/upstream-reconnect/soju-barnet.eld: New file.
	* test/lisp/erc/resources/base/upstream-reconnect/soju-foonet.eld: New file.
	* test/lisp/erc/resources/base/upstream-reconnect/znc-barnet.eld: New file.
	* test/lisp/erc/resources/base/upstream-reconnect/znc-foonet.eld: New file.
	* test/lisp/erc/resources/erc-scenarios-common.el: New file.
	* test/lisp/erc/resources/networks/announced-missing/foonet.eld: New file.
	* test/lisp/erc/resources/services/password/libera.eld: New file.

	Add test cases for locking down fundamental client behavior, much of
	it involving the relationship between buffers and connections.  Also
	add accompanying resources subdir containing canned dialog scripts and
	common code needed by various tests.  For test cases demoing the
	problematic behavior originally described in the initial report, see
	update #4 on the bug tracker thread for bug#48598.  Most reside in a
	file named test/lisp/erc/erc-scenarios-48598.el introduced by the
	patch "Add user-oriented test scenarios for ERC".

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Address long-standing ERC buffer-naming issues

	* lisp/erc/erc-backend.el (erc-server-connected): Revise doc string.
	(erc-server-reconnect, erc-server-JOIN): Reuse original ID param from
	the first connection when calling `erc-open'.
	(erc-server-NICK): Apply same name generation process used by
	`erc-open'; except here, do so for the purpose of "re-nicking".
	Update network identifier and maybe buffer names after a user's own
	nick changes.

	* lisp/erc/erc-networks.el (erc-networks--id, erc-networks--id-fixed,
	erc-networks--id-qualifying): Define new set of structs to contain all
	info relevant to specifying a unique identifier for a network context.
	Add a new variable `erc-networks--id' to store a local reference to a
	`erc-networks--id' object, shared among all buffers in a logical
	session.
	(erc-networks--id-given, erc-networks--id-create,
	erc-networks--id-on-connect, erc-networks--id--equal-p,
	erc-networks--id-qualifying-init-parts,
	erc-networks--id-qualifying-init-symbol,
	erc-networks--id-qualifying-grow-id,
	erc-networks--id-qualifying-reset-id,
	erc-networks--id-qualifying-prefix-length,
	erc-networks--id-qualifying-update, erc-networks--id-reload,
	erc-networks--id-ensure-comparable, erc-networks--id-sort-buffers):
	Add new functions to support management of `erc-networks--id' struct
	instances.
	(erc-networks--id-sep): New variable for to help when formatting
	buffer names.
	(erc-obsolete-var): Define new generic context rewriter.
	(erc-networks-shrink-ids-and-buffer-names,
	erc-networks--refresh-buffer-names,
	erc-networks--shrink-ids-and-buffer-names-any): Add functions to
	reassess all network IDs and shrink them if necessary along with
	affected buffer names.  Also add function to rename buffers so that
	their names are unique.  Register these on all three of ERC's
	kill-buffer hooks because an orphaned target buffer is enough to keep
	its session alive.
	(erc-networks-rename-surviving-target-buffer): Add new function that
	renames a target buffer when it becomes the sole bearer of a name
	based on a target that has become unique across all sessions and, in
	most cases, all networks.  IOW, remove the @NETWORK-ID suffix from the
	last remaining channel or query buffer after its namesakes have all
	been killed off.  Register this function with ERC's target-related
	kill-buffer hooks.
	(erc-networks--examine-targets): Add new utility function that visits
	all ERC buffers and runs callbacks when a buffer-name collision is
	encountered.
	(erc-networks--qualified-sep): Add constant to hold separator between
	target and suffix.
	(erc-networks--construct-target-buffer-name,
	erc-networks--ensure-unique-target-buffer-name,
	erc-networks--ensure-unique-server-buffer-name,
	erc-networks--maybe-update-buffer-name): Add helpers to support
	`erc-networks--reconcile-buffer-names' and friends.
	(erc-networks--reconcile-buffer-names): Add new buffer-naming strategy
	function and helper for `erc-generate-new-buffer-name' that only run
	in target buffers.
	(erc-determine-network, erc-networks--determine): Deprecate former and
	partially replace with latter, which demotes RPL_ISUPPORT-derived
	NETWORK name to fallback in favor of known `erc-networks-alist'
	members as part of shift to network-based connection-identity policy.
	Return sentinel on failure.  Expect `erc-server-announced-name' to be
	set, and signal when it's not.
	(erc-networks--name-missing-sentinel): Value returned when new
	function `erc-networks--determine' fails to find network name.  The
	rationale for not making this customizable is that the value signifies
	the pathological case where a user of an uncommon IRC setup has not
	yet set a mapping from announced- to network name.  And the chances of
	there being multiple unknown networks is low.
	(erc-set-network-name, erc-networks--set-name): Deprecate former and
	partially replace with latter.  Ding with helpful message, and don't
	set `erc-network' when network name is not found.
	(erc-networks--ensure-announced): Add new fallback function to ensure
	`erc-server-announced-name' is set.  Register with post-MOTD hooks.
	(erc-unset-network-name): Deprecate function unused internally.
	(erc-networks--insert-transplanted-content,
	erc-networks--reclaim-orphaned-target-buffers,
	erc-networks--copy-over-server-buffer-contents,
	erc--update-server-identity): Add helpers for
	`erc-networks--rename-server-buffer'.  The first re-associates all
	existing target buffers that ought to be owned by the new server
	process.  The second grabs buffer text from an old, dead server buffer
	before killing it.  It then inserts that text above everything in the
	current, replacement server buffer.  The other two massage the IDs of
	related sessions, possibly renaming them as well.  They may also
	uniquify the current session's network ID.
	(erc-networks--init-identity): Add new function to perform one-time
	session-related setup.  This could be combined with
	`erc-set-network-name'.
	(erc-networks--rename-server-buffer): Add new function to replace
	`erc-unset-network-name' as default `erc-disconnected-hook' member;
	renames server buffers once network is discovered; added to/removed
	from `erc-after-connect' hook on `erc-networks' minor mode.
	(erc-networks--bouncer-targets): Add constant to hold target symbols
	of well known bouncer-configuration bots.
	(erc-networks-on-MOTD-end): Add primary network-context handler to run
	on 376/422 functions, just before logical connection is officially
	established.
	(erc-networks-enable, erc-networks-mode): Register main network-setup
	handler with 376/422 hooks.

	* lisp/erc/erc.el (erc-rename-buffers): Change this option's default
	to t, remove the only instance where it's actually used, and make it
	an obsolete variable.
	(erc-reuse-buffers): Make this an obsolete variable, but take pains to
	ensure its pre-28.1 behavior is preserved.  That is, undo the
	regression involving unwanted automatic reassociation of channel
	buffers during joins, which arrived in ERC 5.4 and effectively
	inverted the meaning of this variable, when nil, for channel buffers,
	all without accompanying documentation or announcement.
	(erc-generate-new-buffer-name): Replace current policy of appending a
	slash and the invocation host name.  Favor instead temporary names for
	server buffers and network-based uniquifying suffixes for channels and
	query buffers.  Fall back to the TCP host:port<n> convention when
	necessary.  Accept additional optional params after the others.
	(erc-get-buffer-create): Don't generate a new name when reconnecting,
	just return the same buffer.  `erc-open' starts from a clean slate
	anyway, so this just keeps things simple.  Also add optional params.
	(erc-open): Add new ID param to for a network identifier explicitly
	passed to an entry-point command.  This is stored in the `given' slot
	of the `erc-network--id' object.  Also initialize the latter in new
	connections and otherwise copy it over.  As part of the push to recast
	erc-networks.el as an essential library, set `erc-network' explicitly,
	when known, rather than via hooks.
	(erc, erc-tls): Add new ID keyword parameter and pass it to
	`erc-open'.
	(erc-log-irc-protocol): Use `erc--network-id' instead of the function
	`erc-network' to determine preferred peer name.
	(erc-format-target-and/or-network): This is called frequently from
	mode-line updates, so renaming buffers here is not ideal.  Instead, do
	so in `erc-networks--rename-server-buffer'.
	(erc-kill-server-hook): Add `erc-networks-shrink-ids-and-buffer-names'
	as default member.
	(erc-kill-channel-hook, erc-kill-buffer-hook): Add
	`erc-networks-shrink-ids-and-buffer-names' and
	`erc-networks-rename-surviving-target-buffer' as default member.

	* test/lisp/erc/erc-tests.el (erc-log-irc-protocol): Use network-ID
	focused internal API.

	* test/lisp/erc/erc-networks-tests.el: Add new file that includes
	tests for the above network-ID focused functions.

	See bug#48598 for background on all of the above.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Add ERC test server and related resources

	* test/lisp/erc/resources/erc-d/erc-d.el: New file.
	* test/lisp/erc/resources/erc-d/erc-d-u.el: New file.
	* test/lisp/erc/resources/erc-d/erc-d-i.el: New file.
	* test/lisp/erc/resources/erc-d/erc-d-t.el: New file.
	* test/lisp/erc/resources/erc-d/erc-d-tests.el: New file.

	* test/lisp/erc/erc-scenarios-internal.el: New file to serve as
	discoverable proxy for erc-d-tests.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Discourage ill-defined use of buffer targets in ERC

	* lisp/erc/erc.el (erc-default-recipients, erc-default-target):
	Explain that the variable has fallen out of favor and that the
	function may have been used historically by third-party code for
	detecting channel subscription status, even though that's never been
	the case internally since at least the adoption of version control.
	Recommend newer alternatives.

	(erc--current-buffer-joined-p): Add possibly temporary predicate for
	detecting whether a buffer's target is a joined channel.  The existing
	means are inconsistent, as discussed in bug#48598.  The mere fact that
	they are disparate is unfriendly to new contributors.  For example, in
	the function `erc-autojoin-channels', the `process-status' of the
	`erc-server-process' is used to detect whether a buffer needs joining.
	That's fine in that specific situation, but it won't work elsewhere.
	And neither will checking whether `erc-default-target' is nil, so
	long as `erc-delete-default-channel' and friends remain in play.

	(erc-add-default-channel, erc-delete-default-channel, erc-add-query,
	erc-delete-query): Deprecate these helpers, which rely on an unused
	usage variant of `erc-default-recipients'.

	* lisp/erc/erc-services.el: remove stray `erc-default-recipients'
	declaration.

	* lisp/erc/erc-backend.el (erc-server-NICK, erc-server-JOIN,
	erc-server-KICK, erc-server-PART): wrap deprecated helpers to suppress
	warnings.

	* lisp/erc/erc-join.el (erc-autojoin-channels): Use helper to detect
	whether a buffer needs joining.  Prefer this to server liveliness, as
	explained above.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Add eventual replacement for erc-default-recipients

	* lisp/erc/erc.el (erc--target, erc--target-channel,
	erc--target-channel-local): Add new structs to hold info on a buffer's
	target; stored in a local variable of the same name.
	(erc--target-from-string): Add standalone constructor for
	`erc--target'.
	(erc--default-target): Add temporary internal getter to ease
	transition to `erc--target' everywhere.
	(erc-open): Create above items in non-server buffers.

	* lisp/erc/erc-backend.el (erc-server-NICK): Recreate `erc--target'
	when necessary.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Add helper to determine local channels in ERC

	* lisp/erc/erc.el (erc--valid-local-channel-p): Add internal helper to
	determine whether an IRC channel is local according to its network's
	CHANTYPES ISUPPORT parameter.

	* test/lisp/erc/erc-tests.el (erc--valid-local-channel-p): Add test
	for this helper.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Make ERC respect spaces in server passwords

	* lisp/erc/erc.el (erc-login): Also known as connection passwords,
	these are sent as the sole arg to the PASS command, which is nowadays
	often overloaded with other semantics imposed by various entities to
	convey things like bouncer or services creds.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Recognize ASCII and strict CASEMAPPINGs in ERC

	* lisp/erc/erc.el (erc-downcase, erc--casemapping-rfc1459-strict,
	erc--casemapping-rfc1459): Add new translation tables for the latter
	two mappings and use them in `erc-downcase'.

	* test/lisp/erc/erc-tests.el: Add test for `erc-downcase'.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Update ISUPPORT handling in ERC

	* lisp/erc/erc-backend.el (erc--isupport-params): Add new variable to
	hold a hashmap of parsed `erc-server-parameters' in a more useful
	format.  But keep `erc-server-parameters' around for public use.  We
	currently lack dedicated local variables for certain discovered IRC
	session properties, such as what prefix characters are supported for
	channels, etc.  And the truth of this needs querying many times per
	second at various points.  As such, caching here seems justified but
	can be easily removed if deemed otherwise because all ingredients are
	internal.
	(erc--parse-isupport-value): Add helper function that parses an
	ISUPPORT value and returns the component parts with backslash-x hex
	escapes removed.  This can probably use some streamlining.
	(erc--with-memoization): Add compat alias for use in internal ISUPPORT
	getter.  Should be moved to `erc-compat.el' when that library is fully
	reincorporated.
	(erc--get-isupport-entry): Add internal getter to look up ISUPPORT
	items.
	(erc-server-005): Treat `erc-server-response' "command args" field as
	read-only.  Previously, this field was set to nil after processing,
	which was unhelpful to other parts of the library.  Also call above
	mentioned helper to parse values.  And add some bookkeeping to handle
	negation.

	* lisp/erc/erc-capab.el (erc-capab-identify-send-messages): Use
	internal ISUPPORT getter.

	* lisp/erc/erc.el (erc-cmd-NICK, erc-parse-prefix,
	erc-nickname-in-use): Use internal ISUPPORT getter.

	* test/lisp/erc/erc-tests.el: Add tests for the above mentioned
	changes in erc-backend.el.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Require erc-networks in erc.el

	* lisp/erc/erc.el: Require erc-networks.el, which ERC can't run
	without these days.  To sidestep the circular dependency, require it
	last, just after erc-goodies.  Remove the `declare-function' for
	`erc-network-name' because it's not currently needed at load time.
	(erc-log-irc-protocol, erc-hide-current-message-p): Remove `fboundp'
	guard logic from `erc-network-name' invocations but preserve meaning
	by interpreting `erc-network' being unset to mean module isn't loaded
	or authoritative network detection has failed.
	(erc-format-network): Likewise here.  At the moment, this function
	always returns the empty string because the function
	`erc-network-name' always returns non-nil, perhaps from the
	fallback/failure sentinel "Unknown", perhaps from the printed form of
	nil.

	* lisp/erc/erc-networks.el (erc-network): This is called throughout
	erc.el but was previously cumbersome to use on account of being
	guarded by `fboundp'.  It now relies on the fact that its namesake
	variable is set in target buffers as well.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Don't set erc-server-announced-name unless known

	* lisp/erc/erc.el (erc-open): whenever this function is called, the
	variable `erc-server-announced-name' may be set locally in the calling
	server buffer.  However, if that buffer's dialed server matches that
	of the one being created, the announced name is copied over on faith.
	But there's no guarantee that the name will match the one ultimately
	emitted by the server during its introductory burst.  Beyond
	potentially causing confusion in protocol logs, this behavior may
	complicate debugging efforts.  Setting the variable to nil helps
	ensure a consistent environment when preparing a buffer for all newly
	dialed connections.  This commit also simplifies the setting of
	`erc-server-connected', which is always nil when connecting and
	vice-versa.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Allow exemption from flood penalty in erc-backend

	* lisp/erc/erc-backend.el (erc-server-send, erc-server-PING): Change name
	of param `forcep' in `erc-server-send' to `force' and change its type
	to the union of the symbol `no-penalty' and the set of all other
	non-nil values.  In `erc-server-PING', use this exemption when calling
	`erc-server-send'.  This fix was fast tracked and summarily
	incorporated into bug#48598 because users of the soju bouncer are all
	affected.  See update #5 in the bug's email thread under the section
	entitled "Riders" for an explanation.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Customize displaying of ERC buffers on reconnect

	* lisp/erc/erc-backend.el (erc--server-last-reconnect-count):
	Add variable to record last reconnect tally.

	* lisp/erc/erc.el (erc-reconnect-display): Add new option to specify
	channel-buffer display behavior on reconnect.
	(erc-setup-buffer): Use option `erc-reconnect-display' if warranted.
	(erc-cmd-JOIN): Forget last reconnect count when issuing a manual
	/JOIN command.
	(erc-connection-established): Record reconnect count in internal var
	before resetting.
	(Bug#51753)

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Remove duplicate ERC prompt on reconnect

	* lisp/erc/erc-backend.el (erc--unhide-prompt, erc--hide-prompt,
	erc--unhide-prompt-on-self-insert): Add functions to ensure prompt is
	hidden on disconnect and shown when a user types /reconnect in a
	disconnected server buffer.
	(erc-process-sentinel): Register aforementioned function with
	`pre-command-hook' when prompt is deleted after disconnecting.
	(erc-server-PRIVMSG): Ensure prompt is showing when a new message
	arrives from target.

	* lisp/erc/erc.el (erc-hide-prompt): Repurpose unused option by
	changing meaning slightly to mean "selectively hide prompt when
	disconnected."  Also delete obsolete, commented-out code that at some
	point used this option in its prior incarnation.
	(erc-prompt-hidden): Add new option to specify look of prompt when
	hidden.
	(erc-unhide-query-prompt): Add option to force-reveal query prompts on
	reconnect.
	(erc-open): Augment earlier reconnect-detection semantics by
	incorporating `erc--server-reconnecting'.  In existing buffers, remove
	prompt-related hooks and reveal prompt, if necessary.
	(erc-cmd-RECONNECT): Allow a user to reconnect when already
	connected (by first disconnecting).
	(erc-connection-established): Possibly unhide query prompts.
	(Bug#54826)

	* test/lisp/erc/erc-tests.el (erc-tests--test-prep,
	erc-tests--set-fake-server-process): Factor out some common
	buffer-prep boilerplate involving user input and the server process.
	Shared with bug#54536.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Accept user keyword arg in ERC entry-point commands

	* lisp/erc/erc-backend.el (erc-server-reconnect): Reuse the username
	argument from the previous session's USER command when reconnecting.
	Also pass the existing client certificate, fixing an issue related to
	bug#47788.
	(erc-session-user-full-name): Move variable here from erc.el.
	(erc-session-username): Add new local variable to store entry point
	parameter.

	* lisp/erc/erc.el (erc-session-user-full-name): Move variable to
	erc-backend.
	(erc-open, erc-determine-parameters, erc, erc-tls): Accept new
	optional user parameter.
	(erc-query): Preserve current `erc-session-username' when calling
	`erc-open'.
	(erc-login): Use `erc-session-username' instead of deriving it.
	(erc-compute-user): Add new function to determine user name from
	explicit argument or user options.
	(Bug#54824)

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Initialize erc-server-filter-data in erc-backend

	* lisp/erc/erc-backend.el (erc-server-connect): Set
	`erc-server-filter-data' to nil upon (re)connecting.

	* lisp/erc/erc.el (erc-open): For the sake of clarity, don't
	initialize `erc-server-filter-data' here because non-connect
	invocations merely set up a target buffer and have no business
	touching this variable.

2022-06-30  F. Jason Park  <jp@neverwas.me>

	Rework mutual dependency between erc and erc-backend

	* lisp/erc/erc.el: Declare needed variables exported by erc-backend.el
	as special near the top of the file, and only require `erc-backend'
	after providing `erc' as a feature at the very end.

	* lisp/erc/erc-backend.el: Don't preemptively provide `erc-backend'.

	* test/lisp/erc/erc-tests.el (erc--meta--backend-dependencies): Add
	utility test to scrape for unused vars that may accumulate over time.
	(Bug#54825)

2022-06-30  Stefan Kangas  <stefankangas@gmail.com>

	Doc fixes: don't refer to some obsolete items

	* admin/notes/multi-tty:
	* lisp/chistory.el (command-history):
	* lisp/emacs-lisp/nadvice.el:
	* lisp/vc/diff-mode.el: Doc fix; don't refer to obsolete variables and
	functions.

2022-06-30  Stefan Kangas  <stefankangas@gmail.com>

	Remove obsolete cust-print from elisp index

	* doc/lispref/edebug.texi (Printing in Edebug): Remove obsolete
	library "cust-print" from index.

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix define-obsolete-function-alias formatting in loaddefs-gen.el

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form):
	Fix formatting of define-obsolete-function-alias statements
	(bug#56292).

2022-06-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	(syntax-wholeline-max): New var

	Try and reduce the pain caused by font-lock and syntax-propertize's
	wholeline-based operation in buffers made up of a few very long lines
	(bug#45898).

	* lisp/emacs-lisp/syntax.el (syntax-wholeline-max): New var.
	(syntax--lbp): New function.
	(syntax-propertize-wholelines): Use it.

	* lisp/jit-lock.el (jit-lock--antiblink-post-command): Use `syntax--lbp`.

	* lisp/font-lock.el (font-lock-extend-region-wholelines): Rewrite,
	using `syntax-propertize-wholelines`.

2022-06-30  Stefan Kangas  <stefankangas@gmail.com>

	* admin/make-tarball.txt: Minor clarifications.

2022-06-30  Mattias Engdegård  <mattiase@acm.org>

	Don't say that macro-expansion error is a warning

	* lisp/emacs-lisp/gv.el:
	* lisp/emacs-lisp/macroexp.el (internal-macroexpand-for-load): Since
	eager macro-expansion errors are no longer warnings, don't say so.

2022-06-30  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/eshell/em-term.el (eshell-visual-commands): Add vim.

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Also add elisp-eval/byte-compile-buffer to lisp-interaction-mode

	* lisp/progmodes/elisp-mode.el (lisp-interaction-mode-map): Also
	add elisp-eval-buffer and elisp-byte-compile-buffer to this map.

2022-06-30  Mattias Engdegård  <mattiase@acm.org>

	Don't change indentation rules for `>=` and `=`

	* lisp/emacs-lisp/rx.el: `>=` and `=` are much more likely functions
	than RX constructs and the indentation machinery currently has
	no way to tell them apart.
	Suggested by Michael Herdeegen.

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in previous elisp-byte-compile-buffer change

	* lisp/progmodes/elisp-mode.el (elisp-byte-compile-buffer): Make
	warnings point to the correct place.

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up warning links in elisp-byte-compile-buffer

	* lisp/progmodes/elisp-mode.el (elisp-byte-compile-buffer): Make
	warnings point to the correct place.

2022-06-30  Stefan Kangas  <stefankangas@gmail.com>

	New hook save-place-after-find-file-hook

	This is intended for use in Org mode, where we currently use advise.
	* lisp/saveplace.el (save-place-after-find-file-hook): New hook.
	(save-place-find-file-hook): Run new hook.

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Make "eager macro-expansion" warning into an error

	* doc/lispref/loading.texi (How Programs Do Loading): Update
	documentation.

	* lisp/emacs-lisp/macroexp.el:
	(internal-macroexpand-for-load): We've been warning about eager
	macro expansion for many years, so finally change that into an
	error (bug#18154).

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Do NEWS tagging

2022-06-30  Eli Zaretskii  <eliz@gnu.org>

	Fix external image conversion on MS-Windows

	* lisp/image/image-converter.el (image-converter--convert-magick)
	(image-converter--convert): Force encoding/decoding to avoid any
	text or EOL conversions, since we are reading/writing binary
	data.  (Bug#56317)

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Add find-function-setup-keys bindings for find-library commands

	* lisp/emacs-lisp/find-func.el (find-function-setup-keys): Add `L'
	bindings for the find-library family of commands (bug#51240).

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Restore temp-buffer-resize-mode behavior wrt. [back] buttons

	* lisp/help.el (help--window-setup): If temp-buffer-resize-mode, do
	the window setup after adding [back] buttons (bug#56306).

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in previous server.el change

	* lisp/server.el (server-process-filter): Fix typo in previous change.

2022-06-30  Michael Shields  <shields@msrl.com>

	Don't ignore emacsclient's --frame-parameters option when -t

	* lisp/server.el (server-process-filter): Add part of patch that
	was mistakenly missed when the patch was applied (bug#24147).
	This also fixes bug#56309.

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new commands to elisp mode for eval/compilation

	* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-map): Add new
	keystrokes.
	(elisp-eval-buffer, elisp-byte-compile-file)
	(elisp-byte-compile-buffer): New commands.

2022-06-30  Mike Kupfer  <mkupfer@alum.berkeley.edu>

	Clarify `version-control' in the Emacs manual

	* doc/emacs/files.texi (Backup Names): Rephrase for greater
	clarity (bug#56291).

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Recognize Gradle error messages in compile-mode

	* lisp/progmodes/compile.el
	(compilation-error-regexp-alist-alist): Recognize Gradle errors
	(bug#56249).

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Add provide to testcover

	* lisp/emacs-lisp/testcover.el (testcover): Provide (bug#55388).

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-06-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new commands to zoom emojis

	* lisp/international/emoji.el (emoji-zoom-map)
	(emoji-zoom-increase, emoji-zoom-decrease): New commands.

	* lisp/international/mule-cmds.el (ctl-x-map): Bind them.

2022-06-30  Po Lu  <luangruo@yahoo.com>

	Disable unrelated drag-and-drop protocols during XDS drop

	* doc/lispref/frames.texi (Drag and Drop): Document variables
	used to control drag-and-drop protocols.
	* lisp/x-dnd.el (x-dnd-do-direct-save): Disable irrelevant DND
	protocols.

	* src/xterm.c (x_dnd_get_target_window_1):
	(x_dnd_get_target_window):
	(handle_one_xevent): Respect new variable.
	(syms_of_xterm): New variable `x-dnd-disable-motif-protocol'.

2022-06-30  jicksaw  <jicksaw@pm.me>  (tiny change)

	Reduce eldoc noise from hover messages

	Also close https://github.com/joaotavora/eglot/issues/985

	Only echo hover response content, without response range.

	LSP specification says the range is meant to visualize a hover.
	Maybe echoing the range is useful for some, but it seems
	non-standard behavior.

	Example issue: haskell-language-server responds with range set to
	whole file when hovering a comment -> Large, useless eldoc

	* eglot.el (eglot--hover-info): Remove text selected by range from
	output

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/514

2022-06-30  Po Lu  <luangruo@yahoo.com>

	Improve compliance with the XDS and XDND protocols

	* lisp/select.el (xselect-convert-to-text-uri-list): Return a
	type of `text/uri-list' instead of STRING or C_STRING.

	* lisp/x-dnd.el (x-dnd-xds-performed): New defvar.
	(x-dnd-handle-direct-save): Set it to t and handle URIs with
	hostnames correctly. Also return errors correctly.
	(x-dnd-handle-octet-stream): New function.
	(x-dnd-do-direct-save): Handle application/octet-stream, check
	results.

2022-06-29  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Use "Surname" instead of "Name" in prompts

	* lisp/net/eudc-vars.el (eudc-user-attribute-names-alist): Add
	name/"Surname" association.
	* lisp/net/eudc.el (eudc-get-email): Prompt for surname.
	* lisp/net/eudc.el (eudc-get-phone): Likewise.

2022-06-29  Po Lu  <luangruo@yahoo.com>

	Fix preservation of the original value of PRIMARY after dropping on xterm

	* src/xselect.c (x_own_selection): New arg `dnd_data'.  Record
	it.
	(x_get_local_selection, x_handle_selection_request)
	(x_convert_selection): Convert the DND data instead if the
	situation warrants.
	(Fx_own_selection_internal, Fx_get_selection_internal)
	(Fx_get_local_selection): Update calls to x_get_local_selection.

	* src/xterm.c (x_dnd_do_unsupported_drop): If obtaining
	selection ownership failed, return.  Record DND value and
	preserve the current value of PRIMARY, if it exists.

	* src/xterm.h: Update prototypes.

2022-06-29  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Prevent field overlap when query form is reset

	* lisp/net/eudc.el (eudc-query-form): Delete all overlays before
	erasing buffer.  Remove widget-after-change from
	after-change-functions.

2022-06-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/emacs/buffers.texi (Indirect Buffers): Mention modification hook quirk

2022-06-29  Eli Zaretskii  <eliz@gnu.org>

	Fix hscrolling of :align-to when display-line-numbers is in effect

	* src/dispextern.h (struct it): Rename 'tab_offset' member to
	'stretch_adjust'.
	* src/xdisp.c (gui_produce_glyphs, produce_stretch_glyph)
	(display_line): All users of 'tab_offset' changed.
	(produce_stretch_glyph): Fix calculation of ':align-to' when
	line numbers are displayed and the window is hscrolled.
	(calc_pixel_width_or_height): Fix calculation of width of 'space'
	display property when 'display-line-numbers' is turned on, but the
	line number was not yet produced for the current glyph row.
	(Bug#56176)

2022-06-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix `diff-buffers` case

2022-06-29  Mattias Engdegård  <mattiase@acm.org>

	More robust `gnu` pattern (bug#56249)

	* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
	Don't allow spaces in the file names, to avoid false matches.
	Don't allow ad-hoc spaces preceding the program name either.

2022-06-29  Mattias Engdegård  <mattiase@acm.org>

	Complete transition to rx for compilation `gnu` pattern

	* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
	Change from a mixture of traditional regexp syntax and rx,
	to make intentions clearer.

2022-06-29  Mattias Engdegård  <mattiase@acm.org>

	* lisp/emacs-lisp/rx.el: Indent some rx constructs correctly.

	This includes group-n, submatch-n, =, >=, ** and repeat, whose first 1
	or 2 arguments are special.

2022-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	6c26f089a7 Update ChangeLog and AUTHORS for 28.1.90 pretest

	# Conflicts:
	#	ChangeLog.3
	#	etc/AUTHORS

2022-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	bf137fdbd2 ; * admin/make-tarball.txt: Small clarification.

2022-06-29  Po Lu  <luangruo@yahoo.com>

	Fix handling invalidated selection requests

	* src/xselect.c (x_handle_selection_request): Correctly punt
	when !dpyinfo.

2022-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Bump Emacs version to 28.1.90

	* README:
	* configure.ac:
	* msdos/sed2v2.inp:
	* nt/README.W32: Bump Emacs version to 28.1.90.

2022-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Update ChangeLog and AUTHORS for 28.1.90 pretest

	* ChangeLog.3:
	* etc/AUTHORS: Update.

2022-06-29  Po Lu  <luangruo@yahoo.com>

	Fix some bugs found while testing drag-and-drop

	* lisp/x-dnd.el (x-dnd-get-drop-width-height):
	(x-dnd-get-drop-x-y): Fix doc string.
	(x-dnd-handle-xdnd): Don't set update rect if
	`dnd-indicate-insertion-point'.  Bug found testing with "JX
	Application Framework".

2022-06-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl--generic-compiler): Revert last change

	That change (introduced to circumvent an error now that `seq.el` is
	preloaded) caused all dispatchers to be left uncompiled, which slows down
	method dispatch very significantly.  Fix the problem in the old way,
	i.e. by adding an explicit call to `cl--generic-prefill-dispatchers`.

	* lisp/emacs-lisp/cl-generic.el (cl--generic-compiler): Revert last change.
	Add (cl--generic-prefill-dispatchers 1 integer) instead to handle
	the new dispatchers needed for `seq.el`.
	(cl--generic-prefill-generalizer-sample): New function.
	(cl--generic-get-dispatcher): Use it to signal an error giving precise
	instructions for what to do if we're about the load the byte-compiler
	during the preload.
	(cl--generic-oclosure-generalizer): Rename from
	`cl-generic--oclosure-generalizer` for consistency with all
	other generalizers.

2022-06-29  Po Lu  <luangruo@yahoo.com>

	Update dnd-tests.el to make sure remote files are removed when Emacs quits

	* test/lisp/dnd-tests.el (dnd-tests-begin-drag-files)
	(dnd-tests-begin-file-drag): Test value of `kill-emacs-hook'.

2022-06-29  Po Lu  <luangruo@yahoo.com>

	Implement starting X Direct Save (XDS) drops

	* doc/lispref/frames.texi (Drag and Drop): Document new function
	`dnd-direct-save'.
	* etc/NEWS: Likewise.

	* lisp/dnd.el (dnd-direct-save-remote-files): New defcustom.
	(dnd-begin-file-drag): Implement defucstom.
	(dnd-begin-drag-files): Add kill-emacs-hook after saving remote
	file.
	(dnd-direct-save): New function.
	* lisp/x-dnd.el (x-dnd-known-types): Fix coding style.
	(x-dnd-handle-drag-n-drop-event): Handle local value with
	self-originating DND events.
	(x-dnd-xds-current-file, x-dnd-xds-source-frame): New defvars.
	(x-dnd-handle-direct-save, x-dnd-do-direct-save): New functions.

	* src/xfns.c (Fx_begin_drag): Allow any atom to be used as a DND
	action.
	* src/xselect.c (symbol_to_x_atom): Make public.
	* src/xterm.c (x_dnd_note_self_drop): Include selection local
	value.
	(x_ignore_errors_for_next_request): Don't assume x_error_message
	is set.
	* src/xterm.h: Update prototypes.

2022-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Make two text-property-search tests easier to read

	* test/lisp/emacs-lisp/text-property-search-tests.el
	(text-property-search-forward/point-at-beginning)
	(text-property-search-backward/point-at-end): Rewrite to make tests
	easier to read.

2022-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Minor cleanup in dired-x-bind-find-file

	* lisp/dired-x.el (dired-x-bind-find-file): Use 'format-message'
	and 'keymap-set'.

2022-06-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the eval-defun doc string

	* lisp/progmodes/elisp-mode.el (eval-defun): Document what the
	command actually does w.r.t. finding a form to evaluate
	(bug#47747).

2022-06-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that In-Reply-To is saved in drafts in Message

	* lisp/gnus/message.el (message-hidden-headers): Hide In-Reply-To
	now that we pre-generate it.
	(message-setup-1): Pre-generate In-Reply-To so that it'll be saved
	in drafts (bug#47639).

2022-06-29  Tom Gillespie  <tgbugs@gmail.com>

	test/lisp/progmodes/python-tests.el: add test for nav end of block

	Add test for python-nav-end-of-block to prevent regression of bug#56271.

2022-06-29  Tom Gillespie  <tgbugs@gmail.com>

	lisp/progmodes/python.el (python-nav-end-of-block): prevent infinite loop

	lisp/progmodes/python.el (python-nav-end-of-block): Fix a bad
	assumption that python-nav-end-of-statement always makes forward
	progress by testing that it actually does. If this check is not made
	then it is possible for python-nav-end-of-block to enter an infinite
	loop. (bug#56271)

2022-06-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation-mode parsing of file names in Gradle errors

	* lisp/progmodes/compile.el
	(compilation-error-regexp-alist-alist): Fix parsing of file names
	in Gradle output (bug#56249).

2022-06-29  Po Lu  <luangruo@yahoo.com>

	* lisp/pgtk-dnd.el (pgtk-dnd-use-offix-drop): Remove extra variable.

2022-06-29  Po Lu  <luangruo@yahoo.com>

	Clean up failable requests in more places

	* lisp/term/haiku-win.el (haiku-get-numeric-enum): Fix build.

	* src/xterm.c (x_clean_failable_requests): Avoid redundant
	memcpy if first == last.
	(x_ignore_errors_for_next_request): Fix check for last request.
	(x_check_errors, x_had_errors_p): Clean up failable requests
	here.

2022-06-29  Po Lu  <luangruo@yahoo.com>

	Handle be:actions field in Haiku DND messages

	* lisp/term/haiku-win.el (haiku-get-numeric-enum): New function.
	(haiku-numeric-enum): New macro.
	(haiku-select-encode-xstring, haiku-select-encode-utf-8-string):
	Replace hard-coded numeric enumerators.
	(haiku-parse-drag-actions): New function.
	(haiku-drag-and-drop): Use action returned by that function.
	(x-begin-drag): Replace hard-coded enumerator.

2022-06-29  Gerd Möllmann  <gerd@gnu.org>

	Ensure correct toggle menu item display

	* lisp/menu-bar.el (menu-bar-make-toggle-command): Call
	force-mode-line-update. (Bug#56155)

2022-06-29  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	2eba8cad20 Tramp shall not trap unrelated D-Bus errors
	a8e72eb0e2 ; * etc/NEWS: Fix file name quotations.
	091b22cb12 Fix hash table function return values in manual

	# Conflicts:
	#	etc/NEWS

2022-06-28  Po Lu  <luangruo@yahoo.com>

	Fix reported problem with drag-and-drop inside VirtualBox

	* lisp/x-dnd.el (x-dnd-handle-old-kde, x-dnd-handle-offix)
	(x-dnd-handle-motif): Select window before handling drop, like
	on Xdnd.
	(x-dnd-convert-to-offix, x-dnd-do-offix-drop)
	(x-dnd-handle-unsupported-drop): Accept local selection data and
	use that instead.

	* src/keyboard.c (kbd_buffer_get_event): Call unsupported drop
	function with local selection data as 8th arg.
	* src/xselect.c (x_get_local_selection): Accept new arg
	`local_value'.  All callers changed.
	(Fx_get_local_selection): New function.
	(syms_of_xselect): Update defsubrs.

	* src/xterm.c (x_dnd_lose_ownership): New function.
	(x_dnd_begin_drag_and_drop): Unless new variable is true, disown
	XdndSelection after returning.  This supposedly makes
	drag-and-drop from guest to host work in VirtualBox without
	causing pointer motion to become choppy afterwards.
	(syms_of_xterm): New variable `x_dnd_preserve_selection_data'
	and update doc string of `x-dnd-unsupported-drop-function'.

	* test/lisp/dnd-tests.el (dnd-tests-begin-text-drag)
	(dnd-tests-begin-file-drag, dnd-tests-begin-drag-files): Set new
	variable to nil during tests.

2022-06-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in previous maintaining.texi change

	* doc/emacs/maintaining.texi (Looking Up Identifiers): Fix typo.

2022-06-28  Juri Linkov  <juri@linkov.net>

	* lisp/isearch.el (isearch-delete-char): Improve fix for bug#52248.

	When reaching the top of the stack where isearch-other-end is nil,
	still close unnecessary overlays for the previous position.
	(isearch-close-unnecessary-overlays): Rename arg BEG for consistency.

2022-06-28  Visuwesh  <visuweshm@gmail.com>

	trouble.texi (Long Lines): Fix typo.

	* doc/emacs/trouble.texi (Long Lines): Fix typo (bug#56283).

2022-06-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Put the obsoletion earlier in the *Help* buffer

	* lisp/help-fns.el (help-fns--obsolete): Remove indentation and fill.
	(help-fns--var-obsolete): Ditto.
	(describe-function-1): Output the obsoletion info first since it's
	vital information.
	(describe-variable): Ditto (bug#56251).

2022-06-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve sxhash-equal documentation

	* doc/lispref/hash.texi (Defining Hash): Explain more about what
	sxhash-equal is for and what the caveats are.
	* src/fns.c (Fsxhash_eql, Fsxhash_equal): Clarify doc string.

2022-06-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow using define-short-documentation-group without loading shortdoc

	* lisp/emacs-lisp/shortdoc.el (define-short-documentation-group):
	Allow using without loading shortdoc.el (bug#56260).

2022-06-28  Michael Albinus  <michael.albinus@gmx.de>

	Tramp shall not trap unrelated D-Bus errors

	* lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): Declare.
	(tramp-gvfs-file-name-handler): Let-bind it.
	(tramp-gvfs-dbus-event-vector): Fix docstring.
	(tramp-gvfs-maybe-open-connection): Do not set it globally.  (Bug#56162)

2022-06-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify Looking Up Identifiers in the manual

	* doc/emacs/maintaining.texi (Looking Up Identifiers): Clarify the
	text about C-M-, (bug#56261).

2022-06-28  Zachary Kanfer  <zkanfer@gmail.com>

	Add new command `rename-visited-file'

	* doc/emacs/files.texi (Save Commands): Document it.

	* lisp/files.el (rename-visited-file): New command (bug#56229).

2022-06-28  Jim Meyering  <meyering@fb.com>  (tiny change)

	Fix configure.ac quoting of AC_CHECK_LIB's 2nd arg

	Running an autoconf-head-generated configure, would fail like this:
	  /emacs/configure: line 18002: syntax error near unexpected token `;;'
	  /emacs/configure: line 18002: `  ;;'
	That is due to under-quoting of AC_CHECK_LIB's second argument, which led to
	the comma in an embedded string being interpreted as parameter-delimiting.
	* configure.ac: Quote the second arg of each AC_CHECK_LIB invocation.
	(Bug#56272)

2022-06-28  Po Lu  <luangruo@yahoo.com>

	Adjust x-clipboard-yank for recent selection ownership changes

	* lisp/term/x-win.el (x-clipboard-yank): Don't own CLIPBOARD
	inside kill-new.

2022-06-28  Po Lu  <luangruo@yahoo.com>

	Clean up Fx_begin_drag

	* src/xfns.c (Fx_begin_drag): Use FOR_EACH_TAIL instead of
	iterating manually.

2022-06-28  Po Lu  <luangruo@yahoo.com>

	Automatically detect cyclic lists in some Haiku functions

	* src/haikuselect.c (haiku_lisp_to_message): Use FOR_EACH_TAIL
	to iterate over message data.

2022-06-28  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix hash table function return values in manual

	* doc/lispref/hash.texi (Hash Access): Reconcile documented return
	values of puthash and clrhash with their respective
	docstrings (bug#55562).

2022-06-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a280df4cab ; Mention in NEWS the need to use --bindir

	# Conflicts:
	#	etc/NEWS

2022-06-27  Po Lu  <luangruo@yahoo.com>

	Fix handling "C-S-u" and such when using XKB

	* src/xterm.c (handle_one_xevent): Don't rely on XKB for
	consumed modifiers.

2022-06-27  Po Lu  <luangruo@yahoo.com>

	Always use XKB to translate keysyms when no input method is available

	* src/xterm.c (handle_one_xevent) [HAVE_XKB]: Also use XKB to
	handle core KeyPress events.

2022-06-27  Basil L. Contovounesios  <contovob@tcd.ie>

	* lisp/subr.el (plistp): Simplify (bug#47427).

2022-06-27  Paul Eggert  <eggert@cs.ucla.edu>

	"make clean" etc. problem now fixed on Solaris.

2022-06-27  Gerd Möllmann  <gerd@gnu.org>

	Prevent regexp cache entries from being GC'ed in more cases

	* src/search.c (string_match_1, fast_string_match_internal)
	(fast_c_string_match_ignore_case): Use freeze_pattern.
	(Bug#56108)

2022-06-27  Eli Zaretskii  <eliz@gnu.org>

	Fix deletion of composed text

	* lisp/composite.el (lgstring-glyph-boundary): New function.
	* lisp/simple.el (delete-forward-char): Call
	'lgstring-glyph-boundary' to find where to end the deletion inside
	an automatic composition.  (Bug#56237)

2022-06-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some missed Fplist_put adjustments in src/w32.c

	* src/w32.c (serial_configure): Adjust some missed Fplist_put renames.

2022-06-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new type predicate plistp

	* lisp/subr.el (plistp): New type predicate (bug#47427).  This
	referred to in the error message from plist-put: "Debugger
	entered--Lisp error: (wrong-type-argument plistp (a b c))".

2022-06-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust plist calls in .m files

	* src/nsterm.m (mod_of_kind):
	* src/nsimage.m (ns_load_image): Adjust plist calls in .m files.

2022-06-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow plist-get/plist-put/plist-member to take a comparison function

	* doc/lispref/lists.texi (Plist Access): Document it.

	* lisp/filesets.el (filesets-reset-fileset)
	(filesets-ingroup-cache-get):
	(filesets-ingroup-cache-put):
	(filesets-build-menu-now): Don't use lax-plist functions.

	* lisp/simple.el (lax-plist-put, lax-plist-get): Moved here from
	fns.c and make obsolete.

	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Don't mark
	plist functions as side-effect-free or pure.

	* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Adjust type.

	* lisp/emacs-lisp/shortdoc.el (list): Don't document deprecated
	functions.

	* src/xdisp.c (build_desired_tool_bar_string):
	(display_mode_element):
	(store_mode_line_string):
	(display_string):
	(produce_stretch_glyph):
	(note_mode_line_or_margin_highlight):
	(note_mouse_highlight):
	* src/w32.c (serial_configure):
	* src/sysdep.c (serial_configure):
	* src/sound.c (parse_sound):
	* src/process.c (Fset_process_buffer):
	(Fset_process_sentinel):
	(Fprocess_contact):
	(Fmake_process):
	(Fmake_pipe_process):
	(Fset_network_process_option):
	(Fserial_process_configure):
	(Fmake_serial_process):
	(set_network_socket_coding_system):
	(finish_after_tls_connection):
	(connect_network_socket):
	(Fmake_network_process):
	(server_accept_connection):
	* src/lread.c (ADDPARAM):
	(hash_table_from_plist):
	* src/keyboard.c (make_lispy_position):
	* src/indent.c (check_display_width):
	* src/image.c (postprocess_image):
	* src/gnutls.c (gnutls_verify_boot):
	(Fgnutls_boot):
	(gnutls_symmetric):
	(Fgnutls_hash_mac):
	(Fgnutls_hash_digest):
	* src/dired.c (filter):
	* src/data.c (add_to_function_history):
	* src/coding.c (Fcoding_system_put): Adjust callers from
	Fplist_put (etc) to plist_put.

	* src/fns.c (plist_get):
	(plist_put):
	(plist_member): New functions (without optional third parameter)
	to be used in C code.

	* src/fns.c (Fplist_get, Fplist_put, Fplist_member): Take an
	optional predicate parameter (bug#47425).

	* src/lisp.h: Declare new plist_put, plist_get and plist_member
	functions.

	* test/lisp/json-tests.el (test-json-add-to-plist): Use plist-get.

	* test/src/fns-tests.el (test-cycle-lax-plist-get):
	(test-cycle-lax-plist-put):
	(lax-plist-get/odd-number-of-elements):
	(test-plist): Remove lax-plist tests, since semantics have changed
	(they no longer error out on cycles).

2022-06-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Add NEWS entry about C-h v font locking

2022-06-27  hokomo  <hokomo@airmail.cc>  (tiny change)

	Fix detecting dotted pairs in icalendar-export-region

	* lisp/calendar/icalendar.el (icalendar-export-region): Fix detecting
	dotted pairs (bug#56241).

2022-06-27  Allen Li  <darkfeline@felesatra.moe>

	find-dired: Add find-dired-with-command

	Add a command that runs and sets up the find-dired buffer with an
	arbitrary find command.  Also rewrite the existing find-dired commands
	using it.

	The set of commands possible with find-dired is limited; the new
	command allows users to run the full set of commands, but also leaves
	the responsibility to the user to construct the command manually.

	* lisp/find-dired.el (find-command-history): New var.
	(find-dired-with-command): New command.
	(find-dired): Rewritten with new command.

2022-06-27  Allen Li  <darkfeline@felesatra.moe>

	find-dired: Factor out find-dired--escaped-ls-option

	Deduplicate this logic for other future find-dired commands.

	* lisp/find-dired.el (find-dired--escaped-ls-option): New function.
	(find-dired): Use find-dired--escaped-ls-option.

2022-06-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix off-by-one error in Fsignal_names

	* src/process.c (Fsignal_names): Fix off-by-one error.

2022-06-27  Po Lu  <luangruo@yahoo.com>

	Use correct background for image mask color on Haiku

	* src/haikuterm.c (haiku_draw_image_glyph_string): Use adjusted
	background for image mask.

2022-06-27  Po Lu  <luangruo@yahoo.com>

	Implement stipples for images on Haiku

	* src/haiku_draw_support.cc (be_draw_bitmap_with_mask): New
	function.
	* src/haiku_support.h: Add prototype.

	* src/haikuterm.c (haiku_draw_image_glyph_string): Draw stipple
	correctly.
	(haiku_draw_glyph_string): Fix conditions under which
	row->stipple_p is set.

2022-06-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	48bda83d35 Update to Org 9.5.4-3-g6dc785
	c66b90a534 Mention Solaris 10 'make clean' and 'make check'
	ade34cf821 Mention further crashes on Solaris 10

2022-06-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a9d338818a ; elec-pair: Fix docstring typo (bug#56233)

2022-06-26  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.5.4-3-g6dc785

2022-06-26  Po Lu  <luangruo@yahoo.com>

	Correctly convert event state in more places

	* src/xterm.c (handle_one_xevent): Use `xi_convert_event_state'
	to handle synthetic and xwidget button events.

2022-06-26  Paul Eggert  <eggert@cs.ucla.edu>

	Mention Solaris 10 'make clean' and 'make check'

	Mention further crashes on Solaris 10

2022-06-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Minor clean up of previous Fsignal_names patch

	* src/process.c (Fsignal_names): Clean up code slightly.

2022-06-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `signal-process' allow completing over signal names

	* lisp/simple.el (read-signal-name): New function.
	* src/process.c (Fsignal_process): Use it to allow completing over
	the signal names (bug#56239).
	(Fsignal_names): New function.

2022-06-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Font-lock variable values in *Help*

	* lisp/help-fns.el (describe-variable): Font-lock the variable
	value (bug#47363).

2022-06-26  Mattias Engdegård  <mattiase@acm.org>

	Optimize away functions in for-effect context

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
	Turn functions into nil when compiled for-effect since they have no
	side-effects on their own.  This may enable further improvements such
	as the elimination of variable bindings.
	`unwind-protect` forms can be treated as plain function call at this
	point.  In particular, their unwind function argument should be
	not optimized for effect since it's a function.

2022-06-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	(oclosure-test-limits): Fix test failure when interpreted

	* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-limits):
	Make sure we bind `byte-compile-debug` dynamically.

2022-06-26  Eli Zaretskii  <eliz@gnu.org>

	Fix re-composition under 'composition-break-at-point'

	* src/xdisp.c (try_window_id): Disable this optimization if
	'composition-break-at-point' is non-nil.

2022-06-26  Eli Zaretskii  <eliz@gnu.org>

	* lisp/simple.el (delete-forward-char): Fix bug #56237.

2022-06-26  Jim Porter  <jporterbugs@gmail.com>

	When closing an Eshell process target, send EOF three times

	* lisp/eshell/esh-io.el (eshell-close-target): Send EOF 3 times.

	* test/lisp/eshell/em-extpipe-tests.el (em-extpipe-tests--deftest):
	Re-enable these tests on EMBA.

	This patch is adapted by one from Ken Brown, who uncovered the reason
	for this bug (bug#56025).

2022-06-26  Kjartan Óli Ágústsson  <kjartanoli@outlook.com>

	Reconvert EPUB buffers when user CSS is changed

	* lisp/doc-view.el (doc-view-epub-user-stylesheet): Add
	`doc-view-custom-set-mutool-user-stylesheet' as setter, change name.
	(doc-view-custom-set-epub-font-size): Factor reconvert logic out
	(doc-view--epub-reconvert): Add defun
	(doc-view--epub-stylesheet-watcher): Add defvar
	(doc-view-custom-set-epub-user-stylesheet): Add defun (bug#55825).

2022-06-26  Visuwesh  <visuweshm@gmail.com>

	Make <mouse-2> in mode line more careful as well

	* lisp/mouse.el (mouse-delete-other-windows): Only delete other
	windows if the user didn't move the cursor off the
	mode-line (bug#56198).

2022-06-26  Visuwesh  <visuweshm@gmail.com>

	Make <mouse-3> in the mode line more careful

	* lisp/mouse.el (mouse-delete-window): Only delete the window if
	the user hasn't moved point out of the mode line before releasing
	the button (bug#56198).

2022-06-26  Jonas Bernoulli  <jonas@bernoul.li>

	Avoid positional arguments to define-minor-mode

	Back in Emacs-21.1, `define-minor-mode' grew keyword arguments to
	replace its old positional arguments.  Starting with Emacs-28.1
	a warning will be omitted if positional arguments are still used.

2022-06-26  Jim Porter  <jporterbugs@gmail.com>

	Make Eshell globs ending in "/" match directories only

	* lisp/eshell/em-glob.el (eshell-glob-convert): Return whether to
	match directories only.
	(eshell-glob-entries): Add ONLY-DIRS argument.

	* test/lisp/eshell/em-glob-tests.el
	(em-glob-test/match-any-directory): New test.
	(em-glob-test/match-recursive)
	(em-glob-test/match-recursive-follow-symlinks): Add test cases for
	when "**/" or "***/" are the last components in a glob.

	* etc/NEWS: Announce this change (bug#56227).

2022-06-26  Jim Porter  <jporterbugs@gmail.com>

	Convert Eshell globs ahead of time instead of doing it repeatedly

	* lisp/eshell/em-glob.el (eshell-glob-recursive): New variable.
	(eshell-glob-convert-1, eshell-glob-convert): New functions.
	(eshell-extended-glob): Use 'eshell-glob-convert'.
	(eshell-glob-entries): Adapt function to use pre-converted globs.

	* test/lisp/eshell-em-glob-tests.el (em-glob-test/match-dot-files):
	New test.

2022-06-26  Jim Porter  <jporterbugs@gmail.com>

	Optionally signal an error if an Eshell predicate fails to match anything

	* lisp/eshell/em-pred.el (eshell-error-if-no-glob): Declare it.
	(eshell-apply-modifiers): Add STRING-DESC argument and signal an error
	if there are no matches and 'eshell-error-if-no-glob' is set.
	(eshell-parse-arg-modifier): Pass modifier string to
	'eshell-apply-modifiers'.

	* test/lisp/eshell/em-pred-tests.el (eshell-eval-predicate): Simplify.
	(em-pred-test/no-matches): New test.

	* doc/misc/eshell.texi (Bugs and ideas): Remove todo entry about this
	change.

2022-06-26  Daniel Martín  <mardani29@yahoo.es>

	Fix typo in signal-process-functions

	* doc/lispref/processes.texi (Signals to Processes): Update reference
	to correct default variable in the ELisp manual.
	* etc/NEWS: The same for the NEWS entry (bug#56234).

2022-06-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Update term-char-mode doc string

	* lisp/term.el (term-char-mode): Update doc string.

2022-06-26  Michael Heerdegen  <michael_heerdegen@web.de>

	Fix Bug#56110 (switching from line-mode to char-mode)

	* lisp/term.el (term-char-mode): Make `add-function' override the
	correct place (the buffer local variable `term-input-sender').

2022-06-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix a recent Lisp mode filling test failure

	* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Restore the
	"fill first line separately" logic.

2022-06-26  Stefan Kangas  <stefankangas@gmail.com>

	Fix typo in use-package docstring

2022-06-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/syntax.el: Rework the handling of nested calls.

	Nested calls to `syntax-ppss` and `syntax-propertize` can easily
	happen unexpectedly via ondemand propertizing or `forward-sexp`.
	Refine the handling of nested calls so we detect them more reliably
	(e.g. also within `syntax-propertize-extend-region-functions`)
	and so that the `syntax-ppss` cache is automatically flushed in case
	it might have been filled with data that's become obsolete since.

	(syntax-propertize--inhibit-flush): Delete var.
	(syntax-propertize--in-process-p): New function to replace it.
	(syntax-ppss-flush-cache): Use it.
	(syntax-ppss--updated-cache): New var.
	(syntax-propertize): Make `syntax-propertize--done` binding apply to
	`syntax-propertize-extend-region-functions` as well, as intended (fixes
	bug#46713).  Use `syntax-ppss--updated-cache` to flush
	syntax-ppss cache at the end when needed.
	Don't bind `syntax-propertize--inhibit-flush` any more.
	(syntax-ppss): Set `syntax-ppss--updated-cache` when applicable.

2022-06-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't create HOME if it doesn't exist

	* lisp/files.el (locate-user-emacs-file): Don't create HOME if it
	doesn't exist (bug#47298).  This returns us to Emacs 26.3
	behavior here.

2022-06-26  Michael Albinus  <michael.albinus@gmx.de>

	Fix narrowing problem in tramp-debug-buffer-command-completion-p

	* lisp/net/tramp.el (tramp-debug-buffer-command-completion-p):
	Respect narrowing.  (Bug#56225)

2022-06-26  Po Lu  <luangruo@yahoo.com>

	Add some more common predefined atoms

	* src/xterm.c (x_intern_cached_atom, x_get_atom_name): Add
	DRAWABLE, BITMAP, COLORMAP, CURSOR and FONT.

2022-06-26  Eli Zaretskii  <eliz@gnu.org>

	Fix ispell-word on colorless TTY frames

	* lisp/textmodes/ispell.el
	(ispell-highlight-spelling-error-generic): Keep marker position of
	END intact, deletion of text notwithstanding.  (Bug#56219)

2022-06-26  Po Lu  <luangruo@yahoo.com>

	Stop catching errors for some requests

	* src/xterm.c (x_dnd_compute_toplevels)
	(frame_set_mouse_pixel_position, x_focus_frame): Use
	`x_ignore_errors_for_next_request'.  This results in a healthy
	~30% speedup for the involved requests.

2022-06-25  Po Lu  <luangruo@yahoo.com>

	Handle errors while sending client events asynchronously

	* src/xterm.c (xm_send_drop_message)
	(xm_send_top_level_enter_message, xm_send_drag_motion_message)
	(xm_send_top_level_leave_message, x_dnd_send_enter)
	(x_dnd_send_position, x_dnd_send_leave, x_dnd_send_drop): Avoid
	sync to check for errors while sending client events.
	(x_dnd_begin_drag_and_drop, handle_one_xevent, XTread_socket):
	Clean up failable requests.
	(x_request_can_fail): New functions.
	(x_clean_failable_requests, x_ignore_errors_for_next_request)
	(x_uncatch_errors): Clean up failable requests.
	(x_error_handler): If a request is allowed to fail, just return.
	(x_term_init): Set up new pointer.
	* src/xterm.h (N_FAILABLE_REQUESTS): New macro.
	(struct x_display_info): New field `failable_requests' and
	associated next pointer.

2022-06-25  Paul Eggert  <eggert@cs.ucla.edu>

	Port ‘make clean’ to Solaris 10

	* test/Makefile.in (CLEAN_XML_FILES): New macro.
	(clean): Use it.

2022-06-25  Paul Eggert  <eggert@cs.ucla.edu>

	Port distribution tarball to Solaris 10

	* make-dist (taropt): Use 'tar -H ustar' to generate a portable
	tar file format instead of a GNU-specific format.  Needed now that
	Emacs tarballs contain file names longer than 100 bytes, e.g.:
	emacs-28.1/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C072AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key
	emacs-28.1/test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-run-hook-with-args-until-success.el
	Without this patch, extracting a tarball on Solaris 10 fails with
	many diagnostics like “tar: ././@LongLink: typeflag 'L' not
	recognized, converting to regular file”.

2022-06-25  Paul Eggert  <eggert@cs.ucla.edu>

	Port test SUBDIRS to Solaris 10

	* test/Makefile.in (SUBDIRS): Port to traditional ‘find’, which
	lacks -path.

2022-06-25  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify Oracle Studio re xterm.c

	* src/xterm.c (xErrorHandler,  xIOErrorHandler):
	New typedefs.
	(xm_get_drag_window_1, x_connection_closed): Use them instead of
	void *, since the C standard frowns on converting function
	pointers to and from void *.  This pacifies Oracle Studio
	diagnostics like “warning: assignment type mismatch: pointer to
	void "=" pointer to function(pointer to struct _XDisplay {})\
	returning int”.
	(x_detect_pending_selection_requests, x_had_errors_p): Do not rely
	on implicit conversion of a pointer to a bool return value; use !!
	instead.  This pacifies Oracle Studio’s “warning: improper
	pointer/integer combination: op "="”.
	(xim_open_dpy) [HAVE_X11R6 && !HAVE_X11R6_XIM]: Do not use
	xim_destroy_callback; configure.ac says “inoue@ainet.or.jp says
	Solaris has a bug related to X11R6-style ## XIM support” and
	Oracle Studio complains “warning: assignment type mismatch:
	pointer to function(pointer to struct _XIC {}, pointer to char,
	pointer\ to char) returning void "=" pointer to function(pointer
	to struct _XIM {}, pointer to char, pointer to char) returning
	void”.

2022-06-25  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify Oracle Studio re print_vectorlike

	* src/print.c (print_vectorlike): Use explicit cast of function
	pointer to void *, to pacify Oracle Studio 12.6’s “warning:
	assignment type mismatch: pointer to void "=" pointer to
	function(pointer to void) returning void”.  Admittedly this is
	not strictly conforming C code even with the cast.

2022-06-25  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify Oracle Studio re Time_to_position

	* src/keyboard.c (Time_to_position): Use no-op position_to_Time to
	pacify Oracle Studio 12.6’s “warning: initializer will be
	sign-extended”.

2022-06-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `M-q' work on the first line of a multi-line string again

	* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Exclude the
	quote marks from the region so that filling works (bug#56197).

2022-06-25  Po Lu  <luangruo@yahoo.com>

	Update input_pending after deferring selection requests

	* src/xterm.c (x_defer_selection_requests): If kbd_fetch_ptr
	moved, update input_pending.  Bug found calling
	`input-pending-p' inside the DND movement function.

2022-06-25  Stefan Kangas  <stefankangas@gmail.com>

	New command recentf-open

	* lisp/recentf.el (recentf-open): New command.  (Bug#56148)
	(recentf): New alias.
	(recentf, recentf-mode): Update documentation to focus more on the
	list of recently opened files and ways of accessing it, instead of
	focusing on the menu bar only.
	(recentf-list, recentf-enabled-p): Minor doc fixes.

	* doc/emacs/files.texi (File Conveniences): Update documentation.

2022-06-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix subr-x fix that was missed when re-reverting

	* lisp/replace.el (require): Fix subr-x build warning.

2022-06-25  Stefan Kangas  <stefankangas@gmail.com>

	Don't error out on invalid literal key substitutions

	It would be backwards-incompatible to error out on invalid literal key
	substitutions.  Consider this docstring fragment, where "\\`" should
	have been escaped but wasn't:

	    "Example value: \"\\(?:\\`[#.]\\)\\|\\(?:[#~]\\'\\)\"."

	If we error out, we can't display this docstring at all.  However, it
	is clearly better to display something in such cases, even if
	suboptimal, than refusing to display anything at all.

	* lisp/help.el (substitute-command-keys): Don't error out on invalid
	literal key substitutions: just ignore them instead.
	* test/lisp/help-tests.el
	(help-tests-substitute-command-keys/literal-key-sequence-errors):
	Delete test.
	(help-tests-substitute-command-keys/literal-key-sequence-ignore-invalid):
	New test.

2022-06-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Re-fix build warnings about subr-x defsubsts

	* lisp/term/haiku-win.el (require):
	* lisp/progmodes/elisp-mode.el (require):
	* lisp/isearch.el (require): Require subr-x at compile time, since
	these use defsubsts/macros from there.

	* lisp/emacs-lisp/subr-x.el (string-empty-p): Move from here...
	* lisp/simple.el (string-empty-p): ... to here.  This is to help
	with a build problem where files.el is using the defsubst, but
	requiring subr-x.el at compile time leads to load errors.

2022-06-25  Manuel Giraud  <manuel@ledu-giraud.fr>

	Avoid recording passwords' chars

	* lisp/cus-start.el (standard): New user custom `record-all-keys'.
	* src/keyboard.c (syms_of_keyboard): Un-obsolete
	`inhibit--record-char'.
	* lisp/subr.el (read-passwd): Use `inhibit--record-char' to
	inhibit passwords recording.

2022-06-25  Eli Zaretskii  <eliz@gnu.org>

	Minor optimization of the "abort redisplay" feature

	* src/xdisp.c (init_iterator, set_iterator_to_next)
	(redisplay_internal):
	* src/syntax.c (scan_sexps_forward):
	* src/regex-emacs.c (re_match_2_internal):
	* src/bidi.c (bidi_fetch_char, bidi_paragraph_init)
	(bidi_find_bracket_pairs, bidi_find_other_level_edge): Don't call
	'update_redisplay_ticks' if aborting too-long redisplay is
	disabled.  (Bug#45898)

2022-06-25  Po Lu  <luangruo@yahoo.com>

	Implement image transform smoothing on Haiku

	* src/dispextern.h (struct image): New field
	`use_bilinear_filtering'.
	* src/haiku_draw_support.cc (BView_DrawBitmap): Accept it.
	* src/haiku_support.h: Update prototypes.
	* src/haikuterm.c (haiku_draw_image_glyph_string):
	* src/image.c (image_set_transform): Set it.

2022-06-25  Eli Zaretskii  <eliz@gnu.org>

	Fix false positive due to 'max-redisplay-ticks' feature

	* src/xdisp.c (redisplay_internal): Reset the tick count at end of
	redisplay cycle.  (Bug#45898)

2022-06-25  Po Lu  <luangruo@yahoo.com>

	Fix non-XI2 build

	* src/xterm.c (handle_one_xevent): Don't make `event' const when
	passing it to RandR functions.  Also, update out of date
	comment.

2022-06-25  Po Lu  <luangruo@yahoo.com>

	Implement "flip" image transforms on Haiku

	* src/dispextern.h (struct image): New field `transform',
	`original_width' and `original_height'.
	* src/haiku_draw_support.cc (BView_DrawMask): Rename to
	`be_draw_image_mask' and fix coding style.
	(rotate_bitmap_270, BBitmap_transform_bitmap, rotate_bitmap_90):
	Delete functions.
	(be_apply_affine_transform): New function.
	(be_apply_inverse_transform): New function.

	* src/haiku_support.h: Update prototypes.

	* src/haikuterm.c (haiku_translate_transform): New function.
	(haiku_draw_image_glyph_string): Use affine transforms to
	implement images.

	* src/image.c (image_set_transform): Implement using affine
	transforms on Haiku too.

2022-06-25  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1f6750b53a Avoid treating number as an enum in the org manual

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Fix some byte-compilation warnings about subr-x"

	This reverts commit cd479aa8bd498da4d7980a7fe7a37e238761482f.

	This led to build failures when doing bootstraps.

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow toggling completion modes for `M-x' with `M-X'

	* doc/lispref/commands.texi (Interactive Call): Document it.
	* lisp/minibuffer.el (minibuffer-local-must-match-map): Bind 'M-X'.

	* lisp/simple.el (execute-extended-command-cycle): New command.
	(read-extended-command): Use it to allow toggling (bug#47215).
	(read-extended-command-1): Renamed from `read-extended-command'.
	(execute-extended-command-for-buffer): Factored out most of the
	code...
	(command-completion--command-for-this-buffer-function): ... to
	here.
	(extended-command-versions): New variable.

	This code is based on a patch by Felician Nemeth
	<felician.nemeth@gmail.com>.

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make ido sorting respect ido-case-fold

	* lisp/ido.el (ido-file-lessp):
	(ido-file-extension-lessp): Respect ido-case-fold (bug#47127).

2022-06-24  Stefan Kangas  <stefankangas@gmail.com>

	Avoid treating number as an enum in the org manual

	* doc/misc/org.org (The Agenda Dispatcher): Avoid treating number as
	enum.

2022-06-24  Michael Albinus  <michael.albinus@gmx.de>

	Make url-tramp-convert-tramp-to-url more robust

	* lisp/url/url-tramp.el (url-tramp-convert-tramp-to-url):
	Prevent errors from not existing Tramp methods.

2022-06-24  Platon Pronko  <platon7pronko@gmail.com>  (tiny change)

	Fix logic error in Tramp, setting file ownership

	* lisp/net/tramp.el (tramp-skeleton-write-region): Fix logic in
	changing file ownership.  (Bug#56180)

2022-06-24  Timo Taipalus  <timo@taipalus.cc>

	Add support for image flipping

	* lisp/image.el (image-map): Keybindings for flipping functions.
	(image-flip-horizontally): New function that toggles image flipping
	property.
	(image-flip-vertically): New function that toggles image flipping
	property and rotates image 180 degrees.
	* src/image.c (syms_of_image): Add property.
	(image_set_transform): Modify image rotation code to also horizontally
	flip the image when the property is set.
	* etc/NEWS: Add description.
	* doc/lispref/display.texi (Image Descriptors): Document :flip
	(bug#47095).

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some byte-compilation warnings about subr-x

	* lisp/term/haiku-win.el (require):
	* lisp/replace.el (require):
	* lisp/progmodes/elisp-mode.el (require):
	* lisp/isearch.el (require):
	* lisp/files.el (require): Require subr-x when compiling.

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix imenu popup syntax

	* lisp/imenu.el (imenu--create-keymap): Fix menu syntax
	(bug#56185).

2022-06-24  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a772c0b852 ; Fix typos: prefer US spelling.

	# Conflicts:
	#	doc/misc/modus-themes.org

2022-06-24  Eli Zaretskii  <eliz@gnu.org>

	Fix assertion violation when 'max-redisplay-ticks' is set too low

	* src/xdisp.c (update_redisplay_ticks): Disable 'scrolling_window'
	optimization in 'update_window' when redisplay of a window is
	aborted.  (Bug#56184)

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add NEWS entry about kill-buffer change

2022-06-24  Mattias Engdegård  <mattiase@acm.org>

	Bytecode opcode comments update

	This is a cosmetic change only; there is no change in behavior.

	* lisp/emacs-lisp/bytecomp.el:
	* src/bytecode.c (BYTE_CODES, exec_byte_code):
	Update and/or remove incorrect, outdated or useless comments.
	Clarify.  Reorder where appropriate.  Rename Bsave_current_buffer to
	Bsave_current_buffer_OBSOLETE and Bsave_current_buffer_1 to
	Bsave_current_buffer, reflecting the state since 1996.

2022-06-24  Basil L. Contovounesios  <contovob@tcd.ie>

	Reduce memory footprint of eglot--{}

	* eglot.el (eglot--{}): Specify smallest hash table :size, to spare
	~1KiB according to memory-report-object-size.

	See also https://github.com/joaotavora/eglot/pull/315.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/978

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Update seq.el comment

	* lisp/emacs-lisp/seq.el: Update comment.

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow `kill-buffer' query to save the buffer first

	* lisp/loadup.el ("emacs-lisp/rmc"): Preload.

	* lisp/simple.el (kill-buffer--possibly-save): New function to
	offer to save the buffer before killing (bug#47075).

	* src/buffer.c (Fkill_buffer): Call the new function to query the
	user.
	(syms_of_buffer): Define symbol.

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Preload seq

	* lisp/loadup.el ("emacs-lisp/seq"): Preload seq since it's now
	almost impossible to do anything in Emacs that doesn't result in
	seq being loaded -- for instance, visiting a .txt file or an .el
	file, so this will speed up Emacs usage for basically everybody.

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow read-multiple-choice to do long-form answers

	* doc/lispref/commands.texi (Reading One Event): Document it.

	* lisp/emacs-lisp/rmc.el (read-multiple-choice): Allow using
	long-form answers instead of single character ones.
	(read-multiple-choice--long-answers): New function.
	(read-multiple-choice--short-answers): Refactored out from the
	main function.

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix cl-generic bootstrap problems

	* lisp/sqlite-mode.el (require):
	* lisp/net/eudc.el (require):
	* lisp/arc-mode.el (require): Require subr-x, since these files
	are using macros from there.
	* lisp/emacs-lisp/subr-x.el (with-memoization): Move from here...
	* lisp/subr.el (with-memoization): ... to here, as it's used from
	the preloaded cl-generic.el file.

	* lisp/emacs-lisp/cl-generic.el (cl--generic-compiler): Don't use
	the autoloaded `byte-compile' function during bootstrap.
	(cl--generic-get-dispatcher): Don't require subr-x, either.

	cl-generic has been preloaded since 2015, and most usages of it (in
	preloaded files) work fine.  In particular, using `cl-defgeneric' is
	unproblematic.  However, `cl-defmethod' would end up pulling in the
	byte compiler (at load time), which would make it impossible to use
	`cl-defmethod' in pre-loaded files, and this change fixes that (but
	possibly not in the most self-evidently correct way).

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make warning about require/autoload while bootstrapping not error out

	* src/fns.c (Frequire):
	* src/eval.c (Fautoload_do_load): Avoid further errors while
	outputting the error about not being able to autoload/require
	while bootstrapping.

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make debug-early-backtrace more resilient

	* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Allow
	outputting backtraces during bootstrap.

2022-06-24  Po Lu  <luangruo@yahoo.com>

	Fix handling of mouse motion across screens during drag-and-drop

	* src/xterm.c (x_dnd_fill_empty_target): New function.
	(handle_one_xevent): Fill empty target if the event didn't come
	from the same screen.

2022-06-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix previous nnimap header fetching change

	* lisp/gnus/nnimap.el (nnimap-retrieve-headers): Ensure that the
	splitting works.

2022-06-24  Eli Zaretskii  <eliz@gnu.org>

	Merge branch 'abort-redisplay'

	This allows abandoning the redisplay of a window
	that takes too long to complete.  Bug#45898
	* src/xdisp.c (update_redisplay_ticks): New function.
	(init_iterator, set_iterator_to_next): Call
	'update_redisplay_ticks'.
	(syms_of_xdisp) <max_redisplay_ticks>: New variable.
	<list_of_error>: Remove 'void-variable': it is no longer needed,
	since 'calc_pixel_width_or_height' can no longer signal a
	void-variable error, and it gets in the way of aborting
	redisplay via 'redisplay_window_error'.
	* src/keyboard.c (command_loop_1): Reinitialize the tick count
	before executing each command in the loop.
	* src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks'
	after finishing the loop.
	* src/dispnew.c (make_current): Make sure enabled rows of the
	current matrix have a valid hash, even if redisplay of a window
	was aborted due to slowness.  This avoids assertion violations in
	'scrolling_window' due to the wrong hash value.
	* src/xdisp.c (display_working_on_window_p): New global variable.
	(unwind_display_working_on_window): New function.
	* src/keyboard.c (command_loop_1): Reset
	'display_working_on_window_p' before and after executing commands.
	* src/window.c (Frecenter, window_scroll, displayed_window_lines):
	* src/indent.c (Fvertical_motion): Set
	'display_working_on_window_p' before calling 'start_display'.
	* src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks'
	after finishing the loop.
	* src/regex-emacs.c (re_match_2_internal):
	* src/bidi.c (bidi_find_bracket_pairs, bidi_fetch_char)
	(bidi_paragraph_init, bidi_find_other_level_edge): Update the
	redisplay tick count as appropriate, when moving the iterator by
	one character position actually requires to examine many more
	positions.
	* src/xdisp.c (redisplay_window_error): Show messages about
	aborted redisplay of a window as delayed-warnings.

	* doc/emacs/trouble.texi (DEL Does Not Delete): Move to the end of
	the chapter.  This issue is no longer frequent or important as it
	was back in Emacs 20 days.
	(Long Lines): Document 'max-redisplay-ticks'.
	* doc/emacs/emacs.texi (Top): Update the detailed menu.

	* etc/NEWS: Announce 'max-redisplay-ticks'.

2022-06-23  Po Lu  <luangruo@yahoo.com>

	Improve grabbing detection with multiple master devices (MPX)

	* src/frame.c (gui_mouse_grabbed): Respect any_grab_hook.
	* src/termhooks.h (GCALIGNED_STRUCT): New hook `any_grab_hook'.
	* src/xterm.c (x_have_any_grab): New function.
	(x_create_terminal): Define hook on XI2 builds.

2022-06-23  Po Lu  <luangruo@yahoo.com>

	Simplify XI event state conversion

	* src/xterm.c (xi_convert_button_state, xi_convert_event_state):
	New functions.
	(handle_one_xevent): Reduce duplicate code for converting XI
	state and button state into X state.

2022-06-23  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/net/browse-url.el: Doc fix; recommend keymap-* functions.

	* lisp/recentf.el (recentf-auto-cleanup): Clarify docstring.

2022-06-23  Mattias Engdegård  <mattiase@acm.org>

	Remove unused function in bytecomp.el

	* lisp/emacs-lisp/bytecomp.el (byte-compile-delete-first): Remove.

2022-06-23  Gerd Moellmann  <gerd.moellmann@gmail.com>

	Save desktop-save-mode when changed from menu

	* lisp/menu-bar.el (menu-bar-options-save): Save desktop-save-mode
	(bug#56156).

2022-06-23  Stefan Kangas  <stefankangas@gmail.com>

	Tag shortcut commands for recentf-dialog-mode

	* lisp/recentf.el (recentf--shortcuts-keymap): Add interactive mode
	tags for 'recentf-dialog-mode' specific commands.

2022-06-23  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap and keymap-set in recentf.el

	* lisp/recentf.el (recentf-mode-map): Prefer defvar-keymap.
	(recentf--shortcuts-keymap): Prefer keymap-set.

2022-06-23  Stefan Kangas  <stefankangas@gmail.com>

	Use shortened filenames in recentf-mode

	* lisp/recentf.el (recentf-filename-handlers): Set to
	'abbreviate-file-name' to get shortened names by default.  (Bug#56123)

2022-06-23  Stefan Kangas  <stefankangas@gmail.com>

	Revert "Allow shortening filenames in recentf-mode menu"

	This reverts commit 32906819addde1aa952d4718699d332d3a58b004.

2022-06-23  Stefan Kangas  <stefankangas@gmail.com>

	Revert "Use short file names by default in recentf menu"

	This reverts commit ec9228eb81c0a89b18480dfff18cc9afdc3d0884.

2022-06-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that nnimap doesn't send too long lines to the server

	* lisp/gnus/nnimap.el (nnimap-retrieve-headers): Don't send
	too-long lines to the server (bug#56138).

2022-06-23  Po Lu  <luangruo@yahoo.com>

	Minor fixes to last change

	* src/pgtkselect.c (pgtk_get_window_property): Add 1 to xdata
	when it is GdkAtom.
	* src/pgtkterm.c (drag_leave): Initialize inev.ie.

2022-06-23  Po Lu  <luangruo@yahoo.com>

	Make DND from other GTK programs work on Wayland

	* lisp/pgtk-dnd.el (pgtk-dnd-handle-gdk): Try to keep the
	selection contents in extra-data during a motion event.

2022-06-23  Po Lu  <luangruo@yahoo.com>

	Allow dropping more data types on PGTK

	* lisp/loadup.el (featurep): Load `pgtk-dnd'.
	* lisp/pgtk-dnd.el: New file.
	(pgtk-dnd-test-function, pgtk-dnd-types-alist)
	(pgtk-dnd-known-types, pgtk-dnd-use-offix-drop)
	(pgtk-dnd-current-state, pgtk-get-selection-internal)
	(pgtk-register-dnd-targets, pgtk-dnd-empty-state)
	(pgtk-dnd-init-frame, pgtk-dnd-get-state-cons-for-frame)
	(pgtk-dnd-get-state-for-frame, pgtk-dnd-default-test-function)
	(pgtk-dnd-current-type, pgtk-dnd-forget-drop)
	(pgtk-dnd-maybe-call-test-function, pgtk-dnd-save-state)
	(pgtk-dnd-handle-moz-url, pgtk-dnd-insert-utf8-text)
	(pgtk-dnd-insert-utf16-text, pgtk-dnd-insert-ctext)
	(pgtk-dnd-handle-uri-list, pgtk-dnd-handle-file-name)
	(pgtk-dnd-choose-type, pgtk-dnd-drop-data)
	(pgtk-dnd-handle-drag-n-drop-event, pgtk-update-drop-status)
	(pgtk-drop-finish, pgtk-dnd-handle-gdk, pgtk-dnd): New variables
	and functions and library.

	* lisp/term/pgtk-win.el (special-event-map): Load
	`drag-n-drop-event'.
	(after-make-frame-functions): Register DND after make frame
	functions.

	* src/emacs.c (main): Stop calling empty init_pgtkterm function.

	* src/pgtkselect.c (Fpgtk_register_dnd_targets, Fpgtk_drop_finish)
	(Fpgtk_update_drop_status): New functions.
	(syms_of_pgtkselect): Register new functions.
	* src/pgtkterm.c (struct event_queue_t): Fix coding style of
	definition.
	(symbol_to_drag_action, drag_action_to_symbol)
	(pgtk_update_drop_status, pgtk_finish_drop): New functions.
	(drag_data_received): Delete function.
	(pgtk_set_event_handler): Register for DND correctly.
	(syms_of_pgtkterm): New defsyms for DND types.
	(init_pgtkterm): Delete function.

	* src/pgtkterm.h: Update prototypes, fix prototype coding style.

2022-06-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a3f294b37f Improve last change in autotype.texi

2022-06-22  Po Lu  <luangruo@yahoo.com>

	Don't send XdndPosition before XdndStatus arrives

	* src/xterm.c (x_dnd_send_position): Set pending DND message if
	target is right.
	(x_dnd_send_leave): Clear pending status target.
	(x_dnd_begin_drag_and_drop): Clear new flags.
	(handle_one_xevent): Respect those flags.

2022-06-22  Po Lu  <luangruo@yahoo.com>

	Update device-specific grab during drag-and-drop

	* src/xterm.c (x_detect_focus_change): Fix typo.
	(handle_one_xevent): Set device if DND is in progress and update
	device->grab.

2022-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Make recentf-elements obsolete

	* lisp/recentf.el (recentf-elements): Make obsolete.  Update
	callers.

2022-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Convert several defsubst to defun in recentf.el

	* lisp/recentf.el (recentf-enabled-p, recentf-string-equal)
	(recentf-string-lessp, recentf-push, recentf-expand-file-name)
	(recentf-add-file, recentf-remove-if-non-kept)
	(recentf-digit-shortcut-command-name, recentf-elements)
	(recentf-menu-bar, recentf-sort-ascending)
	(recentf-sort-descending, recentf-sort-basenames-ascending)
	(recentf-sort-basenames-descending)
	(recentf-sort-directories-ascending)
	(recentf-sort-directories-descending)
	(recentf-show-basenames-ascending)
	(recentf-show-basenames-descending): Change from defsubst to
	defun.

2022-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Bind C-c C-c and C-c C-k in recentf-dialog-mode

	* lisp/recentf.el (recentf-dialog-mode-map): Prefer defvar-keymap.
	Bind `C-c C-c' and `C-c C-k' to confirm/cancel the dialog.
	(recentf-cancel-dialog, recentf-edit-list-validate): Add
	interactive mode tags for 'recentf-dialog-mode'.
	(recentf-dialog-mode): Mark as non-interactive.
	(recentf-edit-list): Display key binding.

2022-06-22  Michael Albinus  <michael.albinus@gmx.de>

	Fix dnd-tests-open-remote-url on EMBA

	* test/lisp/dnd-tests.el (dnd-tests-open-remote-url): Check for
	ftp client.

2022-06-22  Mattias Engdegård  <mattiase@acm.org>

	duplicate-line: fix optional argument and add test (bug#46621)

	The test assumes that the current semantics are intended and desired,
	which may or may not be true, but it's better than not having any at
	all.

	* lisp/misc.el (duplicate-line): Don't crash if called with no argument.
	* test/lisp/misc-tests.el (misc--duplicate-line): New test.

2022-06-22  Richard Hansen  <rhansen@rhansen.org>

	bindat (strz): Null terminate fixed-length strings if there is room

	* lisp/emacs-lisp/bindat.el (bindat--pack-strz): For fixed-length strz
	fields, explicitly write a null terminator after the packed string if
	there is room (bug#56048).
	* doc/lispref/processes.texi (Bindat Types): Update documentation.
	* test/lisp/emacs-lisp/bindat-tests.el (bindat-test--str-strz-prealloc):
	Update tests.

2022-06-22  Gerd Moellmann  <gerd.moellmann@gmail.com>

	Prevent GC of window referenced from EmacsScroller

	* src/nsterm.m (EmacsScroller.mark, mark_nsterm): New functions.
	* src/nsterm.h (EmacsScroller.mark, mark_nsterm): Declare.
	* src/alloc.c (garbage_collect) [MAVE_NS]: Call mark_nsterm.
	(Bug#56095)

2022-06-22  Eli Zaretskii  <eliz@gnu.org>

	Improve last change in autotype.texi

	* doc/misc/autotype.texi (Autoinserting): Fix wording.  Suggested
	by Richard Stallman <rms@gnu.org>.

2022-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Prefer Emacs mouse button event names to XEmacs names

	* lisp/mwheel.el:
	* lisp/vc/ediff-mult.el (ediff-meta-buffer-verbose-message)
	(ediff-draw-dir-diffs, ediff-redraw-registry-buffer): Prefer Emacs
	mouse button event names to XEmacs names.

2022-06-22  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/bs.el (bs-mode-map): Prefer defvar-keymap.

2022-06-22  Po Lu  <luangruo@yahoo.com>

	Fix non-system-malloc build

	* src/xterm.c (x_gc_free_ext_data_private): New function.
	(x_gc_get_ext_data): Set it as the private data free function.

2022-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Do interactive mode tagging in edmacro.el

	* lisp/edmacro.el (edmacro-finish-edit, edmacro-insert-key):
	Add interactive mode tag for edmacro-mode.

2022-06-22  Stefan Kangas  <stefankangas@gmail.com>

	Use short file names by default in recentf menu

	* lisp/recentf.el (recentf-menu-filter): Set the default to
	'recentf-show-abbreviated' to get short file names.  (Bug#56123)

2022-06-22  Sean Whitton  <spwhitton@spwhitton.name>

	Don't drop existing escape char in eshell

	* lisp/eshell/em-term.el (eshell-exec-visual): Don't drop existing
	escape char.

2022-06-22  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_scroll_bar_note_movement): Fix no-toolkit build.

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention the new Tetris user option

2022-06-21  Po Lu  <luangruo@yahoo.com>

	Port x-selection-timeout to PGTK

	* src/pgtkselect.c (pgtk_own_selection): Fix comment.
	(wait_for_property_change, pgtk_get_foreign_selection): Respect
	selection timeout.
	(syms_of_pgtkselect): New variable `pgtk-selection-timeout'.

2022-06-21  Po Lu  <luangruo@yahoo.com>

	Fix setting user time for mouse movement events

	* src/xterm.c (x_note_mouse_movement, XTmouse_position)
	(x_scroll_bar_note_movement, handle_one_xevent): Record whether
	or not mouse movement was send_event before using the mouse
	movement time.

	* src/xterm.h (struct x_display_info): New field
	`last_mouse_movement_time_send_event'.

2022-06-21  Sam Steingold  <sds@gnu.org>

	A trivial optimization and a formatting fix

	* lisp/subr.el (internal--compiler-macro-cXXr): Reuse `head' for `n'.
	Fix indentation and line length.

2022-06-21  Tassilo Horn  <tsdh@gnu.org>

	Merge from origin/emacs-28

	f3acc09377 ; Revert "Use file-in-directory-p instead of obsolete dire...
	5082d74cfd ; * lisp/recentf.el: Fix typo.
	3f66e2a903 * lisp/repeat.el (repeat-mode): Fix message format.
	137539c125 Clarify autotype.texi text slightly

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix logic in previous Tetris change

	* lisp/play/tetris.el (tetris-new-shape): Fix logic in previous
	change.

2022-06-21  Timothee Denizou  <timothee.denizou@epita.fr>  (tiny change)

	Allow different randomization of shapes in Tetris

	* lisp/play/tetris.el (tetris-allow-repetitions): New user option.
	(tetris--shuffle, tetris--seven-bag): New functions.
	(tetris-new-shape): Use the option.

	* Added 7 bag randomizer for tetris
	A piece is selected from the bag and removed each time we want a piece
	When the bag is empty, refill the bag with the seven piece and shuffle it

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix shr--set-target-ids test for empty buffer

	* lisp/net/shr.el (shr--set-target-ids): Fix the check for an
	empty buffer (which may be narrowed).

2022-06-21  Michael Heerdegen  <michael_heerdegen@web.de>

	Fix autoload generation of iter-defun forms

	This fixes Bug#54648.

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload):
	Add `iter-defun' and `cl-iter-defun' to the list of "complex cases"
	that are macro-expanded and recursed on.

2022-06-21  Philipp Stephani  <phst@google.com>

	Document and test 'no-byte-compile' behavior.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Document behavior
	if 'no-byte-compile' is set.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(byte-compile-file/no-byte-compile): New unit test.
	* test/lisp/emacs-lisp/bytecomp-resources/no-byte-compile.el: New test
	file.

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix too-long ediff defface doc strings

	* lisp/vc/ediff-init.el (ediff-fine-diff-Ancestor):
	(ediff-even-diff-Ancestor):
	(ediff-odd-diff-Ancestor): Fix too-long doc strings.

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Check defface doc strings

	* lisp/emacs-lisp/bytecomp.el
	(byte-compile-file-form-custom-declare-variable): We already warn
	about missing groups from byte-compile-normal-call, so this would
	be a double warning.
	(custom-declare-face)
	(byte-compile-file-form-custom-declare-face): Add doc string
	checking for defface.

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Untabify doc strings before displaying in Customize

	* lisp/cus-edit.el (custom-variable-documentation): Untabify the
	doc string since we'll be indenting it when displaying it (which
	makes the tabs not align properly).

2022-06-21  Manuel Giraud  <manuel@ledu-giraud.fr>

	Two typos captured on OpenBSD/clang

2022-06-21  Po Lu  <luangruo@yahoo.com>

	Fix recent change to xlwmenu.c

	* lwlib/xlwmenu.c (ungrab_all): Ungrab keyboard if it was
	grabbed.  This handles `lucid--menu-grab-keyboard' changing
	while the menu is open.

	(XlwMenuDestroy):
	(pop_up_menu): Record if the keyboard was grabbed.

2022-06-21  Po Lu  <luangruo@yahoo.com>

	Rewrite PGTK selection code from scratch

	* src/frame.c (delete_frame): Clear selections and swallow
	special events.

	* src/keyboard.c (kbd_buffer_get_event, process_special_events):
	Also handle selection events on PGTK.

	* src/keyboard.h (union buffered_input_event): Include selection
	events on PGTK.

	* src/pgtkselect.c (symbol_to_gtk_clipboard, LOCAL_SELECTION):
	New functions and macros.
	(selection_type_to_quarks, get_func, clear_func): Delete
	functions.
	(pgtk_selection_init, pgtk_selection_lost):
	(pgtk_selection_usable): New functions.
	(Fpgtk_own_selection_internal, Fpgtk_disown_selection_internal)
	(Fpgtk_selection_exists_p, Fpgtk_selection_owner_p)
	(Fpgtk_get_selection_internal): Complete rewrite.
	(syms_of_pgtkselect): Update defsyms and add more hooks.

	* src/pgtkselect.h: Delete file.

	* src/pgtkterm.c (evq_enqueue): Set last user time based on the
	event.
	(pgtk_any_window_to_frame, button_event): Fix coding style.
	(pgtk_set_event_handler): Add selection events.
	(pgtk_find_selection_owner, pgtk_selection_event): New
	functions.
	(pgtk_term_init): Remove call to `pgtk_selection_init'.

	* src/pgtkterm.h (struct pgtk_display_info): New field
	`display'.
	(enum selection_input_event): New struct.  New macros for
	accessing its fields.

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix previous -batch change for gc-cons-percentage

	* src/emacs.c (main): Reset the default for gc-cons-percentage in
	interactive Emacs.

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Increase gc-cons-percentage in -batch Emacs

	* doc/lispref/os.texi (Batch Mode): Document it.

	* src/emacs.c (main): Use a gc-cons-percentage of 1.0 in
	noninteractive Emacsen.

2022-06-21  Michael Albinus  <michael.albinus@gmx.de>

	Tramp code cleanup

	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	* lisp/net/tramp-sh.el (tramp-sh-handle-make-process):
	Improve handling of "process-name" and "process-buffer" connection
	properties.

2022-06-21  Stefan Kangas  <stefankangas@gmail.com>

	Allow shortening filenames in recentf-mode menu

	* lisp/recentf.el (recentf-show-abbreviated): New function.
	(recentf--filter-names): New helper function.
	(recentf-show-basenames): Use above new helper function.
	(recentf-menu-filter): Allow setting user option to new value
	'recentf-show-abbreviated'.

2022-06-21  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/repeat.el (repeat-mode): Fix message format.

2022-06-21  kobarity  <kobarity@gmail.com>

	Fix nested defuns handling in `python-nav-beginning-of-defun'

	* lisp/progmodes/python.el (python-nav--beginning-of-defun): Fix
	handling of nested defuns (bug#56105).

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix previous describe-key change

	* lisp/help.el (describe-function-orig-buffer): Ensure we bind
	dynamically.

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make describe-key do doc string command key substitution again

	* lisp/help.el (describe-key): Do doc string command key
	substitution (bug#56106).

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix fontification in describe-key

	* lisp/help.el (describe-key): Use insert instead of princ so that
	text properties on the key descriptions survive.

2022-06-21  Kevin Brubeck Unhammer  <unhammer@fsfe.org>

	Speed up mail-extr in some configurations

	* lisp/mail/mail-extr.el (mail-extract-address-components):
	(mail-extract-address-components): The buffer is already in
	fundamental-mode, so don't re-enable it (bug#56113).

2022-06-21  Earl Hyatt  <okamsn@protonmail.com>

	Clarify autotype.texi text slightly

	* doc/misc/autotype.texi (Autoinserting): Make text slightly
	clearer (bug#56118).

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename recently-introduced dired-omit-line-regexp user option

	* lisp/dired-x.el (dired-omit-lines, dired-omit-mode): Rename
	dired-omit-line-regexp to dired-omit-lines for consistency.

2022-06-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make Lucid menus work from the keyboard also when uninstalled

	* lwlib/xlwmenu.c (ungrab_all, pop_up_menu): Use it.

	* src/keyboard.c (syms_of_keyboard): New variable (bug#46990).

2022-06-21  Po Lu  <luangruo@yahoo.com>

	Allow toggling antialiasing inside the Haiku font dialog

	* src/haiku_support.cc (struct font_selection_dialog_message):
	New field `disable_antialias'.
	(MessageReceived): Handle new message SET_DISABLE_ANTIALIASING.
	(class DualLayoutView): Rename to `TripleLayoutView'.
	(class TripleLayoutView): Rename from `DualLayoutView'.
	(MinSize): Update computations for three views.

	(class EmacsFontSelectionDialog, UpdatePreview)
	(EmacsFontSelectionDialog): Add an antialiasing checkbox to
	control antialiasing.
	(be_select_font): New arguments `initial_antialias' and
	`disable_antialias'.

	* src/haiku_support.h: Update prototypes.

	* src/haikufont.c (haikufont_pattern_from_object): Set
	FSPEC_ANTIALIAS.
	(Fx_select_font): Update accordingly.

2022-06-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	2eb738f2b8 Support builds configured with a separate --bindir
	cf4c204df8 * doc/misc/eww.texi (Overview, Basics): Fix typos.

2022-06-20  Po Lu  <luangruo@yahoo.com>

	Add test for bug#56078 fix

	* test/lisp/dnd-tests.el (dnd-tests-open-remote-url): New test.

2022-06-20  Po Lu  <luangruo@yahoo.com>

	Remove selection requests on the keyboard buffer when closing display

	* src/xterm.c (X_NEXT_KBD_EVENT): New macro.
	(x_defer_selection_requests): Set input_pending if the kbd
	buffer was modified.
	(x_delete_selection_requests): New function.
	(x_delete_display): Call that.  Bug found when a display died
	while the clipboard manager was sending an unreasonably high
	number of requests.

2022-06-20  Po Lu  <luangruo@yahoo.com>

	Move selection delayed message to a better location

	* lisp/term/x-win.el (gui-backend-get-selection): Remove
	`with-delayed-message' here.
	* src/xselect.c (x_display_selection_waiting_message)
	(x_cancel_atimer): New functions.
	(x_get_foreign_selection): Add an atimer that displays the
	message after a while.

2022-06-20  Sean Whitton  <spwhitton@spwhitton.name>

	* lisp/edmacro.el: Add missing (require 'seq).

2022-06-20  Sean Whitton  <spwhitton@spwhitton.name>

	term-set-escape-char: Remove old binding from term-raw-escape-map

	* lisp/term.el (term-set-escape-char): When replacing the escape char,
	remove the binding of the old escape char in term-raw-escape-map.

2022-06-20  Alan Mackenzie  <acm@muc.de>

	Fix potential (goto-char nil) in byte-compile-warning-prefix

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-prefix): Replace a wrong
	'or' form involving OFFSET with simply OFFSET.  This prevents OFFSET from
	possibly being nil in the first branch of the containing `if' form.

2022-06-20  Eli Zaretskii  <eliz@gnu.org>

	Support builds configured with a separate --bindir

	* src/emacs.c (load_pdump): Don't overwrite the leading
	directories of the Emacs executable just because the pdumper file
	was not found in the expected directory relative to the binary.
	This is needed to support builds with a separate --bindir
	configure-time option and native-compilation.  (Bug#55741)

2022-06-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Issue a message if getting a selection takes a long time

	* lisp/term/x-win.el (gui-backend-get-selection): If getting the
	selection takes a long time, issue a message after one second
	(bug#46935).

2022-06-20  Michael Albinus  <michael.albinus@gmx.de>

	Adapt url-tramp-tests

	* test/lisp/url/url-tramp-tests.el (url-tramp-test-convert-url-to-tramp)
	(url-tramp-test-convert-tramp-to-url): Adapt tests.

2022-06-20  Po Lu  <luangruo@yahoo.com>

	Fix x-selection-timeout if some keyboard input arrives while waiting

	* src/process.c (wait_reading_process_output): Don't allow
	skipping calls to select if detect_input_pending when just
	waiting for a cell.  (bug#46935)

	* src/xselect.c (x_get_foreign_selection): Add more debugging
	code.

2022-06-20  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in hi-lock.el

	* lisp/hi-lock.el: Prefer keymap-set in documentation.
	(hi-lock-map): Prefer defvar-keymap.

2022-06-20  Po Lu  <luangruo@yahoo.com>

	Fix ns-reg-to-script definition

	* src/nsfont.m (syms_of_nsfont): Fix definition.

2022-06-20  Po Lu  <luangruo@yahoo.com>

	Fix running temacs on Haiku

	* src/emacs.c (main): Run init_haiku_select at the right place.

2022-06-20  Po Lu  <luangruo@yahoo.com>

	Fix initialization of Haiku font driver

	* src/font.c (register_font_driver): Fix comment.

	* src/haikufont.c (haikufont_booleans): New list.
	(haikufont_filter_properties): New function.
	(haikufont_driver): Register new hook.
	(syms_of_haikufont_for_pdumper): Register font driver globally.
	(syms_of_haikufont): Call it in a pdumper hook.

2022-06-20  Michael Albinus  <michael.albinus@gmx.de>

	Fix problems with Tramp FTP and URL handler mode

	* lisp/net/tramp-archive.el (tramp-archive-run-real-handler):
	Add ;;;###tramp-autoload cookie.

	* lisp/net/tramp-ftp.el (tramp-ftp-file-name-handler): Prevent invocation
	of `tramp-archive-file-name-handler'.  (Bug#56078)

	* lisp/url/url-tramp.el (url-tramp-convert-url-to-tramp)
	(url-tramp-convert-tramp-to-url): Make them more robust.

2022-06-20  Po Lu  <luangruo@yahoo.com>

	Ignore pinch events from the wrong window

	* src/xterm.c (handle_one_xevent): Use x_window_to_frame to find
	frames for pinch events.

2022-06-20  David Ponce  <da_vid@orange.fr>

	Make images found through `find-image' be handled like `create-image'

	* lisp/image.el (find-image): Use `create-image' so that we get
	auto-scaling of images (bug#40978).

2022-06-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow using :width/:height as normal with xbm images

	* doc/lispref/display.texi (XBM Images): Adjust the documentation.
	* src/image.c (enum xbm_keyword_index): Add :data-width and
	:data-height.
	(xbm_format): Ditto.
	(xbm_image_p): Allow passing in :width/:height for display.
	(xbm_load): Use :data-width/:data-height.

2022-06-20  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/eww.texi (Overview, Basics): Fix typos.

2022-06-20  Richard Hansen  <rhansen@rhansen.org>

	whitespace: Redraw if indentation or line length changes

	* lisp/whitespace.el (whitespace-color-on): Convert the indentation
	matcher from a static regular expression to a function so that changes
	to `indent-tabs-mode' and `tab-width' are picked up the next time
	`font-lock-flush' runs.
	(whitespace--indentation-matcher): The new function matcher.
	(whitespace--variable-watcher): New variable watcher that calls
	`font-lock-flush' if `whitespace-mode' is enabled for the buffer.
	(whitespace--watched-vars): List of variables to watch.
	(whitespace-unload-function): Un-watch the variables. (bug#56103).

2022-06-19  Po Lu  <luangruo@yahoo.com>

	Respect `:antialias' on Haiku

	* src/haiku_font_support.cc (BFont_find): Pass through
	FSPEC_ANTIALIAS.
	(be_set_font_antialiasing): New function.

	* src/haiku_support.h (enum haiku_font_specification): New enum
	FSPEC_ANTIALIAS.
	(struct haiku_font_pattern): New field `use_antialiasing'.

	* src/haikufont.c (haikufont_pattern_to_entity)
	(haikufont_spec_or_entity_to_pattern, haikufont_open): Respect
	antialiasing.
	(syms_of_haikufont): New defsym `:indices'.

2022-06-19  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	* src/treesit.c (make_ts_parser): Initialize timestamp field.

2022-06-19  Po Lu  <luangruo@yahoo.com>

	Don't generate superfluous wheel events during drag and drop

	* src/xterm.c (handle_one_xevent): Only set user time and don't
	create wheel events if DND is in progress.

2022-06-19  Po Lu  <luangruo@yahoo.com>

	Fix earlier change in xfaces.c for antialiasing in the mode line

	* src/xfaces.c (realize_gui_face): Don't put QCantialias in
	empty spec if it doesn't exist in the original.

2022-06-19  Miha Rihtaršič  <miha@kamnitnik.top>

	xref-goto-xref: Set input focus in addition to selecting window

	* lisp/progmodes/xref.el (xref--show-location): Set input focus in
	addition to selecting displayed window (Bug#55983).

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow removing quotes around links in *Help* buffers

	* doc/emacs/help.texi (Help Mode): Document it.
	* lisp/help-mode.el (help-clean-buttons): New user option
	(help-xref-button): Use it.

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak quoting in help-fns--compiler-macro

	* lisp/help-fns.el (help-fns--compiler-macro): Fix quotes in help
	text.

2022-06-19  Pip Cet  <pipcet@gmail.com>

	Fix bytecompiler infloop compiling infloops

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Don't apply
	optimization if we can't change anything (bug#46906).

2022-06-19  Drew Adams  <drew.adams@oracle.com>

	Let `dired-omit-mode' match lines, as well as file names

	* lisp/dired-aux.el (dired-do-kill-lines): Adjust to use it.

	* lisp/dired-x.el (dired-omit-line-regexp): New user option
	(bug#46882).
	(dired-omit-mode, dired-omit-expunge): Use the new user option.

2022-06-19  Stefan Kangas  <stefankangas@gmail.com>

	Update font scaling documentation to not talk about "face height"

	* lisp/play/gamegrid.el (gamegrid-init-buffer):
	* lisp/mwheel.el (mouse-wheel-scroll-amount):
	(mouse-wheel-text-scale):
	* lisp/faces.el (set-face-attribute):
	* lisp/face-remap.el (text-scale-mode-step):
	(text-scale-increase):
	(text-scale-adjust):
	* lisp/cus-face.el (custom-face-attributes):
	* doc/emacs/frames.texi (Mouse Commands):
	* doc/emacs/display.texi (Text Scale): Talk about font sized instead
	of "face height" (bug#46853).

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow appending to the kill ring with mouse selections

	* lisp/bindings.el (ignore-preserving-kill-region): New function.
	(global-map): Use it.

	* lisp/mouse.el (mouse-set-region, mouse-drag-region)
	(mouse-drag-track): Allow appending to kill ring with mouse
	selections (bug#32747).

2022-06-19  Michael Albinus  <michael.albinus@gmx.de>

	Fix last change in tramp-adb-handle-make-process

	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	Fix process buffer management.

2022-06-19  Stefan Kangas  <stefankangas@gmail.com>

	Fix starting eshell with missing/invalid modules defined

	* lisp/eshell/esh-mode.el (eshell-mode): Warn instead of failing to
	start when 'eshell-modules-list' has invalid entries.  (Bug#54976)

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make describe-repeat-maps fontify key bindings

	* lisp/repeat.el (describe-repeat-maps): Fontify key bindings as
	key bindings.

2022-06-19  Eli Zaretskii  <eliz@gnu.org>

	Show warnings about aborted redisplay

	* src/xdisp.c (redisplay_window_error): Show messages about
	aborted redisplay of a window as delayed-warnings.

2022-06-19  Po Lu  <luangruo@yahoo.com>

	More conservative fix for bug#37473

	* src/xfaces.c (realize_gui_face): Add more conservative fix,
	since the last change makes C-x C-+ lead to weight weirdness on
	my machine.

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make M-S-x output better in mode that have bindings for `undefined'

	* lisp/simple.el (command-completion-using-modes-p): Speed up case
	when there's no command modes.
	(execute-extended-command-for-buffer): Make M-S-x output better
	(bug#46665).

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Recognize \' as a quoted quote in MySQL

	* lisp/progmodes/sql.el (sql-mode): Recognize \' as a quoted quote
	in MySQL (bug#38302).

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't handle reverseVideo X resource specially

	* lisp/term/x-win.el (window-system-initialization): Don't handle
	reverseVideo specially (bug#32921).

2022-06-19  Sébastien Miquel  <sebastien.miquel@posteo.eu>

	Small fix in font-lock-extend-region-multiline

	* lisp/font-lock.el (font-lock-extend-region-multiline): Do not
	extend the region if `font-lock-multiline' starts at
	`font-lock-end' (bug#46558).

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't lose antialiasing info when hitting `C-x C-+'

	* src/xfaces.c (realize_gui_face): Don't lose antialiasing info
	when hitting `C-x C-+' (bug#37473).

2022-06-19  Po Lu  <luangruo@yahoo.com>

	Fix setting last user time during drag-and-drop

	* src/xterm.c (handle_one_xevent): Set the last user time if a
	button press happens during drag and drop.  Mysterious problems
	were other seen with sending selections to a clipboard
	immediately afterwards on Irix 6.5.

2022-06-19  Stefan Kangas  <stefankangas@gmail.com>

	Add rudimentary font-locking to edmacro-mode

	* lisp/edmacro.el (edmacro-label): New face.
	(edmacro-mode-font-lock-keywords): New variable.
	(edit-kbd-macro): Use font-lock in 'edmacro-mode'.  Minor
	improvement to command substitution.

2022-06-19  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/obsolete/eieio-compat.el: Add missing Obsolete-since line.

2022-06-19  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in kmacro.el

	* lisp/kmacro.el (kmacro-keymap, kmacro-step-edit-map): Prefer
	defvar-keymap.

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix edebug parsing of .,

	* lisp/emacs-lisp/edebug.el (edebug-next-token-class): Parse .,
	correctly (bug#37653).

2022-06-19  Michael Heerdegen  <michael_heerdegen@web.de>

	Tune when to show "Quick Help" in Ediff mode-line

	* lisp/vc/ediff-wind.el (ediff-refresh-mode-lines): Decide whether to
	display "Quick Help" in the mode-line based on the value of
	`ediff-use-long-help-message' instead of checking
	`ediff-window-setup-function' (Bug#12840).

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make checkdoc-defun-info parsing slightly less wrong

	* lisp/emacs-lisp/checkdoc.el (checkdoc-defun-info): Disregard
	`interactive' in nested parts of the defun (bug#56052).

2022-06-19  Eli Zaretskii  <eliz@gnu.org>

	Update redisplay ticks for more operations, and misc modifications

	* src/xdisp.c (update_redisplay_ticks): Don't disable redisplay of
	mini-windows.
	* src/regex-emacs.c (re_match_2_internal):
	* src/bidi.c (bidi_find_bracket_pairs, bidi_fetch_char)
	(bidi_paragraph_init, bidi_find_other_level_edge): Update the
	redisplay tick count as appropriate, when moving the iterator by
	one character position actually requires to examine many more
	positions.

	* doc/emacs/trouble.texi (Long Lines):
	* src/xdisp.c (syms_of_xdisp) <max_redisplay_ticks>: Update
	recommended non-zero values.

2022-06-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Add mechanism for gradually phasing in new byte compilation warnings

	* lisp/Makefile.in (BYTE_COMPILE_FLAGS): Enable all byte
	compilation warnings.
	* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types): Add
	docstrings-non-ascii-quotes and document new semantics for `all'
	and t.
	(byte-compile--emacs-build-warning-types): New constant.
	(byte-compile-warning-enabled-p): Implement the new semantics.
	(byte-compile-docstring-style-warn): Reinstate the Unicode quote
	warning.

2022-06-19  Po Lu  <luangruo@yahoo.com>

	Ignore emulated mouse clicks during drag-and-drop

	* src/xterm.c (handle_one_xevent): Don't set dpyinfo->grab and
	last mouse frame for emulated mouse events during a
	drag-and-drop operation.

2022-06-19  Po Lu  <luangruo@yahoo.com>

	Fix crashes when the _EMACS_DRAG_ATOM is the wrong type

	* src/xterm.c (xm_get_drag_atom_1): Don't use PropModeAppend if
	rc != Success.

2022-06-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	422f958030 Fix invalid defcustom :group when :predicate is used

2022-06-19  Po Lu  <luangruo@yahoo.com>

	Fix XDND from Firefox again

	* lisp/x-dnd.el (x-dnd-handle-xdnd): Prevent nil from appearing
	in format 32 list.
	(x-dnd-handle-motif): Send reply if the user quit out of the
	drop handler as well.

2022-06-18  Po Lu  <luangruo@yahoo.com>

	Cache the Motif drag window to avoid fetching it every time

	* src/xterm.c (xm_get_drag_window_1): New function.
	(xm_get_drag_window): Cache the window.  If it already exists,
	just return it.
	(xm_setup_dnd_targets): If a BadWindow error occurs, re-create
	the Motif drag window.

	* src/xterm.h (struct x_display_info): New field
	`motif_drag_window'.

2022-06-18  Po Lu  <luangruo@yahoo.com>

	Fix timestamps recorded in Motif DND top level leave messages

	* src/xterm.c (xm_send_top_level_leave_message): Use X_SHRT_MAX
	since Motif treats x and y as signed.
	(handle_one_xevent): Use correct time for lmsg.timestamp sent in
	response to entering the return-frame.

2022-06-18  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in edmacro.el

	* lisp/edmacro.el (edmacro-mode-map): Prefer defvar-keymap.

2022-06-18  Stefan Kangas  <stefankangas@gmail.com>

	Respect no-face argument in literal key substitutions

	* lisp/help.el (substitute-command-keys): Respect 'no-face' argument
	also in literal key substitutions.
	* test/lisp/help-tests.el
	(help-tests-substitute-key-bindings/help-key-binding-face): Rename
	from help-tests-substitute-key-bindings/face-help-key-binding.
	(help-tests-substitute-key-bindings/help-key-binding-no-face): New test.

2022-06-18  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix last tty-select-active-regions change

	* lisp/frame.el (tty-select-active-regions): Pacify warning about
	missing defcustom :group by specifying the same group as
	select-active-regions, as well as the frames group.
	* src/keyboard.c (command_loop_1, syms_of_keyboard): Rename last
	occurrences of xterm-select-active-regions to
	tty-select-active-regions (bug#55883).

2022-06-18  Alan Mackenzie  <acm@muc.de>

	CC Mode: Add accurate handling for backslash in C line and block comments

	This is needed to handle the idiosyncratic meaning of backslash in comments in
	the C and C++ standards.

	* lisp/progmodes/cc-engine.el: Correct a spelling error.

	* lisp/progmodes/cc-mode.el (c-before-change-fix-comment-escapes)
	(c-after-change-fix-comment-escapes): New functions.

	* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Add
	c-before-change-fix-comment-escapes to the C/Objc and C++ values.
	(c-before-font-lock-functions): Add c-after-change-fix-comment-escapes to the
	C/Objc and C++ values.

2022-06-18  Eli Zaretskii  <eliz@gnu.org>

	Fix test failures due to 'xterm-select-active-regions'

	* lisp/frame.el (tty-select-active-regions): Rename from
	xterm-select-active-regions and move here from xterm.c.
	(display-selections-p): Adjust to the above.  (Bug#55883)

2022-06-18  Mattias Engdegård  <mattiase@acm.org>

	More aggressive bytecode split between top-level forms (bug#55972)

	* lisp/emacs-lisp/bytecomp.el (byte-compile-keep-pending):
	Allow bytecode split between all kinds of top-level forms, not just
	those with chunk handlers, to prevent individual chunks from growing
	too large.  In particular this helps compilation of
	package-quickstart.el.

2022-06-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix checkdoc--fix-y-or-n-p query

	* lisp/emacs-lisp/checkdoc.el (checkdoc--fix-y-or-n-p): Fix the
	query to match what's done (bug#56053).

2022-06-18  Richard Hansen  <rhansen@rhansen.org>

	Fix invalid defcustom :group when :predicate is used

	* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Fix
	invalid `:group' argument for the `-modes' defcustom that is created
	when `:predicate' is used (bug#56049).

2022-06-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Filter out NS non-key events from `where-is-internal'

	* doc/lispref/keymaps.texi (Scanning Keymaps): Document it.
	* lisp/keymap.el (make-non-key-event): New function.

	* lisp/term/common-win.el (x-setup-function-keys): Mark ns events
	as not being keys (bug#55940).

	* src/keymap.c (Fwhere_is_internal): Filter out key sequences that
	are marked as being non-keys.

2022-06-18  Po Lu  <luangruo@yahoo.com>

	Remove unnecessary clearing of internal border on Haiku

	* src/haikuterm.c (haiku_new_font): Don't clear internal border.

2022-06-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow pretty-printing results from `C-x C-e' in edebug

	* doc/lispref/edebug.texi (Edebug Eval): Document it.

	* lisp/emacs-lisp/edebug.el (edebug-eval-expression): Allow
	displaying the full value in a different buffer.

2022-06-18  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix infinite loop in noise macro near end of buffer

	This fixes bug #55771.  Also fix an inaccuracy in c-defun-name-1 with the same
	cause.

	* lisp/progmodes/cc-cmds.el (c-defun-name-1)
	* lisp/progmodes/cc-engine.el (c-forward-noise-clause): Check the return
	value of c-forward-token-2 and act upon it when not zero.

2022-06-18  Duncan Findlay  <duncf@google.com>

	Support `select-active-regions' with xterm

	This allows Emacs to save the active region to the user's
	primary selection on supported terminals.  The behavior follows
	the existing `select-active-regions' variable and requires
	`xterm-select-active-regions' to be non-nil.

	* src/keyboard.c (command_loop_1):
	* lisp/frame.el (display-selections-p): On text terminals, check
	terminal parameter `xterm--set-selections' and variable
	`xterm-select-active-regions' when deciding whether to update
	primary selection. (bug#55883)
	* lisp/term/xterm.el (xterm-select-active-regions): New
	defcustom.

2022-06-18  Eli Zaretskii  <eliz@gnu.org>

	Update documentation

	* doc/emacs/trouble.texi (DEL Does Not Delete): Move to the end of
	the chapter.  This issue is no longer frequent or important as it
	was back in Emacs 20 days.
	(Long Lines): Document 'max-redisplay-ticks'.
	* doc/emacs/emacs.texi (Top): Update the detailed menu.

	* etc/NEWS: Announce 'max-redisplay-ticks'.

2022-06-18  Eli Zaretskii  <eliz@gnu.org>

	Don't count ticks too eagerly in syntax.c

	* src/syntax.c (scan_sexps_forward): Don't increment redisplay
	tick count of the loop didn't advance at all.

2022-06-18  Eli Zaretskii  <eliz@gnu.org>

	Allow aborting redisplay stuck in 'parse-partial-sexp'

	* src/xdisp.c (display_working_on_window_p): New global variable.
	(unwind_display_working_on_window): New function.
	* src/keyboard.c (command_loop_1): Reset
	'display_working_on_window_p' before and after executing commands.
	* src/window.c (Frecenter, window_scroll, displayed_window_lines):
	* src/indent.c (Fvertical_motion): Set
	'display_working_on_window_p' before calling 'start_display'.
	* src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks'
	after finishing the loop.

2022-06-18  Mattias Engdegård  <mattiase@acm.org>

	Avoid "control-control-KEY" (bug#55738)

	Constructs such as ?\C-^@ or ?\C-\C-m literally apply a Control
	modifier twice which doesn't make sense at all.  What is really meant
	is a C0 base character with the Control modifier bit set.
	This change is only stylistic in nature.

	* lisp/edmacro.el (edmacro-format-keys):
	* lisp/keymap.el (key-parse):
	* lisp/subr.el (event-modifiers, event-basic-type):
	* test/lisp/subr-tests.el (subr-test-kbd):
	Use \0 and \r instead of ^@ and \C-m to represent NUL and RET
	when combined with other modifiers.

2022-06-18  Stefan Kangas  <stefankangas@gmail.com>

	Prefer URL commentary header in two files

	* lisp/transient.el:
	* test/lisp/progmodes/cperl-mode-tests.el: Prefer URL commentary
	header.

2022-06-18  Stefan Kangas  <stefankangas@gmail.com>

	Define docstring element for more forms in scheme-mode

	* lisp/progmodes/scheme.el: Define docstring element for more
	forms.  (Bug#33117)

2022-06-18  Po Lu  <luangruo@yahoo.com>

	Remove unused Haiku code

	* src/haiku_select.cc (be_get_clipboard_targets_1)
	(be_get_clipboard_targets): Delete functions.
	(init_haiku_select): Rename to `be_clipboard_init'.  Avoid
	duplicate definition with haikuterm.h.

	* src/haikuselect.c (init_haiku_select): New function.
	* src/haikuselect.h: Update prototypes.

2022-06-18  Po Lu  <luangruo@yahoo.com>

	Fix type mixup in haikuselect.c

	* src/haikuselect.c (haiku_lisp_to_message): Fix variable mixup.
	Found with --enable-check-lisp-object-type.

2022-06-18  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	024bbcb35e Prune the Gnus FAQ of some outdated data

2022-06-18  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d671cd57c4 Update cl-struct-sequence-type doc string
	017bdb1611 Fix a tagging problem in tramp.texi
	e0bac17bbc Mention face quirks after the final line in the lispref ma...
	ad74677cf3 Delete reference to obsolete library complete.el

2022-06-17  Po Lu  <luangruo@yahoo.com>

	Prevent Lisp code or synthetic events from ruining the user time

	* src/xterm.c (x_display_set_last_user_time): New parameter
	`send_event'.  Make sure user time is newer unless !send_event.

	(x_set_last_user_time_from_lisp): Remove redundant check.
	(XTmouse_position):
	(handle_one_xevent): Pass `send_event' whenever appropriate.

2022-06-17  Po Lu  <luangruo@yahoo.com>

	Fix specifying named action lists in `x-begin-drag'

	* src/xfns.c (Fx_begin_drag): Record original value of `targets'
	separately.  Pass that as the selection targets list instead.

	* src/xterm.c (x_dnd_delete_action_list): New function.
	(x_dnd_begin_drag_and_drop): Bind it if there are multiple
	actions.

2022-06-17  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	Fix double-free in treesit.c

	* src/treesit.c (Ftreesit_query_capture): Remove free at the end.

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Extend 'e' in edebug to pretty-print the values

	* doc/lispref/edebug.texi (Edebug Eval): Document it.

	* lisp/emacs-lisp/edebug.el (edebug-eval-expression): Allow
	displaying the full value in a different buffer.

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Prune the Gnus FAQ of some outdated data

	* doc/misc/gnus-faq.texi (FAQ 9-2): Remove some outdated advice
	(bug#56042).

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Delete another library obsolete since 24.1

	This file was missed in the last commit to delete libraries obsolete
	since Emacs 24.3 or older.
	* lisp/obsolete/pc-mode.el: Delete file.  This library has been
	obsolete since Emacs 24.1.  (Bug#50999)

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add hacek variations to `C-x 8'

	* lisp/international/iso-transl.el (iso-transl-char-map): Add
	hacek characters on `C-x 8 ^ ^'.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Use full name for bookmark handler type

	* lisp/image-dired.el (image-dired-bookmark-jump): Use full mode name
	for bookmark handler type.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Set bookmark handler type for Eshell

	* lisp/eshell/esh-mode.el (eshell-bookmark-jump): Set bookmark handler
	type.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Update bookmark tests for recent change

	* test/lisp/bookmark-tests.el (bookmark-tests-set/bookmark-use-annotations-t)
	(bookmark-tests-edit-annotation)
	(bookmark-test-bmenu-send-edited-annotation)
	(bookmark-test-bmenu-send-edited-annotation/restore-focus): Update for
	recent change.

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix copy-from-above-command doc string type

	* lisp/misc.el (copy-from-above-command): Fix doc string typo.

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new command `duplicate-line'

	* lisp/misc.el (copy-from-above-command): Mention it.
	(duplicate-line): New command (bug#46621).

2022-06-17  Mattias Engdegård  <mattiase@acm.org>

	Slightly faster hash-table-keys and hash-table-values

	* lisp/emacs-lisp/subr-x.el (hash-table-keys, hash-table-values):
	Omit the reversal of the returned list.  It is not ordered anyway.
	* test/lisp/emacs-lisp/subr-x-tests.el
	(subr-x--hash-table-keys-and-values): New test.

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't quote numbers in byte-run--set-*

	* lisp/emacs-lisp/byte-run.el (byte-run--set-doc-string)
	(byte-run--set-indent): Don't quote numbers (bug#48145).

2022-06-17  Michael Albinus  <michael.albinus@gmx.de>

	Fix handling of "process-*" properties in Tramp

	* lisp/net/tramp.el (tramp-local-host-regexp): Add "localhost4".
	(with-tramp-saved-connection-property): New defmacro.

	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
	(tramp-sh-handle-make-process):
	* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory):
	(tramp-smb-handle-file-acl, tramp-smb-handle-process-file)
	(tramp-smb-handle-set-file-acl)
	(tramp-smb-handle-start-file-process): Use it.  (Bug#55832)

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some declare-after-interactive functions

	* lisp/progmodes/opascal.el (opascal-new-comment-line):
	* lisp/image-mode.el (image-transform-fit-to-height):
	* lisp/help-fns.el (help-fns-edit-variable):
	* lisp/gnus/gnus-salt.el (gnus-pick-start-reading):
	* lisp/eshell/esh-util.el (eshell-for):
	* lisp/ldefs-boot.el (view-return-to-alist-update): Fix warnings
	about declare after interactive.

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't quote the `when' form in obsoletions

	* lisp/emacs-lisp/byte-run.el (byte-run--set-obsolete): The `when'
	is a string (or nil), so don't quote it (bug#48145).
	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form):
	Adjust folding.

2022-06-17  Mattias Engdegård  <mattiase@acm.org>

	Warn about misplaced or duplicated function/macro declarations

	Doc strings, `declare` and `interactive` forms must appear in that
	order and at most once each.  Complain if they don't, instead of
	silently ignoring the problem (bug#55905).

	* lisp/emacs-lisp/byte-run.el (byte-run--parse-body)
	(byte-run--parse-declarations): New.
	(defmacro, defun): Check for declaration well-formedness as
	described above.  Clarify doc strings.  Refactor some common code.
	* test/lisp/emacs-lisp/bytecomp-resources/fun-attr-warn.el:
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-fun-attr-warn):
	New test.

2022-06-17  Eli Zaretskii  <eliz@gnu.org>

	Handle too long syntactic fontifications

	* src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks'
	after finishing the loop.

	* src/dispnew.c (make_current): Make sure enabled rows of the
	current matrix have a valid hash, even if redisplay of a window
	was aborted due to slowness.  This avoids assertion violations in
	'scrolling_window' due to the wrong hash value.

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix efaq-w32.texi build warning

	* doc/misc/efaq-w32.texi (Other useful ports): Fix ordering to
	match nodes (or should the nodes be moved instead?).

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Update cl-struct-sequence-type doc string

	* lisp/emacs-lisp/cl-macs.el (cl-struct-sequence-type): Fix doc
	string to reflect what it does (bug#46523).

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Fix some command substitutions

	* lisp/net/rcirc.el (rcirc-edit-multiline):
	* lisp/textmodes/reftex-index.el (reftex-index-phrases-mode)
	(reftex-index-phrase-selection-or-word):
	* lisp/textmodes/remember.el (remember): Fix command substitutions.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Rename command to bookmark-edit-annotation-confirm

	* lisp/bookmark.el (bookmark-edit-annotation-confirm): Rename from
	'bookmark-send-edited-annotation' to be more consistent with
	'bookmark-edit-annotation-cancel'.  Make the old name into an
	obsolete function alias.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Improve help-enable-variable-value-editing help

	* lisp/help-fns.el (help-enable-variable-value-editing): Expand
	docstring to better explain what effect it has.
	(help-fns-edit-variable): Use command substitution.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Fix command substitution in emacsbug.el

	* lisp/mail/emacsbug.el: Minor doc fix.
	(submit-emacs-patch, report-emacs-bug): Fix command substitution.
	Prefer keymap-set to define-key.

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow editing all symbols in help-fns--editable-variable

	* lisp/help-fns.el (help-fns--editable-variable): Allow editing
	all symbols (bug#56038).

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve time parsing documentation

	* doc/lispref/os.texi (Time Parsing): Clarify which functions
	take/return timestamps and which ones take decoded time structures.
	* src/timefns.c (Fdecode_time): Clarify TIME argument (bug#46505).

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Make uce.el obsolete (bug#46472)

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix wdired marking of unsuccessfully renamed files

	* lisp/wdired.el (wdired-finish-edit): Don't mark non-renamed
	files as renamed (bug#46438).

2022-06-17  Dmitry Gutov  <dgutov@yandex.ru>

	buffer-match-p: Resolve backward compat concerns

	* doc/lispref/buffers.texi (Buffer List): Document 'major-mode'
	and 'derived-mode' predicates.  Fix some typos.

	* lisp/subr.el (buffer-match-p): Use the structure initially
	pioneered by project-kill-buffer-conditions as-is (bug#54296).

	* lisp/progmodes/project.el (project-kill-buffer-conditions)
	(project--buffer-check): Revert the latest change.
	(project--buffer-check): Add support for lambda predicates.

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix a tagging problem in tramp.texi

	* doc/misc/tramp.texi (Frequently Asked Questions): Restore an
	@end lisp removed by accident.

2022-06-17  Po Lu  <luangruo@yahoo.com>

	Reduce code duplication when setting user time window

	* src/xterm.c (x_make_frame_visible): Use
	`x_update_frame_user_time_window'.

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention face quirks after the final line in the lispref manual

	* doc/lispref/display.texi (Face Attributes): Mention the quirks
	about point after the final line (bug#56011).

2022-06-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Speed up shr-string-pixel-width

	* lisp/net/eww.el (eww-update-header-line-format): Use
	string-pixel-width (since we don't care about shr-use-fonts here).
	* lisp/net/shr.el (shr-string-pixel-width): Use
	`string-pixel-width', which should be faster.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Cancel editing bookmark annotations with C-c C-k

	* lisp/bookmark.el (bookmark-edit-annotation-cancel): New command.
	(bookmark-edit-annotation-mode): Document it.
	(bookmark-edit-annotation-mode-map): Bind it to 'C-c C-k'.
	(bookmark-default-annotation-text): Announce it when editing
	annotations.
	(bookmark-edit-annotation--maybe-display-list): New macro.
	(bookmark-send-edited-annotation): Use above new macro.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Use command substitution in bookmark-edit-annotation

	* lisp/bookmark.el (bookmark-default-annotation-text): Use command
	substitution.
	(bookmark-edit-annotation): Enter mode before inserting annotation
	to get the correct command substitution.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/edmacro.el (edit-kbd-macro): Use command substitution.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Delete most libraries obsolete since 24.1 and 24.3

	Emacs 24.3 was released 10 years ago.
	* lisp/obsolete/abbrevlist.el:
	* lisp/obsolete/assoc.el:
	* lisp/obsolete/complete.el:
	* lisp/obsolete/cust-print.el:
	* lisp/obsolete/erc-hecomplete.el:
	* lisp/obsolete/mailpost.el:
	* lisp/obsolete/mouse-sel.el:
	* lisp/obsolete/old-emacs-lock.el:
	* lisp/obsolete/patcomp.el:
	* lisp/obsolete/pc-select.el:
	* lisp/obsolete/s-region.el: Delete files.  These libraries have been
	obsolete since Emacs 24.1 or 24.3.  (Bug#50999)
	* etc/NEWS: Announce their deletion.

	* lisp/minibuffer.el (minibuffer-confirm-exit-commands):
	* lisp/textmodes/rst.el: Remove references to above obsolete
	libraries.

2022-06-17  Po Lu  <luangruo@yahoo.com>

	Clarify doc of `x-display-set-last-user-time'

	* src/xfns.c (Fx_display_last_user_time): Explain in more detail
	the meaning of TERMINAL.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Delete reference to obsolete library complete.el

	* doc/misc/tramp.texi (Frequently Asked Questions): Delete reference
	to obsolete library complete.el.

2022-06-17  Mattias Engdegård  <mattiase@acm.org>

	* src/fns.c (Fmapconcat): Better empty-string-or-nil detection.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Fix misplaced interactive spec

	* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-10483):
	* test/lisp/cedet/srecode/document-tests.el
	(srecode-document-function-comment-extract-test):
	* test/lisp/obsolete/inversion-tests.el (inversion-unit-test):
	* test/lisp/cedet/cedet-files-tests.el (cedet-files-utest): Remove
	misplaced interactive spec.
	(cedet-files-utest-list): Minor doc fix; improve formatting.

2022-06-17  Po Lu  <luangruo@yahoo.com>

	Improve compatibility when receiving drops from early XDND programs

	* lisp/x-dnd.el (x-dnd-handle-xdnd): Save version in state.
	If version is less than 5, don't put action and success in
	XdndFinished events.  If less than 2, always use `copy' as
	the selected action.

2022-06-17  Po Lu  <luangruo@yahoo.com>

	Fix computation of screen width and height on Haiku

	* src/haiku_support.cc (be_get_screen_dimensions): Use correct
	macros to extract width and height.

2022-06-17  Po Lu  <luangruo@yahoo.com>

	Fix instances of not using a usable Motif drag atom

	* src/xterm.c (xm_get_drag_atom_1): If another frame owns an
	atom, use it anyway.

2022-06-17  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f419de6eca * lisp/textmodes/artist.el: Minor doc fixes.
	5ddd0f1a35 * lisp/net/tramp.el (tramp-methods): Fix quoting in docstr...
	b0c5accb99 Update MS Windows FAQ for MinGW64-w64/MSYS2

2022-06-16  Po Lu  <luangruo@yahoo.com>

	Improve window manager user time reporting mode switching

	* src/xterm.c (x_display_set_last_user_time): Stop periodically
	checking for user time window support.
	(x_update_frame_user_time_window): New function.
	(handle_one_xevent): Call it on toplevel ReparentNotify if the
	frame has been visible at least once.

	* src/xterm.h (struct x_display_info): Remove
	`last_user_check_time'.

2022-06-16  Po Lu  <luangruo@yahoo.com>

	Update last event time during DND operations

	* lisp/x-dnd.el (x-dnd-handle-xdnd, x-dnd-handle-motif): Set
	last user time to provided timestamp.
	* src/xfns.c (Fx_display_last_user_time): New function.
	(syms_of_xfns): New defsubr.

	* src/xterm.c (x_set_last_user_time_from_lisp): New function.
	* src/xterm.h: Update prototypes.

2022-06-16  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	Change treesit-parser-list from variable to function

	Effectively making the list internal.  Now Emacs user cannot shoot
	themselves in the foot by removing a parser from the list, make
	chaanges to buffer and add that parser back to the list.

	* doc/lispref/parsing.texi (Language Definitions, Using Parser)
	(Retrieving Node, Multiple Languages): Change variable to function.
	* lisp/treesit.el (treesit-language-at, treesit-node-on)
	(treesit-buffer-root-node, treesit-indent, treesit-check-indent)
	(treesit-search-forward, treesit-search-beginning)
	(treesit-end-of-defun, treesit-inspect-mode): Change variable to
	function.
	* src/buffer.c (bset_ts_parser_list, reset_buffer, init_buffer_once):
	Add ts_parser_list.
	* src/buffer.h (struct buffer): Add ts_parser_list.
	* src/treesit.c (ts_record_change, Ftreesit_parser_create): Use the
	buffer field instead of the old buffer local variable.
	(Ftreesit_parser_delete, Ftreesit_parser_list): New functions.
	(syms_of_treesit): Remove treesit-parser-list.
	* test/src/treesit-tests.el (treesit-basic-parsing): Use the new
	function.

2022-06-16  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/textmodes/artist.el: Minor doc fixes.

2022-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/fns.c (Fmapconcat): Optimize the case where separator==""

2022-06-16  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	Add treesit test for previous change

	* test/src/treesit-tests.el (treesit-cross-boundary): New test.

2022-06-16  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	Consolidate treesit parser create functions

	Merge treesit-parser-create, treesit-get-parser,
	treesit-get-parser-create into one: treesit-parser-create.

	* src/treesit.c (Ftreesit_parser_language): make BUFFER parameter
	optional, add new parameter NO-REUSE.  Optionally reuse parser.
	* test/src/treesit-tests.el: Change all parser creation to use
	treesit-parser-create.  Remove tests for the removed functions.
	* lisp/treesit.el (treesit-get-parser, treesit-get-parser-create):
	Remove.
	* lisp/treesit.el (treesit-set-ranges, treesit-get-ranges)
	(treesit-buffer-root-node, treesit-query-string)
	(treesit-font-lock-fontify-region, treesit-search-forward)
	(treesit-query-validate): Change to use treesit-parser-create.

2022-06-16  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	Fix treesit function ts_record_change and friends

	In ts_record_change, the way we calculate tree-sitter change was
	wrong:

	    ptrdiff_t affected_start =
	      max (visible_beg, start_byte) - visible_beg;
	    ptrdiff_t affected_old_end =
	      min (visible_end, affected_start + bytes_del);
	    ptrdiff_t affected_new_end =
	      affected_start + bytes_ins;

	I changed it to below (also renamed variables)

	    ptrdiff_t start_offset =
	      min (visible_end,
	           max (visible_beg, start_byte)) - visible_beg;
	    ptrdiff_t old_end_offset =
	      min (visible_end,
	           max (visible_beg, old_end_byte)) - visible_beg;
	    ptrdiff_t new_end_offset =
	      min (visible_end,
	           max (visible_beg, new_end_byte)) - visible_beg;

	Also previously only visible_end is changed (in a wrong way)

	    XTS_PARSER (lisp_parser)->visible_end = affected_new_end;

	Now we have a whole new bunch of code that makes the right change.

	* src/treesit.c (ts_tree_edit_1): Add assertion.
	(ts_record_change): See above.
	(ts_ensure_position_synced): Add assertion.
	(ts_ensure_parsed): Only free if non-NULL.
	(make_ts_parser): Add assertion.
	(Ftreesit_parser_set_included_ranges): Ensure parsed before setting ranges.
	(Ftreesit_parser_included_ranges): Add assertion.

2022-06-16  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp test

	* test/lisp/net/tramp-tests.el (tramp-test03-file-name-method-rules):
	Remove superfluous checks.

2022-06-16  Eli Zaretskii  <eliz@gnu.org>

	Fix disruption of windows' display by shr.el

	* src/window.c (struct saved_window): New member 'vscroll'.
	(Fset_window_configuration, save_window_save): Save and restore
	the window's vscroll value.

	* lisp/net/shr.el (shr-insert-document): Restore the original
	window's hscroll, in case we are rendering in a window other than
	where the document will be eventually displayed.  This avoids
	resetting hscroll of windows we use temporarily for shr's
	rendering job.  (Bug#56008)

2022-06-16  Michael Heerdegen  <michael_heerdegen@web.de>

	Allow number register insertion in Calc (Bug#55943)

	* lisp/calc/calc-yank.el (calc-get-register): Convert number values to
	strings.

2022-06-16  Mattias Engdegård  <mattiase@acm.org>

	* src/fns.c (mapcar1): Test types in rough order of likelihood.

2022-06-16  Mattias Engdegård  <mattiase@acm.org>

	Use BASE_EQ instead of EQ where obviously safe

	* src/alloc.c (deadp):
	* src/buffer.c (reset_buffer_local_variables, candidate_buffer)
	(Fkill_buffer, Fbuffer_swap_text, Fmake_overlay, Fmove_overlay):
	* src/callint.c (Fcall_interactively):
	* src/coding.c (decode_coding_object, encode_coding_object)
	(code_convert_region, Ffind_operation_coding_system):
	* src/comp.c (Fcomp_el_to_eln_rel_filename):
	* src/conf_post.h (RE_TRANSLATE_P):
	* src/data.c (Fkill_local_variable, Fash, expt_integer):
	* src/dired.c (file_name_completion):
	* src/dispnew.c (set_window_cursor_after_update, update_frame_1)
	(Fframe_or_buffer_changed_p):
	* src/doc.c (Fdocumentation, Fdocumentation_property)
	(default_to_grave_quoting_style):
	* src/editfns.c (Fconstrain_to_field, save_excursion_save)
	(save_excursion_restore, Fngettext):
	* src/eval.c (Fautoload, un_autoload, specbind):
	* src/fileio.c (Fmake_temp_file_internal):
	* src/fns.c (string_char_to_byte, string_byte_to_char)
	(Fnthcdr, Fnreverse):
	* src/indent.c (vmotion):
	* src/inotify.c (add_watch):
	* src/keyboard.c (command_loop_1, read_char)
	(read_char_minibuf_menu_prompt):
	* src/lread.c (oblookup):
	* src/macfont.m (macfont_descriptor_entity, macfont_open):
	* src/minibuf.c (Finnermost_minibuffer_p, Ftry_completion)
	(Ftest_completion):
	* src/nsfns.m (ns_set_icon_name):
	* src/pdumper.c (dump_queue_dequeue):
	* src/pgtkfns.c (pgtk_set_icon_type, pgtk_set_icon_name):
	* src/process.c (Faccept_process_output):
	* src/textprop.c (set_text_properties):
	* src/w32fns.c (w32_set_icon_type, w32_set_icon_name):
	* src/w32select.c (validate_coding_system):
	* src/window.c (decode_next_window_args, window_loop)
	(save_window_save):
	* src/xdisp.c (wset_redisplay):
	* src/xfaces.c (Fx_family_fonts, resolve_face_name)
	(gui_supports_face_attributes_p):
	* src/xfns.c (x_set_icon_type, x_set_icon_name):
	* src/xselect.c (clean_local_selection_data):
	Use BASE_EQ instead of EQ where it is obvious that neither argument
	can be a symbol with properties or at least one argument is a
	non-symbol.

2022-06-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Make package-recompile delete all .elc files first

	* lisp/emacs-lisp/package.el (package-recompile): Delete all .elc
	files under the package directory.

2022-06-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new package.el commands for recompilation

	* doc/emacs/package.texi (Package Installation): Document them.

	* lisp/emacs-lisp/package.el (package-recompile):
	(package-recompile-all): New commands (bug#27253).

2022-06-16  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-methods): Fix quoting in docstring.

2022-06-16  Eli Zaretskii  <eliz@gnu.org>

	Speed up Org to Texinfo generation

	* doc/misc/Makefile.in ($(1:.org=.texi)): Use a higher GC
	threshold, to speed up .org=.texi conversion.  Patch by Ihor
	Radchenko <yantar92@gmail.com>.

2022-06-16  Stefan Kangas  <stefankangas@gmail.com>

	Make artist-version variable obsolete

	* lisp/textmodes/artist.el (artist-version): Make obsolete.  This has
	not been updated in nearly two decades; use the Emacs version instead.
	(artist-submit-bug-report): Don't use above obsolete variable.

2022-06-16  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap for artist-mode-map

	* lisp/textmodes/artist.el (artist-mode-map): Prefer
	defvar-keymap.

2022-06-16  Ihor Radchenko  <yantar92@gmail.com>

	org-cite-list-citations: Cache footnote-definition searches

	* lisp/org/oc.el (org-cite-list-citations): Avoid quadratic complexity.
	Pre-calculate list of all footnote definitions and cache the footnote
	label search hits.  Do not make `org-element-map' accumulate unused
	result.

2022-06-16  Ihor Radchenko  <yantar92@gmail.com>

	org-element-map: Avoid repetitive `plist-get' call

	* lisp/org/org-element.el (org-element-map): Do not call `(plist-get info
	:ignore-list)' on every iteration.

2022-06-16  Ihor Radchenko  <yantar92@gmail.com>

	org-export-data: Concatenate strings in temporary buffer for performance

	* lisp/org/ox.el (org-export-data): Use temporary buffer to collect export
	data instead of `mapconcat'.  Using buffer puts less load on garbage
	collector.

2022-06-16  Ihor Radchenko  <yantar92@gmail.com>

	org-export-as: Do not update buffer settings when not modified

	* lisp/org/ox.el (org-export-as): Use `buffer-chars-modified-tick' and
	avoid extra invocations of `org-set-regexps-and-options' and
	`org-update-radio-target-regexp' when the buffer is not changed.
	Also, disable folding checks.  Folding is irrelevant inside export
	buffer.

2022-06-16  Ihor Radchenko  <yantar92@gmail.com>

	org-export-resolve-id-link: Pre-cache all the ids in the parse tree

	* lisp/org/ox.el (org-export-resolve-id-link): Pre-cache all the ids in
	the parse tree for faster lookup.

2022-06-16  Po Lu  <luangruo@yahoo.com>

	Fix Motif drag-and-drop timestamps

	* lisp/x-dnd.el (x-dnd-handle-motif): Pass timestamp when
	retrieving DND selection value.  Bug found on Solaris 2.6.

2022-06-16  Ihor Radchenko  <yantar92@gmail.com>

	org-export-resolve-fuzyy-link: Pre-cache all possible search cells

	* lisp/org/ox.el (org-export-resolve-fuzzy-link): Before matching LINK,
	pre-process and cache all the non-nil search cells in the parse tree.
	When matching, use the pre-processed info.  Fix the :test function for
	the cache hash table.

2022-06-16  Ihor Radchenko  <yantar92@gmail.com>

	org-export-get-footnote-definition: Pre-cache references in parse tree

	* lisp/org/ox.el (org-export-get-footnote-definition): Pre-process parse
	tree once to filter out all non-footnote elements.  This speeds up
	subsequent footnote definition searches.

2022-06-16  Robert Pluim  <rpluim@gmail.com>

	Fix check for window system with toolkit scrollbars

	* configure.ac (USE_TOOLKIT_SCROLL_BARS): Add missing 'test' to
	condition.  (Bug#55970)

2022-06-16  Po Lu  <luangruo@yahoo.com>

	Fix byte-swapping of Motif DND tables

	* src/xterm.c (xm_read_targets_table_rec): Swap nitems first
	before checking the length.

2022-06-16  Arash Esbati  <arash@gnu.org>

	Update MS Windows FAQ for MinGW64-w64/MSYS2

	* doc/misc/efaq-w32.texi (Compiling, Debugging): Mention
	MinGW64-w64/MSYS2 as the preferred way for building Emacs on
	capable systems.
	(Attachments with Gnus): Catch up with emacs-mime.texi in the
	example given.
	(Spell check): Add the availability of GNU Aspell and Hunspell
	in MSYS2 distribution.
	(Other useful ports): Add an entry for MinGW64-w64/MSYS2.
	Fix link for MinGW homepage.
	Remove entry for defunct UWIN project.  (Bug#55930)

2022-06-16  Richard Hansen  <rhansen@rhansen.org>

	bindat (strz): Write null terminator after variable length string

	* lisp/emacs-lisp/bindat.el (bindat--pack-strz): Explicitly write a
	null byte after packing a variable-length string to ensure proper
	termination when packing to a pre-allocated string.
	* doc/lispref/processes.texi (Bindat Types): Update documentation.
	* test/lisp/emacs-lisp/bindat-tests.el (bindat-test--str-strz-prealloc):
	Update tests.

2022-06-16  Po Lu  <luangruo@yahoo.com>

	Fix defcustom in last change

	* lisp/x-dnd.el (x-dnd-use-offix-drop): Fix defcustom.

2022-06-16  Po Lu  <luangruo@yahoo.com>

	Improve handling of fallback drop protocols

	* lisp/x-dnd.el (x-dnd-use-offix-drop): New value `files', which
	means to only drop files using the OffiX protocol.  Make it the
	default.
	(x-dnd-handle-old-kde): Handle other data types correctly.
	(x-dnd-offix-old-kde-to-name): New variable.
	(x-dnd-offix-id-to-name): Fix typo in doc string.
	(x-dnd-handle-unsupported-drop): Implement new value.

2022-06-16  Po Lu  <luangruo@yahoo.com>

	Fix Motif DND after atom ownership is lost due to frame destruction

	* src/xterm.c (xm_get_drag_atom_1): Record owner.
	(x_free_frame_resources): Clear drag atom if owner was freed.
	* src/xterm.h (struct x_display_info): New field
	`motif_drag_atom_owner'.

2022-06-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	4d7a936ac2 ; * src/fileio.c (Fset_file_modes): Improve previous change
	32cff740e2 Describe 'set-file-modes' argument prompting

2022-06-16  Po Lu  <luangruo@yahoo.com>

	Improve drag atom computation

	* src/xterm.c (xm_get_drag_window): Avoid leak if error occurred
	creating drag window.  Also use StructureNotifyMask instead of
	ButtonPressMask.
	(xm_get_drag_atom_1): Update.  Make EMACS_DRAG_ATOM a list of
	atoms and use the first one that isn't currently owned.
	(xm_get_drag_atom): Stop owning selection here.
	(xm_setup_drag_info): Record chosen atom.
	(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
	(x_dnd_update_state, handle_one_xevent, x_connection_closed):
	Use chosen atom.
	* src/xterm.h (struct x_display_info): New field
	`motif_drag_atom_time'.

2022-06-16  Paul Eggert  <eggert@cs.ucla.edu>

	Streamline time decoding and conversion

	* src/lisp.h (lisp_h_BASE2_EQ, BASE2_EQ): New macros and functions.
	* src/timefns.c (tzlookup, Fdecode_time): Use them.
	(Ftime_convert): Convert to symbol once, instead of many times.

2022-06-16  Paul Eggert  <eggert@cs.ucla.edu>

	Don’t test time functions for NaNs, INF

	* test/src/timefns-tests.el (decode-then-encode-time)
	(time-equal-p-NaN-NaN, time-arith-tests):
	Don’t test time functions with infinities and NaNs,
	which are not Lisp time values.

2022-06-16  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer BASE_EQ in time-sensitive ops

	* src/timefns.c (tzlookup, lisp_time_hz_ticks)
	(decode_time_components, lisp_to_timespec, lispint_arith)
	(time_arith, time_cmp, Fdecode_time, Fencode_time)
	(Ftime_convert): Prefer BASE_EQ to EQ where either will do.

2022-06-16  Paul Eggert  <eggert@cs.ucla.edu>

	icalendar-tests no longer assumes TZ = wall

	Do not assume that the TZ environment variable is either unset or
	agrees with /etc/localtime.  I ran into this test bug while
	running ‘TZ=America/Chicago make check’ on a platform where
	/etc/localtime was America/Los_Angeles.
	* test/lisp/calendar/icalendar-tests.el:
	(icalendar-tests--decode-isodatetime): Don’t use
	set-time-zone-rule, whose doc string says “Instead of calling this
	function, you typically want something else” for a reason.
	Instead, pass the zone arg to icalendar-test--format.

2022-06-15  Po Lu  <luangruo@yahoo.com>

	Handle OffiX drop of multiple files

	* lisp/x-dnd.el (x-dnd-types-alist): Register DndTypeFiles.
	(x-dnd-offix-id-to-name): Fix typo.
	(x-dnd-handle-offix-files): New function.
	(x-dnd-convert-to-offix): Fix conversion to DndTypeFiles.

2022-06-15  Po Lu  <luangruo@yahoo.com>

	Comply with the Motif requirement for unique drag atoms

	* src/xselect.c (x_handle_selection_request)
	(Fx_get_selection_internal, syms_of_xselect): New variable
	`x-selection-alias-alist'.  Respect that alist of aliases.

	* src/xterm.c (x_atom_refs): Intern _EMACS_DRAG_ATOM.
	(xm_get_drag_atom_1, xm_get_drag_atom): New functions.
	(xm_setup_drag_info, x_dnd_cleanup_drag_and_drop)
	(x_dnd_begin_drag_and_drop, x_dnd_update_state, handle_one_xevent)
	(x_connection_closed, x_intern_cached_atom): Alias the drag atom
	to XdndSelection.  Use it instead of XdndSelection to set the
	Motif index atom.
	(x_get_atom_name): Handle new atoms.
	(syms_of_xterm): New defsym.
	* src/xterm.h (struct x_display_info): New fields for new atoms
	and their names.

2022-06-15  Sean Whitton  <spwhitton@spwhitton.name>

	* .dir-locals.el: Set emacs-lisp-docstring-fill-column.

2022-06-15  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	* src/treesit.c (ts_check_range_argument): Check for point-min/max.

2022-06-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust ibuffer test

	* test/lisp/ibuffer-tests.el (ibuffer-format-qualifier): Adjust
	test after recent formatting changes.

2022-06-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow completing tags, parameters and values in html-mode

	* lisp/textmodes/sgml-mode.el (html-mode--complete-at-point):
	Allow completing tags, parameters and values (bug#29057).

2022-06-15  Manuel Giraud  <manuel@ledu-giraud.fr>

	Do not display 'nil for 0-ary filter qualifier in ibuf

	* lisp/ibuf-ext.el (ibuffer-format-qualifier-1): Do not display
	nil in header for 0-ary filter qualifier.
	* lisp/ibuf-macs.el (define-ibuffer-filter): Also fix the message.

2022-06-15  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in ibuffer.el

	* lisp/ibuffer.el (ibuffer--filter-map, ibuffer-name-map)
	(ibuffer-filename/process-header-map, ibuffer-mode-name-map)
	(ibuffer-name-header-map, ibuffer-size-header-map)
	(ibuffer-mode-header-map, ibuffer-mode-filter-group-map): Prefer
	defvar-keymap.

2022-06-15  Po Lu  <luangruo@yahoo.com>

	Implement using the OffiX protocol for dropping

	* lisp/x-dnd.el (x-dnd-use-offix-drop): New user option.
	(x-dnd-handle-unsupported-drop): Return t if the OffiX protocol
	was used.
	(x-treat-local-requests-remotely): New defvar.
	(x-dnd-convert-to-offix, x-dnd-do-offix-drop): New functions.

	* src/xterm.c: Update commentary.
	(x_term_init): Extend number of DND atoms allocated by default.

2022-06-15  Robert Pluim  <rpluim@gmail.com>

	Describe 'set-file-modes' argument prompting

	* src/fileio.c (Fset_file_modes): Document that FILENAME is prompted
	for.  (Bug#55984)

2022-06-15  Miha Rihtaršič  <miha@kamnitnik.top>

	whitespace.el: New whitespace style `lines-char'

	* lisp/whitespace.el (whitespace-style):
	(whitespace-style-value-list):
	(whitespace-toggle-option-alist):
	(global-whitespace-toggle-options):
	(whitespace-help-text):
	(whitespace-interactive-char):
	(whitespace-style-face-p):
	(whitespace-color-on):
	(whitespace-lines-regexp): New whitespace style `lines-char', which
	highlights only the first character over the whitespace-line-column
	limit (bug#55980).

2022-06-15  Po Lu  <luangruo@yahoo.com>

	Handle receiving new OffiX protocol during drag-and-drop

	* lisp/x-dnd.el (x-dnd-types-alist, x-dnd-known-types): Add
	DndTypeFile and DndTypeText.
	(x-dnd-init-frame): Add _DND_PROTOCOL.
	(x-dnd-handle-drag-n-drop-event): Handle _DND_PROTOCOL events.
	(x-dnd-handle-old-kde): Drop event if proto is too new.
	(x-dnd-offix-id-to-name): New list.
	(x-dnd-handle-offix-file, x-dnd-handle-offix): New functions.

2022-06-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix ;;;###autoload scanning from (some) packages

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
	Fix autoloads scanning from packages.

2022-06-15  Michael Albinus  <michael.albinus@gmx.de>

	Fix file name quoting in tramp-smb.el

	* lisp/net/tramp-smb.el (tramp-smb-shell-quote-localname): New defun.
	(tramp-smb-handle-add-name-to-file, tramp-smb-handle-copy-file)
	(tramp-smb-handle-delete-directory)
	(tramp-smb-handle-delete-file)
	(tramp-smb-do-file-attributes-with-stat)
	(tramp-smb-handle-file-local-copy)
	(tramp-smb-handle-file-system-info)
	(tramp-smb-handle-make-directory-internal)
	(tramp-smb-handle-make-symbolic-link)
	(tramp-smb-handle-process-file, tramp-smb-handle-rename-file)
	(tramp-smb-handle-set-file-modes)
	(tramp-smb-handle-start-file-process)
	(tramp-smb-handle-write-region, tramp-smb-get-file-entries)
	(tramp-smb-get-stat-capability): Use it.
	(tramp-smb-get-localname): Remove superfluous test.  (Bug#55855)

2022-06-15  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp debugging

	* lisp/net/tramp-cache.el (tramp-list-connections): Fix docstring.

	* lisp/net/tramp.el (tramp-backtrace): New optional arg FORCE.

2022-06-15  Juri Linkov  <juri@linkov.net>

	Update args of isearch-search-fun-in-text-property (bug#14013)

	* lisp/isearch.el (isearch-search-fun-in-text-property): Swap signature args.
	* lisp/dired-aux.el (dired-isearch-search-filenames): Update the call.

2022-06-15  Visuwesh  <visuweshm@gmail.com>

	repeat-mode: Don't echo unset keys in help message

	* repeat.el (repeat-echo-message-string): Check if the key is set.
	(bug#55977)

2022-06-15  Po Lu  <luangruo@yahoo.com>

	Handle coordinates for the old KDE drop protocol

	* src/xterm.c (x_atom_refs): Add DndProtocol and _DND_PROTOCOL.
	(x_coords_from_dnd_message): Handle the old KDE protocol.
	* src/xterm.h (struct x_display_info): New atoms.

2022-06-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	850050ca5c Revert "Clarify what a Calc registeri in in calc-insert-re...

2022-06-15  Yuan Fu  <yuan@debian-BULLSEYE-live-builder-AMD64>

	Fix compile warnings and errors in treesit.c

	* src/treesit.c (ts_initialize): Fix.
	(Ftreesit_parser_set_included_ranges): Fix.
	(Ftreesit_query_compile): Fix.

2022-06-14  Po Lu  <luangruo@yahoo.com>

	Fix link action handling with Motif DND

	* src/xterm.c (enum xm_drag_operation): New alternate
	definition.
	(XM_DRAG_OPERATION_IS_LINK): New macro.
	(handle_one_xevent): Use it instead.

2022-06-14  Po Lu  <luangruo@yahoo.com>

	Handle coordinates from XM_DRAG_REASON_DRAG_MOTION replies

	* src/xterm.c (struct xm_drag_motion_reply): New struct.
	(xm_read_drag_motion_reply): New function.
	(x_coords_from_dnd_message): Handle those messages as well.

2022-06-14  Yuan Fu  <casouri@gmail.com>

	Merge remote-tracking branch 'savannah/master' into feature/tree-sitter

	Merge branch 'feature/tree-sitter-depth-control' into feature/tree-sitter

2022-06-14  Yuan Fu  <casouri@gmail.com>

	Add manual for treesit-traverse-forward and friends

	* doc/lispref/parsing.texi (Retrieving Node): Add manual entry for
	treesit-traverse-depth-first, treesit-traverse-breadth-first,
	treesit-traverse-forward.
	* lisp/treesit.el (treesit-traverse-forward): Fix docstring.

2022-06-14  Yuan Fu  <casouri@gmail.com>

	Change treesit-check-query and mention it in documentation

	* doc/lispref/parsing.texi (Pattern Matching): Mention it.
	* lisp/treesit.el (treesit-check-query): Rename to
	treesit-query-validate.
	* src/treesit.c (Ftreesit_query_capture, Ftreesit_query_compile):
	Mention it.

2022-06-14  Yuan Fu  <casouri@gmail.com>

	Add treesit-query-compile to manual

	* doc/lispref/parsing.texi: Add treesit-query-compile.

2022-06-14  Yuan Fu  <casouri@gmail.com>

	Add test for treesit-query-compile

	* test/src/treesit-tests.el (treesit-query-api): Rename pattern to
	query, and add treesit-query-compile into the mix.

2022-06-14  Sean Whitton  <spwhitton@spwhitton.name>

	Add abbrev tables for minibuffer-mode and minibuffer-inactive-mode

	* lisp/minibuffer.el (minibuffer-mode, minibuffer-inactive-mode): Add
	an abbrev table for each of these modes (bug#55946).

2022-06-14  Eli Zaretskii  <eliz@gnu.org>

	Support callers which sometimes run unrelated to display code

	* src/xdisp.c (update_redisplay_ticks): Don't abort callers
	with w == NULL if we are called outside of display engine code,
	and don't update the tick count in that case.

2022-06-14  Yuan Fu  <casouri@gmail.com>

	Support compiled queries in treesit-query-capture

	Last commit added this new type, this commit adds functionalities.
	treesit.el only has documentation changes.

	* lisp/treesit.el (treesit-query-in, treesit-font-lock-settings,
	treesit-defun-query): Update docstring.
	* src/treesit.c (make_ts_query): New function.
	(Ftreesit_query_compile): New function.
	(Ftreesit_query_capture): Remove code that creates a query object and
	instead either use make_ts_query or use the give compiled query.  Free
	the query object conditionally.
	(syms_of_treesit): New symbol.

2022-06-14  Yuan Fu  <casouri@gmail.com>

	* src/treesit.c (Ftreesit_query_p): New function.

2022-06-14  Yuan Fu  <casouri@gmail.com>

	Add new type treesit-compiled-query

	No integration/interaction with the new type, just adding it.

	* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add new type.
	* src/alloc.c (cleanup_vector): Add gc for the new type.
	* src/data.c (Ftype_of): Add switch case for the new type.
	(syms_of_data): Add symbols for the new type.
	* src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN): Add new type.
	* src/treesit.c (Ftreesit_compiled_query_p): New function.
	(syms_of_treesit): Add symbol for the new type.
	* src/treesit.h (struct Lisp_TS_Query): New struct.
	(TS_COMPILED_QUERY_P, XTS_COMPILED_QUERY, CHECK_TS_COMPILED_QUERY):
	New macros.
	* src/print.c (print_vectorlike): Add printing for the new type.

2022-06-14  Mattias Engdegård  <mattiase@acm.org>

	Simplify byte-compiler assuming cconv normalizations

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker)
	(byte-optimize-let-form, byte-optimize-letX):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-unwind-protect):
	Simplify source optimization and codegen code that can now rely on
	normalized let/let* and unwind-protect forms.

2022-06-14  Mattias Engdegård  <mattiase@acm.org>

	Run cconv for dynbound code as well

	Make cconv work for dynamically bound code and always run it.
	This allows later stages to benefit from transformations and
	normalizations in cconv.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-preprocess): Always run
	cconv.
	* lisp/emacs-lisp/cconv.el (cconv--analyze-function)
	(cconv-analyze-form): In dynbound code, treat all variable bindings
	as dynamic (lambda, let, let* and condition-case).

2022-06-14  Mattias Engdegård  <mattiase@acm.org>

	Normalize setq during macro-expansion

	Early normalization of setq during macroexpand-all allows later
	stages, cconv, byte-opt and codegen, to be simplified and duplicated
	checks to be eliminated.

	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
	Normalize all setq forms to a sequence of (setq VAR EXPR).
	Emit warnings if necessary.
	* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyze-form):
	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
	* lisp/emacs-lisp/bytecomp.el (byte-compile-setq):
	Simplify.
	* test/lisp/emacs-lisp/bytecomp-tests.el: Adapt and add tests.
	* test/lisp/emacs-lisp/bytecomp-resources/warn-variable-setq-nonvariable.el;
	* test/lisp/emacs-lisp/bytecomp-resources/warn-variable-setq-odd.el:
	New files.

2022-06-14  Eli Zaretskii  <eliz@gnu.org>

	Handle W = NULL in 'update_redisplay_ticks'

	* src/xdisp.c (update_redisplay_ticks): If W == NULL, assume we
	are iterating the current buffer.

2022-06-14  Juri Linkov  <juri@linkov.net>

	* lisp/replace.el (read-regexp): Use minibuffer-message in the minibuffer.

2022-06-14  Eli Zaretskii  <eliz@gnu.org>

	Restart tick counting every command

	* src/keyboard.c (command_loop_1): Reinitialize the tick count
	before executing each command in the loop.
	* src/xdisp.c (update_redisplay_ticks): Be more defensive to W
	being NULL and to its buffer being nil.  Set
	'windows_or_buffers_changed' to avoid trusting stale window data
	like w->window_end_valid.

2022-06-14  Robert Pluim  <rpluim@gmail.com>

	Add more characters with macron in C-x 8 map and latin input methods

	* lisp/international/iso-transl.el (iso-transl-char-map): Add
	sequences for {AE,ae,G,g} with macron.
	* lisp/leim/quail/latin-post.el ("latin-postfix"): Add missing entries
	for {AE,ae,G,g} with macron.
	* lisp/leim/quail/latin-pre.el ("latin-prefix"): Add entries for
	'letter with macron' for {A,a,E,e,AE,ae,I,I,O,o,U,u,Y,y} with macron.

	(Bug#55668)

2022-06-14  Stephen Berman  <stephen.berman@gmx.net>

	Fix errors when aligning text in find-dired

	* lisp/find-dired.el (find-dired-filter): Don't error out while
	trying to align the text (by just removing that code) (bug#46218).

2022-06-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Make flymake-proc--delete-temp-directory slightly safer

	* lisp/progmodes/flymake-proc.el
	(flymake-proc--delete-temp-directory): Temp dir name may be
	abbreviatated, so expand it first (bug#46203).

2022-06-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix .dir-local.el caching for symlinks

	* lisp/files.el (dir-locals-read-from-dir): We want the time stamp
	of the actual file, not the time stamp of the symlink (if
	.dir-locals.el is a symlink) (bug#46122).

2022-06-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Leave the contents on the *Backtrace* buffer on `q'

	* lisp/emacs-lisp/debug.el (debug): Don't clear the contents of
	the buffer on `q' (bug#55863).

2022-06-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix gud parsing of empty jdb classpaths

	* lisp/progmodes/gud.el (gud-jdb-marker-filter): Parse empty
	classpaths (like classpath: []) correctly (bug#55957).

2022-06-14  Daniel Martín  <mardani29@yahoo.es>

	Bind Cmd-t to menu-set-font on macOS

	* lisp/term/ns-win.el (global-map): set-frame-font asks for a font
	using the minibuffer, but the former ns-popup-font-panel always showed
	the graphical font panel on macOS.  To preserve the same behavior,
	bind it to menu-set-font, which is also called by Options, Set Default
	Font (bug#55967).

2022-06-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow using alists in ido completion and hitting TAB

	* lisp/ido.el (ido-completion-help): Allow using an alist
	COMPLETIONS (bug#46091).

2022-06-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Clarify what a Calc registeri in in calc-insert-register"

	This reverts commit 73400e4002ce8fca060093548e6791b3a784eeaa.

	This has been fixed in Emacs 29 by making it possible to use regular registers in calc.

2022-06-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention how to only get syntactic font locking in the manual

	* doc/lispref/modes.texi (Syntactic Font Lock): Note how to only
	get syntactic font locking (bug#46039).

2022-06-14  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp problem with non-essential

	* lisp/net/tramp.el (tramp-run-real-handler):
	Handle also functions which use a `tramp-file-name' for the file
	name handler.  (Bug#55832)
	(tramp-get-home-directory, tramp-get-remote-uid)
	(tramp-get-remote-gid): VEC can also be nil.

2022-06-14  Po Lu  <luangruo@yahoo.com>

	Fix mishandling of dnd-scroll-margin with scroll bar motion

	* lisp/dnd.el (dnd-handle-movement): Ignore posns inside scroll
	bars for now.

2022-06-14  Juri Linkov  <juri@linkov.net>

	* lisp/minibuffer.el (minibuffer-complete-history): New command.

	(minibuffer-complete-defaults): New command.
	https://lists.gnu.org/archive/html/emacs-devel/2022-06/msg00498.html

2022-06-14  Juri Linkov  <juri@linkov.net>

	* lisp/simple.el (completion-auto-wrap): Rename from completion-wrap-movement.

	(next-completion): Use completion-auto-wrap.
	https://lists.gnu.org/archive/html/emacs-devel/2022-06/msg00139.html

2022-06-14  Po Lu  <luangruo@yahoo.com>

	Fix out of date parts in NS doc and keyboard bindings

	* doc/emacs/macos.texi (Mac / GNUstep Events): Remove
	`ns-drag-n-drop' which doesn't exist anymore.  Add events to
	concept index and document `ns-show-prefs'.  (bug#55940)
	* lisp/term/ns-win.el (global-map): Remove ns-popup-font-panel.

2022-06-14  Po Lu  <luangruo@yahoo.com>

	Handle coordinates of Motif drop start messages

	* src/xterm.c (xm_read_drop_start_message): New function.
	(xm_read_drag_motion_message): Check that the originator is
	correct.
	(x_coords_from_dnd_message): Read drop start messages as well.

2022-06-14  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	73400e4002 Clarify what a Calc registeri in in calc-insert-register

2022-06-13  Po Lu  <luangruo@yahoo.com>

	Handle coordinate extraction for more event types

	* src/xterm.c (xm_read_drag_motion_message): New function.
	(x_coords_from_dnd_message): Handle XM_DRAG_REASON_DRAG_MOTION.

2022-06-13  Po Lu  <luangruo@yahoo.com>

	Use coordinates provided by DND messages if available

	This avoids an extra sync, which matters when dropping onto
	Emacs running over a slow connection.

	* src/xselect.c (x_handle_dnd_message): New args
	`root_window_coords', `root_x' and `root_y'.
	* src/xterm.c (x_coords_from_dnd_message): New function.
	(handle_one_xevent): Pass root window coordinates to
	x_handle_dnd_message.
	* src/xterm.h: Update prototypes.

2022-06-13  Dmitry Gutov  <dgutov@yandex.ru>

	project--git-submodules: Parse more strictly

	* lisp/progmodes/project.el (project--git-submodules):
	Don't mistake 'load-path' for 'path' (bug#55396).

2022-06-13  Paul Eggert  <eggert@cs.ucla.edu>

	Default decoded-time dst slot to -1

	* lisp/simple.el (decoded-time): Default dst slot to -1.
	Improve related doc strings.

2022-06-13  Yuan Fu  <casouri@gmail.com>

	Use the up-only parameter in treesit navigation functions

	* lisp/treesit.el(treesit-inspect-node-at-point,
	treesit-end-of-defun): Set up-only to t.

2022-06-13  Yuan Fu  <casouri@gmail.com>

	Add depth control for treesit traverse functions

	* lisp/treesit.el (treesit-traverse-depth-first,
	treesit-traverse-forward): Add depth parameter.
	(treesit-search-forward, treesit-search-beginning,
	treesit-search-end): Add up-only parameter.

2022-06-13  Yuan Fu  <casouri@gmail.com>

	Fix treesit-search-forward

	Move the check for movement

	    (if (> arg 0)
	        ;; Make sure we moved forward.
	        (> (funcall pos-fn node) starting-point)
	      ;; Make sure we moved backward.
	      (< (funcall pos-fn node) starting-point))

	into cl-loop:

	    if (treesit-node-eq cap-node node)

	becomes

	    if (and (treesit-node-eq cap-node node)
	            (if (> arg 0)
	                ;; Make sure we moved forward.
	                (> (funcall pos-fn node)
	                   starting-point)
	              ;; Make sure we moved backward.
	              (< (funcall pos-fn node)
	                 starting-point)))

	* lisp/treesit.el (treesit-search-forward): Move the check.

2022-06-13  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12.1.1 -Wanalyzer-use-of-uninitialized-value

	* src/xfont.c (xfont_list_pattern): Initialize a local.
	Although I’m not sure this is needed, it doesn’t change
	behavior (except possibly to make undefined behavior defined).

2022-06-13  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12.1.1 in default developer build

	* src/pdumper.c (pdumper_load): Use explicit memset to work around
	GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105961>.

2022-06-13  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/grep.el (grep-read-files): Combine files with aliases.

	Use completion-table-merge to combine completions of files from
	read-file-name-internal with a list of defaults from grep-files-aliases
	(bug#55800).

2022-06-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention \`M-x ...' in the lispref manual

	* doc/lispref/help.texi (Keys in Documentation): Note \`M-x ...'
	syntax.

2022-06-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify what a Calc registeri in in calc-insert-register

	* lisp/calc/calc-yank.el (calc-insert-register): Note that these
	aren't normal registers (bug#55943).

2022-06-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow saying \\=`M-x ...' in a doc string

	* lisp/help.el (substitute-command-keys): Allow saying \\=`M-x
	foo' in doc strings (and have it be fontified as a key binding).

2022-06-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Massage In-Reply-To data in message-mail

	* lisp/gnus/message.el (message-mail): Fix up Message-IDs from
	Firefox (bug#55926).

2022-06-13  Lassi Kortela  <lassi@lassi.io>  (tiny change)

	Match complete words in dns-mode

	* lisp/textmodes/dns-mode.el (dns-mode-font-lock-keywords): Match
	complete words like SOA and not all words that contain the string
	SOA (bug#55944).

2022-06-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow `query-replace' to do exact replacement of the current item

	* doc/emacs/search.texi (Query Replace): Document it.

	* lisp/replace.el (query-replace-help): Amend help text.
	(query-replace-map): Bind `E' to the exact case replacement.
	(perform-replace): Allow editing a replacement with exact case
	(bug#8504).

2022-06-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add to mode cedilla characters to iso-transl-char-map

	* lisp/international/iso-transl.el (iso-transl-char-map): Add some
	more cedilla characters.

2022-06-13  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Meetei Mayek script

	* lisp/language/indian.el ("Meetei Mayek"): New language environment.
	Add composition rules for Meetei Mayek. Add sample text and input method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Meetei Mayek.
	* lisp/leim/quail/indian.el ("meetei-mayek"): New input method.

	* etc/HELLO: Add a Meetei Mayek greeting.
	* etc/NEWS: Announce the new language environment.

2022-06-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the ediff control panel mode line prettier

	* lisp/vc/ediff-wind.el (ediff-refresh-mode-lines): Don't include
	"Quick Help" in the mode line in the plain version (bug#12840).
	(ediff-make-wide-control-buffer-id): Make the informative part of
	the mode line bold.  (Code from Michael Heerdegen.)

2022-06-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow rgrep users to indicate case folding easier

	* lisp/progmodes/grep.el (rgrep): Allow the user to toggle case
	sensitivity interactively (bug#16913).

2022-06-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a `M-c' command to `read-regexp'

	* doc/lispref/minibuf.texi (Text from Minibuffer): Document it.

	* lisp/replace.el (read-regexp): Add a `M-c' command to indicate
	case folding (bug#16913).

2022-06-13  Richard Hansen  <rhansen@rhansen.org>

	bindat (strz): Error on null byte if packing variable-length string

	* lisp/emacs-lisp/bindat.el (strz): Signal an error if a null byte is
	encountered while packing a string to a variable-length strz field.
	* test/lisp/emacs-lisp/bindat-tests.el (strz): Add tests (bug#55938).

2022-06-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* files.el (auto-mode-alist): Add entry to `.eld` files

2022-06-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `/ a' in *Package* filter by name

	* lisp/emacs-lisp/package.el (package-menu-filter-by-archive):
	Filter by package name instead of by regexp, so that if the user
	types "gnu", they won't get "nongnu", too (bug#55919).

2022-06-13  Visuwesh  <visuweshm@gmail.com>

	* lisp/find-dired.el (find-dired): Make directory clickable.

	* lisp/find-dired.el (find-dired): Make the directory line
	clickable (bug#55906).

2022-06-13  Po Lu  <luangruo@yahoo.com>

	Respect test function when performing local drag-and-drop

	* lisp/x-dnd.el (x-dnd-test-function): Fix doc string to
	describe what is actually accepted.
	(x-dnd-known-types, x-dnd-targets-list): Fix coding style.
	(x-dnd-handle-native-drop): New function.

	* src/xselect.c (x_atom_to_symbol): Export.

	* src/xterm.c (x_dnd_note_self_drop): Call new variable to
	determine what action to return.
	(x_clear_dnd_action): New function.
	(x_dnd_begin_drag_and_drop): Respect new variable.
	(syms_of_xterm): New defvar `x-dnd-native-test-function'.
	* src/xterm.h: Update prototypes.

2022-06-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d6f080d3de ; * doc/man/etags.1: Bump man page date.

2022-06-13  Po Lu  <luangruo@yahoo.com>

	Improve DND tooltip updating

	* src/xterm.c (x_dnd_update_tooltip_now): Add missing part of
	last change.
	(x_monitors_changed_cb, handle_one_xevent): Only update if a
	change in monitor configuration really happened.

2022-06-12  Po Lu  <luangruo@yahoo.com>

	Keep tooltip position in sync with monitor changes

	* src/xterm.c (x_dnd_update_tooltip_now): New function.
	(x_monitors_changed_cb):
	(handle_one_xevent): Call that function on monitor change.

2022-06-12  Po Lu  <luangruo@yahoo.com>

	Fix special DND event coordinates

	* src/xterm.c (x_dnd_note_self_drop): Set DND action to
	XdndActionPrivate.
	(x_dnd_begin_drag_and_drop): Don't return XdndPrivate specially
	here.
	(handle_one_xevent): Fix order of arguments to
	x_dnd_note_self_drop.

2022-06-12  Juri Linkov  <juri@linkov.net>

	* lisp/icomplete.el: Consider a list in minibuffer-default (bug#55800)

	* lisp/icomplete.el (icomplete--sorted-completions): Handle a string value
	in the first element of the list of default values in minibuffer-default.

2022-06-12  Eli Zaretskii  <eliz@gnu.org>

	Change the API of 'update_redisplay_ticks'

	* src/xdisp.c (update_redisplay_ticks): Change the 2nd argument
	to be 'struct window'; all callers changed.

2022-06-12  Juri Linkov  <juri@linkov.net>

	* lisp/isearch.el (isearch-search-fun-in-text-property): Handle ^/$ specially.

	When the regexp contains ^ or $ then use a temporary buffer to find matches
	at the beginning/end of the region with the given text property (bug#14013).

2022-06-12  Eli Zaretskii  <eliz@gnu.org>

	Fix a typo in a doc string.

2022-06-12  Eli Zaretskii  <eliz@gnu.org>

	Initial implementation of "abort-redisplay" feature

	* src/xdisp.c (update_redisplay_ticks): New function.
	(init_iterator, set_iterator_to_next): Call
	'update_redisplay_ticks'.
	(syms_of_xdisp) <max_redisplay_ticks>: New variable.
	<list_of_error>: Remove 'void-variable': it is no longer needed,
	since 'calc_pixel_width_or_height' can no longer signal a
	void-variable error, and it gets in the way of aborting
	redisplay via 'redisplay_window_error'.

2022-06-12  Po Lu  <luangruo@yahoo.com>

	Fix encoding of multibyte ToolTalk filenames

	* lisp/select.el (xselect-convert-to-dt-netfile): Encode file
	name before computing its tooltalk name, since the indices work
	on bytes.

	* test/lisp/dnd-tests.el (dnd-tests-begin-file-drag): Add test.

2022-06-12  Po Lu  <luangruo@yahoo.com>

	Fix handling of scroll bar clicks on Haiku

	* src/haiku_support.cc (class EmacsView, BasicMouseDown)
	(BasicMouseUp): Move MouseDown and MouseUp here.  New parameter
	`scroll_bar'.
	(MouseDown, MouseUp): Call basic variants.

	(class EmacsScrollBar): New field `parent'.
	(BScrollBar_make_for_view): Rename to
	`be_create_scroll_bar_for_view'.
	* src/haiku_support.h (struct haiku_button_event): New field
	`scroll_bar'.
	* src/haikuterm.c (haiku_scroll_bar_from_widget): Handle NULL
	widget.
	(haiku_scroll_bar_create): Update calls.
	(haiku_mouse_position): Fix scroll bar part.
	(haiku_read_socket): Handle button events on scroll bars as
	scroll bar click events.

2022-06-12  Mattias Engdegård  <mattiase@acm.org>

	Use BASE_EQ when comparing with Qunbound

	Qunbound is uninterned and can therefore never be EQ to any symbol
	with position.

	* src/buffer.c (Fbuffer_local_value, buffer_lisp_local_variables)
	(buffer_local_variables_1):
	* src/bytecode.c (exec_byte_code):
	* src/comp.c (compile_function, Fcomp__compile_ctxt_to_file):
	* src/composite.c (composition_gstring_cache_clear_font):
	* src/data.c (Fboundp, Fsymbol_value, set_internal)
	(Fdefault_boundp, Fdefault_value, Fmake_variable_buffer_local):
	* src/emacs-module.c (module_global_reference_p):
	* src/eval.c (Fdefault_toplevel_value, defvar)
	(run_hook_with_args):
	* src/fns.c (hash_put, Fmaphash):
	* src/font.c (font_put_extra):
	* src/frame.c (gui_set_frame_parameters)
	(gui_frame_get_and_record_arg, gui_default_parameter)
	(gui_figure_window_size):
	* src/haikufns.c (get_geometry_from_preferences)
	(haiku_create_frame, haiku_create_tip_frame):
	* src/haikuterm.c (haiku_draw_text_decoration)
	(haiku_default_font_parameter):
	* src/json.c (lisp_to_json_nonscalar_1):
	* src/keymap.c (access_keymap_1, access_keymap, current_minor_maps):
	* src/lread.c (readevalloop, define_symbol):
	* src/minibuf.c (read_minibuf, Ftry_completion):
	(Fall_completions, Ftest_completion):
	* src/pgtkfns.c (pgtk_default_font_parameter, Fx_create_frame)
	(x_create_tip_frame):
	* src/pgtkselect.c (Fpgtk_own_selection_internal):
	* src/print.c (print):
	* src/profiler.c (evict_lower_half, record_backtrace):
	* src/terminal.c (create_terminal):
	* src/textprop.c (set_properties):
	* src/w32fns.c (my_create_window, w32_icon)
	(w32_default_font_parameter, Fx_create_frame)
	(w32_create_tip_frame):
	* src/w32term.c (w32_draw_glyph_string):
	* src/xdisp.c (handle_single_display_spec)
	(cursor_row_fully_visible_p, calc_pixel_width_or_height):
	* src/xfns.c (x_default_scroll_bar_color_parameter, x_icon_verify)
	(x_icon, x_default_font_parameter, Fx_create_frame)
	(x_create_tip_frame):
	* src/xselect.c (x_handle_selection_request):
	* src/xterm.c (x_draw_glyph_string, x_term_init):
	Use BASE_EQ instead of EQ when comparing with Qunbound.

2022-06-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Make find-sibling-file-search non-private

	* lisp/files.el (find-sibling-file-search): Rename to be non-private.
	(find-sibling-file): Adjust call.

2022-06-12  Yuan Fu  <casouri@gmail.com>

	Update docstring of eglot-events-buffer-size

	* eglot.el (eglot-events-buffer-size): Mention that you need to
	restart the connection for 'eglot-events-buffer-size' to take effect.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/974
	GitHub-reference: close https://github.com/joaotavora/eglot/issues/776

2022-06-12  Eli Zaretskii  <eliz@gnu.org>

	Fix "C-x C-d" with wildcard arguments

	* lisp/files.el (list-directory): Make sure 'default-directory' is
	set to a valid value if the argument DIRNAME included wildcards.
	(Bug#55877)

2022-06-12  Po Lu  <luangruo@yahoo.com>

	Fix phantom drag-and-drop targets showing up in some programs

	* src/xterm.c (x_dnd_cleanup_drag_and_drop)
	(x_dnd_begin_drag_and_drop): Delete XdndTypeList if it was set
	after the DND operation completes.  Some programs apparently
	think its presence on the drag source means there are more than
	3 targets.

2022-06-12  Richard Hansen  <rhansen@rhansen.org>

	bindat (str, strz): Reject non-ASCII, non-`eight-bit' characters

	* lisp/emacs-lisp/bindat.el (str) (strz): Signal an error if the user
	attempts to pack a multibyte string containing characters other than
	ASCII and `eight-bit' characters (bug#55897).
	* doc/lispref/processes.texi (Bindat Types): Update documentation.
	* test/lisp/emacs-lisp/bindat-tests.el (str) (strz): Add tests.

2022-06-12  Po Lu  <luangruo@yahoo.com>

	Don't repetitively initialize type lists during DND

	* src/xterm.c (x_dnd_send_enter): Only set XdndTypeList once.
	(x_dnd_begin_drag_and_drop): Clear type list flag.

2022-06-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	cbd2c87a5d ; Fix last change in whitespace.el.
	52ad2b53cb Fix doc strings in whitespace.el

2022-06-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/find-func.el (find-function-advised-original): Simplify

2022-06-11  Yuan Fu  <casouri@gmail.com>

	* configure.ac (HAVE_TREE_SITTER): Not set TREE_SITTER_LIBS.

2022-06-11  Yuan Fu  <casouri@gmail.com>

	Rename treesit-traverse-forward-depth-first

	* lisp/treesit.el (treesit-traverse-forward): Rename to
	'treesit-traverse-forward'.
	(treesit-traverse-forward, treesit-search-forward): Use
	the new name.

2022-06-11  Po Lu  <luangruo@yahoo.com>

	Use cached monitor info during DND if available

	* src/xterm.c (x_dnd_begin_drag_and_drop): Use previously cached
	monitor attributes if they exist.

2022-06-11  Po Lu  <luangruo@yahoo.com>

	* src/nsfns.m (ns_move_tooltip_to_mouse_location): Handle invisible frames.

2022-06-11  Po Lu  <luangruo@yahoo.com>

	Don't rely on XdndAware on frames for dropping to work

	* src/xterm.c (x_dnd_get_target_window): New parameter
	WAS_FRAME.  If toplevel is a frame, set it and clear proto and
	motif.
	(x_dnd_send_enter, x_dnd_send_position, x_dnd_send_leave)
	(x_dnd_send_drop): Remove special-cased self dropping code.
	(x_dnd_note_self_position, x_dnd_note_self_drop): New functions.

	(x_dnd_begin_drag_and_drop, x_dnd_update_state):
	(handle_one_xevent): Handle our own frames using those functions
	instead.

2022-06-11  Mattias Engdegård  <mattiase@acm.org>

	* src/fns.c (internal_equal): Use BASE_EQ where possible.

2022-06-11  Basil L. Contovounesios  <contovob@tcd.ie>

	Recognize processes as a CL type again

	For discussion, see:
	https://lists.gnu.org/r/emacs-devel/2022-06/msg00567.html

	* lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Include process
	as a type, to avoid cl-typep complaining about process objects.

2022-06-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make new fileio test more reliable

	* test/src/fileio-tests.el: Use a unibyte buffer to avoid length
	confusion.

2022-06-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Bump sh-imenu-generic-expression defcustom version

	* lisp/progmodes/sh-script.el (sh-imenu-generic-expression): Bump
	the :version since we changed the value.

2022-06-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix loaddefs installation of packages with no autoloads

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Always
	generate an output file if we have EXTRA-DATA.  This fixes package
	installation of packages with no ;;;###autoload forms.

2022-06-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	fileio-tests.el (test-non-regular-insert): Fix thinko

	* test/src/fileio-tests.el (fileio-tests--non-regular-insert): Rename
	from `test-non-regular-insert` and make it into a test rather than
	a broken function.  Oh, and make it work while at it.

2022-06-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	Bindat: Document `sint`; add `le` arg to `uint`; deprecate `uintr`

	* lisp/emacs-lisp/bindat.el (bindat--type) <uint>: Add `le` optional arg.
	(bindat--type) <uintr>: Delete method.
	(uintr): Re-define as a bindat-macro instead.
	(bindat-type): Update docstring accordingly.
	(bindat--primitives): Update.
	(sint): Simplify.

	* doc/lispref/processes.texi (Bindat Types): Update `uint`, add `sint`,
	and remove `uintr`.

	* test/lisp/emacs-lisp/bindat-tests.el (data-bindat-spec): Use the new
	`le` arg of `uint` instead of `uintr`.

2022-06-11  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Improve Lepcha composition rules and rename its native name

	* lisp/language/indian.el ("Lepcha"): Rename lepcha script
	native name and improve composition rules.  (Bug#55869)

	* etc/HELLO: Rename Lepcha script native name.

2022-06-11  Po Lu  <luangruo@yahoo.com>

	Fix timestamp of special drop events

	* src/xterm.c (x_dnd_send_drop): Set special event timestamp
	to the timestamp of the drop instead of CurrentTime.

2022-06-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow inserting parts of /dev/urandom with insert-file-contents

	* doc/lispref/files.texi (Reading from Files): Document it.
	* src/fileio.c (Finsert_file_contents): Allow specifying END for
	special files (bug#18370).

2022-06-11  Po Lu  <luangruo@yahoo.com>

	Fix some drag-and-drop handling on Haiku

	* lisp/term/haiku-win.el (haiku-drag-and-drop): Don't raise
	frame for some types of drags.

	* src/haikuselect.c (haiku_unwind_drag_message): Don't hide
	tooltip here.
	(Fhaiku_drag_message): Only clear grab and hide tooltip if the
	drag was successful.

2022-06-11  Po Lu  <luangruo@yahoo.com>

	Fix initializers for Haiku scroll bars

	* src/haiku_support.cc (class Emacs):
	(class EmacsScrollBar): Fix initializers.

2022-06-11  Visuwesh  <visuweshm@gmail.com>

	Support mksh-specific function names in imenu

	* lisp/progmodes/sh-script.el (sh-imenu-generic-expression): Add
	mksh-specific function names to imenu-generic-expression
	(bug#55889).

2022-06-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Further tweaks to how remapped commands are described

	* lisp/help.el (describe-map): Rework how remapped commands are
	output to avoid repetitions.

	They're now shown as:

	C-x 4 C-o	ido-display-buffer
	  (Remapped via <remap> <display-buffer>)
	C-x 5 C-o	ido-display-buffer-other-frame
	  (Remapped via <remap> <display-buffer-other-frame>)
	C-x x i		ido-insert-buffer
	  (Remapped via <remap> <insert-buffer>)

2022-06-11  Eli Zaretskii  <eliz@gnu.org>

	Fix doc strings in whitespace.el

	* lisp/whitespace.el (whitespace-style, whitespace-action):
	Untabify the doc strings.  (Bug#55904)

2022-06-11  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Lepcha script (bug#55869)

	* lisp/language/indian.el ("Lepcha"): New language environment.
	Add composition rules for Lepcha. Add sample text and input method.
	* lisp/language/misc-lang.el ("Kharoshthi"): Fix whitespace.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Lepcha.
	* lisp/leim/quail/indian.el ("lepcha"): New input method.

	* etc/HELLO: Add a Lepcha greeting.
	* etc/NEWS: Announce the new language environment.

2022-06-11  Po Lu  <luangruo@yahoo.com>

	Fix queuing already-present selection requests

	* src/xterm.c (x_defer_selection_requests): Move kbd_fetch_ptr
	if possible and fix counter increment order.

2022-06-11  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	0705705ebf Improve documentation of "etags -I"
	0ad8cd40ce Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/e...
	22a832ad82 Mention the #f syntax from cl-prin1
	3fd0854378 Fix file name quoting in tramp-smb.el (do not merge)

2022-06-10  Po Lu  <luangruo@yahoo.com>

	Handle allocation errors when interning large amounts of atoms

	* src/xfns.c (Fx_begin_drag): Catch BadAlloc errors around
	XInternAtoms.

2022-06-10  Po Lu  <luangruo@yahoo.com>

	Prevent crash handling keyboard input from non-frame windows

	* src/xterm.c (handle_one_xevent): Use `dpyinfo' to access xkb
	desc.  (bug#55890)

2022-06-10  Po Lu  <luangruo@yahoo.com>

	Fix canceling DND upon a regular X error

	* src/xterm.c (x_connection_closed): The display isn't dead upon
	a non-IO error, so don't avoid sending messages to clean stuff
	up.

2022-06-10  Dmitry Gutov  <dgutov@yandex.ru>

	elisp-completion-at-point: Replace last usage of 'read'

	* lisp/progmodes/elisp-mode.el (elisp-completion-at-point):
	Replace the last remaining usage of 'read' (bug#55491).

2022-06-10  Juri Linkov  <juri@linkov.net>

	New function isearch-search-fun-in-text-property (bug#14013).

	* lisp/dired-aux.el (dired-isearch-search-filenames): Move most of the body
	to the new function isearch-search-fun-in-text-property.

	* lisp/isearch.el (isearch-search-fun-in-text-property):
	New function refactored from dired-isearch-search-filenames.

2022-06-10  Jim Porter  <jporterbugs@gmail.com>

	Don't use 'list' command in Eshell command forms

	When executed like a command, 'list' looks for external programs named
	'list' first before falling back to the Lisp function of the same
	name.  This causes unexpected behavior, since the Lisp function is
	what we want in these tests.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-cmd-indices)
	(esh-var-test/quoted-interp-cmd-indices): Use 'listify' instead of
	'list'.

2022-06-10  Po Lu  <luangruo@yahoo.com>

	Remove extra call to XTranslateCoordinates when performing "xterm" drop

	* src/xterm.c (x_dnd_do_unsupported_drop): Signal error when
	XdndSelection is lost, set subwindow, and simplify
	XTranslateCoordinates loop.

2022-06-10  Taiju HIGASHI  <higashi@taiju.info>

	Don't reduce vocabulary in ja-dic.el by default

	* configure.ac: Add the "--with-small-ja-dic" configure option.
	* leim/Makefile.in (${leimdir}/ja-dic/ja-dic.el): Change the build
	method depending on whether or not the --with-small-ja-dic option
	is specified.
	* lisp/international/ja-dic-cnv.el (skkdic-convert-okuri-nasi): Add
	the "no-reduction" optional argument.  When it is specified, then
	generate a Japanese dictionary without reduced vocabulary.
	(skkdic-convert): Add the "no-reduction" optional argument.
	(batch-skkdic-convert): Add the "--no-reduction" command line argument.

2022-06-10  Richard Hansen  <rhansen@rhansen.org>

	bindat (strz): Fix documentation for strz with pre-allocated string

	* doc/lispref/processes.texi (Bindat Types): Document that a null
	terminator is not written if `bindat-pack' is given a pre-allocated
	string.

2022-06-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Link find-sibling-file to ff-find-related-file in manual

	* doc/emacs/files.texi (Visiting): Link to ff-find-related-file
	documentation.

2022-06-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix find-sibling-file doc string

	* lisp/files.el (find-sibling-file): Remove incorrect statement
	from doc string (bug#55879).

2022-06-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Make describe-prefix-bindings say when there are no matches

	* lisp/help.el (describe-prefix-bindings): Say when there are no
	bindings under a prefix (bug#55875), for instance in `C-c C-h' in
	a buffer with no `C-c' commands.

2022-06-10  Ignacio Casso  <ignaciocasso@hotmail.com>

	Fix issues with loading autoloaded defcustoms while bound

	* doc/lispref/customize.texi (Variable Definitions)
	(Variable Definitions): Update documentation.

	* lisp/custom.el (custom-initialize-set)
	(custom-initialize-reset): Update doc string.
	(custom-initialize-changed): Use set-default-toplevel-value.  This
	fixes issues with (let ((custom-variable ...))  (autoload-function ...)).
	(custom-set-default): Ditto.

	* src/data.c (Fdefault_boundp): Update doc string.

2022-06-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't put trailing optional nil values into `command-history'

	* src/callint.c (fix_command): Don't put trailing optional nil
	values into `command-history' (bug#45333).

2022-06-10  Mattias Engdegård  <mattiase@acm.org>

	Fix macOS parallel bootstrap error (bug#55846)

	* nextstep/Makefile.in (${ns_appdir}):
	Change to a single-target rule to avoid the same actions being
	executed in parallel.

2022-06-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention the REQUIRE-MATCH extension in NEWS

2022-06-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow specifying a wildcard argument to list-directory again

	* lisp/files.el (list-directory): Allow specifying a wildcard
	argument interactively again (bug#55877).

2022-06-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow REQUIRE-MATCH to be a function

	* doc/lispref/minibuf.texi (Minibuffer Completion): Document it.

	* lisp/minibuffer.el (completion--complete-and-exit): Allow
	REQUIRE-MATCH to be a function.
	(read-file-name): Mention it.

	* src/minibuf.c (Fcompleting_read): Mention it.

2022-06-10  Po Lu  <luangruo@yahoo.com>

	Fix receiving drops from drop-only Motif programs

	* lisp/x-dnd.el (x-dnd-xm-read-targets-table): Fix doc string.
	(x-dnd-handle-motif): Recompute types and state on XmDROP_START
	if no state already exists.

2022-06-10  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of "etags -I"

	* doc/man/etags.1:
	* doc/emacs/maintaining.texi (Create Tags Table): Elaborate on the
	importance of the '-I' option to 'etags'.  (Bug#45246)

2022-06-10  Po Lu  <luangruo@yahoo.com>

	Eliminate extra call to XTranslateCoordinates looking for drop target

	* src/xterm.c (x_dnd_get_target_window): Translate coordinates
	starting from the root window and avoid extra sync.

2022-06-10  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	22a832ad82 Mention the #f syntax from cl-prin1

2022-06-10  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d02c94090c Fix error reporting in process-async-https-with-delay
	9a4862a973 * doc/misc/org.org: Remove spurious markup.
	768ed1476a Make Tramp version check more robust
	7f778c6943 Fix debugging with GDB when a breakpoint has multiple loca...
	25e53e9391 ; * lisp/files.el (file-expand-wildcards): Doc fix.
	3ea9357d10 Update documentation of 'aset' and 'store-substring'

	# Conflicts:
	#	lisp/files.el

2022-06-10  Po Lu  <luangruo@yahoo.com>

	Add tests for x-dnd Motif value parsing logic

	* test/lisp/x-dnd-tests.el: New file.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Don't rely on TARGETS to read selection targets for Motif DND

	* lisp/x-dnd.el (x-dnd-types-alist):
	(x-dnd-known-types): Fix formatting.
	(x-dnd-xm-unpack-targets-table-header):
	(x-dnd-xm-read-single-rec):
	(x-dnd-xm-read-targets-table):
	(x-dnd-xm-read-targets): New functions.
	(x-dnd-handle-motif): Read targets from the targets table
	of the drag window instead of the selection's TARGET target.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Fix crashes in x_tooltip_window_to_frame on GTK

	* src/xterm.c (x_tooltip_window_to_frame): Ignore all non-X
	frames instead of trying to get their tooltip window.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	* src/haikuselect.c (haiku_note_drag_motion): Only handle visible tip_f.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Fix DND tooltip handling with tooltip-reuse-hidden-frame

	* src/xterm.c (x_dnd_update_tooltip_position): Don't move window
	if tip_f is not visible.

2022-06-09  Eli Zaretskii  <eliz@gnu.org>

	Update the 'etags' test suite

	* ETAGS_good_1:
	* ETAGS_good_2:
	* ETAGS_good_3:
	* ETAGS_good_4:
	* ETAGS_good_5:
	* ETAGS_good_6: Adapt to recent changes in test sources.

	* lib-src/etags.c (C_entries): Add commentary for resetting
	bracelev.  (Bug#45246)

2022-06-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust browse-url test after previous browse-url change

2022-06-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Make browse-url-encode-url encode even less

	* lisp/net/browse-url.el (browse-url-encode-url): Don't encode
	dollar signs, because that's out of spec (bug#55873).

2022-06-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve `C-h b' output for remapped commands.

	* lisp/help.el (describe-map): Include the bindings of the
	remapped commands (bug#14084).

	This will result in output like this, instead of just listing the
	remapped commands:

	<remap> <display-buffer>                ido-display-buffer
	C-x 4 C-o                               display-buffer
	<remap> <display-buffer-other-frame>    ido-display-buffer-other-frame
	C-x 5 C-o                               display-buffer-other-frame
	<remap> <insert-buffer>                 ido-insert-buffer
	C-x x i                                 insert-buffer
	<remap> <kill-buffer>                   ido-kill-buffer
	C-x k                                   kill-buffer
	<remap> <switch-to-buffer>              ido-switch-buffer
	C-x b                                   switch-to-buffer
	<remap> <switch-to-buffer-other-frame>  ido-switch-buffer-other-frame
	C-x 5 b                                 switch-to-buffer-other-frame
	<remap> <switch-to-buffer-other-window> ido-switch-buffer-other-window
	C-x 4 b                                 switch-to-buffer-other-window

2022-06-09  Lars Ingebrigtsen  <larsi@gnus.org>

	New setting for mouse-drag-copy-region to not put "" onto kill ring

	* doc/emacs/frames.texi (Mouse Commands): Document it.
	* lisp/mouse.el (mouse-drag-copy-region): Add value (bug#17211)
	for not putting "" strings onto the kill ring.
	(mouse-set-region, mouse-save-then-kill): Use the new value.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Fix recalculation of `icon-title-format' after a frame is iconified

	Previously it would only happen upon the next mode line
	redisplay, meaning that just pressing C-z would not update the
	implicit title, since C-z doesn't cause a redisplay.

	* src/dispextern.h: Update prototypes.
	* src/frame.h (SET_FRAME_ICONIFIED): De-slugify.  Call
	`gui_consider_frame_title', since `icon-title-format' might be
	different from the current frame title.
	* src/xdisp.c (gui_consider_frame_title): Export (also in
	dispextern.h).  (bug#55850)

2022-06-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention the #f syntax from cl-prin1

	* doc/lispref/objects.texi (Special Read Syntax): Mention #f,
	which is in cl-prin1 output (bug#55853).

2022-06-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `line-number-at-pos' work more like in earlier Emacs versions

	* src/fns.c (Fline_number_at_pos): Allow calling with position
	outside the region if called with ABSOLUTE non-nil (bug#55847).
	This isn't announced in the doc string, but makes function
	compatible with the version in earlier Emacs versions.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Never return tooltip frames from ns-begin-drag

	* src/nsterm.m ([EmacsWindow draggedImage:movedTo:]):
	([EmacsWindow beginDrag:forPasteboard...]): Don't return frame
	if tooltip.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Handle monitor attribute updates during drag-and-drop

	* src/xterm.c (x_monitors_changed_cb):
	(handle_one_xevent): Set x_dnd_monitors during monitor changes.

2022-06-09  Stefan Baums  <baums@stefanbaums.com>

	Add support for the Kharoshthi script

	* etc/NEWS: Announce the new language environment and script.
	* etc/HELLO: Add Kharoshthi greeting.

	* lisp/leim/quail/misc-lang.el ("kharoshthi"): New input method.
	* lisp/language/misc-lang.el ("Kharoshthi"): New language
	environment.  Set up composition rules for Kharoshthi.
	(Bug#55539)

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Satisfy GCC warnings on the GNUstep build

	* src/nsfns.m (ns_move_tooltip_to_mouse_location):
	* src/nsterm.m ([EmacsWindow draggedImage:movedTo:]): Pacify GCC.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Disable tooltip timeouts for drag-and-drop tooltips

	* lisp/mouse.el (mouse-drag-and-drop-region-display-tooltip):
	Don't time out the created tooltip.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Implement `follow-tooltip' on NS as well

	* lisp/term/ns-win.el (x-begin-drag): Pass `follow-tooltip'.
	* src/nsfns.m (Fx_show_tip): Record last dx and dy.
	(syms_of_nsfns): New staticpros.
	* src/nsmenu.m ([EmacsTooltip moveTo:]): New method.

	* src/nsselect.m (Fns_begin_drag): New parameter
	`follow-tooltip'.

	* src/nsterm.h (@interface EmacsWindow):
	(EmacsTooltip): Update prototypes.
	* src/nsterm.m ([EmacsWindow draggedImage:movedTo:]): Move any
	tooltip to the right location.
	([EmacsWindow beginDrag:forPasteboard...]): New parameter
	`followTooltip'.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Note caveats of `follow-tooltip' with system tooltips

	* lisp/mouse.el (mouse-drag-and-drop-region): Turn off system
	tooltips inside.
	* src/xfns.c (Fx_begin_drag): Say that follow-tooltip doesn't
	work with system tooltips.

2022-06-09  Richard Hansen  <rhansen@rhansen.org>

	bindat: Improve str, strz documentation

	* doc/lispref/processes.texi (Bindat Types): Expand the documentation
	for the `str' and `strz' types to clarify expectations and explain
	edge case behavior.

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Implement `follow-tooltip' for DND on Haiku

	* lisp/term/haiku-win.el (x-begin-drag): Implement
	`follow-tooltip'.
	* src/haikufns.c (Fx_show_tip): Record last dx and dy.
	(syms_of_haikufns): New staticpros.

	* src/haikuselect.c (haiku_unwind_drag_message): Clear new flag.
	(Fhaiku_drag_message): New argument `follow-tooltip'.  Set new
	flag.
	(haiku_dnd_compute_tip_xy): New function.
	(haiku_note_drag_motion): Move tooltip if flag is true.

	* src/haikuterm.c (haiku_read_socket): Don't generate help event
	if mouse moves onto a tooltip during DND.
	* src/haikuterm.h: Update prototypes.

2022-06-09  Jim Porter  <jporterbugs@gmail.com>

	Account for remapped faces in $COLUMNS and $LINES in Eshell

	* src/window.h (window_body_unit): New enum...
	(window_body_width): ... use it.

	* src/window.c (window_body_unit_from_symbol): New function.
	(window_body_height, window_body_width): Make PIXELWISE a
	'window_body_unit'.
	(window-body-height, window-body-width): Accept 'remap' for PIXELWISE.
	(window-lines-pixel-dimensions, window_change_record_windows)
	(run_window_change_functions, resize_frame_windows, grow_mini_window)
	(shrink_mini_window, scroll-left, scroll-right): Update calls to
	'window_body_height' and 'window_body_width'.

	* src/indent.c (compute_motion): Update calls to 'window_body_width'.

	* lisp/eshell/em-ls.el (eshell-ls-find-column-widths)
	(eshell-ls-find-column-lengths): Use 'window-body-width'.

	* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Use
	'window-body-width' and 'window-body-height'.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/window-height)
	(esh-var-test/window-width): Rename to...
	(esh-var-test/lines-var, esh-var-test/columns-var): ... and update
	expected value.

	* doc/lispref/windows.texi (Window Sizes): Document new behavior of
	PIXELWISE argument for 'window-body-width' and 'window-body-height'.

	* etc/NEWS: Announce this change (bug#55696).

2022-06-09  Eli Zaretskii  <eliz@gnu.org>

	Revert "* src/comp.c (Fcomp_el_to_eln_filename): Update error message."

	This reverts commit ec987e3e1786d06ffd306e5717b4d7fd118f05ac.
	This change was installed on the emacs-28 branch instead.

2022-06-09  Juri Linkov  <juri@linkov.net>

	Allow C-x 4 4, C-x 5 5, C-x t t to handle commands that use switch-to-buffer

	* lisp/window.el (display-buffer-override-next-command):
	Temporarily set switch-to-buffer-obey-display-actions to t,
	and revert back to the original value afterwards.
	This allows other-window-prefix, other-frame-prefix, other-tab-prefix,
	windmove-display-in-direction to override the default behavior of
	commands that use switch-to-buffer.
	https://lists.gnu.org/archive/html/emacs-devel/2022-06/msg00483.html

2022-06-09  Jeff Walsh  <fejfighter@gmail.com>

	* src/comp.c (Fcomp_el_to_eln_filename): Update error message.

2022-06-09  Jeff Walsh  <fejfighter@gmail.com>

	Update error message to reflect variable rename

	* src/comp.c (Fcomp_el_to_eln_filename): Update error message.  (Bug#55861)

2022-06-09  Po Lu  <luangruo@yahoo.com>

	Also show mouse DND tooltip contents during interprogram drag-and-drop

	* doc/lispref/frames.texi (Drag and Drop): Document new
	parameter to `x-begin-drag'.
	* lisp/mouse.el (mouse-drag-and-drop-region): Don't hide tooltip
	when initiating interprogram drag-and-drop.
	* lisp/term/haiku-win.el (x-begin-drag):
	* lisp/term/ns-win.el (x-begin-drag): Add stubs for new
	parameter.
	* src/xfns.c (Fx_begin_drag): New parameter `follow-tooltip'.
	(Fx_show_tip, syms_of_xfns): Add records of the last dx and dy
	given to `x-show-tip'.
	* src/xterm.c (x_clear_dnd_monitors): New function.
	(x_dnd_begin_drag_and_drop): Save monitor attributes list if
	appropriate.
	(x_dnd_compute_tip_xy, x_dnd_update_tooltip_position): New
	function.
	(x_dnd_update_state, handle_one_xevent): Update tooltip position
	during DND mouse movement.
	(syms_of_xterm): Update staticpros.
	* src/xterm.h: Update prototypes.

2022-06-08  Po Lu  <luangruo@yahoo.com>

	Fix dnd-tests on builds without X

	* test/lisp/dnd-tests.el (x-get-selection-internal): New
	function declaration.

2022-06-08  Po Lu  <luangruo@yahoo.com>

	Ignore tooltip frames when looking for DND target

	* src/xterm.c (x_dnd_get_target_window): When not using client
	lists, look beneath any tooltip frame.

2022-06-08  Po Lu  <luangruo@yahoo.com>

	Make use of faster atom intern functions in xselect.c

	* src/xselect.c (symbol_to_x_atom):
	(x_atom_to_symbol): Use x_get_atom_name and
	x_intern_cached_atom.

2022-06-08  Ken Brown  <kbrown@cornell.edu>

	Fix error reporting in process-async-https-with-delay

	* test/src/process-tests.el (process-async-https-with-delay): Use
	'plist-get' instead of 'assq' in testing for a connection error.
	The 'status' variable is a plist, not an alist.  (Bug#55849)

2022-06-08  Juri Linkov  <juri@linkov.net>

	* lisp/rect.el: Return correct positions of region-beginning/end (bug#55234)

	(rectangle-mark-mode): Add advices for region-beginning and region-end.
	(rectangle--region-beginning, rectangle--region-end): New advices.
	(rectangle--extract-region): Let-bind rectangle-mark-mode around
	region-beginning and region-end to use the original functions.

2022-06-08  Robert Pluim  <rpluim@gmail.com>

	Add more super and subscript characters to latin input methods

	* lisp/leim/quail/latin-post.el ("latin-postfix", "latin-prefix"): Add
	missing super and subscript characters.  (Bug#55722)

2022-06-08  Robert Pluim  <rpluim@gmail.com>

	Add fractions to latin-post input method

	* lisp/leim/quail/latin-post.el ("latin-postfix"): Add fractions.

2022-06-08  Robert Pluim  <rpluim@gmail.com>

	Add more ways to enter trade mark and registered sign

	* lisp/international/iso-transl.el (iso-transl-char-map): Add sequence
	for TRADE MARK.
	* lisp/leim/quail/latin-post.el ("latin-postfix"): Add REGISTERED SIGN
	and TRADE MARK.
	* lisp/leim/quail/latin-pre.el ("latin-prefix"): Add TRADE MARK.

2022-06-08  Po Lu  <luangruo@yahoo.com>

	Allow running some DND tests interactively

	* src/xselect.c (x_get_local_selection): Respect new variable.
	(syms_of_xselect): New variable
	`x-treat-local-requests-remotely'.

	* test/lisp/dnd-tests.el (x-begin-drag, gui-set-selection):
	Don't redefine these functions under X.
	(dnd-tests-verify-selection-data): Use
	`x-get-selection-internal' under X.
	(dnd-tests-extract-selection-data): New function.
	(dnd-tests-begin-text-drag): Update accordingly.
	(dnd-tests-begin-file-drag, dnd-tests-begin-drag-files):
	Temporarily skip these tests under X.

2022-06-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Give ,@ a prefix syntax in elisp-mode"

	This reverts commit d003848b5e3ad2dfbe84cc62b99776fdc6734325.

	This leads to hangs in edebug-tests.

2022-06-08  Jim Porter  <jporterbugs@gmail.com>

	Don't split Eshell expansions by line when using split-subscript operator

	* lisp/eshell/esh-var.el (eshell-apply-indices): Use
	'eshell-convert-to-number' instead of 'eshell-convert'.

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/interp-convert-var-split-indices): Expand test
	(bug#55838).

2022-06-08  Nicholas Vollmer  <iarchivedmywholelife@gmail.com>

	* doc/man/emacs.1.in: Add --init-directory.

	* doc/man/emacs.1.in: Document --init-directory (bug#55839).

2022-06-08  Po Lu  <luangruo@yahoo.com>

	Simplify XDND toplevel freeing code

	* src/xterm.c (x_free_dnd_toplevels): New function.
	(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop): Record
	an unwind function to free DND toplevels instead of doing that
	manually everywhere.

2022-06-08  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix last-modified meaning in bookmark.el

	* lisp/bookmark.el (bookmark-update-last-modified): New function
	to update the last-modified field.
	(bookmark-send-edited-annotation, bookmark-relocate)
	(bookmark-rename): Use `bookmark-update-last-modified' in
	annotations editing, relocation and renaming.

2022-06-08  Lars Ingebrigtsen  <larsi@gnus.org>

	icomplete-in-buffer doc fix

	* lisp/icomplete.el (icomplete-in-buffer): dabbrev now uses
	icomplete-in-buffer (bug#45764).

2022-06-08  Stefan Kangas  <stefankangas@gmail.com>

	* doc/misc/org.org: Remove spurious markup.

2022-06-08  Michael Albinus  <michael.albinus@gmx.de>

	Make Tramp version check more robust

	* lisp/net/trampver.el (tramp-repository-branch)
	(tramp-repository-version): Check for "git" executable.

2022-06-08  Michael Albinus  <michael.albinus@gmx.de>

	Factor out test configuration for remote files

	* lisp/emacs-lisp/ert-x.el (tramp-methods)
	(tramp-default-host-alist): Declare.
	(ert-remote-temporary-file-directory): New defconst.

	* test/README: Mention dnd-tests.el.

	* test/lisp/autorevert-tests.el
	(auto-revert-test-remote-temporary-file-directory): Remove.
	Replace all uses by `ert-remote-temporary-file-directory'.

	* test/lisp/dnd-tests.el (ert-x): Require.
	(dnd-tests-temporary-file-directory): Remove.  Replace all uses by
	`ert-remote-temporary-file-directory'.

	* test/lisp/filenotify-tests.el
	(file-notify-test-remote-temporary-file-directory): Remove.
	Replace all uses by `ert-remote-temporary-file-directory'.

	* test/lisp/shadowfile-tests.el (ert-x): Require.
	(shadow-test-remote-temporary-file-directory): Remove.  Replace
	all uses by `ert-remote-temporary-file-directory'.

	* test/lisp/net/tramp-tests.el: Don't require ert.
	(ert-remote-temporary-file-directory): Define if it doesn't exist.
	(tramp-test-temporary-file-directory): Remove.  Replace all uses
	by `ert-remote-temporary-file-directory'.

2022-06-08  Mattias Engdegård  <mattiase@acm.org>

	Preserve doc string in `byte-compile` (bug#55830)

	* lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function):
	Don't transpose doc string and interactive spec, which must come
	in this order.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-function-attributes): New test.

2022-06-08  Po Lu  <luangruo@yahoo.com>

	Make responding to selection requests work inside popups

	* src/xfns.c (Fx_file_dialog):
	* src/xmenu.c (x_menu_wait_for_event, create_and_show_popup_menu)
	(create_and_show_dialog, x_menu_show): Defer selection requests.
	* src/xselect.c (x_get_foreign_selection)
	(x_handle_selection_notify): Add some more info to selection
	trace.

	* src/xterm.c (x_defer_selection_requests): Make non-static.
	(x_release_selection_requests_and_flush): New function.
	(x_dnd_begin_drag_and_drop): Use DEFER_SELECTIONS instead.
	(x_wait_for_cell_change): Fix initial value of rc for pushed
	back events.
	(handle_one_xevent): Allow GTK to respond to selections in its
	windows too.

	* src/xterm.h (DEFER_SELECTIONS): New slug of code.

2022-06-08  Po Lu  <luangruo@yahoo.com>

	Fix quitting in one go out of `mouse-drag-and-drop-region'

	* src/xterm.c (x_dnd_begin_drag_and_drop): Make sure
	handle_interrupt is called inside the nested event loop upon a
	quit event.

2022-06-07  Po Lu  <luangruo@yahoo.com>

	Fix crash with outdated selection requests

	* src/xselect.c (x_handle_selection_request): Don't store into
	stack if it wasn't previously pushed.

2022-06-07  Po Lu  <luangruo@yahoo.com>

	Improve drag-and-drop tests

	* lisp/dnd.el (dnd-begin-file-drag, dnd-begin-drag-files): Fix
	type of `x-xdnd-username'.
	* lisp/select.el (selection-converter-alist): Fix declaration of
	_DT_NETFILE converter.

	* test/lisp/dnd-tests.el (dnd-tests-verify-selection-data):
	Handle "compound" selection converters.
	(dnd-tests-parse-tt-netfile): New function.
	(dnd-tests-begin-file-drag, dnd-tests-begin-drag-files): Verify
	validity of file selection data.

2022-06-07  Po Lu  <luangruo@yahoo.com>

	More fixes to mouse event reporting during drag-and-drop

	* src/xterm.c (x_dnd_begin_drag_and_drop): Don't reset
	dpyinfo->grabbed when quitting.
	(handle_one_xevent): Keep track of dpyinfo->grabbed as well
	inside the drag-and-drop event loop.

2022-06-07  Dmitry Gutov  <dgutov@yandex.ru>

	pcomplete-parse-arguments: Fix last change

	* lisp/pcomplete.el (pcomplete-parse-arguments):
	Throw the previous value of 'pcomplete-stub' (a list) rather than
	the newly constructed one (bug#50470).

2022-06-07  Juri Linkov  <juri@linkov.net>

	* doc/emacs/vc1-xtra.texi (Customizing VC): Remove deprecated Mtn.

2022-06-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Give ,@ a prefix syntax in elisp-mode

	* lisp/progmodes/elisp-mode.el (elisp-mode-syntax-propertize):
	Give ,@ a prefix syntax so that we can properly identify symbols
	that follow it, i.e., ,@foo (bug#44418).

2022-06-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Demote extended attribute errors in basic-save-buffer-2

	* lisp/files.el (basic-save-buffer-2): Give demoted errors when
	reading extended attributes that fail (bug#43723).

2022-06-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

	This is the first check-in after the loaddefs-gen.el rewrite.

2022-06-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove Mtn from vc-handled-backends

	* lisp/vc/vc-hooks.el (vc-handled-backends): Remove the deprecate
	vc-mtn backend.

2022-06-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix loaddefs-generate--rubric recorded name

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric): Fix
	the name that's recorded in the file -- this is only used by
	loaddefs-gen now, I think.

2022-06-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make artist-mode work in zoomed buffers

	* lisp/textmodes/artist.el (artist-mouse-draw-continously):
	(artist-mouse-draw-continously):
	(artist-mouse-draw-poly):
	(artist-mouse-draw-1point):
	(artist-mouse-draw-2points):
	(artist-mouse-draw-2points): Work better when the window is zoomed
	(bug#46035).

2022-06-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow posn-col-row to return data on a per-window basis

	* doc/lispref/commands.texi (Accessing Mouse): Document it.
	* lisp/subr.el (posn-col-row): Extend to use window data.

2022-06-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow hooks to alter the process in prolog-ensure-process

	* lisp/progmodes/prolog.el (prolog-ensure-process): Start the mode
	after starting the process, so that the mode hook can talk to the
	process (bug#46003).

2022-06-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	find-func.el: Fix bug#41104

	* lisp/emacs-lisp/find-func.el (find-function-advised-original): Look
	at the actual function definition rather than
	`advice--symbol-function` which sometimes returns only the advice.

	* test/lisp/emacs-lisp/find-func-tests.el
	(find-func-tests--find-library-verbose): Add test.

2022-06-07  Po Lu  <luangruo@yahoo.com>

	Add selection stuff to DND tests

	* test/lisp/dnd-tests.el (dnd-tests-selection-table): New
	defvar.
	(gui-set-selection): Actually implement in a way that validates
	the local value and stores it for future use.
	(dnd-tests-verify-selection-data): New function.
	(dnd-tests-begin-text-drag): Add tests for the contents of
	various selections.

2022-06-07  Eli Zaretskii  <eliz@gnu.org>

	Fix debugging with GDB when a breakpoint has multiple locations

	* lisp/progmodes/gdb-mi.el (gdb-breakpoints--add-breakpoint-row):
	New function, extracted from 'gdb-breakpoints-list-handler-custom'.
	Don't print "in <unknown>" for header-rows of breakpoints with
	multiple locations that don't have a function name attached.
	(gdb-breakpoints-list-handler-custom): Add to the breakpoint table
	also any locations in multiple-location breakpoints, which are
	supported since GDB 6.8.

2022-06-07  Po Lu  <luangruo@yahoo.com>

	Fix coding style of some Haiku files

	* src/haiku_support.cc: (FrameResized):
	(class EmacsView, AfterResize): Fix coding and initializer
	style.

	* src/haiku_support.h (struct haiku_resize_event): Rename
	confusingly named fields.
	* src/haikuterm.c (haiku_read_socket): Update accordingly.

2022-06-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Simplify mode line for vc-print-root-log

	* lisp/vc/vc.el (vc-print-root-log): Don't display "from <file>"
	(bug#45007).

2022-06-07  Po Lu  <luangruo@yahoo.com>

	Fix more bugs with DND selection handling

	* src/xterm.c (x_defer_selection_requests)
	(x_release_selection_requests): New functions.
	(x_dnd_begin_drag_and_drop): Use those functions to defer
	selections instead.  Fix error signaled when ownership of
	XdndSelection is lost.
	(handle_one_xevent): Likewise.

2022-06-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify highlight-changes-rotate-faces doc string

	* lisp/hilit-chg.el (highlight-changes-rotate-faces): Doc string
	clarification (bug#44150).

2022-06-07  Po Lu  <luangruo@yahoo.com>

	Remove mentions of GNOME MediaKeys from dbus documentation examples

	* doc/misc/dbus.texi (Properties and Annotations):
	* lisp/net/dbus.el (dbus-get-all-managed-objects): Remove
	mentions of obsolete GNOME APIs from example text.

2022-06-07  Po Lu  <luangruo@yahoo.com>

	Improve compatibility with some clients of the Motif drop protocol

	* lisp/select.el (x-dnd-targets-list): New defvar.
	(xselect-convert-to-targets): Convert XdndSelection based on the
	DND targets list.
	* src/xfns.c (Fx_begin_drag): Pass new argument.
	* src/xselect.c (struct x_selection_request): New struct.
	(x_push_current_selection_request):
	(x_pop_current_selection_request): New functions.
	(x_selection_request_lisp_error, x_reply_selection_request)
	(x_handle_selection_request, x_convert_selection)
	(syms_of_xselect_for_pdumper): Correctly handle recursive
	requests for MULTIPLE by maintaining a stack of selection
	requests, converted selections, and other data.
	* src/xterm.c (x_dnd_begin_drag_and_drop): New argument
	`selection_target_list'.  Bind it to the DND targets list.
	(syms_of_xterm): New defvar and associated defsym.
	* src/xterm.h: Update prototypes.

2022-06-07  Po Lu  <luangruo@yahoo.com>

	Add new drag-and-drop test

	* test/lisp/dnd-tests.el (dnd-tests-get-local-file-uri): New
	test.

2022-06-07  Po Lu  <luangruo@yahoo.com>

	Fix leak of event data on GTK+ 2.x

	* src/xterm.c (handle_one_xevent): Fix goto XI_OTHER for
	valuator motion events generated on scroll bars.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Update Haiku drag-and-drop code

	* lisp/term/haiku-win.el (haiku-drag-and-drop): Don't allow
	dropping on places other than the text area (it doesn't work).
	Also respect mouse-yank-at-point.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Don't allow dropping on invalid drop sites

	* lisp/x-dnd.el (x-dnd-drop-data): If dropping on something
	other than the text area, don't set point.
	(x-dnd-handle-xdnd, x-dnd-handle-motif): Don't pretend dropping
	on the mode line is ok.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Don't display mouse face during mouse drag-and-drop

	* lisp/mouse.el (mouse-drag-and-drop-region): Don't display
	mouse face, since it leads to a lot of flicker.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Prevent crashes with very large Motif targets tables

	* src/xterm.c (xm_setup_dnd_targets): Catch errors around
	xm_write_targets_table lest we get a BadAlloc error.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Fix two crashes when a display connection is lost

	This fixes errors caused by invalid error traps being left on
	the error handler stack if an IO error causes a non-local exit
	out of the protected code, and another crash caused by
	delete_frame trying to read async input.

	* src/eval.c (unwind_to_catch, push_handler_nosignal): Save and
	restore the X error handler stack.
	* src/lisp.h (struct handler): [HAVE_X_WINDOWS]: New field
	`x_error_handler_depth'.

	* src/xterm.c (struct x_error_message_stack): Make string a
	regular string.
	(x_unwind_errors_to): New function.
	(x_error_catcher, x_catch_errors_with_handler)
	(x_uncatch_errors_after_check, x_uncatch_errors): Update the
	stack depth.
	(x_check_errors): Stop manually unwinding since unwind_to_catch
	now does that for us.
	(x_had_errors_p, x_clear_errors): Update for new type of
	`string'.
	(x_connection_closed): Block input between just before
	delete_frame to when the terminal is unlinked.

	* src/xterm.h: Update prototypes.

2022-06-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix execute-extended-command help text for remapped commands

	* lisp/simple.el (execute-extended-command): Don't provide
	misleading help text for remapped commands (bug#23543).

2022-06-06  Stephen Berman  <stephen.berman@gmx.net>

	Allow using xref buttons in non-*Help* buffers

	* lisp/help-mode.el (help-buffer): Allow using the xref buttons in
	non-*Help* buffers (bug#8147) (but display the result in a *Help*
	buffer).

2022-06-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make find-file-noselect not pick buffers with broken symlinks

	* lisp/files.el (find-buffer-visiting): Improve doc string.
	(find-file-noselect): Don't pick buffers with broken symlinks,
	because that's too confusing (bug#41414).

2022-06-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve scheme-mode syntax-rules indentation

	* lisp/progmodes/scheme.el (syntax-rules): Indent syntax-rules
	with a parameter better (bug#40869).

2022-06-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve find-sibling-file error reporting

	* lisp/files.el (find-sibling-file): Improve error reporting.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Update comments in X error handling code

	* src/xterm.c (struct x_error_message_stack, x_error_message)
	(x_error_catcher, x_catch_errors, x_had_errors_p)
	(x_clear_errors): Long-overdue comment update.  Describe the
	fields of the error message stack, and the fact that
	`x_error_message' is a stack, not a pointer to a string (which
	has been true since 2006).  Also describe the updated conditions
	used to find an applicable error handler and to call
	x_uncatch_errors_after_check.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Add drag-and-drop API tests

	* test/lisp/dnd-tests.el: New file.
	(dnd-tests-begin-text-drag):
	(dnd-tests-begin-file-drag):
	(dnd-tests-begin-drag-files): New tests.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Improve handling of remote files during drag-and-drop

	* lisp/dnd.el (dnd-begin-drag-files): Don't fail if one remote
	file couldn't be downloaded.

2022-06-06  Mattias Engdegård  <mattiase@acm.org>

	Test warning suppressions with lexical binding

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(test-byte-comp-compile-and-load): Add lexical cookie to file being
	compiled as part of the test.
	(bytecomp-test--with-suppressed-warnings): Comment out the test
	for suppressing warnings when attempting to let-bind `nil`,
	as that (1) doesn't work and (2) is a silly thing to do anyway.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Fix several more issues with running Lisp during drag-and-drop

	* src/xterm.c (handle_one_xevent): Fix _NET_WM_PING cycle again
	and set mouse_moved flags during drag-and-drop so reading mouse
	events from Lisp continues to work.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Signal an error XdndSelection was lost during drag-and-drop

	* src/xselect.c (x_handle_selection_clear): Signal an error if
	ownership of XdndSelection was lost during drag-and-drop.

2022-06-06  Po Lu  <luangruo@yahoo.com>

	Make mouse input work properly inside the debugger during DND

	* src/xterm.c (x_dnd_begin_drag_and_drop): Set
	`x_dnd_recursion_depth'.
	(handle_one_xevent): If the recursive edit level is higher than
	when DND started, handle mouse events normally.

2022-06-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-typep: Emit warning when using a type not known to be a type

	`cl-typep` has used a heuristic that if there's a `<foo>-p` function,
	then <foo> can be used as a type.  This made sense in the past where
	most types were not officially declared to be (cl-)types, but nowadays
	this just encourages abuses such as using `cl-typecase` with
	"types" like `fbound`.  It's also a problem for EIEIO objects, where
	for historical reasons `<foo>-p` tests if the object is of type
	exactly `<foo>` whereas (cl-typep OBJ <foo>) should instead test
	if OBJ is a *subtype* of `<foo>`.

	So we change `cl-typep` to emit a warning whenever this "-p" heuristic
	is used, to discourage abuses, encourage the use of explicit
	`cl-deftype` declarations, and try and detect some misuses of
	`<foo>-p` for EIEIO objects.

	* lisp/emacs-lisp/eieio.el (defclass): Define as type not only at
	run-time but also for the current compilation unit.

	* lisp/emacs-lisp/eieio-core.el (class, eieio-object): Define as types.

	* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Don't abuse the
	"-p" heuristic.

	* lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies):
	Add entries for frames, windows, markers, and overlays.
	(cl-typep): Emit a warning when using a predicate that is not known to
	correspond to a type.

	* lisp/files.el (file-relative-name): Fix error that can trigger if
	there's an(other) error between loading `files.el` and loading
	`minibuffer.el`.

2022-06-05  Po Lu  <luangruo@yahoo.com>

	Rework X selections to make it safe to run the debugger inside converters

	* src/keyboard.c (prev_kbd_event): Delete function.
	(readable_events): Return 1 if
	x_detect_pending_selection_requests returns true.
	(kbd_buffer_unget_event): Also delete function, since nested
	selection requests are really handled correctly.
	(kbd_buffer_get_event): Handle events from the special X
	deferred selection queue as well.

	* src/keyboard.h: Update prototypes.

	* src/xselect.c (struct selection_event_queue)
	(selection_input_event_equal, x_queue_event)
	(x_start_queuing_selection_requests)
	(x_stop_queuing_selection_requests): Delete structs, since they
	are no longer required.
	(x_handle_selection_request, x_handle_selection_event): Allow
	nested selection events.

	* src/xterm.c (struct x_selection_request_event): New struct.
	(x_handle_pending_selection_requests_1)
	(x_handle_pending_selection_requests): Handle all events in the
	new selection event queue.
	(x_push_selection_request, x_detect_pending_selection_requests):
	New functions.
	(x_dnd_begin_drag_and_drop): Drain the selection queue here as
	well.
	(handle_one_xevent): When inside a nested event loop, just push
	selections to that queue.
	(XTread_socket): Allow reading X events if x_dnd_unwind_flag is
	true, even though DND is in progress.
	(x_delete_display): Delete pending selection events for the
	display that is going away.

	* src/xterm.h: Update prototypes.

2022-06-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	pcomplete.el: Fix part of bug#50470

	Try and handle the case where `pcomplete-parse-arguments-function`
	directly returns a list of completions.

	* lisp/pcomplete.el (pcomplete-parse-arguments): Don't modify the
	buffer if we're not allowed to.  Instead use the buffer's current
	content as the "pattern to be completed" and return the list
	of completions as is.  Also, use `try-completions` to simplify the
	previous code.

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Add nohandle-guide images for tree-widget

	These are copies of the guide.* files

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Re-re-fix previous describe-function change

	* lisp/help-fns.el (describe-function): Put back binding removed
	by mistake in previous change.

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix key binding buffer issue in describe-function better

	* lisp/help-fns.el (describe-function): Revert previous change here.
	(describe-function-1): Just use describe-function-orig-buffer
	instead of the key-buffer binding -- this will also make the
	rendering results correct when hitting `g' and `l'.

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify syntax-ppss doc string

	* lisp/emacs-lisp/syntax.el (syntax-ppss): Clarify doc string.

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Simplify set-goal-column

	* lisp/simple.el (set-goal-column): Simplify the code.

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-h f' look up key bindings in the current buffer again

	* lisp/help-fns.el (describe-function): Pass in the correct buffer
	to look up key bindings in.
	(describe-function-1): Use it.

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the goal column work for the scrolling commands, too

	* doc/emacs/basic.texi (Moving Point): Document it.
	* lisp/simple.el (set-goal-column): Update doc string.

	* lisp/window.el (scroll-up-command, scroll-down-command): Make
	the goal column take effect for these commands, too (bug#17346).

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Move two more variables from autoload.el to loaddefs-gen.el

	* lisp/emacs-lisp/loaddefs-gen.el (generated-autoload-file)
	(generated-autoload-load-name): Move the remaining two autoload.el
	variables used by loaddefs-gen.el from autoload.el.

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Make finder/cus-dep scraping use generate-lisp-file functions

	* lisp/finder.el (finder-compile-keywords):
	* lisp/cus-dep.el (custom-make-dependencies): Use
	generate-lisp-file functions directly instead of piggy-backing on
	the autoload.el functions.  (This is part of making autoload.el obsolete.)

2022-06-05  Stefan Kangas  <stefankangas@gmail.com>

	Don't generate separate autoload file for htmlfontify

	* lisp/hfy-cmap.el: Update file local to no longer put htmlfontify
	autoloads in htmlfontify-loaddefs.el.
	* lisp/htmlfontify.el (htmlfontify-loaddefs): Don't require.
	* test/lisp/htmlfontify-tests.el (htmlfontify-autoload): Delete
	test (bug#52400).

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename generate-file to generate-lisp-file

	* lisp/url/url-cookie.el (url-cookie-write-file):
	* lisp/international/titdic-cnv.el (tit-process-header)
	(miscdic-convert):
	* lisp/international/ja-dic-cnv.el (skkdic-convert):
	* lisp/international/emoji.el (emoji--generate-file):
	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric):
	* admin/unidata/unidata-gen.el (unidata-gen-file)
	(unidata-gen-charprop): Adjust callers.

	* lisp/emacs-lisp/generate-lisp-file.el: Renamed from
	generate-file.el.  Also rename some keyword parameters and require
	a generator function.

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Add convenience functions for generating Emacs Lisp files

	* lisp/url/url-cookie.el (url-cookie-write-file):
	* lisp/international/titdic-cnv.el (tit-process-header):
	* lisp/international/ja-dic-cnv.el (skkdic-convert):
	* lisp/international/emoji.el (emoji--generate-file):
	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric)

	* admin/unidata/unidata-gen.el (unidata-gen-file)
	(unidata-gen-charprop): Use the new functions.

	* lisp/emacs-lisp/generate-file.el: New file to provide
	convenience functions for generated files.  It's not always
	trivial to know which parts of the trailer that has to be
	obfuscated to avoid not getting byte-compiled etc, and some parts
	of the headers/trailers are usually forgotten when hand-coding
	these.

2022-06-05  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add a fallback font for Tamil Supplement characters

	* lisp/international/fontset.el (setup-default-fontset): Add
	and entry for "Noto Sans Tamil Supplement".  (Bug#55807)

2022-06-05  JD Smith  <jdtsmith@gmail.com>  (tiny change)

	Make the Unicode tree widget prettier

	* lisp/tree-widget.el (tree-widget-nohandle-guide): New widget:
	"One small change is needed to accommodate this
	style. `tree-widget-guide’ specifies a single vertical bar “guide”
	widget. In the unicode tree, two separate vertical bars are needed
	— one “plain” (│), and one which connects to the horizontal
	“handle” preceding the node (├)."
	(tree-widget--cursors):
	(tree-widget):
	(tree-widget-value-create): Use it.

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new command find-sibling-file

	* doc/emacs/files.texi (Visiting): Document it.
	* lisp/files.el (file-expand-wildcards): Fix up the regexp expansion.
	(find-sibling-rules, find-sibling-file): New user option and command.
	(find-sibling-file--search): New helper function.

2022-06-05  Po Lu  <luangruo@yahoo.com>

	Fix file name encoding of Motif drop protocol file selections

	* lisp/select.el (xselect-convert-to-filename):
	(xselect-convert-to-dt-netfile): Encode in the file name coding
	system instead of `raw-text-unix'.

2022-06-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Extend file-expand-wildcards to allow regexps

	* doc/lispref/files.texi (Contents of Directories): Document it.
	* lisp/files.el (file-expand-wildcards): Extend to allow regexps.

	* lisp/emacs-lisp/shortdoc.el (file): Expand the
	file-expand-wildcards example.

2022-06-05  Eli Zaretskii  <eliz@gnu.org>

	Update documentation of 'aset' and 'store-substring'

	* doc/lispref/strings.texi (Modifying Strings): Adjust to
	implementation changes: it is possible for the modified string to
	have fewer or more bytes than the original.  Add recommendations
	regarding unibyte vs multibyte strings and characters.  (Bug#55801)

2022-06-05  Po Lu  <luangruo@yahoo.com>

	Fix drag-and-drop of files with multibyte filenames

	* lisp/dired.el (dired-mouse-drag): Fix re-signaling of errors.

	* lisp/select.el (xselect-convert-to-filename):
	(xselect-convert-to-text-uri-list):
	(xselect-convert-to-dt-netfile): Encode in raw-text-unix.

	* src/xgselect.c (suppress_xg_select, release_xg_select): New
	functions.
	(xg_select): Respect xg_select suppression by delegating to
	pselect.
	* src/xgselect.h: Update prototypes.

	* src/xterm.c (x_dnd_begin_drag_and_drop): Suppress xg_select
	during the nested event loop.
	(handle_one_xevent): Handle cases where hold_quit is nil inside
	a selection event handler during DND.

2022-06-05  Eli Zaretskii  <eliz@gnu.org>

	Fix sorting in ls-lisp.el under -v

	* lisp/ls-lisp.el (ls-lisp-version-lessp): Handle correctly the
	case where strings begin with numerical parts.  More faithful
	implementation of the 'strverscmp' spec for fractional parts.
	(Bug#55787)

	* test/lisp/ls-lisp-tests.el (ls-lisp-test-bug55787): New test.

2022-06-05  Po Lu  <luangruo@yahoo.com>

	Fix bug#55779

	* src/xterm.c (x_update_opaque_region): Don't make GTK reset the
	opaque region if F is a child frame.

2022-06-05  Po Lu  <luangruo@yahoo.com>

	Better respect window manager stacking order

	* src/xfns.c (x_frame_list_z_order, Fx_frame_list_z_order): Use
	_NET_CLIENT_LIST_STACKING if supported.
	* src/xterm.c (x_wm_supports_1): New function.  Accept dpyinfo
	instead of frame.
	(x_wm_supports): Use that function instead.

	* src/xterm.h: Update prototypes.

2022-06-05  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1b8719835a Update to Org 9.5.4
	92c5faafd7 Clarify documentation of 'string-to-unibyte'
	2848512654 ; * lisp/files.el (find-file): Avoid too short lines in do...
	672f9f787f Improve keystrokes in doc strings in some find-file functions
	ef5651cc77 Fix segfaults when starting on 80x26 TTY frames
	bfa647972f ; Fix doc string of 'delete-selection-repeat-replace-region'
	a95d46e00f Make it explicit that a couple of _s in lispref are unders...
	5c74c25123 Remove from FAQ the MS-Windows info about BDF fonts
	edb48646f2 Fix Display Property manual example

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Fix positioning of non-system tooltips on GTK builds

	* src/xfns.c (compute_tip_xy): Fix coding style.
	* src/xterm.c (handle_one_xevent): Set tooltip size immediately
	on GTK builds.

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Adjust last change for GTK+ 2.x

	* src/xterm.c (x_tooltip_window_to_frame): Fix build on GTK 2.x.

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Make `mouse-position' work correctly with GTK tooltips

	* src/xterm.c (x_tooltip_window_to_frame): New parameter
	`unrelated_tooltip_p'.
	(XTmouse_position): Pass that, and if it turns out to be true,
	look beneath the tooltip window.

2022-06-04  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.5.4

2022-06-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make loaddefs-generate--parse-file more robust

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
	Ensure that we don't have an autoload cookie on the first column
	inside a string.

2022-06-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make skkdic-convert replacements literal

	* lisp/international/ja-dic-cnv.el (skkdic-convert): The
	replacement is literal and fixed-case.  (The build on EMBA is
	failing mysteriously with "Match data clobbered by buffer
	modification hooks", so this is mainly a stab in the dark at
	fixing that, but it's also generally correct.)

2022-06-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make vc-mtn obsolete

	* lisp/obsolete/vc-mtn.el: Make obsolete (bug#6513).

2022-06-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix failing shortdoc test

	* lisp/emacs-lisp/shortdoc.el (string): Each example section is
	supposed to contain only examples of using the function in
	question (as policed by the FAILED  shortdoc-examples test).

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Fix error during DND from both Emacs and GTK at the same time

	* src/xterm.c (x_dnd_get_target_window): Make mapping and
	releasing the COW atomic.  This is to fix a rare bug when
	MPX (multi-pointer X) is in use and the user tries to drag
	from both GTK and Emacs at the same time using multiple seats.

2022-06-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Further raise-sexp doc string improvement

	* lisp/emacs-lisp/lisp.el (raise-sexp): Fix the key binding syntax
	in the doc string.

2022-06-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the raise-sexp doc string

	* lisp/emacs-lisp/lisp.el (raise-sexp): Try to explain what the
	command does (bug#55788).

2022-06-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix warnings introduced by the lisp-mode-autoload-regexp change

	* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): The package name bit
	in ###;;;foo-autoload may be missing, so do a lax match (bug#55784).

2022-06-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a face to \\= doc string escapes

	* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Add a face to \\= doc
	string escapes (bug#55783).

2022-06-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Further notes about quotation marks in the manual

	* doc/lispref/tips.texi (Documentation Tips): Note that we
	previously recommended using single quotation marks (bug#55780).

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Allow keyboard modifiers to control the action taken during dired DND

	* doc/emacs/dired.texi (Misc Dired Features): Update
	documentation.
	* lisp/dired.el (dired-mouse-drag-files): Update defcustom for
	new values.
	(dired-mouse-drag): Recognize more values of
	`dired-mouse-drag-files' and keyboard modifiers.
	(dired-mouse-drag-files-map): Add C-down-mouse-1, M-down-mouse-1
	and S-down-mouse-1.

2022-06-04  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/emacs-lisp/shortdoc.el (string): Add `string-collate-lessp'.

2022-06-04  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Grantha script (bug#55782)

	* lisp/language/indian.el ("Grantha"): New language environment.
	Add composition rules for Grantha. Add sample text and input method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Grantha.
	* lisp/leim/quail/indian.el ("grantha"): New input method.

	* etc/HELLO: Add two Grantha greetings.
	* etc/NEWS: Announce the new language environment.

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Fix file drag-and-drop on GNUstep

	* src/nsselect.m (ns_decode_data_to_pasteboard): Convert URL to
	path names when we're using NSFilenamesPboardType.
	* src/nsterm.m: ([EmacsView performDragOperation:]): Handle
	cases where plist is a string.

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Support dragging multiple files on NS

	This has to use a deprecated pasteboard type, since Emacs uses
	the "old" (but not deprecated) dragImage: method for
	drag-and-drop, which can't drop file URLs.

	* lisp/term/ns-win.el (x-begin-drag): Update accordingly.
	* src/nsselect.m (ns_decode_data_to_pasteboard):
	(Fns_begin_drag): Allow files to be a list of filenames as well.

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Fix splurious drag-mouse-1 events after NS drag-and-drop

	* src/nsterm.m ([EmacsWindow beginDrag:...]): Clear
	dpyinfo->grabbed.

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Clear mouse face during drag-and-drop

	* src/xterm.c (handle_one_xevent): Clear mouse face during drag
	and drop, since note_mouse_highlight isn't called.

2022-06-04  Eli Zaretskii  <eliz@gnu.org>

	Clarify documentation of 'string-to-unibyte'

	* doc/lispref/nonascii.texi (Converting Representations): Clarify
	what 'string-to-unibyte' does.  Reported by Richard Hansen
	<rhansen@rhansen.org>.  (Bug#55777)

2022-06-04  Eli Zaretskii  <eliz@gnu.org>

	Another attempt to void compiler warnings on macOS (bug#55595)

	* configure.ac (WERROR_CFLAGS): Use "-Wno-unknown-pragmas" with
	Clang.

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Improve doc of `mouse-drag-mode-line-buffer'

	* doc/emacs/frames.texi (Mouse Commands): Document
	`mouse-drag-mode-line-buffer'.
	* etc/NEWS: Explain where that option is supported.
	* lisp/mouse.el (mouse-drag-mode-line-buffer): Likewise.

2022-06-04  Po Lu  <luangruo@yahoo.com>

	Make XTmouse_position faster during dragging with lots of frames

	* src/xterm.c (x_tooltip_window_to_frame): New function.
	(XTmouse_position): Use that to find tooltip frames underneath
	the pointer instead.

2022-06-03  Po Lu  <luangruo@yahoo.com>

	Fix leak of toplevel data

	* src/xterm.c (x_dnd_compute_toplevels): Make sure to free
	`data'.

2022-06-03  Po Lu  <luangruo@yahoo.com>

	Fix leak of DND toplevels when return-frame is non-nil

	* src/xterm.c (x_dnd_free_toplevels): Don't leak DND toplevels
	if returning a frame.
	(x_dnd_begin_drag_and_drop): Make this function reentrant from
	the IO error handler.

2022-06-03  Dmitry Gutov  <dgutov@yandex.ru>

	Post-review additions

	* lisp/progmodes/project.el (project-vc-include-untracked):
	Add :version.
	(project--vc-list-files): Use 'and' instead of 'when'.

2022-06-03  Jan Synáček  <jan.synacek@gmail.com>

	Add new user option project-vc-include-untracked

	* doc/emacs/maintaining.texi (Projects): Document it.
	* lisp/progmodes/project.el (project--vc-list-files): Use it.

2022-06-03  Dmitry Gutov  <dgutov@yandex.ru>

	project-query-replace-regexp: Filter out non-regular files

	* lisp/progmodes/project.el (project-query-replace-regexp):
	Filter out non-regular files (bug#55382).

2022-06-03  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp test

	* test/lisp/net/tramp-tests.el (tramp-test31-signal-process):
	Skip on MS Windows.

2022-06-03  Michael Albinus  <michael.albinus@gmx.de>

	Add remote file functions to shortdoc

	* lisp/net/tramp-integration.el (shortdoc-add-function)
	(shortdoc--groups): Declare.
	(shortdoc): Configure shortdoc.el to recognize file name functions
	for remote access.

2022-06-03  Po Lu  <luangruo@yahoo.com>

	Fix dired drag and drop actions

	* lisp/dired.el (dired-mouse-drag): Make `link' values work
	again.

2022-06-03  Po Lu  <luangruo@yahoo.com>

	Handle dragging multiple files on Haiku

	* lisp/term/haiku-win.el (haiku-dnd-selection-converters)
	(haiku-dnd-convert-file-name, x-begin-drag): Handle vector
	values of selection data.

2022-06-03  Po Lu  <luangruo@yahoo.com>

	Allow dragging multiple files from a Dired buffer

	* doc/lispref/frames.texi (Drag and Drop): Document new function
	`dnd-begin-drag-files'.
	* lisp/dired.el (dired-mouse-drag-files): Update doc string.
	(dired-map-over-marks): Accept a new value of ARG `marked',
	meaning to not fall back to the current file if no marks were
	found.
	(dired-mouse-drag): Handle marked files in an intuitive way.

	* lisp/dnd.el (dnd-last-dragged-remote-file): Allow list values
	as well.
	(dnd-remove-last-dragged-remote-file): Handle list values.
	(dnd-begin-file-drag): Fix file name expansion.
	(dnd-begin-drag-files): New function.
	* lisp/select.el (xselect-convert-to-filename): Handle multiple
	files
	(a vector of file names):.

2022-06-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't issue warnings for Unicode quotes for now

	* lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-style-warn):
	Remove warning for "Unicode quotes" for now (bug#55780).

2022-06-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert the `...' documentation back to actual usage

	* doc/lispref/tips.texi (Documentation Tips): Document how `...'
	is really used now (bug#55780).  ‘...’ is not really used in the
	Emacs sources.

2022-06-03  Mattias Engdegård  <mattiase@acm.org>

	Let ?\LF signal an error (bug#55738)

	As suggested by Stefan Monnier.

	* src/lread.c (read_escape):
	Signal an error for ?\LF since it cannot reasonably be intended.
	* test/src/lread-tests.el (lread-escaped-lf): Update test.
	* etc/NEWS: Announce.

2022-06-03  Mattias Engdegård  <mattiase@acm.org>

	Fix wrong value in idlwave-comment-indent-char

	* lisp/progmodes/idlwave.el (idlwave-comment-indent-char):
	Use a space since that is clearly what was meant.
	?\ at the end of a line (ie, ?\LF) never was well-defined and produced
	-1 most of the time, but will soon raise an error (bug#55738).
	This doesn't matter much because this variable is unused.

2022-06-03  Po Lu  <luangruo@yahoo.com>

	Add new user option `mouse-drag-mode-line-buffer'

	* etc/NEWS: Announce new option.  Also add missing entries for
	an earlier change.
	* lisp/mouse.el (mouse-drag-mode-line-buffer): New user option.
	(mouse-drag-mode-line): Implement that option.

2022-06-03  Po Lu  <luangruo@yahoo.com>

	Add easier-to-use interfaces for initiating drag-and-drop

	The previous interface required that users know intricacies of
	the data types used to transfer data on each platform Emacs
	supports.

	* doc/lispref/frames.texi (Drag and Drop): Document new
	functions.
	* lisp/dired.el (dired-last-dragged-remote-file)
	(dired-remove-last-dragged-local-file): Delete functions.
	(dired-mouse-drag): Use `dnd-begin-file-drag'.
	* lisp/dnd.el (dnd-last-dragged-remote-file)
	(dnd-remove-last-dragged-remote-file): New variables and
	functions.
	(dnd-begin-text-drag, dnd-begin-file-drag): New functions.
	* src/xterm.c (x_dnd_begin_drag_and_drop): Add porting note.

2022-06-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new user option battery-update-functions

	* doc/emacs/display.texi (Optional Mode Line): Document it.
	* lisp/battery.el (battery-update-functions): New user option
	(bug#55770).
	(battery-update): Use it.

2022-06-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove window-max-characters-per-line

	* doc/lispref/windows.texi (Window Sizes):
	* doc/lispref/display.texi (Size of Displayed Text): Remove
	documentation.
	* lisp/fringe.el (fringe-mode): Point to the right function.

	* lisp/window.el (window-char-pixel-width)
	(window-char-pixel-height, window-max-characters-per-line): Remove
	functions -- this was already added as window-max-chars-per-line.

	* src/window.c (Fwindow_body_width): Adjust doc string.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Fix GTK build

	* src/xterm.c (x_dnd_begin_drag_and_drop) [USE_GTK]: Adjust call
	to x_dnd_free_toplevels as well.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Don't call XSelectInput on a dying display when canceling drag-and-drop

	* src/xterm.c (x_dnd_free_toplevels): New argument
	`display_alive'.
	(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
	(handle_one_xevent): Change calls to `x_dnd_free_toplevels'.
	(x_connection_closed, x_delete_terminal): Set it to false.

2022-06-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Make checkdoc-file-comments-engine match more ;;;### forms

	* lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): Use
	the more general lisp-mode-autoload-regexp instead of
	generate-autoload-cookie (i.e., also match ;;;###tramp-autoload).

2022-06-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `M-x grep' work better with "git grep"

	* lisp/progmodes/compile.el (compilation-start): Bind PAGER to ""
	to avoid errors in output from "git grep" and similar commands
	(bug#4359).

2022-06-02  Mattias Engdegård  <mattiase@acm.org>

	Make ?\LF generate 10, not -1 (bug#55738)

	The old -1 value was an artifact of the reader implementation.

	* src/lread.c (read_escape): Remove the `stringp` argument; assume
	character literal syntax.  Never return -1.
	(read_string_literal): Handle string-specific escape semantics here
	and simplify.
	* test/src/lread-tests.el (lread-escaped-lf): New test.

2022-06-02  Mattias Engdegård  <mattiase@acm.org>

	* src/lread.c (skip_lazy_string): Fix uninitialized variable.

2022-06-02  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/play/morse.el: Doc fixes.

2022-06-02  Ikumi Keita  <ikumi@ikumi.que.jp>  (tiny change)

	Improve keystrokes in doc strings in some find-file functions

	* lisp/files.el (find-file):
	(find-file-other-window):
	(find-file-other-frame): Include the correct keymap so that
	keystrokes are displayed better (bug#55761).

2022-06-02  Po Lu  <luangruo@yahoo.com>

	More gracefully handle errors during Motif drag window creation

	* src/xterm.c (xm_drag_window_error_handler): Store whether or
	not an error happened.
	(xm_get_drag_window): Handle errors during XCreateWindow and
	XChangeProperty without leaking anything.
	(x_error_handler): Fix coding style.

2022-06-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix out-of-tree build problems with loaddefs.el

	* lisp/Makefile.in ($(lisp)/loaddefs.el): Use the new function.

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Pass in
	whether to inhibit a partial build (to make the code more general).
	(loaddefs-generate--emacs-batch): Add a new function specially for
	the Emacs build that has the special rules needed.  (This also
	fixes out-of-tree builds.)
	loaddefs-generate-batch can be used in general for packages etc.
	(loaddefs-generate-batch): Remove the special code for Emacs builds.

2022-06-02  Eli Zaretskii  <eliz@gnu.org>

	Fix segfaults when starting on 80x26 TTY frames

	* src/dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Make
	sure we have valid frame glyph matrices for the interactive
	session.  (Bug#55760)
	(adjust_frame_glyphs): Add assertions for when we fail to allocate
	valid frame glyph matrices for a TTY frame.

2022-06-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Reinstate the Qload file name handler

	* src/lread.c (Fload): Reinstate the Qload file name handler
	(bug#12598).  This makes loading non-ASCII elc.gz files work.

2022-06-02  Frédéric Giquel  <frederic.giquel@laposte.net>  (tiny change)

	Use `read-process-output-max' when creating pipes on GNU/Linux

	* src/process.c (syms_of_process): Note max size.
	(create_process): Set the pipe size from `read-process-output-max'
	(bug#55737).

2022-06-02  yilkalargaw  <yilkalargawworkneh@gmail.com>

	Fix usage of absolute :height in manoj-dark-theme

	* etc/themes/manoj-dark-theme.el (manoj-dark): Avoid using
	absolute heights (bug#55759).

2022-06-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Speed up loaddefs-generate on slow disks

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Make file
	update comparisons faster.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Fix rare crash when async input happens while creating xm drag window

	* src/xterm.c (xm_get_drag_window): Work around XCloseDisplay
	freezing upon being interrupted by a signal.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Fix macOS build

	* src/nsterm.m (ns_mouse_position): Fix typos.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Fix potential NULL pointer dereference on NS

	* src/nsterm.m (ns_mouse_position): Don't test f's tooltip-ness
	if it's NULL.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Fix flickering tooltips with mouse DND without interprogram drag

	* src/haikuterm.c (haiku_read_socket):
	* src/nsterm.m (ns_mouse_position):
	* src/xterm.c (XTmouse_position, handle_one_xevent): Apply
	special tooltip treatment to `dropping' as well as
	`drag-source'.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Fix tooltip frames leaking into mouse position on NS

	* src/nsterm.m (ns_mouse_position): Avoid tooltip frames and
	look underneath them when `drag-source'.

	([EmacsView mouseDown:]):
	([EmacsView mouseMoved:]): Ignore events from tip frames.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Handle dropping text/uri-list on Haiku

	* lisp/term/haiku-win.el (window-system-initialization): Remove
	extra whitespace.
	(haiku-drag-and-drop): Handle "text/uri-list".

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Fix help-echo tooltips interfering with mouse drag-and-drop

	* lisp/mouse.el (mouse-drag-and-drop-region): Disable
	tooltip-mode while mouse drag-and-drop is in progress.  Also
	restore state correctly in some more cases.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Fix flicker during mouse DND on Haiku as well

	* src/haikuterm.c (haiku_read_socket): Don't clear tooltips on
	crossing if track-mouse is drag-source and the display is
	grabbed.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Fix typos in last change

	* src/xterm.c (handle_one_xevent): Fix typos.

2022-06-02  Po Lu  <luangruo@yahoo.com>

	Fix tooltips flickering on X during `mouse-drag-and-drop-region'

	* src/xterm.c (x_get_window_below): New function.
	(XTmouse_position): If track-mouse is drag-source and a window
	is a tooltip, look below it.
	(handle_one_xevent): Don't generate a nil help-echo event on
	LeaveNotify if the display is grabbed and track-mouse is
	drag-source.

2022-06-01  Richard Hansen  <rhansen@rhansen.org>

	bindat (strz): Fix wrong-type-argument error when unpacking

	* lisp/emacs-lisp/bindat.el (strz): Fix (wrong-type-argument
	number-or-marker-p nil) error when unpacking a strz with
	unspecified (variable) length.
	* test/lisp/emacs-lisp/bindat-tests.el (strz): Mark test as passing.

2022-06-01  Richard Hansen  <rhansen@rhansen.org>

	bindat (strz): Fix off-by-one bug in computed length

	* lisp/emacs-lisp/bindat.el (strz): Include null terminator when
	computing packed string length.
	* test/lisp/emacs-lisp/bindat-tests.el (strz): Mark tests as passing.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Clean up Motif drag-and-drop code

	* src/xterm.c (enum xm_drag_operation, enum xm_drag_action)
	(enum xm_drag_reason, enum xm_drag_originator, enum xm_drag_style)
	(enum xm_drop_site_status): Turn macros into enums.
	(x_next_event_from_any_display): Fix initial value of rc.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Fix decoding of XdndStatus rectangles on 64-bit systems

	* src/xterm.c (handle_one_xevent): Make data.l[2] and data.l[3]
	unsigned.

2022-06-01  Mattias Engdegård  <mattiase@acm.org>

	Revert "Fix reader char escape bugs (bug#55738)"

	This reverts commit c50718dcfa54293b695f8a3fa5cd4d77848ee084.

	It may have caused bootstrap problems. Sorry about that.

2022-06-01  Juri Linkov  <juri@linkov.net>

	* lisp/simple.el (completion-setup-function): Use file-name-directory.

	Replace file-name-as-directory with file-name-directory,
	because file-name-as-directory returns a nonexistent dir
	e.g. "/dir/prefix/" when completing "/dir/prefix".
	OTOH, file-name-directory returns "/dir/" in such cases (bug#55743).

2022-06-01  Eli Zaretskii  <eliz@gnu.org>

	Avoid segfaults on MS-Windows when invoked with --version

	* src/emacs.c (main): If invoked with --version, call
	'init_bignum' before calling 'format-time-string', as that is
	needed for safe manipulation of bignums in timefns.c.

2022-06-01  Mattias Engdegård  <mattiase@acm.org>

	Fix reader char escape bugs (bug#55738)

	Make the character literal ?\LF (linefeed) generate 10, not -1.

	Ensure that Control escape sequences in character literals are
	idempotent: ?\C-\C-a and ?\^\^a mean the same thing as ?\C-a and ?\^a,
	generating the control character with value 1.  "\C-\C-a" no longer
	signals an error.

	* src/lread.c (read_escape): Make nonrecursive and only combine
	the base char with modifiers at the end, creating control chars
	if applicable.  Remove the `stringp` argument; assume character
	literal syntax.  Never return -1.
	(read_string_literal): Handle string-specific escape semantics here
	and simplify.
	* test/src/lread-tests.el (lread-misc-2): New test.

2022-06-01  Michael Albinus  <michael.albinus@gmx.de>

	Make files-tests.el more robust

	* test/lisp/files-tests.el (files-tests--with-temp-non-special)
	(files-tests--with-temp-non-special-and-file-name-handler): Make
	it more robust wrt parallel test jobs.  (Bug#55706)

2022-06-01  Visuwesh  <visuweshm@gmail.com>

	delete-selection-mode: Add user option to delete temporary regions only

	* lisp/delsel.el (delete-selection-temporary-region): Add new
	user option.
	(delete-selection-pre-hook): Respect it.
	* doc/emacs/mark.texi (Using Region): Document the new user option.
	* etc/NEWS: Announce the new user option. (bug#55692)

2022-06-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make it explicit that a couple of _s in lispref are underscores

	* doc/lispref/strings.texi (Custom Format Strings):
	* doc/lispref/control.texi (pcase Macro): Make it explicit that
	it's an underscore (bug#55742).

2022-06-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a comment to lisp/Makefile.in

	* lisp/Makefile.in: Add FIXME comment.

2022-06-01  Manuel Giraud  <manuel@ledu-giraud.fr>

	Place bookmarks without last-modified at the end

	* lisp/bookmark.el (bookmark-sort-flag): Typo fix in doc string.
	(bookmark-maybe-sort-alist): Fix sorting when there's no last
	modified.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Improve documentation of Lisp-level drag-and-drop features

	* doc/lispref/frames.texi (Drag and Drop): Don't conflate X
	Windows specific implementation details with general
	drag-and-drop functionality, document what `dnd-protocol-alist'
	actually means, and improve documentation on DND data types.

2022-06-01  Stefan Kangas  <stefankangas@gmail.com>

	Make XEmacs compat code in gamegrid.el obsolete

	* lisp/play/gamegrid.el (gamegrid-make-glyph): Warn on using obsolete
	XEmacs style glyph.  (This is currently unused in the Emacs tree.)
	(gamegrid-make-image-from-vector): Make obsolete.

2022-06-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that loaddefs-gen.elc is build before loaddefs.el is generated

	* lisp/Makefile.in ($(lisp)/loaddefs.el): Make loaddefs.el depend
	on loaddefs-gen.elc to ensure that it's built.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Minor fixes to x_next_event_from_any_display

	* src/xterm.c (x_next_event_from_any_display): Don't call
	XPending unless there is input to be read on the connection, and
	don't call ConnectionNumber twice.

2022-06-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up the loaddefs-gen updating logic

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Only do the
	updating logic if we're really updating.

2022-06-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Fix loaddefs generation"

	This reverts commit 28358db93007456a1e0a6d9118823d4ddea4ba39.

	This has been fixed in a different way.

2022-06-01  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Hanifi Rohingya script (bug#55745)

	* lisp/language/misc-lang.el ("Hanifi Rohingya"):
	New language environment.
	Add composition rules for Hanifi Rohingya.
	Add sample text and input method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Hanifi Rohingya.
	* lisp/leim/quail/misc-lang.el ("hanifi-rohingya"):
	New input method.

	* etc/HELLO: Add a Hanifi Rohingya greeting.
	* etc/NEWS: Announce the new language environment.

2022-06-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Start the org -> texi conversion while doing byte compilation

	* lisp/Makefile.in (MAIN_FIRST): Compile stuff needed for org ->
	texi generation.
	(all): Add org-manuals.
	(org-manuals): Start org -> texi conversion while we're doing byte
	compilation to make things more parallel.  This shaves off about
	ten seconds of a "make -j8" build.

2022-06-01  Protesilaos Stavrou  <info@protesilaos.com>

	Update modus-themes to their latest version

	* admin/MAINTAINERS: Update link to the Git repository of the
	modus-themes; point to the new mailing list; include command for
	sending a bug report.

	* doc/misc/modus-themes.org (Install from the archives): Minor
	rewording.
	(Dealing with byte compilation errors): Clarify that occasional bugs
	are not always a fault of the themes.
	(Custom hl-todo colors): Add note about package.:(Full support for
	packages or face groups, Indirectly covered packages): Update lists of
	supported packages.
	(Note on avy hints): Remove obsolete node.
	(Note on git-gutter in Doom Emacs): Note problem with custom bitmaps,
	which is not the fault of the themes.
	(Note on display-fill-column-indicator-mode): Show how to use a
	thicker indicator.:(Why are colors mostly variants of blue, magenta,
	cyan?): Minor rewording.
	(Sources of the themes): Update official theme sources.
	(Issues you can help with)
	(Patches require copyright assignment to the FSF): Update the
	information on potential contributions.
	(Acknowledgements): Update list of contributors in the form of code or
	ideas/feedback.
	(Meta, Other notes about the project): Rename section and include more
	links to development-related blog posts.

	* etc/themes/modus-themes.el (seq): Stop requiring 'seq'.
	(modus-themes--version): Use internal variable for the themes'
	version.
	(modus-themes-operandi-colors, modus-themes-vivendi-colors): Make
	minor tweaks to the color palettes.
	(modus-themes-variable-pitch): Remove obsolete symbol from doc string.
	(modus-themes--alist-or-seq): Update function to not rely on 'seq'.
	(modus-themes--current-theme): Make stylistic tweaks.
	(modus-themes--markup): Use correct order of inheritance for faces.
	(modus-themes--paren, modus-themes--heading)
	(modus-themes--agenda-structure, modus-themes--agenda-date)
	(modus-themes--agenda-habit, modus-themes--mode-line-attrs)
	(modus-themes--mode-line-padded-box, modus-themes--button): Update to
	use 'modus-themes--property-lookup' instead of the previous function
	that depended on 'seq'.
	(modus-themes--diff): Make it combine as expected with the user option
	'modus-themes-deuteranopia'.
	(modus-themes-faces): Update list of faces.
	(modus-themes-custom-variables): Expand support for face rotation in
	'highlight-changes'.

	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-vivendi-theme.el: Bump version number to 2.4.1.

	Release notes: <https://protesilaos.com/codelog/2022-06-01-modus-themes-2-4-0/>.

2022-06-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak how loaddefs-gen decides whether to do a full update

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Do a
	complete build more often to avoid problems with going from old
	loaddefs.el files to new ones.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Fix Motif DND return value upon transfer failure

	* src/xterm.c (handle_one_xevent): Make XmTRANSFER_FAILURE clear
	DND action.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Fix loaddefs generation

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Prevent
	one kind of string match error.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Adjust last change to Haiku as well

	* lisp/term/haiku-win.el (haiku-dnd-selection-converters): Add
	text/uri-list.
	(haiku-dnd-convert-text-uri-list): New function.
	(x-begin-drag): Handle alternative data specified in selection
	local values.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Clean up text/uri-list mess inside the Dired drag-and-drop code

	* doc/lispref/frames.texi (Window System Selections):
	* etc/NEWS: Document new changes to `gui-get-selection'.
	* lisp/dired.el (dired-mouse-drag): Specify text/uri-list value
	explicitly.
	* lisp/select.el (gui-set-selection): Update doc string.
	(xselect-convert-to-text-uri-list): Update to handle either a
	single URL (as a string) or a vector of URLs, instead of file
	names.
	(xselect-uri-list-available-p): Likewise.
	* src/xselect.c (x_get_local_selection): Look in tem's text
	properties (if it is a string) for a local value before using
	tem itself.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Fix hangs when explicitly moving frames with input blocked

	* src/xterm.c (x_check_expected_move): Fix indent.
	(x_sync_with_move): Use pselect to wait the 0.5 seconds instead
	of wait_reading_process_output if input is blocked.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Implement `allow-same-frame' for NS drag-and-drop

	* lisp/term/ns-win.el (x-begin-drag): Implement
	`allow-same-frame'.
	* src/nsselect.m (Fns_begin_drag): New parameter
	`allow-same-frame'.
	* src/nsterm.h (@interface EmacsWindow): Update prototypes.
	* src/nsterm.m ([EmacsView draggingEntered:]):
	([EmacsView prepareForDragOperation:]):
	([EmacsView performDragOperation:]): Respect new parameter.
	([EmacsWindow beginDrag:forPasteboard:withMode:returnFrameTo:]):
	Likewise.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Fix creation of menu items without help text on Haiku

	* src/haiku_support.cc (EmacsMenuItem): Don't mistakenly assume
	help is non-NULL.

2022-06-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak MAIN_FIRST/ja-dic compilation

	* lisp/Makefile.in (MAIN_FIRST): ja-dic-utl isn't used in the
	conversion process, to don't compile it early.

2022-06-01  Po Lu  <luangruo@yahoo.com>

	Fix pselect usage mistakes

	* src/xterm.c (x_next_event_from_any_display):
	(x_wait_for_cell_change): Fix calls to pselect and tests against
	return value.

2022-06-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't do OKURI-NASI until the conversion files have been compiled

	* lisp/Makefile.in (generate-ja-dic): Byte-compile the ja-dic.el
	file, too.

2022-06-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Compile ja-dic files to speed OKURI-NASI up

	* lisp/Makefile.in (MAIN_FIRST): Also compile ja-dic utils to
	speed generation up.

2022-06-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-05-18 19:45:52 UTC.

2022-05-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure byte compilation of the ja-dic.el file

	* lisp/Makefile.in (generate-ja-dic): Byte-compile the ja-dic.el
	file, too.

2022-05-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Reshuffle the generation of the OKURO-NASI entries to speed up build

	* leim/Makefile.in (all): Remove the ja-dic target from all -- we
	don't need this file generated before we generate the .elc files.
	(generate-ja-dic): Add new target.

	* lisp/Makefile.in (.PHONY, generate-ja-dic): Add new target.
	(all): Make all depend on the new generate-ja-dic target so that
	the OKURO-NASI entries are computed while the .elc files are
	compiled.  On a AMD Ryzen 9 5950X 16-Core Processor this brings
	compilation time on a "make -j32 bootstrap" down from 1m52s to 1m34s.

2022-05-31  Po Lu  <luangruo@yahoo.com>

	Fix the GTK build

	* src/xterm.c (x_wait_for_cell_change): Don't initialize rfds
	on GTK.

2022-05-31  Po Lu  <luangruo@yahoo.com>

	Improve x_wait_for_cell_change

	* src/xterm.c (x_wait_for_cell_change): Keep processing events
	while still XPending.

2022-05-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Note changes in ;;;### parsing

2022-05-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix the loaddefs updating logic

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Fix the
	logic of updating -- we update per loaddefs file.

2022-05-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix yank-in-context--transform after recent reversion

	* lisp/simple.el (yank-in-context--transform): Fix call to
	comment-region-default-1 after recent reverted patch.

2022-05-31  Manuel Giraud  <manuel@ledu-giraud.fr>

	Add a last-modified field when a bookmark is set

	* test/lisp/bookmark-tests.el (bookmark-tests-make-record)
	(bookmark-tests-make-record-list, bookmark-tests-set): fix tests
	to not consider last-modified in bookmark equality.
	* lisp/bookmark.el (bookmark-make-record-default): add a
	last-modified field.
	(bookmark-sort-flag): add the 'last-modified choice.
	(bookmark-get-last-modified): new function to get last-modified
	bookmark field.
	(bookmark-maybe-sort-alist): sort in last-modified first order.
	(bookmark-completing-read): use `bookmark-maybe-sort-alist'.

2022-05-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Allow commenting out white space lines in latex-mode"

	This reverts commit 0870ebb3cbfcb097d85eea5eacaf992dd88ed204.

	This was the wrong way to try to fix this -- see bug#55716.

2022-05-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Make partial loaddefs updates work again

	* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Only update
	the loaddefs section for the files that have changed.  This makes
	"git pull" (when few/no Lisp files have changed much faster).

2022-05-31  Juri Linkov  <juri@linkov.net>

	Fix handling of windows/buffers for non-nil completion-auto-select (bug#55712)

	* lisp/minibuffer.el (completion--in-region-1): When completion-auto-select
	is `second-tab', call switch-to-completions outside of `with-current-buffer'.
	For the case of completion-auto-select customized to t,
	move switch-to-completions from completion-setup-function
	where it was called inside of with-current-buffer-window.

	* lisp/simple.el (completion-setup-function): Move switch-to-completions
	for completion-auto-select=t to completion--in-region-1 where it's
	handled together with the case of `second-tab'.
	(next-completion): Add check for the minibuffer to support in-buffer
	inline completions.

2022-05-31  Eli Zaretskii  <eliz@gnu.org>

	Remove unused w32-* variables

	* src/w32fns.c (syms_of_w32fns) <w32-bdf-filename-alist>
	<w32-strict-fontnames>: Remove unused variables.

2022-05-31  Eli Zaretskii  <eliz@gnu.org>

	Remove from FAQ the MS-Windows info about BDF fonts

	* doc/misc/efaq.texi (How to add fonts): Remove the MS-Windows
	specific steps, as BDF fonts are no longer supported on
	MS-Windows.  (Bug#55740)

2022-05-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Speed up generation of loaddefs files

	* doc/lispref/loading.texi (Autoload, Autoload by Prefix): Refer
	to loaddefs-generate instead of update-file-autoloads.

	* lisp/Makefile.in (LOADDEFS): Remove, because all the loaddefs
	files are created in one go now.
	(COMPILE_FIRST): Add loaddefs-gen/radix-tree, and drop autoload.
	($(lisp)/loaddefs.el): Use loaddefs-gen.
	(MH_E_DIR, $(TRAMP_DIR)/tramp-loaddefs.el)
	($(MH_E_DIR)/mh-loaddefs.el, $(CAL_DIR)/cal-loaddefs.el)
	($(CAL_DIR)/diary-loaddefs.el, $(CAL_DIR)/hol-loaddefs.el): Remove.

	* lisp/generic-x.el: Inhibit computing prefixes, because the
	namespace here is all wonky.

	* lisp/w32-fns.el (w32-batch-update-autoloads): Removed -- unused
	function.

	* lisp/calendar/holidays.el ("holiday-loaddefs"): Renamed from
	hol-loaddefs to have a more regular name.

	* lisp/cedet/ede/proj-elisp.el (ede-emacs-cedet-autogen-compiler):
	Refer to loaddefs-gen instead of autoload.

	* lisp/emacs-lisp/autoload.el (make-autoload, autoload-rubric)
	(autoload-insert-section-header): Made into aliases of
	loaddefs-gen functions.
	(autoload--make-defs-autoload): Ditto.
	(autoload-ignored-definitions, autoload-compute-prefixes): Moved
	to loaddefs-gen.

	* lisp/emacs-lisp/lisp-mode.el (lisp-mode-autoload-regexp): New
	constant.
	(lisp-fdefs, lisp-mode-variables, lisp-outline-level): Use it to
	recognize all ;;;###autoload forms.

	* lisp/emacs-lisp/loaddefs-gen.el: New file.

	* lisp/emacs-lisp/package.el: Use loaddefs-generate instead of
	make-directory-autoloads.

	* test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-faulty-bzr-autoloads):
	Use loaddefs instead of autoloads.

2022-05-31  Po Lu  <luangruo@yahoo.com>

	Convert FILE_NAME to refs on Haiku instead of text/uri-list

	* lisp/term/haiku-win.el (haiku-dnd-selection-converters): Use
	more appropriate target for file names.
	(haiku-dnd-convert-uri-list): Delete function.
	(haiku-dnd-convert-file-name): New function.  Also handle remote
	file names.

2022-05-31  Po Lu  <luangruo@yahoo.com>

	Add missing part of recent changes to NS DND support

	* lisp/term/ns-win.el (x-begin-drag): Implement `return-frame'
	argument.

2022-05-31  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Makasar and Lontara scripts (bug#55734)

	* lisp/language/indonesian.el ("Makasar") ("Buginese"):
	New language environment. Add composition rules for Makasar
	and Lontara. Add sample texts and input methods.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Makasar and Buginese.
	* lisp/leim/quail/indonesian.el ("makasar") ("lontara"):
	New input methods.

	* etc/HELLO: Add Makasar and Buginese greetings.
	* etc/NEWS: Announce the new language environments.

2022-05-31  Po Lu  <luangruo@yahoo.com>

	Slightly optimize x_check_errors as well

	* src/xterm.c (x_check_errors): Don't sync if no requests were
	made since the error trap was installed.

2022-05-31  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/play/handwrite.el: Minor doc fixes.

2022-05-31  Antonio Ruiz  <antonioruiz.math@gmail.com>  (tiny change)

	Make handwrite.el printing use more of the ps-print setup

	* lisp/play/handwrite.el (handwrite): Allow ps-lpr-printer to be
	computed at runtime (bug#55733).

2022-05-31  Ikumi Keita  <ikumi@ikumi.que.jp>  (tiny change)

	Fix Display Property manual example

	* doc/lispref/display.texi (Display Property): Fix syntax of
	example (bug#55736).

2022-05-31  Po Lu  <luangruo@yahoo.com>

	Fix replying to _NET_WM_PING during drag-and-drop

	* src/xterm.c (handle_one_xevent): Test client window against
	root window instead of using nonstandard event mask.

2022-05-31  Po Lu  <luangruo@yahoo.com>

	Implement `return-frame' for DND on NS

	* src/nsselect.m (Fns_begin_drag): New argument `return-frame'.
	(syms_of_nsselect): New defsym.
	* src/nsterm.h (EmacsWindow): New fields.
	* src/nsterm.m (ns_read_socket): Split parts off to
	ns_read_socket_1.
	(ns_read_socket_1): New function.
	(ns_flush_display): Use that function instead.

	([EmacsWindow beginDrag:forPasteboard:]): Update for
	return-frame.

2022-05-31  Po Lu  <luangruo@yahoo.com>

	Fix autorelease pool "straddling" during DND on NS

	* src/nsterm.m (ns_mouse_position): Implement `drag-source'
	on NS.
	([EmacsView draggingUpdated:]): Add autorelease pool around
	callbacks.
	([EmacsWindow beginDrag:forPasteboard:]): Block input around
	dragImage.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12 in x_get_current_wm_state

	* src/xterm.c (x_get_current_wm_state): When lint checking,
	initialize reply_data to a non-null dummy value instead of to a
	null one.  This pacifies GCC 12 -Wanalyzer-null-dereference.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12 in dump_queue_enqueue

	* src/pdumper.c (dump_queue_enqueue): Use BASE_EQ, not EQ.
	This pacifies GCC 12 -Wanalyzer-null-dereference.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Be more robust if doc file is corrupted

	* src/doc.c (Fsnarf_documentation): Don’t dump core on a corrupted
	doc file.  Problem found by GCC 12 -Wanalyzer-null-argument.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12 in Fmove_overlay

	* src/buffer.c (Fmove_overlay): Use BASE_EQ, not EQ.
	This pacifies GCC 12 -Wanalyzer-null-dereference.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12 in Fx_show_tip

	* src/xfns.c (Fx_show_tip): Use BASE_EQ, not EQ.
	This pacifies GCC 12 -Wanalyzer-null-dereference.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12 in xrdb.c

	* src/xrdb.c (x_get_resource): Simply assign the return	value.
	This pacifies GCC 12 -Wanalyzer-use-of-uninitialized-value.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12 false positive in ccl.c

	* src/ccl.c: Suppress -Wanalyzer-use-of-uninitialized-value
	in GCC 12 or later.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify CHAR_TABLE_REF_ASCII

	* src/lisp.h (CHAR_TABLE_REF_ASCII): Refactor as a straightforward
	for-loop.  Redo an if-then-else to be an (!if)-else-then as this
	is a bit cleaner, and it also works around GCC bug 105755.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid undefined behavior in detect_coding routines

	* src/coding.c (detect_coding): Always initialize all
	components of detect_info, so that detect_coding_utf_8 etc.
	do not have undefined behavior when they read detect_info.checked.
	This bug is not likely to cause problems on real systems.
	Problem found by GCC 12 -fanalyzer.
	(detect_coding_system): Use consistent style with detect_coding
	initialization.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12 -fanalyzer in x_popup_menu_1

	* src/menu.c (x_popup_menu_1): Rework to avoid unnecessary
	initialization and test.  This also pacifies GCC 12.

2022-05-31  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12 -Wanalyzer-use-of-uninitialized-value

	* lib-src/etags.c (readline_internal): Do not copy a pointer to
	freed storage, as that has undefined behavior even if the pointer
	is not dereferenced.
	(relative_filename): Avoid a backward scan by remembering where
	the last slash was.  This is a bit faster, and pacifies a GCC
	false alarm.

2022-05-31  Po Lu  <luangruo@yahoo.com>

	Fix crashes displaying menu help text on NS

	* src/nsterm.m (ns_flush_display): Run event loop manually,
	avoiding a double free of an autorelease pool.

2022-05-31  Po Lu  <luangruo@yahoo.com>

	Fix processing of DND events on GTK

	* src/xterm.c (x_dnd_begin_drag_and_drop): Clear `current_count'
	and `current_hold_quit' after calling gtk_main_iteration.

2022-05-30  Po Lu  <luangruo@yahoo.com>

	Fix unused variables on GTK

	* src/xterm.c (x_wait_for_cell_change): Fix unused variables
	on GTK builds.

2022-05-30  Po Lu  <luangruo@yahoo.com>

	Fix initialization of `hold_quit' during DND

	* src/xterm.c (x_dnd_begin_drag_and_drop): Use `EVENT_INIT'
	instead of just setting type to NO_EVENT.

2022-05-30  Po Lu  <luangruo@yahoo.com>

	Prevent events from being lost waiting for selections on GTK

	* src/xterm.c (x_wait_for_cell_change): Use GTK to iterate the
	main loop so events reach the toolkit.

2022-05-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-05-30  Eli Zaretskii  <eliz@gnu.org>

	Fix 'debug-timer-check' on MS-Windows

	* src/w32proc.c (w32_raise): New function.
	* src/atimer.c (raise) [WINDOWSNT]: Redirect to 'w32_raise'.

2022-05-30  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/project.el: Improve file-reading history and default values.

	(project-find-file): Use relative file name of the
	currently visited file as an alternative default value.
	(project-find-file-in, project-find-dir): Use 'file-name-history' (bug#55267).

2022-05-30  Mattias Engdegård  <mattiase@acm.org>

	Nonrecursive Lisp reader (bug#55676)

	Restructure the reader to be nonrecursive so that it is not limited by
	the C stack or crashes Emacs when reading deeply nested data.
	This also improves performance.
	A few minor bugs were fixed:

	- (a .{NBSP}b) where {NBSP} is a non-breaking space (U+00A0) is now
	  the dotted pair (a . b), not the 3-element list (a \. b), since U+00A0
	  is treated as whitespace everywhere else.
	- #_ with no symbol following is now equivalent to ## (empty interned
	  symbol), not #: (empty uninterned symbol).

	* src/alloc.c (garbage_collect): Call mark_lread.
	* src/lread.c (readevalloop): Use read0 instead of read_list.
	(stackbufsize): Increase to 1024, now that read0 isn't recursive.
	(invalid_radix_integer): Buffer overflow check.
	(read1, read_list, read_vector): Remove.
	(read_char_literal, read_string_literal)
	(hash_table_from_plist, record_from_list, vector_from_rev_list)
	(bytecode_from_rev_list, char_table_from_rev_list)
	(sub_char_table_from_rev_list, string_props_from_rev_list)
	(read_bool_vector, skip_lazy_string, symbol_char_span)
	(skip_space_and_comments)
	(enum read_entry_type, struct read_stack_entry, struct read_stack)
	(rdstack, mark_lread, read_stack_top, read_stack_pop)
	(read_stack_empty_p, grow_read_stack, read_stack_push): New.
	(read0): Rewrite to be nonrecursive.
	* test/src/lread-tests.el (lread-deeply-nested, lread-misc): New tests.

2022-05-30  Mattias Engdegård  <mattiase@acm.org>

	Fix atimer setting and overdue expiration (bug#55628)

	* src/atimer.c (set_alarm): If the atimer has already expired, signal
	it right away instead of postponing it further.  Previously this could
	occur repeatedly, blocking atimers indefinitely.
	Also only use `alarm` as fallback if `setitimer` is unavailable, not
	both at the same time (which makes no sense, and they both typically
	use the same mechanism behind the curtains).

	* test/src/eval-tests.el (eval-tests/funcall-with-delayed-message):
	New test, verifying proper functioning of funcall-with-delayed-message
	which also serves as test for this bug (which also caused
	debug-timer-check to fail, but that test is only run when Emacs is
	built with enable-checking).

2022-05-30  Eli Zaretskii  <eliz@gnu.org>

	Add more subscript and superscript characters to "C-x 8"

	* lisp/international/iso-transl.el (iso-transl-char-map): Add more
	numerical superscript and subscript characters.  (Bug#55722)

2022-05-30  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Rejang script (bug#55718)

	* lisp/language/indonesian.el ("Rejang"): New language environment.
	Add composition rules for Rejang.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Rejang.
	* lisp/leim/quail/indonesian.el ("rejang"): New input method.

	* etc/HELLO: Add a Rejang greeting.
	* etc/NEWS: Announce the new language environment.

2022-05-30  Po Lu  <luangruo@yahoo.com>

	Get rid of `defvar-keymap' in flymake.el

	* lisp/progmodes/flymake.el (flymake-mode-map)
	(flymake-diagnostics-buffer-mode-map): Stop using
	`defvar-keymap', since Flymake only requires Emacs 26.1.

2022-05-30  Po Lu  <luangruo@yahoo.com>

	Fix `dnd-indicate-insertion-point' on Mac OS

	* lisp/term/ns-win.el (ns-handle-drag-motion): Remove debugging
	code.

	* src/nsterm.m ([EmacsView draggingUpdated:]): Redisplay here
	instead.

2022-05-30  Po Lu  <luangruo@yahoo.com>

	Update frame positions on Haiku after changing Z group

	* src/haiku_support.cc (EmacsScreenChangeMonitor): Fix comment.
	* src/haikufns.c (haiku_set_z_group): Ask for a position update,
	since changing the Z group might change the feel of the window.

2022-05-30  Po Lu  <luangruo@yahoo.com>

	Fix cursor flushing inside minibuffers on NS

	* src/nsterm.m (EV_TRAILER): Fix coding style.
	(ns_flush_display): New function.
	(ns_redisplay_interface): Register `flush_display'.

2022-05-30  Po Lu  <luangruo@yahoo.com>

	Fix hangs when x-get-selection is called inside a popup menu

	* src/xselect.c (wait_for_property_change):
	(x_get_foreign_selection): Use `x_wait_for_cell_change' if input
	is blocked.  (bug#22214)
	* src/xterm.c (x_wait_for_cell_change): New function.
	* src/xterm.h: Update prototypes.

2022-05-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1b7b69e764 Some Tramp cleanup on MS Windows

2022-05-29  Po Lu  <luangruo@yahoo.com>

	Try to implement `dnd-indicate-insertion-point' on macOS

	* lisp/term/ns-win.el (ns-handle-drag-motion): New function.
	* src/nsterm.m ([EmacsView draggingUpdated:]): Call that
	function instead.
	(syms_of_nsterm): Clean up old style defvars and add new
	defvar for the DND drag function.

2022-05-29  Po Lu  <luangruo@yahoo.com>

	Further clean up DND target handling

	* src/xfns.c (Fx_begin_drag): Alloca target list.

	* src/xterm.c (x_set_dnd_targets): Copy the given targets list.
	(x_dnd_begin_drag_and_drop): Record freeing the targets list on
	the specpdl.
	(handle_one_xevent, x_dnd_cleanup_drag_and_drop)
	(x_connection_closed, x_delete_terminal): Stop calling
	`x_set_dnd_targets' manually to free the targets list.

2022-05-29  Po Lu  <luangruo@yahoo.com>

	Fix crash when loading Postscript images

	* src/xterm.c (handle_one_xevent): Catch errors around
	`x_kill_gs_process'.

2022-05-29  Po Lu  <luangruo@yahoo.com>

	Use XDrawPoint to clear relief rect corners

	* xterm.c (x_clear_point): New function.
	(x_draw_relief_rect): Use that instead.

2022-05-29  Paul Eggert  <eggert@cs.ucla.edu>

	Document decoded-time-string issue on 6-elt args

	* lisp/simple.el: Document problematic use of decoded-time-dst on
	6-element args.

2022-05-29  Paul Eggert  <eggert@cs.ucla.edu>

	ISO 8601 strings sans "Z" don’t specify DST flag

	* lisp/calendar/iso8601.el (iso8601--zone-dst): New function.
	(iso8601-parse, iso8601-parse-time): Use it.
	(iso8601--decoded-time): Default dst to -1, not nil.
	* test/lisp/calendar/iso8601-tests.el (test-iso8601-combined)
	(standard-test-time-of-day-zone): Adjust to new behavior.

2022-05-29  Paul Eggert  <eggert@cs.ucla.edu>

	Doc fix for dst flag

	* doc/lispref/os.texi (Time Conversion): Note Common Lisp dst differs.

2022-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/shell.el (shell): Fix last change

	Wrap the file-name prompt within `with-connection-local-variables` as
	it was before the previous change.
	While at it, make sure we set the `default-directory` of
	the actual shell buffer after querying the user.

2022-05-29  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Batak script (bug #55694)

	* lisp/language/indonesian.el ("Batak"): New language environment.
	Add composition rules for Batak.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Batak.
	* lisp/leim/quail/indonesian.el ("batak"): New input method.
	Rename TITLE of balinese, javanese and sundanese in
	("quail-define-package").

	* etc/HELLO: Add a Batak greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.

2022-05-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix hfy-etags-cmd type

	* lisp/htmlfontify.el (hfy-etags-cmd): Fix the type -- this
	variable usually ends up being nil.

2022-05-29  Daniel Martín  <mardani29@yahoo.es>

	Fix reference to help-enable-variable-value-editing

	* lisp/help-mode.el (help-mode): Fix docstring to reference the
	correct variable name.
	* lisp/ldefs-boot.el (help-mode): Ditto (bug#55705).

2022-05-29  Po Lu  <luangruo@yahoo.com>

	* etc/tutorials/TUTORIAL.cn (INSTALLING PACKAGES): Translate
	from English.

2022-05-29  Michael Albinus  <michael.albinus@gmx.de>

	Some Tramp cleanup on MS Windows

	* lisp/net/tramp.el (tramp-restricted-shell-hosts-alist): Do not add
	localhost when `tramp-encoding-shell' is a POSIX shell.

	* test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process):
	Skip on MS Windows.

2022-05-29  Mattias Engdegård  <mattiase@acm.org>

	Traverse record literals in byte-compile--first-symbol-with-pos

	* lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos):
	Traverse record literals as well as vectors.  Either is rather
	pointless but there were some strong feelings about it.

2022-05-29  Po Lu  <luangruo@yahoo.com>

	* admin/alloc-colors.c: Fix missing declaration.

2022-05-29  Manuel Giraud  <manuel@ledu-giraud.fr>

	Make `count-words' count sentences.

	* lisp/textmodes/paragraphs.el (count-sentences): New function.
	* lisp/simple.el (count-words--format): Update format for showing
	sentences.
	(count-words): Also count sentences.

	* lisp/simple.el (count-words):
	* etc/NEWS:
	* doc/emacs/basic.texi (Position Info): Update documentation for
	sentence counting.

2022-05-29  Po Lu  <luangruo@yahoo.com>

	Keep display mm width and height up to date after changes

	* src/xfns.c (Fx_display_mm_width, Fx_display_mm_height): Use
	new fields if they are set.
	* src/xterm.c (handle_one_xevent): Set new fields on RRNotify if
	the screen is correct.
	* src/xterm.h (struct x_display_info): New fields
	`screen_mm_width', `screen_mm_height'.

2022-05-29  Po Lu  <luangruo@yahoo.com>

	Make DND target list lifecycle a little clearer

	* src/xfns.c (Fx_begin_drag): Pass target atoms and ntargets to
	x_dnd_begin_drag_and_drop instead.
	* src/xterm.c (x_set_dnd_targets): Make static.
	(x_clear_dnd_targets): Delete function.
	(x_dnd_begin_drag_and_drop): Adjust to set targets here instead.
	* src/xterm.h: Update prototypes.

2022-05-29  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f9ee83bfb9 do_switch_frame: before leaving mini-window, check other (...
	908e2e09d0 Fix commands used to produce on-line HTML docs
	fff770fb97 Fix a bad cross-reference in elisp.pdf
	ebea3415b0 Fix documentation of 'string-pad'

2022-05-28  Po Lu  <luangruo@yahoo.com>

	Fix pending window changes in haiku_set_window_size

	* src/haikuterm.c (haiku_set_window_size): Wait for
	FRAME_RESIZED events, then call `do_pending_window_change'.
	(haiku_read_socket): Allow waiting for FRAME_RESIZED events.

2022-05-28  Po Lu  <luangruo@yahoo.com>

	Improve error trapping on X

	* xterm.c (x_uncatch_errors, x_had_errors_p): Don't sync if no
	request was made since the error trap was installed.

2022-05-28  kobarity  <kobarity@gmail.com>

	Fix Python Hideshow problem with backslash escaped newlines

	* lisp/progmodes/python.el (python-rx)
	(python-nav-beginning-of-defun-regexp): Allow
	python-nav-*-defun to handle backslash escaped newlines
	(bug#55690).

2022-05-28  Visuwesh  <visuweshm@gmail.com>

	pp--insert-lisp: Don't bug out on certain forms at beginning of buffer

	* pp.el (pp--insert): Check if point is in beginning of buffer before
	calling `looking-back' (bug#55677).

2022-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	with-connection-local-variables: Avoid code duplication

	Move the bulk of the code of `with-connection-local-variables` into
	a separate function, which both avoids duplicating that code but also
	avoids duplicating the code passed as the body of
	a `with-connection-local-variables`.  Also makes it easier to
	debug the code, or change the implementation of
	`with-connection-local-variables` without having to recompile all
	the users.

	* lisp/files-x.el (with-connection-local-variables-1): New function,
	extracted from `with-connection-local-variables`.
	(with-connection-local-variables): Use it.

2022-05-28  Alan Mackenzie  <acm@muc.de>

	do_switch_frame: before leaving mini-window, check other (mru) window is live

	This fixes bug#55684.  There, with a minibuffer-only frame at start up,
	Emacs tried to switch to this frame, whose selected window was the
	mini-window.  There is no other active window in this frame, so the
	attempt to switch to another window failed.

	* src/frame.c (do_switch_frame): On switching to a frame whose selected
	window is as above, before selecting the most recently used window, check
	this ostensible window is an actual live window.  Otherwise leave the
	mini-window selected.

2022-05-28  Eli Zaretskii  <eliz@gnu.org>

	Fix commands used to produce on-line HTML docs

	* admin/admin.el (manual-meta-string): Only include the first
	line, and move the rest...
	(manual-links-string): ...to this new string.
	(manual-html-fix-headers): Don't remove the '<meta name=' elements
	produced by makeinfo, especially not the 'name="viewport"' one,
	which is essential for viewing the docs on mobile devices.
	Reported by "Facundo Lander via RT" <webmasters-comment@gnu.org>,
	see gnu.org ticket #1840138.

2022-05-28  Valenoern  <valenoern@distributary.network>  (tiny change)

	Support html template tag in shr

	* lisp/net/shr.el: Add shr-tag-template as a dummy tag.

2022-05-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix native-comp of trampolines after previous change

	* lisp/emacs-lisp/comp.el (comp--native-compile): Don't delete the
	explicitly specified output file, just temp files.

2022-05-28  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Sundanese script (bug#55686)

	* lisp/language/indonesian.el ("Sundanese"): New language environment.
	Add composition rules for Sundanese.  Add sample text and input
	method.
	Improve composition rules for Balinese and Javanese.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Sundanese.
	* lisp/leim/quail/indonesian.el ("sundanese"): New input method.

	* etc/HELLO: Add a Sundanese greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.

2022-05-28  Eli Zaretskii  <eliz@gnu.org>

	Fix a bad cross-reference in elisp.pdf

	* doc/lispref/control.texi (pcase Macro): Fix a conditional
	cross-reference (bug#55689).

2022-05-28  Po Lu  <luangruo@yahoo.com>

	Fix dired drag-and-drop for certain Motif programs

	* lisp/dired.el (dired-mouse-drag): Announce _DT_NETFILE in
	targets list as well.
	* lisp/select.el (xselect--encode-string): New arg
	`prefer-string-to-c-string'.
	(xselect-convert-to-filename): Convert to TEXT instead of
	C_STRING, but use STRING if the type would otherwise be
	C_STRING.
	(xselect-dt-netfile-available-p, xselect-tt-net-file)
	(xselect-convert-to-dt-netfile): New functions.
	(selection-converter-alist): New selection converter.

2022-05-28  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of 'string-pad'

	* doc/lispref/strings.texi (Creating Strings): Fix description of
	'string-pad'.  (Bug#55688)

2022-05-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d3cde28b03 Fix more occurrences of renamed kmacro-keymap command
	bd5c95a90d Mention "unspecified-fg" and "unspecified-bg" in some doc ...

2022-05-28  Po Lu  <luangruo@yahoo.com>

	Add more cursor bitmaps on Haiku

	* src/haikufns.c (cursor_bitmaps_for_id): Add hourglass cursor.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Improve documentation on what callers of `x-begin-drag' should do

	* doc/lispref/frames.texi (Drag and Drop):
	* src/xfns.c (Fx_begin_drag): Improve documentation of how the
	chosen action should be performed.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Improve documentation of `x-begin-drag'

	* src/xfns.c (Fx_begin_drag): Fix typos and improve wording.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Improve safety of various DND callbacks

	* src/xterm.c (x_dnd_begin_drag_and_drop): Restore selection
	events if DND is no longer in progress and don't call
	x-dnd-movement-function.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Fix frame destruction issues and misuse of x_get_atom_name

	* src/frame.c (delete_frame): Prevent deleting the dnd frame
	while waiting for finish as well.
	* src/xselect.c (Fx_get_atom_name): Clean up code and fix
	uninitialized use of need_sync.
	* src/xterm.c (x_dnd_send_unsupported_drop, x_dnd_send_drop)
	(handle_one_xevent): Clean up usage of x_get_atom_name.
	(x_get_atom_name): Accept NULL for need_sync.

	* src/xterm.h: Update declarations.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Fix build on earlier versions of Mac OS X

	* src/nsselect.m (ns_decode_data_to_pasteboard): Respect
	NS_USE_NSPasteboardTypeFileUrl.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Add file dragging support to NS port

	* lisp/dired.el (dired-mouse-drag-files): Document that
	`dired-mouse-drag-files' now works on NS.

	* lisp/term/ns-win.el (x-begin-drag): Handle FILE_NAME.
	* src/nsselect.m (ns_decode_data_to_pasteboard): Handle file URL
	type.
	(ns_lisp_to_pasteboard, Fns_begin_drag): Handle new type `file'.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Improve DND documentation

	* doc/lispref/frames.texi (Drag and Drop):
	* src/xfns.c (Fx_begin_drag): Document that x-begin-drag may
	return immediately if no mouse buttons are held down.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Fix x_dnd_movement_frame detection on GTK builds

	* src/xterm.c (x_dnd_begin_drag_and_drop): Make sure movement
	frame is on the correct display.

2022-05-27  Paul Eggert  <eggert@cs.ucla.edu>

	Remove stray decl of nonexistent var

	* src/lisp.h (symbols_with_pos_enabled): Remove decl.

2022-05-27  Paul Eggert  <eggert@cs.ucla.edu>

	decoded-time-set-defaults now leaves DST alone

	* lisp/calendar/time-date.el (decoded-time-set-defaults):
	Don’t mess with decoded-time-dst (Bug#55635).

2022-05-27  Paul Eggert  <eggert@cs.ucla.edu>

	Fix unlikely null pointer dereference

	* src/xselect.c (Fx_get_atom_name): Fix unlikely core dump when
	build_string is called on a null pointer.  Found by GCC -fanalyzer.

2022-05-27  Paul Eggert  <eggert@cs.ucla.edu>

	Add ATTRIBUTE_DEALLOC to extern functions

	This can help static checking.  It’s not as important for static
	functions, where GCC can figure this stuff out own its own.
	* src/sysstdio.h (emacs_fopen): Add ATTRIBUTE_DEALLOC (fclose, 1).
	* src/tparam.h (tparam): Add ATTRIBUTE_DEALLOC_FREE.
	Include stdlib.h so that ‘free’ is declared.
	* src/xterm.h (x_get_atom_name): Add ATTRIBUTE_DEALLOC_FREE.

2022-05-27  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -Wsuggest-attribute-malloc

	* src/xterm.h (x_get_atom_name): Add ATTRIBUTE_MALLOC.

2022-05-27  Juri Linkov  <juri@linkov.net>

	Fix navigation in the *Completions* buffer and enable more tests (bug#54374)

	* lisp/ido.el: Use first-completion instead of next-completion.

	* lisp/minibuffer.el (completion--insert): Put completion--string
	text property on prefix and suffix as well.

	* lisp/simple.el (first-completion, last-completion): New commands.
	(next-completion): Rewrite to fix many bugs reported in
	bug#54374, bug#55289, bug#55430.
	(choose-completion): Use the text property completion--string that
	allows to select a completion when point is on its prefix or suffix.
	(switch-to-completions): Use first-completion instead of next-completion,
	and last-completion instead of previous-completion.

	* test/lisp/minibuffer-tests.el (completion-auto-select-test)
	(completion-auto-wrap-test, completions-header-format-test)
	(completions-affixation-navigation-test): Uncomment fixed lines.

2022-05-27  Eli Zaretskii  <eliz@gnu.org>

	Extend 'C-x 8 =' to produce characters with macron

	* lisp/international/iso-transl.el (iso-transl-char-map): Add
	several new sequences for characters with macron.  (Bug#55668)

2022-05-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/shell.el (shell): Query shell file name from `interactive`

	This avoids the use of the brittle `called-interactively-p`
	and makes it easier to start a shell buffer running another shell than
	your usual one.

2022-05-27  Eli Zaretskii  <eliz@gnu.org>

	Improve font selection on MS-Windows

	The Arial Unicode MS font claims in its USB (Unicode Subset
	Bitfields) values support for several scripts for which it
	doesn't actually have glyphs.  This sometimes caused Emacs to
	decide to use Arial Unicode MS for some script, only to
	discover later that there are no glyphs for that script's
	characters.  This change fixes the USB values according to
	actual font coverage, as determined by BabelMap.
	* src/w32font.c (add_font_entity_to_list): Fix USB values of Arial
	Unicode MS font according to its actual coverage of scripts.

2022-05-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Make make-decoded-time use -1 for dst unless given

	* lisp/calendar/time-date.el (make-decoded-time): DST -1 is the
	value for "doesn't know", not nil (bug#55635).

2022-05-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Make package-update-all also refresh the list

	* lisp/emacs-lisp/package.el (package-update-all): Also refresh
	package list.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Fix GNUstep build

	* src/nsterm.h (NSPasteboardNameGeneral): Fix definition.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Fix NS drag and drop on macOS

	* lisp/term/ns-win.el (gui-backend-set-selection):
	* src/nsselect.m (Fns_begin_drag): Fix deprecation warnings and
	selection/value mixup.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into x-window-xwidget

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Implement some drag and drop functions on NS

	* lisp/term/ns-win.el (ns-selection-exists-p):
	(gui-backend-set-selection):
	(x-begin-drag): New functions and selection types.
	* src/nsfns.m (Fns_get_resource):
	(Fns_set_resource):
	(Fx_server_max_request_size): Fix coding style.
	* src/nsselect.m (ns_decode_data_to_pasteboard):
	(ns_lisp_to_pasteboard):
	(ns_dnd_action_to_operation):
	(ns_dnd_action_from_operation):
	(Fns_begin_drag): New functions.
	(syms_of_nsselect): New subrs.
	* src/nsterm.h (EmacsWindow): New fields and messages.
	(NSPasteboardNameGeneral): New define.
	* src/nsterm.m ([EmacsView mouseDown:]): Store last mouse event.
	([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Clear that event.
	([EmacsWindow dealloc]): Free last mouse event.

2022-05-27  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/progmodes/asm-mode.el: Minor doc fixes.

2022-05-27  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in some progmodes

	* lisp/progmodes/asm-mode.el (asm-mode-map):
	* lisp/progmodes/bug-reference.el (bug-reference-map):
	* lisp/progmodes/erts-mode.el (erts-mode-map):
	* lisp/progmodes/flymake.el (flymake-mode-map)
	(flymake-diagnostics-buffer-mode-map):
	* lisp/progmodes/icon.el (icon-mode-map):
	* lisp/progmodes/js.el (js-mode-map):
	* lisp/progmodes/m4-mode.el (m4-mode-map):
	* lisp/progmodes/mixal-mode.el (mixal-mode-map):
	* lisp/progmodes/scheme.el (scheme-mode-map): Prefer defvar-keymap.

2022-05-27  Stefan Kangas  <stefankangas@gmail.com>

	Silence byte-compiler warning about x-pointer-invisible

	* lisp/avoid.el (x-pointer-invisible): Declare to silence
	byte-compiler.

2022-05-27  Juri Linkov  <juri@linkov.net>

	Fix more occurrences of renamed kmacro-keymap command

	* doc/emacs/kmacro.texi (Basic Keyboard Macro): Fix documentation
	after recent kmacro-redisplay command name change.

2022-05-27  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Javanese script (bug#55667)

	* lisp/language/indonesian.el ("Javanese"): New language environment.
	Add composition rules for Javanese.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars):
	Support Javanese.
	* lisp/leim/quail/indonesian.el ("javanese"): New input method.

	* etc/NEWS: Announce the new language environment and its
	input method.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	* etc/PROBLEMS: Document problems with PGTK input methods.

2022-05-27  Po Lu  <luangruo@yahoo.com>

	Update comments in some X code

	* src/xterm.c (x_parse_color): Update comment.
	(syms_of_xterm): Add new debugging option too.

2022-05-27  Eli Zaretskii  <eliz@gnu.org>

	Mention "unspecified-fg" and "unspecified-bg" in some doc strings

	* lisp/faces.el (face-foreground, face-background)
	(foreground-color-at-point, background-color-at-point):
	* lisp/color.el (color-name-to-rgb): Mention "unspecified-fg" and
	"unspecified-bg" pseudo-colors on TTY frames.  (Bug#55623)

2022-05-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	9283508fb2 Fix format specifiers in tramp-adb.el
	a9f17ccce3 ; Fix some doc typos and minor language issues

2022-05-26  Po Lu  <luangruo@yahoo.com>

	Fix XI scroll valuator reset on X Toolkit builds

	* src/xterm.c (handle_one_xevent): Reset valuators on XI_Leave
	if leave->event is an edit widget as well.

2022-05-26  Po Lu  <luangruo@yahoo.com>

	Improve lookup efficiency of color cache and prevent leaking

	* src/xterm.c (x_parse_color): Move recently used colors to the
	start of the cache and free unused entries when there are too
	many.
	(x_term_init, x_delete_display): Initialize and free new fields.
	* src/xterm.h (struct x_display_info): New field
	`color_names_length'.

2022-05-26  Po Lu  <luangruo@yahoo.com>

	Handle allocation errors when creating menu items on Haiku

	* src/haiku_support.cc (class EmacsMenuItem): Don't abort on
	failed strdup.

2022-05-26  Po Lu  <luangruo@yahoo.com>

	Fix longjmp/siglongjmp mixup

	* src/xterm.c (xm_drag_window_io_error_handler)
	(x_dnd_io_error_handler): Use `siglongjmp'.  Reported by Ken
	Brown <kbrown@cornell.edu>.

2022-05-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-05-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	package-activate-all: Use the quickstart more conservatively

	* lisp/emacs-lisp/package.el (package-activate-all): Don't use the
	quickstart file if some packages have already been activated.

2022-05-26  Sam Steingold  <sds@gnu.org>

	Avoid duplicates in `package-activated-list'

	* lisp/emacs-lisp/package.el (package-quickstart-refresh): Calling
	`package-activate-all' twice leads to duplicates in
	`package-activated-list' - avoid that.

2022-05-26  Juri Linkov  <juri@linkov.net>

	Test suite for Completions UI (bug#54374)

	* test/lisp/minibuffer-tests.el (completing-read-with-minibuffer-setup):
	New macro based on xdisp-tests--in-minibuffer.
	(completion-auto-help-test, completion-auto-select-test)
	(completion-auto-wrap-test, completions-header-format-test)
	(completions-affixation-navigation-test): New tests.

2022-05-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	eval.c: New functions `defvar-1` and `defconst-1` (bug#55156)

	The bytecode interpreter can't directly call special forms, so
	the byte-compiler usually converts special forms into some sequence of
	byte codes (basically, providing a duplicate definition of the special
	form).  There are still two exceptions to this: `defconst` and `defvar`,
	where the compiler instead generates a convoluted chunk of code like:

	    (funcall '(lambda (x) (defvar <sym> x <doc>)) <value>)

	where the quote makes sure we keep the function non-compiled, so as
	to end up running the special form at run time.

	Get rid of this workaround by introducing `defvar-1` and `defconst-1`
	which provide a *functional* interface to the functionality of the
	corresponding special form.

	* src/eval.c (defvar, Fdefvar_1, Fdefconst_1): New functions, extracted from
	`Fdefvar` and `Fdefconst`.
	(Fdefvar, Fdefconst): Use them.
	(syms_of_eval): `defsubr` the new functions.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-tmp-var): Delete const.
	(byte-compile-defvar): Simplify using the new functions.

	* doc/lispref/variables.texi (Defining Variables): Adjust the doc of
	`defvar` to reflect the actual semantics implemented.

2022-05-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	* test/lisp/files-resources/compile-utf8.el: Use lexical-binding

	* etc/themes/leuven-dark-theme.el: Use lexical-binding

2022-05-26  Hayden Shenk  <hayden.shenk@zetier.com>  (tiny change)

	Fix format specifiers in tramp-adb.el

	* lisp/net/tramp-adb.el (tramp-adb-get-device): Fix format
	specifiers for port.  (Bug#55651)

2022-05-26  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Balinese script (bug#55648)

	* lisp/language/indonesian.el ("Balinese"): New language environment.
	Add composition rules for Balinese.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Balinese.
	* lisp/leim/quail/indonesian.el ("balinese"): New input method.
	* lisp/loadup.el: Preload lisp/language/indonesian.el.

	* etc/HELLO: Add a Balinese greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.

2022-05-26  Mattias Engdegård  <mattiase@acm.org>

	Faster and less recursive byte-compile--first-symbol-with-pos

	* lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos)
	(byte-compile--warning-source-offset):
	Remove recursion for cdr-traversal of lists, and optimize (bug#55414).

2022-05-26  Po Lu  <luangruo@yahoo.com>

	Handle alternate actions for Motif drop targets

	* src/xterm.c (xm_side_effect_from_action): Handle
	`XdndActionAsk'.
	(xm_operations_from_actions): New function.
	(xm_send_top_level_leave_message, x_dnd_cleanup_drag_and_drop)
	(x_dnd_update_state, handle_one_xevent, x_connection_closed):
	Use those actions when building a side effect.
	(x_dnd_begin_drag_and_drop): Keep track of the set of
	alternative drag-and-drop actions.

2022-05-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Make comp--native-compile delete the temp file it creates

	* lisp/emacs-lisp/comp.el (comp--native-compile): Delete the
	temporary files we create (bug#55611).

2022-05-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Make memory-report not bug out with symbols with positions

	* lisp/emacs-lisp/memory-report.el (memory-report--object-size-1):
	Don't bug out when there are symbols with positions.

2022-05-26  Po Lu  <luangruo@yahoo.com>

	Fix the `x_trace_wire' option

	* src/xterm.c (x_trace_wire):
	(x_term_init): Fix debugging code for modern C and Xlib.

2022-05-26  Po Lu  <luangruo@yahoo.com>

	Use x_get_atom_name for some more things

	* src/xterm.c (x_dnd_send_unsupported_drop, x_dnd_send_drop):
	Use x_get_atom_name instead of XGetAtomName.

2022-05-25  Po Lu  <luangruo@yahoo.com>

	* src/xselect.c (Fx_register_dnd_atom): Use x_intern_cached_atom.

2022-05-25  Po Lu  <luangruo@yahoo.com>

	Make X error checking more asynchronous

	This makes some operations (such as x-get-atom-name and
	x-change-window-property) up to 2600x faster by avoiding calls
	to XSync when setting up an error handler, and when checking for
	or uncatching errors if all requests were already processed.

	* src/xterm.c (X_COMPARE_SERIALS): New macro.
	(struct x_error_message_stack): Add new field `first_request'.
	(x_find_error_handler): New function.
	(x_error_catcher): New parameter `stack'.  Use it instead.
	(x_catch_errors_with_handler): Keep a record of the next
	protocol request serial inside the stack entry.
	(x_uncatch_errors, x_check_errors, x_had_errors_p, x_clear_errors)
	(x_error_handler): Avoid XSync if all requests were processed by
	the X server and look for the error handler matching the display
	and request serial when processing errors.

2022-05-25  Po Lu  <luangruo@yahoo.com>

	Improve x_get_atom_name for some predefined atoms

	* src/xterm.c (x_get_atom_name): Handle XSETTINGS and cm atoms.

2022-05-25  Po Lu  <luangruo@yahoo.com>

	Fix 32-bit warnings again

	* src/print.c (struct print_stack_entry): Make
	u.list.tortoise_idx intmax_t.

2022-05-25  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Limbu script (bug#55621)

	* lisp/language/indian.el ("Limbu"): New language environment.
	Add composition rules for Limbu.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Limbu.
	* lisp/leim/quail/indian.el ("limbu"): New input method.

	* etc/HELLO: Add a Limbu greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.

2022-05-25  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	86b49d5865 ; * etc/NEWS: Announce changes in 'desktop-kill'.  (Bug#55...
	d5ccf2621a ; Fix last change
	f1c1fd7184 Improve documentation of mail-user-agent.
	b05d1e9b98 ; * lisp/desktop.el: Update the commentary.  (Bug#55560)
	139bfa1a08 More fixes in abbrev.el doc strings
	d80dea6036 Add note about Tramp completion to completion-styles doc s...
	9e7c0cf57d Remove mention of removed nnimap-nov-is-evil variable
	90aae0bca2 Improve documentation strings and prompts in abbrev.el
	dfa3e6f424 Restore the Fselect_window call in gui_consider_frame_title.
	de35e9728f Advise against settings in the MS-Windows system registry
	3ffa3d3403 ; Minor addition to make-tarball.txt
	7dc026f9ea Fix kmacro-keymap binding after previous change
	4f0fd54bc4 Add glossary entries for "interactively"
	af1c05a3c4 Fix the name of a kmacro command.

	# Conflicts:
	#	etc/NEWS
	#	lisp/abbrev.el

2022-05-25  Juri Linkov  <juri@linkov.net>

	* lisp/subr.el (insert-for-yank): Add nil to run-hook-wrapped to keep looping.

2022-05-25  Po Lu  <luangruo@yahoo.com>

	Lower the roundtrip overhead of x-get-atom-name by 50% for common atoms

	* src/xselect.c (Fx_get_atom_name):
	* src/xterm.c (x_dnd_begin_drag_and_drop): Use that instead.  Don't
	sync to handle errors if using `x_get_atom_name' resulted in no
	protocol request being made.
	(x_get_atom_name): New function.
	* src/xterm.h: Update prototypes.

2022-05-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Make yank-transform-functions into defvar

	* doc/lispref/text.texi (Yanking): Adjust.
	* lisp/simple.el (yank-transform-functions): Make into defvar
	because it's not that useful as a user option.

2022-05-25  Jim Porter  <jporterbugs@gmail.com>

	Reset 'eshell-in-pipeline-p' when interpolating commands

	* lisp/eshell/esh-cmd.el (eshell-subcommand-bindings)
	(eshell-command-to-value): Set 'eshell-in-pipeline-p' to nil.

	* test/lisp/eshell/eshell-tests.el
	(eshell-test/subcommand-reset-in-pipeline)
	(eshell-test/lisp-reset-in-pipeline): New tests (bug#55620).

2022-05-25  Paul W. Rankin  <pwr@bydasein.com>

	Change variable which-func-unknown to "n/a"

	* lisp/progmodes/which-func.el (which-func-unknown): Change string
	displayed in mode-line from "???" to "n/a"; the former appears to
	indicate an error whereas the latter is more indicative that the
	current function is not known.

2022-05-25  Po Lu  <luangruo@yahoo.com>

	Add more predefined atoms for the benefit of DND code

	* src/xterm.c (x_intern_cached_atom): Handle `CARDINAL' and
	`WINDOW' as well.

2022-05-25  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap in url/*.el

	* lisp/url/url-cookie.el (url-cookie-mode-map):
	* lisp/url/url-dired.el (url-dired-minor-mode-map): Prefer
	defvar-keymap.

2022-05-25  Stefan Kangas  <stefankangas@gmail.com>

	Remove some ancient Emacs compat code

	* lisp/url/url-util.el (url-percentage): Remove Emacs 19 compat
	code.

	* lisp/erc/erc-backend.el (erc-server-coding-system):
	* lisp/gnus/mm-util.el (mm-iso-8859-x-to-15-table): Remove Emacs
	19 compat code; coding-system-p is fboundp.

	* lisp/progmodes/cfengine.el (cfengine-fill-paragraph): Remove Emacs
	21 compat code.

2022-05-25  Po Lu  <luangruo@yahoo.com>

	Improve atom interning in `x-change-window-property'

	* src/xfns.c (Fx_change_window_property): Improve doc string and
	use `x_intern_cached_atom'.
	* src/xterm.c (x_intern_cached_atom): New argument
	`predefined_only'.  All callers changed.
	* src/xterm.h: Update prototypes.

2022-05-24  Po Lu  <luangruo@yahoo.com>

	Fix cursor color adjustment on Haiku

	* src/haikufns.c (haiku_set_foreground_color): Maybe set cursor
	color correctly if it was equal to the old foreground color.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't have edebug bug out if C-x is rebound

	* lisp/emacs-lisp/edebug.el (edebug-global-prefix): Don't bug out
	if C-x has been rebound (bug#55607).

2022-05-24  Po Lu  <luangruo@yahoo.com>

	Add more atoms that don't need a roundtrip to intern

	* src/xterm.c (x_intern_cached_atom): Handle dpyinfo atoms that
	depend on the screen number and common selection atoms.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Update edebug comments

	* lisp/emacs-lisp/edebug.el: Update function name in comments
	(bug#55607).

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix ert-run-tests-batch-and-exit doc string typo

	* lisp/emacs-lisp/ert.el (ert-run-tests-batch-and-exit): Fix doc
	string typo.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Autoload package-update-all

	* lisp/emacs-lisp/package.el (package-update-all): Autoload and
	tweak querying so that -f works.

2022-05-24  Po Lu  <luangruo@yahoo.com>

	Fix compilation on GTK when Xrandr is not present

	* src/xterm.c (x_term_init): Make term always present on GTK.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix comp-mvar doc string quoting

	* lisp/emacs-lisp/comp.el (comp-mvar): Fix quoting of symbol in
	doc string.

2022-05-24  Mattias Engdegård  <mattiase@acm.org>

	Remove f90-mode regexp ambiguity (bug#17222)

	* lisp/progmodes/f90.el (f90-font-lock-keywords-2):
	Modify regexp to be better-behaved.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't use `format-message' to make doc strings in erc-backend

	* lisp/erc/erc-backend.el (define-erc-response-handler): Use
	`format' here instead of `format-message' since Emacs will expand
	the doc string later when the user asks for help about the symbols
	defined.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix a byte compilation warning in electric.el

	* lisp/electric.el (electric-quote-mode): Quote a naked ‘ character.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make byte compilation warn about wrong quoting in doc strings

	* lisp/emacs-lisp/bytecomp.el
	(byte-compile-docstring-length-warn): Made into obsolete alias.
	(byte-compile-docstring-style-warn): Also warn about other
	stylistic issues.
	(byte-compile-file-form-autoload, byte-compile-file-form-defvar)
	(byte-compile-file-form-defvar-function, byte-compile-lambda)
	(byte-compile-defvar, byte-compile-file-form-defalias): Adjust callers.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix the final divergent single quote usages in doc strings

	* lisp/view.el (view-mode-map):
	* lisp/repeat.el (repeat-is-really-this-command):
	* lisp/help.el (substitute-command-keys):
	* lisp/electric.el (electric-quote-mode):
	* lisp/cedet/srecode/texi.el (srecode-texi-texify-docstring):
	* lisp/cedet/semantic/sort.el
	(semantic-orphaned-member-metaparent-type): Audit usages of single
	quotes in doc strings.

2022-05-24  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix interplay between string fences and electric-pair-mode.

	This is an amendment to the fix for bug #55230.

	* lisp/progmodes/cc-defs.el: (c-with-string-fences): Add an edebug spec.

	* lisp/progmodes/cc-cmds.el: (c-electric-pound, c-electric-brace)
	(c-electric-slash, c-electric-star, c-electric-semi&comma, c-electric-colon)
	(c-electric-lt-gt, c-electric-paren): Put the final
	c--call-post-self-insert-hook-more-safely outside of the functions'
	c-with-string-fences.
	(c-electric-brace, c-electric-lt-gt, c-electric-paren): Put the calls to
	electric-pair-post-self-insert-function outside of c-with-string-fences.

2022-05-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	Make `yank-transform-functions` a proper hook

	* lisp/subr.el (insert-for-yank): Use `run-hook-wrapped` to run
	`yank-transform-functions`.
	* lisp/simple.el (yank-transform-functions): Adjust accordingly.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix issue with nativecomp tests leaving files behind in /tmp

	* test/src/comp-tests.el (comp-deftest): Ensure that no files are left
	behind (bug#55611).

2022-05-24  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Buhid and Tagbanwa scripts (bug#55610)

	* lisp/language/philippine.el ("Buhid"): New language environment.
	("Tagbanwa"): New language environment.
	Add input methods for Buhid and Tagbanwa.
	Add sample text for Tagbanwa.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Buhid and Tagbanwa.
	* lisp/leim/quail/philippine.el ("buhid"): New input method.
	("tagbanwa"): New input method.

	* etc/HELLO: Add a Tagbanwa greeting.
	* etc/NEWS: Announce the new language environments and their
	input methods.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up a test file in /tmp

	* test/src/buffer-tests.el (test-restore-buffer-modified-p): Clean
	up autosave file in /tmp.

2022-05-24  Po Lu  <luangruo@yahoo.com>

	Add more error checking to some X functions

	* src/xfns.c (Fx_change_window_property, Fx_delete_window_property)
	(Fx_window_property, Fx_window_property_attributes): Check for
	errors in case the window is invalid.  Also use better function
	for interning prop names.

	* src/xterm.c (struct x_atom_ref): New structure.
	(x_atom_refs): New list.  Extract from x_term_init.
	(x_intern_cached_atom): New function.  Use it in several places
	to avoid interning common atoms.
	(x_term_init): Adjust accordingly.

	* src/xterm.h: Update prototypes.

2022-05-24  Po Lu  <luangruo@yahoo.com>

	Prevent errors when Lisp code asks for props of invalid windows

	* src/xfns.c (Fx_window_property):
	(Fx_window_property_attributes): Catch X errors.

2022-05-24  Po Lu  <luangruo@yahoo.com>

	Handle invalid NEWS files during describe-function

	* src/help-fns.el (help-fns--first-release): Don't error if
	searching for a heading fails.

2022-05-24  Jim Porter  <jporterbugs@gmail.com>

	Keep subcommands in pipelines from clobbering the head/tail processes

	* lisp/eshell/esh-cmd.el (eshell-execute-pipeline): Use 'make-symbol'
	for headproc and tailproc.
	(eshell-do-pipelines, eshell-do-pipelines-synchronously): Adapt to the
	above.

	* test/lisp/eshell/eshell-tests.el (eshell-test/pipe-subcommand)
	(eshell-test/pipe-subcommand-with-pipe): New test.

	* doc/misc/eshell.texi (Bugs and ideas): Remove item about piping to
	process from loop; this commit fixes it (bug#55590).

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak remapping fix for set-transient-map

	* lisp/subr.el (set-transient-map): The remapping doesn't have to
	be in this map.

2022-05-24  Štěpán Němec  <stepnem@gmail.com>

	Add elisp-eldoc-var-docstring-with-value function

	* lisp/progmodes/elisp-mode.el
	(elisp-eldoc-var-docstring-with-value): New function (bug#55096).

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the nativecomp test eln directory more reliably be removed

	* lisp/startup.el (startup-redirect-eln-cache, normal-top-level):
	Don't create the nativecomp directory here, because this led to
	brittle deletions of the directory -- there would be several
	instances of the directory left over after a test run.

	* lisp/emacs-lisp/ert.el (ert-run-tests-batch-and-exit): Create
	the nativecomp directory.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Further audits of single quotes in Lisp doc strings

	* test/manual/etags/el-src/emacs/lisp/progmodes/etags.el
	(tags-apropos-additional-actions):
	* lisp/window.el (delete-window-choose-selected):
	* lisp/vc/ediff-merg.el (ediff-combination-pattern):
	* lisp/vc/diff.el (diff-no-select):
	* lisp/tab-bar.el (tab-bar-new-tab-choice):
	* lisp/simple.el (next-error-message-highlight):
	(backward-delete-char-untabify):
	* lisp/ses.el (ses-jump-cell-name-function):
	* lisp/org/org.el (org-latex-to-html-convert-command):
	* lisp/org/org-agenda.el (org-agenda-sorting-strategy):
	* lisp/net/tramp.el (tramp-default-file-modes):
	* lisp/net/newst-treeview.el
	(newsticker-treeview-use-feed-name-from-url-list-in-treeview):
	* lisp/net/eww.el (eww-auto-rename-buffer):
	* lisp/mwheel.el (mouse-wheel-scroll-amount):
	* lisp/mail/rmail.el (rmail-re-abbrevs):
	* lisp/info.el (Info-history-forward-menu):
	* lisp/gnus/nnselect.el (nnselect-retrieve-headers-override-function):
	* lisp/gnus/gnus-start.el (gnus-subscribe-hierarchical-interactive):
	* lisp/fringe.el (fboundp):
	* lisp/eshell/esh-var.el (eshell-variable-aliases-list):
	* lisp/emacs-lisp/checkdoc.el (checkdoc-column-zero-backslash-before-paren):
	* lisp/dired-aux.el (dired-confirm-shell-command):
	* lisp/calendar/calendar.el (calendar-time-zone-style):
	* lisp/ansi-color.el (ansi-color-faces-vector):
	(ansi-color-names-vector): Audit use of various single quotes in
	Lisp doc strings.

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Audit symbol quoting in Lisp doc strings

	* lisp/vc/vc-svn.el (vc-svn-dir-status-files):
	* lisp/so-long.el (so-long-mode-maintain-preserved-variables):
	* lisp/help-fns.el (help-fns--most-relevant-active-keymap):
	* lisp/gnus/nnselect.el (nnselect-get-artlist):
	(nnselect-store-artlist):
	* lisp/forms.el (forms-enumerate):
	* lisp/ffap.el (ffap-string-at-point):
	* lisp/emacs-lisp/byte-run.el (define-obsolete-variable-alias):
	Audit symbol quoting in Lisp doc strings.

2022-05-24  Michael Albinus  <michael.albinus@gmx.de>

	Add ".epub" to Tramp archive file suffixes.

	* doc/misc/tramp.texi (Archive file names):
	* lisp/net/tramp-archive.el (tramp-archive-suffixes): Add ".epub".

2022-05-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Audit quoting symbols in C doc strings

	* test/manual/etags/c-src/emacs/src/keyboard.c (Frecursive_edit):
	* src/xfns.c (syms_of_xfns):
	* src/xdisp.c (Fwindow_text_pixel_size):
	(syms_of_xdisp):
	* src/w32notify.c (Fw32notify_add_watch):
	(Fw32notify_add_watch):
	* src/frame.c (Fframe_child_frame_border_width):
	* src/comp.c (Fcomp__subr_signature):
	* src/alloc.c (Fgarbage_collect):
	* lib-src/make-docfile.c (scan_c_stream): Audit quoting symbols in C
	doc strings.

2022-05-24  Po Lu  <luangruo@yahoo.com>

	Allow the user to fix `x-mouse-click-focus-ignore-position' on some systems

	* src/xterm.c (handle_one_xevent): Apply that variable instead.
	(syms_of_xterm): Update doc string and add new option to adjust
	the focus click timeout.

2022-05-24  Po Lu  <luangruo@yahoo.com>

	Fix use of wrong event structure handling XI_Enter events

	* src/xterm.c (handle_one_xevent): Use `enter' instead of `xev'
	to set the mouse click timeout.

2022-05-23  Po Lu  <luangruo@yahoo.com>

	* src/nsmenu.m (ns_menu_show): Use SAFE_ALLOCA.

2022-05-23  Po Lu  <luangruo@yahoo.com>

	Minor fixes to cursor color handling on Haiku

	* src/haikufns.c (haiku_decode_color): New function.
	(haiku_set_foreground_color, haiku_set_background_color)
	(haiku_set_cursor_color, haiku_set_mouse_color): Use that
	function to decode colors instead.  Also set cursor GC
	foreground when setting background color.

	* src/haikuterm.c (haiku_merge_cursor_foreground): Fix color
	equality test.

2022-05-23  Po Lu  <luangruo@yahoo.com>

	Only send fallback MONITORS_CHANGED_EVENT when dimensions really changed

	* src/xterm.c (handle_one_xevent): Test that root window
	configure width and height are not the same as the previously
	recorded ones.

2022-05-23  Eli Zaretskii  <eliz@gnu.org>

	Avoid compiler warnings on macOS (bug#55595)

	* configure.ac: Don't use -Wunknown-pragmas with Clang.

	* src/comp.c (load_comp_unit): Avoid Clang compilation warning.

2022-05-23  Mattias Engdegård  <mattiase@acm.org>

	Less wrong printed circular list tail index (bug#55395)

	When printing a circular list and `print-circle` is nil, use a
	somewhat more meaningful ". #N" tail index.  The previous method for
	calculating that index was based on Floyd circularity detection being
	used so it had been broken ever since the change to Brent's algorithm.

	The new index is correct with respect to the start of the list itself
	which is what it used to be before being completely broken.
	It does not take into account the nesting depth of the list context.

	* src/print.c (struct print_stack_entry, print_object):
	Keep track of the tortoise index (which is cheap) instead of trying
	to derive it from the printed element index.
	* test/src/print-tests.el (print-test-rho, print-circular):
	New test.

2022-05-23  Eli Zaretskii  <eliz@gnu.org>

	* src/w32menu.c (w32_menu_show): Use SAFE_ALLOCA.  (Bug#55068)

2022-05-23  Eli Zaretskii  <eliz@gnu.org>

	Fix saveplace.el when desktop.el restores non-ASCII buffers

	* lisp/saveplace.el (load-save-place-alist-from-file): Bind
	'coding-system-for-read' to nil, so that the 'coding:' cookie in
	the save-place file takes effect.  (Bug#55592)

2022-05-23  Tino Calancha  <tino.calancha@gmail.com>

	zap-to-char: Fix interactive specification

	* lisp/simple.el (zap-to-char): Include t in the list.

2022-05-23  Po Lu  <luangruo@yahoo.com>

	Adapt last change to Haiku as well

	* src/haikumenu.c (digest_menu_items, haiku_menu_show): Use
	SAFE_ALLOCA for various temporary buffers.

2022-05-23  Po Lu  <luangruo@yahoo.com>

	Fix stack overflows with large popup menus

	* src/xmenu.c (x_menu_show): Allocate various stacks with
	SAFE_ALLOCA.

2022-05-23  Po Lu  <luangruo@yahoo.com>

	Fix default child-frame-border-width on PGTK

	* src/pgtkfns.c (Fx_create_frame): Make default
	`child-frame-border-width' nil.  (bug#55588)

2022-05-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve command-error-function discoverability

	* lisp/subr.el (error, user-error): Point to command-error-function.

	* src/keyboard.c (syms_of_keyboard): Add an example (bug#40750).

2022-05-23  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Hanunoo script (bug#55581)

	* lisp/language/philippine.el ("Hanunoo"): New language environment.
	Add composition rules for Hanunoo.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Hanunoo.
	* lisp/leim/quail/philippine.el ("hanunoo"): New input method.

	* etc/HELLO: Add a Hanunoo greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.

2022-05-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make remapped keys work in set-transient-map

	* lisp/subr.el (set-transient-map): Make remapped keys work in
	transient maps (bug#40096).

2022-05-23  Po Lu  <luangruo@yahoo.com>

	Fix coding style of recent change

	* src/emacs.c (main): Fix coding style by putting the = operator
	on the right row.

2022-05-23  Po Lu  <luangruo@yahoo.com>

	Implement monitor change functions on Haiku

	* src/haiku_io.c (haiku_len): Handle new event type.
	* src/haiku_support.cc (class EmacsScreenChangeMonitor): New
	class.
	(class Emacs, Emacs): Create new screen change monitor.
	(DispatchMessage): Update fullscreen state if the screen
	changed.
	(SetFullscreen): Don't punt if fullscreen mode is identical.

	* src/haiku_support.h (enum haiku_event_type): New event
	`SCREEN_CHANGE_EVENT'.
	(struct haiku_screen_changed_event): New struct.

	* src/haikuterm.c (haiku_read_socket): Handle new event.

2022-05-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `d' in Dired skip dot files

	* lisp/dired.el (dired-mark): Skip dot files (bug#38729).  This
	makes `C-u 10 d' (etc) consistent with marking the next ten lines
	with the mouse and then hitting `d'.

2022-05-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Include development data in --version output

	* src/emacs.c (main): Include development into in --version output
	(bug#38657).

2022-05-23  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (switch-to-buffer-other-tab): Use pop-to-buffer (bug#55582).

	Replace display-buffer with pop-to-buffer that sets the current buffer
	explicitly.

2022-05-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow extending 'save-some-buffers'

	* lisp/abbrev.el (abbrev--possibly-save): Separated out from
	`save-some-buffers'.
	(save-some-buffers-functions): Add to the save function.

	* lisp/files.el (save-some-buffers-functions): New variable.
	(save-some-buffers): Use it.
	(save-buffers-kill-emacs): Also use it to see if we have something
	to save (bug#55579).

2022-05-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make bootstrap remove more generated files

	* Makefile.in (bootstrap-clean): Remove lisp/leim/ja-dic/.

2022-05-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make bootstrap remove the native-lisp/ directory

	* Makefile.in (bootstrap-clean): Remove the native-lisp/ directory.

2022-05-23  Po Lu  <luangruo@yahoo.com>

	Minor fixes to PGTK child frames

	* src/gtkutil.c (xg_check_special_colors): Handle child frames
	correctly.
	* src/pgtkfns.c (pgtk_set_child_frame_border_width): Synchronize
	code from X.  (bug#55588)
	* src/pgtkmenu.c (pgtk_menu_show, pgtk_dialog_show): Allow in
	child frames.  There are no problems here.
	* src/pgtkterm.c (pgtk_mouse_position): Clean up coding style.

2022-05-22  Po Lu  <luangruo@yahoo.com>

	Implement monitor change functions on GNUstep

	* src/nsfns.m (Fns_display_monitor_attributes_list): Fix coding
	style.
	* src/nsterm.m (nstrace_leave, nstrace_restore_global_trace_state)
	(nstrace_fullscreen_type_name): Fix coding style.
	(ns_displays_reconfigured, ns_term_init): Make a record of the
	previous display attributes list and avoid storing duplicate
	events.
	([EmacsApp init]): Listen for
	NSApplicationDidChangeScreenParametersNotification.
	([EmacsApp updateMonitors:]): New method.
	(syms_of_nsterm): New staticpro.

2022-05-22  Po Lu  <luangruo@yahoo.com>

	Handle screen size changes if the RandR library isn't available

	* src/xterm.c (handle_one_xevent): [!HAVE_XRANDR]: Store
	MONITORS_CHANGED_EVENT upon root window reconfiguration.

2022-05-22  Po Lu  <luangruo@yahoo.com>

	Fix `gui-backend-selection-owner-p' on Haiku

	* src/haiku_select.cc (be_update_clipboard_count): New function.
	(be_set_clipboard_data): Update clipboard counts.
	(BClipboard_owns_clipboard, clipboard_owner_p)
	(BClipboard_owns_primary, primary_owner_p)
	(BClipboard_owns_secondary, secondary_owner_p): Rename functions
	somewhat.
	(be_clipboard_owner_p): New function.
	* src/haikuselect.c (Fhaiku_selection_put)
	(Fhaiku_selection_owner_p): Update selection counts as well.
	* src/haikuselect.h: Update prototypes.

2022-05-22  Po Lu  <luangruo@yahoo.com>

	Use GDK for handling monitor changes when built with GTK

	* src/xterm.c (x_monitors_changed_cb): New function.
	(handle_one_xevent): Don't handle RRNotify and
	RRScreenChangeNotify on GTK.
	(x_term_init): Connect to GdkScreen::monitors-changed instead of
	selecting for RRNotify events.
	(mark_xterm): Also mark `last_monitor_attributes_list' on GTK.
	* src/xterm.h (struct x_display_info): Enable
	`last_monitor_attributes_list' on GTK builds as well.

2022-05-22  F. Jason Park  <jp@neverwas.me>

	Recognize DCC SSEND when receiving files in erc-dcc

	* lisp/erc/erc-dcc.el (erc-dcc-open-network-stream): Use TLS
	for new connections when :secure flag is set.
	(erc-dcc-do-GET-command): Set secure flag when user explicitly passes
	an "-s" option.
	(erc-dcc-do-LIST-command): Show an "s" to indicate a secure connection
	when applicable.
	(erc-dcc-query-handler-alist): Add extra items for "SSEND", etc.
	(erc-dcc-handle-ctcp-send): Set secure flag when a leading "S" appears
	in the command type.

2022-05-22  F. Jason Park  <jp@neverwas.me>

	Accommodate nonstandard turbo file senders in erc-dcc

	* lisp/erc/erc-dcc.el (erc-dcc-list): Document optional :turbo item.
	(erc-message-english-dcc-list-{head,line,item}): Adjust format strings
	to make room for "(T)" turbo indicator.
	(erc-dcc-do-GET-command): Optionally set :turbo in `erc-dcc-list'
	entry when passed "-t" in the "/DCC GET" slash command.  Also add
	switch to command line in front-matter Commentary, but refrain from
	publicizing further because our implementation is only defensive and
	only for receiving.
	(erc-dcc-do-LIST): Print message with new format specifier for turbo
	status.
	(erc-dcc-ctcp-query-send-regexp): Account for T- and S-prefixed
	commands.  Receiving from an SSEND-capable sender will be added in a
	subsequent commit.
	(erc-dcc-handle-ctcp-send): Set :turbo item in `erc-dcc-list' member
	when new match group is nonempty.
	(erc-dcc--X-send-final-turbo-ack): New internal variable and potential
	future option for extreme corner cases involving maverick turbo
	senders, like WeeChat, who don't use the TSEND command variant.
	(erc-dcc-get-filter): Don't send when turbo is active.

	* test/lisp/erc/erc-dcc-tests.el: Add new file.
	(Bug#54458)

2022-05-22  F. Jason Park  <jp@neverwas.me>

	Allow matching against string values in erc-dcc-member

	* lisp/erc/erc-dcc.el (erc-dcc-member): Be more tolerant in the
	catch-all case by testing for equality instead of identity.
	(erc-dcc-do-GET-command): Pass file name when querying
	`erc-dcc-member'. (Bug#54458)

2022-05-22  F. Jason Park  <jp@neverwas.me>

	Don't send reports in erc-dcc-get-filter when nested

	* lisp/erc/erc-dcc.el (erc-dcc-get-filter): Don't bother sending a
	"received so far" receipt if another attempt is still ongoing.
	(Bug#54458)

2022-05-22  F. Jason Park  <jp@neverwas.me>

	Summarize failed transfers in erc-dcc

	* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel): Display error when total
	byte count received is lower than expected.
	(erc-message-english-dcc-get-failed): Add `dcc-get-failed' to the
	English messages catalog.
	(erc-dcc-get-file): Tweak initialization of `erc-dcc-entry-data'.
	(Bug#54458)

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/cedet/semantic/fw.el: Fix typo

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	mode-local: Revert the deprecation of buffer-local overrides

	Obviously, I did not understand how the <foo>--install-parser was invoked.

	Revert "mode-local: Deprecate buffer-local overrides"
	Revert "semantic-install-function-overrides: Declare obsolete"
	Revert "wisent.el: Prefer `define-mode-local-override`"

	This reverts commits 91bc24c46768aab4a851c87edaea05c7476ff779,
	d2e0d1452b976a51579cf044257326850804c562, and
	3294ad44ebcd024b4ada68d00bedca33acc52de6.

2022-05-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix bytecomp-test--with-suppressed-warnings test

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-test--with-suppressed-warnings): Adjust test to change
	in warning message.

2022-05-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix previous warning suppression change

	* lisp/emacs-lisp/bytecomp.el (byte-compile-emit-callargs-warn)
	(byte-compile-subr-wrong-args):
	* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings):
	* lisp/cedet/semantic/fw.el (semantic-install-function-overrides):
	The `wrong-args' warning is really called `callargs'.

2022-05-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation warning in semantic-install-function-overrides

	* lisp/cedet/semantic/fw.el (semantic-install-function-overrides):
	Suppress message about wrong number of arguments.

2022-05-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow suppressing messages about the wrong number of arguments

	* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Add
	`wrong-args'.
	* lisp/emacs-lisp/bytecomp.el (byte-compile-emit-callargs-warn)
	(byte-compile-subr-wrong-args): Allow suppressing wrong number of
	arguments.

2022-05-22  Juri Linkov  <juri@linkov.net>

	Enable keys M-down, M-up, M-RET for in-buffer completion

	* lisp/minibuffer.el (completion-in-region-mode-map): Add keybindings M-<up>
	for minibuffer-previous-completion, M-<down> for minibuffer-next-completion,
	M-RET for minibuffer-choose-completion.
	(completion-in-region-mode): Set buffer-local
	'minibuffer-completion-auto-choose' to nil.
	(minibuffer-next-completion): Get the value of
	'minibuffer-completion-auto-choose' from the minibuffer.
	(minibuffer-previous-completion): Simplify by delegating to
	'minibuffer-next-completion'.

	* doc/emacs/programs.texi (Symbol Completion): Add description of keys
	M-down, M-up, M-RET.

	https://lists.gnu.org/archive/html/emacs-devel/2022-05/msg00916.html

2022-05-22  Alan Mackenzie  <acm@muc.de>

	CC Mode: Restore string fence properties at each relevant external entry point

	This fixes bug #55230.

	* lisp/progmodes/cc-defs.el (c-string-fences-set-flag, c-with-string-fences):
	New variable and macro.

	* lisp/progmodes/cc-mode.el (c-called-from-text-property-change-p): Add
	remove-text-properties to the list of accepted functions.
	(c-clear-string-fences, c-restore-string-fences): Surround the functions'
	innards with c-save-buffer-state to prevent text property changes causing
	change functions to be called.
	(c-before-change, c-after-change, c-font-lock-fontify-region): Replace the
	explicit calls to c-restore-string-fences and c-clear-string-fences with
	invocations of the new macro c-with-string-fences.

	* lisp/progmodes/cc-awk.el (c-awk-extend-and-syntax-tablify-region)
	(c-awk-end-of-defun)
	* lisp/progmodes/cc-cmds.el (c-show-syntactic-information)
	(c-electric-backspace, c-hungry-delete-backwards, c-electric-delete-forward)
	(c-hungry-delete-forward, c-electric-pound, c-electric-brace)
	(c-electric-slash, c-electric-star, c-electric-semi&comma, c-electric-colon)
	(c-electric-lt-gt, c-electric-paren, c-beginning-of-defun, c-end-of-defun)
	(c-display-defun-name, c-mark-function, c-beginning-of-statement)
	(c-end-of-statement, c-indent-command, c-indent-exp, c-indent-defun)
	(c-indent-line-or-region, c-fill-paragraph, c-indent-new-comment-line)
	(c-context-line-break)
	* lisp/progmodes/cc-guess.el (c-guess-region-no-install): These are all
	"boundary" functions to CC Mode.  Surround each by c-with-string-fences.

2022-05-22  kobarity  <kobarity@gmail.com>

	Don't font-lock invalid invalid class/function names

	* lisp/progmodes/python.el (python-font-lock-keywords-level-1):
	Don't font-lock invalid invalid class/function names (bug#55573).

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	mode-local: Deprecate buffer-local overrides

	* lisp/cedet/mode-local.el (mode-local-bind): Make all args mandatory.
	Deprecate the use of a nil `mode` argument.

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	semantic-install-function-overrides: Declare obsolete

	* lisp/cedet/semantic/fw.el (semantic-install-function-overrides):
	Declare obsolete.

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	wisent.el: Prefer `define-mode-local-override`

	* lisp/cedet/semantic/wisent.el (wisent--parse-stream): Rename from
	`wisent-parse-stream` and mark the old name obsolete.
	(semantic-parse-stream): Override with `define-mode-local-override`.

	* lisp/cedet/semantic/wisent/grammar.el
	(semantic-grammar-setupcode-builder): Don't override
	`semantic-parse-stream` manually here via
	`semantic-install-function-overrides`.

	* lisp/cedet/semantic/grm-wy-boot.el: Refresh.

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	wisent/grammar.el: Prefer `define-mode-local-override`

	* lisp/cedet/semantic/wisent/grammar.el
	(semantic-grammar-parsetable-builder, semantic-grammar-setupcode-builder):
	Override with `define-mode-local-override`.
	(wisent-grammar-mode): Don't override them with
	`semantic-install-function-overrides`.

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	cedet/html.el: Prefer `define-mode-local-override`

	* lisp/cedet/semantic/html.el (semantic-tag-components): Override via
	`define-mode-local-override`.
	(semantic-default-html-setup): Don't override via
	`semantic-install-function-overrides`.

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	bovine/grammar.el: Prefer `define-mode-local-override`

	* lisp/cedet/semantic/bovine/grammar.el
	(semantic-grammar-parsetable-builder, semantic-grammar-setupcode-builder):
	Override with `define-mode-local-override`.
	(bovine-grammar-mode): Don't override them with
	`semantic-install-function-overrides`.

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	cedet/texi.el: prefer `define-mode-local-override`

	* lisp/cedet/semantic/texi.el (semantic-parse-region)
	(semantic-parse-changes): Override with `define-mode-local-override`.
	(semantic-default-texi-setup): Don't override them with
	`semantic-install-function-overrides`.

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	comp.el: Cosmetic changes

	* lisp/emacs-lisp/comp.el (comp-run-async-workers): Tweak code.
	(comp-run-async-workers): Don't set `buffer-read-only` directly.
	(native--compile-async): Fix misuse of "path".

2022-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	Run `minibuffer-exit-hook` in the right buffer

	* src/minibuf.c (run_exit_minibuf_hook): Take the minibuffer as arg
	and run the hook in that buffer.
	(read_minibuf): Adjust accordingly.

2022-05-22  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/window.el (display-buffer-avoid-small-windows): Fix :type.

2022-05-22  Po Lu  <luangruo@yahoo.com>

	Clean up Haiku code

	* src/haiku_support.cc (movement_locker, class EmacsWindow)
	(MouseMoved): Delete `movement_locker' and associated hack,
	since it's superseded by some code in haiku_read_socket.
	(key_map, key_chars, dpy_color_space, popup_track_message)
	(alert_popup_value, grab_view, grab_view_locker)
	(drag_and_drop_in_progress): Write comments and fix
	initializers.

	* src/haikuterm.c (haiku_read_socket): Update comment.

2022-05-22  kobarity  <kobarity@gmail.com>

	Fix two typos in comments in python.el

	* lisp/progmodes/python.el
	(python-font-lock-keywords-maximum-decoration): Fix typos in
	comments (bug#55557).

2022-05-22  Damien Cassou  <damien@cassou.me>

	Fix submit-emacs-patch

	submit-emacs-patch creates a new message and immediately inserts new
	lines without first moving the point to the message body.  This
	doesn't work with notmuch (and its notmuch-user-agent symbol) because
	the point starts in the headers and nothing in Emacs specifies that
	the mua should move point to the body automatically.

	* lisp/mail/emacsbug.el (submit-emacs-patch): Make sure point is in
	the body before inserting new lines (bug#55571).

2022-05-22  Lele Gaifax  <lele@metapensiero.it>

	Properly indent Python PEP634 match/case blocks

	Python 3.10 introduced the "structural pattern matching" syntax, and
	commit 139042eb8629e6fd49b2c3002a8fc4d1aabd174d told font-lock about the
	new keywords. This adds them also as block-start statements, to enable
	proper indentation of such blocks.

	* lisp/progmodes/python.el (python-rx): Add "match" and "case" as
	block-start keywords.
	* test/lisp/progmodes/python-tests.el (python-indent-after-match-block,
	python-indent-after-case-block): New tests to verify indentation of
	"match" and "case" blocks (bug#55572).

2022-05-22  Po Lu  <luangruo@yahoo.com>

	Implement `display-monitors-changed-functions' on MS Windows

	* src/w32term.c (w32_read_socket): Handle WM_DISPLAYCHANGE by
	sending monitor change events.

2022-05-22  Damien Cassou  <damien@cassou.me>

	Improve documentation of mail-user-agent.

	* doc/emacs/sending.texi (Mail Methods):
	* lisp/simple.el (mail-user-agent): Mention additional options
	of non-bundled MUA.  (Bug#5569)

2022-05-22  Po Lu  <luangruo@yahoo.com>

	Fix uninitialized use of xm drag receiver data

	* src/xterm.c (xm_read_drag_receiver_info): Just return if the
	protocol is invalid.  Reported by Jashank Jeremy
	<jashank@rulingia.com.au>.

2022-05-22  Po Lu  <luangruo@yahoo.com>

	Fix build with --enable-check-lisp-object-type

	* src/xterm.c (handle_one_xevent): Fix use of Fequal.  Reported
	by Jashank Jeremy <jashank@rulingia.com.au>.

2022-05-22  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Tagalog script

	* lisp/language/philippine.el ("Tagalog"): New language environment.
	Add composition rules for Tagalog.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Tagalog.
	* lisp/leim/quail/philippine.el ("tagalog"): New input method.
	* lisp/loadup.el: Preload lisp/language/philippine.el.

	* etc/HELLO: Add a Tagalog greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.
	(Bug#55529)

2022-05-22  Po Lu  <luangruo@yahoo.com>

	Fix use-after-free in x_destroy_window

	* src/xterm.c (x_destroy_window): Fix use after free of the
	dpyinfo.

2022-05-22  Po Lu  <luangruo@yahoo.com>

	Fix focus redirection to/from surrogate minibuffer frames on Haiku

	* src/haikuterm.c (haiku_get_focus_frame): New function.
	(haiku_create_terminal): Register new hook.

2022-05-21  Po Lu  <luangruo@yahoo.com>

	Fix GNUstep build

	* src/nsfns.m (ns_implicitly_set_icon_type): Don't use UTType if
	GNUstep.

2022-05-21  Po Lu  <luangruo@yahoo.com>

	Fix compiler warnings on Mac OS X 10.12

	* configure.ac: Check for Mac OS X 12 and link with
	UniformTypeIdentifiers.framework.

	* src/nsfns.m (IOMasterPort): Define to `IOMainPort' on Mac OS X
	12.
	(ns_implicitly_set_icon_type, Fns_read_file_name):
	* src/nsxwidget.m: ([XwWebView
	initWithFrame:configuration:xwidget:]): Fix uses of obsolete
	things.

2022-05-21  Po Lu  <luangruo@yahoo.com>

	Set display size upon RRScreenChangeNotify

	* src/xterm.c (handle_one_xevent): Handle RRScreenChangeNotify
	correctly.

2022-05-21  Po Lu  <luangruo@yahoo.com>

	Don't unnecessarily call monitor change functions

	* src/xterm.c (handle_one_xevent): If monitor attributes didn't
	change, don't send monitor change event.
	(x_term_init, mark_xterm): Mark and init new field.
	* src/xterm.h (struct x_display_info): New field
	`last_monitor_attributes_list'.

2022-05-21  Eli Zaretskii  <eliz@gnu.org>

	More fixes in abbrev.el doc strings

	* lisp/abbrev.el (inverse-add-global-abbrev, inverse-add-mode-abbrev):
	Document the effect of negative ARG.  (Bug#55527)

2022-05-21  Michael Albinus  <michael.albinus@gmx.de>

	Some cleanups in tramp-tests.el

	* test/lisp/net/tramp-tests.el (tramp-fuse-remove-hidden-files): Declare.
	(tramp-test16-directory-files)
	(tramp-test16-file-expand-wildcards)
	(tramp-test26-file-name-completion, tramp--test-check-files): Use it.
	(tramp--test-check-files): Delete directory recursively.
	(tramp-test43-file-system-info): Make test more robust.

2022-05-21  kobarity  <kobarity@gmail.com>

	Fix recently introduced Python font lock breakage of chained assignments

	* lisp/progmodes/python.el (python-font-lock-assignment-matcher):
	Fix fontification of chained assignments (bug#54992).

2022-05-21  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-28

	f836ed098f Some minor Tramp fixes

2022-05-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new hooks when enabling and disabling themes

	* lisp/custom.el (enable-theme-hook, disable-theme-hook): New
	hooks (bug#37802).
	(enable-theme, disable-theme): Call them.

2022-05-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Add note about Tramp completion to completion-styles doc string

	* lisp/minibuffer.el (completion-styles): Add note about Tramp
	completion (bug#37954).

2022-05-21  Arash Esbati  <arash@gnu.org>

	Remove mention of removed nnimap-nov-is-evil variable

	* doc/misc/gnus.texi (Slow/Expensive Connection): Remove mention
	of removed nnimap-nov-is-evil variable (bug#55556).

2022-05-21  Tino Calancha  <tino.calancha@gmail.com>

	zap-to-char: case sensitive for upper-case characters

	In interactive calls, behave case-sensitively if the given char
	is an upper-case character.  Same for zap-up-to-char (Bug#54804).

	This is analog to what the user-level incremental search feature does.

	* lisp/misc.el (zap-up-to-char): Add an optional arg INTERACTIVE.
	Perform a case-sensitive search when INTERACTIVE is non-nil and
	CHAR is an upper-case character.
	* lisp/simple.el (zap-to-char): Same.

	* etc/NEWS (Editing Changes in Emacs 29.1): Announce this change.
	* test/lisp/misc-tests.el (misc-test-zap-up-to-char): Add test cases.
	* test/lisp/simple-tests.el (with-zap-to-char-test): Add helper macro.
	(simple-tests-zap-to-char): Add a test.

2022-05-21  Po Lu  <luangruo@yahoo.com>

	Improve doc for `display-monitors-changed-functions'

	* doc/lispref/frames.texi (Multiple Terminals): Describe how to
	retrieve the new monitor configuration inside
	`display-monitor-attributes-list'.

2022-05-21  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation strings and prompts in abbrev.el

	* lisp/abbrev.el (abbrev-file-name, only-global-abbrevs)
	(copy-abbrev-table, insert-abbrevs, list-abbrevs)
	(abbrev-table-name, edit-abbrevs, define-abbrevs)
	(read-abbrev-file, quietly-read-abbrev-file, write-abbrev-file)
	(abbrev-edit-save-to-file, abbrev-edit-save-buffer)
	(add-mode-abbrev, add-global-abbrev, inverse-add-mode-abbrev)
	(inverse-add-global-abbrev, abbrev-prefix-mark)
	(expand-region-abbrevs, abbrev-table-get, abbrev-table-put)
	(abbrev-get, abbrev-minor-mode-table-alist, abbrevs-changed)
	(abbrev-all-caps, last-abbrev-text, last-abbrev-location)
	(clear-abbrev-table, define-abbrev, define-global-abbrev)
	(define-mode-abbrev, abbrev--active-tables, abbrev--symbol)
	(abbrev-symbol, abbrev-expansion, abbrev-insert)
	(abbrev-expand-function, abbrev--suggest-above-threshold)
	(abbrev--suggest-saved-recommendations)
	(abbrev--suggest-shortest-abbrev, abbrev--suggest-get-totals)
	(insert-abbrev-table-description, define-abbrev-table)
	(abbrev-table-menu): Fix doc strings: wording, punctuation,
	clarity.
	(add-abbrev, inverse-add-abbrev): Improve the prompt text.
	(Bug#55527)

2022-05-21  Po Lu  <luangruo@yahoo.com>

	Fix compiler warnings in printer code on 32-bit systems

	* print.c (enum print_entry_type, struct print_stack_entry):
	Clean up coding style.
	(struct print_stack): Make print_stack_entry.list.idx intmax_t,
	like it was before the nonrecursive printing was installed.
	Also clarify what "Brent cycle detection" means in the comments.

2022-05-21  Po Lu  <luangruo@yahoo.com>

	Compute frame workareas on Haiku

	* lisp/frame.el (display-monitor-attributes-list): Implement
	specially on Haiku as well.
	* src/haiku_support.cc (get_zoom_rect): New function.  Extract
	CalculateZoomRect here.
	(class EmacsWindow, SetFullscreen): Use that instead of
	CalculateZoomRect.
	(be_get_explicit_workarea): New function.
	* src/haiku_support.h: Update prototypes.
	* src/haikufns.c (Fhaiku_display_monitor_attributes_list): New
	function.
	(syms_of_haikufns): Register new subr.

2022-05-20  Po Lu  <luangruo@yahoo.com>

	Implement monitor change hooks on NS

	This hasn't been tested with anything more complicated than
	removing an emulated monitor.

	* nsterm.m (ns_displays_reconfigured): New function.
	(ns_term_init): Register display reconfiguration callbacks.

2022-05-20  Po Lu  <luangruo@yahoo.com>

	Call XRRUpdateConfiguration when the root window geometry changes

	* src/xterm.c (handle_one_xevent): Call XRRUpdateConfiguration
	on RRScreenChangeNotify and upon ConfigureNotify events for the
	root window.

2022-05-20  Po Lu  <luangruo@yahoo.com>

	Implement `display-monitors-changed-hook' on PGTK

	* src/pgtkterm.c (pgtk_draw_glyphless_glyph_string_foreground):
	Pacify GCC 12.
	(pgtk_monitors_changed_cb): New function.
	(pgtk_term_init): Attach new signal handler.

2022-05-20  Po Lu  <luangruo@yahoo.com>

	Add a hook run upon monitor configuration changes

	* doc/lispref/frames.texi (Multiple Terminals): Document new
	hook `display-monitors-changed-functions'.
	* etc/NEWS: Announce new abnormal hook.

	* src/keyboard.c (kbd_buffer_get_event): Handle
	MONITORS_CHANGED_EVENT.
	(syms_of_keyboard): New hook and defsyms.
	* src/termhooks.h (enum event_kind): Add new event
	`MONITORS_CHANGED_EVENT'.

	* src/xterm.c (handle_one_xevent): Handle RRNotify and
	RRScreenChangeNotify events.
	(x_term_init): Select for RRScreenChange, RRCrtcChange and
	RROutputChange.
	* src/xterm.h (struct x_display_info): Improve RandR version
	detection.

2022-05-20  Alan Mackenzie  <acm@muc.de>

	Restore the Fselect_window call in gui_consider_frame_title.

	This fixes bug #55412.  The call to Fselect_window was removed on 2021-03-21
	in the commit "Prevent open minibuffers getting lost when their frame gets
	deleted".  This call is actually needed to determine current elements of the
	pertinent window and frame when these are used in the frame title.

	* src/frame.c (do_switch_frame): When the selected window in the target frame
	is the mini-window, switch away from this window unless there is a valid
	minibuffer there.

	* src/frame.h (struct frame): Add an incidental comment about the element
	selected_window.

	* src/minibuf.c (move_minibuffers_onto_frame): No longer set the selected
	window of the source frame.  This action is now performed later, on returning
	to that frame, in do_switch_frame when needed (see above).

	* src/xdisp.c (gui_consider_frame_title): Replace the Fselect_window call and
	associated ancillary settings.

2022-05-20  Stefan Kangas  <stefankangas@gmail.com>

	Remove compat code; assume imenu.el exists

	* lisp/progmodes/antlr-mode.el (antlr-mode):
	* lisp/progmodes/cperl-mode.el (cperl-menu):
	* lisp/progmodes/f90.el (f90-mode-map):
	* lisp/progmodes/fortran.el (fortran-menu):
	* lisp/speedbar.el (speedbar-use-imenu-flag): Remove compat code;
	assume imenu.el exists.

2022-05-20  Eli Zaretskii  <eliz@gnu.org>

	Advise against settings in the MS-Windows system registry

	* doc/emacs/cmdargs.texi (MS-Windows Registry): Advise against
	setting environment variables in the system registry.  (Bug#16429)

2022-05-20  Po Lu  <luangruo@yahoo.com>

	Check for allocation errors when setting XdndActionDescription

	* src/xterm.c (x_dnd_begin_drag_and_drop): Check for BadAlloc
	when setting action descriptions.

2022-05-20  Eli Zaretskii  <eliz@gnu.org>

	Document 'enriched-toggle-markup'

	* etc/enriched.txt: Document the new 'enriched-toggle-markup'
	command.  (Bug#33855)

2022-05-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option display-buffer-avoid-small-windows

	* doc/lispref/windows.texi (Choosing Window Options): Document it.
	* lisp/window.el (display-buffer-avoid-small-windows): New user
	option (bug#10186).
	(get-lru-window): Use it.

2022-05-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify select-active-regions doc string

	* src/keyboard.c (syms_of_keyboard): Clarify doc string (bug#29889).

2022-05-20  Po Lu  <luangruo@yahoo.com>

	Fix race conditions processing zoom events on Haiku

	* src/haiku_support.cc (Zoom):
	* src/haiku_support.h (struct haiku_zoom_event): Include the
	current fullscreen mode in the event.

	* src/haikuterm.c (haiku_read_socket): Use that instead of the
	current frame's fullscreen mode.

2022-05-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Re-fix previous `&' dired change

	* lisp/dired-aux.el (dired-shell-stuff-it): Re-fix the previous
	change -- the &wait was in the wrong place (bug#36331).

2022-05-20  Philip Kaludercic  <philipk@posteo.net>

	Add option to kill a shell buffer when the process ends

	* shell.el (shell-kill-buffer-on-quit): Add new option (bug#55426).
	(shell): Respect 'shell-kill-buffer-on-quit'.
	* NEWS: Mention 'shell-kill-buffer-on-quit'.

2022-05-20  Po Lu  <luangruo@yahoo.com>

	Fix NS port warnings with GCC 12

	* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground):
	Clear s->char2b after function returns.

2022-05-20  Po Lu  <luangruo@yahoo.com>

	Remove flickering when toggling between different fullscreen states on Haiku

	* src/haiku_support.cc (FrameMoved): Don't allow moving the
	frame along the "filled" axis when fullwidth or fullheight.
	(ClearFullscreen): New argument `mode'.  Return the previous
	rect but don't revert the frame to it if the target mode is not
	NONE.
	(SetFullscreen): Use rect provided by ClearFullscreen instead.

2022-05-19  Po Lu  <luangruo@yahoo.com>

	Minor cleanups to X drag-and-drop code

	* src/xterm.c (struct x_client_list_window): Write comments
	describing the meaning of each field.
	(XM_DRAG_PROTOCOL_VERSION, xm_setup_dnd_targets)
	(xm_setup_drag_info, xm_read_drag_receiver_info)
	(x_dnd_compute_toplevels): Don't hard-code the supported Motif
	protocol version.

2022-05-19  Po Lu  <luangruo@yahoo.com>

	Implement `cross-disabled-images' on Haiku

	* src/haiku_draw_support.cc (be_draw_cross_on_pixmap_1)
	(be_draw_cross_on_pixmap): New functions.

	* src/haiku_support.h: Update prototypes.

	* src/image.c (image_pixmap_draw_cross, image_disable_image):
	Implement drawing cross on Haiku.

2022-05-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename compare-window-configurations and update doc

	* doc/lispref/windows.texi (Window Configurations): Update name.
	* lisp/strokes.el (strokes-window-configuration-changed-p):
	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Update
	callers and references.

	* lisp/subr.el (compare-window-configurations): Make into obsolete
	alias.

	* src/window.c (Fwindow_configuration_equal_p): Rename (bug#14964).

2022-05-19  Theodor Thornhill  <theo@thornhill.no>

	Fix typo and argument in treesit-beginning-of-defun, etc

	* lisp/treesit.el (treesit-beginning-of-defun, treesit-end-of-defun):
	Fix typo, add shield for argument.

2022-05-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't have the tutorial ask to save if we haven't moved

	* lisp/tutorial.el (tutorial--save-on-kill): Don't ask if the user
	hasn't moved point (bug#37326).
	(help-with-tutorial): Set the start point.

2022-05-19  Po Lu  <luangruo@yahoo.com>

	Implement more data type conversions for Haiku selections

	* src/haikuselect.c (haiku_message_to_lisp):
	(lisp_to_type_code):
	(haiku_lisp_to_message):
	(Fhaiku_drag_message): Recognize `double' and `float' types.
	(syms_of_haikuselect): New defsyms.

2022-05-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix font-locking of (defun foo (function ...))

	* lisp/emacs-lisp/lisp-mode.el (lisp--el-funcall-position-p):
	Don't colorize the `function' in (defun foo (function ...)) as a
	special form (bug#37074).

2022-05-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make diff--font-lock-prettify do less if we don't have a left fringe

	* lisp/vc/diff-mode.el (diff--font-lock-prettify): Don't remove
	insert/deletions from the buffer if we don't have a left fringe
	(bug#37019).

2022-05-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new command 'yank-in-context'

	* lisp/simple.el (escaped-string-quote): New variable.
	(yank-in-context): New command.
	(yank-in-context--transform): Helper function.

	* lisp/progmodes/sh-script.el (sh-mode): Set up an
	escaped-string-quote function.
	* lisp/progmodes/sql.el (sql-mode): Define escaped-string-quote.

2022-05-19  Po Lu  <luangruo@yahoo.com>

	Fix session management detection of the first X display

	* src/xterm.c (x_term_init): Check that there is no other
	display in the chain instead of testing the terminal ID.

2022-05-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify yank-transform-functions doc string

	* lisp/simple.el (yank-transform-functions): Clarify calling
	convention.

2022-05-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make completion in emacs-lisp-mode intern fewer symbols

	* lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Don't
	intern the string before point just to check whether we're looking
	at `ignore-error' (bug#55491).

2022-05-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `&' in dired be more consistent wrt. user input

	* lisp/dired-aux.el (dired-do-async-shell-command): Mention that
	commands here don't accept input.

2022-05-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new command 'enriched-toggle-markup'

	* lisp/textmodes/enriched.el (enriched-toggle-markup): New command
	(bug#33855).

2022-05-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option 'yank-transform-functions'

	* doc/lispref/text.texi (Yanking): Mention it.
	(Yanking): Document it.

	* lisp/simple.el (yank-transform-functions): New user option.
	(yank): Mention it.

	* lisp/subr.el (insert-for-yank): Use it.

2022-05-19  Eli Zaretskii  <eliz@gnu.org>

	Provide Oriya language-environment alongside Odia

	* lisp/language/indian.el ("Oriya"): Add another name for the Odia
	language-environment.  (Bug#55493)

2022-05-19  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Rename Oriya to Odia, and more

	Due to "The Orissa (Alteration of Name) Act, 2011"
	(https://legislative.gov.in/sites/default/files/A2011-15.pdf)
	Oriya has been renamed to Odia.

	* lisp/language/indian.el (set-language-info-alist): Rename
	Oriya to Odia.  Improve Oriya composition rules.
	* lisp/leim/quail/indian.el ("odia"): New input method.
	* lisp/erc/erc-lang.el: Obsolete the iso-638-languages variable
	(which was a typo) and replace it with iso-639-1-languages.

	* etc/HELLO: Rename Oriya to Odia.
	Replace the old Odia greeting with the new one.
	Add a Hindi greeting separate from the Devanagari one.
	(Bug#55493)

2022-05-19  Po Lu  <luangruo@yahoo.com>

	Whitelist some incorrectly labeled "color" fonts under Xft

	* etc/PROBLEMS: Document problem with fonts incorrectly labeled
	as color fonts under Xft.

	* src/ftfont.c (xft_color_font_whitelisted_p): New function.
	(ftfont_spec_pattern, ftfont_list): Respect whitelisting of
	"color" fonts under Xft.
	* src/xftfont.c (syms_of_xftfont): New variable
	`xft-color-font-whitelist'.

2022-05-19  Po Lu  <luangruo@yahoo.com>

	Fix tooltip buffer flipping inside popup menus

	* src/xterm.c (x_flip_and_flush): Don't ignore if
	`inhibit-redisplay' but F is a tooltip frame.  (bug#55519)

2022-05-19  Po Lu  <luangruo@yahoo.com>

	Fix error handling when allowing touch events

	* src/xterm.c (handle_one_xevent): Catch errors correctly when
	linking touch points.

2022-05-19  João Távora  <joaotavora@gmail.com>

	Don't ignore flymake-no-changes-timeout

	Also per https://github.com/joaotavora/eglot/issues/957.

	Only actually and eagerly report LSP diagnostics if the user has
	Flymake starting automatically on a timer (flymake-no-changes-timeout
	is a number).

	By contrast, if flymake-no-changes-timeout is nil, the user starts the
	diagnostic collection process on-demand via 'M-x flymake-start'.

	Since the control of such collection is impossible with LSP, we should
	just hold on to whatever diagnostics we have (which are presumably
	up-to-date) until the next invocation of 'eglot-flymake-backend'.

	For now, this doesn't affect Flymake "list-only" diagnostics.  Those
	are reported via the 'flymake-list-only-diagnostics' variable and
	are always communicated immediately to it.

	* eglot.el: (eglot-handle-notification
	textDocument/publishDiagnostics): Consult flymake-no-changes-timeout.

	Suggested-by: Jim Davis <jim.jd.davis@gmail.com>
	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/508

2022-05-19  Eli Zaretskii  <eliz@gnu.org>

	Fix Flymake diagnostics reporting in non-UTF-8 locales

	* lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile)
	(elisp-flymake--batch-compile-for-flymake): Bind I/O encoding to
	UTF-8, instead of relying on the locale's defaults.  This is
	needed because ELisp files use UTF-8 by default, but Flymake
	doesn't know about that, since it isn't specific to ELisp.

2022-05-19  Po Lu  <luangruo@yahoo.com>

	Fix specifying terminal names to some functions on Haiku

	* src/haikufns.c (haiku_display_info_for_name): Implement
	correctly.

2022-05-19  Po Lu  <luangruo@yahoo.com>

	Satisfy Valgrind when iconifying frames

	* src/xterm.c (x_iconify_frame): Set the rest of data in the
	WM_CHANGE_STATE message to 0 instead of leaving it
	uninitialized.

2022-05-18  Po Lu  <luangruo@yahoo.com>

	Fix race conditions processing frame fullscreen state on Haiku

	* doc/lispref/frames.texi (Size Parameters): Remove note saying
	Haiku doesn't support `fullwidth' and `fullboth'.

	* src/haiku_support.cc (subset_windows, class EmacsWindow)
	(Unparent, ParentTo): Stop calling old fullscreen functions.
	(ClearFullscreen, FullscreenRectForMode, SetFullscreen): New
	functions.  Completely rewrite old zoom and fullscreen handling
	code.
	(Zoom): Send a ZOOM_EVENT and don't actually zoom.
	(BWindow_zoom, EmacsWindow_make_fullscreen, EmacsWindow_unzoom):
	Delete functions.
	(be_set_window_fullscreen_mode): New function.

	* src/haiku_support.h (struct haiku_zoom_event): Remove
	`zoomed_p' parameter.
	(enum haiku_fullscreen_mode): New enum.  Update prototypes.

	* src/haikufns.c (Fx_display_pixel_height): Return height
	instead of width.

	* src/haikuterm.c (haiku_make_fullscreen_consistent)
	(haiku_read_socket, haiku_fullscreen): Adjust to always set zoom
	and fullscreen in the main thread instead of the UI threads.

	* src/haikuterm.h (struct haiku_output): Remove flag `zoomed_p'
	and add field `fullscreen_mode'.

2022-05-18  Po Lu  <luangruo@yahoo.com>

	Respond to changes to the size of the root window

	* src/xterm.c (x_display_pixel_height, x_display_pixel_width):
	Move here instead.
	(handle_one_xevent): Handle ConfigureNotify for the root window.
	(x_term_init): Select for structure events on the root window.

	* src/xterm.h (struct x_display_info): New fields `screen_width'
	and `screen_height'.
	(x_display_pixel_height, x_display_pixel_width): Make
	prototypes.

2022-05-18  Stefan Kangas  <stefankangas@gmail.com>

	Delete entry on SPC completes file names from FAQ

	* doc/misc/efaq.texi (SPC no longer completes file names): Delete
	node: this is about a change that took place over 15 years ago and is
	not likely to be a FAQ these days.

2022-05-18  Stefan Kangas  <stefankangas@gmail.com>

	Don't refer to obsolete Ultrix support in FAQ

	* doc/misc/efaq.texi (Meta key does not work in xterm): Delete
	reference to Ultrix; that platform support was removed in Emacs 23.1.

2022-05-18  Paul Eggert  <eggert@day>

	Avoid formatting twice in flymake

	* lisp/progmodes/flymake.el (flymake-error): Don't format a
	message twice, as that can translate quotes we don't want
	translated.

2022-05-18  Augusto Stoffel  <arstoffel@gmail.com>

	Fix last change in minibuffer-lazy-highlight-setup

	* lisp/isearch.el (minibuffer-lazy-highlight-setup): Apply advices
	buffer-locally.

2022-05-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new display-buffer-full-frame display action

	* doc/lispref/windows.texi (Buffer Display Action Functions):
	Document it.

	* lisp/window.el (display-buffer-full-frame): New display action
	(bug#34169).
	(display-buffer--action-function-custom-type): Add.
	(display-buffer): Mention it.

2022-05-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention next-error-function in flymake-mode doc string

	* lisp/progmodes/flymake.el (flymake-mode): Note that you can set
	next-error-function (bug#32322).

2022-05-18  Po Lu  <luangruo@yahoo.com>

	Implement gamma-correction on Haiku

	* src/dispextern.h: Add `gamma_correct' prototype on Haiku as
	well.
	* src/haikufns.c (gamma_correct): New function.
	* src/haikuterm.c (haiku_defined_color): Gamma-correct colors if
	their pixels are being allocated.

2022-05-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve previous apropos-documentation-check-elc-file change

	* lisp/apropos.el (apropos-documentation-check-elc-file): Add
	comment to explain what's going on and expand to lisp-directory
	(bug#55492).

2022-05-18  Alan Mackenzie  <acm@muc.de>

	Fix M-x compile-defun when an interactive form is (list ...)

	This is for when lexical-binding is nil.  The problem fixed was M-x
	compile-defun leaving symbols with position in the compiled function's arglist
	and interactive form.  This fixes bug #55323.  Also ensure the doc string is
	correctly stripped when lexical-binding is t.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): For a (list ...)
	interactive form when lexical-binding is nil, strip the positions from the
	symbols in the form.  Also strip the position from the symbols in the arglist.
	(byte-compile-make-closure): (Twice) strip symbols from positions in the doc
	string expression.  Add comments.

2022-05-18  Martin Rudalics  <rudalics@gmx.at>

	Clean up and simplify 'quit-restore-window' code

	* lisp/window.el (window--quit-restore-select-window): New internal
	name for 'quit-restore-select-window'.
	(quit-restore-window): Use 'window--quit-restore-select-window'
	instead of 'quit-restore-select-window'.  Simplify code.

2022-05-18  Mattias Engdegård  <mattiase@acm.org>

	Make printing mostly non-recursive (bug#55481)

	Introduce explicit stacks for traversing common data types during
	printing: conses, vectors, records, byte-code, hash-tables and
	char-tables, all previously traversed using recursion in C.  This
	greatly reduces the risk of crashing Emacs from C stack overflow
	when printing deeply nested data.

	* src/print.c (Fprinc, print, PRINT_CIRCLE_CANDIDATE_P):
	Special-case Fprinc with a plain string argument to eliminate the need
	for keeping track of print_depth during the preprocessing phase.
	This also improves performance.
	(struct print_pp_entry, struct print_pp_stack, ppstack)
	(grow_pp_stack, pp_stack_push_value, pp_stack_push_values)
	(pp_stack_empty_p, pp_stack_pop):
	New stack for preprocessing.
	(print_preprocess):
	Make mostly nonrecursive, except for string properties.
	(enum print_entry_type, struct print_stack_entry)
	(struct print_stack, prstack, grow_print_stack)
	(print_stack_push, print_stack_push_vector):
	New stack for printing.
	(print_vectorlike, print_object):
	Make mostly nonrecursive, except for string properties and some less
	heavily used types.
	* test/src/print-tests.el (print-deeply-nested):
	New test.

2022-05-18  Po Lu  <luangruo@yahoo.com>

	Avoid dismissing GTK+ popup menus upon wheel movement

	* src/xterm.c (handle_one_xevent): Don't forward XI button
	events for wheel buttons to GTK+ when a popup menu is active.

2022-05-18  Po Lu  <luangruo@yahoo.com>

	Fix race conditions when calculating Haiku frame geometry

	* src/haiku_support.cc (be_lock_window, be_unlock_window): New
	functions.
	* src/haiku_support.h: Update prototypes.

	* src/haikufns.c (frame_geometry): Lock window before asking for
	its dimensions and frame.

2022-05-17  Po Lu  <luangruo@yahoo.com>

	Don't allow moving fullscreen frames on Haiku

	* src/haikuterm.c (haiku_set_window_size): Fix typo in comment.
	(haiku_set_offset): Prevent offset from changing in fullboth
	frames.

2022-05-17  Po Lu  <luangruo@yahoo.com>

	Fix a crash when an X connection is dropped in some situations

	* src/xterm.c (x_flip_and_flush): Don't try to flush if
	`inhibit-redisplay' is t.

2022-05-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix apropos-documentation with universal argument

	* lisp/apropos.el (apropos-documentation-check-elc-file): Look up
	.elc files in the load path (and don't bug out on deleted .elc
	files) (bug#55492).

2022-05-17  Stefan Kangas  <stefankangas@gmail.com>

	Recommend Wikipedia over Usenet in FAQ

	* doc/misc/efaq.texi (Origin of the term Emacs): Recommend
	Wikipedia over Usenet to find out more about TECO.

2022-05-17  Stefan Kangas  <stefankangas@gmail.com>

	Remove some ancient Emacs compat code

	* lisp/cedet/mode-local.el (mode-local-describe-bindings-1):
	* lisp/cedet/semantic/senator.el (senator-copy-tag-to-register):
	* lisp/gnus/nnrss.el (nnrss-opml-export):
	* lisp/net/newst-backend.el (newsticker-opml-export):
	* lisp/textmodes/reftex.el (reftex-mode-menu):
	* lisp/woman.el (woman-menu): Remove some ancient Emacs compat code.

2022-05-17  Matthias Meulien  <orontee@gmail.com>

	Update comment about comint-osc-handlers

	* lisp/comint.el: Update comment about comint-osc-handlers.

2022-05-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow running several commands in compilation-start

	* lisp/progmodes/compile.el (compilation-start): Allow not erasing
	the contents of the buffer (bug#28892).

2022-05-17  Protesilaos Stavrou  <info@protesilaos.com>

	Use better word for "buffer" in Greek TUTORIAL (bug#55332)

	* TUTORIAL.el_GR: Replace all instances of "αποσβεστήρας" with the
	more accurate "ενταμιευτής".

2022-05-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix bogus future history entries for `M-x grep'

	* lisp/net/mailcap.el (mailcap-file-default-commands): If we have
	no matching MIME types, don't iterate over (nil) (bug#27236).

	This fixes things like:

	(mailcap-file-default-commands '("grep --color=auto -nH --null '' "))
	=> ("/usr/bin/emacs -nw")

2022-05-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix kmacro-keymap binding after previous change

	* lisp/kmacro.el (kmacro-keymap): Fix binding after
	kmacro-redisplay command name change.

2022-05-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Explain more about jit-lock-mode calling conventions

	* lisp/jit-lock.el (jit-lock-mode): Explicitly explain ARG
	(bug#55451).

2022-05-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add glossary entries for "interactively"

	* doc/emacs/glossary.texi (Glossary): Mention "interactively" and
	how it relates to the "command" concept (bug#55461).

2022-05-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix pp-emacs-lisp-code printing of cons cells

	* lisp/emacs-lisp/pp.el (pp--insert-lisp): Fix printing of cons
	cells (bug#55478).

2022-05-17  Robert Pluim  <rpluim@gmail.com>

	Correct cycle-spacing-actions type

	* lisp/simple.el (cycle-spacing-actions): Fix type for predefined
	action with fixed numeric arg case.

2022-05-17  Robert Pluim  <rpluim@gmail.com>

	Clarify 'cycle-spacing-actions' docstring

	* lisp/simple.el (cycle-spacing-actions): Clarify docstring.

2022-05-17  Po Lu  <luangruo@yahoo.com>

	Avoid race conditions when computing real frame positions on Haiku

	* src/haiku_support.cc (DispatchMessage): Accept
	SEND_MOVE_FRAME_EVENT.
	(class EmacsWindow, FrameMoved): Include decorator frame in
	MOVE_EVENT events.
	(be_send_move_frame_event): New function.
	* src/haiku_support.h (struct haiku_move_event): Include
	decorator dimensions.  Update prototypes.

	* src/haikufns.c (haiku_update_after_decoration_change): Ask for
	a move frame event and don't do anything if configurable is not yet
	complete.

	* src/haikuterm.c (haiku_read_socket): Adjust accordingly.

2022-05-17  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Modi script

	* lisp/language/indian.el ("Modi"): New language environment.
	Add composition rules for Modi.  Add sample text and input
	method.
	Add sample text to various scripts.
	Rename Punjabi to Gurmukhi.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Modi.
	* lisp/leim/quail/indian.el ("modi"): New input method.
	(Bug#55439)

	* etc/HELLO: Add a Modi greeting.
	Rename Hindi to Devanagari.
	Add a Gurmukhi greeting.
	Replace Odia greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.

2022-05-17  Eli Zaretskii  <eliz@gnu.org>

	Fix the name of a kmacro command.

	* lisp/kmacro.el (kmacro-redisplay): Rename from
	'kdb-macro-redisplay' (which was wrong and included a typo).

	* etc/NEWS: Announce the change.  (Bug#55471)

2022-05-17  Alan Mackenzie  <acm@muc.de>

	CC Mode: Correct a rare error in the state cache

	* lisp/progmodes/cc-engine.el (c-append-lower-brace-pair-to-state-cache): Do
	not record a position in a macro as the starting position in
	c-state-brace-pair-desert.  Instead record the position at the beginning of
	that macro.

2022-05-17  Alan Mackenzie  <acm@muc.de>

	Correct indentation of opening brace in xdisp.c, which isn't at start of defun

	* xdisp.c (calc_pixel_width_or_height): indent the opening brace of a
	substatement correctly.  Its previous position, in column 0, caused
	indentation errors in C Mode.

2022-05-17  Po Lu  <luangruo@yahoo.com>

	Fix unused function warning on X

	* src/xsettings.c (xg_settings_key_valid_p): Surround with
	HAVE_PGTK and HAVE_GSETTINGS.

2022-05-17  Pieter van Prooijen  <pieter.van.prooijen@teloden.nl>

	Fix font options compilation with gsettings disabled

	* src/xsettings.c (xsettings_get_font_options): Return a font_options
	even if gsettings is not enabled.

2022-05-17  Po Lu  <luangruo@yahoo.com>

	Rewrite Haiku frame geometry code to handle decorator frames

	* doc/lispref/frames.texi (Frame Layout): Document changes to
	Haiku frame layout.

	* src/haiku_support.cc (class EmacsWindow, MoveToIncludingFrame)
	(EmacsMoveTo, MakeFullscreen): Move to an offset including the
	decorator frames.
	(be_get_window_decorator_dimensions):
	(be_get_window_decorator_frame): New functions.

	* src/haiku_support.h: Update prototypes.

	* src/haikufns.c (haiku_update_after_decoration_change): New
	function.
	(haiku_create_frame, haiku_set_undecorated)
	(haiku_set_override_redirect): Call that function.
	(frame_geometry): Actually calculate frame geometry based on
	decorator and frame sizes.

	* src/haikuterm.c (haiku_coords_from_parent): Use frame width
	instead.
	(haiku_read_socket): Set left and top positions based on
	decorator width and height.
	* src/haikuterm.h (struct haiku_output): New field `frame_x' and
	`frame_y'.

2022-05-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix package-quickstart breakage

	* lisp/emacs-lisp/package.el (package-quickstart-refresh): Work
	around syntax-ppss now clobbering match data (but it's not clear
	whether that's supposed to be allowed) (bug#55447).

2022-05-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve Finternal__define_uninitialized_variable erroring

	* src/eval.c (Finternal__define_uninitialized_variable): Say what
	symbol we're bugging out on for easier debugging.

2022-05-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix edebug-tests test failure after prin1 change

	* lisp/emacs-lisp/ert-x.el (ert--make-print-advice): Fix test
	failures in edebug-tests.

2022-05-17  Michael Albinus  <michael.albinus@gmx.de>

	Some minor Tramp fixes

	* lisp/net/tramp-cmds.el (tramp-list-tramp-buffers)
	(tramp-list-remote-buffers): Add ;;;###tramp-autoload cookie.

	* lisp/net/tramp-fuse.el (tramp-fuse-remove-hidden-files): New defvar.
	(tramp-fuse-remove-hidden-files): Use it.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-handler-askquestion):
	Keep regression tests running.

2022-05-16  Po Lu  <luangruo@yahoo.com>

	Remove extra EmacsPopUpMenu class

	* src/haiku_support.cc (class EmacsPopUpMenu): Delete class that
	does nothing.
	(BPopUpMenu_new): Use BPopUpMenu directly.
	(BMenu_add_title): Clean up coding style.

2022-05-16  Po Lu  <luangruo@yahoo.com>

	Add more cursor bitmaps on Haiku

	* src/haikufns.c (cursor_bitmaps_for_id): Add vertd, horizd and
	hand bitmaps.

2022-05-16  Po Lu  <luangruo@yahoo.com>

	Let XTread_socket read events for all non-DND displays

	* src/xterm.c (XTread_socket): Allow reading events from
	displays other than the DND display during drag-and-drop.

2022-05-16  Po Lu  <luangruo@yahoo.com>

	Fix byte swapping of some drag-and-drop messages

	* src/xterm.c (SWAPCARD16, SWAPCARD32): Actually swap the data
	instead of just calling bswap_32/bswap_16.

2022-05-16  Po Lu  <luangruo@yahoo.com>

	Fix detection of wheel movement during drag-and-drop

	* src/xterm.c (x_dnd_send_position): Don't treat Button8 as the
	mouse wheel.

2022-05-16  kobarity  <kobarity@gmail.com>

	Fix Python highlighting of some assignment statements

	* lisp/progmodes/python.el (python-rx): Limit not-simple-operator
	to a single line (bug#51362).

2022-05-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option compilation-hidden-output

	* doc/emacs/building.texi (Compilation Mode): Document it.
	* lisp/progmodes/compile.el (compilation-hidden-output): New user
	option.
	(compilation-filter): Use it.
	(compilation--hide-output): New function.

2022-05-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't expose Vprint_variable_mapping to Lisp

	* src/print.c: Don't expose Vprint_variable_mapping to the Lisp
	world, because it really should be immutable.
	(print_create_variable_mapping): Initialization moved here from
	syms_of_print.
	(print_bind_overrides): Call it.
	(syms_of_print): Protect the mapping variable.

2022-05-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Make TAB work in makefile mode when transient mark mode is on"

	This reverts commit a4c96147d1875d359db8d7fda3489954046a5db8.

	This change made hitting RET after an assignment insert a TAB character
	(bug#55446).

2022-05-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve newsticker file name handling and printing

	* lisp/net/newst-backend.el (newsticker--images-dir)
	(newsticker--icons-dir, newsticker--cache-dir): Don't use concat
	to construct file names.
	(newsticker-download-images, newsticker-download-enclosures): Ditto.
	(newsticker--cache-save-feed): Bind print-level etc when printing.

	* lisp/net/newst-treeview.el (newsticker-treeview-save): Ditto.

	This patch was mostly written by mailj2@protonmail.com, but was then
	rewritten by me, and has some contributions from Xavier Capaldi (which
	doesn't need copyright assignment).

2022-05-16  Po Lu  <luangruo@yahoo.com>

	Document recent tooltip changes on NS

	* doc/emacs/frames.texi (Tooltips):
	* etc/NEWS: Announce that non-system tooltips are now available
	on Nextstep.

2022-05-16  Po Lu  <luangruo@yahoo.com>

	Improve error checking in `haiku-roster-launch'

	* src/haikuselect.c (Fhaiku_roster_launch): Signal error if
	FILE-OR-TYPE doesn't exist or ARGS does not apply.

2022-05-16  Tassilo Horn  <tsdh@gnu.org>

	Improve cycle-spacing and bind it to M-SPC by default

	* lisp/bindings.el (esc-map): Bind M-SPC to cycle-spacing instead of
	just-one-space.
	* lisp/simple.el (delete-space--internal): New function.
	(delete-horizontal-space): Use it.
	(delete-all-space): New command.
	(just-one-space): Implement on its own instead of calling
	cycle-spacing with a special flag.
	(cycle-spacing--context): Make it a plist instead of a list.  Adapt
	docstring accordingly.
	(cycle-spacing-actions): New user option.
	(cycle-spacing): Rewrite so that it performs the actions in
	cycle-spacing-actions instead of the hard-coded ones.
	* doc/emacs/killing.texi (characters): Mention and add a variable
	index entry for cycle-spacing-actions.
	* etc/NEWS: Document that M-SPC is now cycle-spacing instead of
	just-one-space.

2022-05-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f928330fa8 Update to Org 9.5.3-6-gef41f3
	007bf9a34c Hide temporary FUSE files in Tramp
	5dbaddc729 ; Fix some typos

2022-05-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	48201ce8de ; * lisp/electric.el (electric-indent-mode): Fix a typo.

2022-05-15  Po Lu  <luangruo@yahoo.com>

	Improve safety of handling unsupported drop events on X

	* src/keyboard.c (kbd_buffer_get_event):
	* src/xterm.c (handle_one_xevent): Check that the event frame is
	still live after calling arbitrary Lisp code.

2022-05-15  Po Lu  <luangruo@yahoo.com>

	Clean up Haiku code after file panel changes

	* src/haiku_support.cc:
	* src/haiku_support.h: Stop including pthread.h and specpdl_ref.

	* src/haikumenu.c (run_menu_bar_help_event): Ignore invalid help
	events instead of aborting.

2022-05-15  Po Lu  <luangruo@yahoo.com>

	Handle pointer axes changing along with scroll valuators

	* xterm.c (x_get_scroll_valuator_delta): Set valuator_return to
	NULL if no valuator was found.
	(handle_one_xevent): Assume pointer axes might've changed if no
	scroll valuator was found but valuators were set when handling
	motion events.

2022-05-15  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.5.3-6-gef41f3

2022-05-15  Stefan Kangas  <stefankangas@gmail.com>

	Minor clarification of package-update-all docstring

	* lisp/emacs-lisp/package.el (package-update-all): Clarify
	docstring slightly.  (Bug#55408)

2022-05-15  Augusto Stoffel  <arstoffel@gmail.com>

	Make minibuffer lazy highlight setup buffer-local where appropriate

	* lisp/isearch.el (minibuffer-lazy-highlight-setup): Modify hooks
	buffer-locally, so that recursive minibuffers are not affected by the
	special behavior of lazy-highlight.  Also make
	'isearch-filter-predicate' buffer-local, so that isearch in the
	minibuffer is not affected by the region filter (bug#55110).

2022-05-15  Simen Heggestøyl  <simenheg@runbox.com>

	Recognize some more SCSS selectors

	* lisp/textmodes/css-mode.el (css--selector-regexp): Recognize some
	more SCSS selectors.

	* test/lisp/textmodes/css-mode-resources/scss-selectors.txt: Add tests
	for them.

2022-05-15  Simen Heggestøyl  <simenheg@runbox.com>

	Fix warning suppression in (S)CSS mode tests

	* test/lisp/textmodes/css-mode-tests.el (css-mode-test-selectors)
	(scss-mode-test-selectors): Fix warning suppression.

2022-05-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix native-comp type of prin1-to-string

	* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix type
	of prin1-to-string.

2022-05-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust more prin1-to-string callers

	* src/w32.c (check_windows_init_file):
	* src/comp.c (Lisp_Object):
	(emit_lisp_obj_reloc_lval):
	(emit_lisp_obj_rval):
	(emit_mvar_rval):
	(emit_limple_insn):
	(emit_static_object): Adjust prin1-to-string callers.

2022-05-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Add OVERRIDES argument to prin1/prin1-to-string

	* doc/lispref/streams.texi (Output Functions): Document it.
	(Output Overrides): New node.

	* src/process.c (Faccept_process_output):
	* src/print.c (debug_print, print_error_message):
	* src/pdumper.c (print_paths_to_root_1, decode_emacs_reloc):
	* src/lread.c (readevalloop):
	* src/eval.c (internal_lisp_condition_case):
	* src/editfns.c (styled_format): Adjust prin1/prin1-to-string
	callers.

	* src/print.c (Fprin1): Take an OVERRIDES parameter.
	(print_bind_overrides, print_bind_all_defaults): New functions.
	(Fprin1_to_string): Take an OVERRIDES parameter.

2022-05-15  Michael Albinus  <michael.albinus@gmx.de>

	Hide temporary FUSE files in Tramp

	* lisp/net/tramp-fuse.el (tramp-fuse-remove-hidden-files): New defsubst.
	(tramp-fuse-handle-directory-files)
	(tramp-fuse-handle-file-name-all-completions): Use it.

2022-05-15  Po Lu  <luangruo@yahoo.com>

	Make Haiku stipple display slightly faster

	* src/haikuterm.c (haiku_draw_stipple_background): Draw tiled
	bitmap to end of stipple instead of the end of the frame.

2022-05-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't freeze Emacs on color codes in sccs-mode

	* lisp/textmodes/css-mode.el (css--font-lock-keywords): Don't
	freeze Emacs on #ffffff #ffffff, and be more strict in parsing
	selectors (bug#53203).

2022-05-15  Simen Heggestøyl  <simenheg@runbox.com>

	Update CSS Multi-column Layout Module properties

	* lisp/textmodes/css-mode.el (css-property-alist): Update CSS
	Multi-column Layout Module properties.

2022-05-15  Simen Heggestøyl  <simenheg@runbox.com>

	Update CSS Box Alignment Module properties

	* lisp/textmodes/css-mode.el (css-property-alist): Update properties.

2022-05-15  Simen Heggestøyl  <simenheg@runbox.com>

	Add `all` to CSS property list

	* lisp/textmodes/css-mode.el (css-property-alist): Add new property
	`all` from the CSS Cascading and Inheritance Level 3 module.

2022-05-15  Po Lu  <luangruo@yahoo.com>

	Fix use of more invalid keys in PGTK GSettings code

	* src/xsettings.c (apply_gsettings_font_hinting):
	(apply_gsettings_font_rgba_order): Test for key existence before
	using it.

2022-05-15  Po Lu  <luangruo@yahoo.com>

	Improve return value of `haiku-roster-launch'

	* src/haikuselect.c (Fhaiku_roster_launch): Return
	`already-running' if no PID is available since the target
	application is already running.
	(syms_of_haikuselect): New defsym.

2022-05-15  Po Lu  <luangruo@yahoo.com>

	Simplify Haiku cursor management code

	* src/haiku_support.cc (BCursor_create_default)
	(BCursor_create_modeline, BCursor_from_id, BCursor_create_i_beam)
	(BCursor_create_progress_cursor, BCursor_create_grab)
	(BCursor_delete): Delete specialized cursor creation functions.
	(be_delete_cursor, be_create_cursor_from_id): New functions.
	(BView_set_view_cursor): Fix coding style.
	* src/haiku_support.h (enum haiku_cursor): Add all cursor IDs.
	* src/haikufns.c (haiku_free_custom_cursors):
	(haiku_set_mouse_color):
	* src/haikuterm.c (haiku_term_init): Adjust accordingly.

2022-05-15  Eli Zaretskii  <eliz@gnu.org>

	Fix database related to some scripts

	* lisp/international/fontset.el (script-representative-chars): Add
	tai-le and tai-lue scripts.
	(otf-script-alist): Fix the name of tai-le.

	* src/w32font.c (syms_of_w32font): Fix typos in some script symbol
	names.

2022-05-15  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Syloti Nagri script

	* lisp/language/indian.el ("Syloti Nagri"): New language environment.
	Add composition rules for Syloti Nagri.  Add sample text and input
	method.
	Improve composition rules for Kaithi, Tirhuta, Sharada and Siddham.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Syloti Nagri.
	* lisp/leim/quail/indian.el ("syloti-nagri"): New input method.

	* etc/HELLO: Add two Syloti Nagri greetings.
	* etc/NEWS: Announce the new language environment and its
	input method.

2022-05-15  Visuwesh  <visuweshm@gmail.com>

	describe-keymap: Suggest symbol at point

	* lisp/help-fns.el (describe-keymap): Suggest symbol at point
	if it is a keymap.  (Bug#55393)
	* etc/NEWS: Announce change in behavior of 'describe-keymap'.

2022-05-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	8370caa835 ; * lisp/electric.el (electric-indent-mode): Clarify doc (...

2022-05-14  Po Lu  <luangruo@yahoo.com>

	Allocate some buffers used during event handling safely

	* src/xterm.c (handle_one_xevent): Allocate string lookup and
	device disable data safely since they can potentially become
	very large.

2022-05-14  Po Lu  <luangruo@yahoo.com>

	Prevent crashes trying to access nonexistent key

	* src/xsettings.c (xg_settings_key_valid_p): New function.
	(apply_gsettings_font_antialias): Test that `font-aliasing' is
	actually available.  (bug#55416)

2022-05-14  Po Lu  <luangruo@yahoo.com>

	Fix scroll event translation for legacy button events

	* src/xterm.c (handle_one_xevent): Don't treat emulated Button8
	as a wheel event.

2022-05-14  Stefan Kangas  <stefankangas@gmail.com>

	Remove some XEmacs compat code for display-graphic-p

	* lisp/dframe.el (dframe-have-timer-flag):
	* lisp/emacs-lisp/chart.el (chart-face-pixmap-list):
	* lisp/speedbar.el (speedbar-easymenu-definition-base): Remove
	XEmacs compat code; assume display-graphic-p is fboundp.

	* lisp/progmodes/cperl-mode.el (cperl-tags-hier-init): Remove XEmacs
	compat code.

2022-05-14  Stefan Kangas  <stefankangas@gmail.com>

	Delete some compat code for very old Emacs versions

	* lisp/apropos.el (apropos-local-value):
	* lisp/ido.el (ido-buffer-internal):
	* lisp/leim/quail/ipa.el (ipa-x-sampa-prepend-to-keymap-entry):
	* lisp/obsolete/iswitchb.el (iswitchb-possible-new-buffer):
	* lisp/speedbar.el (speedbar-create-tag-hierarchy): Delete compat code
	for very old versions of Emacs.
	* lisp/gnus/nnmail.el (nnmail-fancy-expiry-target): Avoid using
	obsolete name.

2022-05-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/lisp.h (FOR_EACH_TAIL_SAFE): Typo

2022-05-14  Eli Zaretskii  <eliz@gnu.org>

	Make 'check-declare-directory' more portable

	* lisp/emacs-lisp/check-declare.el (check-declare-directory): Use
	'directory-files-recursively' instead of running Find and Grep in
	a subprocess.  (Bug#55386)

2022-05-14  Stefan Kangas  <stefankangas@gmail.com>

	Drop ancient OEmacs support from vcursor.el

	* lisp/vcursor.el (vcursor-bind-keys, vcursor-key-bindings)
	(vcursor-other-window): Drop OEmacs support.  OEmacs was "a
	version of GNU Emacs V19.19" that worked "under plain MSDOS,
	Windows, or DESQview/X".

2022-05-14  Stefan Kangas  <stefankangas@gmail.com>

	Remove Emacs 22 compat code from htmlfontify.el

	* lisp/htmlfontify.el (hfy-prop-invisible-p): Redefine as obsolete
	function alias for invisible-p.  Update all callers.

2022-05-14  Stefan Kangas  <stefankangas@gmail.com>

	Remove some XEmacs compat code from org-mode

	* lisp/org/org-clock.el (org-clock-select-task): Remove XEmacs
	compat code.

2022-05-14  Po Lu  <luangruo@yahoo.com>

	Minor fixes for popup dialogs on macOS

	* nsmenu.m (pop_down_menu): Restore old hack for macOS.
	([EmacsDialogPanel initWithTitle:isQuestion:]): Set command
	title correctly.

2022-05-14  Po Lu  <luangruo@yahoo.com>

	Fix processing of dialog box items on NS

	* src/nsmenu.m (pop_down_menu): Remove old hack and discard menu
	items.
	(ns_popup_dialog):
	([EmacsDialogPanel initWithContentRect:styleMask:backing:defer:]):
	([EmacsDialogPanel windowShouldClose:]):
	([EmacsDialogPanel dealloc]):
	([EmacsDialogPanel processdialog:]):
	([EmacsDialogPanel addButton:value:row:]):
	([EmacsDialogPanel addString:row:]):
	([EmacsDialogPanel clicked:]):
	([EmacsDialogPanel initFromContents:isQuestion:]):
	([EmacsDialogPanel timeouthandler:]):
	([EmacsDialogPanel runDialogAt:]): Use the regular menu item
	machinery to parse dialog items instead of the incorrect ad-hoc
	code used previously.

	* src/nsterm.h: Update prototypes.

2022-05-14  Po Lu  <luangruo@yahoo.com>

	Avoid unsafe alloca when looking up toplevels

	* src/xterm.c (x_dnd_compute_toplevels): Use SAFE_ALLOCA, since
	alloca isn't safe when there are lots of toplevels or the window
	manager is broken.

2022-05-14  Eli Zaretskii  <eliz@gnu.org>

	Fix undigest-tests on MS-Windows

	* lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Accept a new
	keyword argument :coding CODING to use as the encoding when
	writing initial text to the temporary file.

	* test/lisp/mail/undigest-tests.el (rmail-undigest-test-rfc934-digest)
	(rmail-undigest-test-rfc1153-digest-strict)
	(rmail-undigest-test-rfc1153-less-strict-digest)
	(rmail-undigest-test-rfc1153-sloppy-digest)
	(rmail-undigest-test-rfc1521-mime-digest)
	(rmail-undigest-test-multipart-mixed-digest): Force the temporary
	mbox files to have Unix-style EOL format.

2022-05-14  Martin Rudalics  <rudalics@gmx.at>

	2022-05-14  Martin Rudalics  <rudalics@gmx.at>

	* lisp/window.el (quit-restore-select-window): New function.
	(quit-restore-window): Call 'quit-restore-select-window' to avoid
	selecting inactive minibuffer window (Bug#55403).

2022-05-14  Po Lu  <luangruo@yahoo.com>

	Try to restore valuator values when a device is enabled

	* src/xterm.c (struct xi_known_valuator): New struct.
	(xi_populate_device_from_info): Figure out all the values of the
	valuators and set the scroll valuators's current_value to it.

2022-05-14  Po Lu  <luangruo@yahoo.com>

	Better fix for disappearing menu items on NS

	* src/frame.c (delete_frame): Revert last change.
	* src/nsmenu.m (free_frame_menubar): Only free if that frame's
	menu bar is actually being displayed.
	(ns_update_menubar): Note the last frame to have updated the
	menu bar.

2022-05-14  Po Lu  <luangruo@yahoo.com>

	Add more cursor bitmaps on Haiku

	* src/haikufns.c (cursor_bitmaps): Register new cursor bitmaps.
	* src/haikugui.h (hand_ptr_bits, hand_ptrmask_bits)
	(horizd_ptr_bits, horizd_ptrmask_bits, vertd_ptr_bits)
	(vertd_ptrmask_bits, hourglass_bits, hourglass_mask_bits): New
	cursor bitmaps.

2022-05-14  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a769cbfcfb Fix lexical-binding fallout in vhdl-mode.el

2022-05-14  Po Lu  <luangruo@yahoo.com>

	Work around deleting tooltip frames clearing menubars on NS

	* src/frame.c (delete_frame): Update menu bars if a tooltip
	frame was deleted on NS.

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Implement non-system tooltips on NS

	* src/nsfns.m (unwind_create_frame): Return Lisp_Object like on
	X.
	(do_unwind_create_frame): New function.
	(Fx_create_frame): Adjust accordingly.
	(compute_tip_xy): Fix coding style.
	(unwind_create_tip_frame, ns_create_tip_frame): New functions.
	(x_hide_tip, Fx_show_tip, Fx_hide_tip): Create and hide actual
	tooltip frames.
	(syms_of_nsfns): New defvar `x-max-tooltip-size' and staticpros.

	* src/nsterm.m (ns_set_window_size): Clean up coding style.
	([EmacsWindow initWithEmacsFrame:]):
	([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Handle
	tooltip frames.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Put help-fns--compiler-macro last in the *Help* buffer

	* lisp/help-fns.el (help-fns-describe-function-functions): Make
	help-fns--compiler-macro the last entry (because it's not the most
	interesting information).

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Fix display class of tooltip frames on Haiku

	* haikufns.c (haiku_create_tip_frame): Set up frame display
	class.
	(syms_of_haikufns): New symbols `mono', `grayscale' and `color'.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Restore `with-help-window' return code

	* lisp/help.el (help--window-setup): Return the correct thing.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the *Help* output for compiler macros and the like

	* doc/lispref/functions.texi (Advice and Byte Code): New node.

	* lisp/help-fns.el (help-fns--compiler-macro): Also output data on
	other byte compilation things, and link to the manual (bug#23264).

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Reenable frame sync for child frames after they're unparented

	* src/xfns.c (x_set_parent_frame, Fx_create_frame): Use correct
	boolean constants.
	* src/xterm.c (handle_one_xevent): Enable frame synchronization
	upon receiving a sync request event.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak querying in package-update-all

	* lisp/emacs-lisp/package.el (package-update-all): Reverse the
	QUERY logic to make calling more regular.

2022-05-13  Yuan Fu  <casouri@gmail.com>

	Extract out treesit-search-forward

	* lisp/treesit.el (treesit-search-forward, treesit-search-beginning,
	treesit-search-end): New functions.
	(treesit-traverse-defun): Remove function.
	(treesit-beginning-of-defun, treesit-end-of-defun): Replace
	'treesit-traverse-defun' with 'treesit-search-forward' and fiends.
	* test/src/treesit-tests.el: Add reminder for tests.

2022-05-13  Yuan Fu  <casouri@gmail.com>

	* lisp/treesit.el (treesit-node-at): Add check for nil node.

2022-05-13  Yuan Fu  <casouri@gmail.com>

	Add defun navigation

	* lisp/treesit.el (treesit-defun-query): New variable.
	(treesit-traverse-defun, treesit-beginning-of-defun,
	treesit-end-of-defun): New functions.
	* test/src/treesit-tests.el: Add reminders for tests.

2022-05-13  Yuan Fu  <casouri@gmail.com>

	New node traversal functions

	* lisp/treesit.el (treesit-traverse-parent): New alias.
	(treesit-traverse-depth-first, treesit--traverse-breadth-first-1,
	treesit-traverse-breadth-first, treesit-next-sibling-or-up,
	treesit-traverse-forward-depth-first): New functions.
	* test/src/treesit-tests.el (treesit-node-supplemental): Add reminders
	for tests.

2022-05-13  Yuan Fu  <casouri@gmail.com>

	Redefine treesit-node-at

	The old 'treesit-node-at' becomes 'treesit-node-on'.  The new
	'treesit-node-at' has slightly different semantics.  Now
	'treesit-node-on' gets the smallest node covering a range and
	'treesit-node-at' gets the smallest node after a position.

	The reason of change can be found in the docstring of
	'treesit-node-on' (the BEWARE part): its result can be sometimes
	surprising/unexpected.

	* doc/lispref/parsing.texi (Retrieving Node): Update manual.
	* lisp/treesit.el (treesit-node-at): Change to new definition.
	(treesit-node-on): Inherits the old definition of
	'treesit-node-at'.  Parameter END is now mandatory.
	(treesit-language-at, treesit-node-field-name): Use the new '-on'
	function.
	(treesit-font-lock-fontify-region, treesit-simple-indent-presets,
	treesit-indent): Use the new '-at' function.
	* test/src/treesit-tests.el (treesit-node-supplemental): Update tests.

2022-05-13  Stefan Kangas  <stefankangas@gmail.com>

	Use ert-with-temp-file in undigest-tests.el

	* test/lisp/mail/undigest-tests.el (ert-x): Require.
	(rmail-undigest-test-rfc934-digest)
	(rmail-undigest-test-rfc1153-digest-strict)
	(rmail-undigest-test-rfc1153-less-strict-digest)
	(rmail-undigest-test-rfc1153-sloppy-digest)
	(rmail-undigest-test-rfc1521-mime-digest)
	(rmail-undigest-test-multipart-mixed-digest): Use ert-with-temp-file.

2022-05-13  Stefan Kangas  <stefankangas@gmail.com>

	Don't use obsolete yow library

	* lisp/erc/erc.el (erc-quit-reason-zippy, erc-part-reason-zippy):
	Don't use obsolete yow library.

2022-05-13  Stefan Kangas  <stefankangas@gmail.com>

	Remove some XEmacs compat code from flyspell.el

	* lisp/textmodes/flyspell.el (flyspell-display-next-corrections):
	Remove XEmacs compat code.

2022-05-13  Stefan Kangas  <stefankangas@gmail.com>

	Remove some XEmacs compat code from org-mode

	* lisp/org/ol-eww.el (org-eww-copy-for-org-mode):
	* lisp/org/ol-w3m.el (org-w3m-copy-for-org-mode):
	* lisp/org/org-refile.el (org-refile):
	* lisp/org/org.el (org-change-tag-in-region): Remove XEmacs compat
	code.

2022-05-13  Stefan Kangas  <stefankangas@gmail.com>

	Remove some XEmacs compat code from eudc-bob.el

	* lisp/net/eudc-bob.el (eudc-bob-can-display-inline-images): Make
	into obsolete alias for display-graphic-p.  Update all callers.
	(eudc-bob-display-jpeg): Remove XEmacs compat code.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new minor mode `header-line-indent-mode'

	This is mostly factored out from tabulated-list.el (with bugs fixed).

	* doc/lispref/modes.texi (Header Lines): Document it.
	* lisp/display-line-numbers.el (header-line-indent): New variable.
	(header-line-indent--line-number-width)
	(header-line-indent--watch-line-number-width)
	(header-line-indent--window-scroll-function): New helper functions.
	(header-line-indent-mode): New minor mode.

	* lisp/display-line-numbers.el (header-line-indent-width): New
	variable.

	* lisp/emacs-lisp/tabulated-list.el (tabulated-list-line-number-width)
	(tabulated-list-watch-line-number-width)
	(tabulated-list-window-scroll-function): Make into obsolete aliases.
	(tabulated-list-mode): Use 'header-line-indent-mode'.

	* lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header):
	Adjust the header line format and computation.

	* src/buffer.c (syms_of_buffer): Mention header-line-indent-mode.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert mistaken change in help-mode-setup

	* lisp/help-mode.el (help-mode-setup): Revert mistakenly applied
	change from cd87a5c7a.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't overwrite variables set by callback in help--window-setup

	* lisp/help.el (help--window-setup): Initialize the buffer in the
	correct order to avoid resetting variables set by the callback.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't clear out local variables in `with-help-window'

	* lisp/help-mode.el (help-mode-setup): Declare obsolete.
	(help-mode-finish): Ditto.

	* lisp/help.el (with-help-window): Don't be a wrapper around
	`with-temp-buffer-window', because that made the macro big and
	difficult to understand.
	(help--window-setup): Implement the relevant bits from
	`with-temp-buffer-window'.  Also don't clear out local variables,
	because that makes things like `text-scale-mode' not work (bug#25979).

2022-05-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/lispref/help.texi (Keys in Documentation): Typo in last change

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow substitute-command-keys to include menus in \{...} output

	* doc/lispref/help.texi (Keys in Documentation): Document it.
	* lisp/help.el (substitute-command-keys): Add an argument to
	include menus in the \{...-map} output (bug#24236).

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Include the number of dependencies in the install prompt

	* lisp/emacs-lisp/package.el (package-menu--list-to-prompt): Add
	the info to the prompt (bug#23346).
	(package--dependencies): New function.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow calling package-update-all from the command line

	* lisp/emacs-lisp/package.el (package-update-all): Allow calling from
	  the command line with -f package-update-all without any queries.

2022-05-13  Pieter van Prooijen  <pieter.van.prooijen@teloden.nl>

	Use gsettings font rendering entries for pgtk builds

	If present, apply the gsettings font hinting and antialiasing
	entries when creating a font in cairo.  Do this at
	initialization and when the entries change, re-rendering the
	frames.

	* src/ftcrfont.c (ftcrfont_open): Use the font_options derived
	from gsettings when opening a font.
	(ftcrfont_cached_font_ok): Report a cached font as invalid if
	its font options differ from the current options inside
	gsettings.
	* src/xsettings.c (apply_gsettings_font_hinting)
	(apply_gsettings_font_alias, apply_gsettings_font_rgba_order):
	Convert the settings from GSettings to the cairo_font_options_t
	object.
	(init_gsettings, something_changed_gsettingsCB): Invoke the
	apply functions if the relevant settings changed.
	(store_font_options_changed): Store an event to re-render the
	fonts.
	(xsetting_get_font_options)
	* src/xsettings.h (xsettings_get_font_options): New function.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a provide in epa-ks

	* lisp/epa-ks.el (epa-ks): Add a provide (bug#55388).

2022-05-13  Stefan Kangas  <stefankangas@gmail.com>

	Remove some XEmacs compat code from pascal.el

	* lisp/progmodes/pascal.el (pascal-outline-map): Remove XEmacs compat
	code.

2022-05-13  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/language/thai-util.el (thai-word-mode-map): Prefer defvar-keymap.

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix dabbrev expansion after recent file-name buffer addition

	* lisp/dabbrev.el (dabbrev--find-expansion): Remove the now-dead
	file name buffer from dabbrev--friend-buffer-list, so that we
	don't trip over the killed buffer later (bug introduced in 2d0085f756).

2022-05-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make imenu-flush-cache into a function

	* doc/emacs/programs.texi (Imenu): Remove documentation.

	* lisp/imenu.el (imenu-flush-cache): Make into a function, since
	this isn't supposed to be used interactively.

2022-05-13  Eli Zaretskii  <eliz@gnu.org>

	Fix lexical-binding fallout in vhdl-mode.el

	* lisp/progmodes/vhdl-mode.el (arch-alist, pack-alist)
	(file-alist, unit-alist, rule-alist): Defvar them, since vhdl-aput
	expects them to be dynamically bound.  (Bug#55389)
	(vhdl-speedbar-insert-hierarchy): Rename the PACK-ALIST argument
	to PACKAGE-ALIST, to avoid shadowing the global variable.

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Allow changing the face used for text and frame colors in tooltips

	* etc/NEWS: Announce new arguments to `tooltip-show'.
	* lisp/tooltip.el (tooltip-show): Accept new arguments
	`text-face' and `frame-face'.  Use them to display text and
	determine the foreground, background and border colors of the
	tooltip frame respectively.

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Rely solely on device scaling for fonts on PGTK

	* src/pgtkterm.c (pgtk_get_text_scaling_factor): Delete
	function.
	(pgtk_term_init): Stop multiplying dpi by text scale.
	(bug#55394)

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Fix display of image reliefs for tab bars on NS

	* src/nsterm.m (ns_draw_image_relief): New function.
	Synchronize code with X.
	(ns_dumpglyphs_image): Use that function instead, as on X.

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Minor cleanups to PGTK code

	* src/pgtkterm.c (pgtk_text_scaling_factor): Rename to
	`pgtk_get_text_scaling_factor', clean up coding style, and fix
	leak of GSettings object.
	(pgtk_term_init): Clean up coding style and fix scroll
	increments.

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Improve test for empty help-echo on NS menu bar items

	* src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Also check
	if idx is valid.

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Display help-echo for popup menus on NS

	* src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Display
	help echo for ordinary popup menus as well.

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Fix extraneous quit events processing GTK native input inside popups

	* src/gtkutil.c (xg_widget_key_press_event_cb): Return
	immediately if a popup is active.
	* src/xterm.c (x_filter_event): Clear `xg_pending_quit_event' if
	a popup is active.

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Add more cursor bitmaps on Haiku

	* src/haikufns.c (cursor_bitmaps, cursor_bitmaps_for_id):
	Register crosshair and xterm cursors.

	* src/haikugui.h (cross_ptr_bits, cross_ptrmask_bits)
	(ibeam_ptr_bits, ibeam_ptrmask_bits): New cursor bitmaps.

2022-05-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f03c5d81bd Fix ControlPath quoting in Tramp

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Fix disabling frame synchronization on child frames

	* src/xfns.c (Fx_create_frame): Disable GTK 3's own frame
	synchronization on child frames, since the CM doesn't send
	synchronization events to them.

2022-05-13  Po Lu  <luangruo@yahoo.com>

	Allow setting cursor colors for custom cursors on Haiku

	* src/haikufns.c: (struct user_cursor_bitmap_info):
	(cursor_bitmaps): Fix hotspot for left arrow pointer.
	(cursor_bitmaps_for_id): New array.
	(haiku_set_mouse_color): If a color was specified, consult
	`cursor_bitmaps_for_id' for user-specified cursors.

2022-05-12  Po Lu  <luangruo@yahoo.com>

	Allow actually setting cursor colors on Haiku

	* src/haiku_support.cc (be_create_pixmap_cursor): New function.
	* src/haiku_support.h: Update prototypes.

	* src/haikufns.c (haiku_create_frame): Change default cursor
	color to "font-color".
	(haiku_create_tip_frame): Likewise.

	(struct user_cursor_bitmap_info): New struct.
	(cursor_bitmaps): New list of bitmaps corresponding to cursors.
	(haiku_create_colored_cursor): New function.
	(haiku_free_custom_cursors): Set current cursor to the default
	cursor before freeing the original value.
	(haiku_set_mouse_color): Actually recolor cursors based on
	built-in bitmaps.

	* src/haikuterm.c (haiku_defined_color): Clean up coding style.

2022-05-12  Po Lu  <luangruo@yahoo.com>

	Fix quitting during drag-and-drop when GTK native input is on

	* src/xterm.c (x_dnd_begin_drag_and_drop): Also look in
	`xg_pending_quit_event' when GTK native input is on.

2022-05-12  Paul Eggert  <eggert@cs.ucla.edu>

	Update from gnulib

2022-05-12  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC 12 in default developer build

	This lets ‘./configure; make’ work on Fedora 36 x86-64 from a Git
	checkout without generating false-alarm warnings.
	* lib-src/etags.c (main): There appeared to be false alarm with
	GCC 12.  However, the code was wrong anyway, as it mishandled file
	names containing "'" so fix that bug.  This pacifies GCC.
	(mercury_decl): Omit tests ‘s + pos != NULL’ that were apparently
	intended to be ‘s[pos] != '\0'’ but which were miscoded to always
	be true and which were mostly not needed anyway.  In one place,
	though, a test was needed, so fix that by using strchr instead.
	* src/alloc.c (lisp_free) [!GC_MALLOC_CHECK]:
	* src/term.c (Fsuspend_tty): Don’t look at a pointer after freeing
	it, even just to test it for equality with some other pointer, as
	this has undefined behavior in C and GCC 12 diagnoses this.
	* src/dbusbind.c (xd_read_message_1): Rework the code a bit
	so that it has fewer tests.  This pacifies GCC 12 which was
	complaining incorrectly about dereferencing a null pointer.
	* src/intervals.c (copy_properties): Remove an eassume that should
	no longer be needed even to pacify older GCCs, due to ...
	* src/intervals.h (split_interval_left): ... this addition of
	ATTRIBUTE_RETURNS_NONNULL to pacify a GCC 12 warning about
	dereferencing a null pointer.
	* src/regex-emacs.c (EXTEND_BUFFER): Use negative values rather
	than auxiliary booleans to indicate null pointers.  This pacifies
	GCC 12 false alarms about using uninitialized variables.
	* src/xdisp.c (clear_position): New function.
	(append_space_for_newline, extend_face_to_end_of_line):
	Use it to work around false alarms from GCC 12.
	(display_and_set_cursor): Add an UNINIT to pacify GCC 12.
	* src/xterm.c (x_draw_glyphless_glyph_string_foreground):
	Defend against hypothetical bad code elsewhere;
	this also pacifies GCC 12.
	(x_term_init): Use fixed-size auto array rather than alloca,
	as the array is small; this also pacifies GCC 12.

2022-05-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option 'sh-indent-statement-after-and'

	* lisp/progmodes/sh-script.el (sh-indent-statement-after-and): New
	user option (bug#22645).
	(sh-smie-sh-rules): Use it.

2022-05-12  Michael Albinus  <michael.albinus@gmx.de>

	Fix ControlPath quoting in Tramp

	* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options):
	Adapt docstring.  Do not quote ControlPath.  Reported by Daniel
	Kessler <kesslerd@umich.edu>.

2022-05-12  Po Lu  <luangruo@yahoo.com>

	Remove unused RIF method

	* src/haikuterm.c (haiku_update_window_end): Delete function.
	(haiku_redisplay_interface): Remove RIF method.

2022-05-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Make prompt read-only in inferior-scheme-mode

	* lisp/cmuscheme.el (inferior-scheme-mode): Make the prompt
	read-only to be more consistent with other inferior modes
	(bug#21118).

2022-05-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix retrieving images that contain ) characters in shr

	* lisp/net/shr.el (shr-save-contents, shr-get-image-data): Don't call.
	(shr-encode-url): Make obsolete.  (This function makes no sense.)
	(shr-tag-img): Don't call.

2022-05-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve url-http debugging

	* lisp/url/url-http.el (url-http-parse-headers): Output the
	headers we receive in the debug output.
	* lisp/url/url-vars.el (url-extensions-header): Remove useless header.

2022-05-12  Po Lu  <luangruo@yahoo.com>

	Fix build on Mac OS X 10.11

	* src/nsterm.h (NSButtonTypeMomentaryPushIn): New define.

2022-05-12  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/array.el (array-mode-map): Prefer defvar-keymap.

2022-05-12  Po Lu  <luangruo@yahoo.com>

	Fix searching the bitmap file path on Haiku

	* src/image.c (image_create_bitmap_from_file): [HAVE_HAIKU]:
	Look for the bitmap inside `x-bitmap-file-path' as well.

2022-05-12  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp's write-region

	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	Use `tramp-handle-write-region'.
	(tramp-sudoedit-handle-write-region): Remove.

	* lisp/net/tramp.el (tramp-skeleton-write-region):
	Set extended attributes.

2022-05-12  Po Lu  <luangruo@yahoo.com>

	Fix merging of anonymous faces with an `:extend' property on unexec

	* src/emacs.c (main): Unconditionally call `init_xfaces'.
	* src/lisp.h: Enable `init_xfaces' on unexec builds too.
	* src/xfaces.c (init_xfaces): Move fix for bug#34226 into
	pdumper-specific section leaving the initialization of
	`face_attr_sym' intact.

2022-05-12  Po Lu  <luangruo@yahoo.com>

	Improve mouse dragging

	* lisp/mouse.el (mouse-drag-and-drop-region-display-tooltip):
	Respect foreground and background parameters.
	(mouse-drag-and-drop-region): Enable fine grained tracking.

2022-05-12  Po Lu  <luangruo@yahoo.com>

	Make cursor display on Haiku consistent with X

	* src/haikuterm.c (haiku_draw_image_glyph_string): Merge cursor
	foregrounds correctly.
	(haiku_draw_hollow_cursor, haiku_draw_bar_cursor): New
	functions.  Port code from X.
	(haiku_draw_window_cursor): Port code from X so bar cursors on
	top of images are treated right.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix cperl-file-style defcustom type

	* lisp/progmodes/cperl-mode.el (cperl-file-style): Fix the type.

2022-05-11  Po Lu  <luangruo@yahoo.com>

	Clean up Haiku display opening code

	* src/haikufns.c (Fx_open_connection):
	(Fhaiku_frame_list_z_order): Improve error messages and fix
	coding style.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new command 'imenu-flush-cache'

	* lisp/imenu.el (imenu-flush-cache): New command (bug#20589).

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	New command 'package-update-all'

	* lisp/emacs-lisp/package.el (package-update-all): New function
	(bug#19146).
	(package--updateable-packages): Factored out...
	(package-update): ... from here.

2022-05-11  Po Lu  <luangruo@yahoo.com>

	Port some stuff to XCB to avoid confusing Xlib behavior

	* src/xterm.c (x_set_frame_alpha, handle_one_xevent): Port
	retrieving the opacity property to XCB.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option switch-to-prev-buffer-skip-regexp

	* doc/lispref/windows.texi (Window History): Document it.
	* lisp/window.el (switch-to-prev-buffer-skip): Mention it.
	(switch-to-prev-buffer-skip-regexp): New user option (bug#19070).
	(switch-to-prev-buffer-skip-p): Use it.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Bind TAB in indent-rigidly-map as a convenience

	* lisp/indent.el (indent-rigidly): Mention it.
	(indent-rigidly-map): Bind TAB so that `C-x TAB TAB...' does the
	logical thing.

2022-05-11  Po Lu  <luangruo@yahoo.com>

	Only handle SelectionRequest events from the DND display during DND

	* src/xterm.c (handle_one_xevent): Handle only SelectionRequest
	events from the DND frame's display via hold_quit.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make message load eudc-capf more lazily

	* lisp/gnus/message.el (eudc-capf): Remove require, because all
	the relevant eudc-capf functions are autoloaded, apparently.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make anchored regexps work in image-dired-mark-tagged-files

	* lisp/image-dired.el (image-dired-mark-tagged-files): Make
	anchored regexps work (bug#55375).

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix non-variable widgets in the 'H' command in Cus-mode

	* lisp/cus-edit.el (custom-mode-map):
	(custom-commands): Adjust.
	(custom-toggle-hide-all-widgets): Rename and work for all widget
	types, not just variables.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust restore-buffer-modified-p autosaved logic

	* doc/lispref/buffers.texi (Buffer Modification): Adjust
	documentation.

	* src/buffer.c (Frestore_buffer_modified_p): Fix up the logic
	around `autosaved': It means "the buffer is modified, and also
	autosaved".

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make C-u M-x apropos-user-option include buttons

	* lisp/apropos.el (apropos-user-option): Include buttons in the
	output always (bug#55376).
	(apropos-print-doc): Don't insert three spaces in the
	non-apropos-multi-type case.

2022-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	(byte-compile-eval): Avoid some false positive "noruntime" warnings

	* lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Loosen the check
	before refraining from adding a function to noruntime.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix regression in edmacro-finish-edit when parsing "none"

	* lisp/edmacro.el (edmacro-finish-edit): Use `kbd' here because
	we're comparing the result to a string (bug#55372).

2022-05-11  Paul Eggert  <eggert@cs.ucla.edu>

	functionp doc improvement

	* doc/lispref/eval.texi, doc/lispref/functions.texi, src/eval.c:
	Document functionp a bit more carefully.  It can return t
	on non-functions.

2022-05-11  Tino Calancha  <tino.calancha@gmail.com>

	char-uppercase-p: New predicate

	Return non-nil if its argument is an uppercase character.

	Suggested in Bug#54804.

	* lisp/subr.el (char-uppercase-p): New defun.
	* etc/NEWS (Lisp Changes in Emacs 29.1): Announce it
	* doc/lispref/display.texi (Size of Displayed Text): Document it.
	* test/lisp/subr-tests.el (test-char-uppercase-p): Add a test.

2022-05-11  Michael Albinus  <michael.albinus@gmx.de>

	Improve handling of `tramp-set-file-uid-gid'

	* lisp/net/tramp.el (tramp-skeleton-write-region):
	Call `tramp-set-file-uid-gid' properly.
	(tramp-set-file-uid-gid): Handle also `tramp-crypt-file-name-handler'.

	* test/lisp/net/tramp-tests.el (tramp-test27-load): Adapt test.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify precedence rules in Active Display Table manual node

	* doc/lispref/display.texi (Active Display Table): Say what "takes
	precedence" means here (bug#18546).

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow giving switches to the program in `M-x term'

	* lisp/term.el (term, ansi-term): Allow giving switches to the
	program (bug#18105).

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix previous cperl-file-style change

	* lisp/progmodes/cperl-mode.el (cperl--set-file-style): New function.
	(cperl-mode): Add it to hack-local-variables-hook to really set
	the cperl style.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option 'cperl-file-style'

	* lisp/progmodes/cperl-mode.el (cperl-file-style): New user option
	(bug#17948).
	(cperl-mode): Mention it.
	(cperl-style-alist): Mention it.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix fontification of multi-line declarations in f90-mode

	* lisp/progmodes/f90.el (f90-font-lock-keywords-2): Fontify
	multi-line declarations (bug#17222).

2022-05-11  Stefan Kangas  <stefankangas@gmail.com>

	* etc/NEWS: Improve some entries.

	* lisp/net/browse-url.el (browse-url-button-map): Prefer defvar-keymap.

	* lisp/scroll-lock.el (scroll-lock-mode-map): Prefer defvar-keymap.

	* lisp/iimage.el (iimage-mode-map): Prefer defvar-keymap.

	* lisp/calendar/diary-lib.el (diary-mode-map): Prefer defvar-keymap.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Add grep-files-aliases entry for .am files

	* lisp/progmodes/grep.el (grep-files-aliases): Add an alias for
	.am files (bug#16921).

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make recent nicknames erc change more backwards-compatible

	* lisp/erc/erc-button.el (erc-button-add-buttons): Make the
	nicknames change more backwards-compatible (bug#16271).

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new command 'vc-dir-mark-by-regexp'

	* doc/emacs/maintaining.texi (VC Directory Commands): Document it.
	* lisp/vc/vc-dir.el (vc-dir-mode-map): Bind it to `%'.
	(vc-dir-mark-by-regexp): New command (bug#16460).

2022-05-11  Po Lu  <luangruo@yahoo.com>

	Add support for changing pointer types on Haiku

	* doc/lispref/frames.texi (Pointer Shape): Document that the
	pointer shape can now be changed on some window systems other
	than X.

	* lisp/term/haiku-win.el (x-pointer-X-cursor, x-pointer-arrow)
	(x-pointer-bottom-left-corner, x-pointer-bottom-right-corner)
	(x-pointer-bottom-side, x-pointer-clock, x-pointer-cross)
	(x-pointer-cross-reverse, x-pointer-crosshair)
	(x-pointer-diamond-cross, x-pointer-hand1, x-pointer-hand2)
	(x-pointer-left-side, x-pointer-right-side)
	(x-pointer-sb-down-arrow, x-pointer-sb-left-arrow)
	(x-pointer-sb-right-arrow, x-pointer-sb-up-arrow, x-pointer-target)
	(x-pointer-top-left-corner, x-pointer-top-right-corner)
	(x-pointer-top-side, x-pointer-watch, x-pointer-invisible): New
	pointer constants.

	* src/haiku_support.cc (BCursor_from_id): Accept int instead of
	enum.
	* src/haiku_support.h: Update prototypes.

	* src/haikufns.c (haiku_create_frame): Stop manually assigning
	cursors and set default value of the mouse color property.
	(haiku_free_frame_resources): Free custom cursors too.
	(struct user_cursor_info, INIT_USER_CURSOR): New struct.
	(haiku_free_custom_cursors): New function.
	(haiku_set_mouse_color): New param handler.
	(haiku_frame_parm_handlers): Add param handler.
	(syms_of_haikufns): New cursor shape variables from X.

	* src/haikuterm.h: Update prototypes.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation warning in gdb-mi.el

	* lisp/progmodes/gdb-mi.el (gud-go): Fix compilation warning
	introduced by previous change.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Bind gud-go and allow the prefix to enter arguments

	* lisp/progmodes/gdb-mi.el (gdb): Bind gud-go to `C-c C-v' and
	allow a prefix to enter arguments (bug#10106).

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't signal errors in check-declare-directory

	* lisp/emacs-lisp/check-declare.el (check-declare-directory): Don't
	bug out if we don't find any files with declare-function:(bug#55354)
	because this is a predicate function, and that's inconvenient.

2022-05-11  Yoav Marco  <yoavm448@gmail.com>  (tiny change)

	(sqlite-mode--column-names): Support nested parens

	* lisp/sqlite-mode.el (sqlite-mode--column-names): Make parsing
	more resilient (bug#55363).

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Add meta navigation keys to outline-minor-mode-cycle-map"

	This reverts commit 2e949031160d769bbac941c064b825a5c578afc5.

	These key bindings are too intrusive.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't try to toggle untogglable widgets in custom-toggle-hide-all-variables

	* lisp/cus-edit.el (custom-toggle-hide-all-variables): Only toggle
	the widgets that can be toggled.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Warn about quoted symbols in defcustom choice/other forms

	* lisp/emacs-lisp/bytecomp.el
	(byte-compile--suspicious-defcustom-choice): New function (bug#16271).
	(byte-compile-nogroup-warn): Use it to warn about forms like
	(choice (const :tag "foo" 'bar)).

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Use `nicknames' instead if `'nicknames' in erc-button-alist

	* lisp/erc/erc-button.el (erc-button-alist): Use "nicknames"
	instead of "'nicknames" to enable automatic syntax checking
	(bug#16271).
	(erc-button-add-buttons): Adjust usage.

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-05-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix more defcustom :type errors

	* lisp/vc/vc-src.el (vc-src-master-templates):
	* lisp/vc/vc-rcs.el (vc-rcs-master-templates): Remove quote
	characters inserted by mistake.

2022-05-11  Mattias Engdegård  <mattiase@acm.org>

	Remedy ineffective backslashes and fix regexps

	* lisp/info.el (Info-read-node-name-2): Double backslash for intended
	escaping effect.
	* lisp/term.el (term-send-function-key): Remove redundant `+`.
	* lisp/leim/quail/indian.el:
	* lisp/simple.el (scratch-buffer, get-scratch-buffer-create):
	Remove ineffective backslashes.

2022-05-11  Mattias Engdegård  <mattiase@acm.org>

	* src/lisp.h (FOR_EACH_TAIL_INTERNAL): Faster node comparison.

2022-05-11  Po Lu  <luangruo@yahoo.com>

	Fix mouse pointer avoidance in some configurations

	* lisp/avoid.el (mouse-avoidance-random-shape): Ignore invisible
	pointer.
	(mouse-avoidance-ignore-p): Adjust for interprogram DND.
	* lisp/term/x-win.el (x-pointer-invisible): Make value larger
	than the maximum possible glyph.

	* src/xfns.c (x_set_mouse_color): Use function that handles
	`x-pointer-invisible' too.
	* src/xterm.c (x_create_font_cursor): New function.  Handle
	invisible cursors.
	* src/xterm.h: Update prototypes.

2022-05-11  Juri Linkov  <juri@linkov.net>

	* lisp/textmodes/string-edit.el: Improvements for pop-to-buffer (bug#33007)

	* lisp/textmodes/string-edit.el (string-edit): Use pop-to-buffer
	with fit-window-to-buffer after the buffer is filled with text.
	(string-edit-done, string-edit-abort): Use (quit-window 'kill).

2022-05-11  Po Lu  <luangruo@yahoo.com>

	Make Haiku event buffer non-static

	* src/haikuterm.c (haiku_read_socket): Don't make `buf' static
	in case thread yielding happens inside.

2022-05-11  Po Lu  <luangruo@yahoo.com>

	Fix event memory leak on Haiku

	* src/haikuterm.c (haiku_read_socket): Allocate event buffer on
	the stack.

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Fix frame invalidation on Haiku

	* src/haiku_support.cc (FlipBuffers): Only set view bitmap if it
	actually changed.

	* src/haikuterm.c (haiku_clip_to_string_exactly)
	(haiku_draw_window_cursor, haiku_draw_fringe_bitmap): Fix region
	invalidation.

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Try to preserve font styles in the Haiku font dialog

	* haiku_support.cc (class EmacsFontSelectionDialog)
	(UpdateStylesForIndex): If a style was previously selected and
	exists in the new family as well, select it after adding the new
	items.

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Make reliefs on Haiku more like X

	* src/haikuterm.c (haiku_draw_relief_rect): Use frame background
	(normal GC) for corners.

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Clean up some MAYBE_UNUSED functions

	* src/xterm.c (x_clear_area1): Wrap in the conditions where it
	will actually be used.

2022-05-10  Paul Eggert  <eggert@cs.ucla.edu>

	* src/eval.c (Ffunctionp): Clarify "function" in doc string.

	* src/floatfns.c: Update comment.

2022-05-10  Paul Eggert  <eggert@cs.ucla.edu>

	Port libm configure-time test to Solaris 11.4

	* configure.ac (LIB_MATH): Check all the math.h functions
	that Emacs uses, not just sqrt (Bug#55294).

2022-05-10  Alexander Adolf  <alexander.adolf@condition-alpha.com>

	EUDC: Add completion-at-point support

	* lisp/net/eudc-capf.el: New file.
	* lisp/gnus/message.el (message-mode): Add `eudc-capf-complete' to
	`completion-at-point-functions' when a `message-mode' buffer is
	created.
	* doc/misc/eudc.texi (Inline Query Expansion): Add a new subsection,
	describing the new `completion-at-point' mechanism in `message-mode'.
	* etc/NEWS (EUDC): Describe the new `completion-at-point' method.

2022-05-10  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Siddham script

	* lisp/language/indian.el ("Siddham"): New language environment.
	Add composition rules for Siddham.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Siddham.
	* lisp/leim/quail/indian.el ("siddham"): New input method.

	* etc/HELLO: Add a Siddham greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.  (Bug#55350)

2022-05-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some quoting problems in defcustom :type

	* lisp/progmodes/gdb-mi.el
	(gdb-restore-window-configuration-after-quit):
	* lisp/gnus/gnus.el (large-newsgroup-initial):
	* lisp/eshell/em-hist.el (eshell-hist-ignoredups): Fix invalid
	quoting in :type.

2022-05-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new command to toggle hiding all widgets in a Customize buffer

	* lisp/cus-edit.el (custom-commands): Add menu entry.
	(custom-toggle-hide-all-variables): New command (bug#15748).

2022-05-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Use fields on log-edit headers (which changes `C-a' behavior)

	* lisp/vc/log-edit.el (log-edit-insert-message-template): Fieldify
	headers so that `C-a' takes us to the start of the string, not the
	line (bug#15645).

2022-05-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Make ispell-region/buffer push the mark of the final word

	* lisp/textmodes/ispell.el (ispell-region): Push the mark of the
	final location.
	(ispell-process-line): Change the return value to include the
	position of the final word.

2022-05-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix markup in read-number doc string

	* lisp/subr.el (read-number): Fix markup for the letter.

2022-05-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow packages to alter menu entries in the Buffers menu

	* lisp/menu-bar.el (menu-bar-update-buffers): Use it.
	(menu-bar-buffers-menu-command-entries): Put the entries into the
	defvar so that packages can modify it (bug#14244).

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Improve display of relief rectangles on NS

	* src/nsterm.m (ns_draw_relief): Respect cursor color and draw
	corners like X.

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Respect `alpha-background' drawing relief corners

	* src/xterm.c (x_draw_relief_rect): Respect background alpha for
	corner rects.

2022-05-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `apropos-variable' include values in output

	* lisp/apropos.el (apropos-print): Include variable values in the
	output (bug#13842).

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Fix display of depressed buttons

	* src/xterm.c (x_draw_relief_rect): Fix typo.

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Improve relief rect handling on Haiku

	* haikuterm.c (haiku_calculate_relief_colors): Calculate
	backgrounds for image glyphs like on X.
	(haiku_draw_relief_rect): Remove extra parameter.
	(haiku_draw_string_box, haiku_draw_image_relief): Adjust
	accordingly.

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Fix X11 relief background clearning when hwidth is larger than vwidth

	* src/xterm.c (x_fill_triangle, x_make_point, x_inside_rect_p):
	New functions.
	(x_draw_relief_rect): Complete rewrite.  Use more sensible
	primitives.

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Improve display of reliefs on NS

	* src/nsfont.m (nsfont_draw): Don't compensate for left box
	twice.
	* src/nsterm.m (ns_draw_relief): Draw outer edges of box like on
	X.

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Handle deletion of opacity property too

	* src/xterm.c (handle_one_xevent): Clear `alpha' frame parameter
	when opacity prop is gone or invalid.

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Work around some broken programs when reading opacity prop

	* src/xterm.c (handle_one_xevent): Accept some other types that
	property is set to by thoughtless programs.

2022-05-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix bibtex-map-entries regression at bobp

	* lisp/textmodes/bibtex.el (bibtex-map-entries): Fix regression
	introduced by c32e8b33f (bug#55342) -- don't fail when the first
	entry is at bobp.

2022-05-10  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	7b4bdf7b9b Remove the AUCTeX subsection from MS-Windows FAQ
	d2a5631552 Update AUCTeX FAQ entry
	177718bc6d Update string-to-number documentation to bignum Emacs
	74cc3b525f Fix doc string references to tags-loop-continue

2022-05-10  Po Lu  <luangruo@yahoo.com>

	Simplify Haiku selection code

	* src/haiku_select.cc (get_clipboard_object): New function.
	(BClipboard_find_data, BClipboard_get_targets, BClipboard_set_data)
	(BClipboard_find_system_data)
	(BClipboard_find_primary_selection_data)
	(BClipboard_find_secondary_selection_data)
	(BClipboard_set_system_data, BClipboard_set_primary_selection_data)
	(BClipboard_set_secondary_selection_data, BClipboard_free_data)
	(BClipboard_system_targets, BClipboard_primary_targets)
	(BClipboard_secondary_targets): Delete functions.
	(be_find_clipboard_data_1, be_set_clipboard_data_1)
	(be_get_clipboard_targets_1, be_find_clipboard_data)
	(be_set_clipboard_data, be_get_clipboard_targets): New
	functions.
	(be_lock_clipboard_message, be_unlock_clipboard): Use
	`get_clipboard_object' to get clipboard from ID.

	* src/haikuselect.c (haiku_get_clipboard_name): New function.
	(Fhaiku_selection_data, Fhaiku_selection_put)
	(Fhaiku_selection_owner_p): Adjust to use new simplified
	functions.

	* src/haikuselect.h: Update prototypes.

2022-05-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Add more compilation-auto-jump-to-first-error options

	* doc/emacs/building.texi (Compilation Mode): Document it.
	* lisp/progmodes/compile.el
	(compilation-auto-jump-to-first-error): Extend type.
	(compilation--file-known-p): New function.
	(compilation-auto-jump): Use it to support the new values
	(bug#8228).
	(compilation-find-file-1): Factored out into own function.
	(compilation-find-file): Factored out from here.

2022-05-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Make dabbrev use the buffer's file name as a source for completions

	* lisp/dabbrev.el (dabbrev--find-expansion): Include the buffer's
	file name in the completions (bug#8163).

2022-05-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Make imenu find defalias entries

	* lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression):
	Also find defalias (bug#7855).

2022-05-09  Po Lu  <luangruo@yahoo.com>

	Simplify XDND code

	* src/xfns.c (Fx_begin_drag): Use SAFE_ALLOCA_STRING and encode
	strings in the right coding system.

2022-05-09  Sean Whitton  <spwhitton@spwhitton.name>

	Factor out *scratch* initialization

	* lisp/simple.el (get-scratch-buffer-create): New function, factored
	out of scratch-buffer, and additionally clearing the modification flag
	and calling substitute-command-keys (bug#55257).
	(scratch-buffer):
	* lisp/server.el (server-execute):
	* lisp/startup.el (normal-no-mouse-startup-screen, command-line-1):
	* lisp/window.el (last-buffer, window-normalize-buffer-to-switch-to):
	* src/buffer.c (Fother_buffer, other_buffer_safely): Use it.
	(syms_of_buffer): Add Qget_scratch_buffer_create.
	* lisp/startup.el (startup--get-buffer-create-scratch): Delete
	now-unused function.
	* doc/lispref/os.texi (Summary: Sequence of Actions at Startup):
	* NEWS (Incompatible changes in Emacs 29.1): Document the change.

2022-05-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Add NEWS entries for recent autosaved buffer modification status

	* doc/lispref/buffers.texi (Buffer Modification): Note 'autosaved'
	value.

2022-05-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Reimplement recent with-silent-modifications auto-save changes

	* doc/lispref/buffers.texi (Buffer Modification): Document
	buffer-modified-p returning `autosaved'.
	* lisp/subr.el (with-silent-modifications): Use
	restore-buffer-modified-p instead of altering the buffer modiff
	(since this has other side effects like not updating after async
	`display' changes.

	* src/buffer.c (Fbuffer_modified_p): Allow returning whether the
	buffer has been autosaved after changes.
	(Frestore_buffer_modified_p): Allow adjusting whether the buffer
	has been autosaved after changes.

	* src/fileio.c (Fdo_auto_save): Refill the doc string.

2022-05-09  Andrea Corallo  <akrl@sdf.org>

	Fix syntax descriptor comparison in python-indent-region

	* lisp/progmodes/python.el (python-indent-region): Compare raw
	syntax descriptors with equal (bug#45328) (because comparing them with
	eq will always be false).

2022-05-09  Po Lu  <luangruo@yahoo.com>

	Update alpha frame parameter when the window manager changes it

	* src/xfns.c (x_set_alpha): New function.  Set
	`alpha_identical_p' flag.
	(x_frame_parm_handlers): Use it to handle `alpha' instead.

	* src/xterm.c (x_set_frame_alpha): Make tests against current
	alpha safer.
	(handle_one_xevent): Set frame alpha when alpha property
	changes.
	* src/xterm.h (struct x_output): New flag `alpha_identical_p'.

2022-05-09  Yuan Fu  <casouri@gmail.com>

	Fix compilation warnings

	* src/treesit.c: Add static keywords, remove unused variables, add
	const qualifier.

2022-05-09  Yuan Fu  <casouri@gmail.com>

	Remove call to nconc to improve performance

	* src/treesit.c (struct capture_range): New struct.
	(ts_predicate_capture_name_to_text, ts_predicate_equal,
	ts_predicate_match, ts_eval_predicates): Replace capture list with
	capture_range.
	(Ftreesit_query_capture): Remove call to nconc.

2022-05-09  Theodor Thornhill  <theo@thornhill.no>

	Use format string instead of concat

	* eglot.el (eglot-handle-notification): Because diagnostics code can
	be integer or string, and integer fails the sequencep test, use format
	to create this string.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/948

2022-05-09  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Sharada script

	* lisp/language/indian.el ("Sharada"): New language environment.
	Add composition rules for Sharada.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Sharada.
	* lisp/leim/quail/indian.el ("sharada"): New input method.

	* etc/HELLO: Add a Sharada greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.  (Bug#55328)

2022-05-09  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp tests

	* lisp/net/tramp-smb.el (tramp-smb-handle-copy-file):
	Handle compressed files.

	* lisp/net/tramp.el (tramp-skeleton-write-region):
	Handle encrypted VISIT file.
	(tramp-get-process-attributes): Add backward compatibility.

	* test/lisp/net/tramp-tests.el (with-connection-local-variables):
	Declare.
	(auto-save-file-name-transforms): Don't declare.
	(ert-resource-directory-format)
	(ert-resource-directory-trim-left-regexp)
	(ert-resource-directory-trim-right-regexp, ert-resource-directory)
	(ert-resource-file): Define if they don't exist.
	(tramp-test10-write-region-file-precious-flag)
	(tramp-test10-write-region-other-file-name-handler)
	(tramp-test31-interrupt-process, tramp-test31-signal-process)
	(tramp--test-async-shell-command)
	(tramp-test34-connection-local-variables)
	(tramp-test39-make-lock-file-name)
	(tramp-test39-detect-external-change): Extend tests.

2022-05-09  Eli Zaretskii  <eliz@gnu.org>

	Remove the AUCTeX subsection from MS-Windows FAQ

	* doc/misc/efaq-w32.texi (AUCTeX): Remove the subsection, it is no
	longer useful.  (Bug#55330)

2022-05-09  Protesilaos Stavrou  <info@protesilaos.com>

	Shorten note about didactic space in TUTORIAL.el_GR (bug#55332)

2022-05-09  Po Lu  <luangruo@yahoo.com>

	* src/haikuterm.c (haiku_draw_fringe_bitmap): Set stipple flag.

2022-05-09  Po Lu  <luangruo@yahoo.com>

	Fix reading faces with a default value that is a symbol

	* lisp/faces.el (read-face-name): Don't try to intern face if it
	is already a symbol.

2022-05-09  Po Lu  <luangruo@yahoo.com>

	Fix scroll optimizations being enabled for some rows with stipples

	* src/dispnew.c (update_text_area): New parameter `partial_p'.
	Set it if not enough glyphs were drawn to determine if a row
	doesn't have a stipple.
	(update_window_line): Preserve current_row->stipple_p in that
	case, after making the desired row current.

	* src/xterm.c (x_draw_fringe_bitmap): Set row->stipple.

2022-05-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Make ediff-show-diff-output work better on unsaved buffers

	* lisp/vc/ediff-util.el (ediff-show-diff-output): Make the `D'
	command work on unsaved buffers without a prefix (bug#45016).

2022-05-09  João Távora  <joaotavora@gmail.com>

	Allow non-interactive use of eldoc-doc-buffer

	* lisp/emacs-lisp/eldoc.el (eldoc-doc-buffer): Allow
	non-interactive use.
	(Version): Bump minor.

2022-05-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Copy edits for the regexp sections in the manuals

	* doc/lispref/searching.texi (Regexp Backslash):
	* doc/emacs/search.texi (Regexps, Regexp Backslash): Copy edits
	from Jay Bingham (bug#41970).

2022-05-09  Po Lu  <luangruo@yahoo.com>

	Respect display scale factor drawing underwaves on Haiku

	* src/haikuterm.c (haiku_get_scale_factor): New function.
	(haiku_draw_underwave): Apply said factor.

2022-05-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Add meta navigation keys to outline-minor-mode-cycle-map

	* lisp/outline.el (outline-minor-mode-cycle-map): Add meta
	navigate keys (bug#41129).

2022-05-09  Arash Esbati  <arash@gnu.org>

	Update AUCTeX FAQ entry

	* doc/misc/efaq-w32.texi (AUCTeX): AUCTeX project isn't providing
	pre-compiled versions for Windows anymore (bug#55330).

2022-05-09  Vladimir Nikishkin  <for.emacs-table.el-environment-patch_2022-05-09@lockywolf.net>

	Add new user option table-latex-environment

	* lisp/textmodes/table.el (table-latex-environment): New user
	option (bug#55333).
	(table--generate-source-prologue): Use it.

2022-05-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Update string-to-number documentation to bignum Emacs

	* doc/lispref/strings.texi (String Conversion): string-to-number
	no longer converts integers to floating point numbers (bug#55334).

2022-05-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix doc string references to tags-loop-continue

	* lisp/vc/vc-dir.el (vc-dir-search, vc-dir-query-replace-regexp):
	Fix reference to obsolete tags-loop-continue (bug#55311).

2022-05-09  Po Lu  <luangruo@yahoo.com>

	Fix file-based launching on Haiku

	* src/haikuselect.c (Fhaiku_roster_launch): Canonicalize file
	names before using them.

2022-05-09  Po Lu  <luangruo@yahoo.com>

	Use default external browser by default on Haiku

	* lisp/net/browse-url.el (browse-url-default-browser): Use that
	by default on Haiku.
	(browse-url-default-haiku-browser): New function.
	* src/haiku_support.cc (be_roster_launch):
	* src/haiku_support.h: New function.  Update prototypes.
	* src/haikuselect.c (haiku_message_to_lisp): Encode and decode
	files correctly.
	(haiku_lisp_to_message): Encode and decode files correctly.
	(Fhaiku_roster_launch): New function.
	(syms_of_haikuselect): Update defsubrs.

2022-05-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1d012e0a62 Linux console: don't translate ESC TAB to `backtab' in inp...

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Fix stipple bitmap caching on Haiku

	* src/image.c (image_create_bitmap_from_file): Set file name on
	the bitmap rec on Haiku.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Allow disabling Motif drag protocol

	* lisp/cus-start.el (standard): Add new variable.
	* src/xterm.c (x_dnd_update_state, handle_one_xevent): Respect
	new variable.
	(syms_of_xterm): New variable `x-dnd-disable-motif-drag'.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Allow precision-scrolling nonselected windows when the minibuffer is resized

	* doc/lispref/windows.texi (Vertical Scrolling): Document new
	`preserve-vscroll-p' parameter of `set-window-vscroll'.
	* etc/NEWS: Announce new parameter.

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page)
	(pixel-scroll-precision-scroll-up-page): Use that parameter when
	setting the vscroll.

	* src/window.c (window_scroll_pixel_based, Fset_window_vscroll):
	Adjust for new parameter.
	* src/window.h (struct window): New flag `preserve_vscroll_p'.

	* src/xdisp.c (redisplay_window): Preserve the vscroll inside
	force_start on frozen windows with that flag set.  (bug#55312)

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Fix race conditions in handling of unsupported drops on X

	* lisp/x-dnd.el (x-dnd-handle-unsupported-drop): Adjust for new
	parameters.

	* src/keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr):
	Export variables.
	(kbd_buffer_get_event): Ignore already handled unsupported
	drops.
	* src/keyboard.h: Update prototypes.

	* src/termhooks.h (enum event_kind): Document meaning of
	`modifiers' in UNSUPPORTED_DROP_EVENTs.

	* src/xterm.c (x_dnd_send_unsupported_drop): Set event modifiers
	to current level.
	(x_toggle_visible_pointer): Fix fixes fallback.
	(x_dnd_begin_drag_and_drop): Handle UNSUPPORTED_DROP_EVENTs
	already in the keyboard buffer before starting DND.
	(syms_of_xterm): Give timestamp to unsupported drop function.

	* src/xterm.h: Update prototypes.

2022-05-08  João Távora  <joaotavora@gmail.com>

	Fix egregious thinko in eglot--uri-to-path

	One shouldn't unhex the URI before parsing it.  Just consider a
	filename with a # character in it.  The character is encoded as C%23,
	after unhexing the file name becomes.

	  /tmp/C#/Program.cs

	Now, parsing this as the URL will fail completely as the # mean
	"anchor" in URLs.

	* eglot.el (eglot--uri-to-path): Fix thinko.

2022-05-08  João Távora  <joaotavora@gmail.com>

	Consider diagnostic.code when generating flymake diagnostics

	Not sure this will please everybody, can almost guess someone is going
	to ask for a custom switch.

	Instead this info (and the source) should be passed on to Flymake.
	That's where the custom switch for controlling formatting of
	diagnostic messages should exist.  But that's too much work right now.

	* eglot.el (eglot-handle-notification): Consider Diagnostic.code.

2022-05-08  Sean Whitton  <spwhitton@spwhitton.name>

	remember-notes: Use pop-to-buffer-same-window not switch-to-buffer

	* lisp/textmodes/remember.el (remember-notes): Use
	pop-to-buffer-same-window rather than switch-to-buffer, to allow
	customization via display-buffer-alist.

2022-05-08  Juri Linkov  <juri@linkov.net>

	Minor documentation improvements for completions commands and options

	* doc/emacs/mini.texi (Completion Commands): Mention prefix argument
	of choose-completion.
	(Completion Options): Improve documentation of completions-format
	and completions-sort.

2022-05-08  Protesilaos Stavrou  <info@protesilaos.com>

	Add Greek translation of the tutorial

	* etc/tutorials/TUTORIAL.el_GR: Add tutorial in Greek.  It is a
	faithful translation of the TUTORIAL.
	* etc/tutorials/TUTORIAL.translators (Author): Mention myself as
	the author and the maintainer.
	* etc/NEWS: Announce it.  (Bug#55314)

	* lisp/language/greek.el (set-language-info-alist): Link to the
	tutorial and include sample text.

2022-05-08  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Tirhuta script

	* lisp/language/indian.el ("Tirhuta"): New language environment.
	Add composition rules for Tirhuta.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Tirhuta.
	* lisp/leim/quail/indian.el ("tirhuta"): New input method.

	* etc/HELLO: Add a Tirhuta greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.

2022-05-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/oclosure.el (oclosure-define): Fix empty case

2022-05-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't hang on trying to rename FIFOs between file systems

	* src/fileio.c (Frename_file): Don't hang on trying to move FIFOs
	(bug#34069).

2022-05-08  Visuwesh  <visuweshm@gmail.com>

	dired-do-query-replace-regexp doc string fix

	* lisp/dired-aux.el (dired-do-query-replace-regexp): Refer
	'fileloop-continue' instead of the obsolete command
	'tags-loop-continue'.  (Bug#55311)

	(cherry picked from commit 4c505203f9171886f47638779326e257a95a1d79)

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Fix display of fringes with stipples on X

	* src/xterm.c (x_draw_fringe_bitmap): Set fill style and use
	fill function correctly.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Fix display of fringes with stipples on Haiku

	* haikuterm.c (haiku_after_update_window_line): Fix coding
	style.
	(haiku_draw_fringe_bitmap): Handle display of stipples if
	present.

2022-05-08  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix bug in c-parse-state.  Fixes bug #55181.

	* lisp/progmodes/cc-engine.el (c-state-cache-lower-good-pos): When in a
	literal, return the start of that literal as a "good pos", not the parameter
	POS.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Set stipple flag on PGTK as well

	* pgtkterm.c (pgtk_draw_glyph_string_background):
	(pgtk_draw_glyph_string): Set stipple flag on string row.
	(pgtk_draw_fringe_bitmap):
	(pgtk_defined_color): Fix coding style.

2022-05-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow term-mode to send function keys to the underlying shell

	* lisp/term.el (term-bind-function-keys): New user option.
	(term-raw-map): Bind f keys.
	(term-send-function-key): Send the function key to the underlying
	shell (bug#29920).

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Set stipple flags on Haiku as well

	* src/haikuterm.c (haiku_draw_glyph_string): Set stipple flag
	where stipples are actually drawn.  (This is different from X.)

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Disable scrolling optimizations when a stipple is present

	* src/dispextern.h (struct glyph_row): New field `stippled_p'.
	We cannot just use the contents of the glyph row, since it has
	to be set in `gui_clear_end_of_line' and is more convenient to
	set inside the various draw_glyph_string functions.

	* src/dispnew.c (scrolling_window): Disable if a row in the
	current matrix has the stipple_p flag set.

	* src/xdisp.c (gui_clear_end_of_line):
	* src/xterm.c (x_draw_image_glyph_string)
	(x_draw_stretch_glyph_string, x_draw_glyph_string): Set
	`stipple_p' if a stipple pattern was drawn.

2022-05-08  Alan Mackenzie  <acm@muc.de>

	Linux console: don't translate ESC TAB to `backtab' in input-decode-map.

	This translation happened after the terminfo entry for <shift>TAB in the linux
	section was changed to kcbt=\E^I in ncurses version 6.3.

	* lisp/term/linux.el (terminal-init-linux): Add a define-key form to remove
	the entry for "\e\t" from input-decode-map.

	* etc/PROBLEMS: Add a new section under "character terminals" about S-TAB
	wrongly doing the same thing as M-TAB, giving tips about amending the Linux
	keyboard layout.

2022-05-08  Visuwesh  <visuweshm@gmail.com>

	dired-do-query-replace-regexp doc string fix

	* lisp/dired-aux.el (dired-do-query-replace-regexp): Refer
	'fileloop-continue' instead of the obsolete command
	'tags-loop-continue'.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Fix crashes on ordinary menus on macOS

	* src/nsmenu.m ([EmacsMenu runMenuAt:forFrame:keymaps:]): Fix
	coding style.
	([EmacsMenu menu:willHighlightItem:]): Ignore if this is a
	context menu.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Fix bug in `pixel-scroll-precision-mode' on nonselected windows

	* src/window.c (Fset_window_vscroll): Mark window for redisplay.
	(bug#55299)

2022-05-08  Michael Albinus  <michael.albinus@gmx.de>

	Handle changed scp protocol in Tramp

	* lisp/net/tramp-sh.el (tramp-scp-force-scp-protocol): New defvar.
	(tramp-scp-force-scp-protocol): New defun.
	(tramp-do-copy-or-rename-file-out-of-band): Use it.
	(tramp-scp-direct-remote-copying, tramp-methods) <scp, scpx>: Use "%z".

	* lisp/net/tramp.el (tramp-methods): Adapt docstring.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Improve handling of invisible cursor alloc failures

	* src/xterm.c (x_toggle_visible_pointer): Use Xfixes if cursor
	allocation really fails.  This happens when the X server has a
	limit on the number of cursors that can be created.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Fix file-based stipple on NS

	* src/image.c (image_create_bitmap_from_file) [HAVE_NS]: Fix
	loading XBM data from file.

2022-05-08  Eli Zaretskii  <eliz@gnu.org>

	Fix selection dialog display on MS-Windows

	* src/w32fns.c (w32_wnd_proc) <WM_PAINT>: Update the frame from
	the back buffer when double-buffering is in effect and a selection
	dialog is open.
	(w32_dialog_in_progress): Indicate to 'w32_wnd_proc' that a
	selection dialog is open.  (Bug#55208)

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Fix display of hollow box cursor on NS

	* src/nsterm.m (ns_draw_window_cursor): Fix verbatim
	translations from X.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Fix setting stipple via `set-face-stipple'

	* lisp/faces.el (face-valid-attribute-values): Return results
	for `:stipple' in correct format.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Implement stipples for stretch glyphs

	* src/haikuterm.c (haiku_draw_stipple_background): Accept new
	arguments for specifying the color explicitly.  All callers
	changed.
	(haiku_draw_stretch_glyph_string): Draw stipple correctly.
	(haiku_draw_glyph_string): Handle stipple correctly when drawing
	neighbors.

2022-05-08  Po Lu  <luangruo@yahoo.com>

	Fully implement stipples for text on Haiku

	* src/haikufont.c (haikufont_draw): Use
	`haiku_draw_background_rect' instead.

	* src/haikuterm.c (haiku_draw_plain_background): Change
	arguments to accept rect manually.
	(haiku_get_bitmap): Delete function.
	(haiku_get_bitmap_rec): New function.
	(haiku_draw_stipple_background): Accept rect instead of box
	sizes.
	(haiku_draw_background_rect): New function.
	(haiku_maybe_draw_background): Use that instead.
	(haiku_draw_image_glyph_string): Add notice.
	(haiku_draw_glyph_string): Set `stippled_p' correctly.

	* src/haikuterm.h (struct haiku_bitmap_record): New fields for
	keeping track of stipple state.
	* src/image.c (image_create_bitmap_from_data)
	(image_create_bitmap_from_file, free_bitmap_record): Free and
	set them accordingly.

2022-05-07  Po Lu  <luangruo@yahoo.com>

	Implement bitmap loading for faces on Haiku

	Stipples don't completely work yet.

	* lisp/faces.el (face-valid-attribute-values): Enable `:stipple'
	on Haiku.
	* src/haiku_draw_support.cc (BView_DrawBitmap)
	(BView_DrawBitmapWithEraseOp, BView_DrawMask): Don't push and
	pop states.
	(BView_DrawBitmapTiled): New function.

	* src/haiku_support.cc (BBitmap_import_mono_bits): Delete
	function.
	* src/haiku_support.h: Update prototypes.
	* src/haikuterm.c (get_string_resource): Fix coding style.
	(haiku_get_bitmap, haiku_draw_stipple_background): Implement
	partially.
	(haiku_set_scroll_bar_default_width)
	(haiku_set_scroll_bar_default_height, haiku_scroll_bar_create)
	(haiku_set_horizontal_scroll_bar, haiku_set_vertical_scroll_bar)
	(haiku_create_terminal, haiku_scroll_bar_remove): Fix coding
	style.

	* src/image.c (image_create_bitmap_from_data)
	(image_create_bitmap_from_file): Implement on Haiku.

2022-05-07  Po Lu  <luangruo@yahoo.com>

	Use correct event structures to fetch time on XI2

	* src/xterm.c (handle_one_xevent): Don't use generic `xi_event'
	to access the event time.

2022-05-07  Paul Eggert  <eggert@cs.ucla.edu>

	* src/fns.c: Fix IDs in comments to match code.

2022-05-07  Eli Zaretskii  <eliz@gnu.org>

	Fix Bengali composition rules

	* lisp/language/indian.el (bengali-composable-pattern): Fix
	composition rules for U+09F0 and U+09FE.  Patch from
	समीर सिंह Sameer Singh <lumarzeli30@gmail.com>.  (Bug#55303)

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make 'delete-process' into a command

	* doc/lispref/processes.texi (Deleting Processes): Document
	missing PROCESS value.
	* src/process.c (Fdelete_process): Allow calling interactively
	(bug#10107).

2022-05-07  Eli Zaretskii  <eliz@gnu.org>

	Improve Devanagari character composition rules

	* lisp/language/indian.el (devanagari-composable-pattern): Add
	rules for Vedic accents.  Suggested by Madhu <enometh@meer.net>.

2022-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	(dabbrev-completion): Fix bug#45768

	Make `dabbrev-completion` go through `completion-at-point` so that
	it interacts correctly with Icomplete.  Export a new
	`completion-capf` function while we're at it, since it can be useful
	elsewhere.

	* lisp/dabbrev.el (dabbrev-capf): New function,
	extracted from `dabbrev-completion`.
	(dabbrev-completion): Use it.

2022-05-07  Po Lu  <luangruo@yahoo.com>

	Clean up some variables in the Haiku code

	* src/haikuterm.c: Add comments to some variables and clean up
	initializers.
	* src/haikuterm.h (haiku_frame_param_handlers): Move here
	instead.

2022-05-07  समीर सिंह Sameer Singh  <lumarzeli30@gmail.com>

	Add support for the Kaithi script

	* lisp/language/indian.el ("Kaithi"): New language environment.
	Add composition rules for Kaithi.  Add sample text and input
	method.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Kaithi.
	* lisp/leim/quail/indian.el ("kaithi"): New input method.

	* etc/HELLO: Add a Kaithi greeting.
	* etc/NEWS: Announce the new language environment and its
	input method.

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Explain better what the interactive prefix does in scroll-down/up

	* lisp/window.el (scroll-up-command, scroll-down-command):
	* lisp/image-mode.el (image-scroll-up, image-scroll-down):
	Actually explain what the interactive prefix does (bug#44503).

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Document the `x' DWIM action in the manual

	* doc/emacs/package.texi (Package Menu): Mention the DWIM action
	of the `x' command.

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove tar-mode dabbrev-ignored-buffer-modes

	* lisp/dabbrev.el (dabbrev-ignored-buffer-modes): Remove tar-mode
	from the default, because it isn't really a binary mode.

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `x' in package-menu-mode more DWIM

	* lisp/emacs-lisp/package.el (package-menu-mode): Make the doc
	string more helpful.
	(package-menu-execute): Make `x' when no files are installed DWIM.

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve inferior-python-mode scroll behavior

	* lisp/progmodes/python.el (inferior-python-mode): Use
	scroll-convervatively instead of trying to do this with a comint
	filter (which produces flickering) (bug#31115).

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation warnings in newer subr tests

	* test/lisp/subr-tests.el (test-local-set-state): Fix compilation
	warnings.

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow dabbrev to ignore binary buffers

	* doc/emacs/abbrevs.texi (Dynamic Abbrevs): Document it.
	* lisp/dabbrev.el (dabbrev-ignored-buffer-names)
	(dabbrev-ignored-buffer-regexps): Link to it.
	(dabbrev-ignored-buffer-modes): New user option (bug#19392).
	(dabbrev--filter-buffer-modes): New function.
	(dabbrev--select-buffers, dabbrev--make-friend-buffer-list): Use it.

2022-05-07  Po Lu  <luangruo@yahoo.com>

	Fix mouse face dismissal in some widget popups

	* src/xterm.c (handle_one_xevent): Accept XINotifyUngrab as
	well.

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow inhibiting linkification in *Help* buffers

	* doc/lispref/help.texi (Keys in Documentation): Document it.
	lisp/help-mode.el (help-make-xrefs): Implement a new \+ syntax to
	inhibit buttonification.

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the icomplete-in-buffer doc string document more

	* lisp/icomplete.el (icomplete-in-buffer): Note what this variable
	does and doesn't do (bug#45768).

2022-05-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid having font locking triggering unnecessary auto-saving

	* lisp/subr.el (with-silent-modifications): Use it to restore the
	ticks (bug#11303).

	* src/buffer.c (Finternal__set_buffer_modified_tick): New function.

2022-05-07  Po Lu  <luangruo@yahoo.com>

	Cache color lookup failures as well

	* src/xterm.c (x_parse_color): Cache color lookup failures too.
	* src/xterm.h (struct color_name_cache_entry): New field
	`valid'.

2022-05-07  Yuan Fu  <casouri@gmail.com>

	Add tree-sitter integration

	* configure.ac (HAVE_TREE_SITTER, TREE_SITTER_OBJ): New variables.
	(DYNAMIC_LIB_SUFFIX): new variable, I copied code from MODULES_SUFFIX
	so the diff looks this way.
	* doc/lispref/elisp.texi (Top): Add tree-sitter manual.
	* doc/lispref/modes.texi (Font Lock Mode): mention tree-sitter.
	(Parser-based Font Lock): New section.
	(Auto-Indentation): Mention tree-sitter.
	(Parser-based Indentation): New section.
	* doc/lispref/parsing.texi (Parsing Program Source): New chapter.
	* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add
	treesit-parser and treesit-node type.
	* lisp/treesit.el: New file.
	* src/Makefile.in (TREE_SITTER_LIBS, TREE_SITTER_FLAGS,
	TREE_SITTER_OBJ): New variables.
	* src/alloc.c:
	(cleanup_vector): Add cleanup code for treesit-parser and
	treesit-node.
	* src/casefiddle.c (casify_region): Notify tree-sitter parser of
	buffer change.
	* src/data.c (Ftype_of): Add treesit-parser and treesit-node type
	(Qtreesit_parser, Qtreesit_node): New symbol.
	* src/emacs.c (main): Add symbols in treesit.c.
	* src/eval.c (define_error): Move the function to here.
	* src/insdel.c (insert_1_both, insert_from_string_1, insert_from_gap,
	insert_from_buffer_1, replace_range, del_range_2): Notify tree-sitter
	parser of buffer change.
	* src/json.c (define_error): Move this function out.
	* src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN): Add treesit-parser and
	treesit-node.
	* src/lread.c (Vdynamic_library_suffixes): New variable.
	* src/print.c (print_vectorlike): Add code for printing
	treesit-parser and treesit-node.
	* src/treesit.c: New file.
	* src/treesit.h: New file.
	* test/src/treesit-tests.el: New file.

2022-05-07  Po Lu  <luangruo@yahoo.com>

	Fix 32-bit Haiku build

	* src/haiku_support.cc (MessageReceived): Fix type of
	`old_what'.

2022-05-07  Po Lu  <luangruo@yahoo.com>

	Implement `sticky' frame parameter on Haiku

	* src/haiku_support.cc (BWindow_set_sticky): New function.
	* src/haiku_support.h: Update prototypes.
	* src/haikufns.c (haiku_set_sticky, haiku_frame_parm_handlers):
	New frame param handler.

2022-05-07  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	afdf72eeb2 Fix bug#55274
	5bfac7c774 Provide reference for OTF tags in the ELisp manual

2022-05-06  Po Lu  <luangruo@yahoo.com>

	Fix race conditions in the Haiku file dialog

	* src/haiku_support.cc (current_file_panel_port): Delete
	variable.
	(class EmacsWindow, MessageReceived): Stop handling file panel
	events here.
	(class EmacsFilePanelCallbackLooper): New class.
	(be_popup_file_dialog): Use a separate looper to handle file
	panel events.

2022-05-06  Po Lu  <luangruo@yahoo.com>

	Fix freezes with some oddball menus

	* src/xmenu.c (x_activate_menubar): Clear flag if dispatching
	the event failed.
	* src/xterm.c (handle_one_xevent): Check for sensitive
	CascadeButton instead of row column type.

2022-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	(icomplete-exhibit): Fix use in-buffer

	Also prefer #' to quote function names and remove redundant :group args.

	* lisp/icomplete.el (icomplete-exhibit): Don't presume the completion
	field ends at `point-max`.

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make elisp-mode-syntax-propertize tighter to reflect syntax

	* lisp/progmodes/elisp-mode.el (elisp-mode-syntax-propertize): ?\N
	and #s are case sensitive, so don't case-fold.  (And adjust regexps.)

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make down-list signal an error if called inside a string

	* lisp/emacs-lisp/lisp.el (down-list): Signal an error inside a
	string (bug#5588).

2022-05-06  Juri Linkov  <juri@linkov.net>

	Add char-folding of double quotes in isearch-fold-quotes-mode (bug#24510)

	* lisp/isearch.el (isearch-fold-quotes-mode): Add char-folding of
	double quotation marks.

	* test/lisp/subr-tests.el (test-local-set-state): Test values
	after setting state.

2022-05-06  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Fix handling of IMAP search strings

	* lisp/gnus/gnus-search.el (gnus-search-imap-handle-string): This was
	a misunderstanding of what `multibyte-string-p' means.  The check was
	actually supposed to be whether the string was non-ascii or not.

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Further log-view-file-next fix-ups

	* doc/emacs/maintaining.texi (VC Change Log): Remove the entries
	for commands now removed from most VCs.
	* lisp/vc/log-view.el (log-view-mode-menu): Disable menu entries
	(bug#14531).

2022-05-06  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Don't force Gnus cache usage in nnvirtual

	* lisp/gnus/nnvirtual.el (nnvirtual-retrieve-headers): We're not sure
	why this was happening, but it shouldn't be necessary. Simply calling
	`gnus-retrieve-headers' directly will use the cache if the user has
	configured it.

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix forward-sexp for Unicode names in Emacs Lisp mode

	* lisp/progmodes/elisp-mode.el (elisp-mode-syntax-propertize):
	Make forward-sexp work for Unicode character names (bug#23354).

2022-05-06  Noam Postavsky  <npostavs@gmail.com>

	Handle elisp #-syntax better in Emacs Lisp mode

	* elisp-mode.el (elisp-mode-syntax-propertize): New function.
	(emacs-lisp-mode): Set it as syntax-propertize-function (bug#15998).

2022-05-06  Michael Albinus  <michael.albinus@gmx.de>

	Fix bug#55274

	* lisp/dired-aux.el (dired-do-compress-to): Use `file-local-name'
	for shell out-file.  (Bug#55274)

2022-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/smie.el (smie-auto-fill): Fix bug#19342

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Respect help-window-keep-selected in shortdoc buttons

	* lisp/help-fns.el (help-fns--mention-shortdoc-groups): Respect
	help-window-keep-selected.

	* lisp/emacs-lisp/shortdoc.el (shortdoc-display-group): Allow
	reusing the window.

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Move buffer-local-set-state to subr because it's used at runtime

	* lisp/subr.el (buffer-local-set-state)
	(buffer-local-set-state--get, buffer-local-restore-state): Moved
	from easy-mmode.el because they have to be available run-time.

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make compilation-parse-errors more resilient

	* lisp/progmodes/compile.el (compilation-parse-errors): Be more
	resilient in the presence of regexp alist not being completely set
	up (bug#55282).

2022-05-06  Po Lu  <luangruo@yahoo.com>

	Improve font specs generated by the Haiku font dialog

	* src/haikufont.c (Fx_select_font): Use `nil' instead of
	`unspecified' to be consistent with other font dialogs.

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix inhibiting reading the user init file with "emacs -x"

	* lisp/startup.el (command-line): Really inhibit loading the user
	init file with "emacs -x".

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove the P/N/M-p/M-n bindings from the general log-view map

	* lisp/vc/log-view.el (log-view-mode-map): Remove the P/N/M-p/M-n
	bindings (that are only usable in some VCs).
	* lisp/vc/vc-sccs.el (vc-sccs-log-view-mode):
	* lisp/vc/vc-rcs.el (vc-rcs-log-view-mode):
	* lisp/vc/vc-cvs.el (vc-cvs-log-view-mode): New modes that bind
	the P/N/M-p/M-n commands (bug#14531).

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't override search-default-mode set by user in info/help

	* lisp/info.el (Info-mode):
	* lisp/help-mode.el (help-mode): Don't override isearch mode set
	by the user.

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Char-fold quotation characters in *info* and *Help*

	* lisp/info.el (Info-mode):
	* lisp/help-mode.el (help-mode): Use it.
	* lisp/isearch.el (isearch-fold-quotes-mode): New minor mode
	(bug#24510).

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Autoload the buffer-local-set* things

	* lisp/emacs-lisp/easy-mmode.el (buffer-local-set-state--get)
	(buffer-local-restore-state): Autoload.  Perhaps it would be
	better to move these functions to subr.el or something...

2022-05-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new helper macros for minor modes to restore variables

	* doc/lispref/modes.texi (Defining Minor Modes): Document it.

	* lisp/emacs-lisp/easy-mmode.el (buffer-local-set-state): New macro.
	(buffer-local-set-state--get): Helper function.
	(buffer-local-restore-state): New function.

	* lisp/textmodes/word-wrap-mode.el (word-wrap-whitespace-mode):
	Use it to simplify code.

2022-05-06  Michael Albinus  <michael.albinus@gmx.de>

	Fix thinko in tramp-skeleton-write-region

	* lisp/net/tramp.el (tramp-skeleton-write-region): Fix typos.
	Flush cache in time.  (Bug#55247)
	(tramp-handle-lock-file): Suppress messages in `write-region'.

2022-05-06  Po Lu  <luangruo@yahoo.com>

	Fix calculation of display resolution on Haiku

	* src/haiku_support.cc (BScreen_px_dim): Rename to
	`be_get_screen_dimensions'.
	(BScreen_res): Rename to `be_get_display_resolution' and fix
	resolution computation.
	* src/haiku_support.h: Update prototypes.

	* src/haikufns.c (compute_tip_xy, Fx_display_pixel_width)
	(Fx_display_pixel_height, Fx_display_mm_height)
	(Fx_display_mm_width): Update accordingly.

	* src/haikuterm.c (haiku_term_init): Likewise.

2022-05-06  Eli Zaretskii  <eliz@gnu.org>

	Provide reference for OTF tags in the ELisp manual

	* doc/lispref/display.texi (Low-Level Font): Provide the canonical
	reference URL for OTF tags.

2022-05-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	69c56cbe6e ; * src/w32notify.c: Fix a typo in a comment.
	3b9e60ba2f ; * src/window.c (Fset_window_start): Mention the effect o...

2022-05-06  Po Lu  <luangruo@yahoo.com>

	Fix more problems with display of composite glyph strings on Haiku

	* src/haikuterm.c
	(haiku_draw_composite_glyph_string_foreground): Fix pen size of
	placeholder rectangle.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Fix mouse face persisting inside Lucid menus on XI2

	* src/xmenu.c (create_and_show_popup_menu): Call `x_mouse_leave'
	on Lucid as well when the input extension is being used.

	* src/xterm.c (x_mouse_leave): Enable on Lucid XI2 builds.
	* src/xterm.h: Update prototypes.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	* lwlib/lwlib.c (lw_separator_p): Fix empty strings being separators.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Fix menu dismissal problems on Xt builds with XI2

	* src/xmenu.c (prepare_for_entry_into_toolkit_menu)
	(leave_toolkit_menu): New functions.
	(create_and_show_popup_menu): Replace some of the grab logic
	with resetting the XI event mask instead.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Fix more issues with DND state on multiple displays

	* src/xterm.c (handle_one_xevent): Don't update DND state on the
	wrong display.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Improve safety of DND when Emacs is connected to multiple displays

	* src/xterm.c (x_dnd_begin_drag_and_drop): Don't check movement
	frame unless we know it comes from the right display.

2022-05-05  Paul Eggert  <eggert@cs.ucla.edu>

	Gnulib update via admin/merge-gnulib

2022-05-05  James N. V. Cash  <james.nvc@gmail.com>

	* lisp/emacs-lisp/crm.el: Set completion-list-insert-choice-function.

	* lisp/emacs-lisp/crm.el (completing-read-multiple): Set buffer-local
	completion-list-insert-choice-function that handles string values of args.
	https://lists.gnu.org/archive/html/emacs-devel/2022-05/msg00017.html

2022-05-05  Juri Linkov  <juri@linkov.net>

	* lisp/desktop.el: Enable tab-bar-mode after restoring frames with a tab bar.

	(desktop-restore-frameset): Enable tab-bar-mode when a restored frame
	contains the frame parameter tab-bar-lines (bug#55070).

2022-05-05  Paul Eggert  <eggert@cs.ucla.edu>

	timestamp doc minor improvements

	* doc/lispref/os.texi (Time of Day, Time Conversion)
	(Time Calculations): Fix some confusion about decoded times,
	timestamps, and time values.  Exclude floating-point infinities
	and NaNs from timestamps, as the code doesn’t always follow
	IEEE-754 rules for them and whatever the code does, doesn’t matter
	for timestamps anyway.

2022-05-05  Glenn Morris  <rgm@gnu.org>

	* doc/emacs/misc.texi (Interactive Shell): Fix paren typo.

2022-05-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix a mistaken test case in test-undo-region

	* test/lisp/simple-tests.el (test-undo-region): Fix failing cases
	(bug#21523) -- the crossing-region case shouldn't be included,
	either.

2022-05-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Advertise OSC directory tracking more

	* doc/emacs/misc.texi (Interactive Shell): Document OSC directory
	tracking more.
	* lisp/shell.el (shell-dirtrack-mode): Link to the OSC directory
	tracking function.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Set GC line width on more GCs

	* src/xterm.c (x_set_cursor_gc, x_set_mouse_face_gc)
	(x_draw_bar_cursor): Make created scratch GCs have a line-width
	of 1.

2022-05-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Sort completions in Info references/menu correctly

	* lisp/info.el (Info-follow-reference): Sort completions in the
	order they appear in the buffer (bug#54175).
	(Info-menu-update): Ditto.

2022-05-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Be more resilient towards errors during error handling

	* src/print.c (print_error_message): Avoid infinite recursion if
	`substitute-command-keys' bugs out (bug#55269).

2022-05-05  Philip Kaludercic  <philipk@posteo.net>

	Avoid resizing mini buffer when displaying page numbers

	* doc-view.el (doc-view-goto-page): Do not insert a newline at the end
	of the "current info" if not necessary.

2022-05-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Describe kmacro registers better

	* lisp/kmacro.el (register-val-describe): Allow describing macros
	that contain mouse events (bug#55266).

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Speed up opening fonts on Haiku

	* src/font.h (font_property_index): Note that some font drivers
	use the extra data in a font entity to store driver-specific
	information.

	* src/haiku_font_support.cc (BFont_find): Set font indices.
	(be_open_font_at_index): New function.
	(BFont_open_pattern): Clean up coding style.
	* src/haiku_support.h (enum haiku_font_specification)
	(struct haiku_font_pattern): New fields and specifications for
	indices.
	* src/haikufont.c (haikufont_pattern_to_entity, haikufont_open):
	Use indices to open fonts if available in the extra data.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Fix font weight reporting on macOS

	* src/macfont.m (macfont_store_descriptor_attributes): Fix
	numeric values for the addition of `medium'.

	* src/nsterm.m (ns_font_desc_to_font_spec): Adjust accordingly.
	(ns_create_font_panel_buttons): Try to fix button width.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Improve appearance of macOS font panel buttons

	* src/nsterm.m (ns_create_font_panel_buttons):
	([EmacsView noteUserCancelledSelection]): New functions.
	([EmacsView showFontPanel]): Use those buttons instead.

2022-05-05  Michael Albinus  <michael.albinus@gmx.de>

	Add Tramp test

	* test/lisp/net/tramp-tests.el (tar-mode): Require.
	(tramp-test10-write-region-other-file-name-handler): New test.
	(tramp-test31-interrupt-process, tramp-test31-signal-process):
	Tag them :unstable unconditionally.

	* test/lisp/net/tramp-resources/foo.tar.gz: New resource file.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Fix min size reporting of style pane in Haiku font dialogs

	* src/haiku_support.cc (class DualLayoutView):
	(MinSize): Implement correctly with both views.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Use bswap_32 and bswap_16 in Motif DND code

	* src/xterm.c (SWAPCARD32, SAPCARD16): Use glibc/gnulib
	byte-swapping functions if checking is disabled.

2022-05-05  Po Lu  <luangruo@yahoo.com>

	Take size into account when previewing fonts on Haiku

	* src/haiku_support.cc (MessageReceived): Decode size sent and
	handle `UPDATE_PREVIEW_DIALOG' message.
	(UpdatePreview): Add current size.
	(EmacsFontSelectionDialog): Assign correct modification messages
	to the size entry.

2022-05-04  Po Lu  <luangruo@yahoo.com>

	Allow displaying font preview on Haiku

	* src/haiku_support.cc (class EmacsFontPreviewDialog)
	(class DualLayoutView): New classes.
	(class EmacsFontSelectionDialog): Add field for preview,
	checkbox and layout view.
	(MessageReceived): Handle new font preview messages.
	(EmacsFontSelectionDialog): New constructor.
	(FrameResized): Resize the layout view instead.

2022-05-04  Po Lu  <luangruo@yahoo.com>

	Fix device reporting from scroll bar events on X

	* src/xterm.c (x_scroll_bar_handle_click): New argument
	`device'.
	(handle_one_xevent): Set it appropriately as long as required.

2022-05-04  dickmao  <dick.r.chiang@gmail.com>

	Transcription error

	* lisp/gnus/gnus-topic.el (gnus-topic-display-missing-topic):
	Indent.
	(gnus-topic-update-topic-line): Insert missing fourth argument.

2022-05-04  Sean Whitton  <spwhitton@spwhitton.name>

	Revert "server-execute: Initialize the *scratch* buffer"

	This reverts commit f2d2fe6fc8ef0b6087c4a8a69d05a4e521b23047.

	To be replaced with factoring out *scratch* buffer initialization.

2022-05-04  Glenn Morris  <rgm@gnu.org>

	Stop esh-var-tests leaving temp files behind

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/quoted-interp-temp-cmd): Don't leave temporary files.

2022-05-04  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Remove bogus mode check from gnus topic update functions

	* lisp/gnus/gnus-topic.el (gnus-topic-update-topics-containing-group):
	(gnus-topic-update-topic): These functions originally checked to see
	if we were in group mode, but later that check was changed to
	'gnus-topic-mode, which never passes because 'gnus-topic-mode isn't a
	major mode. Revert to checking for 'gnus-group-mode, and use
	`derived-mode-p' while we're at it.

2022-05-04  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Use pixel-based alignment (bug#55207)

	* lisp/tab-bar.el (tab-bar-format-align-right): Use string-pixel-width
	on the string with tab-bar face to get the width in pixels to align.
	(tab-bar-format-global): Remove string-trim-right to keep padding-right.

2022-05-04  Basil L. Contovounesios  <contovob@tcd.ie>

	Remove unused lexvar in subr-x-tests.el

	* test/lisp/emacs-lisp/subr-x-tests.el
	(test-with-buffer-unmodified-if-unchanged): Pacify unused lexvar
	byte-compiler warning.  Simplify slightly and reindent.

2022-05-04  Glenn Morris  <rgm@gnu.org>

	* src/xterm.c (handle_one_xevent): Fix int/Lisp_Object mix-up.

2022-05-04  Robert Pluim  <rpluim@gmail.com>

	* etc/NEWS: Improve some NEWS entries

2022-05-04  Robert Pluim  <rpluim@gmail.com>

	* doc/emacs/killing.texi: Fix typos

	* doc/emacs/killing.texi (Clipboard): Fix wording in description of
	'save-interprogram-paste-before-kill'.  Ensure the reference to
	"Yanking Media" is not split over two lines.

2022-05-04  Eli Zaretskii  <eliz@gnu.org>

	Fix restoring desktop from TTY-saved sessions

	* lisp/frameset.el (frameset-restore): Don't override/fix position
	of the restored frames for which we have geometry information
	saved by a past GUI session.  (Bug#55070)

2022-05-04  Po Lu  <luangruo@yahoo.com>

	Turn on XInput 2 support by default

	The support doesn't interfere with compatibility, since Emacs
	built with XInput 2 support transparently falls back to Core
	Input when a suitable version of the input extension is not
	available.  It also matured much sooner than expected, so
	enabling this by default will lead to new features being
	available to more users.

	* INSTALL:
	* configure.ac:
	* etc/NEWS: Enable XInput 2 support by default.

2022-05-04  Eli Zaretskii  <eliz@gnu.org>

	Clarify the doc string of 'with-buffer-unmodified-if-unchanged'

	* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
	Describe better what is meant by "buffer changes".  (Bug#4587)

2022-05-04  Po Lu  <luangruo@yahoo.com>

	Remove unused variable in Haiku selection code

	* src/haiku_select.cc (selection_state_flag):
	* src/haikuselect.h: Remove variable.

2022-05-04  Eli Zaretskii  <eliz@gnu.org>

	Fix 'bidi-class' property of unassigned codepoints

	* admin/unidata/unidata-gen.el (unidata-file-alist): Update the
	default values of 'bidi-class' according to the latest Unicode
	Standard.

	* admin/notes/unicode: Mention possible changes in
	DerivedBidiClass.txt that need to be reflected in unidata-gen.el.

	* lisp/international/characters.el (#xfb50, #xfdf0): Fix the
	Arabic block characters.  (Bug#55256)

2022-05-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Flush the tool bar cache on all terminals when adding new entries

	* lisp/tool-bar.el (tool-bar--flush-cache): Flush the cache for
	the current tool bar on all terminals.

2022-05-04  Po Lu  <luangruo@yahoo.com>

	Correctly encode and decode filenames on NS

	* src/nsfns.m (Fns_read_file_name): Run dir through ENCODE_FILE
	and fname through DECODE_FILE.

2022-05-04  Po Lu  <luangruo@yahoo.com>

	Fix file name encoding on Haiku file dialogs

	* src/haikufns.c (Fhaiku_read_file_name): Use ENCODE_FILE and
	DECODE_FILE correctly.

2022-05-04  Po Lu  <luangruo@yahoo.com>

	Set initial size in the Haiku font dialog

	* src/haiku_support.cc (class EmacsFontSelectionDialog)
	(EmacsFontSelectionDialog): New argument `initial_size'.
	(be_select_font): Likewise.
	* src/haiku_support.h: Update prototypes.
	* src/haikufont.c (Fx_select_font): Set font dialog size to the
	pixel size of the current font.

2022-05-03  Po Lu  <luangruo@yahoo.com>

	Encode and decode filenames correctly on Haiku

	* src/haikufns.c (Fhaiku_read_file_name): Decode file names
	correctly.

2022-05-03  Po Lu  <luangruo@yahoo.com>

	Clean up Haiku file panel code

	* lisp/term/haiku-win.el (x-file-dialog): Fix nil values of
	`default-filename'.
	* src/haiku_io.c (haiku_len): Remove `FILE_PANEL_EVENT'.
	(record_c_unwind_protect_from_cxx, c_specpdl_idx_from_cxx)
	(c_unbind_to_nil_from_cxx): Delete functions.
	* src/haiku_support.cc (MessageReceived): Write pointer to
	buffer to file panel port instead.
	(struct popup_file_dialog_data): Delete strict.
	(unwind_popup_file_dialog): Delete functions.
	(be_popup_file_dialog): Accept a pointer to
	`process_pending_signals' and run nested event loop as usual.

	* src/haiku_support.h (enum haiku_event_type): Remove
	`FILE_PANEL_EVENT'.
	(struct haiku_file_panel_event): Delete struct.
	* src/haikufns.c (unwind_popup): Delete function.
	(Fhaiku_read_file_name): Update and quit on invalid filename.

	* src/haikuterm.c (struct unhandled_event): Delete struct.
	(haiku_read_socket): Remove "unhandled events".

2022-05-03  Po Lu  <luangruo@yahoo.com>

	* src/haikufns.c (haiku_create_frame): Improve default border width.

2022-05-03  Sean Whitton  <spwhitton@spwhitton.name>

	server-execute: Initialize the *scratch* buffer

	* lisp/server.el: Require subr-x when compiling.
	(server-execute): Initialize the *scratch* buffer in the same way that
	the scratch-buffer command does, for consistency.

2022-05-03  Po Lu  <luangruo@yahoo.com>

	Fix display of placeholder composite string on Haiku

	* src/haikuterm.c
	(haiku_draw_composite_glyph_string_foreground): Correct
	translation of XDrawRectangle.

2022-05-03  Po Lu  <luangruo@yahoo.com>

	Fix event mask and source indication of _NET_WM_STATE messages

	* src/xselect.c (x_send_client_event): Make static.
	* src/xterm.c (set_wm_state): Send event with correct mask and
	source indication set.
	* src/xterm.h: Update prototypes.

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make some recently added tests actually run

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make with-buffer-unmodified-if-unchanged more efficient

	* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
	Make more efficient.

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make with-buffer-unmodified-if-unchanged more resilient

	* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
	Make more resilient.

2022-05-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	with-buffer-unmodified-if-unchanged: Tweak the implementation

	* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
	Skip the hash if the buffer was not modified at all.
	Use `restore-buffer-modified-p`.
	Also mention that it's imperative that the current buffer is preserved.

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Add NEWS entry about incompatible sorting command behaviors

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make sorting not change buffer modification status always

	* lisp/sort.el (sort-subr): Don't mark buffer modified if the
	sorting didn't change anything (bug#4587).

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new macro with-buffer-unmodified-if-unchanged

	* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
	New macro.
	* lisp/textmodes/fill.el (fill-paragraph): Macro code copied from
	here.  Adjust and use the macro.

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix thinko in recent tool bar caching logic

	* lisp/tool-bar.el (tool-bar--cache-key): New function.
	(tool-bar--flush-cache, tool-bar-make-keymap): Use it.

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make tool bar caching more sensible

	* lisp/tool-bar.el (tool-bar-keymap-cache): Make into a non-weak
	EQ hash table, which should be faster and not lose the contents
	after a GC (bug#43397).
	(tool-bar--flush-cache, tool-bar-make-keymap): Use the terminal
	only as the key.
	(tool-bar-local-item, tool-bar-local-item-from-menu): Flush the
	cache after altering the tool bar.

2022-05-03  Eli Zaretskii  <eliz@gnu.org>

	Allow desktop to restore frames and windows on TTY frames

	* lisp/frameset.el (frameset-persistent-filter-alist): Add 'top',
	'left', 'bottom', and 'right' to frame parameters that are shelved
	and unshelved when switching from GUI to TTY frames and vice
	versa.
	(frameset--restore-frame): Accept two optional arguments DX and
	DY, and offset by them each frame restored from TTY desktop, to
	make such restored frames more prominently visible.  Force such
	frames to be visible on GUI display, since the visibility
	parameter is meaningless for TTY frames.
	(frameset-restore): Pass DX and DY offsets to
	'frameset--restore-frame', when restoring TTY frames on GUI
	display.
	* lisp/desktop.el (desktop-restore-frameset): Pass the
	:force-onscreen argument of 'frameset-restore' as nil when
	restoring frames on text-mode display.
	(desktop-restore-forces-onscreen): Document that this option has
	no real effect on restoring frames on text-mode display.
	(desktop-restoring-frameset-p): Allow restoring frames in non-GUI
	sessions, but disallow that when the selected frame is the
	daemon's initial frame.  (Bug#55070)

2022-05-03  Jim Porter  <jporterbugs@gmail.com>

	Improve the behavior of concatenating parts of Eshell arguments

	Previously, concatenating a list to a string would first convert the
	list to a string.  Now, the string is concatenated with the last
	element of the list.

	* lisp/eshell/esh-util.el (eshell-to-flat-string): Make obsolete.

	* lisp/eshell/esh-arg.el (eshell-concat, eshell-concat-1): New
	functions.
	(eshell-resolve-current-argument): Use 'eshell-concat'.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-concat-cmd):
	Add check for concatenation of multiline output of subcommands.
	(esh-var-test/quoted-interp-concat-cmd): New test.

	* test/lisp/eshell/em-extpipe-tests.el (em-extpipe-test-13): Use
	'eshell-concat'.

	* doc/misc/eshell.texi (Expansion): Document this behavior.

	* etc/NEWS: Announce the change (bug#55236).

2022-05-03  Jim Porter  <jporterbugs@gmail.com>

	Return a list of numbers if all lines of an Eshell subcommand are numeric

	* lisp/eshell/esh-util.el (eshell-convertible-to-number-p)
	(eshell-convert-to-number): New functions...
	(eshell-convert): ... use them.

	* test/lisp/eshell/esh-var-tests.el
	(esh-var-test/interp-convert-cmd-string-newline): Add checks for
	numeric output.

	* doc/misc/eshell.texi (Dollars Expansion): Document the new behavior.

	* etc/NEWS: Announce the change (bug#55236).

2022-05-03  Jim Porter  <jporterbugs@gmail.com>

	Eshell variable expansion should always return strings inside quotes

	This is closer in behavior to regular shells, and gives Eshell users
	greater flexibility in how variables are expanded.

	* lisp/eshell/esh-util.el (eshell-convert): Add TO-STRING argument.

	* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Add MODIFIER-P
	argument and adjust how 'eshell-convert' and 'eshell-apply-indices'
	are called.
	(eshell-get-variable, eshell-apply-indices): Add QUOTED argument.

	* test/lisp/eshell/esh-var-tests.el (eshell-test-value): New defvar.
	(esh-var-test/interp-convert-var-number)
	(esh-var-test/interp-convert-var-split-indices)
	(esh-var-test/interp-convert-quoted-var-number)
	(esh-var-test/interp-convert-quoted-var-split-indices)
	(esh-var-test/interp-convert-cmd-string-newline)
	(esh-var-test/interp-convert-cmd-multiline)
	(esh-var-test/interp-convert-cmd-number)
	(esh-var-test/interp-convert-cmd-split-indices)
	(esh-var-test/quoted-interp-convert-var-number)
	(esh-var-test/quoted-interp-convert-var-split-indices)
	(esh-var-test/quoted-interp-convert-quoted-var-number)
	(esh-var-test/quoted-interp-convert-quoted-var-split-indices)
	(esh-var-test/quoted-interp-convert-cmd-string-newline)
	(esh-var-test/quoted-interp-convert-cmd-multiline)
	(esh-var-test/quoted-interp-convert-cmd-number)
	(esh-var-test/quoted-interp-convert-cmd-split-indices): New tests.

	* doc/misc/eshell.texi (Arguments): Expand this section, and document
	the new behavior.
	(Dollars Expansion): Provide more detail about '$(lisp)' and
	'${command}' forms.

	* etc/NEWS (Eshell): Announce this change (bug#55236).

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make adding things to the tool bar show up on next redisplay

	* lisp/tool-bar.el (tool-bar--flush-cache): New function.
	(tool-bar-add-item): Flush the cache (bug#43397).

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new command 'package-update'

	* doc/emacs/package.texi (Package Installation): Mention it.
	* lisp/emacs-lisp/package.el (package-update): New command
	(bug#18790).

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix key-parse problem with C-x ( ... sequences

	* lisp/keymap.el (key-parse): Move the read-kbd-macro compat code
	from here...
	* lisp/subr.el (kbd): ... to here.  (And fix the logic, too.)
	This allows `key-parse' to have a less puzzling result while
	maintaining backwards compatibility (bug#38775).

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make TAB work in makefile mode when transient mark mode is on

	* lisp/progmodes/make-mode.el (makefile-mode): Insert a tab
	instead of removing it (bug#37087).

2022-05-03  Michael Albinus  <michael.albinus@gmx.de>

	Handle file name handler in write-region's VISIT arg

	* lisp/net/tramp.el (tramp-skeleton-delete-directory): Move up.
	(tramp-skeleton-write-region): New defmacro.  Handle also file
	name handler in VISIT.  (Bug#55166)
	(tramp-handle-write-region):
	* lisp/net/tramp-adb.el (tramp-adb-handle-write-region):
	* lisp/net/tramp-sh.el (tramp-sh-handle-write-region):
	* lisp/net/tramp-smb.el (tramp-smb-handle-write-region):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-write-region): Use it.

2022-05-03  Filipp Gunbin  <fgunbin@fastmail.fm>

	Rewrite sql-interactive-remove-continuation-prompt

	* lisp/progmodes/sql.el (sql-starts-with-prompt-re): Remove.
	(sql-ends-with-prompt-re): Remove
	(sql-interactive-remove-continuation-prompt): Delete prompts from
	anywhere in the process output, not just at the beginning of current
	string.  Streamline logic, describe it in docstring.
	* test/lisp/progmodes/sql-tests.el: Add tests

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make more buttons in *Help* respect `help-window-keep-selected'

	* lisp/help-mode.el (help-function-cmacro, help-variable-def)
	(help-face-def): Also respect `help-window-keep-selected' like the
	other commands.

2022-05-03  rbrtb  <104695105+rbrtb@users.noreply.github.com>  (tiny change)

	Ensure exit-function of eglot-c-at-point runs on exact match

	When the completion is exact match, exit-function should still run.

	Say one is using auto-imports feature of pyright.  One types foo, and
	triggers the completion.  There are two candidates: foo and foo_bar.  If
	one chooses foo, the status would be 'exact' instead of 'finished', thus
	exit-function is not executed, foo is not auto-imported.

	* eglot.el (eglot-completion-at-point): Consider 'exact status.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/941

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Further mm-base64-line-p bug fixes

	* lisp/gnus/mm-bodies.el (mm-base64-line-p): Fix parsing error
	introduced by d90f54d.

2022-05-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix mm-base64-line-p logic

	* lisp/gnus/mm-bodies.el (mm-base64-line-p): Don't claim that an
	empty line is base64.

2022-05-03  Po Lu  <luangruo@yahoo.com>

	* src/haiku_support.cc (DrawContent): Use right UI color.

2022-05-03  Po Lu  <luangruo@yahoo.com>

	Make menu bar help text work on macOS as well

	* lisp/tooltip.el (tooltip-show-help): Resort to displaying
	messages in the echo area on NS.

	* src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Call
	`show_help_echo' instead of storing an event into the keyboard
	buffer.

2022-05-03  Po Lu  <luangruo@yahoo.com>

	Fix default font in macOS font dialogs

	* src/nsterm.m ([EmacsView noteUserSelectedFont]): Use current
	font if none was selected.

2022-05-03  Po Lu  <luangruo@yahoo.com>

	Fix some font parsing problems on NS

	* src/nsterm.m (ns_font_desc_to_font_spec): Fix processing of
	condensed width.

2022-05-03  Po Lu  <luangruo@yahoo.com>

	Handle GraphicsExpose events on scroll bars

	* src/xterm.c (x_scroll_bar_expose): Handle GraphicsExpose
	events.
	(handle_one_xevent): Give graphics exposures to scroll bars.

2022-05-02  Po Lu  <luangruo@yahoo.com>

	Make sure rectangles are drawn correctly on X

	* src/xfaces.c (prepare_face_for_display): Always use line-width
	of 1.
	* src/xfns.c (x_make_gc): Likewise.
	* src/xterm.c (x_scroll_bar_expose): Comment out obsolete code.

2022-05-02  Po Lu  <luangruo@yahoo.com>

	Fix glyphless glyph display on Haiku

	* src/haikuterm.c
	(haiku_draw_glyphless_glyph_string_foreground): Fix rectangle
	width.

2022-05-02  Po Lu  <luangruo@yahoo.com>

	Fix font matching of "Fira Code Retina" and "Fira Code Regular" on Haiku

	* src/haiku_font_support.cc (font_family_style_matches_p): Don't
	allow matches on fonts with an adstyle if none was specified in
	the input pattern.

2022-05-02  Glenn Morris  <rgm@gnu.org>

	Don't leave temp files behind from undigest-tests

	Sadly the "temp" in with-temp-file refers to a buffer, not a file.
	* test/lisp/mail/undigest-tests.el (rmail-undigest-test-rfc934-digest)
	(rmail-undigest-test-rfc1153-digest-strict)
	(rmail-undigest-test-rfc1153-less-strict-digest)
	(rmail-undigest-test-rfc1153-sloppy-digest)
	(rmail-undigest-test-rfc1521-mime-digest)
	(rmail-undigest-test-multipart-mixed-digest):
	Delete temporary files at end.

2022-05-02  Po Lu  <luangruo@yahoo.com>

	Clean up X11 double buffering code

	This fixes several latent bugs where code went down the path
	with double buffering enabled when it wasn't, and vice versa.

	* src/xfns.c (x_set_inhibit_double_buffering): Improve
	commentary and only define when HAVE_XDBE.
	(x_mark_frame_dirty): Only set buffer flip flag when HAVE_XDBE.
	(initial_set_up_x_back_buffer): Clean up coding style and remove
	unnecessary block_input pair.
	(Fx_double_buffered_p): Always return nil if !HAVE_XDBE.
	(x_frame_parm_handlers): Don't set double buffering handler if
	!HAVE_XDBE.

	* src/xftfont.c (xftfont_drop_xrender_surfaces, xftfont_driver):
	Only define when XDBE is available.

	* src/xterm.c (x_drop_xrender_surfaces): Likewise.
	(x_clear_window): Don't test double buffering flags when
	!HAVE_XDBE.
	(show_back_buffer): Only define when HAVE_XDBE.
	(x_flip_and_flush): Don't try to flip when !HAVE_XDBE.
	(XTframe_up_to_date): Likewise.
	(XTbuffer_flipping_unblocked_hook): Only define when Xdbe is
	available.
	(x_clear_area): Don't test double buffering flags when Xdbe is
	not available.
	(flush_dirty_back_buffer_on): Don't define if there's no DBE.
	(handle_one_xevent, x_create_terminal): Likewise.

	* src/xterm.h (FRAME_X_DRAWABLE): Fix coding style.

2022-05-02  Eli Zaretskii  <eliz@gnu.org>

	Fix punctuation in the Eshell manual

	* doc/misc/eshell.texi (Argument Predication and Modification):
	Fix whitespace.

2022-05-02  Arash Esbati  <arash@gnu.org>

	Load multiple bibliographies with multibib package

	* lisp/textmodes/reftex-parse.el (reftex-using-biblatex-p):
	Recognize 'multibib' which allows multiple bibliography loading
	macro calls.
	(reftex-locate-bibliography-files): Prevent possible duplications
	in bibliography database files.

2022-05-02  Po Lu  <luangruo@yahoo.com>

	Wait for events from all displays in Xm dialogs even on XI2

	* src/xfns.c (Fx_file_dialog): Always process events from all
	displays.

2022-05-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the eval-in-debug error message prettier in non-recursive errors

	* lisp/emacs-lisp/debug.el (debugger-eval-expression): Make the
	error message (when recursive debugging is off) prettier.

2022-05-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Make non-recursive error messages in edebug prettier

	* lisp/emacs-lisp/edebug.el (edebug-eval-expression): Make the
	error message (when recursive debugging is off) prettier.

2022-05-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix eldoc interaction with `when' and `unless'

	* lisp/subr.el (when, unless): Remove the (fn...) bits from the
	doc string, because the advertised calling convention is correct
	the way it is (bug#27229).  This also makes eldoc highlight the
	arguments correctly.

2022-05-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a command to recreate the *scratch* buffer

	* doc/emacs/building.texi (Lisp Interaction): Mention it.
	* lisp/simple.el (scratch-buffer): New command.

2022-05-02  Stefan Kangas  <stefankangas@gmail.com>

	Fix handling double-click-time nil or t

	* lisp/mouse.el (mouse-double-click-time): New function to always
	return a number for `double-click-time'.
	* lisp/emulation/viper-mous.el (viper-multiclick-timeout):
	* lisp/foldout.el (foldout-mouse-swallow-events):
	* lisp/help.el (help--read-key-sequence):
	* lisp/org/org-mouse.el (org-mouse-show-context-menu): Use
	'mouse-double-click-time' instead of 'double-click-time'.
	* src/keyboard.c (syms_of_keyboard): Mention
	'mouse-double-click-time' in doc string of 'double-click-time'.
	* test/lisp/mouse-tests.el (mouse-test-mouse-double-click-time):
	New test.

2022-05-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Re-fix Gcc header tokenization in Gnus

	* lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Split the Gcc header
	on commas, but allow group names to contain spaces (bug#55217).

2022-05-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow reusing the *Help* window with `i'/`s/ commands

	* doc/emacs/help.texi (Help): Document it.

	* lisp/help-mode.el (help-function-def--button-function): Use it.
	* lisp/help-mode.el (help-goto-info): Use it.

	* lisp/help.el (help-window-select): Mention it.
	(help-window-keep-selected): New user option (bug#9054).

	* lisp/info-look.el (info-lookup-symbol):
	(info-lookup): Allow keeping the same window.

2022-05-02  Po Lu  <luangruo@yahoo.com>

	Fix inconsistencies in Haiku font selection dialog

	* src/haiku_font_support.cc (font_family_style_matches_p): Fix
	coding style.
	* src/haikufont.c (haikufont_pattern_from_object): Set slant and
	width using correct object.

2022-05-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow show-paren to show matching parentheses inside comments

	* lisp/paren.el (show-paren--default): Improve blinking when
	inside a comment (bug#5410).

2022-05-02  Po Lu  <luangruo@yahoo.com>

	Fix handling of some weights in the Haiku font driver

	* src/haiku_font_support.cc (font_style_to_flags):
	* src/haiku_support.h (enum haiku_font_weight):
	* src/haikufont.c (haikufont_weight_to_lisp)
	(haikufont_lisp_to_weight): Make `ultralight' and `extralight'
	mean the same thing.

2022-05-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Use xref-goto-xref as the xref mouse binding

	* lisp/progmodes/xref.el (xref--button-map): Keep the
	xref-goto-xref binding instead of select-and-show to be more
	similar to grep buffers.

2022-05-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix the OMIT-NULLS + "" case in string-lines

	* lisp/subr.el (string-lines): Respect OMIT-NULLS when given an
	empty string.

2022-05-02  Po Lu  <luangruo@yahoo.com>

	Improve font dialog on macOS

	* src/nsterm.m ([EmacsView changeFont:]): Don't exit loop here
	on macOS.
	([EmacsView noteUserSelectedFont]): New function.
	([EmacsView showFontPanel]): Add explicit "OK" button on macOS.

2022-05-02  Po Lu  <luangruo@yahoo.com>

	Default to currently selected font in Haiku font dialogs

	* src/haiku_font_support.cc (be_find_font_indices): New
	function.
	* src/haiku_support.cc (class EmacsFontSelectionDialog)
	(UpdateStylesForIndex, EmacsFontSelectionDialog): Allow
	specifying an initial font family and style.
	(be_select_font): New parameters `initial_family' and
	`initial_style'.
	* src/haiku_support.h: Update prototypes.

	* src/haikufont.c (haikufont_lisp_to_weight)
	(haikufont_lisp_to_slant, haikufont_lisp_to_width): Handle
	`regular'.
	(haikufont_pattern_from_object): New function.
	(haikufont_spec_or_entity_to_pattern): Fix coding style.
	(Fx_select_font): Compute indices based on currently selected
	font.
	(syms_of_haikufont): New defsyms.

2022-05-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/gnus/gnus-util.el (gnus-byte-compile): Use `lexical-binding`

2022-05-01  Po Lu  <luangruo@yahoo.com>

	Fix race conditions with async input in some Haiku dialogs

	* src/haikufns.c (Fhaiku_save_session_reply):
	* src/haikufont.c (Fx_select_font): Block sigio around system
	calls.

2022-05-01  Po Lu  <luangruo@yahoo.com>

	Fix the macOS build

	* src/nsterm.m (ns_font_desc_to_font_spec, syms_of_nsterm):
	Define missing symbols that are only on GNUstep.

2022-05-01  Po Lu  <luangruo@yahoo.com>

	Make the NS font dialog return more correct values

	* src/nsfns.m (Fx_select_font): Update doc string.
	* src/nsterm.m (ns_font_desc_to_font_spec): New
	function.
	([EmacsView showFontPanel]): Return selected font as a
	font spec instead.

2022-05-01  Po Lu  <luangruo@yahoo.com>

	Fix devices staying disabled in some cases

	* src/xterm.c (handle_one_xevent): Process queued disables
	before handling an XIDeviceEnabled situation.

2022-05-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix string-lines return for ""

	* lisp/subr.el (string-lines): Return the correct result on ""
	(bug#55213).

2022-05-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Change string-lines semantics slightly

	* lisp/subr.el (string-lines): Change the semantics slightly --
	don't return an empty string for a trailing newline.

2022-05-01  Jim Porter  <jporterbugs@gmail.com>

	Handle escaped characters in Eshell special references (e.g. buffers)

	* lisp/eshell/esh-arg.el (eshell-parse-special-reference): Unescape
	escaped characters.

	* test/lisp/eshell/eshell-tests-helpers.el (with-temp-eshell): Restore
	current buffer after evaluating BODY.

	* test/lisp/eshell/eshell-tests.el (eshell-test/redirect-buffer)
	(eshell-test/redirect-buffer-escaped): New tests (bug#55204).

2022-05-01  Jim Porter  <jporterbugs@gmail.com>

	Handle escaped characters in Eshell argument predicates/modifiers

	* lisp/eshell/em-pred.el (eshell-get-delimited-modifier-argument):
	Unescape escaped characters.

	* test/lisp/eshell/em-pred-tests.el (em-pred-test/predicate-escaping):
	New test (bug#55204).

2022-05-01  Jim Porter  <jporterbugs@gmail.com>

	Use a common set of string delimiters for all Eshell predicates/modifiers

	* lisp/eshell/em-pred.el (eshell-pred-delimiter-pairs): New variable.
	(eshell-get-comparison-modifier-argument)
	(eshell-get-numeric-modifier-argument)
	(eshell-get-delimited-modifier-argument): New functions...
	(eshell-pred-user-or-group, eshell-pred-file-time)
	(eshell-pred-file-links, eshell-pred-file-size)
	(eshell-pred-substitute, eshell-join-members, eshell-split-members):
	... and use them here.
	(eshell-include-members): Pass 'mod-char' and use
	'eshell-get-delimited-modifier-argument'.
	(eshell-pred-file-type, eshell-pred-file-mode): Use 'when-let'.
	(eshell-modifier-alist): Pass modifier char to
	'eshell-include-members'.

	* test/lisp/eshell/em-pred-tests.el
	(em-pred-test/predicate-delimiters): New test.
	(em-pred-test/predicate-uid, em-pred-test/predicate-gid,
	em-pred-test/modifier-include, em-pred-test/modifier-exclude): Remove
	cases covered by 'em-pred-test/predicate-delimiters'.
	(em-pred-test/modifier-substitute): Add test cases for new delimiter
	styles.

	* doc/misc/eshell.texi (Argument Predication and Modification):
	Explain how string parameters are delimited.
	(Argument Modifiers): Document some special delimiter behavior with
	the 's/PATTERN/REPLACE/' modifier (bug#55204).

	* etc/NEWS: Announce this change, and move the
	'eshell-eval-using-options' entry to the Eshell section.

2022-05-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/minibuffer.el (completion--replace): Fix bug#55205

2022-05-01  Po Lu  <luangruo@yahoo.com>

	Replace NS code that implemented font panels in a different way

	* doc/emacs/macos.texi (Mac / GNUstep Events): Document removal
	of `ns-change-font' event.  The font panels are now implemented
	normally, via `x-select-font'.

	* lisp/term/common-win.el (x-setup-function-keys): Likewise.

	* lisp/term/ns-win.el (global-map, ns-popup-font-panel): Remove.
	(x-select-font, mouse-set-font, ns-input-font):
	(ns-input-fontsize): Remove.
	(ns-respond-to-change-font): Delete function.

	* src/nsfns.m (Fns_popup_font_panel): Delete function.
	(Fx_select_font): New function.
	(syms_of_nsfns): Update subrs.
	* src/nsterm.h (@interface EmacsView):
	* src/nsterm.m (ns_select_1): New function.
	(ns_select): Wrap around that instead.
	([EmacsView changeFont:]): Exit nested event loop
	([EmacsView showFontPanel:]): New function.

2022-05-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't enter the debugger from *Backtrace* or edebug on eval errors

	* doc/lispref/debugging.texi (Error Debugging): Document it.

	* doc/lispref/edebug.texi (Edebug Eval): Mention it.
	* lisp/emacs-lisp/debug.el (debug-allow-recursive-debug): New user
	option (bug#36145).
	(debugger-eval-expression): Use it.

	* lisp/emacs-lisp/edebug.el (edebug-eval-expression): Ditto.

	This patch is based on a patch by Noam Postavsky.

2022-05-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Correct Using Debugger lispref node

	* doc/lispref/debugging.texi (Using Debugger): Make documentation
	reflect reality (bug#36145).

2022-05-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make scroll-other-window respect target window remappings

	* lisp/window.el (scroll-other-window, scroll-other-window-down):
	Moved from window.c and change implementation so that they respect
	command remappings in the target window (bug#20236).

2022-05-01  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'malloc-trim'

	* src/alloc.c (Fmalloc_trim): Fix the doc string.

	* etc/NEWS: Document which systems support 'malloc-trim'.

2022-05-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function `malloc-trim'

	* configure.ac (PGTK_LIBS): Check for malloc_trim.

	* src/alloc.c (Fmalloc_trim): Add new function (bug#45200).

2022-05-01  Po Lu  <luangruo@yahoo.com>

	Fix specifying zero as a size for fonts on Haiku

	* src/haiku_support.cc (MessageReceived): Set `size_specified'
	correctly.

2022-05-01  Po Lu  <luangruo@yahoo.com>

	Improve display of Haiku font dialog

	* src/haiku_support.cc (EmacsFontSelectionDialog)
	(class EmacsFontSelectionDialog, FrameResized): Set minimum size
	based on individual view dimensions and add label to size
	control.
	(BWindow_set_min_size): Delete function.
	* src/haiku_support.h: Update prototypes.
	* src/haikuterm.c (haiku_update_size_hints): Stop setting min
	size, since that doesn't work correctly on Haiku.

2022-05-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix the mm-decode-content-transfer-encoding overflow better

	* lisp/gnus/mm-bodies.el (mm-decode-content-transfer-encoding):
	Use it.
	(mm-base64-line-p): New function.

2022-05-01  Po Lu  <luangruo@yahoo.com>

	* lisp/menu-bar.el (menu-bar-search-menu): Remove extra separator.

2022-05-01  Eli Zaretskii  <eliz@gnu.org>

	Document 'help-window-select'

	* etc/NEWS:
	* doc/emacs/help.texi (Apropos, Help): Document
	'help-window-select'; improve indexing.  (Bug#46034)

2022-05-01  Po Lu  <luangruo@yahoo.com>

	Allow specifying font size in the Haiku font selection dialog

	* src/haiku_support.cc (struct font_selection_dialog_message):
	New fields `size' and `size_specified'.
	(class EmacsFontSelectionDialog): New `size_entry' control.
	(MessageReceived): Set size from that control if available.
	(EmacsFontSelectionDialog): Initialize that control.
	(FrameResized): Handle layout for that control.
	(be_select_font): New field `size'.
	* src/haiku_support.h: Update prototypes.
	* src/haikufont.c (Fx_select_font): Populate font spec with
	size.

2022-05-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-04-30 19:52:14 UTC.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Allow quitting inside font selection dialogs on Haiku

	* src/haiku_support.cc (WaitForChoice): Accept new function for
	checking quit flag.
	(be_select_font): Pass that function.
	* src/haiku_support.h: Update prototypes.
	* src/haikufont.c (haikufont_should_quit_popup): New function.
	(Fx_select_font): Give said function to `be_select_font'.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Allow invoking fonts in the Haiku font dialog

	* src/haiku_support.cc (MessageReceived): Handle invocations.
	(EmacsFontSelectionDialog): Set style panel invocation message.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Improvements to the Haiku font dialog

	* src/haiku_support.cc (class EmacsFontSelectionDialog)
	(EmacsFontSelectionDialog, FrameResized): Fix colors and respect
	monospace only.
	(be_select_font): New parameter `allow_monospace_only'.
	* src/haiku_support.h: Update prototype.
	* src/haikufont.c (Fx_select_font): Respect
	`exclude-proportional'.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Also fix some compiler warnings in xterm.c that didn't show up

	* src/xterm.c (x_dnd_begin_drag_and_drop): Don't define unused
	variable on GTK builds.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Fix the GTK build

	* src/xterm.c (x_dnd_begin_drag_and_drop): Let GTK handle events
	again.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_dnd_begin_drag_and_drop): Fix typo.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Fix processing events from multiple displays during DND

	* src/xterm.c (x_next_event_from_any_display): New function.
	Only used on no-toolkit builds.
	(x_dnd_begin_drag_and_drop): Compute correct dpyinfo for
	handle_one_xevent.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Clean up X Windows tooltip code

	* src/xfns.c (x_hide_tip): Remove "bloodcurdling hack".
	* src/xterm.c (handle_one_xevent): Add a better version here
	instead.  The code is unlikely to be hit as well, since tooltip
	frames are typically deleted, not just hidden.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Implement font selection dialog on Haiku

	* src/haiku_font_support.cc (font_style_to_flags): Handle style
	allocation failures.
	(be_font_style_to_flags): New function.

	* src/haiku_support.cc (struct font_selection_dialog_message):
	New struct.
	(class EmacsFontSelectionDialog): New class.
	(be_select_font): New function.

	* src/haiku_support.h: Update prototypes.
	* src/haikufont.c (Fx_select_font): New function.
	(syms_of_haikufont): Define new subr.

2022-04-30  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix failing image test on nox builds

	* test/lisp/image-tests.el (image-supported-file-p/built-in): Skip
	test in --without-x builds.

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `M-x apropos' respect help-window-select

	* lisp/apropos.el (apropos-print): Respect help-window-select.
	(apropos): Mention it (bug#46034).

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Make load-path-shadows-mode a special mode

	* lisp/emacs-lisp/shadow.el (load-path-shadows-mode): Make the
	mode inherit from special-mode so that the `q' command works.

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation-max-output-line-length type

	* lisp/progmodes/compile.el (compilation-max-output-line-length):
	Fix the type.

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid regexp overflow in mm-decode-content-transfer-encoding

	* lisp/gnus/mm-bodies.el (mm-decode-content-transfer-encoding):
	The base64 may be huge, so avoid backtracking (bug#55195).

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix Vx_show_tooltip_timeout in ns build, too

	* src/nsfns.m (Fx_show_tip): Respect Vx_show_tooltip_timeout here,
	too.

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation after recent x-show-tooltip-timeout changes

	* src/dispnew.c (syms_of_display): Move x-show-tooltip-timeout to
	a common file to avoid breaking other systems.

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove the "retro" Gnus/Message tool bars

	* doc/misc/gnus.texi (Gravatars): Remove documentation.
	* lisp/gnus/gmm-utils.el (gmm-tool-bar-style): Obsoleted.

	* lisp/gnus/gnus-group.el (gnus-group-tool-bar): Use the "Gnome"
	definition.
	(gnus-group-tool-bar-gnome, gnus-group-tool-bar-retro)
	(gnus-group-tool-bar-zap-list): Obsolete.

	* lisp/gnus/gnus-sum.el (gnus-summary-tool-bar): Use the "Gnome"
	definition.
	(gnus-summary-tool-bar-gnome, gnus-summary-tool-bar-retro)
	(gnus-summary-tool-bar-zap-list): Obsolete.

	* lisp/gnus/message.el (message-tool-bar): Use the "Gnome"
	definition.
	(message-tool-bar-gnome, message-tool-bar-retro)
	(message-tool-bar-zap-list): Obsolete.

2022-04-30  Andreas Schwab  <schwab@linux-m68k.org>

	* lisp/gnus/deuglify.el (gnus-article-outlook-rearrange-citation): Add autoload cookie.

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Use x-show-tooltip-timeout in all the implementations

	* src/haikufns.c (Fx_show_tip): Use the timeout variable.
	* src/pgtkfns.c (Fx_show_tip): Ditto.

	* src/w32fns.c (Fx_show_tip): Ditto.

	* src/xfns.c (Fx_show_tip): Doc fix.

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't hard code the default x-show-tip timeout

	* src/xfns.c (Fx_show_tip): Use it.
	(syms_of_xfns): Add a new x-show-tooltip-timeout variable
	(bug#23341).

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Move the when-let family of macros to subr.el

	* lisp/subr.el (internal--build-binding)
	(internal--build-bindings): Moved from subr-x.el and rewritten to
	not use the threading macro.
	(if-let*, when-let*, and-let*, if-let, when-let): Moved from
	subr-x.el.  This avoids breaking the build every time somebody
	uses these macros in functions that end up being called during
	bootstrap.

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid using if-let in subr.el

	* lisp/subr.el (string-lines): Avoid using if-let (from subr-x) in
	subr (bug#55194).

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the xref--button-map more regular

	* lisp/progmodes/xref.el (xref--button-map): Remove the mouse-1
	binding (bug#35353).

2022-04-30  Jin Choi  <jsc@alum.mit.edu>  (tiny change)

	Make Python evaluation work more reliably

	* lisp/progmodes/python.el (python-shell-buffer-substring): Make
	more regions valid Python code (bug#55174).

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Fix some cases of flicker on MS Windows

	* src/w32term.c (w32_read_socket): Fix typo in check before
	flipping buffers.

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Truncate output from grep

	* doc/emacs/building.texi (Compilation): Document it.
	* lisp/progmodes/compile.el (compilation-max-output-line-length):
	New user option (bug#44983).
	(compilation-filter): Use it.
	(compilation--insert-abbreviated-line): New function.

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Make grep-mode-font-lock-keywords more efficient

	* lisp/progmodes/grep.el (grep-mode-font-lock-keywords): Make the
	regexp less greedy so that long lines don't take forever to
	font-lock (bug#44983).

2022-04-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a KEEP-NEWLINES argument to string-lines

	* doc/lispref/strings.texi (Creating Strings): Document it.

	* lisp/subr.el (string-lines): Add a KEEP-NEWLINES argument.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Fix display updating inside the minibuffer on MS Windows

	* src/minibuf.c (read_minibuf): Call `w32_flip_buffers_if_dirty'
	after changing the cursor position and redisplaying instead of
	`flush_frame'.  (bug#55193)

	* src/w32term.c (w32_flip_buffers_if_dirty): New function.
	* src/w32term.h: Update prototypes.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Avoid server roundtrip on wheel events from scroll bars on XI2

	* src/xterm.c (handle_one_xevent): Translate coordinates for
	scroll bars correctly when handling XI2 wheel events.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	* admin/CPP-DEFINES: Update for new features.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Process editres events not for frames correctly

	* src/xterm.c (handle_one_xevent): Dispatch Editres events to
	interested widgets.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Adjustments to double buffering on MS Windows

	* src/w32fns.c (w32_set_inhibit_double_buffering): Add comment
	describing double buffering.
	(w32_wnd_proc): Respect `w32-disable-double-buffering'.
	(globals_of_w32fns): New variable
	`w32-disable-double-buffering'.

	* src/w32term.c (w32_show_back_buffer): Return immediately if
	double buffering is disabled on the frame.
	(w32_scroll_run): Use old scrolling code if
	`w32-disable-double-buffering' is enabled.
	(w32_scroll_bar_clear): Document why we don't clear scroll bars
	when double buffering is enabled.
	(w32_read_socket): Respect `w32-disable-double-buffering' and
	clean up some code.

	* src/w32xfns.c (get_frame_dc): Respect
	`w32-disable-double-buffering'.

2022-04-30  Eli Zaretskii  <eliz@gnu.org>

	Fix use of kp-decimal in 'vhdl-stutter-mode'

	* lisp/progmodes/vhdl-mode.el (vhdl-electric-period): Avoid
	signaling an error when the user presses the kp-decimal key on the
	numeric pad in 'vhdl-stutter-mode'.  (Bug#55079)

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Handle exposure in the widget's expose proc on X

	* src/widget.c (emacsFrameClassRec): Don't inherit expose proc.
	(get_default_char_pixel_size):
	(pixel_to_char_size):
	(char_to_pixel_size):
	(round_size_to_char):
	(EmacsFrameInitialize):
	(EmacsFrameRealize):
	(EmacsFrameResize): Clean up coding style.
	(EmacsFrameExpose): New function.  Expose the frame here to
	satisfy the toolkit when it calls the expose proc by hand.

	* src/xterm.c (handle_one_xevent): Handle exposure through the
	widget instead.

2022-04-30  Po Lu  <luangruo@yahoo.com>

	Fix releasing the mouse on top of the tool bar on MS Windows

	* src/w32term.c (w32_read_socket): Don't handle tool bar clicks
	specially for button up events if no tool bar item was
	previously pressed.

2022-04-29  Po Lu  <luangruo@yahoo.com>

	Fix palette freeing on MS Windows with double buffering

	* src/w32term.c (w32_release_paint_buffer): Also release target
	DC palette.

2022-04-29  Po Lu  <luangruo@yahoo.com>

	Implement double buffering on MS Windows

	* etc/NEWS: Announce changes.
	* src/w32fns.c (w32_set_inhibit_double_buffering): New function.
	(w32_wnd_proc):
	(Fx_create_frame):
	(w32_create_tip_frame): Set `inhibit-double-buffering' parameter.
	(w32_frame_parm_handlers): Add new handler.

	* src/w32term.c (w32_show_back_buffer):
	(w32_release_paint_buffer): New functions.
	(w32_frame_up_to_date): Show back buffer if applicable.
	(w32_buffer_flipping_unblocked_hook): New hook.
	(w32_scroll_run): Use BitBlt to scroll instead of window
	scrolling functions.
	(w32_scroll_bar_clear): Don't clear scroll bars when double
	buffered.
	(w32_read_socket): Flip buffers after reading input events in
	some cases.
	(w32_free_frame_resources): Free back buffer.
	(w32_create_terminal): Add new hook.

	* src/w32term.h (struct w32_output): New fields for handling
	back buffers.
	* src/w32xfns.c (select_palette): Fix indentation.
	(get_frame_dc, release_frame_dc): Return back buffer when
	appropriate and set dirty flag.

2022-04-29  Po Lu  <luangruo@yahoo.com>

	Prevent cursors from being set on tooltip frames on Haiku

	* src/haikuterm.c (haiku_show_hourglass, haiku_hide_hourglass)
	(haiku_define_frame_cursor, haiku_toggle_invisible_pointer):
	Ignore tooltip frames.  Otherwise, the cursor changes every time
	a tooltip is mapped.

2022-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	debug-early: Print bytecode in a more manageable way

	* lisp/emacs-lisp/debug-early.el (debug-early-backtrace):
	Escape newlines to and bytecodes to make backtraces slightly more
	readable.  Use `cl-prin1` when available.

2022-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add `symbol-with-pos`

2022-04-29  Po Lu  <luangruo@yahoo.com>

	Fix focus reversion of Motif menus on XI2

	* src/xmenu.c (create_and_show_popup_menu): Stop setting input
	focus on the menu window.

2022-04-29  Po Lu  <luangruo@yahoo.com>

	Fix mouse face bugs on Motif

	* src/xterm.c (handle_one_xevent): Fix handling LeaveNotify
	events from Motif menus.

2022-04-29  Po Lu  <luangruo@yahoo.com>

	Check display when handling XdndFinished events

	* src/xterm.c (handle_one_xevent): Check that the display is
	actually the one we want before finishing DND.

2022-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	CL types: Accept both `byte-code-function` and `compiled-function`

	`type-of` returns `compiled-function` for bytecode functions, but the
	predicate for those objects is called `byte-code-function-p`,
	So accept both `compiled-function` and `byte-code-function` as type
	names for those objects.

	* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types):
	Add `byte-code-function`.
	* lisp/emacs-lisp/cl-macs.el (byte-code-function, compiled-function, subr):
	New types.

2022-04-29  Juri Linkov  <juri@linkov.net>

	* test/lisp/replace-tests.el (query-replace-tests): Add more tests (bug#54733)

	(perform-replace-tests): New tests.
	(perform-replace--run-tests): New function.
	(perform-replace-tests): New test function.

2022-04-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Simplify window-char-pixel-* code slightly

	* lisp/window.el (window-char-pixel-width)
	(window-char-pixel-height): Simplify code slightly.

2022-04-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Explain effects of setting a zero-width fringe

	* lisp/fringe.el (fringe-mode): Not non-obvious effects of setting
	a fringe to zero width.

2022-04-29  Titus von der Malsburg  <malsburg@posteo.de>

	Add new functions for computing character metrics for windows

	* doc/lispref/display.texi (Size of Displayed Text): Document the
	char functions.
	* doc/lispref/windows.texi (Window Sizes): Document
	window-max-characters-per-line.

	* lisp/window.el (window-char-pixel-width)
	(window-char-pixel-height)
	(window-max-characters-per-line): New functions (bug#19395).

2022-04-29  Pip Cet  <pipcet@gmail.com>

	Make timer_check even more resilient

	* src/keyboard.c (timer_check): Inhibit atimers while making the
	copy of the timer list (bug#21380).  This prevents an extremely
	unlikely segfault.

2022-04-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid binding mouse-1 in xref when mouse-1 doesn't follow links

	* lisp/progmodes/xref.el (xref--button-map): Avoid binding mouse-1
	when `mouse-1-click-follows-link' is nil (bug#35353).

2022-04-29  Po Lu  <luangruo@yahoo.com>

	Fix colorspace calculations on Haiku

	* src/haiku_support.cc (be_get_display_planes)
	(be_get_display_color_cells): Handle grayscale basic colorspaces
	correctly.
	(be_is_display_grayscale): New function.

	* src/haiku_support.h: Update prototypes.

	* src/haikufns.c (haiku_set_no_accept_focus, haiku_iconify_frame)
	(Fxw_display_color_p, Fxw_color_values, Fx_display_grayscale_p):
	Actually handle grayscale colorspaces.
	(Fx_display_pixel_width, Fx_display_pixel_height)
	(Fx_display_mm_height, Fx_display_mm_width): Clean up coding
	style.
	(Fx_display_visual_class): Handle grayscale colorspaces.
	(syms_of_haikufns): New defsyms.

2022-04-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Add helper function to remove title bar when maximizing frames

	* lisp/frame.el (toggle-frame-maximized): Mention it.
	(frame-hide-title-bar-when-maximized): New function (bug#31968).
	Adapted from code by Jonathan Kyle Mitchell.

	* src/window.c (syms_of_window): Mention it.

2022-04-29  Po Lu  <luangruo@yahoo.com>

	Handle IO errors when creating Motif drag window

	* src/xterm.c (xm_drag_window_io_error_handler): New function.
	(xm_get_drag_window): Use that as the IO error handler when the
	temporary display is open.

2022-04-29  Po Lu  <luangruo@yahoo.com>

	Fix file name selection conversion on Haiku

	* lisp/term/haiku-win.el (haiku-normal-selection-encoders):
	Register new encoder.
	(haiku-select-encode-file-name): New function.

2022-04-28  Po Lu  <luangruo@yahoo.com>

	Remove some unneeded tests from the X double buffering code

	* src/xterm.c (x_flip_and_flush): Fix coding style.
	(flush_dirty_back_buffer_on): Avoid testing for impossible
	situations.

2022-04-28  Po Lu  <luangruo@yahoo.com>

	Cancel DND correctly during display disconnect on a different display

	* src/xterm.c (x_dnd_io_error_handler): New function.
	(x_connection_closed): Send the messages to cancel DND if a
	different display was disconnected.

2022-04-28  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (XTflash): Check return value of pselect.

2022-04-28  Eugene Ha  <eha@posteo.de>  (tiny change)

	Find libgccjit.dylib on Homebrew Macos

	* configure.ac: Also find libggcjit on Homebrew (bug#55173).

2022-04-28  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify byte compiler etc. on org-compat, org-macs

	Byte-compiler problem reported by Lars Ingebrigtsen in:
	https://lists.gnu.org/r/emacs-devel/2022-04/msg01256.html
	* lisp/org/org-compat.el (org-at-table.el-p):
	Now declared in org-table, not org.
	(org-string-collate-lessp): Define the ersatz
	org-string-collate-lessp with the same API as the primary form, to
	pacify check-declare-file when run on org-macs.
	* lisp/org/org-macs.el (org-time-convert-to-integer): Declare.

2022-04-28  Paul Eggert  <eggert@cs.ucla.edu>

	Change current-time back to list form

	Change current-time and related functions back to using the
	traditional list form.  Also, add a new boolean variable
	current-time-list that lets people try out (TICKS . HZ) form,
	with the goal of smoothing the transition.
	* src/timefns.c (CURRENT_TIME_LIST): Change default back to true.
	(current-time-list): New boolean Lisp variable, which defaults to
	CURRENT_TIME_LIST.  All uses of CURRENT_TIME_LIST changed to
	use current_time_list, and all documentation changed.

2022-04-28  Paul Eggert  <eggert@cs.ucla.edu>

	Document \807 etc. in raw byte display

	* doc/emacs/display.texi (Display Custom): Mention potential
	confusion in raw byte display.

2022-04-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Kill off more Gnus buffers on Gnus exit

	* lisp/gnus/gnus.el (gnus-kill-buffer): Make into function;
	there's no reason this should be a macro.

	* lisp/gnus/nntp.el (nntp-make-process-buffer): Ensure that we
	kill these buffers on Gnus exit (bug#55167).

2022-04-28  Sam Steingold  <sds@gnu.org>

	Add Sefirot to Omer counting

	* lisp/calendar/cal-hebrew.el (diary-hebrew-omer-sefirot): New variable.
	(diary-hebrew-omer): Use it to show the sefirot.

2022-04-28  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	# Conflicts:
	#	lisp/progmodes/xref.el

2022-04-28  Stefan Kangas  <stefankangas@gmail.com>

	Add tests for image-supported-file-p

	* test/lisp/image-tests.el (image-type-from-file-name): Suppress
	obsoletion warnings for test.
	(image-supported-file-p/built-in)
	(image-supported-file-p/optional)
	(image-supported-file-p/unsupported-returns-nil): New tests.

2022-04-28  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/finder.el (finder-mode-map): Use defvar-keymap.

2022-04-28  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of font- and face-related attribute functions

	* lisp/faces.el (face-attribute):
	* src/xfaces.c (Fx_family_fonts):
	* src/font.c (Ffont_get, Ffont_put): Improve and clarify the doc
	strings.

	* doc/lispref/display.texi (Low-Level Font): Document the :type
	attribute of a font.  Improve documentation of 'font-get' and
	'font-put'.
	(Attribute Functions): Add cross-reference to the description of
	face attributes.

2022-04-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/nadvice.el: Fix bug#55149

2022-04-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow inserting and selecting binary blobs from sqlite

	* doc/lispref/text.texi (Database): Document how to insert binary
	data.
	* src/sqlite.c (bind_values): Bind BLOB columns correctly (bug#54591).

2022-04-28  Po Lu  <luangruo@yahoo.com>

	Simplify buffer flipping code on Haiku

	* src/haikuterm.c (flush_dirty_back_buffers): Delete function.
	(haiku_flush_dirty_back_buffer_on): New function.
	(haiku_read_socket): Use that instead of looping over each frame
	at the end.

2022-04-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Document dired-keep-marker-copy more

	* doc/emacs/dired.texi (Operating on Files): Mention
	dired-keep-marker-copy.

2022-04-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve dired-do-copy doc string

	* lisp/dired-aux.el (dired-do-copy): Mention the
	`dired-keep-marker-copy' variable in the doc string (bug#21746).

2022-04-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Document the non-effect of narrowing on get-text-property

	* doc/lispref/text.texi (Examining Properties): Document
	surprising non-effect of narrowing (bug#16413).

	* src/textprop.c (Ftext_properties_at, Fget_text_property):
	Mention narrowing.

2022-04-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Add comment to linum-mode about being old

	* lisp/linum.el (linum-mode): Link to display-line-numbers-mode
	(bug#34639).

2022-04-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix `g' in *grep* after `A' in Dired

	* lisp/dired-aux.el (dired-do-find-regexp): Allow `g' to work in
	the resulting grep buffer by not being destructive (bug#55157).

2022-04-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix another help-fns--insert-menu-bindings parsing problem

	* lisp/help-fns.el (help-fns--insert-menu-bindings): Fix keymap
	traversal when elements are symbols.

2022-04-28  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_term_init): Fix the non-GTK3 XI2 build.

2022-04-28  Michael Albinus  <michael.albinus@gmx.de>

	Revert previous change in test/Makefile.in

	* test/Makefile.in (test_template): Revert previous change, it isn't needed.

2022-04-28  Eli Zaretskii  <eliz@gnu.org>

	Fix handling of proportional fonts on MS-Windows

	* src/xfaces.c (Fx_family_fonts): Consider fonts whose :spacing
	value is numeric, but still indicates that they are proportional,
	to be proportional.

	* lisp/textmodes/artist.el (artist-mode): Fix test for monospaced
	fonts.

2022-04-28  Po Lu  <luangruo@yahoo.com>

	Fix GTK build

	* src/xrdb.c (x_load_resources): Fix definitions of `helv'.

2022-04-27  Po Lu  <luangruo@yahoo.com>

	Stop overriding default Motif colors with our own

	* src/xrdb.c (x_load_resources): Instead of specifying the Motif
	defaults manually, let Motif set them itself.  This makes
	palettes provided by color servers work again.

2022-04-27  Po Lu  <luangruo@yahoo.com>

	Handle display disconnects during DND

	* src/xterm.c (handle_one_xevent): Keep track of the display the
	drop target is on during DND finish.
	(x_connection_closed, x_delete_terminal): Handle display
	disconnects during DND correctly.

2022-04-27  Po Lu  <luangruo@yahoo.com>

	Fix target display checks during Motif DND

	* src/xterm.c (handle_one_xevent): Check that the Motif DND
	completion message is actually from the right display before
	proceeding.

2022-04-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/xdisp.c: Use same test in `redisplay_window` and `prepare_menu_bars`

	This consolidates the test made in those two functions so as to make
	sure they agree whether a window needs to be redisplayed.
	At the same time, change this test so it uses the window's point
	rather than the buffer's point when comparing to `w->last_point`.

	* src/xdisp.c (needs_no_redisplay): New function, extracted from
	`redisplay_window`.
	(redisplay_window, prepare_menu_bars): Use it.

	* src/window.c (window_point): New function, extracted from `Fwindow_point`.
	(Fwindow_point): Use it.
	* src/window.h (window_point): Declare it.

2022-04-27  Sean Whitton  <spwhitton@spwhitton.name>

	New user option 'calc-kill-line-numbering'

	* lisp/calc/calc.el (calc-kill-line-numbering): New defcustom.
	* lisp/calc/calc-yank.el (calc-kill): Unless calc-kill-line-numbering
	is non-nil, do not include line numbering in copied text (bug#55133).
	* etc/NEWS:
	* doc/misc/calc.texi (Killing from the Stack): Document the change.

2022-04-27  Alan Mackenzie  <acm@muc.de>

	CC Mode: "linux" style: set indent-tabs-mode to t

	* lisp/progmodes/cc-styles.el (c-style-alist): Add the setting of
	indent-tabs-mode to "linux" style.

2022-04-27  Michael Albinus  <michael.albinus@gmx.de>

	Improve tramp-test46-read-password

	* test/lisp/net/tramp-tests.el (tramp-test46-read-password): Add a
	further check.

2022-04-27  Eli Zaretskii  <eliz@gnu.org>

	Emulate 'clock' for MS-Windows

	* src/w32.c (sys_clock): New function.  (Bug#44674)
	* nt/inc/ms-w32.h (clock): Redirect to sys_clock.

2022-04-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-M-x' use the original value of print-length while evalling

	* lisp/progmodes/elisp-mode.el (elisp--eval-defun): Eval the form
	with the original values of print-level and print-length
	(bug#135).

2022-04-27  Ken Brown  <kbrown@cornell.edu>

	Implement system_process_attributes on Cygwin

	* src/sysdep.c (system_process_attributes) [CYGWIN]: Implement,
	using the /proc filesystem.  The code is identical to the
	GNU/Linux code except for the 'ttname' attribute.  (Bug#55153)

	* etc/NEWS: Mention the change.

2022-04-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	Add new function current-cpu-time

	* doc/lispref/os.texi (Time of Day): Document it.
	* src/timefns.c (Fcurrent_cpu_time): New function (bug#44674).

2022-04-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-04-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Change parameter order for string-edit functions

	* lisp/textmodes/string-edit.el (string-edit)
	(read-string-from-buffer): Rework the function arguments so that
	they're more similar to `read-string'.  Rename symbols throughout
	the file from help-text to prompt.

2022-04-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Add autoload cookies to string-edit

	* lisp/textmodes/string-edit.el (string-edit)
	(read-string-from-buffer): Autoload.

2022-04-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some typos in the recent holidays change

	* lisp/calendar/holidays.el (holiday-available-holiday-lists): Fix
	typos.

2022-04-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Give better error message in dired-toggle-read-only on nonexisting dirs

	* lisp/dired.el (dired-toggle-read-only): Refuse to edit
	non-existent directories (bug#23276).

2022-04-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename holiday-lists to holiday-available-holyday-lists

	* lisp/calendar/holidays.el (holiday-available-holyday-lists):
	Give holiday-lists a better name.

2022-04-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Separate out the holiday lists into its own function

	* lisp/calendar/holidays.el (holiday-lists): Separated out into
	its own function so that it can be altered (bug#55140).
	(list-holidays): Use it.

2022-04-27  Michael Albinus  <michael.albinus@gmx.de>

	Make test/Makefile more robust

	* test/Makefile.in (test_template): Do not fails if corresponding
	source file doesn't exist.

2022-04-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Add an instruction header line to string-edit

	* lisp/textmodes/string-edit.el (string-edit): Add a header line
	with instructions.

2022-04-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Make isearch respond to 'mouse-yank-at-point'

	* doc/emacs/killing.texi (Secondary Selection): Document it.
	* lisp/isearch.el (isearch-mouse-2): Make isearch respond to
	mouse-yank-at-point (bug#7787).

	* lisp/mouse.el (mouse-yank-at-point): Mention it.

2022-04-27  Tomasz Hołubowicz  <45176912+alternateved@users.noreply.github.com>  (tiny change)

	Add out-of-box support for purescript lsp server

	* eglot.el (eglot-server-programs): Support purescript lsp.
	* README.md: Update.
	* NEWS.md: Update.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/905

2022-04-27  Po Lu  <luangruo@yahoo.com>

	Cleanups to PGTK code

	* src/pgtkfns.c (pgtk_explicitly_set_name, pgtk_set_tab_bar_lines)
	(pgtk_change_tab_bar_height, pgtk_set_child_frame_border_width)
	(pgtk_set_internal_border_width, pgtk_set_cursor_type)
	(pgtk_set_mouse_color, pgtk_set_override_redirect, xg_set_icon)
	(pgtk_frame_parm_handlers, Fpgtk_set_monitor_scale_factor)
	(pgtk_set_scroll_bar_default_width, pgtk_get_focus_frame)
	(pgtk_hide_tip, Fx_show_tip, Fx_hide_tip, frame_geometry)
	(syms_of_pgtkfns): Clean up coding style and delete incorrect
	comments that mostly duplicate what is in xfns.c, and fix
	comment coding style.  Also rename functions from `x_' to
	`pgtk_'.

	* src/pgtkterm.c (pgtk_setup_relief_colors): Fix relief caching
	with new flag.
	(pgtk_draw_relief_rect, flip_cr_context, pgtk_wait_for_map_event)
	(pgtk_make_frame_visible, pgtk_make_frame_invisible)
	(pgtk_set_parent_frame, pgtk_draw_glyph_string_foreground)
	(pgtk_draw_composite_glyph_string_foreground)
	(pgtk_draw_glyphless_glyph_string_foreground)
	(pgtk_set_clip_rectangles, pgtk_draw_glyph_string_bg_rect)
	(pgtk_draw_image_foreground, pgtk_draw_image_glyph_string)
	(pgtk_draw_stretch_glyph_string, pgtk_draw_glyph_string)
	(pgtk_copy_bits, pgtk_bitmap_icon, pgtk_define_fringe_bitmap)
	(pgtk_show_hourglass, pgtk_flash, pgtk_send_scroll_bar_event)
	(pgtk_free_pixmap, set_opacity_recursively, frame_highlight)
	(frame_unhighlight, pgtk_toggle_invisible_pointer)
	(pgtk_create_terminal, pgtk_window_is_of_frame_recursive)
	(pgtk_window_is_of_frame, pgtk_any_window_to_frame)
	(pgtk_handle_draw, size_allocate, pgtk_enqueue_string)
	(key_press_event, motion_notify_event): Fix coding style and
	some minor bugs.

	* src/pgtkterm.h (struct pgtk_output): New field for tracking
	relief color status, update prototypes.

2022-04-27  João Távora  <joaotavora@gmail.com>

	Ensure non-null :settings param in didchangeconfiguration notif

	* eglot.el (eglot-signal-didChangeConfiguration): Use eglot--{}

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/936

2022-04-27  Po Lu  <luangruo@yahoo.com>

	Remove some unnecessary code

	* src/haiku_support.cc (class EmacsView, AfterResize)
	(SetUpDoubleBuffering): Remove `cspace' field since it's always
	RGBA32.

2022-04-27  Juri Linkov  <juri@linkov.net>

	* lisp/help-fns.el (help-fns--insert-menu-bindings): Don't highlight heading.

2022-04-27  Paul Eggert  <eggert@cs.ucla.edu>

	Use org-time-convert-to-integer instead of by hand

	* lisp/org/org-macs.el (org-file-newer-than-p):
	Don’t assume list-format timestamps, by using
	org-time-convert-to-integer instead of doing it by hand.

2022-04-27  Po Lu  <luangruo@yahoo.com>

	Fix quitting application from the Deskbar on Haiku

	* lisp/term/haiku-win.el (handle-save-session): Kill Emacs
	afterwards.

2022-04-27  Po Lu  <luangruo@yahoo.com>

	Add simple session management support to Haiku

	* lisp/term/common-win.el (emacs-save-session-functions): Move
	from x-win.el to common-win.el.
	* lisp/term/haiku-win.el (haiku-save-session-reply)
	(emacs-session-save, handle-save-session): New functions.
	* lisp/term/x-win.el (emacs-save-session-functions): Delete.

	* src/haiku_font_support.cc (font_style_to_flags):
	* src/haiku_support.h (enum haiku_font_weight): Turn weight
	macros into enum.
	(struct haiku_font_pattern): Likewise.
	(struct haiku_session_manager_reply): New struct.
	* src/haiku_io.c (haiku_io_init): Create sm port.
	* src/haiku_support.cc (QuitRequested): Wait for reply from sm
	port.
	* src/haikufns.c (Fhaiku_save_session_reply): New function.
	(syms_of_haikufns): Define new subr.
	* src/haikuterm.c (haiku_read_socket): Send session management
	events.
	(haiku_term_init): Check new port.

2022-04-27  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid change to desktop file format

	* lisp/desktop.el (desktop--get-file-modtime): New function.
	(desktop-save, desktop-read): Use it.

2022-04-26  Paul Eggert  <eggert@cs.ucla.edu>

	Be more compatible with older desktops

	* lisp/desktop.el (desktop-save): When comparing timestamps use
	time-equal-p instead of ‘equal’.

2022-04-26  Po Lu  <luangruo@yahoo.com>

	Clean up pointer blanking code

	* src/xterm.c (XTtoggle_invisible_pointer): Dispatch to correct
	function directly.
	(x_probe_xfixes_extension): Return directly based on dpyinfo.
	(xfixes_toggle_visible_pointer): Make conditional on
	`HAVE_XFIXES'.
	(make_invisible_cursor): Initialize `c' correctly.
	(x_toggle_visible_pointer): Handle cursor allocation failures.
	(x_free_frame_resources): Dispatch with
	XTtoggle_visible_pointer.
	(x_setup_pointer_blanking): Delete function.
	(x_term_init): Initialize blank cursor here instead.
	* src/xterm.h (struct x_display_info): New field
	`fixes_pointer_blanking'.

2022-04-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	nadvice.el: Auto-generate the doc describing the "how" arg

	* lisp/emacs-lisp/nadvice.el (advice--make-how-alist): New macro.
	(advice--how-alist): Use it.
	(nadvice--make-docstring): New function.
	(add-function, advice-add): Use it to auto-generate the table
	describing the accepted values for `how`.

2022-04-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	nadvice.el: Use OClosures

	* lisp/emacs-lisp/nadvice.el (advice): New OClosure type.
	(advice--how-alist): Make it hold prototype OClosures rather
	than bytecode strings.
	(advice--bytecodes): Delete var.
	(advice--where): Make it an obsolete alias of new `advice--how`.
	(oclosure-interactive-form, cl-print-object) <advice>: New methods.
	(advice--make-1): Delete function.
	(advice--make): Use `advice-copy` and `advice-cons`.
	(advice--tweak): Use `advice-cons`.
	(add-function, advice-add): Rename `where` arg to `how`.

	* lisp/emacs-lisp/cl-print.el (cl-print-object) <:extra "nadvice">:
	Remove now-redundant ad-hoc method.

	* test/lisp/emacs-lisp/nadvice-tests.el (advice-test-print): New test.

2022-04-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	nadvice.el: Rename "where" to "how"

	* lisp/emacs-lisp/nadvice.el (advice--how-alist): Rename from
	`advice--where-alist`.
	(advice--how): Rename from `advice--where` and keep obsolete alias.
	(add-function, advice-add): Rename `where` arg to `how`.
	* lisp/emacs-lisp/cl-print.el (cl-print-object): Use `advice--how` name.

2022-04-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	Use `advice--cd*r` where applicable

	* lisp/emacs-lisp/bytecomp.el (byte-compile--function-signature):
	* lisp/emacs-lisp/advice.el (ad-get-orig-definition):
	* lisp/help.el (help-function-arglist): Use `advice--cd*r`.

2022-04-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	Pretty print OClosure slot accessors

	* lisp/emacs-lisp/oclosure.el (oclosure--accessor-cl-print): New function.
	* lisp/emacs-lisp/cl-print.el (cl-print-object) <accessor>: New method.
	* test/lisp/emacs-lisp/nadvice-tests.el (advice-test-call-interactively):
	Avoid `defun` within a function.

2022-04-26  Paul Eggert  <eggert@cs.ucla.edu>

	Fix gnus-html-image-cache-ttl FIXME

	* lisp/gnus/gnus-html.el (gnus-html-image-cache-ttl):
	Make it a seconds count.

2022-04-26  Alex Schroeder  <alex@gnu.org>

	Fix error in rcirc for IRC tags without values

	* src/lisp/net/rcirc.el (rcirc-process-server-response-1): If the
	optional value for a tag is not present, do not call
	replace-regexp-in-string on it. If (match-string 2 tag) is
	nil, the STRING argument for the replace-regexp-in-string is nil,
	which results in an error.

2022-04-26  Stefan Monnier  <monnier@iro.umontreal.ca>

	New generic function `oclosure-interactive-form`

	It's used by `interactive-form` when it encounters an OClosure.
	This lets one compute the `interactive-form` of OClosures
	dynamically by adding appropriate methods.
	This does not include support for `command-modes` for Oclosures.

	* lisp/simple.el (oclosure-interactive-form): New generic function.

	* src/data.c (Finteractive_form): Delegate to
	`oclosure-interactive-form` if the arg is an OClosure.
	(syms_of_data): New symbol `Qoclosure_interactive_form`.
	* src/eval.c (Fcommandp): Delegate to `interactive-form` if the arg is
	an OClosure.

	* src/lisp.h (VALID_DOCSTRING_P): New function, extracted from
	`store_function_docstring`.
	* src/doc.c (store_function_docstring): Use it.

	* lisp/kmacro.el (kmacro): Don't carry any interactive form.
	(oclosure-interactive-form) <kmacro>: New method, instead.

	* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-interactive-form)
	<oclosure-test>: New method.
	(oclosure-test-interactive-form): New test.

	* doc/lispref/commands.texi (Using Interactive):
	Document `oclosure-interactive-form`.

2022-04-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention caveats in the map-delete doc string

	* lisp/emacs-lisp/map.el (map-delete): Mention how this has to be
	used for lists (bug#25929).

2022-04-26  Po Lu  <luangruo@yahoo.com>

	Fix EWMH window activation

	* src/xterm.c (x_ewmh_activate_frame): Add missing fields of
	message.  (bug#55122)

2022-04-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak interactive use of delete-windows-on

	* lisp/window.el (delete-windows-on): Make prompting better, and
	allow specifying only the current frame interactively (bug#34749).

2022-04-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C RET' work in archive-mode

	* lisp/arc-mode.el (archive-copy-file): Fix the default value
	(when the user hits RET) (bug#55123).

2022-04-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Make new menu *Help* output be more resilient

	* lisp/help-fns.el (help-fns--insert-menu-bindings): Only insert
	the heading if it turns out that we actually find the menu.
	(help-fns--insert-bindings): Tweak calling convention.

2022-04-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option flymake-mode-line-lighter

	* doc/misc/flymake.texi (Customizable variables): Document it.

	* lisp/progmodes/flymake.el (flymake-mode-line-lighter): New user
	option (bug#55115).
	(flymake--mode-line-title): Use it.

2022-04-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve documentation for t value for reusable-frames

	* doc/lispref/windows.texi (Buffer Display Action Alists): Note
	that the t value is rarely a good one (bug#55103).

2022-04-26  Po Lu  <luangruo@yahoo.com>

	Fix event mask of activation client message

	* src/xterm.c (x_alloc_lighter_color):
	(x_get_scale_factor): Minor formatting fixes.
	(x_ewmh_activate_frame): Fix event mask used to send message to
	the root window.

2022-04-25  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_scroll_run): Only flush GC if really necessary.

2022-04-25  Dmitry Gutov  <dgutov@yandex.ru>

	Fix Ruby indentation with double splat as first block param

	* lisp/progmodes/ruby-mode.el (ruby-smie--forward-token)
	(ruby-smie--backward-token): Tokenize "**" separately from "|".
	Problem reported at https://github.com/dgutov/robe/issues/136.

2022-04-25  Po Lu  <luangruo@yahoo.com>

	Cache relief colors on Haiku since their computation is expensive

	* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
	Clear `relief_background'.
	* src/haikuterm.c (haiku_calculate_relief_colors): Cache relief
	colors for each frame.
	* src/haikuterm.h (struct haiku_output): New fields for caching
	the last relief color.

2022-04-25  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify misc/test-custom-opts

	* lisp/gnus/gnus-html.el (gnus-html-image-cache-ttl):
	Also allow it to be a cons of integers.

2022-04-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-generic.el: Upcase formal args in `C-h o`

	Try and improve the display of methods in `C-h o` by moving
	the qualifiers to a separate line and upcasing the formal args.
	It still needs love, tho.

	* lisp/emacs-lisp/cl-generic.el: Upcase formal args in `C-h o`
	(cl--generic-upcase-formal-args): New function.
	(cl--generic-describe): Use it.

2022-04-25  Paul Eggert  <eggert@cs.ucla.edu>

	Use (TICKS . HZ) for current-time etc.

	* src/timefns.c (CURRENT_TIME_LIST): Change default to false.
	All documentation changed.

2022-04-25  Paul Eggert  <eggert@cs.ucla.edu>

	Support (encode-time (list s m h D M Y))

	* src/timefns.c (Fencode_time): Add support for a 6-elt list arg.
	Requested by Max Nikulin for Org (bug#54764).
	* test/src/timefns-tests.el (encode-time-alternate-apis): New test.

2022-04-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Change the display of menu bindings in *Help*

	* lisp/help-fns.el (help-fns--insert-menu-bindings): New function
	to describe menu entries more fully (bug#52870).
	(help-fns--key-bindings): Use it.

2022-04-25  Glenn Morris  <rgm@gnu.org>

	Fix type of word-wrap-whitespace-characters

	* lisp/textmodes/word-wrap-mode.el (word-wrap-whitespace-characters):
	Fix type.

2022-04-25  Alan Third  <alan@idiocy.org>
	    Po Lu  <luangruo@yahoo.com>

	Fix nsmenu compilation under macOS 10.6

	* src/nsmenu.m ([EmacsMenu fillWithWidgetValue:]): Replace modern
	shorthand dictionary and array definitions.
	* src/nsterm.h (NSTextAlignmentRight): Redefine if necessary.
	* src/macfont.m (mac_font_create_preferred_family_for_attributes):
	isOperatingSystemAtLeastVersion is new in macOS 10.10, so it's
	probably wrong to use it to check whether we're below 10.9.
	(mac_font_copy_default_descriptors_for_language):
	(mac_font_copy_default_name_for_charset_and_languages): It seems these
	functions are only used on macOS 10.8 and below.
	* src/nsterm.m ([NSColor colorUsingDefaultColorSpace]): Use the
	generic colorspace.
	(ns_parent_window_rect):
	(ns_frame_scale_factor):
	([EmacsWindow setParentChildRelationships]): Fix macOS version stuff.

2022-04-25  Karl Fogel  <kfogel@red-bean.com>

	Update bookmark sort indicator at proper time

	This follows up to my commit 8b071c77b0d7 of 2022-04-24.  Thanks to
	Manuel Giraud <manuel@ledu-giraud.fr> for reporting the buglet.

2022-04-25  Po Lu  <luangruo@yahoo.com>

	Make default Haiku tool bar color match system preferences

	* lisp/faces.el (tool-bar): Use system bar color as the default
	tool-bar background color on Haiku.

2022-04-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Move the Incremental Search menu one menu up

	* lisp/menu-bar.el (menu-bar-search-menu): Move the Incremental
	Search from the Search menu...
	(menu-bar-edit-menu): ... one step up (bug#43308).

2022-04-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Protect against the host name containing an alpha character

	* src/filelock.c (lock_file_1, current_lock_owner): Protect
	against the unlikely case that the host name contains an alpha
	character (bug#14250).

2022-04-25  Michael Albinus  <michael.albinus@gmx.de>

	Add test for Tramp password handling

	* lisp/net/tramp.el (tramp-error-show-message-timeout): New defvar.
	(tramp-error-with-buffer, tramp-user-error): Use it.

	* test/lisp/net/tramp-tests.el (tramp-error-show-message-timeout):
	Set it to nil.
	(tramp-test46-read-password): New test.
	(tramp-test47-auto-load, tramp-test47-delay-load)
	(tramp-test47-recursive-load, tramp-test47-remote-load-path)
	(tramp-test48-unload):
	* test/lisp/net/tramp-archive-tests.el (tramp-archive-test47-auto-load)
	(tramp-archive-test47-delay-load): Rename.

2022-04-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Make flymake-show-buffer-diagnostics error out in non-Flymake buffers

	* lisp/progmodes/flymake.el (flymake-show-buffer-diagnostics):
	Signal an error if run outside of a buffer with Flymake enabled
	(bug#55097).

2022-04-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up some string-edit.el strings

	* lisp/textmodes/string-edit.el (string-edit)
	(read-string-from-buffer): Make doc strings use dynamic key
	bindings.
	(string-edit): Fix message at the end.

2022-04-25  Po Lu  <luangruo@yahoo.com>

	Delete some unused functions on Haiku

	* src/haiku_support.cc (haiku_current_workspace)
	(BWindow_workspaces):
	* src/haiku_support.h: Remove unused functions and prototypes.

2022-04-25  Po Lu  <luangruo@yahoo.com>

	Get rid of autorelease warnings during building on GNUstep

	* src/emacs.c (decode_env_path):
	* src/nsfns.m (ns_appkit_version_str):
	* src/nsterm.m (ns_term_shutdown): Setup autorelease when
	objects might be autoreleased during building.

2022-04-25  Po Lu  <luangruo@yahoo.com>

	* src/nsfns.m (Fns_list_colors): Fix autoreleasing.

2022-04-24  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.5.3-3-gd54104

2022-04-24  Po Lu  <luangruo@yahoo.com>

	Set last user time during drag-and-drop

	* src/xterm.c (XTmouse_position): Set last user time if
	track-mouse is drag-source or dropping.

2022-04-24  Po Lu  <luangruo@yahoo.com>

	Fix 32-bit Haiku build

	* src/haiku_support.h (be_get_ui_color): Fix prototype.

2022-04-24  Eli Zaretskii  <eliz@gnu.org>

	Improve indexing in "Programmed Completion"

	* doc/lispref/minibuf.texi (Programmed Completion): Improve
	indexing.  (Bug#55095)

2022-04-24  Karl Fogel  <kfogel@red-bean.com>

	Improve sorting in the bookmark list buffer

	  - Ensure that the bookmark bmenu buffer sorts when it should.
	  - Sort case-insensitively and by locale-dependent collation order.
	  - Rename "Bookmark" column to "Bookmark Name".
	  - Coordinate that column's sort toggle and `bookmark-sort-flag'.
	  - Document the new behavior.

	* lisp/bookmark.el (bookmark-bmenu--name-predicate,
	bookmark-bmenu--type-predicate, bookmark-bmenu--file-predicate): Use
	`string-collate-lessp' with IGNORE-CASE argument, instead of plain
	`string<'.
	(bookmark-bmenu--revert): Sort based on `bookmark-sort-flag'.
	(bookmark-bmenu-mode): Document the new behavior.   Rename the
	"Bookmark" column to "Bookmark Name" for clarity & documentabilty.

2022-04-24  Aleksandr Vityazev  <avityazev@posteo.org>

	Fix typo in cl.texi example

	* doc/misc/cl.texi (Argument Lists): Fix typo (bug#55092).

2022-04-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Use `C-c C-k' instead of `C-c C-d' to abort in string-edit

	* lisp/textmodes/string-edit.el (string-edit-mode-map): Use `C-c
	C-k' to abort.

2022-04-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Further help-fns--editable-variable fixes

	* lisp/help-fns.el (help-fns--editable-variable): Don't bug out on
	non-symbols.

2022-04-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Provide help when doing (shell-command "... &") on buffer collisions

	* lisp/simple.el (shell-command--same-buffer-confirm): New
	function (bug#13649).
	(shell-command): Use it to provide fuller help.

2022-04-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function `read-string-from-buffer'.

	* doc/lispref/minibuf.texi (Text from Minibuffer): Document it.
	* lisp/textmodes/string-edit.el: New file.

2022-04-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow 'C-u C-h .' to describe button/widgets

	* doc/emacs/help.texi (Help Summary): Document it.
	* lisp/help-at-pt.el (display-local-help): Display button/widget
	help (bug#54963).

2022-04-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that the global sql-buffer variable is set

	* lisp/progmodes/sql.el (sql-product-interactive): Set the
	expected global value of sql-buffer (bug#55088).

2022-04-24  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'set-fontset-font'

	* doc/lispref/display.texi (Fontsets):
	* src/fontset.c (Fset_fontset_font): Improve and clarify the
	documentation of 'set-fontset-font'.  Rename the arguments to be
	more self-explanatory.  (Bug#55086)

2022-04-24  Po Lu  <luangruo@yahoo.com>

	* lisp/term/haiku-win.el (x-colors): Also update with system colors.

2022-04-24  Po Lu  <luangruo@yahoo.com>

	Allow looking up window system colors on Haiku

	* lisp/help-fns.el (help-fns--editable-variable): Fix describing
	variables which don't have symbol values.
	* lisp/term/haiku-win.el (haiku-allowed-ui-colors): Set list of
	allowed UI colors.
	* src/haiku_support.cc (be_get_ui_color): New function.
	* src/haiku_support.h: Update prototypes.
	* src/haikufns.c (haiku_get_color): Look for defined UI color.
	(syms_of_haikufns): New defvar `haiku-allowed-ui-colors'.
	* src/haikuterm.c (haiku_term_init): Fix coding style.

2022-04-23  Po Lu  <luangruo@yahoo.com>

	Fix disabling double buffering on Haiku

	* src/haikufns.c (haiku_set_inhibit_double_buffering): Garbage
	frame correctly after changing double buffering.
	* src/haikuterm.c (haiku_calculate_relief_colors)
	(haiku_draw_relief_rect, haiku_draw_underwave): Clean up coding
	style.

2022-04-23  Po Lu  <luangruo@yahoo.com>

	Speed up color cache lookup on X

	* src/xterm.c (x_hash_string_ignore_case): New function.
	(x_parse_color): Turn color cache into a hash table.
	(x_term_init): Allocate color cache.
	(x_delete_display): Free color cache correctly.
	* src/xterm.h (struct x_display_info): Turn color cache into a
	hash table and add appropriate fields.

2022-04-23  Alan Mackenzie  <acm@muc.de>

	CC Mode: New alignment function c-lineup-argcont-+

	This fixes bug #21409.

	* lisp/progmodes/cc-align.el (c-lineup-argcont-1): New function, mainly
	extracted from c-lineup-argcont.
	(c-lineup-argcont): Refactored to use the new function above.
	(c-lineup-argcont-+): New function.

	* doc/misc/cc-mode.texi (Operator Line-Up): Add a new piece for
	c-lineup-argcont-+.

2022-04-23  Lars Ingebrigtsen  <larsi@gnus.org>

	NEWS copy editing

	Fix elc.gz loading test some more

2022-04-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a failing test case for bug#12598

	Author:

2022-04-23  Juri Linkov  <juri@linkov.net>

	Allow not clearing the echo area

	* doc/lispref/display.texi (Displaying Messages): Document it.
	* lisp/minibuffer.el (clear-minibuffer-message): Return nil.

	* src/xdisp.c (clear_message): Respect the dont-clear-message
	value.

2022-04-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't have help-fns--editable-variable override link buttons

	* lisp/help-fns.el (help-fns--editable-variable): Don't override
	link buttons (bug#40774).

2022-04-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention the case of the result in the try-completion doc string

	* src/minibuf.c (Ftry_completion): Mention the case of the results
	(bug#39484).

2022-04-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make elisp-flymake-byte-compile clean up on failures

	* lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile): Clean
	up no matter what the exit status of the process is (bug#55056).

2022-04-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't make a header if the user hasn't specified columns in vtable

	* lisp/emacs-lisp/vtable.el (vtable):
	(make-vtable): Store whether the user has specified the columns.
	(vtable-insert): Don't insert a header line or a header if the
	user hasn't specified the columns (bug#55075).

2022-04-23  Filipp Gunbin  <fgunbin@fastmail.fm>

	Fix prompts in sql-get-login again

	* lisp/progmodes/sql.el (sql-get-login-ext): Use prompt-def
	everywhere.
	(sql-get-login): Revert previous fix (bug#52546).

2022-04-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-04-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new minor mode word-wrap-whitespace-mode

	* doc/emacs/display.texi (Visual Line Mode): Document it.
	* lisp/textmodes/word-wrap-mode.el: New minor mode.

2022-04-23  Po Lu  <luangruo@yahoo.com>

	Fix key navigation of Lucid menus on XI2

	* src/xmenu.c (popup_get_selection): Fix cookie claiming of
	input extension events.
	(Fx_menu_bar_open_internal): Use right timestamps on XI2.
	* src/xterm.c (handle_one_xevent): Dispatch XI2 key events via
	Xt when popup is active.

2022-04-23  Michael Albinus  <michael.albinus@gmx.de>

	Fix problem with Solaris ls in Tramp

	* lisp/net/tramp-sh.el (tramp-sunos-unames): Move up.
	(tramp-sh--quoting-style-options): Handle erroneous Solaris ls.

2022-04-22  Po Lu  <luangruo@yahoo.com>

	Avoid unnecessary calculations when handling button events during DND

	* src/xterm.c (handle_one_xevent): Only calculate DND grab for
	button release events.

2022-04-22  Po Lu  <luangruo@yahoo.com>

	Avoid clearing splash screen message during DND on Haiku

	* src/haikuterm.c (haiku_read_socket): Respect any_help_event_p
	when sending help events for DND.

2022-04-22  Alan Mackenzie  <acm@muc.de>

	Byte compiler: Prevent special forms' symbols being replaced by bare symbols

	These are symbols with position from source code, which should not be replaced
	by bare symbols in, e.g., optimization functions.

	* lisp/Makefile.in: (BYTE_COMPILE_FLAGS, compile-first case): Set
	max-specpdl-size to 5000 for the benefit of lisp/emacs-lisp/comp.el.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker)
	(byte-optimize--rename-var, byte-optimize-if, byte-optimize-letX)
	* lisp/emacs-lisp/bytecomp.el (byte-compile-recurse-toplevel)
	(byte-compile-lambda)
	* lisp/emacs-lisp/cconv.el (cconv-convert)
	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Preserve, e.g., (car
	form) in the byte compiler, when this form's car is a symbol with position of
	a special form, rather than replacing the symbol with a bare symbol, e.g.
	'cond.

2022-04-22  Alan Mackenzie  <acm@muc.de>

	Byte compiler: correct output warning message positions (part 2)

	A supplementary commit to that on 2022-04-18:

	* lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos): Handle
	vectors and records correctly.

	* lisp/emacs-lisp/byte-run.el (byte-run--ssp-seen): Correct the doc string.

2022-04-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Further doc string quoting fixes

	* test/lisp/progmodes/cperl-mode-tests.el (cperl--run-test-cases):
	* lisp/simple.el (undo-equiv-table):
	* lisp/shell.el (shell-mode):
	(shell-mode):
	* lisp/recentf.el (recentf-mode):
	* lisp/org/ob-table.el (org-sbe):
	* lisp/net/eudc.el (eudc-rfc5322-cctext-token):
	* lisp/mail/ietf-drums-date.el (ietf-drums-date--slot-ranges):
	* lisp/faces.el (color-luminance-dark-limit):
	* lisp/erc/erc.el (erc-tls):
	* lisp/emacs-lisp/pcase.el (pcase-setq): Further quoting fixes in
	doc strings.

2022-04-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Audit quoting the quote character in doc strings

	* test/src/regex-emacs-tests.el (regex-tests-compare):
	(regex-tests-compare):
	(regex-tests-match):
	* test/lisp/xml-tests.el (xml-parse-tests--qnames):
	* test/lisp/mh-e/mh-thread-tests.el (mh-thread-tests-before-from):
	* test/lisp/cedet/srecode-utest-template.el (srecode-utest-map-reset):
	* test/lisp/calc/calc-tests.el (calc-tests-equal):
	* lisp/window.el (get-lru-window):
	(get-mru-window):
	(get-largest-window):
	(quit-restore-window):
	(display-buffer):
	* lisp/vc/vc-rcs.el (vc-rcs-consult-headers):
	* lisp/url/url-auth.el (url-digest-auth-build-response):
	* lisp/tutorial.el (tutorial--find-changed-keys):
	* lisp/transient.el (transient-suffix-object):
	* lisp/textmodes/rst.el (rst-insert-list-new-item):
	* lisp/textmodes/bibtex.el (bibtex-clean-entry):
	* lisp/tab-bar.el (tab-bar--key-to-number):
	(toggle-frame-tab-bar):
	* lisp/ses.el (ses-recalculate-cell):
	(ses-define-local-printer):
	(ses-prin1):
	* lisp/progmodes/xref.el (xref--find-ignores-arguments):
	* lisp/progmodes/verilog-mode.el (verilog-single-declaration-end):
	* lisp/progmodes/tcl.el (tcl-mode-hook):
	* lisp/progmodes/gdb-mi.el (gdb-get-buffer-create):
	* lisp/progmodes/elisp-mode.el (elisp--xref-make-xref):
	* lisp/play/dunnet.el (dun-room-objects):
	* lisp/outline.el (outline--cycle-state):
	* lisp/org/ox-publish.el (org-publish-find-property):
	* lisp/org/ox-html.el (org-html--unlabel-latex-environment):
	* lisp/org/org-table.el (org-table-collapse-header):
	* lisp/org/org-plot.el (org--plot/prime-factors):
	* lisp/org/org-agenda.el (org-agenda--mark-blocked-entry):
	(org-agenda-set-restriction-lock):
	* lisp/org/ob-lua.el (org-babel-lua-read-string):
	* lisp/org/ob-julia.el (org-babel-julia-evaluate-external-process):
	(org-babel-julia-evaluate-session):
	* lisp/org/ob-core.el (org-babel-default-header-args):
	* lisp/obsolete/mouse-sel.el (mouse-select):
	(mouse-select-secondary):
	* lisp/net/tramp.el (tramp-methods):
	* lisp/net/eww.el (eww-accept-content-types):
	* lisp/net/dictionary-connection.el (dictionary-connection-status):
	* lisp/minibuffer.el (completion-flex--make-flex-pattern):
	* lisp/mh-e/mh-mime.el (mh-have-file-command):
	* lisp/mh-e/mh-limit.el (mh-subject-to-sequence):
	(mh-subject-to-sequence-threaded):
	(mh-subject-to-sequence-unthreaded):
	* lisp/mail/feedmail.el (feedmail-queue-buffer-file-name):
	(feedmail-vm-mail-mode):
	* lisp/ls-lisp.el (ls-lisp--sanitize-switches):
	* lisp/keymap.el (key-valid-p):
	* lisp/international/ccl.el (ccl-compile-branch-blocks):
	* lisp/image/image-converter.el (image-convert):
	* lisp/gnus/spam.el (spam-backend-check):
	* lisp/gnus/nnselect.el (nnselect-generate-artlist):
	* lisp/gnus/nnmairix.el (nnmairix-widget-other):
	* lisp/gnus/message.el (message-mailto):
	* lisp/gnus/gnus-sum.el (gnus-collect-urls-from-article):
	* lisp/gnus/gnus-search.el (gnus-search-prepare-query):
	* lisp/frame.el (frame-size-history):
	* lisp/eshell/esh-var.el (eshell-parse-variable-ref):
	* lisp/eshell/em-dirs.el (eshell-expand-multiple-dots):
	* lisp/erc/erc-backend.el (erc-bounds-of-word-at-point):
	* lisp/emulation/cua-rect.el (cua--rectangle-operation):
	* lisp/emacs-lisp/text-property-search.el (text-property-search-forward):
	* lisp/emacs-lisp/package.el (package-desc-suffix):
	* lisp/emacs-lisp/faceup.el (faceup-test-explain):
	* lisp/emacs-lisp/comp.el (comp-curr-allocation-class):
	(comp-alloc-class-to-container):
	(comp-add-cstrs):
	(comp-remove-type-hints-func):
	(batch-byte+native-compile):
	* lisp/emacs-lisp/cl-macs.el (cl--optimize):
	* lisp/elec-pair.el (electric-pair--syntax-ppss):
	* lisp/doc-view.el (doc-view-doc-type):
	* lisp/cedet/semantic/symref.el (semantic-symref-tool-alist):
	(semantic-symref-hit-to-tag-via-db):
	(semantic-symref-hit-to-tag-via-buffer):
	* lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-get-overlay):
	* lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map):
	* lisp/cedet/semantic/find.el (semantic-brute-find-tag-by-function):
	* lisp/cedet/semantic/db.el (semanticdb-project-predicate-functions):
	* lisp/cedet/semantic.el (semantic-working-type):
	* lisp/cedet/ede/files.el (ede-flush-directory-hash):
	* lisp/calc/calc.el (calc--header-line):
	* lisp/auth-source.el (auth-source-pick-first-password):
	(auth-source--decode-octal-string):
	* etc/themes/modus-themes.el (modus-themes--paren):
	(modus-themes--agenda-habit):
	* admin/cus-test.el (cus-test-vars-with-changed-state): Fix
	quoting in doc strings.  In code examples, the ' character is
	quoted with \\=, and regularize 'foo to `foo', and quote strings
	like "foo" instead of 'foo'.

2022-04-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix map-into doc string example

	* lisp/emacs-lisp/map.el (map-into): Fix quote quoting in example.

2022-04-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-u C-x =' be more verbose about invisible characters

	* lisp/descr-text.el (describe-text-properties-1): Note confusing
	bits about invisible characters (bug#3400).

2022-04-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow completion-ignore-case to be buffer-local

	* lisp/minibuffer.el (completing-read-default): Use the value of
	completion-ignore-case from the current buffer (bug#12615).

2022-04-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix problem with (narrow-to-page 1) with point at point-max

	* lisp/textmodes/page.el (forward-page): Make this work more
	consistently if point is on bol (bug#20663).

2022-04-22  Po Lu  <luangruo@yahoo.com>

	Don't transfer window attributes trying to find the XM drag window

	* src/xterm.c (xm_get_drag_window): Select for impossible event
	mask instead of asking for the window attributes.

2022-04-22  Eli Zaretskii  <eliz@gnu.org>

	Another fix for non-ASCII 'overlay-arrow-string'

	* src/xdisp.c (get_overlay_arrow_glyph_row): Fix yet another place
	that assumed each character is a single byte.

2022-04-22  Po Lu  <luangruo@yahoo.com>

	Fix default frame name on Haiku

	* src/haikufns.c (haiku_set_background_color)
	(haiku_set_cursor_color, haiku_get_pixel, haiku_put_pixel)
	(haiku_set_internal_border_width)
	(haiku_set_inhibit_double_buffering)
	(Fhaiku_mouse_absolute_pixel_position, Fxw_color_defined_p)
	(Fxw_color_values, Fx_double_buffered_p)
	(Fx_display_backing_store): Clean up coding style.
	(haiku_set_name): Use correct default name and don't cons extra
	string all the time.

	* src/haikuterm.c (haiku_read_socket): Remove unused variable.
	(haiku_term_init): Set default name.
	(mark_haiku_display): Mark new field.

	* src/haikuterm.h (struct haiku_display_info): New field
	`default_name'.

2022-04-21  Po Lu  <luangruo@yahoo.com>

	Add an option to disable XI2 for debugging purposes

	* src/xterm.c (handle_one_xevent): Accept resource
	`disableInputExtension', which means to skip setting up the X
	input extension.

2022-04-21  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Handle nil BOB button label

	* lisp/net/eudc-bob.el (eudc-bob-make-button): Do not throw error
	when label is nil.

2022-04-21  Eli Zaretskii  <eliz@gnu.org>

	Avoid a redisplay loop when 'overlay-arrow-string' is non-ASCII

	* src/xdisp.c (get_overlay_arrow_glyph_row): Don't assume every
	character in 'overlay-arrow-string' is one byte long.  Reported by
	Yuri D'Elia <wavexx@thregr.org>.

2022-04-21  Sean Whitton  <spwhitton@spwhitton.name>

	New electric forward slash Eshell module

	* lisp/eshell/em-elecslash.el: New file.
	* etc/NEWS:
	* doc/misc/eshell.texi (Electric forward slash): Document the module.
	(Make / electric): Retitle to "Make / more electric", update, add
	"@noindent", and standardize terminology.

2022-04-21  Sean Whitton  <spwhitton@spwhitton.name>

	Bind 'imenu' to 'M-g i' globally

	Another candidate was 'M-s i'.  Discussion on emacs-devel has led me
	to conclude that most people will find 'M-g i' more intuitive and thus
	easier to memorize.

	* lisp/bindings.el (goto-map): Bind 'imenu' to 'M-g i' globally.
	* etc/NEWS: Document the change.
	* doc/emacs/programs.texi (Imenu):
	* lisp/progmodes/cperl-mode.el: Replace 'M-x imenu' with 'M-g i'.

2022-04-21  Tino Calancha  <tino.calancha@gmail.com>

	Respect user-emacs-directory-warning in startup

	* lisp/startup.el (command-line): If user-emacs-directory is not
	accessible, delay to show a warning until all command line args
	are processed (bug#25163).

2022-04-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow searching for regexps with a prefix

	* doc/misc/info.texi (Search Index): Mention it.

	* lisp/info.el (Info-find-node): Allow not signaling errors.
	(Info-apropos-matches): Allow taking a regexp.
	(info-apropos): Prefix now means looking for a regexp.

2022-04-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix indentation in copy-region-as-kill

	* lisp/simple.el (copy-region-as-kill): Fix indentation.

2022-04-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify cl-incf/decf doc strings

	* lisp/emacs-lisp/cl-lib.el (cl-incf):
	(cl-decf): Clarify that nil isn't a valid value for X (bug#31715).

2022-04-21  Po Lu  <luangruo@yahoo.com>

	* src/haiku_support.cc (gui_abort): Get rid of extern "C" declarations.

2022-04-21  Eli Zaretskii  <eliz@gnu.org>

	Add minimum instructions to 'query-replace' commands

	* lisp/vc/vc-dir.el (vc-dir-query-replace-regexp):
	* lisp/textmodes/reftex-global.el (reftex-query-replace-document):
	* lisp/progmodes/project.el (project-query-replace-regexp):
	* lisp/progmodes/etags.el (tags-query-replace):
	* lisp/progmodes/ebrowse.el (ebrowse-tags-query-replace):
	* lisp/isearch.el (isearch-query-replace, isearch-occur):
	* lisp/emulation/viper-cmd.el (viper-query-replace):
	* lisp/dired-aux.el (dired-do-query-replace-regexp)
	(dired-do-find-regexp-and-replace):
	* lisp/progmodes/xref.el (xref-query-replace-in-results):
	* lisp/replace.el (query-replace, query-replace-regexp)
	(query-replace-regexp-eval, map-query-replace-regexp): Add minimal
	instructions for dealing with matches, with a link to the command
	that shows the full instructions.  (Bug#55050)

2022-04-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Link dired-do-find-regexp-and-replace to query-replace

	* lisp/dired-aux.el (dired-do-find-regexp-and-replace): Link to
	`query-replace' (bug#55050).

2022-04-21  Eli Zaretskii  <eliz@gnu.org>

	Unbreak build with MinGW64.

	* src/w32.c (CONSOLE_FONT_INFO): Define only when _WIN32_WINNT is
	less than _WIN32_WINNT_WINXP, i.e. for building with mingw.org's
	MinGW.

2022-04-21  Andreas Schwab  <schwab@linux-m68k.org>

	gnus: fix %a in topic line

	* lisp/gnus/gnus-topic.el (gnus-topic-insert-topic-line): Also
	bind `entries'.

2022-04-21  Po Lu  <luangruo@yahoo.com>

	Clean up PGTK code some more

	* src/pgtkterm.c (x_alloc_lighter_color): Simplify.  Do not try
	to "allocate" colors, remove unused flag and impossible return
	value.
	(pgtk_clear_frame): Remove unused code from NS port and remove
	incorrect workaround for now-fixed double buffering.
	(pgtk_make_frame_visible_wait_for_map_event_cb)
	(x_clear_glyph_string_rect, x_draw_glyph_string_background)
	(x_draw_glyph_string_foreground)
	(x_draw_composite_glyph_string_foreground)
	(x_draw_glyphless_glyph_string_foreground)
	(x_fill_trapezoid_for_relief, x_erase_corners_for_relief)
	(pgtk_setup_relief_color, x_draw_relief_rect, x_draw_box_rect)
	(x_draw_glyph_string_box, x_get_scale_factor)
	(x_draw_horizontal_wave, pgtk_draw_horizontal_wave)
	(x_draw_underwave, x_draw_image_relief)
	(x_draw_glyph_string_bg_rect, x_cr_draw_image)
	(x_draw_image_foreground, x_draw_image_glyph_string)
	(x_draw_stretch_glyph_string, pgtk_draw_glyph_string)
	(x_draw_hollow_cursor, x_draw_bar_cursor, pgtk_draw_window_cursor)
	(pgtk_cr_draw_image, pgtk_draw_fringe_bitmap, hourglass_cb)
	(pgtk_show_hourglass, pgtk_redraw_scroll_bars, pgtk_flash)
	(x_create_toolkit_scroll_bar)
	(x_create_horizontal_toolkit_scroll_bar, x_scroll_bar_create)
	(x_scroll_bar_remove, pgtk_set_vertical_scroll_bar)
	(pgtk_set_horizontal_scroll_bar, pgtk_judge_scroll_bars)
	(x_new_focus_frame, x_focus_changed, enter_notify_event)
	(leave_notify_event, focus_in_event, focus_out_event)
	(pgtk_cr_accumulate_data): Clean up coding style, rename
	functions copied over from X and modified, and remove duplicate
	definition of at least one function.

2022-04-21  Po Lu  <luangruo@yahoo.com>

	Don't leave xm drag initiator info around

	* src/xterm.c (x_cleanup_drag_and_drop)
	(x_begin_drag_and_drop): Don't confuse GTK+ 2.x by leaving drag
	initiator info around after DND completes.

2022-04-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	dbb2dd6939 ; Fix wording of "File Notifications" in the ELisp manual

2022-04-20  Po Lu  <luangruo@yahoo.com>

	Use a cache on Haiku to avoid constantly reading fonts during font lookup

	* src/haiku_font_support.cc (struct font_object_cache_bucket):
	New struct.
	(language_code_points): Make `int'.
	(hash_string): New function.
	(cache_font_object_data, lookup_font_object_data)
	(font_object_has_chars): New functions.
	(font_check_wanted_chars, font_check_one_of)
	(font_check_language): Lookup in cached font object instead.
	(be_init_font_data, be_evict_font_cache): New functions.

	* src/haiku_support.h (struct haiku_font_pattern): Make
	`uint32_t's ints instead.
	* src/haikufont.c (haikufont_apply_registry, syms_of_haikufont):
	Adjust for those changes.

	* src/haikuterm.c (haiku_frame_up_to_date): Clear font lookup
	cache every 50 updates.

2022-04-20  Po Lu  <luangruo@yahoo.com>

	Make some frame params work on Haiku tooltip frames

	* src/haiku_support.cc (RecomputeFeel): Handle tooltips.
	(BWindow_set_tooltip_decoration): Use RecomputeFeel instead of
	setting window feel by hand.

2022-04-20  Paul Eggert  <eggert@cs.ucla.edu>

	More encode-time pitfall doc fixes

	* doc/lispref/os.texi (Time Conversion): Improve discussion of
	encode-time pitfalls based on comments by Max Nikulin (Bug#54764#63).

2022-04-20  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'scheme-indent-function' property

	* lisp/progmodes/scheme.el: Extend and clarify the commentary
	regarding the 'scheme-indent-function' property of special forms.

2022-04-20  Jean Abou Samra  <jean@abou-samra.fr>  (tiny change)

	Define indentation behavior for a few more special Scheme forms

	* lisp/progmodes/scheme.el: Define 'scheme-indent-function'
	property for 'and-let*', 'with-syntax', 'eval-when;, and
	pattern matching macros.  (Bug#55033)

2022-04-20  Po Lu  <luangruo@yahoo.com>

	Implement `below' z-group on Haiku

	* src/haiku_support.cc (BWindow_set_z_group): Handle
	Z_GROUP_BELOW by setting the B_AVOID_FRONT flag.

2022-04-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure forward progress in bibtex-map-entries

	* lisp/textmodes/bibtex.el (bibtex-map-entries): Ensure forward
	progress (bug#55036).

2022-04-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix the outline level in the Emacs NEWS modes

	* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): Fix
	the outline level (bug#54993).

2022-04-20  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix build for --enable-checking=structs

	* src/pdumper.c (dump_subr): Update Lisp_Subr hash after last change
	of 2022-04-18 "Port struct Lisp_Subr to C99".

2022-04-20  Po Lu  <luangruo@yahoo.com>

	Reset Motif DND protocol numbers when writing targets table

	* src/xterm.c (xm_setup_dnd_targets): Set header.protocol to 0
	when writing table.

2022-04-20  Po Lu  <luangruo@yahoo.com>

	Implement `above' z-group on Haiku

	* src/haiku_support.cc (class EmacsWindow): New field `z_group'.
	(RecomputeFeel): New function.
	(ParentTo, BWindow_set_override_redirect): Use that instead
	instead of manually juggling the window feel around.
	(BWindow_set_z_group): New function.

	* src/haiku_support.h (enum haiku_z_group): New enum.
	* src/haikufns.c (haiku_set_parent_frame): Clean up coding
	style.
	(haiku_set_z_group): New function.
	(haiku_create_frame): Always set z group after window creation,
	like on X.
	(haiku_frame_parm_handlers): Add `haiku_set_z_group'.

2022-04-19  Po Lu  <luangruo@yahoo.com>

	Fix enabling menu bar multiple times on Haiku

	* src/haiku_support.cc (FrameResized): Adjust width and height
	appropriately when sending menu bar resize event.
	* src/haikufns.c (haiku_set_menu_bar_lines): Don't always reset
	FRAME_MENU_BAR_LINES and FRAME_MENU_BAR_HEIGHT.
	* src/haikumenu.c (free_frame_menubar): Clear Haiku menu bar.
	(set_frame_menubar): Fix coding style.
	* src/haikuterm.c (haiku_read_socket): Don't adjust height here
	anymore.

2022-04-19  Paul Eggert  <eggert@cs.ucla.edu>

	Update from gnulib

2022-04-19  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -std=c99 with printf %p

	* src/print.c (print_vectorlike): Assign pointer-to-function
	to void * before printing it with %p, as the C standard
	doesn’t bless printing function pointers with %p.

2022-04-19  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -std=c99

	* src/sysdep.c (system_process_attributes): Use %llu instead of
	%Lu for sscanf, as %llu is standard and %Lu is not, and the latter
	can provoke warnings if gcc is used pedantically.

2022-04-19  Po Lu  <luangruo@yahoo.com>

	Check for integer overflow when writing Motif targets tables

	* src/xterm.c (xm_setup_dnd_targets): Check for integer overflow
	when adding list to target table.

2022-04-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix previous description of fallback order

	* doc/emacs/custom.texi (Specifying File Variables): Document
	fallback mode order.

2022-04-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Document how to specify fallback modes

	* doc/emacs/custom.texi (Specifying File Variables): Document
	fallback mode order.

2022-04-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix regression with multiple mode: entries in the prop line

	* lisp/files.el (hack-local-variables--find-variables): Use the
	final mode: line (which is the same as having several mode: bits
	in the header line.

2022-04-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow several mode: elements in the local variable section

	* etc/NEWS (mode): Fall back on outline-mode in older Emacsen.
	* lisp/files.el (hack-local-variables--find-variables): Use the
	final mode: line (which is the same as having several mode: bits
	in the header line.

2022-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix GCC warnings when CHECK_LISP_OBJECT_TYPE

	* src/lisp.h (lisp_h_Qni): New macro.
	(DEFUN): Use it.
	* src/alloc.c (syms_of_alloc): Use it.

	* src/bytecode.c (Fbyte_code): Fix Lisp_Object/int mixup.

2022-04-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert prompting changes in viper-cmd

	* lisp/emulation/viper-cmd.el (viper-quote-region)
	(viper-read-string-with-history, viper-query-replace): Revert
	prompting changes done in 50512e3 -- the way viper prompts in
	command mode is special (bug#55007).

2022-04-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Be more resilient against invalid headers in mml-generate-mime

	* lisp/gnus/mml.el (mml-generate-mime): Don't bug out when called
	with invalid headers (bug#55014).

2022-04-19  Philip Kaludercic  <philipk@posteo.net>

	Fix handling of intspecs as string by rcirc-define-command

	* rcirc.el (rcirc-define-command): Check if an interactive
	  specification is a string, in which case it was to be wrapped in a
	  list so that the result of its interpretation is passed as the first
	  argument of the command resulting from the macro expansion.

2022-04-19  Po Lu  <luangruo@yahoo.com>

	Fix `x-mouse-click-focus-ignore-position' for odd coincidences across displays

	* src/xterm.c (handle_one_xevent): Save the display alongside
	the next mouse click timeout.
	(x_delete_display): Clear that display here if applicable.
	(x_initialize): Likewise.

2022-04-19  Eli Zaretskii  <eliz@gnu.org>

	Fix dimensions of console window of restarted Emacs on MS-Windows

	* src/w32.c (get_console_font_size): New function.
	(w32_reexec_emacs): Call 'get_console_font_size' to set up the
	dimensions of the restarted Emacs's console window to the same
	values as that of the original Emacs.

2022-04-19  Po Lu  <luangruo@yahoo.com>

	Deal with Motif drag window related races

	* src/xterm.c (xm_drag_window_error_handler): New function.
	(xm_get_drag_window): If a drag window was created and we have
	the temp display grabbed, use that instead.

2022-04-19  Po Lu  <luangruo@yahoo.com>

	Minor cleanups to Haiku menu code

	* src/haiku_draw_support.cc (BView_SetHighColorForVisibleBell):
	Delete function.
	* src/haiku_font_support.cc (BFont_dat): Rename to
	`BFont_metrics'.
	* src/haiku_support.cc (DrawContent): Use correct UI color for
	control text.
	* src/haiku_support.h (HAIKU_MODIFIER_ALT): Turn into enum.
	(enum haiku_modifier_specification): New enum.
	* src/haikufont.c (haikufont_open, haikufont_close): Fix coding
	style.

2022-04-18  Po Lu  <luangruo@yahoo.com>

	Fix last change for GTK 2

	* src/xfns.c (x_set_alpha_background):
	* src/xterm.c (x_update_opaque_region): Move some ifdefs around.

2022-04-18  Po Lu  <luangruo@yahoo.com>

	Fix opaque region treatment on GTK 3

	* src/xfns.c (x_set_alpha_background):
	* src/xterm.c (x_update_opaque_region): Update opaque region for
	tooltip frames the correct way on GTK.

2022-04-18  Paul Eggert  <eggert@cs.ucla.edu>

	Port struct Lisp_Subr to C99

	* src/lisp.h (struct Lisp_Subr): Don’t use an anonymous union,
	a feature missing from C99 and not supported by older OS X.
	All uses changed.

2022-04-18  Paul Eggert  <eggert@cs.ucla.edu>

	Port module_bignum_count_max to strict C

	* src/emacs-module.c (module_bignum_count_max): Make
	this a macro, not an enum, since it might not fit into
	int as C99 requires.

2022-04-18  Sean Whitton  <spwhitton@spwhitton.name>

	Tell those using exclusively X not to use the PGTK port

	* INSTALL (Alternative window systems): Tell those using exclusively X
	not to use the PGTK port.

2022-04-18  Po Lu  <luangruo@yahoo.com>

	Fix display of glyphless characters on Haiku

	* src/haikuterm.c (haiku_draw_glyph_string_foreground): Fix pen
	size when drawing composite string w/o font.
	(haiku_draw_glyphless_glyph_string_foreground): Correctly
	display glyphless character rectangle.

2022-04-18  Paul Eggert  <eggert@cs.ucla.edu>

	Use "@code{nil}" in documentation

2022-04-18  Paul Eggert  <eggert@cs.ucla.edu>

	Remove obsolete footnote

	Emacs no longer warns about timestamps like (1 . 1000).

2022-04-18  Alan Third  <alan@idiocy.org>

	Fix glyphless glyph display on NS (bug#54970)

	* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): New
	function.
	(ns_draw_glyph_string): Use the new function.
	* src/nsfont.m (nsfont_draw): Fix the location the glyphs are drawn,
	and also which glyphs are drawn.
	(ns_glyph_metrics): Reverse ascent and descent.

2022-04-18  Eli Zaretskii  <eliz@gnu.org>

	Minor improvements in 'restart-emacs' on MS-Windows

	* src/w32.c (w32_reexec_emacs): Explicitly request a new console
	for the restarted Emacs -nw, and specify its dimensions.  Specify
	NULL instead of security attributes, per examples on the Internet.
	* src/w32console.c (initialize_w32_display): Check errors in call
	to GetConsoleCursorInfo.

2022-04-18  Alan Mackenzie  <acm@muc.de>

	Byte compiler: correct output warning message positions

	Correct the algorithm for determining the warning position to get the first
	symbol-with-position in byte-compile--form-stack.

	* lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos): Function
	renamed and amended from byte-compile--first-symbol.
	(byte-compile--warning-source-offset): Call the new function above rather than
	the old one.

2022-04-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Make isearch-lax-whitespace a user option

	* lisp/isearch.el (isearch-lax-whitespace): Make into a defcustom
	(bug#20351).

2022-04-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid hangs in python-mode with debug-on-error set

	* lisp/progmodes/python.el (python-nav-end-of-statement): Avoid
	using cl-assert here, because this is called from the font-lock
	machinery, and if debug-on-error is set here, we'll hang Emacs
	(bug#54996).

2022-04-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Make it easier to use Emacs as a script interpreter

	* doc/emacs/cmdargs.texi (Initial Options): Document -x.
	* lisp/startup.el (command-line-1): Add new -scripteval.
	(command-line--eval-script): New function.

	* src/emacs.c (main): Transform -x to -scripteval.
	(standard_args): Add -x (bug#20682).

2022-04-18  Po Lu  <luangruo@yahoo.com>

	Add missing Motif atoms

	* src/xselect.c (symbol_to_x_atom):
	(x_atom_to_symbol):
	(syms_of_xselect): Optimize for XmTRANSFER_SUCCESS and
	XmTRANSFER_FAILURE as well.

2022-04-18  Alan Mackenzie  <acm@muc.de>

	Byte compiler: remove symbol positions from byte-switch tables

	This fixes bug #54990.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): Remove positions from
	symbols with positions in byte-switch tables, by temporarily removing the
	entries from the table, and reinserting them amended.

2022-04-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up view-emacs-news code

	* lisp/help.el (view-emacs-news): Remove workaround after fixing
	mode: cookie error.

2022-04-18  Nacho Barrientos  <nacho.barrientos@cern.ch>  (tiny change)

	Unify local variable initialization in url-http

	* lisp/url/url-http.el (url-http-chunked-last-crlf-missing): Treat
	url-http-chunked-last-crlf-missing as any other buffer variable by
	declaring and initializing it the same way as the other related
	ones (bug#54989).

2022-04-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `restart-emacs' work when Emacs is started with --chdir

	* src/emacs.c (find_emacs_executable): Rename from
	load_pdump_find_executable and always define.
	(load_pdump): Return the executable.
	(main): Store the executable.
	(Fkill_emacs): Use the stored executable so that --chdir works
	with relative executable names, and so that we attempt to restart
	the same executable and not some other Emacs from PATH.

2022-04-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve `restart-emacs' error reporting

	* src/emacs.c (Fkill_emacs): Do better error reporting on restarting.

2022-04-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Make "restart" erroring slightly more reliable

	* src/emacs.c (Fkill_emacs): Use emacs_perror for the "restart"
	errors -- we've already shut down Emacs at this point, so the
	normal erroring machinery isn't reliable.

2022-04-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix major-mode setting regression when there's a mode: cookie

	* lisp/files.el (hack-local-variables): Fix regression in setting
	the major mode when there are mode: cookies in the file (bug#54993).

2022-04-18  Po Lu  <luangruo@yahoo.com>

	Stop skipping ShapeNotify events during DND on GTK+

	* src/xterm.c (handle_one_xevent): Don't skip ShapeNotify events
	because we can't send these events back to GDK manually.

2022-04-18  Po Lu  <luangruo@yahoo.com>

	Clarify computation of header line vpos

	* src/dispnew.c (update_text_area): Test vpos is more than 1
	only if is both a tab and header line.  Reported by Eli
	Zaretskii <eliz@gnu.org>.

2022-04-18  Eli Zaretskii  <eliz@gnu.org>

	Fix 'restart-emacs' in -nw mode on MS-Windows

	* src/w32.c (openat): #ifdef away: not used.
	(w32_reexec_emacs): Kludgey solution for restarting Emacs in the
	"-nw" mode.

2022-04-18  Po Lu  <luangruo@yahoo.com>

	Fix glyph skipping optimization when a tab line is enabled

	* src/dispnew.c (update_text_area): Compute vpos of header line
	correctly when window has tab line.

2022-04-17  Po Lu  <luangruo@yahoo.com>

	Minor cleanups to PGTK code

	* src/gtkutil.c (xg_set_geometry):
	(xg_frame_set_char_size):
	(x_wm_set_size_hint): Rename to `xg_wm_set_size_hint'.  All
	callers changed.
	* src/gtkutil.h: Update prototypes.
	* src/pgtkfns.c (unwind_create_frame):
	(Fx_create_frame):
	(compute_tip_xy):
	* src/pgtkterm.c (x_free_frame_resources):
	(x_destroy_window):
	(x_calc_absolute_position):
	(x_set_offset):
	(pgtk_set_window_size):
	(x_display_pixel_height):
	(x_display_pixel_width):
	(x_set_parent_frame): Rename `x_foo' functions to `pgtk_foo'.
	Get rid of some copy-pasted code from various places.
	(pgtk_create_terminal): Clean up coding style.
	* src/pgtkterm.h: Update prototypes.

2022-04-17  Paul Eggert  <eggert@cs.ucla.edu>

	Port sqlite.c to OS X 10.6.8 with Xcode 3.2.6

	Problem reported by Keith David Bershatsky in:
	https://lists.gnu.org/r/emacs-devel/2022-04/msg00923.html
	* src/sqlite.c (Fsqlite_open): Don’t assume SQLITE_OPEN_MEMORY
	is defined.

2022-04-17  Po Lu  <luangruo@yahoo.com>

	Fix Haiku menu bars when redisplay happens immediately after activation

	* src/haiku_support.cc (MessageReceived): Make `REPLAY_MENU_BAR'
	messages synchronous.
	(be_replay_menu_bar_event): Return whether or not the menu bar
	really opened.
	* src/haiku_support.h: Update prototypes.
	* src/haikumenu.c (haiku_activate_menubar): Immediately activate
	menu bar after replaying event.

2022-04-17  Po Lu  <luangruo@yahoo.com>

	Some minor fixes to Motif DND support

	* src/xterm.c (xm_write_drag_initiator_info): Swap cardinal
	values if wrong byteorder.
	(xm_setup_dnd_targets): Read LONG_MAX amount of drag targets.

2022-04-17  Paul Eggert  <eggert@cs.ucla.edu>

	Merge from origin/emacs-28

	65c04e7115 Update to Org 9.5.2-38-g682ccd

2022-04-17  Paul Eggert  <eggert@cs.ucla.edu>

	Merge from origin/emacs-28

	3cccf0a910 Don’t assume openat

2022-04-17  Jim Porter  <jporterbugs@gmail.com>

	Fix Eshell predicate tests when running from 'make check'

	* test/lisp/eshell/em-pred-tests.el (eshell-partial-let-func): Get
	original function after macro-expansion.

2022-04-17  Kyle Meyer  <kyle@kyleam.com>

	Update to Org 9.5.2-38-g682ccd

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Make desktop.el use local-minor-modes when saving

	* lisp/desktop.el (desktop-buffer-info): Use a more reliable way
	to get minor modes (bug#29972).

2022-04-17  Paul Eggert  <eggert@cs.ucla.edu>

	Don’t assume openat

	Use openat only on platforms with O_PATH.
	This ports to OS X 10.9 and earlier.
	Problem reported by Keith David Bershatsky in:
	https://lists.gnu.org/r/emacs-devel/2022-04/msg00805.html
	* lib-src/emacsclient.c (local_sockname): Use open, not openat.
	* src/sysdep.c (sys_openat): New static function,
	which uses openat only if O_PATH is defined.
	(emacs_openat): Use it instead of openat.
	(emacs_openat_noquit): Remove.
	(emacs_open_noquit): Reimplement as per the old emacs_openat_noquit,
	but use plain 'open'.

2022-04-17  Eli Zaretskii  <eliz@gnu.org>

	Improve the support for the Brahmi script

	* lisp/leim/quail/indian.el ("brahmi"): New input method.
	* lisp/language/indian.el ("Brahmi"): Add sample-text and
	input-method.  (Bug#54914)

	* etc/NEWS: Mention the brahmi input method.
	* etc/HELLO: Add a Brahmi greeting.

2022-04-17  kobarity  <kobarity@gmail.com>  (tiny change)

	Fix fontifying type hints in python-mode

	* lisp/progmodes/python.el
	(python-font-lock-keywords-maximum-decoration): Avoid fontifying
	type hints as variable names (bug#54992).

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow editing variable values in *Help* buffers

	* lisp/help-fns.el (help-enable-variable-value-editing): New user
	option.
	(describe-variable): Tag values for editing.
	(help-fns--editable-variable, help-fns-edit-variable): New
	functions (bug#36826).
	(help-fns--edit-value-mode-map, help-fns--edit-value-mode)
	(help-fns-edit-mode-done): New mode and commands.

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Make :filters run in the correct buffer in describe-buffer-bindings

	* lisp/help.el (describe-map-tree): Take an optional buffer parameter.
	(describe-map): Ditto, and use it to run `lookup-key' in the
	correct buffer.  This fixes problems of filters being run in the
	wrong buffer (bug#39149).

	* src/keymap.c (Fdescribe_buffer_bindings): Pass in BUFFER to
	describe-map-tree.

2022-04-17  Eli Zaretskii  <eliz@gnu.org>

	Fix 'restart-emacs' on MS-Windows

	* src/w32.c (w32_reexec_emacs): New function, emulation of
	'execvp' on Posix systems.
	* src/w32.h (w32_reexec_emacs): Add prototype.
	* src/emacs.c (main) [WINDOWSNT]: Save the original command line
	and working directory.
	(Fkill_emacs) [WINDOWSNT]: Call 'w32_reexec_emacs' instead of
	'execvp'.  (Bug#17036)

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a `restart-emacs' sanity check

	* src/emacs.c (Fkill_emacs): Add a sanity check for argv.

2022-04-17  Po Lu  <luangruo@yahoo.com>

	Handle bad actual actions during DND

	* src/xterm.c (x_dnd_begin_drag_and_drop): Behave correctly when
	the target gives us a bad atom.

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Check whether we can restart in Fkill_emacs

	* src/emacs.c (Fkill_emacs): Report an error if we can't restart.

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Explain what "pending" means in isearch

	* doc/emacs/search.texi (Regexp Search): Explain what "Pending"
	usually means (bug#10148).

2022-04-17  Philip Kaludercic  <philipk@posteo.net>

	Handle connection errors in rcirc-keepalive

	* rcirc.el (rcirc-reconnect-delay): Declare variable before it is
	defined.
	(rcirc-keepalive): Handle rcirc-closed-connection, respecting
	rcirc-reconnect-delay.
	(rcirc-closed-connection): Add new error type.
	(rcirc-send-string): Throw rcirc-closed-connection instead of a
	generic error.

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function `flush-standard-output'.

	* doc/lispref/streams.texi (Output Functions): Document it.
	* src/print.c (Fflush_standard_output): New function (bug#15180).

2022-04-17  Philip Kaludercic  <philipk@posteo.net>

	Further improve buffer-match-p related documentation

	* doc/lispref/buffers.texi (Buffer List): Add entries for
	buffer-match-p and match-buffers.
	* etc/NEWS: Give examples for buffer-match-p conditions.
	* lisp/window.el (display-buffer-assq-regexp): Mention what happens
	when no entry in the alist satisfies a condition.

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new command `restart-emacs'

	* doc/lispref/os.texi (Killing Emacs): Document it.

	* lisp/files.el (save-buffers-kill-emacs): Add new RESTART parameter.
	(restart-emacs): New function.

	* src/emacs.c (terminate_due_to_signal, Fkill_emacs): Take an
	optional RESTART parameter.

	* test/lisp/files-tests.el
	(files-tests-save-buffers-kill-emacs--confirm-kill-processes):
	* src/xterm.c (x_connection_closed):
	* src/xsmfns.c (Fhandle_save_session):
	* src/keyboard.c (Fcommand_error_default_function, command_loop)
	(command_loop_1, read_menu_command, read_event_from_main_queue)
	(read_key_sequence, quit_throw_to_read_char):
	* src/eval.c (process_quit_flag): Adjust Fkill_emacs callers.

2022-04-17  Nacho Barrientos  <nacho.barrientos@cern.ch>  (tiny change)

	Fix chunked encoding connections in url-http

	* lisp/url/url-http.el
	(url-http-chunked-encoding-after-change-function): Ensure that chunked
	encoding is interpreted correctly (bug#54989).

	As per [0], the last chunk of 0 bytes is always accompanied by a last
	CRLF that signals the end of the message:

	     chunked-body   = *chunk
	                      last-chunk
	                      trailer-part
	                      CRLF
	                      ^ this one

	     chunk          = chunk-size [ chunk-ext ] CRLF
	                      chunk-data CRLF
	     chunk-size     = 1*HEXDIG
	     last-chunk     = 1*("0") [ chunk-ext ] CRLF

	     chunk-data     = 1*OCTET ; a sequence of chunk-size octets

	`url-http-chunked-encoding-after-change-function' is able to process
	(and remove) that terminator IF AVAILABLE in the buffer when
	processing the response, however it won't wait for it if it's not yet
	there.

	In other words:

	| Bottom of the response buffer | Bottom of the full response |
	|    (visible to url-http)      | (to be delivered to Emacs)  |
	| ------------------------------+-----------------------------|
	| 0\r\n                         | 0\r\n                       |
	|                               | \r\n                        |

	If the last chunk is processed when the bottom of the response buffer
	is as above (note that the whole response has not yet been delivered
	to Emacs), url-http will call the user callback without waiting for
	the final terminator to be read from the socket.

	This is normally not an issue when doing one-shot requests, but it's
	problematic when the connection is reused immediately. As there are 2
	bytes from the request N that have not been dealt with, they'll be
	considered as part of the response of the request N+1. On top, it
	turns out that when processing the headers of request N+1,
	`url-http-wait-for-headers-change-function' will consider the request
	a "headerless malformed response" delivering it broken to the caller.

	The proposed fix implements a state in which
	`url-http-chunked-encoding-after-change-function` properly waits for
	the very last element of the message preventing the problem explained
	above from happening.

	For additional context, this bug was found when debugging
	magit/ghub (see [1] for details).

	[0] https://datatracker.ietf.org/doc/html/rfc7230#section-4.1
	[1] https://github.com/magit/ghub/issues/81

2022-04-17  Oleh Krehel  <ohwoeowho@gmail.com>

	Remove duplicates from Info-read-node-name-2

	* lisp/info.el (Info-read-node-name-2): Remove duplicates from
	completions (bug#20365).

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix instructions on how to enable password-store

	* doc/misc/auth.texi (Help for users): Give the correct
	instructions on how to enable password store (bug#30900).

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify setopt NEWS entry

	Do some NEWS tagging

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a doc string to xref-current-item

	* lisp/progmodes/xref.el (xref-after-jump-hook): Link to it.
	(xref-current-item): Add a doc string to the now-public variable.

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify emacs-news--heading-p logic

	* lisp/textmodes/emacs-news-mode.el (emacs-news--heading-p):
	Clarify the logic.

2022-04-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Move some entries around in the NEWS file

	Fix up the NEWS entry for emacs-news*-mode

2022-04-17  Paul Eggert  <eggert@cs.ucla.edu>

	* src/filelock.c (Fcreate_lockfiles): Doc string fix.

2022-04-17  Paul Eggert  <eggert@cs.ucla.edu>

	Merge from origin/emacs-28

	4641bc1c55 Fix GC bug in filelock.c

2022-04-17  Po Lu  <luangruo@yahoo.com>

	Fix race conditions waiting for menu bar resize events on Haiku

	* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
	Clear `wait_for_event_type'.
	(haiku_set_menu_bar_lines): Clean up coding style.
	* src/haikuterm.c (haiku_wait_for_event): New function.
	(haiku_read_socket): Implement waiting for MENU_BAR_RESIZE
	events.
	* src/haikuterm.h (struct haiku_output): New field
	`wait_for_event_type'.

2022-04-17  Po Lu  <luangruo@yahoo.com>

	Fix race conditions waiting for menu bar resize events on Haiku

	* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame)
	(haiku_set_menu_bar_lines): Clear `wait_for_event_type'.
	* src/haikumenu.c (set_frame_menubar): Wait for menu bar resize
	event.
	* src/haikuterm.c (haiku_wait_for_event): New function.
	(haiku_read_socket): Handle waiting for MENU_BAR_RESIZE.
	* src/haikuterm.h (struct haiku_output): New field
	`wait_for_event_type'.

2022-04-17  Po Lu  <luangruo@yahoo.com>

	Get rid of unused flags on Haiku

	* src/haikufns.c (haiku_free_frame_resources): Syntax fixes.
	* src/haikumenu.c (set_frame_menubar, run_menu_bar_help_event):
	* src/haikuterm.c (haiku_read_socket): Stop setting and
	consulting `menu_up_to_date_p'.
	* src/haikuterm.h (struct haiku_output): Delete
	`menu_up_to_date_p'.

2022-04-17  Po Lu  <luangruo@yahoo.com>

	* src/haikufns.c (haiku_free_frame_resources): Free saved menu event.

2022-04-17  Po Lu  <luangruo@yahoo.com>

	Fix hangs when clicking on Haiku menu bar to activate frame

	* src/haiku_io.c (haiku_len): Handle new event `MENU_BAR_CLICK'.
	* src/haiku_support.cc (class EmacsWindow): Remove most of the
	menu bar cv stuff.
	(MessageReceived): Handle REPLAY_MENU_BAR message.
	(EmacsWindow_signal_menu_update_complete): Delete function.
	(be_replay_menu_bar_event): New function.

	* src/haiku_support.h (enum haiku_event_type): New event type
	`MENU_BAR_CLICK'.
	(struct haiku_menu_bar_click_event): New struct.

	* src/haikumenu.c (haiku_activate_menubar): New function.
	* src/haikuterm.c (haiku_read_socket): Save a
	MENU_BAR_ACTIVATE_EVENT and the menu bar click event instead of
	handling the menu bar update synchronously.
	(haiku_create_terminal): Set `activate_menubar_hook'.
	(syms_of_haikuterm): Remove extraneous newline.

	* src/haikuterm.h (struct haiku_output): New field
	`saved_menu_event'.

2022-04-17  Paul Eggert  <eggert@cs.ucla.edu>

	Fix GC bug in filelock.c

	Fix a bug where if GC occurred at the wrong moment when locking a
	file, the lock file’s name was trashed so file locking did not work.
	This bug was introduced in Emacs 28.1.  The bug sometimes caused
	filelock-tests-detect-external-change test failures on Fedora 35
	x86-64 in an en_US.utf8 locale.
	* src/filelock.c (lock_file_1, current_lock_owner, lock_if_free)
	(lock_file, unlock_file, Ffile_locked_p):
	Use Lisp_Object, not char *, for string, so that GC doesn’t trash
	string contents.
	(make_lock_file_name): Return the encoded name, not the original.
	All callers changed.

2022-04-17  Jim Porter  <jporterbugs@gmail.com>

	Add 'G' argument predicate in Eshell

	* lisp/eshell/em-pred.el (eshell-predicate-alist): Add 'G' predicate.
	(eshell-predicate-help-string): Document it.  (Bug#54470)

	* test/lisp/eshell/em-pred-tests.el
	(em-pred-test/predicate-effective-gid): New test.

	* doc/misc/eshell.texi (Argument Predication): Document 'G' predicate.

2022-04-17  Jim Porter  <jporterbugs@gmail.com>

	Add unit tests and documentation for Eshell predicates/modifiers

	* lisp/eshell/esh-cmd.el (eshell-eval-argument): New function.
	* lisp/eshell/esh-util.el (eshell-file-attributes): Pass original
	value of FILE to 'file-attributes'.
	* lisp/eshell/em-pred.el (eshell-predicate-alist): Change socket char
	to '=', since 's' conflicts with setuid.
	(eshell-modifier-alist): Fix 'E' (eval) modifier by using
	'eshell-eval-argument'.  Also improve performance of 'O' (reversed
	sort) modifier.
	(eshell-modifier-help-string): Fix documentation of global
	substitution modifier.
	(eshell-pred-substitute): Fix infinite loop in some global
	substitutions.
	(eshell-join-members): Fix joining with implicit " " delimiter.
	(Bug#54470)

	* test/lisp/eshell/em-pred-tests.el: New file.

	* doc/misc/eshell.texi (Argument Predication): New section.

2022-04-17  Jim Porter  <jporterbugs@gmail.com>

	Add unit tests and documentation for Eshell pattern-based globs

	* lisp/eshell/em-glob.el (eshell-extended-glob): Fix docstring.
	(eshell-glob-entries): Refer to '**/' in error (technically, '**' can
	end a glob, but it means the same thing as '*').  (Bug#54470)

	* test/lisp/eshell/em-glob-tests.el: New file.

	* doc/misc/eshell.texi (Globbing): Document pattern-based globs.

2022-04-17  Po Lu  <luangruo@yahoo.com>

	Make sure the ftcr font driver is used on Haiku when Cairo is enabled

	* src/haikufont.c (syms_of_haikufont): [USE_BE_CAIRO]: Make sure
	`ftcr' supersedes `haiku'.

2022-04-16  Paul Eggert  <eggert@cs.ucla.edu>

	Document encode-time caveats

	* doc/lispref/os.texi (Time of Day, Time Conversion):
	Move the warnings about DST being -1 to closer to where DST is
	discussed, and reword and improve the discussions and warnings.
	Be more precise about years before 1969 (possible west of UTC) vs the
	Epoch.  Mention some problems due to leap seconds, leap years,
	daylight saving transitions, and time zone changes.  Modernize
	discussion of OS timestamp range.  Prefer secular ‘BCE’ to religious
	‘BC’.  Omit discussion of decoded-time-add and make-decoded-time, as
	they are in a library and are not always available; instead, mention
	the library.  Warn about common mistakes when doing simple date
	arithmetic.
	* src/timefns.c (Fencode_time): In doc string, mention date
	arithmetic and tighten up the wording a bit.

2022-04-16  Max Nikulin  <manikulin@gmail.com>

	Stress difference of new and old ways to call `encode-time'

	* doc/lispref/os.texi (Time Conversion): Add a warning that blind
	changing of code calling `encode-time' to use single list instead of
	multiple values may cause deferred bugs since it is common to use nil
	for ignored arguments such as DST in the old calling convention.
	* src/timefns.c (encode-time): Mention the warning added to the elisp
	reference in the docstring.

	Refactoring related to `encode-time' caused (bug#54731), so it is better
	to make apparent the difference between the recommended and the
	obsolescent ways to call the function.  More details concerning the
	purpose and limitations of the DST field are added after discussion with
	Paul Eggert in (bug#54764).

2022-04-16  Po Lu  <luangruo@yahoo.com>

	Restore pending_signals at a point in the DND event loop

	* src/xterm.c (x_dnd_begin_drag_and_drop): Restore
	pending_signals after unblock_input.

2022-04-16  Earl Hyatt  <okamsn@protonmail.com>

	Add basic Texinfo support for Flymake.

	* lisp/textmodes/texinfo.el (texinfo-flymake, texinfo--flymake-proc)
	(texinfo-mode):
	Add the functions texinfo-flymake and process variable
	texinfo--flymake-proc.  Modify texinfo-mode to automatically add this
	function to the hook flymake-diagnostic-functions.

2022-04-16  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	d53c999b4a Further vcs-cvs/rcs-responsible-p updates from master
	dc3d1628ec ; * src/sysdep.c: Fix mistake in previous commit
	855e15dbf1 Fix builds on older versions of macOS
	9da744e450 Fix documentation of Outline minor mode options
	a8bb12ab05 Improve discoverability of 'insert-directory-program'
	3f166bdf44 ; * etc/PROBLEMS: Describe MS-Windows issues with fonts.  ...
	803ac857ee Fix cursor motion under truncate-lines with Flymake fringe...

	# Conflicts:
	#	etc/PROBLEMS
	#	lisp/outline.el
	#	src/sysdep.c

2022-04-16  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	b201823f63 Describe problems with invoking Python on MS-Windows
	880f2734c9 A better fix for bug#54800
	5ee959aa87 Add a comment about cl-concatenate
	ab2b822b9b Revert "Make cl-concatenate an alias of seq-concatenate"

2022-04-16  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	5e47d6284b * lisp/gnus/mm-encode.el (mm-default-file-encoding): Fix "...
	e71c7a7c60 Fix default-directory of buffers visiting files in renamed...
	cccaa9c31d Fix a kill-append regression
	33828e4818 * doc/misc/eww.texi (Advanced): Correct outdated info (bug...
	e8d2f40f41 Clean up the MSDOS port
	338eda09d8 Fix typo in next-error-find-buffer-function

	# Conflicts:
	#	doc/misc/eww.texi

2022-04-16  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	84a2857722 Fix scrolling of the stack window in Calc
	9dd44505b1 ; * src/window.c (Fset_window_start): Clarify the effect o...
	24a6c7c8c0 Update and fix instructions and scripts for updating the W...
	886339747b Extend tramp-archive-test45-auto-load
	ff997ad786 Ensure local `default-directory' in Tramp when needed
	4f27588a16 Clarify "idleness" in the ELisp manual

2022-04-16  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	aab36e1895 Fix error in tramp-archive-autoload-file-name-handler
	11a1f7817e Merge branch 'emacs-28' of git.sv.gnu.org:/srv/git/emacs i...
	93974198b6 Commit missing file from previous commit

2022-04-16  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	8c71ac606e Fix fallout from lexical-binding in vhdl-mode.el

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't leave `C-h N' in a text-mode derived mode

	* lisp/help.el (view-emacs-news): Use emacs-news-view-mode.
	* lisp/textmodes/emacs-news-mode.el (emacs-news-view-mode): Split
	into own mode to avoid confusion.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix button-buffer-map binding error

	* lisp/button.el (button-buffer-map): Fix error in map rewriting
	in previous commit.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new commands to go to headings/sections in the NEWS file

	* lisp/textmodes/emacs-news-mode.el (emacs-news-find-heading)
	(emacs-news-goto-section): New commands.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Add emacs-news-previous-untagged-entry command

	* lisp/textmodes/emacs-news-mode.el
	(emacs-news-next-untagged-entry): Allow searching backward.
	(emacs-news-previous-untagged-entry): New command and keystroke.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fold some too-long NEWS lines

	Do some NEWS tagging

	Do some NEWS tagging

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve exif-field discoverability

	* lisp/image/exif.el (exif-parse-file, exif-parse-buffer): Link to
	`exif-field'.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Do some NEWS tagging

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Document project-kill-buffers-display-buffer-list

	* doc/emacs/maintaining.texi (Project Buffer Commands): Mention
	project-kill-buffers-display-buffer-list.

	* lisp/progmodes/project.el (project-kill-buffers): Link to
	project-kill-buffers-display-buffer-list.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Document prefix to project-find-file

	* doc/emacs/maintaining.texi (Project File Commands): Mention the
	prefix in the project-find-file command.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix glyphless-display-mode indexing

	* doc/lispref/display.texi (Glyphless Chars): Fix indexing.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Document completions-sort

	* doc/emacs/mini.texi (Completion Options): Document completions-sort.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention completion-wrap-movement in relevant commands

	* lisp/simple.el (previous-completion, next-completion): Mention
	`completion-wrap-movement'.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Document minibuffer-completion-auto-choose/M-up/M-down

	* doc/emacs/mini.texi (Completion Commands): Document
	minibuffer-completion-auto-choose/M-up/M-down.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Further IDNA/proxy url fixes

	* lisp/url/url-http.el (url-http-create-request): Puny-encode
	domains (bug#54921).

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Crosslink some buttonize function doc strings

	* lisp/button.el (buttonize-region, buttonize): Crosslink doc
	strings for discoverability.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve completion in `C-h R'

	* lisp/info.el (info-display-manual): Use it (bug#54961).
	(info--filter-manual-names): Filter away duplicates and irrelevant
	files.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify when mode tagging is used

	* etc/NEWS: Clarify when mode tagging is used (bug#54964).

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Further vcs-cvs/rcs-responsible-p updates from master

	* lisp/vc/vc-bzr.el (vc-bzr-responsible-p):
	* lisp/vc/vc-sccs.el (vc-sccs-responsible-p):
	* lisp/vc/vc-dav.el (vc-dav-responsible-p): Update doc string.

	* lisp/vc/vc-rcs.el (vc-rcs-responsible-p):
	* lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Further fixes from
	master.

	* lisp/vc/vc-src.el (vc-src-responsible-p): Return the directory.

	* lisp/vc/vc.el: Update comments.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Make emacs-news-next-untagged-entry push the mark

	* lisp/textmodes/emacs-news-mode.el
	(emacs-news-next-untagged-entry): Push the mark for easier
	navigation back to where we were.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix NEWS tag commands

	* lisp/textmodes/emacs-news-mode.el
	(emacs-news-next-untagged-entry): Fix logic.
	(emacs-news-count-untagged-entries): Add new command and keystroke.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up emacs-news--buttonize

	* lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize):
	Remove unnecessary check left over from previous version.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Bind TAB and <backtab> on buttons

	* lisp/button.el (button-map): Inherit from 'button-buffer-map'.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new mode for editing and viewing the Emacs NEWS file

	* etc/NEWS (mode): Use emacs-news-mode.
	* lisp/help.el (view-emacs-news): Use emacs-news-mode.

	* lisp/textmodes/emacs-news-mode.el: New mode for editing and
	viewing the Emacs NEWS file.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function buttonize-region

	* lisp/button.el (buttonize-region): New function.
	(button--properties): Factored out.
	(buttonize): Use it.

2022-04-16  Po Lu  <luangruo@yahoo.com>

	Prevent race conditions with async input during drag-and-drop

	* src/xterm.c (XTread_socket): Don't read events here during
	drag-and-drop, otherwise the right hold_quit might not be used
	for selection events.

2022-04-16  Mattias Engdegård  <mattiase@acm.org>

	Fix builds on older versions of macOS

	This adds back macOS-specific code replaced earlier (bug#48548),
	specifically to fix build errors on macOS 10.7.5.  See discussion at
	https://lists.gnu.org/archive/html/emacs-devel/2022-04/msg00779.html .

	* src/sysdep.c (HAVE_RUSAGE_INFO_CURRENT, HAVE_PROC_PIDINFO): New.
	(system_process_attributes): Use alternative code or exclude features
	when building on older macOS versions.

	(cherry picked from commit 855e15dbf10a6aac42b860fdb28711f979e2bf22)

2022-04-16  Eli Zaretskii  <eliz@gnu.org>

	Improve support for the Brahmi script

	* lisp/language/indian.el ("Brahmi"): New language environment.
	Add composition rules for Brahmi.
	* lisp/international/fontset.el (script-representative-chars)
	(setup-default-fontset): Support Brahmi.  (Bug#54914)

	* etc/NEWS: Announce the new language environment.

2022-04-16  Mattias Engdegård  <mattiase@acm.org>

	Fix builds on older versions of macOS

	This adds back macOS-specific code replaced earlier (bug#48548),
	specifically to fix build errors on macOS 10.7.5.  See discussion at
	https://lists.gnu.org/archive/html/emacs-devel/2022-04/msg00779.html .

	* src/sysdep.c (HAVE_RUSAGE_INFO_CURRENT, HAVE_PROC_PIDINFO): New.
	(system_process_attributes): Use alternative code or exclude features
	when building on older macOS versions.

2022-04-16  Mattias Engdegård  <mattiase@acm.org>

	Disable annoying Clang warnings

	* configure.ac (CHECK_LISP_OBJECT_TYPE): Disable
	-Wimplicit-const-int-float-conversion and -Wint-in-bool-context, which
	currently only have false positives.

2022-04-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix ODF file detection in doc-view-mode

	* lisp/doc-view.el (doc-view-set-doc-type): Fix ODF file detection
	(bug#54947).

2022-04-16  Po Lu  <luangruo@yahoo.com>

	Fix build with toolkit scroll bars without XI2

	* src/xterm.c (mark_xterm): Fix up ifdefs slightly.

2022-04-16  Po Lu  <luangruo@yahoo.com>

	Protect windows from garbage collection when a ClientMessage is pending

	* src/xterm.c (x_protect_window_for_callback)
	(x_unprotect_window_for_callback): New functions.
	(x_send_scroll_bar_event): Protect windows from garbage
	collection before sending event containing pointer to window.
	(handle_one_xevent): Unprotect after such a ClientMessage is
	received and the window put in the keyboard buffer.
	(x_term_init): Initialize protected windows list.
	(x_delete_display): Free that list.
	(mark_xterm): Mark the windows in that list.
	* src/xterm.h (struct x_display_info): New fields for recording
	a list of protected windows.

2022-04-16  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of Outline minor mode options

	* lisp/outline.el (outline-minor-mode-cycle-filter)
	(outline-minor-mode-cycle, outline-minor-mode-highlight)
	(outline-cycle, outline-cycle-buffer): Doc fixes.  (Bug#54967)

2022-04-16  Po Lu  <luangruo@yahoo.com>

	Add some missing multilingual keys to Haiku

	* src/haiku_support.cc (keysym_from_raw_char): Support keys
	found on some East Asian keyboards.

2022-04-15  Po Lu  <luangruo@yahoo.com>

	Handle errors getting selection ownership when starting DND

	* src/xterm.c (x_clear_dnd_targets): New function.
	(x_dnd_begin_drag_and_drop): Handle errors in `x_own_selection'.

2022-04-15  Eli Zaretskii  <eliz@gnu.org>

	Improve discoverability of 'insert-directory-program'

	* lisp/files.el (insert-directory-program): Mention 'dired' in the
	doc string.
	* lisp/dired.el (dired): Mention 'insert-directory-program' in the
	doc string.  (Bug#54962)

2022-04-15  Philip Kaludercic  <philipk@posteo.net>

	Improve buffer-match-p documentation

	* doc/lispref/windows.texi (Choosing Window): Document that
	buffer-match-p is used by display-buffer-alist.
	* etc/NEWS: Mention buffer-match-p and match-buffers.
	* lisp/window.el (display-buffer-alist): Update documentation as for
	display-buffer-assq-regexp.
	(display-buffer-assq-regexp): Rename buffer-name to buffer-or-name.
	(display-buffer): Pass the buffer directly to
	display-buffer-assq-regexp,.

2022-04-15  Troels Henriksen  <athas@sigkill.dk>  (tiny change)

	Add out-of-box support for futhark lsp server

	* eglot.el (eglot-server-programs): Support futhark lsp.
	* README.md: Update.
	* NEWS.md: Update.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/922

2022-04-15  Philip Kaludercic  <philipk@posteo.net>

	Add rcirc-cycle-completion-flag

	* doc/misc/rcirc.texi: Document new option.
	* lisp/net/rcirc.el (rcirc-cycle-completion-flag): Add new option.
	(rcirc-mode): Respect new option.

2022-04-15  Po Lu  <luangruo@yahoo.com>

	Fix default registry of Haiku font backend

	* src/haiku_support.h (struct haiku_zoom_event): Fix coding
	style.
	(enum haiku_font_specification): Move FSPECs over here.
	* src/haikufont.c (haikufont_apply_registry)
	(haikufont_get_fallback_entity, haikufont_pattern_to_entity)
	(haikufont_spec_or_entity_to_pattern, haikufont_list): Use
	`iso10646-1' as the default registry instead of `utf8', which is
	not a registry.

2022-04-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Enable dragging resizing final column in vtable

	* lisp/emacs-lisp/vtable.el (vtable--insert-line): Insert the
	divider after the final column, too, so that the size can be
	dragged.

2022-04-15  Po Lu  <luangruo@yahoo.com>

	Clean up keysyms from Haiku headers

	* src/haiku_support.cc (keysym_from_raw_char): Add keysym
	numbers here and use those instead.
	* src/haiku_support.h: Delete all the X11 keysym definitions.

2022-04-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Add some mouse-face bits to vtable

	* lisp/emacs-lisp/vtable.el (make-vtable)
	(vtable--insert-header-line): Put mouse-face on draggable bits.

2022-04-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak sorting indicator placement in vtable

	* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Tweak
	sorting indicator position.

2022-04-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the sorting indicator prettier in vtable

	* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Place
	the sorting indicator flush right in the heading.

2022-04-15  Po Lu  <luangruo@yahoo.com>

	Fix dismissal of tooltips on Haiku

	* src/haikuterm.c (haiku_mouse_or_wdesc_frame): New argument
	`accept_tooltip'.
	(haiku_read_socket): Use it when handling MOUSE_MOTION events.

2022-04-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow using faces for colors in vtable

	* doc/misc/vtable.texi (Making A Table): Adjust color documentation.
	* lisp/emacs-lisp/vtable.el (make-vtable): Mix more.
	(vtable--compute-colors): Mix both foreground and background colors.
	(vtable--make-color-face, vtable--face-blend): New functions.
	(vtable--insert-line): Adjust usage.

2022-04-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow dragging the divider in vtable

	* lisp/emacs-lisp/vtable.el (vtable): Add a keymap cache.
	(make-vtable): Allow dragging the divider.
	(vtable-insert): Don't put the table keymap over the entire line
	-- avoid the divider, which has its own keymap.
	(vtable--drag-resize-column): Adjust to the in-buffer divider
	dragging.

2022-04-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix off-by-one error in text-property-search-backward

	* lisp/emacs-lisp/text-property-search.el
	(text-property-search-backward): Fix off-by-one error -- this
	would result in not finding the previous (non-)match when at the
	first character in a field.

2022-04-15  Eli Zaretskii  <eliz@gnu.org>

	Fix cursor motion under truncate-lines with Flymake fringe indicator

	* src/indent.c (Fvertical_motion): Don't consider fringe bitmaps
	as "images" for the purpose of vertical-motion logic dealing with
	overshooting buffer positions.  (Bug#54946)

2022-04-15  Po Lu  <luangruo@yahoo.com>

	More PGTK related cleanup

	* src/pgtkfns.c (x_set_foreground_color, x_set_background_color)
	(x_set_border_color, x_set_cursor_color, x_set_title)
	(x_set_menu_bar_lines, x_set_tab_bar_lines, x_set_tool_bar_lines)
	(x_set_child_frame_border_width, x_set_internal_border_width)
	(x_set_icon_type, x_set_icon_name, x_set_cursor_type)
	(x_set_mouse_color, x_set_undecorated, x_set_skip_taskbar)
	(x_set_override_redirect, pgtk_frame_parm_handlers)
	(Fx_create_frame): Rename most `x_' functions to `pgtk_' ones.
	All callers changed.
	* src/pgtkmenu.c (Fx_menu_bar_open_internal): Remove duplicate
	doc string definition.
	* src/pgtkterm.c (x_set_offset, pgtk_iconify_frame)
	(x_set_parent_frame, x_set_no_focus_on_map, x_set_no_accept_focus)
	(x_set_z_group, x_set_cursor_gc, x_set_mouse_face_gc)
	(x_set_mode_line_face_gc, x_set_glyph_string_gc)
	(x_set_glyph_string_clipping, x_set_glyph_string_clipping_exactly)
	(x_setup_relief_color, x_setup_relief_colors)
	(x_set_clip_rectangles, x_draw_relief_rect, x_draw_box_rect)
	(x_draw_glyph_string_box, x_draw_image_relief)
	(x_draw_image_foreground, x_draw_stretch_glyph_string)
	(pgtk_draw_glyph_string, x_set_toolkit_scroll_bar_thumb)
	(x_set_toolkit_horizontal_scroll_bar_thumb)
	(pgtk_set_vertical_scroll_bar, pgtk_set_horizontal_scroll_bar)
	(x_set_frame_alpha, frame_highlight, frame_unhighlight)
	(pgtk_create_terminal, map_event): Rename most `x_' functions to
	`pgtk_' ones.  All callers changed.
	* src/pgtkterm.h: Update prototypes.

2022-04-15  Po Lu  <luangruo@yahoo.com>

	Clean up some extraneous stuff in pgtkfns.c

	* src/pgtkfns.c (Fx_gtk_debug): Fix doc string and remove extra
	version check.
	(syms_of_pgtkfns): Delete left over defvar from NS port.

2022-04-15  Philip Kaludercic  <philipk@posteo.net>

	Update project-kill-buffer-conditions to match buffer-match-p

	* project.el (project-kill-buffer-conditions): Document the
	deprecation of the use of derived-mode
	(project--buffer-check): Have `major-mode' behave like `derived-mode'
	did previously, and issue a warning of `derived-mode' is used.

2022-04-15  Philip Kaludercic  <philipk@posteo.net>

	* window.el (display-buffer-assq-regexp): Use buffer-match

2022-04-15  Philip Kaludercic  <philipk@posteo.net>

	Generalize buffer matching from project.el

	* subr.el (buffer-match): Add function to check if a buffer satisfies
	a condition.
	(match-buffers): Returns all buffers that satisfy a condition.

2022-04-15  Po Lu  <luangruo@yahoo.com>

	Fix core string lookup with modifiers on XI2

	* src/xterm.c (handle_one_xevent): Clean modifiers from
	xkey.state before giving it to XLookupString.

2022-04-15  Po Lu  <luangruo@yahoo.com>

	Clean up various bits of Haiku code

	* src/haiku_font_support.cc (BFont_string_width): Delete unused
	function.
	* src/haiku_support.cc (BWindow_new): Clean up type of `view'.
	(BWindow_quit): Clean up coding style.
	(BView_mouse_down, BView_mouse_up, BView_mouse_moved): Delete
	unused functions.
	(unwind_popup_file_dialog): Clean up coding style.
	(be_popup_file_dialog_safe_set_target): Delete function.
	(be_popup_file_dialog): Improve code clarity.
	* src/haiku_support.h: Fix coding style.
	* src/haikufns.c (haiku_get_color, haiku_display_info_for_name)
	(check_haiku_display_info, Fhaiku_read_file_name)
	(Fx_display_save_under, Fhaiku_frame_restack): Remove references
	to "Be displays" and replace them with "Haiku displays".
	* src/haikuselect.h: Clean up coding style.
	* src/haikuterm.c (haiku_read_socket): Clean up coding style and
	fix a few latent bugs.

2022-04-15  Po Lu  <luangruo@yahoo.com>

	Add missing extern declarations to headers

	* src/xterm.h (xi_device_from_id, xi_frame_selected_for): Add
	`extern' declaration.

2022-04-14  Po Lu  <luangruo@yahoo.com>

	Make Haiku scroll bar behave more like other programs

	* haiku_support.cc (class EmacsScrollBar): New field
	`repeater_start'.
	(Pulse): Wait for time to pass repeater_delay.
	(MouseDown): Set it to the current time + the system repeater
	delay.

2022-04-14  Paul Eggert  <eggert@cs.ucla.edu>

	Port new tests to leap seconds or (TICKS . HZ)

	* test/lisp/mail/ietf-drums-date-tests.el (ietf-drums-date-tests):
	Don’t assume leap seconds are ignored, or that timestamps are in
	(HI LO) format.

2022-04-14  Paul Eggert  <eggert@cs.ucla.edu>

	New time-equal-p test

	* test/src/timefns-tests.el (time-equal-p-NaN-NaN): New test.

2022-04-14  Po Lu  <luangruo@yahoo.com>

	Properly wait for app thread exit on Haiku

	* src/haiku_support.cc (MessageReceived): Handle
	QUIT_APPLICATION.
	(start_running_application): Clean up code a little.
	(wait_for_exit_of_app_thread): New function.
	(BApplication_setup): Add atexit handler to clean up app thread.
	(be_app_quit): Delete function.
	* src/haikuterm.c (haiku_delete_terminal): Un-implement
	function.
	* src/haikuterm.h: Update prototypes.

2022-04-14  Po Lu  <luangruo@yahoo.com>

	Fix calls to XKB functions without testing for server support

	* src/xterm.c (x_dnd_cleanup_drag_and_drop):
	(x_dnd_begin_drag_and_drop): Never call XkbSelectEvents if the
	X server doesn't have XKB.

2022-04-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow dragging dividers in vtable

	* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Allow
	dragging dividers.
	(vtable--drag-resize-column): Adjust function.

2022-04-14  Eli Zaretskii  <eliz@gnu.org>

	Fix mouse clicks in hscrolled window with variable-height fonts

	* src/xdisp.c (move_it_in_display_line_to): Fix calculation of
	height of a screen-line that is completely hscrolled out of view.
	Reported by Yasushi SHOJI <yasushi.shoji@gmail.com>.

2022-04-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow resizing vtable columns by dragging

	* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Allow
	resizing by dragging headers.
	(vtable--drag-resize-column): New function.
	(vtable-narrow-current-column): Refactor out common bits.
	(vtable--alter-column-width): To here.
	(vtable-widen-current-column): Rewrite to use
	vtable-narrow-current-column.

2022-04-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/gnus/gnus.el (toplevel autoloads): Fix file name

	`score-mode` does not define `gnus-score-edit-all-score`, it's defined
	in `gnus-score` instead.

2022-04-14  Philip Kaludercic  <philipk@posteo.net>

	Have submit-emacs-patch prompt for patch file before subject

	* emacsbug.el (submit-emacs-patch): Prompt for patch file and use that
	  to guess the subject.

2022-04-14  Philip Kaludercic  <philipk@posteo.net>

	Avoid possibly unnecessary lisp_time_struct call

	* timefns.c (time_cmp): Defer the calculation of the time struct, in
	  case A and B are eq to one another.

2022-04-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Handle non-ASCII domains correctly in url-https-proxy-connect

	* lisp/url/url-http.el (url-https-proxy-connect)
	(url-https-proxy-after-change-function): Handle IDNA domains
	correctly.

2022-04-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Make vtable remember user-altered column widths

	* lisp/emacs-lisp/vtable.el (vtable-narrow-current-column)
	(vtable-widen-current-column): Store the size to that it's
	respected on `g'.

2022-04-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that commands like { work on all frames in vtable

	* lisp/emacs-lisp/vtable.el (vtable--recompute-cache)
	(vtable--ensure-cache): New functions.
	(vtable-insert): Use it.
	(vtable--widths): Ditto.

2022-04-14  Filipp Gunbin  <fgunbin@fastmail.fm>

	ldap-search-internal cleanup

	* lisp/net/ldap.el (ldap-ldapsearch-args): Change -LL to -LLL to
	suppress ldif version output.
	(ldap-search-internal): Remove skipping of version output.  Remove
	redundant ws skipping.

2022-04-14  Filipp Gunbin  <fgunbin@fastmail.fm>

	Fix eudc-get-attribute-list

	* lisp/net/eudc-vars.el (eudc-ldap-no-wildcard-attributes): New
	defcustom.
	* doc/misc/eudc.texi (LDAP Configuration): Mention it.
	* lisp/net/eudcb-ldap.el (eudc-ldap-format-query-as-rfc1558): Use it.
	(eudc-ldap-get-field-list): Set scope and sizelimit, instead of
	overriding the whole ldap-host-parameters-alist.
	* lisp/net/ldap.el (ldap-search-internal): Allow "size limit exceeded"
	exit code.  Allow empty attribute values.

2022-04-14  Nobuyoshi Nakada  <nobu.nakada@gmail.com>

	Fix electric-help-map problem when help-char has meta-prefix

	* lisp/ehelp.el (electric-help-map): Fix problem when help-char
	has meta-prefix (bug#54932).

2022-04-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Make all vc-*-responsible-p functions return a string

	* lisp/vc/vc-sccs.el (vc-sccs-responsible-p):
	* lisp/vc/vc-rcs.el (vc-rcs-responsible-p):
	* lisp/vc/vc-dav.el (vc-dav-responsible-p):
	* lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Return a file name
	instead of t when we get a match (which is what
	vc-backend-for-registration expects) (bug#51800).

	This fixes the regression reported in bug#54935.

	Do not merge to master.

2022-04-14  Po Lu  <luangruo@yahoo.com>

	Fix races with child frame locks on Haiku

	* src/haiku_support.cc
	(CHILD_FRAME_LOCK_INSIDE_LOOPER_CALLBACK): New macro.
	(FrameMoved, WorkspacesChanged): Lock child frame data with that
	macro instead.

2022-04-14  Po Lu  <luangruo@yahoo.com>

	Keep track of keyboard state during drag and drop

	* src/xterm.c (x_dnd_cleanup_drag_and_drop): Deselect for
	keyboard state changes.
	(x_dnd_begin_drag_and_drop): Select for keyboard state changes
	when XKB is available.
	(x_dnd_update_state, handle_one_xevent): Use current XKB state
	if it is available.
	(x_term_init): Reformat code a little.

2022-04-14  Po Lu  <luangruo@yahoo.com>

	Minor fixes to menus on XI2

	* src/xfns.c (Fx_create_frame): Populate `xi_masks'.
	* src/xmenu.c (x_activate_menubar)
	(create_and_show_popup_menu, x_menu_show): Only clear input
	extension grabs if we (or the toolkit) actually selected for
	XI_ButtonPress events.
	* src/xterm.c (xi_frame_selected_for): New function.
	(xi_populate_device_from_info, handle_one_xevent): Store device
	use instead of just whether or not it's a master device.
	(x_dnd_begin_drag_and_drop): Clean up block_input stuff.
	* src/xterm.h: Update prototypes.
	(struct xi_device_t): Rename `master_p' to `use'.

2022-04-14  Eli Zaretskii  <eliz@gnu.org>

	Describe problems with invoking Python on MS-Windows

	* etc/PROBLEMS: Describe problems with running an inferior Python
	interpreter due to the MS-Windows "App Execution Aliases" feature.
	(Bug#54860)

2022-04-13  Po Lu  <luangruo@yahoo.com>

	Ignore XdndPosition events triggered by the wrong mouse button

	* src/xterm.c (x_dnd_send_position): Don't send if button is set
	but not a scroll wheel button.

2022-04-13  Po Lu  <luangruo@yahoo.com>

	Add support for Xdnd features introduced after version 5

	* src/xterm.c (x_dnd_send_position, x_dnd_update_state)
	(handle_one_xevent): Add support for sending button and keyboard
	state during DND.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix describe-mode--minor-modes formatting issue

	* lisp/help-fns.el (describe-mode--minor-modes): Fix multi-line
	local-minor paragraph.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make vtable narrow/widen functions take a prefix

	* lisp/emacs-lisp/vtable.el (vtable-narrow-current-column)
	(vtable-widen-current-column): Allow using the prefix to say how
	much to narrow/widen the columns.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Copy edit make-vtable code

	* lisp/emacs-lisp/vtable.el (make-vtable): Clean up code slightly.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Edit some vtable doc strings

	* lisp/emacs-lisp/vtable.el (make-vtable, vtable): Improve doc
	strings.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Further divider fixes for vtable

	* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Don't
	insert the divider at the end.
	(vtable-narrow-current-column, vtable-widen-current-column): Don't
	error out when being called on the divider.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Restore vtable.texi lines removed by accident

	* doc/misc/vtable.texi (Introduction): Restore lines inadvertently
	removed.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix dividers in vtable header lines

	* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Put the
	divider in the correct place in the header line.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow having dividers between columns in vtable

	* doc/misc/vtable.texi (Making A Table): Document it.
	* lisp/emacs-lisp/vtable.el (vtable): Add a divider slot.
	(make-vtable): Accept :divider and :divider-width arguments.
	(vtable--insert-line, vtable--insert-header-line): Display the
	divider.

2022-04-13  Sean Whitton  <spwhitton@spwhitton.name>

	Document additions of cl-with-gensyms and cl-once-only

	* NEWS: Document additions of cl-with-gensyms and cl-once-only.
	* doc/misc/cl.texi (Macro-Writing Macros): New section.
	(Creating Symbols): Add to the concept index under the name "gensym".
	(Obsolete Setf Customization): Use cl-once-only rather than
	macroexp-let2, and fix a quotation bug in one example.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow putting alternating colors on vtable rows

	* doc/misc/vtable.texi (Making A Table): Document it.
	* lisp/emacs-lisp/vtable.el (vtable): Add :row-colors.
	(make-vtable): Ditto.
	(vtable--compute-colors, vtable--color-blend): New functions.
	(vtable--insert-line): Take a line number argument and adjust
	callers.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-h m' actually output the documentation for the major mode

	* lisp/help-fns.el (describe-mode): Get the documentation for the
	correct major mode.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new `vtable' face

	* doc/misc/vtable.texi (Introduction): Document it.

	* lisp/emacs-lisp/vtable.el (vtable): Add a new face.

2022-04-13  Juri Linkov  <juri@linkov.net>

	* lisp/comint.el (comint-dynamic-list-input-ring): Keep replaced text props.

	* lisp/minibuffer.el (completions-header-format): Remove unused	text prop.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-04-13  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp manual

	* doc/misc/tramp.texi (Ssh setup): New subsection "Using ssh
	config include for host name completion".  (Bug#54885)
	Precise, that list-system-processes and process-attributes are
	about system processes.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add support for column background colors in vtable

	* doc/misc/vtable.texi (Making A Table): Document it.

	* lisp/emacs-lisp/vtable.el (vtable): Add a column color element.
	(make-vtable): Use it.
	(vtable--insert-line): Insert the colors here.

2022-04-13  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix format-seconds error in previous change

	* lisp/calendar/time-date.el (format-seconds): Fix zero elision
	when using fractional seconds.

2022-04-13  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	# Conflicts:
	#	etc/NEWS
	#	lisp/desktop.el
	#	lisp/dired.el

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make list-times not include zero elements

	* doc/lispref/os.texi (Time Parsing): Mention %x.
	* lisp/calendar/time-date.el (format-seconds): Accept a new %x
	spec that removes trailing zeros (bug#54904).

	* lisp/emacs-lisp/timer-list.el (list-timers): Don't display
	trailing zero bits.

2022-04-13  Eli Zaretskii  <eliz@gnu.org>

	A better fix for bug#54800

	* lisp/calc/calc.el (calc-align-stack-window): Improve scrolling
	when windows have non-integral dimensions.

2022-04-13  Po Lu  <luangruo@yahoo.com>

	Move raw event selection on GTK+ 2 to a more appropriate place

	* src/xfns.c (setup_xi_event_mask): Stop selecting for
	RawKeyPress on the root window.
	* src/xterm.c (x_new_focus_frame): Select here instead, once a
	frame becomes focused.

2022-04-13  Po Lu  <luangruo@yahoo.com>

	Fix marking upgrades for packages from ELPA or NonGNU ELPA

	* lisp/emacs-lisp/package.el (package-menu--find-upgrades): Look
	inside ``external'' packages as well when searching for
	upgrades.  (bug#54117)

2022-04-13  Po Lu  <luangruo@yahoo.com>

	Fix input availability detection during visible-bell

	* src/xterm.c (XTflash): Exit pselect loop also if input becomes
	available on f's display connection.

2022-04-13  Po Lu  <luangruo@yahoo.com>

	Minor cleanups to Haiku windowing

	* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
	* src/haikuterm.h (struct haiku_output, struct scroll_bar)
	(XSCROLL_BAR): Remove used fields of various structs.

	* src/haikuterm.c (haiku_flash): Make input detection actually
	work.

2022-04-13  Po Lu  <luangruo@yahoo.com>

	Fix zoom rect computation for some deskbar positions on Haiku

	* src/haiku_support.cc (CalculateZoomRect): Fix computation for
	left top and right bottom.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a comment about cl-concatenate

	* lisp/emacs-lisp/cl-extra.el (cl-concatenate): Add a comment.

2022-04-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Make cl-concatenate an alias of seq-concatenate"

	This reverts commit 78f76fe16e2737b40694f82af28d17a90a21ed7b.

	The commit made calls to cl-concatenate bug out, since
	autoloading defaliases doesn't work very well (bug#54901).

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Fix last change in configure.ac

	* configure.ac: Test window system against "x11", not "x".

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Bump minimum GTK for PGTK builds

	* configure.ac: Require GTK 3.20 or later if building with PGTK.
	It has already been required for some time now, but the
	requirement was not reflected in the configure script.

	* src/pgtkterm.c (pgtk_any_window_to_frame): Remove version
	check.

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak how `M-q' in emacs-lisp-mode works

	* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Only fill as
	strings inside strings (bug#31656).
	(lisp--fill-line-simple): New function to do simple sexp-based
	filling.

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Clean up PGTK code more

	* src/pgtkterm.c (STORE_KEYSYM_FOR_DEBUG): Delete macro.
	(x_find_modifier_meanings): Delete function.
	(get_modifier_values, pgtk_gtk_to_emacs_modifiers)
	(pgtk_emacs_to_gtk_modifiers): Use GDK's own modifier mask
	constants instead of detecting our own from the keymap.  This
	does mean a specific "meta" key will no longer be detected on X
	Windows, but that interface doesn't exist on Wayland, and X
	users should use the X port anyway.
	(key_press_event): Avoid decoding input text.
	(pgtk_term_init): Stop computing modifiers.
	(syms_of_pgtkterm): Delete obsolete comment.
	* src/pgtkterm.h (struct pgtk_display_info): Delete modifier
	masks.

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Remove unused flag on Haiku

	* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
	* src/haikuterm.h (struct haiku_output): Delete mentions of
	`explicit_parent'.

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Fix bit rot in the XEmbed code

	* src/xterm.c (x_term_init): Delete unused atom.
	(handle_one_xevent):
	(x_make_frame_visible): Handle embedded frame visibility
	correctly.
	* src/xterm.h (struct x_display_info): Delete unused atom.

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Add NEWS entry for `C-h m' change

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Redo `C-h m' output

	* lisp/help-fns.el (describe-mode--minor-modes): New function
	(bug#2473).
	(describe-mode): Rewritten to include local minor mode links first,
	then the major mode, and then global minor mode links, and then
	all the minor modes.

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `describe-mode' include a link to the major mode function

	* lisp/help-fns.el (describe-mode): Add a link to the mode
	function so that the user can go to the manual more easily
	(bug#575).

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Fix freezes when trying to accelerate menu bar on Haiku

	* src/haiku_support.cc (class EmacsWindow): New field
	`menus_begun'.
	(MenusBeginning): Don't send menu bar open events when that is
	set, instead set it to true.
	(BMenuBar_start_tracking): Stop locking the menu bar here and
	send a special BE_MENU_BAR_OPEN event instead.
	* src/haiku_support.h (struct haiku_menu_bar_state_event):
	Delete field `no_lock'.
	* src/haikumenu.c (Fhaiku_menu_bar_open):
	* src/haikuterm.c (haiku_read_socket): Update accordingly.

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Provide a useful default to smime-CA-file

	* lisp/gnus/smime.el (smime-CA-file): Use `gnutls-trustfiles' to
	provide a default so that this will work automatically on many
	systems (bug#20960).

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the SVG error message less verbose

	* src/image.c (svg_load_image): Don't include the spec in the
	error message, because this is commonly the entire SVG string, and
	this will fill up the *Messages* buffer quickly.

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention animated WebP images

2022-04-12  Sean Whitton  <spwhitton@spwhitton.name>

	Fix eager macroexpansion cycle in cl-once-only

	* lisp/emacs-lisp/cl-macs.el (cl-once-only): Use different cl-loop
	syntax, with no functional change, but such that the loop does not
	expand into cl-psetq.

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve DISPOSE_PREVIOUS in gif_load slightly

	* src/image.c (gif_load): Tweak how DISPOSE_PREVIOUS is handled.
	It's still not right, but it's less glaringly wrong.

2022-04-12  Eli Zaretskii  <eliz@gnu.org>

	Fix 'window-text-pixel-size' when starting from a display property

	* src/xdisp.c (Fwindow_text_pixel_size): Handle the case where
	there's a display property at START and 'move_it_to' overshoots.
	(Bug#54862)

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix webp_load data lifetime issues

	* src/image.c (webp_load): Take care of lifetime issues of the
	image data we're iterating over for animated images.

2022-04-12  Eli Zaretskii  <eliz@gnu.org>

	Fix 'window-text-pixel-width' when starting from display property

	* src/xdisp.c (Fwindow_text_pixel_size): Handle the case where
	there's a display property at START, and move_it_to overshoots.
	Do not merge to master.  (Bug#54862)

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Fix keyboard event device attribution on GTK+ 2

	* src/xfns.c (setup_xi_event_mask): Select for raw keypress
	events on GTK 2.
	* src/xterm.c (handle_one_xevent): Set pending keystroke time
	when a raw event is received.
	* src/xterm.h (struct x_display_info): New flag
	`pending_keystroke_time_special_p'.

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Fix detection of Meta key in some cases

	* src/xterm.c (x_find_modifier_meanings): Set found_meta_p
	correctly.

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix check for whether frames fit into gif images

	* src/image.c (gif_load): Really check all frames that they fit.

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Fix some confusing names in xterm.c

	* src/xterm.c (enum xm_targets_table_byte_order): Rename to
	`xm_byte_order'.  All uses changed.

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Store less data in the gif animation cache

	* src/image.c (gif_load): Only start a cache if we're have an
	:index entry (which means that we're trying to animate something).

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Fix clicking on files in Dired when drag is enabled

	* lisp/dired.el (dired-mouse-drag): Don't drag if the mouse
	didn't move far enough.

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Release resources in gif_load on errors

	* src/image.c (webp_load): Clean up code slightly.
	(gif_load): Really release resources on GIF parsing errors.

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Animate GIF images that don't have an explicit delay setting

	* src/image.c (gif_load): Use the default delay for GIF images
	that don't explicitly state a delay.

2022-04-12  Olaf Trygve Berglihn  <olafb@pvv.org>  (tiny change)

	Add biblatex alias entry types for compatibility with bibtex

	* lisp/textmodes/bibtex.el (bibtex-biblatex-entry-alist): Add
	biblatex alias entry types for compatibility with bibtex (bug#54877).

2022-04-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix thinko in the anim cache

	* src/image.c (gif_load): Fix resetting the cache when we're out
	of sync.
	(anim_create_cache): Start from zero, not 1.

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Disallow drag and drop inside a menu-entry

	* src/xterm.c (x_dnd_cleanup_drag_and_drop): Always free DND
	targets even if waiting for finish.
	(x_dnd_begin_drag_and_drop): Free targets correctly when
	signaling error and prevent activating drag-and-drop inside a
	menu or popup.  (It doesn't work.)

2022-04-12  Michael Albinus  <michael.albinus@gmx.de>

	Adapt macOS defaults in Tramp's process-attributes implementation

	* doc/misc/tramp.texi (Remote processes):
	Mention tramp-connection-local-darwin-ps-* constants.

	* lisp/net/tramp-integration.el
	(tramp-connection-local-darwin-ps-variables): Fix docstring.
	(top): Simplify setting local profiles.

	* test/lisp/net/tramp-tests.el (tramp-test31-list-system-processes)
	(tramp-test31-process-attributes): New tests.

2022-04-12  Filipp Gunbin  <fgunbin@fastmail.fm>

	process-attributes-ps-args / process-attributes-ps-format for Darwin

	* lisp/net/tramp-integration.el
	(tramp-darwin-process-attributes-ps-args)
	(tramp-darwin-process-attributes-ps-format)
	(tramp-connection-local-darwin-ps-variables): New defconsts.  Add
	them to connection-local variables.  Preset default "ps" profile
	for Darwin.

2022-04-12  Sean Whitton  <spwhitton@spwhitton.name>

	Add two classic Common Lisp macro-writing macros

	* lisp/emacs-lisp/cl-macs.el (cl-with-gensyms, cl-once-only): New macros.

2022-04-12  Po Lu  <luangruo@yahoo.com>

	Fix some DISPLAY variable related bugs on PGTK

	* src/callproc.c (getenv_internal, make_environment_block):
	Don't set DISPLAY on non-X GDK backends.  (bug#54844)

2022-04-12  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (frame_set_mouse_pixel_position): Avoid server grab.

2022-04-11  Po Lu  <luangruo@yahoo.com>

	Don't use native image APIs for some types on Haiku

	* src/haikuimage.c (haiku_can_use_native_image_api): Ignore
	types with animations when their respective libraries are
	present.

2022-04-11  Po Lu  <luangruo@yahoo.com>

	Fix last tool bar bug on Haiku as well

	* src/haikuterm.c (haiku_read_socket): Adapt last change to
	Haiku.

2022-04-11  Po Lu  <luangruo@yahoo.com>

	Fix selecting text and releasing the mouse buttons above the toolbar

	* src/xterm.c (handle_one_xevent): Don't send ButtonRelease
	events to tool bars if there is no selected tool bar item.

2022-04-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/macroexp.el (macroexp-let2*): Allow common shorthand

	* lisp/gnus/mm-encode.el (mm-default-file-encoding): Fix "when" arg

2022-04-11  Paul Eggert  <eggert@cs.ucla.edu>

	Use preferred chars among duplicates as per UTR#25 §25.

2022-04-11  Juri Linkov  <juri@linkov.net>

	* lisp/minibuffer.el (minibuffer-completion-auto-choose): New defcustom.

	(minibuffer-choose-previous-completion)
	(minibuffer-choose-next-completion): Remove commands.
	(minibuffer-local-completion-map): Remove keybindings of
	minibuffer-choose-next-completion and minibuffer-choose-previous-completion.
	Use them for minibuffer-next-completion and minibuffer-previous-completion.
	* lisp/simple.el (minibuffer-local-shell-command-map): Idem.

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make normal image caching actually work when doing animated images

	* src/image.c (filter_image_spec): New function.
	(uncache_image): Use it.
	(lookup_image): Ditto.
	(syms_of_image): Define some keywords.

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make more IPV6 domains non-suspicious in textsec

	* lisp/international/textsec.el (textsec--ipvx-address-p): Make
	more IPV6 domains non-suspicious.

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make gif_load work across architectures again

	* src/image.c (gif_load): Invert the way animated pixmaps are
	created: Work on the cached computed-so-far pixmap, and then copy
	the entire thing to the ximg with PUT_PIXEL at the end.  This
	should work across platforms, which the previous version didn't.

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "; * src/image.c (gif_load): Fix compilation error on MS-Windows."

	This reverts commit a715f2fbe70bb4cbb961e82af95e2965030b4513.

	This is fixed in a different way in a subsequent commit.

2022-04-11  Mattias Engdegård  <mattiase@acm.org>

	Recognize hybrid IPv6/IPv4 addresses in textsec (bug#54624)

	* lisp/international/textsec.el (textsec--ipvx-address-p):
	  Recognize hybrid addresses like "::ffff:129.55.2.201".
	  Combine to a single regexp and translate to rx.
	  Remove some regexp ambiguity (relint complaint).
	* test/lisp/international/textsec-tests.el (test-suspiction-domain):
	  Add test cases.

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix anim_cache garbage collection

	* src/image.c (struct anim_cache): Move earlier.
	(mark_image_cache): Mark the Lisp_Object in the anim cache.

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation errors when HAVE_GIF and not HAVE_WEBP

	* src/image.c: Enable the cache functions when HAVE_GIF, too

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Speed up GIF animations

	* src/image.c (anim_prune_animation_cache): Tweak the destructor
	API.
	(gif_destroy): New function.
	(gif_load): Use a cache to avoid quadratic CPU usage for animated
	images (bug#45224).
	(webp_destroy): New function.
	(webp_load): Use it.

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Refactor the webp cache code to allow usage by gif_load, too

	* src/image.c (struct anim_cache, anim_create_cache)
	(anim_prune_animation_cache, anim_get_animation_cache): Rename
	from webp_cache (etc) to prepare for usage in the gif animation
	implementation, too.
	(webp_load): Adjust cache usage.

2022-04-11  Eli Zaretskii  <eliz@gnu.org>

	Fix default-directory of buffers visiting files in renamed directories

	* lisp/dired-aux.el (dired-rename-file): Take note of whether FILE
	is a directory before it is renamed, which makes it impossible to
	determine if it was a directory.
	(dired-rename-subdir, dired-rename-subdir-1): Revert to using
	dired-in-this-tree-p instead of file-in-directory-p, for the
	benefit of files that were renamed/removed, because
	file-in-directory-p returns nil in those cases.  (Bug#54838)

2022-04-11  Po Lu  <luangruo@yahoo.com>

	Fix event source attribution for GTK input methods

	* src/gtkutil.c (xg_im_context_commit): Use pending keystroke
	source if it exists.

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix a kill-append regression

	* lisp/simple.el (kill-append): Fix a regression when
	kill-ring-max is zero (bug#54842).

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve gif_load error messages

	* src/image.c (gif_load): Improve error reporting (bug#54848).

2022-04-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure shell.el loading properly

	* lisp/shell.el (subr-x): Require for string-chop-newline
	(bug#54834).

2022-04-11  Po Lu  <luangruo@yahoo.com>

	Always cascade from toplevel frames on Haiku

	* src/haikufns.c (haiku_create_frame): Cascade from toplevel
	frames, since otherwise the positions are wrong anyway, and it
	doesn't make sense to cascade from a frame that disappears when
	it becomes deactivated.

2022-04-11  Po Lu  <luangruo@yahoo.com>

	Fix IM event source attribution on GTK

	* src/xterm.c (handle_one_xevent): Set pending times on GTK as
	well.
	* src/gtkutil.c (xg_widget_key_press_event_cb): Respect pending
	keystroke time on XI2.

2022-04-10  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_event): Make event attribution more accurate.

2022-04-10  Augusto Stoffel  <arstoffel@gmail.com>

	Add lazy highlight when reading 'query-replace' arguments

	* lisp/replace.el (query-replace-read-args):  Use
	'minibuffer-lazy-highlight-setup' to highlight the text to be replaced
	in the original buffer (and a match count, if applicable).
	(replace--region-filter): New function for code that
	used to be inlined in perform-replace but is useful elsewhere.
	(perform-replace): Use 'replace--region-filter'.

2022-04-10  Augusto Stoffel  <arstoffel@gmail.com>

	Rewrite the minibuffer lazy highlight feature

	The new API was discussed in bug#53126.  It's more robust and easier
	to use in complex cases like that of 'query-replace'.

	* etc/NEWS: Amend the feature announcement
	* lisp/isearch.el (isearch-edit-string): Use new API.
	(minibuffer-lazy-highlight-transform,
	minibuffer-lazy-highlight--overlay, minibuffer-lazy-highlight--count,
	minibuffer-lazy-highlight--after-change,
	minibuffer-lazy-highlight--exit) Remove helper functions, which are
	now kept together with the lazy highlight configuration variables
	within a closure.
	(minibuffer-lazy-highlight-setup): This function now takes the lazy
	highlighting configuration variables as argument, and returns a
	closure that is intended to run as part of the minibuffer setup.

2022-04-10  Eli Zaretskii  <eliz@gnu.org>

	* doc/misc/eww.texi (Advanced): Correct outdated info (bug#54839).

2022-04-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix markup in Drag and Drop

	* doc/emacs/frames.texi (Drag and Drop): Fix markup.

2022-04-10  Eli Zaretskii  <eliz@gnu.org>

	Fix WebP image support on MS-Windows

	* src/image.c (init_webp_functions) [WINDOWSNT]: Load Demux
	functions from the WebPDemux DLL.  Load internal functions where
	the public APIs are inline functions defined in the WebP headers.
	(WebPAnimDecoderOptionsInit) [WINDOWSNT]: Define to call
	'WebPAnimDecoderOptionsInitInternal'.
	(WebPDemux): Define to call 'WebPDemuxInternal'.
	(WebPAnimDecoderNew): Define to call
	'WebPAnimDecoderNewInternal'.
	(syms_of_image) <webpdemux>: New symbol.

	* lisp/term/w32-win.el (dynamic-library-alist): Add a member for
	'webpdemux'.

2022-04-10  Eli Zaretskii  <eliz@gnu.org>

	Clean up the MSDOS port

	* src/msdos.h (tcdrain): Redirect to '_dos_commit'.
	(openat, fchmodat, futimens, utimensat): Add prototypes.

	* msdos/sed1v2.inp (MAKE_PDUMPER_FINGERPRINT): Fix indentation, so
	that Make won't consider this line a command.
	($(etc)/DOC): Chdir back to ../src, since "make-docfile -d" leaves
	us in a wrong directory.
	* msdos/sedlibmk.inp (GL_GNULIB_GETRANDOM, GL_GNULIB_MEMMEM)
	(GL_GNULIB_SIGDESCR_NP): Define to 1, to get the prototypes from
	Gnulib headers.

2022-04-10  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Fix a ja-dic compilation warning

	* leim/Makefile.in (${leimdir}/ja-dic/ja-dic.el): Increase
	specpdl-size to avoid a compilation warning (bug#54816).

2022-04-10  Daniel Martín  <mardani29@yahoo.es>

	Fix typo in next-error-find-buffer-function

	* lisp/simple.el (next-error-find-buffer-function): Fix typo
	(bug#54830).

2022-04-10  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fix unwanted fontification of function call as function declaration

	This happens when the enclosing function's return type is a struct, etc.  This
	fixes bug #54743;

	* lisp/progmodes/cc-engine.el (c-update-brace-stack): Replace "(" by ")" in a
	`member' call.

2022-04-10  Kaushal Modi  <kaushal.modi@gmail.com>

	Update docstrings for shortdoc.el FUNC lisp form API

	* lisp/emacs-lisp/shortdoc.el (define-short-documentation-group):
	Updated docstrings.

2022-04-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Make shell-resync-dirs handle whitespace in directory names"

	This reverts commit 90e65c826fab2092ad2099d7763538194c93e021.

	This change led to hangs (bug#54776).

	Do not merge to master; it has been fixed in a more encompassing way there.

2022-04-10  Po Lu  <luangruo@yahoo.com>

	Attribute filtered events to the right source device

	* src/xterm.c (handle_one_xevent): Attribute core events sent by
	input methods like I-Bus to the extension device that caused
	them to be sent.
	* src/xterm.h (struct x_display_info): New fields
	`pending_keystroke_time' and `pending_keystroke_source'.

2022-04-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Add support for animated webp images

	* configure.ac (HAVE_RSVG): Also include the webpdemux library.
	It was new in version 0.4.4, and we require 0.6.0, so it should be
	safe.
	* src/image.c: Include demux.h.
	(enum webp_keyword_index, webp_format): Include :index for
	animations.
	(init_webp_functions): Add Windows LOAD_DLLs.
	(struct webp_cache, webp_create_cache)
	(webp_prune_animation_cache, webp_get_animation_cache): New
	functions.
	(webp_load): Support animated webp images (bug#54242).

2022-04-10  Juri Linkov  <juri@linkov.net>

	Allow non-interactive uses of minibuffer-next-completion

	* lisp/minibuffer.el (minibuffer-previous-completion)
	(minibuffer-next-completion): Use 1 for n by default.

2022-04-10  Po Lu  <luangruo@yahoo.com>

	Add missing details to filter event on XI2

	* src/xterm.c (handle_one_xevent): Pass coordinates when
	translating XI2 key events to core key events.

2022-04-09  Po Lu  <luangruo@yahoo.com>

	Update XI2 device use on slave attachment and detachment

	* src/xterm.c (handle_one_xevent): Update whether device is a
	master device when it's detached or attached.

2022-04-09  Po Lu  <luangruo@yahoo.com>

	Try harder to own DND selections

	* src/xterm.c (x_dnd_do_unsupported_drop): Fix computation of
	local value.
	(x_dnd_begin_drag_and_drop): Try to own the selection if we do
	have a local value.

2022-04-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix mode-line doc string

	* lisp/faces.el (mode-line): Fix doc string.

2022-04-09  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	ses-test Prefix used symbols by ses--

	* test/lisp/ses-tests.el: Rename cell symbols of renamed cells so
	that they are in the SES namespace, as recommended by Stefan.

2022-04-09  Eli Zaretskii  <eliz@gnu.org>

	Fix scrolling of the stack window in Calc

	* lisp/calc/calc.el (calc-align-stack-window): Fix off-by-one
	error in computing the window-start point.  (Bug#54800)

2022-04-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix sql-mode comment-end parsing

	* lisp/progmodes/sql.el (sql-mode): Fix /* ... -*/ parsing
	(bug#54769).

2022-04-09  Po Lu  <luangruo@yahoo.com>

	Avoid sync when allowing touch events in handle_one_xevent

	* src/xterm.c (handle_one_xevent): Don't catch errors around
	XIAllowTouchEvents.
	(x_error_handler): Ignore Device errors here instead.

2022-04-09  Po Lu  <luangruo@yahoo.com>

	Handle hierarchy events for updating scroll valuators correctly

	* src/keyboard.c (gen_help_event, kbd_buffer_store_help_event):
	Make sure to initialize the event buffer correctly.

	* src/xterm.c (xi_populate_device_from_info): New function.
	(x_init_master_valuators): Factor out most of the valuator
	tracking code to that function.
	(handle_one_xevent): Handle device enable and disable events in
	a more detailed fashion.

2022-04-08  Po Lu  <luangruo@yahoo.com>

	Fix DND leave events not being sent to toplevel after returning frame

	* src/xterm.c (x_dnd_update_state, handle_one_xevent): Make sure
	to send leave events to the previous toplevel when canceling to
	return a frame.

2022-04-08  Po Lu  <luangruo@yahoo.com>

	Use right frame when computing mouse movement device

	* src/keyboard.c (kbd_buffer_get_event): Use the frame on which
	the mouse actually moved to compute the last mouse device.

2022-04-08  Po Lu  <luangruo@yahoo.com>

	Minor cleanups in X Windows drag-and-drop code

	* src/keyboard.c (kbd_buffer_get_event): Don't dereference f if
	nil when generating mouse motion event.
	* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
	(x_dnd_send_leave, x_dnd_send_drop, x_send_scroll_bar_event):
	Use NoEventMask instead of 0.

2022-04-08  Po Lu  <luangruo@yahoo.com>

	Fix source reporting for focus in and focus out events

	* src/xterm.c (handle_one_xevent): Report source name for
	FocusIn and FocusOut events.

2022-04-08  Po Lu  <luangruo@yahoo.com>

	Clean up XI2 scroll valuator tracking code

	* src/xterm.c (x_get_scroll_valuator_delta): Accept a pointer to
	a device instead of the device id.
	(handle_one_xevent): Pass the previously found device.

2022-04-08  Po Lu  <luangruo@yahoo.com>

	* src/pgtkterm.c (pgtk_set_cr_source_with_color): Fix default operator.

2022-04-08  Po Lu  <luangruo@yahoo.com>

	Fix subpixel AA with alpha-background on Cairo on X

	* xterm.c (x_set_cr_source_with_gc_foreground)
	(x_set_cr_source_with_gc_background): Set operator back to OVER
	if alpha-background isn't to be respected.

2022-04-08  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2022-04-08  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify clang -Wunused-variable

	* src/coding.c (detect_coding_utf_8):
	* src/process.c (Finternal_default_process_filter):
	Remove unused local vars.

2022-04-08  Paul Eggert  <eggert@cs.ucla.edu>

	ebrowse dumping need not return int

	* lib-src/ebrowse.c (dump_members, dump_tree): Return void, not
	int, since callers never actually use returned value.  All uses
	changed.

2022-04-08  Alan Third  <alan@idiocy.org>

	Fix scrollbars on macOS 10.13 and below (bug#54623)

	Make any build on macOS 10.13 and below follow the same drawing path
	as the GNUstep port.  macOS 10.14 and above will use EmacsLayer.

	* src/nsterm.h (EmacsLayer):
	* src/nsterm.m ([EmacsView makeBackingLayer]):
	([EmacsView unlockFocus]):
	([EmacsView windowDidChangeBackingProperties:]):
	([EmacsView copyRect:to:]): Remove any code required for macOS 10.13
	and below, and fix the #if's to enforce strict separation of the
	drawing paths.
	(ns_update_end):
	(ns_unfocus): Fix #ifs so that flushWindow is called on old macOS
	versions as well as GNUstep.

2022-04-08  Eli Zaretskii  <eliz@gnu.org>

	Update and fix instructions and scripts for updating the Web pages

	* admin/admin.el (manual-html-fix-index-2): Support Texinfo 6.8
	and later by not converting TOC menus into tables.  (Bug#49719)
	* admin/upload-manuals (New directory): Invoke "cvs add" in
	$webdir, to pick up the correct CVSROOT.
	* admin/make-tarball.txt: Update the section about the Emacs Web
	pages.

	* etc/refcards/Makefile (pl-refcard.dvi): If mex.fmt cannot be
	found, invoke 'mex' instead of 'tex'.

2022-04-08  Paul Eggert  <eggert@cs.ucla.edu>

	Fix pacifying gcc -Wanalyzer-null-dereference

	* src/xterm.c (handle_one_xevent): Use eassume not eassert.
	eassert (X)’s suppress_checking does not let GCC assume X.

2022-04-08  Mattias Engdegård  <mattiase@acm.org>

	Rename mark_stack to mark_c_stack

	This is the function that marks the C stack.  Avoid confusion with the
	new mark stack, a stack used in the GC mark phase.

	* src/alloc.c (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK)
	(mark_stack, mark_c_stack):
	* src/lisp.h:
	* src/thread.c (mark_one_thread): Rename mark_stack to mark_c_stack.

2022-04-08  Mattias Engdegård  <mattiase@acm.org>

	Enable warnings when building as a developer with Clang

	The configure-script logic that automatically enables warnings when
	building in a development tree didn't work for Clang because it was
	identified as an old GCC version.

	* configure.ac: Don't test Clang version as if it were GCC.

2022-04-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve package.el error messages on too-old Emacsen

	* lisp/emacs-lisp/package.el (package-compute-transaction): Give a
	better error message on too-old Emacs versions (bug#54747).

2022-04-08  Po Lu  <luangruo@yahoo.com>

	Recommend that the user turn off memory overcommit

	* doc/emacs/trouble.texi (Memory Full): Tell the user that Emacs
	behaves best with overcommit off, and how to turn it off.

2022-04-08  Michael Albinus  <michael.albinus@gmx.de>

	Extend tramp-archive-test45-auto-load

	* test/lisp/net/tramp-archive-tests.el (tramp-archive-test45-auto-load):
	Extend test.

2022-04-08  Michael Albinus  <michael.albinus@gmx.de>

	Ensure local `default-directory' in Tramp when needed

	* lisp/net/tramp.el (tramp-process-running-p): Ensure local
	`default-directory' when calling `list-system-processes' and
	`process-attributes'.

2022-04-08  Po Lu  <luangruo@yahoo.com>

	Interpolate scrolls coming from mice by default

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-interpolate-mice): New
	user option.
	(pixel-scroll-precision): If the class of the last event device
	is `mouse', interpolate the next scroll.

2022-04-08  Michael Albinus  <michael.albinus@gmx.de>

	Ensure local `default-directory' when calling `process-attributes'.

	* lisp/server.el (server-running-p):
	* lisp/subr.el (memory-limit): Ensure local `default-directory'
	when calling `process-attributes'.

2022-04-08  Po Lu  <luangruo@yahoo.com>

	Fix GC marking of input events with devices

	* src/keyboard.c (mark_kboards):
	* src/pgtkterm.c (mark_pgtkterm): Mark `device' as well.

2022-04-08  Eli Zaretskii  <eliz@gnu.org>

	Clarify "idleness" in the ELisp manual

	* doc/lispref/os.texi (Idle Timers): Clarify that waiting for
	input with timeout doesn't make Emacs idle.  Suggested by Ignacio
	<ignaciocasso@hotmail.com>.  (Bug#54371)

2022-04-08  Po Lu  <luangruo@yahoo.com>

	Implement support for reporting device names on PGTK

	* lisp/frame.el (device-class): Add new function.
	* lisp/term/pgtk-win.el (pgtk-device-class): New function.
	* src/pgtkterm.c (pgtk_device_added_or_removal_cb)
	(pgtk_seat_added_cb, pgtk_seat_removed_cb)
	(pgtk_enumerate_devices)
	(pgtk_free_devices, pgtk_regenerate_devices)
	(pgtk_get_device_for_event): New functions.
	(mark_pgtkterm): Mark device data.
	(pgtk_delete_terminal): Delete device data.
	(pgtk_handle_event, key_press_event, note_mouse_movement)
	(construct_mouse_click, button_event, scroll_event)
	(drag_data_received): Set device correctly.
	(pgtk_term_init): Initialize device data and seat tracking.
	(pgtk_delete_display): Delete device data.
	* src/pgtkterm.h (struct pgtk_device_t): New struct.
	(struct pgtk_display_info): New field `devices'.  Delete lots of
	unused macros and reformat comments.

2022-04-08  Po Lu  <luangruo@yahoo.com>

	* lisp/term/x-win.el (x-device-class): Detect more keyboards.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	Ignore input extension errors caused by grabbing

	* src/xterm.c (x_error_handler): Ignore GrabDevice and
	UngrabDevice errors.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	* lisp/term/x-win.el (x-device-class): Detect "USB USB Keykoard"s.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	Add code for determining the type of an input device

	* doc/lispref/commands.texi (Command Loop Info):
	* etc/NEWS: Update documentation and announce `device-class'.

	* lisp/frame.el (x-device-class):
	(device-class):
	* lisp/term/x-win.el (x-device-class): New functions.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	Fix reporting of last-event-device for synthetic events

	* src/keyboard.c (read_char): Clear `last-event-device' earlier.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	Make device reporting work for tool bar clicks

	* src/dispextern.h: Update prototyupes.
	* src/xdisp.c (handle_tool_bar_click): Pass Qt to that function
	instead.
	(handle_tool_bar_click_with_device): New function.
	* src/xterm.c (handle_one_xevent): Pass device to tool bar click
	logic.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Fix build warning on non-GTK builds.

2022-04-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/simple.el: Use #' in new code

	* lisp/simple.el (minibuffer-local-shell-command-map): Use #' to quote
	function names.

2022-04-07  Matthias Meulien  <orontee@gmail.com>

	Display file mode information when diff font lock prettify enabled

	* lisp/vc/diff-mode.el (diff--font-lock-prettify): Make regexp capture
	file mode information.

2022-04-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	OClosure: New function `function-documentation`

	As mentioned in the original OClosure commit, OClosures (ab)use the
	bytecode's docstring slot to hold the OClosure's type.  This currently
	prevents OClosures from having their own docstring.

	Introduce a new generic function `function-documentation` to fetch the
	docstring of a function, which can then be implemented in various
	different ways depending on the OClosure's type.

	* lisp/simple.el (function-documentation): New generic function.
	(bad-package-check): Strength-reduce `eval` to `symbol-value`.
	* src/doc.c (Fdocumentation): Use it.

	* lisp/emacs-lisp/oclosure.el (oclosure--accessor-docstring): New function.
	* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test):
	Add test for accessor's docstrings.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	Expose the name of an event's input device to Lisp

	This name can be used to identify the device for special
	treatment, i.e. only interpolating scrolls coming from mice and
	not touchpads inside pixel-scroll-precision-mode.

	* doc/lispref/commands.texi (Command Loop Info): Document new
	variable `last-event-device'.
	* etc/NEWS: Announce new variable `last-event-device'.
	* src/frame.h (struct frame): New field `last_mouse_device'.
	* src/keyboard.c (read_char): Clear last-event-device.
	(kbd_buffer_get_event): Set last-event-device to the event's
	recorded device.
	(init_keyboard): Clear last-event-device.
	(syms_of_keyboard): New defvar `last-event-device'.
	* src/termhooks.h (struct input_event): New field `device'.
	(EVENT_INIT): Set it to the special value `Qt' by default.
	* src/xterm.c (x_init_master_valuators): Record the device's
	name.
	(x_dnd_begin_drag_and_drop): Only preserve last event device if
	the mouse ended up in the source frame.
	(x_note_mouse_movement): New argument `source'.
	(handle_one_xevent): Set input event sources whenever
	appropriate.
	(mark_xterm): Mark device names.

	* src/xterm.h (struct xi_device_t): New field `name'.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	Fix xwidget smooth scrolling when the default pointer is not a touchpad

	* xwidget.c (find_suitable_pointer): New argument
	`need_smooth'.  Try to find a touchpad if that is set.
	(xwidget_button_1, xwidget_button, xwidget_motion_notify)
	(xwidget_scroll, xwidget_pinch, xw_notify_virtual_upwards_until)
	(xw_notify_virtual_downwards_until):
	(xw_maybe_synthesize_crossing):
	(xwidget_motion_or_crossing, synthesize_focus_in_event): Set
	parameter accordingly.

2022-04-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify read-answer-short/use-short-answers action

	* lisp/emacs-lisp/map-ynp.el (read-answer-short): Clarify what
	this variable affects (bug#54754).

	* src/fns.c (Fyes_or_no_p): Mention `use-short-answers'.

2022-04-07  Andrew G Cohen  <cohen@andy.bu.edu>

	Encrypt some parameters in auth-source plstore backend

	The auth-source plstore backend allows a list of extra parameters but
	currently stores them all unencrypted.  This allows a plist with
	:unencrypted and :encrypted keys to specify which extra parameters to
	encrypt in the plstore file.

	* lisp/auth-source.el (auth-source-plstore-create): Allow specifying
	both unencrypted and encrypted extra parameters.

2022-04-07  Jai Flack  <jflack@disroot.org>

	Add a mu backend for gnus-search

	* lisp/gnus-search.el (gnus-search-mu-program): New defcustom
	(gnus-search-mu-switches): New defcustom
	(gnus-search-mu-remove-prefix): New defcustom
	(gnus-search-mu-config-directory): New defcustom
	(gnus-search-mu-raw-queries-p): New defcustom
	(gnus-search-mu): New subclass of gnus-search-indexed
	(gnus-search-transform-expression): New method
	(gnus-search-mu-handle-date): New function
	(gnus-search-mu-handle-flag): New function
	(gnus-search-indexed-extract): New method
	(gnus-search-indexed-search-command): New method (bug#54662).

2022-04-07  Jürgen Hötzel  <juergen@archlinux.org>

	Use correct signal oldset in posix_spawn implementation

	posix_spawn was restoring the wrong signal set, which still had
	SIGCHLD and SIGINT masked, causing problems with child processes that
	spawned child processes.  (Bug#54667)

	See the thread ending at
	https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00067.html
	for more details.

	* src/callproc.c (emacs_spawn): Pass oldset parameter.
	(emacs_posix_spawn_init_attributes): Use correct oldset.
	(emacs_posix_spawn_init): Remove intermediate function.

	(cherry picked from commit 8103b060d89ac63a12c439087bd46c30da72cd97)

2022-04-07  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp-integration.el: Don't require files-x.

2022-04-07  Felix Dietrich  <felix.dietrich@sperrhaken.name>  (tiny change)

	Fix error in tramp-archive-autoload-file-name-handler

	* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-handler):
	Always call `tramp-autoload-file-name'.  Otherwise, when
	`tramp-archive-enabled’ is nil and
	`tramp-archive-autoload-file-name-handler’ is in the
	`file-name-handler-alist’ results in an error “Invalid handler in
	`file-name-handler-alist” once Emacs calls
	`tramp-archive-autoload-file-name-handler’ with a handler that
	does not expect nil.  Always returning nil is also false in
	general.

2022-04-07  Michael Albinus  <michael.albinus@gmx.de>

	Commit missing file from previous commit (Do not merge with master)

	Commit missing file from previous commit

2022-04-07  Michael Albinus  <michael.albinus@gmx.de>

	Merge with Tramp 2.5.2.3 (Do not merge with master)

	* doc/misc/tramp.texi (Archive file names): Explicitly say how to
	open an archive with Tramp (Bug#25076).

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el: Change version to "2.5.3-pre".

	* lisp/net/tramp-adb.el (tramp-adb-handle-process-file)
	* lisp/net/tramp-sh.el (tramp-sh-handle-process-file):
	* lisp/net/tramp-smb.el (tramp-smb-handle-process-file):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file):
	Improve implementation.  (Bug#53854)

	* lisp/net/tramp-adb.el (tramp-adb-tolerate-tilde):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-tolerate-tilde):
	New defuns.  Advice `shell-mode' with them.

	* lisp/net/tramp.el (tramp-register-autoload-file-name-handlers):
	* lisp/net/tramp-archive.el (tramp-register-archive-file-name-handler):
	Check, whether the real file name handler is already registered.
	rules.  (Bug#54542)

	* lisp/net/tramp.el (tramp-autoload-file-name-handler)
	(tramp-register-autoload-file-name-handlers)
	(tramp-unload-file-name-handlers, tramp-unload-tramp):
	* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp)
	(tramp-archive-autoload-file-name-handler)
	(tramp-register-archive-file-name-handler):
	Add `tramp-autoload' property.

	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	Use `tramp-handle-file-notify-add-watch',
	`tramp-handle-file-notify-rm-watch' and
	`tramp-handle-file-notify-valid-p'.

	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	Use `tramp-handle-insert-file-contents'.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
	* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
	* lisp/net/lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
	* tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection): Do not
	set "lock-pid" connection-property.
	(tramp-sudoedit-handle-delete-file): Use "rm -f".

	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-executable-p):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-executable-p):
	Check also for setuid/setgid bit.
	(tramp-gvfs-handle-expand-file-name):
	Respect `tramp-tolerate-tilde'.

	* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
	* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
	Do not modify disk space information when
	`dired--insert-disk-space' is available.  (Bug#54512)

	* lisp/net/tramp-sh.el (tramp-maybe-open-connection): Extend suppression
	(tramp-get-remote-dev-tty): New defun.
	(tramp-sh-handle-make-process): Use it.

	* lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>:
	Add "-t -t" to `tramp-login-args'.
	Add "-o dir_cache=no" to `tramp-mount-args'.  (Bug#54126)
	Add "-o transform_symlinks" to `tramp-mount-args'.
	(tramp-sshfs-file-name-handler-alist):
	Use `tramp-sshfs-handle-file-writable-p'.
	(tramp-sshfs-handle-file-writable-p): New defun.  (Bug#54130)
	(tramp-sshfs-handle-write-region): Set file modification time.
	(Bug#54016)
	(tramp-sshfs-file-name-handler-alist):
	Use `tramp-sshfs-handle-set-file-times'.
	(tramp-sshfs-handle-set-file-times): New defun.

	* test/lisp/net/tramp-tests.el (tramp--test-expensive-test-p):
	Rename from `tramp--test-expensive-test'.  Make it a defun.  Adapt
	all callees.
	(tramp-test07-file-exists-p, tramp-test14-delete-directory)
	(tramp-test18-file-attributes, tramp-test20-file-modes)
	(tramp-test28-process-file, tramp-test29-start-file-process)
	(tramp-test30-make-process, tramp-test32-shell-command)
	(tramp-test33-environment-variables, tramp--test-check-files)
	(tramp--test-special-characters, tramp-test46-unload): Adapt tests.
	(tramp-test39-detect-external-change): New test.
	(tramp-test29-start-file-process)
	(tramp--test--deftest-direct-async-process)
	(tramp-test30-make-process, tramp-test31-interrupt-process)
	(tramp-test34-explicit-shell-file-name)
	(tramp-test44-asynchronous-requests):
	Add :tramp-asynchronous-processes tag.
	(tramp--test-asynchronous-processes-p): New defun.
	(tramp--test-hpux-p, tramp--test-macos-p): Protect against errors.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	Fix error when calling DND movement tracking function

	* src/xterm.c (x_dnd_begin_drag_and_drop): Verify
	x_dnd_movement_x and x_dnd_movement_y are wholenums before
	calling posn-at-x-y.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (xm_write_targets_table): Remove extra XGrabServer pair.

2022-04-07  Po Lu  <luangruo@yahoo.com>

	Fix DND bugs on GTK

	* src/xterm.c (handle_one_xevent): Don't let some client
	messages reach the toolkit.

2022-04-06  Po Lu  <luangruo@yahoo.com>

	Remove more code mindlessly copied from NS

	* src/pgtkfns.c (Fx_open_connection):
	* src/pgtkselect.c (nxatoms_of_pgtkselect):
	* src/pgtkselect.h:
	* src/pgtkterm.h: Delete `nxatoms_of_pgtkselect'.

2022-04-06  Po Lu  <luangruo@yahoo.com>

	Fix sending unsupported drops when there is no target but a toplevel

	* src/xterm.c (handle_one_xevent): Send unsupported drops to
	last seen toplevel if no target was found.

2022-04-06  Po Lu  <luangruo@yahoo.com>

	Improve doc of x-begin-drag

	* doc/lispref/frames.texi (Drag and Drop): Fix typos and clarify
	meaning of XdndActionPrivate.

2022-04-06  Po Lu  <luangruo@yahoo.com>

	Return an appropriate action when performing unsupported drop

	* src/xterm.c (x_dnd_send_unsupported_drop): Set action to
	XdndActionPrivate.

2022-04-06  Po Lu  <luangruo@yahoo.com>

	* src/xselect.c (x_atom_to_symbol): Add XdndSelection.

2022-04-06  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	Fix ses-tests.el

	* lisp/ses.el (ses-jump-cell-name-function): Docstring typo.

	* test/lisp/ses-tests.el (ses--cells, foo, bar, B2, toto): Do not
	do any outer defvar, but set the defvar only under the
	with-suppressed-warnings directive to silence the byte-compiler.

2022-04-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/ses.el: Fix 80-column-docstring warnings

	Also remove redundant `:group` args and prefer #' to quote function names.

2022-04-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-generic.el: Fix bug#46722

	Fix longstanding bug due to unexpected interference via side-effect.

	* lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher):
	Copy the `dispatch` arg before storing it into the hash-table.

	Backport from `master` (cherrypick from commit 61f8f7f68f).

2022-04-06  João Távora  <joaotavora@gmail.com>

	Solve flymake diagnostics synchronization problems

	A diagnostics-lazy server is one who doesn't re-report already
	reported diagnostics when it received textDocument/didSave.

	Such is the case of Clangd, for example.  Before this change, saving
	an Eglot/Clang-managed buffer with some diagnostics caused the Flymake
	indicator to display Wait[0 0] until some change was actually done to
	the buffer.

	That is because Flymake, by default, wants diagnostics on buffer save,
	per flymake-start-on-save-buffer.  But it doesn't work to simply turn
	that off.  That's because if one types something and quickly saves,
	and the LSP diagnostics do come in after the save (for some reason,
	like server latency), then Flymake sometimes doesn't request any
	diagnostics at all.

	The reason for the Flymake behavior wasn't investigated, but that
	wasn't a very good solution either

	Rather this change makes it so that when such a Flymake request comes
	in, it always gets served immediately with the latest information.
	The latest information is now always stored in eglot--diagnostics,
	with eglot--unreported-diagnotics being removed.  The up-to-date list
	is reported to Flymake whenever it requests it.  It is updated
	whenever the LSP server decides to.

	* eglot.el (eglot--last-reported-diagnostics): Delete.
	(eglot--unreported-diagnostics): Delete.
	(eglot--diagnostics): New variable..
	(eglot--maybe-activate-editing-mode): Use eglot--diagnostics.
	(eglot-handle-notification): Set eglot--diaggnostics.
	(eglot-flymake-backend): Read eglot--diagnostics. Always report.
	(eglot--report-to-flymake): Set eglot--diagnostics.

2022-04-06  Po Lu  <luangruo@yahoo.com>

	Get rid of extra sync looking up window through XTranslateCoordinates

	* src/xterm.c (x_dnd_get_wm_state_and_proto): Return proxy as
	well.
	(x_dnd_get_target_window): Use that proxy.

2022-04-06  Po Lu  <luangruo@yahoo.com>

	Move some X11 drag and drop processing to Lisp

	* lisp/term/x-win.el: Set unsupported drop function.
	* lisp/x-dnd.el (x-dnd-handle-unsupported-drop): New function.
	* src/keyboard.c (kbd_buffer_get_event): Handle
	UNSUPPORTED_DROP_EVENT.
	* src/termhooks.h (enum event_kind): New event
	`UNSUPPORTED_DROP_EVENT'.
	* src/xterm.c (x_dnd_send_unsupported_drop): Send those events
	instead.
	(x_dnd_do_unsupported_drop): Move actual unsupported drop
	handling here.
	(syms_of_xterm): New variable `x-dnd-unsupported-drop-function'.
	* src/xterm.h: Update prototypes.

2022-04-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix minor-mode doc string quoting

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): Fix
	double quoting of things like (default-value 'electric-pair-mode)
	(bug#54746).

2022-04-06  Davide Masserut  <dm@mssdvd.com>

	Make the Foot terminal an alias of xterm-256color

	* lisp/faces.el (term-file-aliases): Make the foot terminal an alias
	of xterm-256color (bug#54739).

2022-04-06  Kien Nguyen  <kien.n.quang@gmail.com>

	Make file-name-split returns driver name as well in Windows

	* lisp/files.el (file-name-split): Returns driver name as well in
	Windows.
	* lisp/net/browse-url.el (browse-url-file-url): Don't hexify colon
	character in file path for Windows (bug#54721).

2022-04-06  Davide Masserut  <dm@mssdvd.com>

	Add .bashrc detection to sh-mode

	* lisp/progmodes/sh-script.el (sh-mode): Add .bashrc string-match
	(bug#54727).

2022-04-06  Markus Kopp  <markus.kopp@student.uibk.ac.at>

	Use CUA functions to scroll pages with pixel-scroll-scroll-mode

	* lisp/pixel-scroll.el (pixel-scroll-interpolate-down)
	(pixel-scroll-interpolate-up): Use `cua-scroll-up' and
	`cua-scroll-down' to scroll if
	`pixel-scroll-precision-interpolate-page' is off.  (bug#54696)

2022-04-06  Po Lu  <luangruo@yahoo.com>

	Prevent races when trying to set Motif drag window

	* src/xterm.c (xm_get_drag_window): Grab temp connection when
	setting the drag window.

2022-04-06  Michael Albinus  <michael.albinus@gmx.de>

	Revert unneeded change in tramp-integration.el

	* lisp/net/tramp-integration.el:
	Apply `connection-local-set-profiles' w/o retrieving old values.

2022-04-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix URL-related typos in comments and messages

	* lisp/ffap.el (ffap-next): Fix typo in message.
	* lisp/finder.el (finder-commentary): Fix typo in comment.

2022-04-06  Po Lu  <luangruo@yahoo.com>

	Improve safety of haiku-drag-message

	* lisp/term/haiku-win.el (haiku-drag-and-drop): Ignore
	placeholder message.
	* src/frame.c (delete_frame): Prevent deleting drop source frame
	on Haiku.
	* src/haiku_support.cc (RELEASE_NOW, CANCEL_DROP): New message
	types.
	(class EmacsView, MessageReceived): Handle new message types.
	(be_drag_message): Drag CANCEL_DROP message on quit; also send
	RELEASE_NOW to view if quitting.

	* src/haikuselect.c (syms_of_haikuselect)
	(haiku_unwind_drag_message): Clear new frame variable.
	(Fhaiku_drag_message): Set new frame variable.
	* src/haikuterm.h: Update prototypes.

2022-04-06  Po Lu  <luangruo@yahoo.com>

	Clean up more PGTK code

	* lisp/term/pgtk-win.el (featurep):
	(pgtk):
	(pgtk-use-im-context):
	(pgtk-handle-nxopen):
	(pgtk-handle-nxopentemp):
	(pgtk-ignore-1-arg):
	([C-drag-n-drop]):
	([M-drag-n-drop]):
	([C-M-drag-n-drop]):
	(pgtk-alternate-modifier):
	(pgtk-right-alternate-modifier):
	(pgtk-right-command-modifier):
	(pgtk-right-control-modifier):
	(pgtk-do-hide-emacs):
	(pgtk-hide-others):
	(pgtk-do-hide-others):
	(pgtk-emacs-info-panel):
	(pgtk-do-emacs-info-panel):
	(pgtk-next-frame):
	(pgtk-prev-frame):
	(after-make-frame-functions):
	(tool-bar-mode):
	(pgtk-toggle-toolbar):
	(pgtk-print-buffer):
	(scalable-fonts-allowed):
	(pgtk-standard-fontset-spec):
	(pgtk-store-cut-buffer-internal):
	(pgtk-copy-including-secondary):
	(pgtk-paste-secondary):
	(pgtk-suspend-error):
	(window-system-initialization):
	(after-init-hook): Remove code mindlessly copied from ns-win.el,
	delete unused custom group, write doc strings and rename
	variables duplicated from X to their names on X.  Also reformat
	comments and code.
	(pgtk-use-im-context-handler): New function.

	* src/pgtkfns.c (syms_of_pgtkfns): Delete useless
	AppleScript (!) code copied from NS.
	* src/pgtkselect.c: Write FIXME about selection API usage.

	* src/pgtkterm.c (get_keysym_name): Implement correctly instead
	of sprintf'ing the numeric value of the keysym into a static
	buffer.
	(pgtk_set_window_size):
	(xg_scroll_callback): Delete code that was #if 0'd out and
	doesn't make sense on PGTK.
	(pgtk_delete_terminal): Remove misleading comment.

2022-04-05  Po Lu  <luangruo@yahoo.com>

	* src/emacs.c (main): Improve accuracy of daemon warning message on PGTK.

	* src/xterm.c (x_dnd_send_unsupported_drop): Also handle TEXT target.

2022-04-05  Po Lu  <luangruo@yahoo.com>

	Preserve contents of PRIMARY when sending unsupported drop

	* src/xterm.c (x_dnd_send_unsupported_drop): Set local value of
	PRIMARY to the preexisting selection value, if any.

2022-04-05  Paul Eggert  <eggert@cs.ucla.edu>

	Port Org encode-time usage back to Emacs 25

	* lisp/org/ol.el (org-store-link):
	* lisp/org/org-clock.el (org-clock-sum)
	(org-clock-update-time-maybe):
	* lisp/org/org-colview.el (org-colview-construct-allowed-dates):
	* lisp/org/org-macro.el (org-macro--vc-modified-time):
	* lisp/org/org-macs.el (org-2ft, org-matcher-time):
	* lisp/org/org-table.el (org-table-eval-formula):
	* lisp/org/org.el (org-read-date, org-display-custom-time)
	(org-time-string-to-time, org-timestamp-change):
	Don’t assume Emacs 27 encode-time, since standalone Org still
	works with Emacs 25 and it’s easier if we minimize differences
	from standalone Org.  Problem reported by Max Nikulin (Bug#54731).
	This reverts much of 2021-12-16T17:40:21Z!eggert@cs.ucla.edu.

2022-04-05  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Assert that hold_quit is present instead.

2022-04-05  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -Wanalyzer-null-dereference

	* src/xterm.c (handle_one_xevent): Don’t dereference HOLD_QUIT if
	it’s null.  Potential problem found with gcc 11.2.1 20220127 (Red
	Hat 11.2.1-9), when configured with --enable-gcc-warnings.

2022-04-05  Juri Linkov  <juri@linkov.net>

	Allow completion wrapping in minibuffer completion navigation commands

	* lisp/minibuffer.el (minibuffer-previous-completion)
	(minibuffer-next-completion): Don't set completion-wrap-movement.

2022-04-05  Glenn Morris  <rgm@gnu.org>

	* test/lisp/ses-tests.el: Require ert-x, for ert-simulate-keys.

2022-04-05  Juri Linkov  <juri@linkov.net>

	New commands for navigating completions from the minibuffer.

	* lisp/simple.el (minibuffer-local-shell-command-map):
	* lisp/minibuffer.el (minibuffer-local-completion-map):
	Bind "M-<up>" to minibuffer-choose-previous-completion,
	"M-<down>" to minibuffer-choose-next-completion,
	"M-S-<up>" to minibuffer-previous-completion,
	"M-S-<down>" to minibuffer-next-completion,
	"M-RET" to minibuffer-choose-completion.
	(with-minibuffer-completions-window): New macro.
	(minibuffer-previous-completion, minibuffer-next-completion)
	(minibuffer-choose-previous-completion)
	(minibuffer-choose-next-completion)
	(minibuffer-choose-completion): New commands.

	https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00335.html

2022-04-05  Juri Linkov  <juri@linkov.net>

	Use base prefix and suffix instead of completion-base-position (bug#49931)

	* lisp/minibuffer.el (minibuffer-completion-help):
	Set completion-base-affixes from base-prefix and base-suffix.
	In completion-list-insert-choice-function handle
	string values of start/end as prefix/suffix.

	* lisp/simple.el (completion-base-affixes)
	(completion-use-base-affixes): New variables.
	(choose-completion): Let-bind base-affixes to completion-base-affixes.
	Use base-affixes when completion-use-base-affixes is non-nil.
	(completion-setup-function): Sync values of base-affixes and
	completion-base-affixes.

2022-04-05  Juri Linkov  <juri@linkov.net>

	Choosing a completion with a prefix argument doesn't exit the minibuffer

	* lisp/simple.el (choose-completion): New optional args NO-EXIT and NO-QUIT.
	(bug#47417)

2022-04-05  Eli Zaretskii  <eliz@gnu.org>

	Fix fallout from lexical-binding in vhdl-mode.el

	* lisp/progmodes/vhdl-mode.el (vhdl-update-sensitivity-list): Fix
	production of a list with embedded function calls.  (Bug#54730)

2022-04-05  Juri Linkov  <juri@linkov.net>

	* test/lisp/replace-tests.el: New tests for query-replace (bug#54733)

	* test/lisp/replace-tests.el (query-replace-tests): New defconst.
	(query-replace--perform-tests): New function.
	(query-replace-tests, query-replace-search-function-tests): New ert-deftest.

2022-04-05  Robert Pluim  <rpluim@gmail.com>

	Reject invalid time-string in appt-add immediately

	* lisp/calendar/appt.el (appt-add): Check the provided time-string for
	validity immediately after reading it rather than after reading all
	the parameters.  (Bug#54210)

2022-04-05  Billy.Zheng  <vil963@gmail.com>  (tiny change)
	    João Távora

	Update invocation for out-of-box dart ls support

	* eglot.el (eglot-server-programs): Tweak dart-mode entry.

	* README.md: Tweak Dart entry.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/862

2022-04-05  Michael Albinus  <michael.albinus@gmx.de>

	Handle remote system processes

	* doc/lispref/files.texi (Magic File Names):
	Add list-system-processes and process-attributes.

	* doc/lispref/processes.texi (System Processes): Document changes
	in list-system-processes and process-attributes.

	* doc/misc/tramp.texi (Customizing Completion): Use @ftable.
	(Remote processes): Document changes in list-system-processes and
	process-attributes.

	* etc/NEWS: Document changes in proced, list-system-processes and
	process-attributes.

	* lisp/proced.el (proced-show-remote-processes): New defcustom.
	(proced-remote-directory): Remove.
	(proced-filter-alist): Use it.
	(proced-user-name): New defun.
	(proced-available): Set it to t.
	(proced-mode): Adapt docstring.
	(proced): Adapt docstring.  Acknowledge prefix argument.
	(proced-format): Change initialization of `standard-attributes'.
	(proced-send-signal, proced-renice): Adapt docstring.  Remove
	special handling of prefix argument.

	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	Add 'list-system-processes' and `process-attributes'.

	* lisp/net/tramp-integration.el (files-x): Require `files-x'.
	(tramp-bsd-process-attributes-ps-args)
	(tramp-bsd-process-attributes-ps-format)
	(tramp-connection-local-bsd-ps-variables)
	(tramp-busybox-process-attributes-ps-args)
	(tramp-busybox-process-attributes-ps-format)
	(tramp-connection-local-busybox-ps-variables):
	* lisp/net/tramp-adb.el (tramp-adb-connection-local-default-ps-variables):
	New defconsts.  Add them to connection-local variables.

	* lisp/net/tramp.el (tramp-file-name-for-operation):
	Add 'list-system-processes' and `process-attributes'.
	(tramp-process-attributes-ps-args)
	(tramp-process-attributes-ps-format): New defconsts.
	(tramp-ps-time, tramp-get-process-attributes)
	(tramp-handle-list-system-processes)
	(tramp-handle-process-attributes): New defuns.

	* src/process.c (Flist_system_processes, Fprocess_attributes):
	Support remote system processes.
	(Qlist_system_processes, Qprocess_attributes): Declare symbols.

2022-04-05  Po Lu  <luangruo@yahoo.com>

	Mark some data during drag-and-drop

	It doesn't make sense to prevent the return frame or movement
	frame from being deleted, but we should at least protect them
	from garbage collection.

	* src/alloc.c (garbage_collect): Call mark_xterm.
	* src/xterm.c (x_dnd_begin_drag_and_drop)
	(x_dnd_cleanup_drag_and_drop): Clear movement and return frames
	upon DND completion.
	(mark_xterm): Mark those frames.
	* src/xterm.h: Update prototypes.

2022-04-05  Jimmy Aguilar Mena  <spacibba@aol.com>

	Fix some details in completions

	* lisp/minibuffer.el (completion--insert-one-column) : Remove the extra
	new-line at the end.
	* lisp/simple.el (next-completion) : Fix behavior when
	completion-wrap-movement and remove bobp and eobp. This removes the
	extra tab ad the end of the list before wrapping or going to the
	minibuffer and apparently also fixes bug#54374
	(switch-to-completions) : Simplify condition code and remove comment not
	applicable anymore.

2022-04-05  Po Lu  <luangruo@yahoo.com>

	Allow dropping text to the root window

	* src/xterm.c (x_dnd_send_unsupported_drop): Allow dropping to
	the root window.
	(handle_one_xevent): Send unsupported drops to the last toplevel
	instead of the target window.

2022-04-04  Po Lu  <luangruo@yahoo.com>

	Add support for dragging text onto windows that don't support any DND protocol

	* src/xselect.c (x_own_selection): Export function.
	(x_handle_selection_request): Handle selection requests to the
	pending DND time.
	(x_set_pending_dnd_time): New function.

	* src/xterm.c (x_dnd_send_unsupported_drop): New function.
	Implement according to the suggestions in the XDND protocol
	specification.
	(x_dnd_get_target_window): Return the toplevel window as well.
	(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
	(x_dnd_update_state, handle_one_xevent): Send unsupported drops
	and use last seen toplevel instead of target for `return_frame'.
	* src/xterm.h: Update prototypes.

2022-04-04  Po Lu  <luangruo@yahoo.com>

	* configure.ac (HAVE_GIF): Respect --with-gif on PGTK.  (bug#54633)

2022-04-04  Po Lu  <luangruo@yahoo.com>

	Respect new DND options when dragging to ourselves on Haiku

	* lisp/mouse.el (mouse-drag-and-drop-region): Allow dragging to
	the current frame if we know `return-frame' doesn't work.
	* lisp/term/haiku-win.el (haiku-dnd-drag-handler): New function.
	* src/haiku_support.cc (MouseMoved): Don't send drag motion
	events for the drag frame.
	* src/haikuselect.c (haiku_note_drag_motion_1)
	(haiku_note_drag_motion_2, haiku_note_drag_motion): New
	functions.
	(syms_of_haikuselect): New variable `haiku-drag-track-function'.
	* src/haikuterm.c (haiku_read_socket): Note mouse motion in that
	case.q
	* src/haikuterm.h: Update prototypes.

2022-04-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/cc-cmds.el (indent-new-comment-line): Delete advice

	This piece of advice was effective only for Emacs<20.1 and old XEmacs
	(at least older than Aug 2007).

2022-04-04  Damien Cassou  <damien.cassou@gmail.com>

	Update use-package.texi

2022-04-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	OClosure: add support for `slot-value`

	* lisp/emacs-lisp/oclosure.el (oclosure--slot-index)
	(oclosure--slot-value, oclosure--set-slot-value): New functions.

	* lisp/emacs-lisp/eieio-core.el (eieio-oset, eieio-oref):
	Consolidate the type test.  Use `oclosure--(set-)slot-value`.
	(eieio--validate-slot-value, eieio--validate-class-slot-value):
	Don't presume `class` is an EIEIO class.
	(eieio--class): Fix bogus `:type` info.
	(eieio--object-class): Simplify.
	(eieio--known-slot-name-p): New function.
	(eieio-oref, eieio-oref-default, eieio-oset-default): Use it.

	* test/lisp/emacs-lisp/oclosure-tests.el: Require `eieio`.
	(oclosure-test): Make `name` field mutable.
	(oclosure-test-slot-value): New test.

2022-04-04  Vincent Belaïche  <vincentb1@users.sourceforge.net>

	SES with case insensitive cell names for jumping.

	* doc/misc/ses.texi (The Basics): Document that ses-jump may be
	customized.
	(Customizing @acronym{SES}): Document new customizations for ses-jump.

	* lisp/ses.el (ses-jump-cell-name-function)
	(ses-jump-prefix-function): New defcustoms.
	(ses-jump-prefix): New defun.
	(ses-jump): Make ses-jump use the new defcustoms.

	* test/lisp/ses-tests.el (ses-jump-B2-prefix-arg)
	(ses-jump-B2-lowcase, ses-jump-B2-lowcase-keys)
	(ses-jump-B2-symbol, ses-jump-B2-renamed): New tests.

2022-04-04  Mattias Engdegård  <mattiase@acm.org>

	Reduce GC mark-phase recursion by using explicit stack (bug#54698)

	An explicit stack of objects to be traversed for marking replaces
	recursion for most common object types: conses, vectors, records, hash
	tables, symbols, functions etc.  Recursion is still used for other
	types but those are less common and thus not as likely to cause a
	problem.

	The stack grows dynamically as required which eliminates almost all C
	stack overflow crashes in the GC.  There is also a nontrivial GC
	performance improvement.

	* src/alloc.c (GC_REMEMBER_LAST_MARKED, GC_CDR_COUNT): New.
	(mark_char_table, struct mark_entry):
	Remove (subsumed into process_mark_stack).
	(struct mark_entry, struct mark_stack, mark_stk)
	(mark_stack_empty_p, mark_stack_pop, grow_mark_stack)
	(mark_stack_push_value, mark_stack_push_values)
	(process_mark_stack): New.
	(mark_object, mark_objects):
	Just push the object(s) and let process_mark_stack do the work.

2022-04-04  Jürgen Hötzel  <juergen@archlinux.org>

	Use correct signal oldset in posix_spawn implementation

	posix_spawn was restoring the wrong signal set, which still had
	SIGCHLD and SIGINT masked, causing problems with child processes that
	spawned child processes.  (Bug#54667)

	See the thread ending at
	https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00067.html
	for more details.

	* src/callproc.c (emacs_spawn): Pass oldset parameter.
	(emacs_posix_spawn_init_attributes): Use correct oldset.
	(emacs_posix_spawn_init): Remove intermediate function.

2022-04-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	test/lisp/edmacro-tests.el: Adjust to recent changes

2022-04-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	edmacro.el: Silence warnings due to kmacro changes

	* lisp/edmacro.el (edit-kbd-macro): Use `kmacro-p` and kmacro accessors.
	(edmacro-finish-edit): Use `kmacro-p` and the new `kmacro` constructor.

2022-04-04  Po Lu  <luangruo@yahoo.com>

	Handle mouse movement correctly during DND from one of our own frames

	* lisp/dnd.el (dnd-handle-movement): Select the window specified
	in posn.
	* lisp/term/x-win.el (x-dnd-movement): New function.
	(x-dnd-movement-function): Set it as the default.
	* src/frame.c (delete_frame): Prevent deleting the drop source
	frame.
	* src/xterm.c (x_dnd_send_position): Set new mouse movement
	flags if the target window is one of our own frames.
	(x_dnd_begin_drag_and_drop): Call DND movement function whenever
	appropriate.
	(x_free_frame_resources): Remove useless code.
	(syms_of_xterm): New defvar `x-dnd-movement-function'.
	* src/xterm.h: Update prototypes.

2022-04-04  Po Lu  <luangruo@yahoo.com>

	Fix generation of extra DND events while dragging on Haiku

	* src/haiku_support.cc (be_drag_message): Set new DND flag.
	(be_drag_and_drop_in_progress): New function.
	* src/haiku_support.h: Update prototypes.
	* src/haikuterm.c (haiku_read_socket): Don't store DND motion
	events if DND is in progress.

2022-04-04  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c: Explain meaning of drag-and-drop state variables.

2022-04-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Further fixes for cl--generic-describe and (function ...)

	* lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Fix the #'
	problem for defmethods, too (bug#54628).

2022-04-04  João Távora  <joaotavora@gmail.com>

	Check textdocumentsync/willsave cap before sending it

	* eglot.el (eglot--guess-contact): Default language-id to educated
	guess when eglot--lookup-mode returns nil.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/823

2022-04-04  João Távora  <joaotavora@gmail.com>

	Guess language-id if manually entering server program

	* eglot.el (eglot--guess-contact): Default language-id to educated
	guess when eglot--lookup-mode returns nil.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/837

2022-04-04  João Távora  <joaotavora@gmail.com>

	Tweak eglot mode-line menus

	* eglot.el (eglot-manual): Rename from eglot-read-documentation
	(eglot-customize): Delete.
	(eglot-menu): Rename from eglot-menu-map.  Rework.
	(eglot--mode-line-format): Tweak.
	(eglot-menu-string): Rename from eglot-mode-line-string.
	(Flymake customization): New source section.

	* NEWS.md: Tweak.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/792

2022-04-04  Felicián Németh  <felician.nemeth@gmail.com>

	Rework eglot's mode-line

	Mimic flymake by replacing the old menus of the mode-line with
	"context menus".  List all useful commands under the main menu
	(eglot-menu-map), and commands related to LSP debugging under the
	project menu (eglot-debug-map).

	* eglot.el (eglot-read-documentation, eglot-customize): New
	commands.
	(eglot-mode-line-string): New defcustom.
	(eglot-menu-map, eglot-debug-map,): New variables.
	(eglot--mode-line-props): Rework to use eglot-menu-map and
	eglot-debug-map.
	(eglot--mode-line-format): Use eglot-mode-line-string.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/792

2022-04-04  João Távora  <joaotavora@gmail.com>

	Make eglot--plist-keys a simple (non-map.el) helper again

	This removes a nagging compilation warning when developing on Emacs
	master.

	There's not much point in depending on map.el just for this util.  And
	there' snot much point in making eglot--plist-keys go through a
	generic dispatching mechanism when we happen to know the thing
	being dispatched

	* eglot.el (eglot--plist-keys): Define in helpers section.

2022-04-04  Mattias Engdegård  <mattiase@acm.org>

	Inline call0..8

	Inlining these trivial functions gives a healthy speed boost to many
	common functions such as `sort`, `mapcar` etc.

	* src/eval.c (call0, ..., call8): Move functions...
	* src/lisp.h (call0, ..., call8): ...here and declare them inline.

2022-04-04  Mattias Engdegård  <mattiase@acm.org>

	Speed up comparisons between 2 fixnums

	Since <, <=, > and >= have their own byte-ops, the corresponding
	functions are mostly used as arguments to higher-order functions.
	This optimization is particularly beneficial for sorting, where the
	comparison function is time-critical.

	* src/data.c (Flss, Fgtr, Fleq, Fgeq):
	* src/fileio.c (Fcar_less_than_car):
	Fast path for calls with 2 fixnum arguments.

2022-04-04  Mattias Engdegård  <mattiase@acm.org>

	Rewrite string-greaterp and string> using string-lessp

	Since string-lessp has its own byte-op, using it is much faster than
	calling string-greaterp even with the need to bind a temporary
	variable.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-string-greaterp): New.
	(string-greaterp, string>): Set byte-optimizer.

2022-04-04  Mattias Engdegård  <mattiase@acm.org>

	Faster `string-lessp` for unibyte arguments

	Since this function is commonly used as a sorting predicate
	where it is time-critical, this is a useful optimization.

	* src/fns.c (Fstring_lessp): Add fast path for the common case
	when both arguments are unibyte.
	* test/src/fns-tests.el (fns-tests--string-lessp-cases)
	(fns-tests-string-lessp): New test.

2022-04-04  Po Lu  <luangruo@yahoo.com>

	Respect frame extents during drag and drop

	* xterm.c (struct x_client_list_window): New fields for frame
	extents.
	(x_dnd_compute_toplevels): Set window frame extents.
	(x_dnd_get_target_window_1): Return None if the mouse is in a
	frame extent.
	(x_dnd_get_target_window): Likewise.

2022-04-04  Po Lu  <luangruo@yahoo.com>

	Don't baselessly ignore frames after passing through the root window

	* src/xterm.c (x_dnd_begin_drag_and_drop):
	(handle_one_xevent): Don't rely on target not being None to set
	x_dnd_return_frame to 2.

2022-04-04  Po Lu  <luangruo@yahoo.com>

	Improve behavior of dragging text to windows on top of frames

	* doc/lispref/frames.texi (Drag and Drop): Document new meaning
	of `return-frame' in `x-begin-drag'.
	* lisp/mouse.el (mouse-drag-and-drop-region): Use `now' when
	calling `x-begin-drag'.
	* src/xfns.c (Fx_begin_drag): Update doc string.
	* src/xterm.c (x_dnd_begin_drag_and_drop): Accept return_frame
	as a Lisp_Object and handle Qnow correctly.
	(XTmouse_position): Ignore tooltip frames when processing
	`drag-source'.
	(syms_of_xterm): New defsym `now'.
	* src/xterm.h: Update prototypes.

2022-04-03  Andrew G Cohen  <cohen@andy.bu.edu>

	Replace list and vector sorting with TIMSORT algorithm

	* src/Makefile.in (base_obj): Add sort.o.
	* src/deps.mk (fns.o): Add sort.c.
	* src/lisp.h: Add prototypes for inorder, tim_sort.
	* src/sort.c: New file providing tim_sort.
	* src/fns.c:  Remove prototypes for removed routines.
	(merge_vectors, sort_vector_inplace, sort_vector_copy): Remove.
	(sort_list, sort_vector): Use tim_sort.
	* test/src/fns-tests.el (fns-tests-sort): New sorting unit tests.

2022-04-03  Mattias Engdegård  <mattiase@acm.org>

	Add optional GC marking function to specpdl unwind_ptr record

	Add a new `record_unwind_protect_ptr_mark` function for use with C data
	structures that use the specpdl for clean-up but also contain possibly
	unique references to Lisp objects.

	* src/eval.c (record_unwind_protect_ptr_mark): New.
	(record_unwind_protect_module, set_unwind_protect_ptr):
	Set the mark function to NULL.
	(mark_specpdl): Call the mark function if present.
	* src/lisp.h (unwind_ptr): Add a mark function pointer to the
	SPECPDL_UNWIND_PTR case.

2022-04-03  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_dnd_get_target_window): Look at root window proxies too.

2022-04-03  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-undo-close-tab): Update tab-bar-lines (bug#54684)

2022-04-03  Po Lu  <luangruo@yahoo.com>

	Fix various bugs with mouse dragging on Haiku

	* src/haikuterm.c (haiku_mouse_position): Rewrite so that
	different track-mouse types can be handled more consistently.

2022-04-03  Eli Zaretskii  <eliz@gnu.org>

	Update logs and HISTORY for Emacs 28.1

	* ChangeLog.3:
	* etc/HISTORY:
	* etc/AUTHORS: Update for Emacs 28.1 release.

2022-04-03  Jim Porter  <jporterbugs@gmail.com>

	Fix handling of '\\' inside double-quotes in Eshell

	Previously, Eshell would get confused and think the following command
	was unterminated due to the second double-quote looking like it was
	escaped:

	  echo "\\"

	* lisp/eshell/esh-util.el (eshell-find-delimiter): Correct docstring
	and treat '\' as an escapable character when using backslash escapes.

	* test/lisp/eshell/eshell-tests.el
	(eshell-test/escape-special-quoted): Adapt test.

2022-04-03  James Thomas  <jimjoe@gmx.net>

	Ensure re-encoding after change in gnus-inews-do-gcc

	* lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Re-encode the message
	body if it has been modified by gnus-gcc-pre-body-encode-hook
	(bug#54687).

2022-04-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Have global minor modes say so in the doc string

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Allow
	saying whether it's a global minor mode or not.
	(easy-mmode--mode-docstring): Use it.
	(define-minor-mode): Pass in the data.

2022-04-03  Po Lu  <luangruo@yahoo.com>

	Implement `drag-source' values of `track-mouse' on PGTK.

	* src/frame.c (Fmouse_position, mouse_position)
	(Fmouse_pixel_position): Fix crashes when mouse_position_hook
	stores nil.

	* src/pgtkterm.c (pgtk_mouse_position): Behave appropriately.

2022-04-03  Po Lu  <luangruo@yahoo.com>

	Implement `drag-source' values of track-mouse on NS

	* src/nsterm.m (ns_mouse_position): Don't return frame when
	appropriate.

2022-04-03  Po Lu  <luangruo@yahoo.com>

	Implement (sort of) `drag-source' on Haiku

	* src/haikuterm.c (haiku_mouse_or_wdesc_frame)
	(haiku_mouse_position): Behave reasonably when track_mouse is
	Qdrag_source.

2022-04-03  Po Lu  <luangruo@yahoo.com>

	Make dragging stuff to a window above a frame work

	* doc/lispref/frames.texi (Mouse Tracking):
	* etc/NEWS: Announce new `drag-source' value of `track-mouse'.
	* lisp/mouse.el (mouse-drag-and-drop-region): Use new value of
	`track-mouse' during interprogram drag and drop.

	* src/keyboard.c (make_lispy_position): Handle nil values of f
	correctly.
	* src/xdisp.c (define_frame_cursor1): Ignore if `drag-source' as
	well.
	(syms_of_xdisp): New defsym `drag-source'.
	* src/xterm.c (XTmouse_position): Implement `drag-source'.
	(mouse_or_wdesc_frame): Likewise.

2022-04-03  Po Lu  <luangruo@yahoo.com>

	Don't touch WAYLAND_DISPLAY in browse-url

	* lisp/net/browse-url.el (browse-url): Don't touch
	WAYLAND_DISPLAY.  (bug#53969)

2022-04-03  Po Lu  <luangruo@yahoo.com>

	Look for DND proxies on the root window as well

	* src/xterm.c (x_dnd_get_target_window): If nothing was found on
	the COW, look at the root window.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	Implement new DND features on GNUstep

	* lisp/term/ns-win.el (ns-drag-n-drop): Handle special `lambda'
	drag-n-drop events.
	* src/nsterm.m: ([EmacsView wantsPeriodicDraggingUpdates]):
	([EmacsView draggingUpdated:]): New functions.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	Implement new DND options on Haiku

	* lisp/term/haiku-win.el (haiku-drag-and-drop): Handle special
	drag and drop motion events.
	* src/haiku_support.cc (MouseMoved): Set `dnd_message' flag.
	* src/haiku_support.h (struct haiku_mouse_motion_event): New
	member `dnd_message'.
	* src/haikuterm.c (haiku_read_socket): Create special DND events
	when the mouse moves with a drop message.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	Add user options to move point and scroll window during DND

	* doc/emacs/frames.texi (Drag and Drop):
	* etc/NEWS: Document new options 'dnd-scroll-margin' and
	'dnd-indicate-insertion-point'.
	* lisp/dnd.el (dnd-protocol-alist):
	(dnd-open-remote-file-function):
	(dnd-open-file-other-window): Add right group to defcustoms.
	(dnd-scroll-margin, dnd-indicate-insertion-point): New user
	options.
	(dnd-handle-movement): New function.
	* lisp/x-dnd.el (x-dnd-handle-xdnd):
	(x-dnd-handle-motif): Call `dnd-handle-movement' when
	appropriate.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	Fix Motif drag-and-drop on servers without XI2

	* src/xterm.c (handle_one_xevent): Pass right flags to the
	receiver when handling drops for core button events.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	Fix incorrect usage of XM_DRAG_SIDE_EFFECT

	* src/xterm.c (xm_send_top_level_leave_message)
	(handle_one_xevent): Pass correct alt side effects and flags to
	XM_DRAG_SIDE_EFFECT.

2022-04-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix bootstrap errors after previous easy-mmode change

	* lisp/subr.el (ensure-empty-lines, string-lines): Moved from
	subr-x so that they can be used in early bootstrap files.

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring):
	Don't use string-empty-p because of bootstrap issues.

2022-04-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix regression in tex alignment

	* lisp/align.el (align-rules-list): Make alignment in tex mode
	work better again (bug#54663).

2022-04-02  Sean Whitton  <spwhitton@spwhitton.name>

	em-extpipe: Catch eshell-incomplete thrown while parsing

	* lisp/eshell/em-extpipe.el (em-extpipe--or-with-catch): New macro.
	(eshell-parse-external-pipeline): Use new macro to treat
	`eshell-incomplete' as a failure of the parse function to move us
	forward (Bug#54603).  Thanks to Jim Porter <jporterbugs@gmail.com> for
	the report and for help isolating the problem.

	* test/lisp/eshell/eshell-tests.el
	(eshell-test/lisp-command-with-quote): New test for Bug#54603, thanks
	to Jim Porter <jporterbugs@gmail.com> (bug#54603).

2022-04-02  August Feng  <au.fengster@gmail.com>  (tiny change)

	Add S-SPC key sequence to bookmark-bmenu-mode-map

	* lisp/bookmark.el (bookmark-bmenu-mode-map): Add an S-SPC binding
	for symmetry (bug#54672).

2022-04-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Put the define-minor-mode boilerplate at the end of the doc strings

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): Put
	the boilerplate at the end of the doc string.

2022-04-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Further tweaks to cl--generic-describe

	* lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Further
	tweak the look of the implementation output.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	* lisp/dired.el (dired-mouse-drag): Offer HOST_NAME as well.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	Fix crash when retrieving window property with invalid atom data

	This happens when dropping files from dtfile, which somehow puts
	non-atom stuff in window properties of type ATOM_PAIR.

	* src/xselect.c (x_atom_to_symbol): Catch errors around
	XGetAtomName.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	Compute size of structs with flexible arrays correctly in Motif DND code

	* src/xterm.c (xm_read_targets_table_rec, xm_setup_dnd_targets):
	Use FLEXSIZEOF instead of sizeof on struct xm_targets_table_rec.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	Fix error on mouse move over something not a window while dragging text

	* lisp/mouse.el (mouse-drag-and-drop-region): Handle non-window
	values of `posn-window' correctly.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	Add new option `mouse-drag-and-drop-region-scroll-margin'

	* etc/NEWS: Announce new user option.
	* lisp/mouse.el (mouse-drag-and-drop-region-scroll-margin): New
	user option.
	(mouse-drag-and-drop-region): Implement "scroll margin" like
	behavior during mouse movement.

2022-04-02  Po Lu  <luangruo@yahoo.com>

	Implement DELETE selection target for cross program drags

	* lisp/mouse.el (mouse-drag-and-drop-region): Make sure mark
	stays deactivated if a "cut" operation was performed.
	* lisp/select.el (xselect-convert-to-delete): Don't clear
	selection contents if it's the XdndSelection.

2022-04-01  Po Lu  <luangruo@yahoo.com>

	Work around dynamic drag bugs in modern Motif

	* src/xterm.c (xm_send_top_level_leave_message): Send a motion
	event with impossible coordinates by default.
	(handle_one_xevent): Slightly update drop motion message
	parameters.
	(syms_of_xterm): New variable `x-dnd-fix-motif-leave'.

2022-04-01  Po Lu  <luangruo@yahoo.com>

	Make Motif drag work on window managers that don't support client lists

	* xterm.c (x_dnd_send_xm_leave_for_drop): New function.
	(x_dnd_get_wm_state_and_proto): New field `motif_out'.
	(x_dnd_get_target_window): Return Motif protocol style if
	looking for windows via XTranslateCoordinates.
	(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
	(x_dnd_update_state, handle_one_xevent): Send toplevel leave
	along with drops.

2022-04-01  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/progmodes/xref.el (xref-search-program): Fix typo.

2022-04-01  Manuel Uberti  <manuel.uberti@inventati.org>

	Support ugrep in xref-search-program-alist

	* lisp/progmodes/xref.el
	(xref-search-program-alist)
	(xref-search-program): Add entries for ugrep (bug#54608).

2022-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	kmacro: Represent it as an OClosure

	Merge the old lambda+list into a single OClosure object which plays
	both roles at the same time.  Take advantage of it to provide a
	`cl-print-object` method so kmacro objects print nicely using the
	`key-parse` syntax.
	Also replace the old `kmacro-lambda-form` with a new `kmacro` constructor
	which takes a `key-parse` syntax, so that the code inserted with
	`insert-kbd-macro` is now more readable.

	* lisp/kmacro.el (kmacro): New OClosure type.
	(kmacro-ring-head): Use `kmacro` constructor.
	(kmacro-push-ring): Convert `elt` from old representation if needed.
	(kmacro-split-ring-element, kmacro-view-ring-2nd, kmacro-view-macro):
	Adapt to new representation.
	(kmacro-exec-ring-item): Turn into obsolete alias.
	(kmacro-call-ring-2nd, kmacro-end-or-call-macro): Adjust accordingly.
	(kmacro-start-macro): Simplify call to `kmacro-push-ring`.
	(kmacro): New constructor function.  Replaces `kmacro-lambda-form`.
	(kmacro-lambda-form): Use it and declare obsolete.
	(kmacro-extract-lambda): Rewrite and declare obsolete.
	(kmacro-p): Rewrite.
	(cl-print-object): New method.
	(kmacro-bind-to-key, kmacro-name-last-macro): Simplify.

	* lisp/macros.el (macro--string-to-vector): New function.
	(insert-kbd-macro): Use it.  Generate code using the `kmacro` constructor.

	* test/lisp/kmacro-tests.el (kmacro-tests-kmacro-bind-to-single-key):
	Silence warning.
	(kmacro-tests-name-last-macro-bind-and-rebind): Strengthen the test a bit.
	(kmacro-tests--cl-print): New test.

2022-04-01  Augusto Stoffel  <arstoffel@gmail.com>

	New user option 'font-lock-ignore'

	* lisp/font-lock.el (font-lock-ignore): New defcustom.
	(font-lock-compile-keywords): Call 'font-lock--filter-keywords'.
	(font-lock--match-keyword, font-lock--filter-keywords): New functions,
	implement the functionality described in 'font-lock-ignore'.
	* doc/lispref/modes.texi: Describe 'font-lock-ignore'.

2022-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-generic: Rework obsolescence checks for defmethod

	* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Silence obsolescence
	warnings in the included methods.
	(cl-defmethod): Reuse standard obsolescence checks.

	* lisp/emacs-lisp/seq.el (seq-contains): Remove redundant
	`with-suppressed-warnings`.

2022-04-01  Ignacio  <ignacio.decasso@imdea.org>

	Better check for when clipboard or primary selection have changed

	Previously it was done by just comparing new and old selection
	text, now we use also selection timestamps for systems that
	support it (only enabled in X for now).  (bug#53894)

	* lisp/select.el: (gui--last-selection-timestamp-clipboard)
	(gui--last-selection-timestamp-primary): New variables.

	(gui--set-last-clipboard-selection)
	(gui--set-last-primary-selection)
	(gui--clipboard-selection-unchanged-p)
	(gui--primary-selection-unchanged-p): New functions.

2022-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	OClosure: Add support for defmethod dispatch

	* lisp/emacs-lisp/oclosure.el (oclosure--class): Add slot `allparents`.
	(oclosure--class-make): Add corresponding arg `allparents`.
	(oclosure, oclosure--build-class): Pass the new arg to the constructor.
	(oclosure--define): Make the predicate function understand subtyping.

	* lisp/emacs-lisp/cl-preloaded.el (cl--class-allparents): Move from
	`cl-generic.el`.

	* lisp/emacs-lisp/cl-generic.el (cl--generic-class-parents): Move to
	`cl-preloaded.el` and rename to `cl--class-allparents`.
	Adjust all callers.
	(cl--generic-oclosure-tag, cl-generic--oclosure-specializers): New functions.
	(cl-generic-generalizers) <oclosure-struct>: New generalizer.

	* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-gen):
	New generic function.
	(oclosure-test): Add test for dispatch on oclosure types.

2022-04-01  Po Lu  <luangruo@yahoo.com>

	Implement the Motif drag protocol

	* src/xterm.c (struct x_client_list_window): New field
	`xm_protocol_style'.
	(xm_top_level_enter_message, xm_drag_motion_message)
	(xm_top_level_leave_message): New structures.
	(xm_setup_drag_info, xm_send_top_level_enter_message)
	(xm_send_drag_motion_message, xm_send_top_level_leave_message):
	New functions.
	(x_dnd_compute_toplevels): Compute `xm_protocol_style'.
	(x_dnd_get_target_window_1, x_dnd_get_target_window): New
	parameter `motif_out'.  Place the xm protocol style in it if
	necessary.
	(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
	(x_dnd_update_state, handle_one_xevent): Handle Motif drag
	protocol messages.
	(x_free_frame_resources): Cancel Motif drag protocol operations
	correctly.

2022-04-01  Protesilaos Stavrou  <info@protesilaos.com>

	Update modus-themes to their version 2.3.0

	* doc/misc/modus-themes.org (Enable and load): Clarify wording.
	(Sample configuration with and without use-package): Improve sample
	code on how to set up the themes.
	(Customization Options): Update sample configuration.
	(Option for box buttons, Option for mode line presentation)
	(Option for completion framework aesthetics)
	(Option for Org agenda constructs)
	(Option for the headings' overall style): Document how to optionally
	pass number values as a cons cell.
	(Option for mouseover effects): Document new boolean user option.
	(More accurate colors in terminal emulators): Write about the color
	range in terminal emulators and provide sample palette for XTerm.
	(Override colors): Use American English.
	(Near-monochrome syntax highlighting): Provide sample code on how to
	achieve a monochrome style.
	(Full support for packages or face groups)
	(Indirectly covered packages): Update lists of supported packages.
	(Note on display-fill-column-indicator-mode): Reword node.
	(Note on prism.el): Use American English.
	(Note on SHR colors): Clarify statement.
	(Note on the Notmuch logo): Remark that the Notmuch logo can be
	disabled.
	(Port the Modus themes to other platforms?): Use American English.
	(Sources of the themes): Fix capitalization of proper nouns.
	(Acknowledgements): Update list of contributors to the project.

	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-vivendi-theme.el: Ensure that the theme is reified
	as expected both at compile time and runtime.

	* etc/themes/modus-themes.el (require): Require 'cl-lib' and 'subr-x'
	at compile time.
	(seq): Require the 'seq' library.
	(modus-themes-completion-standard-first-match)
	(modus-themes-completion-standard-selected)
	(modus-themes-completion-extra-selected): Use correct symbol for
	deprecated faces.
	(modus-themes-slanted-constructs): Provide it as an alias of
	'modus-themes-italic-constructs'.
	(modus-themes-variable-pitch-headings): Remove obsolete user option.
	(modus-themes-no-mixed-fonts): Remove obsolete user option alias.
	(modus-themes-intense-mouseovers): Add new user option.
	(modus-themes--headings-choice): Accept value as a cons cell.
	(modus-themes-headings, modus-themes-org-agenda): Update user option
	to accept number value as a cons cell.
	(modus-themes-scale-headings, modus-themes-scale-1, modus-themes-scale-2)
	(modus-themes-scale-3, modus-themes-scale-4, modus-themes-scale-title)
	(modus-themes-scale-small): Remove obsolete user options.
	(modus-themes-mode-line): Update user option to accept number values
	as cons cells.
	(modus-themes-mode-line-padding): Remove obsolete user option.
	(modus-themes-completions): Add support for the 'text-also' property
	and update it accordingly.
	(modus-themes-success-deuteranopia): Remove obsolete user option.
	(modus-themes-box-buttons): Update user option to accept number values
	as cons cells.
	(modus-themes--warn, modus-themes--list-or-warn)
	(modus-themes--alist-or-seq): Add functions to check for correct value
	in some user options.
	(modus-themes--current-theme): Return the first Modus theme from
	'current-enable-themes' (bug#54598).
	(modus-themes--lang-check, modus-themes--prompt, modus-themes--paren)
	(modus-themes--syntax-foreground, modus-themes--syntax-extra)
	(modus-themes--syntax-string, modus-themes--syntax-comment)
	(modus-themes--heading, modus-themes--agenda-structure)
	(modus-themes--agenda-date, modus-themes--mode-line-attrs)
	(modus-themes--completion, modus-themes--link, modus-themes--link-color)
	(modus-themes--region, modus-themes--hl-line, modus-themes--button):
	Make private functions check for the desired value.  Refine them where
	necessary.
	(modus-themes-faces, modus-themes-custom-variables): Update supported
	faces and relevant variables.

2022-04-01  Michael Albinus  <michael.albinus@gmx.de>

	More robust checks for directory buffers in image-mode

	* lisp/image-mode.el (image-mode--directory-buffers): Apply more
	robust checks for directory buffers.  (Bug#54606)

2022-04-01  Po Lu  <luangruo@yahoo.com>

	Only read 16 bytes of motif drag receiver info

	* src/xterm.c (xm_drag_receiver_info): Only read 16 bytes of
	receiver info.
	(handle_one_xevent): Fix default XM drop action.

2022-03-31  Po Lu  <luangruo@yahoo.com>

	Simplify Haiku drag-and-drop implementation

	* lisp/term/haiku-win.el (x-begin-drag): Bind `mouse-highlight'
	to nil.

	* src/haikuselect.c (haiku_unwind_drag_message)
	(Fhaiku_drag_message):
	* src/haikuterm.h (HAVE_CHAR_CACHE_MAX):
	* src/xdisp.c (note_mouse_highlight): Delete
	`haiku_dnd_in_progress' variable.

2022-03-31  Po Lu  <luangruo@yahoo.com>

	Support Motif DND help

	* src/xterm.c (x_dnd_xm_use_help): New state variable.
	(x_dnd_begin_drag_and_drop): Clear new variable.
	(handle_one_xevent): Set new variable if we get a key press
	event F1 during the drag-and-drop session, and use help action
	when dropping onto a Motif program if it is set.

2022-03-31  Po Lu  <luangruo@yahoo.com>

	Make dropping files on Motif programs work

	* lisp/dired.el (dired-mouse-drag): Announce "FILE" and
	"FILE_NAME" as targets as well.
	* lisp/select.el (xselect-convert-to-filename): Handle
	XdndSelection specially.
	(xselect-convert-to-xm-file): New function.
	(selection-converter-alist): Add new converters.

2022-03-31  Po Lu  <luangruo@yahoo.com>

	Avoid extra sync if we didn't get the right wmstate

	* src/xterm.c (x_dnd_get_wm_state_and_proto): Always set proto
	version.
	(x_dnd_get_target_window): Optimize accordingly.

2022-03-31  Po Lu  <luangruo@yahoo.com>

	Fix a build warning on the non-XI2 build

	* src/xterm.c (xm_read_drop_start_reply): Take a const XEvent as
	msg.

2022-03-31  Eli Zaretskii  <eliz@gnu.org>

	Fix a bug in configure.ac that failed the --without-x build

	* configure.ac (USE_TOOLKIT_SCROLL_BARS): Fix test for unsupported
	scroll-bars configuration.  (Bug#54629)

2022-03-31  Po Lu  <luangruo@yahoo.com>

	Fix Motif DND on window managers that don't support client lists

	* src/xterm.c (x_dnd_compute_toplevels): Fix usage of
	`x_uncatch_errors_after_check'.
	(x_dnd_get_wm_state_and_proto): New function.
	(x_dnd_get_target_window): Also return first toplevel window
	found.

2022-03-31  Po Lu  <luangruo@yahoo.com>

	Implement missing parts of the Motif drag and drop protocol

	* src/xterm.c (xm_drop_start_reply): New structure.
	(xm_get_drag_window): Don't grab the server since this leads to
	weird freezes when creating the drag window.
	(xm_read_drop_start_reply): New function.
	(x_dnd_begin_drag_and_drop): Set Motif finish flag to 0.
	(handle_one_xevent): When starting a motif drop, set the finish
	flag to 1.  When the receiver replies to our drop message, set
	the finish flag to 2 if the drop was accepted, and only clear
	the waiting for finish flag when a selection request for
	XmTRANSFER_SUCCESS or XmTRANSFER_FAILURE arrives.
	(x_term_init): New atoms.
	* src/xterm.h (struct x_display_info): New atoms.

2022-03-31  João Távora  <joaotavora@gmail.com>

	Protect against empty firsttriggercharacter strings

	Which some LS's like gopls like to send.

	* eglot.el (eglot--post-self-insert-hook): Beware of empty strings.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/906

2022-03-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak how functions are formatted in Implementation in *Help*

	* lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Include
	the function name in the implementations (bug#54628).  This
	clarifies what we're talking about here, and avoids getting
	(function ...) translated into #'...

2022-03-31  Po Lu  <luangruo@yahoo.com>

	Minor fixes to treatment of `allow_current_frame'

	* src/xterm.c (x_dnd_send_drop): Don't send special event for
	wrong frame.
	(x_dnd_send_drop): Fix condition for returning
	XdndActionPrivate.

2022-03-31  Po Lu  <luangruo@yahoo.com>

	Implement Motif drop protocol

	This is the second most widely implemented drag-and-drop
	protocol on X Windows, but seems to have some unsolvable
	problems (i.e. stuff will keep accumulating in the drag window
	as long the target lists keep changing.)  The implementation is
	not yet complete and doesn't work with some programs.

	* lisp/select.el (xselect-convert-xm-special): New functions.
	(selection-converter-alist): Add new converters.
	* lisp/x-dnd.el (x-dnd-handle-motif): Ignore messages sent by
	the receiver.
	* src/xterm.c (xm_targets_table_byte_order): New enum;
	(SWAPCARD32, SWAPCARD16): New macros.
	(xm_targets_table_rec, xm_drop_start_message)
	(xm_drag_initiator_info, xm_drag_receiver_info): New structures.
	(XM_DRAG_SIDE_EFFECT, xm_read_targets_table_header)
	(xm_read_targets_table_rec, xm_find_targets_table_idx)
	(x_atoms_compare, xm_write_targets_table)
	(xm_write_drag_initiator_info, xm_get_drag_window)
	(xm_setup_dnd_targets, xm_send_drop_message)
	(xm_read_drag_receiver_info): New functions.
	(x_dnd_compute_toplevels): Correctly free some temp data.
	(x_dnd_get_window_proxy, x_dnd_get_window_proto)
	(x_set_frame_alpha): Likewise.
	(handle_one_xevent): If the window has no XDND proto but has
	motif drag receiver data, send a motif drop protocol request.
	(x_term_init): New atoms for Motif DND support.
	* src/xterm.h (struct x_display_info): Add new atoms.

2022-03-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-generic: Use OClosures for `cl--generic-isnot-nnm-p`

	Rewrite the handling of `cl-no-next-method` to get rid of the hideous
	hack used in `cl--generic-isnot-nnm-p` and also to try and move
	some of the cost to the construction of the effective method rather
	than its invocation.  This speeds up method calls measurably when
	there's a `cl-call-next-method` in the body.

	* lisp/loadup.el ("emacs-lisp/oclosure"): Load.

	* lisp/emacs-lisp/oclosure.el (oclosure-define): Remove workaround now
	that we're preloaded.

	* lisp/emacs-lisp/cl-generic.el (cl--generic-method): Rename `uses-cnm`
	to `call-con` to reflect it's not a boolean any more.
	(cl-defmethod): Adjust to the new name and new values.
	(cl-generic-define-method): Adjust to the new name.
	(cl--generic-lambda): Use the new `curried` calling convention.
	(cl--generic-no-next-method-function): Delete function.
	(cl--generic-nnm): New type.
	(cl-generic-call-method): Rewrite to support the various
	calling conventions.
	(cl--generic-nnm-sample, cl--generic-cnm-sample): Delete consts.
	(cl--generic-isnot-nnm-p): Rewrite using `oclosure-type`.
	(cl--generic-method-info): Add support for new calling convention.

2022-03-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	EIEIO tests: Fix failure when `eieio-core.el` is interpreted

	* lisp/emacs-lisp/eieio-core.el (eieio--validate-slot-value)
	(eieio--slot-name-index): Use the `cl--class` accessor functions.

2022-03-30  Andrea Corallo  <akrl@sdf.org>

	* src/pdumper.c (dump_get_max_page_size): Rename from 'dump_get_page_size'.

	* src/pdumper.c: Remove getpagesize.h dependency.

2022-03-30  Michael Albinus  <michael.albinus@gmx.de>

	Extend signal-process and proced.el

	* doc/lispref/processes.texi (Signals to Processes):
	Document changes in signal-process.

	* etc/NEWS: Mention changes in proced.el and signal-process.

	* lisp/proced.el (proced-signal-function): Declare it obsolete.
	(proced-remote-directory): New user option.
	(proced-mode): Adapt docstring.
	(proced-send-signal, proced-renice): Handle interactive prefix argument.

	* lisp/net/tramp.el (tramp-signal-process): New defun.  Add it to
	`signal-process-functions'.

	* src/process.c (Finternal_default_signal_process): New defun,
	providing the hitherto existing implementation of Fsignal_process.
	(Fsignal_process): Loop through Vsignal_process_functions.
	(Vsignal_process_functions): New defvar.
	(Qinternal_default_signal_process, Qsignal_process_functions):
	Declare symbols.
	(Sinternal_default_signal_process): Declare subroutine.

	* test/lisp/net/tramp-tests.el (tramp-test31-signal-process): New test.

2022-03-30  Po Lu  <luangruo@yahoo.com>

	Remove local copies of remote files created for drag-and-drop

	* lisp/dired.el (dired-mouse-drag): Remove last dragged remote
	file and save a record of any local copy created.
	(dired-remove-last-dragged-local-file): New function.

2022-03-30  Po Lu  <luangruo@yahoo.com>

	Ignore mouse movement correctly on Haiku during drag and drop

	* src/haikuselect.c (haiku_unwind_drag_message): New function.
	(Fhaiku_drag_message): Set `haiku_dnd_in_progress' to false.
	* src/haikuterm.c (haiku_read_socket): Fix overriding of
	need_flush when reading events from multiple frames.
	* src/haikuterm.h (haiku_dnd_in_progress): New variable.
	* src/xdisp.c (note_mouse_highlight): Ignore if said variable is
	true.

2022-03-30  Po Lu  <luangruo@yahoo.com>

	Prevent signals when dragging nonexistent files on Haiku

	* lisp/term/haiku-win.el (x-begin-drag): Bind
	`haiku-signal-invalid-refs' to nil.
	* src/haiku_support.cc (MouseMoved): Send motion events while
	dragging as well.
	* src/haikuselect.c (haiku_lisp_to_message): Respect new
	variable.
	(syms_of_haikuselect): New variable `haiku-signal-invalid-refs'.

2022-03-29  Po Lu  <luangruo@yahoo.com>

	Disallow building with non-toolkit scroll bars on non-X systems

	* configure.ac: Prevent building without toolkit scroll bars on
	non-X systems, where they're not implemented.  (bug#54629)

2022-03-29  Po Lu  <luangruo@yahoo.com>

	Avoid calling XGetAtomName in a loop when fetching monitor attributes

	* src/xfns.c (x_get_monitor_attributes_xrandr): Avoid syncing on
	each monitor when waiting for XGetAtomName when built with XCB.

2022-03-29  Po Lu  <luangruo@yahoo.com>

	Add some optimizations to ShapeNotify handling

	* src/xterm.c (handle_one_xevent): Do bounding rect
	optimizations on ShapeNotify events as well.

2022-03-29  Michael Albinus  <michael.albinus@gmx.de>

	Handle process property `remote-command' in Tramp

	* doc/misc/tramp.texi (Remote processes): New subsection "Process
	properties of asynchronous remote processes".

	* lisp/net/tramp.el (tramp-handle-make-process):
	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	* lisp/net/tramp-smb.el (tramp-smb-handle-start-file-process):
	* lisp/net/tramp-sh.el (tramp-sh-handle-make-process)
	Set `remote-command' process property.
	(tramp-scp-direct-remote-copying): Rename connection property.

	* test/lisp/net/tramp-tests.el (tramp-test29-start-file-process)
	(tramp-test30-make-process, tramp-test31-interrupt-process)
	(tramp--test-async-shell-command): Check process property
	`remote-command'.

2022-03-29  Lars Ingebrigtsen  <larsi@gnus.org>

	ipv6 addresses aren't suspicious

	* lisp/international/textsec.el (textsec--ipvx-address-p): New
	function.
	(textsec-domain-suspicious-p): Use it to say that ipv6 addresses
	aren't suspicious (bug#54624).

2022-03-29  Jim Porter  <jporterbugs@gmail.com>

	Don't use 'eshell-convert' when all we want is a number

	* lisp/eshell/em-hist.el (eshell/history): Use 'string-to-number'
	instead of 'eshell-convert'.

	* lisp/eshell/em-basic.el (eshell/umask): Simplify implementation and
	be more careful about parsing numeric umasks to set.

2022-03-29  Jim Porter  <jporterbugs@gmail.com>

	Add tests for Eshell's umask command

	'em-basic-test/umask-set' fails when passing an actual number to the
	command, but this is fixed in the subsequent commit.

	test/lisp/eshell/em-basic-tests.el: New file.

2022-03-29  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	Fix eww bookmark writing

	* lisp/net/eww.el (eww-write-bookmarks): Ensure that the complete
	bookmarks are written (bug#54612).

2022-03-29  João Távora  <joaotavora@gmail.com>

	Easier initializationoptions in eglot-server-programs

	Per https://github.com/joaotavora/eglot/issues/845.

	* NEWS.md: Update.

	* eglot.el (eglot-server-programs): Document new syntax.
	(eglot-initialization-options): Can use initializationOptions from
	server's saved initargs.
	(eglot--connect): Allow a plist to be appended to a server
	contact.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/901

2022-03-29  Po Lu  <luangruo@yahoo.com>

	Rewrite desktop workarea computation to avoid too many calls to XSync

	* src/xfns.c (x_get_net_workarea): Rewrite using XCB without
	using long_offset and long_length, since the data transfer is
	usually negligible compared to the roundtrip delay.

2022-03-29  Mattias Engdegård  <mattiase@acm.org>

	Fix typo in ERC DCC code in verbose mode

	* lisp/erc/erc-dcc.el (erc-dcc-send-block): Typo causing incorrect
	message when `erc-dcc-verbose` is set.

2022-03-29  João Távora  <joaotavora@gmail.com>

	Tweak on-type-formatting code

	* eglot.el (eglot--post-self-insert-hook): Tweak.
	(eglot-format): Tweak docstring.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/899

2022-03-29  Felicián Németh  <felician.nemeth@gmail.com>

	Implement on-type-formatting support

	* eglot.el (eglot-format): Add new optional argument `on-type-format'
	to request :textDocument/onTypeFormatting, and ...
	(eglot--post-self-insert-hook): ... call it from here when necessary.

	* eglot-tests.el (eglot--simulate-key-event): New helper defun.
	(rust-on-type-formatting): New test.

	* NEWS.md: mention feature.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/899

2022-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/oclosure.el (oclosure--define): Autoload

2022-03-29  Po Lu  <luangruo@yahoo.com>

	Specially decode more selection types on Haiku

	* src/haiku_select.cc (be_get_point_data, be_add_point_data):
	New functions.
	* src/haikuselect.c (haiku_message_to_lisp, lisp_to_type_code)
	(haiku_lisp_to_message): Accept new types `size_t', `ssize_t'
	and `point'.
	(Fhaiku_drag_message): Update doc string.
	(syms_of_haikuselect): New defsyms.
	* src/haikuselect.h: Update prototypes.

2022-03-29  Po Lu  <luangruo@yahoo.com>

	Temporarily fix the oclosure bootstrap

	* lisp/emacs-lisp/oclosure.el (oclosure-define): Load oclosure
	from source if `oclosure--define' is not defined during byte
	compilation.

2022-03-28  Po Lu  <luangruo@yahoo.com>

	Don't loop through useless region when searching for DND toplevel

	* src/xterm.c (x_dnd_compute_toplevels): Optimize for the
	bounding rect being the window dimensions.

2022-03-28  Juri Linkov  <juri@linkov.net>

	Add search function to search within filenames in Dired and WDired (bug#14013)

	* lisp/dired-aux.el (dired-isearch-filenames-mode): Use
	dired-isearch-search-filenames on isearch-search-fun-function
	instead of dired-isearch-filter-filenames on isearch-filter-predicate.
	(dired-isearch-filter-filenames): Remove function.
	(dired-isearch-search-filenames): Add function.

	* lisp/isearch.el (isearch-message-prefix): Add isearch-search-fun-function
	to the list of supported advice-functions along with isearch-filter-predicate.

	* lisp/replace.el (replace-search): Add comment.

	* lisp/wdired.el (wdired-search-replace-filenames): New defcustom.
	(wdired-isearch-filter-read-only): Remove function.
	(wdired-change-to-wdired-mode, wdired-change-to-dired-mode):
	Add and remove dired-isearch-search-filenames on isearch-search-fun-function
	instead of wdired-isearch-filter-read-only on isearch-filter-predicate.
	Also set/unset replace-search-function and replace-re-search-function.
	Remove and restore isearch-mode-hook with dired-isearch-filenames-setup.
	The problem is that dired-isearch-filenames-setup adds
	dired-isearch-filenames-end to isearch-mode-end-hook that removes
	dired-isearch-search-filenames added to isearch-search-fun-function
	in wdired-change-to-wdired-mode.  Then replace-highlight can't use
	dired-isearch-search-filenames.

2022-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	Add OClosures, a cross between functions and structs

	We here just add the new type.  It is not fully self-contained.
	It requires cooperation from `cconv.el` on the one hand, and it
	hijacks the docstring info to hold the type of OClosure objects.
	This does imply that OClosures can't have docstrings, tho this
	limitation will be lifted in subsequent patches.

	* lisp/emacs-lisp/oclosure.el: New file.
	* test/lisp/emacs-lisp/oclosure-tests.el: New file.
	* doc/lispref/functions.texi (OClosures): New section.

	* src/eval.c (Ffunction): Accept symbols instead of strings for docstrings.
	* src/doc.c (store_function_docstring): Avoid overwriting an OClosure type.
	* lisp/emacs-lisp/cconv.el (cconv--convert-function): Tweak ordering of
	captured variables.
	(cconv-convert): Add case for `oclosure--fix-type`.

2022-03-28  Po Lu  <luangruo@yahoo.com>

	Fix doc of `gui-get-selection' as to what is really valid as `data'

	* doc/lispref/frames.texi (Window System Selections):
	* lisp/select.el (gui-set-selection): Don't say `data' can be a
	cons or list of two integers, since that's not supported.

2022-03-28  Po Lu  <luangruo@yahoo.com>

	Minor fixes to Haiku selection support

	* lisp/term/haiku-win.el (haiku-selection-bounds): New function.
	(haiku-dnd-convert-string, haiku-select-encode-xstring)
	(haiku-select-encode-utf-8-string): Handle position pairs
	correctly.
	(gui-backend-set-selection): Adjust for new airity.
	* src/haikuselect.c (Fhaiku_selection_put): Fix arity.

2022-03-28  Po Lu  <luangruo@yahoo.com>

	Improve portability of XCB configure checks

	* configure.ac: Look for xcb_aux_sync in -lxcb-aux if it's not
	in -lxcb-util.

2022-03-28  Michael Albinus  <michael.albinus@gmx.de>

	Do not register Tramp file name handlers twice

	* lisp/net/tramp.el (tramp-register-autoload-file-name-handlers):
	* lisp/net/tramp-archive.el (tramp-register-archive-file-name-handler):
	Check, whether the real file name handler is already registered.

2022-03-28  Po Lu  <luangruo@yahoo.com>

	Avoid extra sync when fetching DND proxy window

	* src/xterm.c (x_dnd_get_proxy_proto): New function.
	(x_dnd_get_target_window): Use it on XCB to determine window
	proxy and proto for toplevel window.

2022-03-27  Po Lu  <luangruo@yahoo.com>

	Clean up some uses of XInternAtom

	* src/xfns.c (x_set_undecorated, x_set_no_focus_on_map, x_window)
	(set_machine_and_pid_properties): Move calls to XInternAtom for
	static string to use previously interned atoms.
	(Fx_change_window_property): Use XCB if available to avoid extra
	call to XSync.
	* src/xterm.c (x_term_init):
	* src/xterm.h (struct x_display_info): New atoms _MOTIF_WM_HINTS
	and _NET_WM_PID.

2022-03-27  Felicián Németh  <felician.nemeth@gmail.com>

	Map more emacs variables to lsp formattingoptions fields

	* eglot.el (eglot-format): Map require-final-newline to
	insertFinalNewline and delete-trailing-lines to trimFinalNewlines.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/900

2022-03-27  Po Lu  <luangruo@yahoo.com>

	Store latin-1 content into the Haiku clipboard as well

	* lisp/term/haiku-win.el (haiku-normal-selection-encoders): New
	variable.
	(haiku-select-encode-utf-8-string, haiku-select-encode-xstring):
	New functions.
	(gui-backend-set-selection): Use new selection encoder functions
	instead of hard-coding UTF-8.
	(haiku-dnd-handle-drag-n-drop-event): Rename to
	`haiku-drag-and-drop'.

	* src/haiku_select.cc (be_lock_clipboard_message): Accept new
	argument `clear'.
	(be_unlock_clipboard): Accept new argument `discard'.

	* src/haikuselect.c (Fhaiku_selection_data): Change calls to
	`be_lock_clipboard_message' and `be_unlock_clipboard'.
	(haiku_unwind_clipboard_lock): New function.
	(Fhaiku_selection_put): Accept new meaning of `name' which means
	to set the selection message.

	* src/haikuselect.h: Update prototypes.

2022-03-27  Po Lu  <luangruo@yahoo.com>

	Clean up PGTK cursor blanking code

	* src/pgtkterm.c (XTframe_rehighlight): Rename to
	`pgtk_frame_rehighlight_hook'.  All callers changed.
	(x_toggle_visible_pointer): Rename to
	`pgtk_toggle_visible_pointer'.  All callers changed.
	(x_setup_pointer_blanking, XTtoggle_invisible_pointer): Delete
	functions.
	(pgtk_create_terminal): Use new names for various hooks.
	(pgtk_term_init): Set up blank cursor directly.

	* src/pgtkterm.h (struct pgtk_display_info): Remove
	`toggle_visible_pointer'.

2022-03-27  Po Lu  <luangruo@yahoo.com>

	Don't wait for XdndFinished messages if the target did not send status

	* src/xterm.c (x_dnd_send_leave): Return if we should wait for a
	XdndFinished message.
	(handle_one_xevent): Use that value for
	`x_dnd_waiting_for_finish'.

2022-03-27  Augusto Stoffel  <arstoffel@gmail.com>

	Always run 'isearch-lazy-count-update-hook' with point at match

	* lisp/isearch.el (isearch-lazy-highlight-buffer-update):  Run
	'isearch-lazy-count-update-hook' outside of save-excursion, so point
	is at the current match.

2022-03-27  Po Lu  <luangruo@yahoo.com>

	Fix processing of DND grab on non-XI2 builds

	* src/xterm.c (handle_one_xevent): Process DND grab flag
	correctly.

2022-03-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1bef52ce73 * doc/emacs/anti.texi (Antinews): Unannounce removal of Mo...

2022-03-26  Po Lu  <luangruo@yahoo.com>

	Fix no-toolkit build

	* src/xterm.c (x_top_window_to_frame): Declare correctly on
	no-toolkit builds.

2022-03-26  Po Lu  <luangruo@yahoo.com>

	Avoid excessive synchronization when handling ShapeNotify events

	* src/xterm.c (handle_one_xevent): Use XCB to handle ShapeNotify
	events when we want both the bounding and input rects.

2022-03-26  Marcus Swanson  <marcus.swanson91@gmail.com>  (tiny change)

	Add omnisharp support for c#

	* eglot.el (eglot-server-programs): Add omnisharp for C#.
	* README.md: Document the above change.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/897

2022-03-26  Mattias Engdegård  <mattiase@acm.org>

	Fix reader infinite recursion for circular mixed-type values

	Make sure that the value added to the `read_objects_completed` set is
	the one we actually return; previously this wasn't the case for conses
	because of an optimization (bug#54501).

	Also add a check for vacuous self-references such as #1=#1# instead of
	returning a nonsense value from thin air.

	* src/lread.c (read1): Treat numbered conses correctly as described
	above.  Detect vacuous self-references.
	* test/src/lread-tests.el (lread-test-read-and-print)
	(lread-test-circle-cases, lread-circle): Add tests.

2022-03-26  Po Lu  <luangruo@yahoo.com>

	Enable the native display of BMP images on Haiku

	* src/image.c (syms_of_image): Also register `bmp' image type on
	Haiku when native image APIs are enabled.

2022-03-26  Po Lu  <luangruo@yahoo.com>

	Fix crash when timer signals or throws inside a popup menu on Haiku

	* src/haikumenu.c (haiku_process_pending_signals_for_menu_1)
	(haiku_process_pending_signals_for_menu_2): New functions.
	(haiku_process_pending_signals_for_menu): Catch non local exits
	around `timer_check'.

2022-03-26  Po Lu  <luangruo@yahoo.com>

	Fix processing of emacs:window_id inside DND messages if it already exists

	* src/haiku_support.cc (MessageReceived): Use DropPoint instead
	of getting it manually.
	(be_drag_message): Replace window_id if it already exists.

2022-03-26  Michael Albinus  <michael.albinus@gmx.de>

	Don't let Tramp block dired  (Bug#54542)

	* lisp/dired.el (dired-find-buffer-nocreate): Avoid avoid hangs in
	remote buffers with a blocked connection.  (Bug#54542)

	* lisp/net/tramp-sh.el (tramp-maybe-open-connection):
	Extend suppression rules.

2022-03-26  Po Lu  <luangruo@yahoo.com>

	Minor fixes to last change

	* src/Makefile.in: Add XSHAPE_LIBS and XSHAPE_CFLAGS.
	(LIBES, EMACS_CFLAGS): Likewise.

	* src/xterm.c (x_dnd_compute_toplevels): Fix build without
	HAVE_XCB_SHAPE.

2022-03-26  Po Lu  <luangruo@yahoo.com>

	Also fetch shapes via XCB for drag and drop

	* configure.ac: Also look for xcb-shape.
	* src/xterm.c (HAVE_XCB_SHAPE_INPUT_RECTS): New define.
	(x_dnd_compute_toplevels): Use XCB for input shapes if possible.

2022-03-26  Eli Zaretskii  <eliz@gnu.org>

	Use native image APIs on MS-Windows by default

	* src/w32term.c (syms_of_w32term) <w32-use-native-image-API>: Now
	t by default on W2K and later systems, but only on WINDOWSNT
	builds.

	* etc/NEWS: Announce the change.

2022-03-26  Eli Zaretskii  <eliz@gnu.org>

	Support display of BMP images on MS-Windows

	* src/w32image.c (w32_can_use_native_image_api): Support BMP
	images.
	* src/image.c (syms_of_image) <Qbmp>: New symbol.
	[HAVE_NTGUI]: Add 'bmp' to list of supported image types.

	* doc/lispref/display.texi (Image Formats): Document built-in
	support for BMP images.

	* etc/NEWS: Announce the change.

2022-03-26  Eli Zaretskii  <eliz@gnu.org>

	Improve 'desktop--emacs-pid-running-p'

	* lisp/desktop.el (desktop--emacs-pid-running-p): Avoid false
	negatives on MS-Windows and with some symlinks to Emacs
	executables.  (Bug#1474)

2022-03-26  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	4ec9f9edd1 Fix eshell-explicit-command-char doc string typo

2022-03-26  Po Lu  <luangruo@yahoo.com>

	Fix crash when windows are destroyed by faulty clients

	* src/xterm.c (x_dnd_compute_toplevels): Make sure
	property_reply is non-NULL before testing its format and length.

2022-03-26  Po Lu  <luangruo@yahoo.com>

	Avoid excessive synchronization when initiating drag-and-drop

	* src/xterm.c (x_dnd_compute_toplevels): Use XCB to get WM
	state, attributes, geometry and to translate coordinates.  This
	avoids 4 calls to XSync.

2022-03-25  Po Lu  <luangruo@yahoo.com>

	Fix compiler warning in x-dnd.el

	* lisp/x-dnd.el (x-dnd-xdnd-to-action): Move declaration
	earlier.

2022-03-25  Po Lu  <luangruo@yahoo.com>

	Avoid ClientMessage overhead when dragging stuff to other frames

	* lisp/dired.el (dired-mouse-drag): Handle correctly dragging
	from dired buffers in nonselected windows.
	* lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Understand new
	client message type.
	* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
	(x_dnd_send_leave): Ignore if window is the top window of a
	frame.
	(x_dnd_send_drop): Send special DND event in that case.

2022-03-25  Po Lu  <luangruo@yahoo.com>

	Fix minor issues with dired-mouse-drag-files

	* lisp/dired.el (dired-mouse-drag-files): Update doc string and
	add setter.
	(dired-insert-set-properties): Don't insert misleading tooltip
	if feature is not available.

2022-03-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix (bounds-of-thing-at-point 'number)

	* lisp/thingatpt.el (number): Make (bounds-of-thing-at-point
	'number) work (bug#54555).

2022-03-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix reporting of read error line/columns in the init file

	* src/lread.c (invalid_syntax_lisp): The comments here said that
	we were supposed to be called with point in the readcharfun
	buffer.  This was not the case (at least) when reading the Emacs
	init file, so the reported line/column was always wrong (1 and 0,
	respectively) (bug#54550).

2022-03-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve pp-last-sexp ergonomics

	* lisp/emacs-lisp/pp.el (pp-last-sexp): Ignore ,@?
	before a sexp, because eval-ing that will always lead to an error
	(bug#54537).

2022-03-25  Po Lu  <luangruo@yahoo.com>

	Implement new drag and drop parameter on Haiku

	* lisp/term/haiku-win.el (x-begin-drag): Implement
	`allow-current-frame'.
	* src/haiku_support.cc (be_drag_message): New argument
	`allow_same_view'.
	* src/haiku_support.h: Update prototypes.
	* src/haikuselect.c (Fhaiku_drag_message): New parameter
	`allow-same-frame'.

2022-03-25  Po Lu  <luangruo@yahoo.com>

	Allow dragging files from dired to windows on the same frame

	* doc/lispref/frames.texi (Drag and Drop): Document new
	parameter to `x-begin-drag'.
	* lisp/dired.el (dired-mouse-drag): Utilize new parameter.
	* lisp/term/haiku-win.el (x-begin-drag): Add new parameter.
	* src/xfns.c (Fx_begin_drag): New parameter
	`allow-current-frame'.  Fix typo and update doc string.
	* src/xterm.c (x_dnd_get_window_proto): Respect
	`x_dnd_allow_current_frame'.
	(x_dnd_begin_drag_and_drop): New parameter
	`allow_current_frame'.
	* src/xterm.h: Update prototypes.

2022-03-25  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'completion-auto-select'

	* lisp/simple.el (completion-auto-select):
	* doc/emacs/mini.texi (Completion Options): Improve documentation
	and description of customization options of 'completion-auto-select'.

2022-03-25  Po Lu  <luangruo@yahoo.com>

	Make it easier to select text inside dired when mouse dragging is on

	* lisp/dired.el (dired-insert-set-properties): Only set drag
	keymap on the filename itself.

2022-03-25  Michael Albinus  <michael.albinus@gmx.de>

	* admin/notes/emba: Mention workflow rules for branches.

2022-03-25  Po Lu  <luangruo@yahoo.com>

	Fix quitting DND while waiting for finish

	* src/xterm.c (x_dnd_begin_drag_and_drop): Always clear finish
	flag before quitting.

2022-03-25  Po Lu  <luangruo@yahoo.com>

	Take window shapes into account when processing drag and drop

	* configure.ac: Test for the Nonrectangular Window Shape
	extension.
	* msdos/sed1v2.inp: Update.
	* src/xterm.c (struct x_client_list_window): New fields for
	shapes.
	(x_dnd_free_toplevels): Free shapes.
	(x_dnd_compute_toplevels): Populate window shapes.
	(x_dnd_get_target_window_2): New function.
	(x_dnd_get_target_window_1): Test WM state of window before
	taking it into account.
	(x_dnd_begin_drag_and_drop): Use outer window as the initial
	last seen window.
	(x_dnd_update_state): Small fixes to frame tracking.
	(handle_one_xevent): Handle ShapeNotify events correctly.
	(x_term_init): Test for the Nonrectangular Window Shape
	extension.
	* src/xterm.h (struct x_display_info): New atom `WM_STATE'.

2022-03-25  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d3d6f1c9bd Clarify the description of "selected tags table"

2022-03-24  Po Lu  <luangruo@yahoo.com>

	Use _NET_CLIENT_LIST_STACKING to optimize drag and drop window discovery

	* src/xterm.c (struct x_client_list_window): New struct.
	(x_dnd_free_toplevels, x_dnd_compute_toplevels)
	(x_dnd_get_target_window_1): New functions.
	(x_dnd_get_target_window): Search in the toplevel list if it
	exists.
	(x_dnd_cleanup_drag_and_drop): Clean up toplevel list.
	(x_dnd_begin_drag_and_drop): Compute toplevel list if the
	window manager supports it.
	(handle_one_xevent): Update the toplevel list if prudent.

2022-03-24  Philip Kaludercic  <philipk@posteo.net>

	Fix wrapping of 'previous-completion' at the beginning of buffer

	* lisp/simple.el (next-completion): Prevent an error of
	'previous-completion' at the beginning of completions buffer.
	Also fix 'previous-completion' to wrap to the last completion.
	(bug#54374)

2022-03-24  Juri Linkov  <juri@linkov.net>

	Small fixes for the new feature 'second-tab' of 'completion-auto-select'

	* lisp/simple.el (completion-auto-select): Extend the docstring.

2022-03-24  João Távora  <joaotavora@gmail.com>

	Use bounds of thing at point when asking for code actions

	* eglot.el (eglot--region-bounds): Consider bounds of things at
	point.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/895

2022-03-24  Augusto Stoffel  <arstoffel@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Handle invisible text in Eldoc when calculating size


	* lisp/emacs-lisp/eldoc.el (eldoc--echo-area-substring,
	eldoc-display-in-echo-area):  Take invisible text into consideration
	when counting lines to crop an echo-area message.
	(Version): Bump.

2022-03-24  Po Lu  <luangruo@yahoo.com>

	Allow fetching events from other displays inside DND

	* src/xterm.c (x_dnd_begin_drag_and_drop): Get the next event
	from the app connection instead on Xt.

2022-03-24  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp to dired--insert-disk-space assumptions

	* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
	* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
	Do not modify disk space information when
	`dired--insert-disk-space' is available.  (Bug#54512)

2022-03-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix autoinsert.el byte compilation warning

	* lisp/autoinsert.el (sgml-tag): Fix a byte compilation warning.

2022-03-24  Jimmy Aguilar Mena  <spacibba@aol.com>

	Merge 'completion-auto-select new value second-tab'

	This includes the second-tab value for completion-auto-select and
	documentation related.

2022-03-24  Jimmy Aguilar Mena  <spacibba@aol.com>

	Add documentation entries for completion-auto-select user option.

2022-03-24  Jimmy Aguilar Mena  <spacibba@aol.com>

	Add completion-auto-select second-tab value.

	* lisp/minibuffer.el (completion--in-region-1) : Change if with cond and
	check if completion-auto-select.
	* lisp/simple.el (completion-auto-select) : Move before first use.
	(completion-setup-function) : Make a more precise check for when
	completion-auto-select is t.

2022-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/select.el (xselect-convert-to-targets): Use `delete-dups` and `delq`

	* lisp/autoinsert.el (auto-insert-alist): Expose lambdas as code

2022-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	(archive-*-write-file-member): Fix relative file name

	* lisp/arc-mode.el (archive-*-write-file-member): Set the pwd

2022-03-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Do some NEWS tagging

2022-03-24  Po Lu  <luangruo@yahoo.com>

	Avoid crashes if async input arrives when setting properties for DND

	* src/xterm.c (x_dnd_begin_drag_and_drop): Block input around
	non-async signal safe functions.

2022-03-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention frame-text-* function in frame-pixel-* doc strings

	* src/frame.c (Fframe_native_width, Fframe_native_height): Link to
	`frame-text-*' functions.

2022-03-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix image-mode-fit-frame some more

	* lisp/image-mode.el (image-mode-fit-frame): Use frame-text-width
	and fit-frame-to-buffer instead of computing things ourselves
	(bug#37630).  This makes things work better across platforms.

2022-03-24  Po Lu  <luangruo@yahoo.com>

	Fix some bugs with drag and drop and Mozilla

	* src/xfns.c (Fx_begin_drag): Call maybe_quit when iterating
	through potentially long lists.  Also allow specifying
	XdndActionAsk manually again, since it's useful for debugging.
	* src/xterm.c (x_dnd_begin_drag_and_drop): Delete XdndActionList
	and XdndActionDescription if they were not specified.

2022-03-24  Stefan Kangas  <stefankangas@gmail.com>

	Load desktop without prompting if process is dead

	* doc/emacs/misc.texi (Saving Emacs Sessions): Document the new
	'check' value.
	* etc/NEWS: Announce the change (bug#1474).
	* lisp/desktop.el (desktop-load-locked-desktop): Add new value 'check'
	to load desktop file without prompting if locking Emacs process does
	not exist on the local machine.  (Bug#1474)
	(desktop-read): Extract function from here...
	(desktop--load-locked-desktop-p): ...to here.  New function handles
	the semantics of 'desktop-load-locked-desktop', including above new
	value 'check'.
	(desktop--emacs-pid-running-p): New function.

	* test/lisp/desktop-tests.el: New file with tests for the above.

2022-03-24  Po Lu  <luangruo@yahoo.com>

	Fix setter for hl-line-sticky-flag when hl-line is not loaded

	* lisp/hl-line.el (hl-line-sticky-flag): Wrap most of setter
	around (featurep 'hl-line).  Reported by Michael Heerdegen
	<michael_heerdegen@web.de>.

2022-03-24  Po Lu  <luangruo@yahoo.com>

	Allow holding down scroll bar buttons on Haiku when overscrolling

	* src/haiku_support.cc (EmacsWindow): Set appropriate pulse
	rate.
	(class EmacsScrollBar, ValueChanged): Don't send any part events
	here.
	(MouseDown): Set dragging to a value larger than 1 if the scroll
	bar is at the end.
	(Pulse): New method.

2022-03-23  Po Lu  <luangruo@yahoo.com>

	Fix an infinite loop if the window manager pings Emacs during DND

	* src/xterm.c (handle_one_xevent): Work around _NET_WM_PING
	infinite loop during drag and drop.

2022-03-23  Po Lu  <luangruo@yahoo.com>

	Fix copying font names around on Haiku

	* src/haiku_font_support.cc (font_style_to_flags)
	(haiku_font_fill_pattern, BFont_open_pattern)
	(BFont_populate_fixed_family, BFont_populate_plain_family):
	* src/haiku_support.cc (be_get_version_string):
	* src/haikufont.c (haikufont_spec_or_entity_to_pattern): Stop
	assuming patterns were allocated by xzalloc.

2022-03-23  Po Lu  <luangruo@yahoo.com>

	Allow dragging and dropping multiple actions

	* doc/lispref/frames.texi (Drag and Drop): Document new meaning
	of `action'.
	* lisp/term/haiku-win.el (x-begin-drag): Correct for new meaning
	of `action'.
	* src/xfns.c (Fx_begin_drag): Handle new alist meaning of
	`action'.
	* src/xterm.c (x_dnd_begin_drag_and_drop): New parameters
	`ask_action_list', `ask_action_names' and `n_ask_actions'.
	* src/xterm.h: Update prototypes.

2022-03-23  Augusto Stoffel  <arstoffel@gmail.com>

	Fix regression in isearch-yank-char-in-minibuffer

	* lisp/isearch.el (isearch-yank-char-in-minibuffer): Select the
	original window in order to restore point.  This is needed when
	minibuffer lazy highlight is in effect.

2022-03-23  Mauro Aranda  <maurooaranda@gmail.com>

	Make undigest work with multipart/mixed messages

	* test/lisp/mail/undigest.el: New test file (bug#12873).
	* lisp/mail/undigest.el (rmail-digest-methods): Install
	rmail-digest-parse-mixed-mime.
	(rmail-content-type-boundary): New function, to get a specific
	Content-type boundary.
	(rmail-digest-parse-mixed-mime): New function, to search for a
	multipart/digest message inside a multipart/mixed message.

2022-03-23  Michael Albinus  <michael.albinus@gmx.de>

	Make quoting of shell arguments in grep.el more robust

	* lisp/progmodes/grep.el (grep-apply-setting)
	(grep-compute-defaults): Adapt docstring.
	(grep-quoting-style): New variable.
	(grep-compute-defaults, grep-default-command)
	(grep-expand-keywords, lgrep, rgrep-default-command): Use it.

2022-03-23  Glenn Morris  <rgm@gnu.org>

	* doc/misc/eudc.texi (Inline Query Expansion): Unbreak it.

2022-03-23  Michael Albinus  <michael.albinus@gmx.de>

	Support changing remoteness of DIR in rgrep and lgrep

	* lisp/net/tramp-sh.el (tramp-get-remote-dev-tty): New defun.
	(tramp-sh-handle-make-process): Use it.

	* lisp/progmodes/grep.el: Prefer #' to quote named functions.
	(lgrep, rgrep): Recompute grep defaults when the remoteness of DIR
	changes.

2022-03-23  Po Lu  <luangruo@yahoo.com>

	Improvements to Haiku selection handling

	* lisp/term/haiku-win.el (haiku-selection-targets): Implement in Lisp.
	* src/haiku_select.cc (be_get_message_type):
	(be_set_message_type):
	(be_get_message_message):
	(be_add_message_message): New functions.

	* src/haiku_support.cc (MessageReceived): Fix typo.
	* src/haikuselect.c (haiku_selection_data_1)
	(Fhaiku_selection_targets): Delete functions.
	(haiku_message_to_lisp, lisp_to_type_code)
	(haiku_lisp_to_message): Correctly decode and encode nested
	messages, and fix encoding specially decoded types via numeric
	names.  Also store and decode message types inside Lisp
	messages.
	(Fhaiku_drag_message): Update doc string.
	(syms_of_haikuselect): Update subrs.
	* src/haikuselect.h: Update prototypes.

2022-03-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Reinstate `C-M-<delete>'

	* lisp/bindings.el (global-map): Reinstate `C-M-<delete>' and
	`C-M-<backspace>' (bug#29430).  These used to kill X, but that
	hasn't been the case in any common GNU/Linux distributions for
	decades.

2022-03-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix image-mode-fit-frame resizing

	* lisp/image-mode.el (image-mode-fit-frame): Use pixel sizes
	instead of lines/columns to get more accurate resizing (bug#37630).

2022-03-23  Andreas Schwab  <schwab@linux-m68k.org>

	* lisp/term/pgtk-win.el: Update header comment.

2022-03-23  Po Lu  <luangruo@yahoo.com>

	Fix hl-line tests

	* lisp/hl-line.el (hl-line-mode): Restore old setter.
	* test/lisp/hl-line-tests.el (hl-line-tests-verify): Don't rely
	`cl-some' always returning t on success.
	(hl-line-tests-sticky-across-frames): Use correct global variable.

2022-03-23  Po Lu  <luangruo@yahoo.com>

	* lisp/calendar/todo-mode.el: Restore old code.

2022-03-23  Po Lu  <luangruo@yahoo.com>

	Restore old hl-line code

	* lisp/hl-line.el: Restore old code to remove obsoletions.
	(hl-line-overlay-priority): Make defcustom.

2022-03-23  Po Lu  <luangruo@yahoo.com>

	Allow retrieving some more kinds of clipboard data on Haiku

	* src/haiku_select.cc (BClipboard_find_data): Handle NULL
	characters inside data correctly.
	(be_lock_clipboard_message, be_unlock_clipboard): New functions.
	* src/haikuselect.c (Fhaiku_selection_data): Return entire
	clipboard contents as a message when clipboard is NULL.
	(haiku_lisp_to_message): Allow quitting when iterating through
	potentially large or circular lists.
	* src/haikuselect.h (enum haiku_clipboard): New enum.

2022-03-23  Po Lu  <luangruo@yahoo.com>

	Fix crash in haiku_message_to_lisp

	* src/haikuselect.c (haiku_message_to_lisp): Block input around
	`free'.

2022-03-22  Po Lu  <luangruo@yahoo.com>

	Handle quitting correctly during interprogram drag-and-drop

	* lisp/mouse.el (mouse-drag-and-drop-region): Handle quit
	correctly by exiting the cross program drag and drop.

2022-03-22  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_dnd_begin_drag_and_drop): Fix test against DND frame.

2022-03-22  Po Lu  <luangruo@yahoo.com>

	Don't allocate duplicate cursors for each frame on Haiku

	* src/haikufns.c (haiku_create_frame)
	(haiku_free_frame_resources): Stop creating cursors.
	* src/haikuterm.c (haiku_delete_terminal, haiku_term_init):
	Create and free cursors here instead.
	* src/haikuterm.h (struct haiku_display_info): New fields for
	cursors.

2022-03-22  Po Lu  <luangruo@yahoo.com>

	Improve DND documentation

	* doc/lispref/frames.texi (Drag and Drop):
	* src/xfns.c (Fx_begin_drag): Document meaning of
	`XdndActionPrivate'.

2022-03-22  Po Lu  <luangruo@yahoo.com>

	Reported taken action correctly when dragging to another frame on X

	* src/xterm.c (x_dnd_cleanup_drag_and_drop, x_dnd_update_state)
	(x_free_frame_resources, handle_one_xevent): Set
	`x_dnd_end_window'.
	(x_dnd_begin_drag_and_drop): Return `XdndActionPrivate' if the
	drop landed on one of our own frames.

2022-03-22  Andrew G Cohen  <cohen@andy.bu.edu>

	Refactor gnus/nnselect artlist saving and getting

	* lisp/gnus/nnselect.el (nnselect-generate-run): New function that
	replaces nnselect-run.
	(nnselect-store-artlist): New function.
	(nnselect-get-artlist): Update function.
	(nnselect-request-group, nnselect-request-thread)
	(nnselect-request-create-group, nnselect-request-group-scan): Use the
	new functions.
	* doc/misc/gnus.texi (Selection Groups): Document artlist storage and
	retrieval.

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	NEWS copy edits

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention highlight-confusing-reorderings in doc string

	* src/xdisp.c (Fbidi_find_overridden_directionality): Mention
	highlight-confusing-reorderings.

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention the other-window-scroll-default user option

	* src/window.c (Fscroll_other_window): Link to
	other-window-scroll-default in the doc string.

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Document outline-default-state

	* doc/emacs/text.texi (Outline Visibility): Mention
	outline-default-state.

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Do some NEWS tagging

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Document sqlite-mode-open-file and do some NEWS tagging

	* doc/lispref/text.texi (Database): Mention sqlite-mode-open-file.

2022-03-22  Alexander Adolf  <alexander.adolf@condition-alpha.com>

	Enable Better Alignment of EUDC Inline Expansion With RFC5322

	The format of EUDC inline expansion results is formatted according to
	the variable eudc-inline-expansion-format, which previously defaulted
	to '("%s %s <%s>" firstname name email).

	Since email address specifications need to comply with RFC 5322 in
	order to be useful in messages, there was little headroom for users to
	change this format anyway. Plus, if an EUDC back-end returned an empty
	first and last name, the result was the email address in angle
	brackets. Whilst this was standard with RFC 822, it is marked as
	obsolete syntax by its successor RFC 5322. Also, the first and last
	name part was never enclosed in double quotes, potentially producing
	invalid address specifications, which may be rejected by a receiving
	MTA.

	This commit updates the variable eudc-inline-expansion-format, so that
	it can, in addition to the current ("format" attributes) list, now
	alternatively be set to nil, or a formatting function. In both cases
	the resulting email address is formatted using the new function
	eudc-rfc5322-make-address, whose results fully comply with RFC 5322.

	If the value is nil (the new default value), eudc-rfc5322-make-address
	will be called to produce any of the default formats

	                               ADDRESS
	                           FIRST <ADDRESS>
	                            LAST <ADDRESS>
	                         FIRST LAST <ADDRESS>

	depending on whether a first and/or last name are returned by the
	query, or not.

	If the value is a formatting function, that will be called to allow
	the user to supply content for the phrase and comment parts of the
	address (cf. RFC 5322). Thus one can produce any of the formats:

	                               ADDRESS
	                           PHRASE <ADDRESS>
	                          ADDRESS (COMMENT)
	                      PHRASE <ADDRESS> (COMMENT)

	This can for example be used to get "last, first <address>" instead of
	the default "first last <address>".

	In any case when using nil, or the formatting function, the phrase
	part of the result will be enclosed in double quotes if needed, and
	the comment part will be omitted if it contains characters not allowed
	by RFC 5322.

	When eudc-inline-expansion-format remains set to a list as previously,
	the old behavior is fully retained.

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix two no-X compilation warnings

	* lisp/mouse.el (x-hide-tip, x-show-tip): Declare to avoid no-X
	build compilation warnings (bug#54524).

	* lisp/term/pgtk-win.el (window-system-initialization): Avoid no-X
	compilation warning.

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix a keyboard.c no-X compilation warning

	* src/keyboard.c (make_lispy_position): Fix compilation warning in
	a --without-x build.

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Make mail-header-parse-addresses-lax more lax

	* lisp/mail/mail-parse.el (mail-header-parse-addresses-lax): Be
	more resilient (bug#54523).

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix Completion Options typo

	* doc/emacs/mini.texi (Completion Options): Fix typo.

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a shell-filter-ring-bell function

	* lisp/shell.el (shell-mode): Mention it.
	(shell-filter-ring-bell): New function (bug#21652).

2022-03-22  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of the new completion-related features

	* etc/NEWS:
	* lisp/minibuffer.el (completion-auto-help):
	* doc/lispref/text.texi (Special Properties):
	* doc/emacs/mini.texi (Completion Options): Fix wording of
	recently added documentation and customization options.

2022-03-22  Jimmy Aguilar Mena  <spacibba@aol.com>

	Revert "Set cursor-face-highlight-nonselected-window in completions."

	This reverts commit 1641b5c04c383b5f53298d70776e3c18577b6f30.

	This fixes incorrect highlight in Completions.

2022-03-22  Allen Li  <darkfeline@felesatra.moe>

	Add user option for controlling dired-do-shell-command prompt

	* doc/emacs/dired.texi (Shell Commands in Dired): Document option
	* lisp/dired-aux.el (dired-confirm-shell-command): Add option
	(dired-do-shell-command): Check option before prompting
	(bug#29465).

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Make eshell link faces more distinctive on 8-color displays

	* lisp/eshell/em-ls.el (eshell-ls-directory):
	(eshell-ls-symlink): Make the faces be distinctive on 8-color
	displays (bug#43615).

2022-03-22  dickmao  <dick.r.chiang@gmail.com>

	Restore hl-line--buffer tracking

	* lisp/hl-line.el (hl-line-overlay, hl-line-overlay-buffer):
	Correct replacement variable.
	(hl-line--overlay): Clearer doc.
	(hl-line--buffer): Nee hl-line-overlay-buffer
	(hl-line-sticky-flag): Custom initialization is unfathomable.
	(hl-line-mode, hl-line-unhighlight): Orthogonalize sticky.
	(hl-line-highlight): Remove highlight from previous buffer.
	* test/lisp/hl-line-tests.el (hl-line-sticky, hl-line-tests-verify):
	(hl-line-tests-sticky-across-frames, hl-line-tests-sticky):
	Test (bug#54481).

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Fix dependency problem in hl-line-sticky-flag"

	This reverts commit 46daf70c4a7ce208ab0b3a7893c042fed5f022c2.

	This is fixed differently in a subsequent patch.

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix dependency problem in hl-line-sticky-flag

	* lisp/hl-line.el (hl-line-sticky-flag): Open-code
	hl-line-unhighlight to avoid recursive dependencies (bug#54481).

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix color-lighten-hsl logic

	* lisp/color.el (color-lighten-hsl): Lighten by percentage,
	instead of just adding the specified number to the luminance
	element (bug#54514).

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert todo-mode tests failing after todo-mode reversion

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function image-supported-file-p

	* lisp/image.el (image-type-from-file-name): Make obsolete.
	(image-supported-file-p): New function that has a more sensible
	value.
	(image-type): Adjust caller.

	* lisp/thumbs.el (thumbs-file-size, thumbs-show-image-num): Adjust
	callers.

	* lisp/mail/rmailmm.el (rmail-mime-set-bulk-data): Adjust caller
	and logic.

2022-03-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Allow using image-convert to view .bmp images"

	This reverts commit ede8ad507d06a336ce8202927f214aecbaf15d6b.

	This leads to failures for usages of the function where
	Emacs doesn't have support for the formats.

2022-03-22  Po Lu  <luangruo@yahoo.com>

	Simplify fullscreen management on Haiku

	* src/haiku_support.cc (class EmacsWindow, Zoom, UnZoom): Track
	zoom state manually instead of guessing what the system
	currently thinks it is.
	(MakeFullscreen): Always unzoom first.
	* src/haiku_support.h (struct haiku_zoom_event): Remove all
	fields and add a single field `zoomed'.
	* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
	Remove use of pending_zoom fields.
	* src/haikuterm.c (haiku_read_socket): Simplify handling of zoom
	events.
	(haiku_fullscreen): Simplify handling of different zoom states.
	* src/haikuterm.h (struct haiku_output): Remove all pending_zoom
	fields since they are no longer required.

2022-03-22  Michael Albinus  <michael.albinus@gmx.de>

	Fix grep-like functions when running on a remote host

	* doc/lispref/processes.texi (Shell Arguments):
	* etc/NEWS: Describe change in 'shell-quote-argument'.  Fix typos.

	* lisp/subr.el (shell-quote-argument): New optional argument POSIX.

	* lisp/progmodes/grep.el (grep-compute-defaults)
	(grep-default-command, grep-expand-keywords, lgrep)
	(rgrep-default-command): Use POSIX argument in
	`shell-quote-argument'.  (Bug#54487)

2022-03-22  Andrea Corallo  <akrl@sdf.org>

	* src/comp.c: Few improvements following 71b8f1fc635.

	* src/comp.c (ABI_VERSION): Update.
	(Fcomp__register_lambda, Fcomp__register_subr): Remove unnecessary
	check.
	* src/comp.c (Fcomp__register_lambda, Fcomp__register_subr):
	Remove unnecessary change.

2022-03-22  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_dnd_get_window_proto): Don't return huge protocols.

2022-03-22  Juri Linkov  <juri@linkov.net>

	Merge branch 'feature/completions-customs'

2022-03-21  Po Lu  <luangruo@yahoo.com>

	Fix starting Emacs with -mm or -fs on Haiku

	* src/haikuterm.c (haiku_set_window_size): Disallow setting the
	window size if the frame is fullscreen, like most X window
	managers.

2022-03-21  Po Lu  <luangruo@yahoo.com>

	Fix leak of saved menu event and output data

	* src/xterm.c (x_destroy_window, x_free_frame_resources): Free
	output data and saved menu event even if display is closed.

2022-03-21  Po Lu  <luangruo@yahoo.com>

	Fix unloading the hl-line library

	* lisp/hl-line.el (hl-line-unload-function): Restore function.

2022-03-21  Po Lu  <luangruo@yahoo.com>

	Fix incompatible changes in hl-line

	* lisp/hl-line.el (hl-line-face): Rename back to hl-line.
	(hl-line-face): Restore defcustom.

2022-03-21  Juri Linkov  <juri@linkov.net>

	Small fixes for new completions features

	* lisp/minibuffer.el (completions-header-format):
	Rename from completion-header-format.
	(completions-highlight, completions-highlight-face):
	Move up before first use.

2022-03-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option `diff-entire-buffers'

	* lisp/vc/diff.el (diff-entire-buffers): New user option (bug#54060).
	(diff-file-local-copy): Use it.
	(diff-buffers): Mention it in the doc string.

2022-03-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't break autoload generation of `left-margin' isn't zero

	* lisp/emacs-lisp/autoload.el (make-directory-autoloads): Fix
	autoload generation breakage is left-margin isn't zero (bug#54491).

2022-03-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `n' in image-mode work more reliably with external formats

	* lisp/image-mode.el (image-mode): Init the external machinery so
	that commands like `n' work for those files.
	* lisp/image/image-converter.el (image-converter-initialize):
	Factored out into own function.
	(image-convert-p): Use it.
	(image-convert): Ditto.

2022-03-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow specifying the intermediate format

	* lisp/image/image-converter.el (image-convert-to-format): New
	user format (bug#54494).
	(image-convert, image-converter--convert-magick)
	(image-converter--convert): Use it.

2022-03-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow using image-convert to view .bmp images

	* lisp/image.el (image-type-from-file-name): Allow Emacs to fall
	back on image-convert to display .bmp images (bug#54492).

2022-03-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerated ldefs-boot.el

2022-03-21  dickmao  <dick.r.chiang@gmail.com>

	Rewrite hl-line-mode

	The fashion of dual global and minor modes, each managing a replica of
	state, has long been outmoded by globalized minor modes (nee
	easy-mmode-define-global-mode) around the turn of the century.

	* lisp/calendar/todo-mode.el (todo-toggle-item-highlighting,
	todo-hl-line-range, todo-modes-set-2): Adapt to new
	hl-line-highlight-hook.
	* lisp/hl-line.el (hl-line-overlay): Rename hl-line--overlay.
	(global-hl-line-overlay, global-hl-line-overlays,
	global-hl-line-sticky-flag, hl-line-overlay-buffer,
	hl-line-range-function): Obsolesce.
	(hl-line--overlay): Erstwhile hl-line-overlay.
	(hl-line, hl-line-face): Consolidate.
	(hl-line-sticky-flag): Say less (Gen Z Hospital).
	(hl-line-overlay-priority): Make this a custom.
	(hl-line-highlight-hook): Prefer hook over specialized
	hl-line-range-function.
	(hl-line-mode): Say less (Gen Z Hospital).
	(hl-line-make-overlay): Remove
	(hl-line-highlight, hl-line-unhighlight): Rewrite.
	(hl-line-maybe-unhighlight): Remove.
	(hl-line-turn-on): Necessary for globalized minor mode.
	(global-hl-line-mode, global-hl-line-highlight,
	global-hl-line-highlight-all, global-hl-line-unhighlight,
	global-hl-line-maybe-unhighlight, global-hl-line-unhighlight-all):
	Prefer globalized minor mode.
	(hl-line-move, hl-line-unload-function): Remove.
	* test/lisp/calendar/todo-mode-tests.el (todo-test-item-highlighting,
	todo-test-done-items-separator06-bol,
	todo-test-done-items-separator06-eol,
	todo-test-done-items-separator07): Adapt to consolidated face.

2022-03-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new face shr-code

	* lisp/net/shr.el (shr-code): New face (bug#54480).
	(shr-tag-code): Use it.

2022-03-21  Po Lu  <luangruo@yahoo.com>

	Minor fixes to Haiku DND support

	* src/haiku_support.cc (MessageReceived): If source is remote,
	don't test window ID.
	(MouseMoved): Don't send mouse motion if dragging.
	(be_drag_message): Return true if quit-flag.
	* src/haiku_support.h: Update prototypes.
	* src/haikuselect.c (haiku_should_quit_drag): New function.
	(Fhaiku_drag_message): If rc is true, quit.

2022-03-21  Jimmy Aguilar Mena  <spacibba@aol.com>

	Set cursor-face-highlight-nonselected-window in completions.

	* lisp/simple.el (completion-setup-function) : Sets
	cursor-face-highlight-nonselected-window to t in Completions.

2022-03-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f15922a57c Update to Org 9.5.2-25-gaf6f12
	9fcdd5b63f Improve doc strings of read-char-from-minibuffer-insert-* ...

2022-03-20  Po Lu  <luangruo@yahoo.com>

	Improve handling of input methods during drag-and-drop

	* src/xterm.c (x_dnd_cleanup_drag_and_drop)
	(x_dnd_begin_drag_and_drop): Stop removing IC and filter events
	before dispatching them.
	(x_filter_event): Actually filter events during DND.
	(XTread_socket): Verify GenericEvents are actually input
	extension events before ignoring them.

2022-03-20  Po Lu  <luangruo@yahoo.com>

	Make quitting work while DND is waitng for finish

	* src/xterm.c (x_dnd_cleanup_drag_and_drop):
	(x_dnd_begin_drag_and_drop, handle_one_xevent)
	(x_free_frame_resources): Clear waiting for finish flag.
	(x_filter_event): Don't filter if waiting for DND finish as
	well.

2022-03-20  Dmitry Gutov  <dgutov@yandex.ru>

	Support indentation of Ruby pattern matching expressions

	* lisp/progmodes/ruby-mode.el (ruby-smie-grammar, ruby-smie-rules)
	(ruby-block-mid-keywords): Treat 'in' token similarly to 'when'.

	* test/lisp/progmodes/ruby-mode-resources/ruby.rb:
	Add indentation example.

2022-03-20  Andrew G Cohen  <cohen@andy.bu.edu>

	Fix imap fetching multiple mailboxes (bug#54158)

	* lisp/gnus/mail-source.el (mail-source-fetch-imap): Variables
	mailbox-source-string and remove should be reset for each mailbox.

2022-03-20  Juri Linkov  <juri@linkov.net>

	* etc/NEWS: Mention new hook 'minibuffer-lazy-highlight-setup'.

2022-03-20  Augusto Stoffel  <arstoffel@gmail.com>

	Add lazy highlight to 'isearch-edit-string'

	* lisp/isearch.el (isearch-edit-string): Activate lazy highlight and
	lazy count, provided 'isearch-lazy-highlight' respectively
	'isearch-lazy-count' are non-nil.

2022-03-20  Augusto Stoffel  <arstoffel@gmail.com>

	Allow lazy highlight and match count while reading from minibuffer

	* lisp/isearch.el (minibuffer-lazy-highlight-setup): New function, can
	be added to 'minibuffer-setup-hook' to enable lazy highlight and count
	while reading from minibuffer.
	(minibuffer-lazy-count-format, minibuffer-lazy-highlight-transform,
	minibuffer-lazy-highlight--overlay, minibuffer-lazy-highlight--count,
	minibuffer-lazy-highlight--after-change,
	minibuffer-lazy-highlight--exit): Auxiliary variables and functions
	implementing the lazy highlight functionality while reading from
	minibuffer.

2022-03-20  Augusto Stoffel  <arstoffel@gmail.com>

	New hook, lazy-count-update-hook

	* lisp/isearch.el (lazy-count-update-hook): New hook allowing to
	display the lazy count in special ways.
	(isearch-lazy-highlight-new-loop,
	isearch-lazy-highlight-buffer-update): Run `lazy-count-update-hook' at
	appropriate times.
	* lisp/comint.el (comint-history-isearch-setup,
	comint-history-isearch-end): Make sure no lazy count is displayed.
	* lisp/simple.el (minibuffer-history-isearch-setup): Make sure no lazy
	count is displayed.

2022-03-20  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-new-tab-to): Don't funcall const values.

	Filter out the values 'clone' and 'window' of 'tab-bar-new-tab-choice'
	from function call.

2022-03-20  Michael Albinus  <michael.albinus@gmx.de>

	Extend connection-local variables example in Elisp manual

	* doc/lispref/variables.texi (Connection Local Variables):
	Explain, how to append variable settings to an existing profile.

2022-03-20  Paul Eggert  <eggert@cs.ucla.edu>

	Remove duplicate INLINE_HEADER_BEGIN

	* src/thread.h: Remove duplicate INLINE_HEADER_BEGIN.
	Problem reportd by Mattias Engdegård.

2022-03-20  Felicián Németh  <felician.nemeth@gmail.com>

	Add simple support for workspacefolders

	Close https://github.com/joaotavora/eglot/issues/893.

	Clients can support workspaceFolders since LSP 3.6.  rootUri and
	rootPath are deprecated.  Dynamic changes in folders are not
	supported, i.e., this patch does not implement
	workspace/didChangeWorkspaceFolders.

	* eglot.el (eglot-client-capabilities): Add capability
	`workspaceFolders'.
	(eglot-workspace-folders): New cl-defgeneric.
	(eglot--connect): Add workspaceFolders to initializeParams.
	(eglot-handle-request workspace/workspaceFolders): New cl-defmethod.

2022-03-20  Po Lu  <luangruo@yahoo.com>

	Fix confusion of wanted action with actual action on X

	* src/xterm.c (x_dnd_begin_drag_and_drop)
	(x_dnd_update_state, handle_one_xevent): Differentiate between
	wanted action and chosen action correctly.

2022-03-20  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix wrong password stored in Tramp

	* lisp/net/tramp.el (tramp-process-actions):
	Unset `tramp-password-save-function'.

2022-03-20  Po Lu  <luangruo@yahoo.com>

	Make DND between frames work properly

	* src/xterm.c (handle_one_xevent): Don't wait for a finish event
	when dropping on top of another Emacs frame.

2022-03-20  Po Lu  <luangruo@yahoo.com>

	Improve compliance with version 5 of the XDND specification

	* src/xterm.c (x_dnd_cleanup_drag_and_drop): New function.
	(x_dnd_begin_drag_and_drop): Handle selection request events
	immediately.
	(handle_one_xevent): Wait for XdndFinished events and return the
	action chosen there.

2022-03-20  Po Lu  <luangruo@yahoo.com>

	Fix some crashes in shut_down_emacs on Haiku

	* src/emacs.c (shut_down_emacs): Stop quitting be app, since
	it's not always there.

2022-03-20  Po Lu  <luangruo@yahoo.com>

	Implement `haiku_delete_terminal'

	* src/haikuterm.c (haiku_delete_terminal): Actually delete the
	terminal instead of aborting.

2022-03-20  Po Lu  <luangruo@yahoo.com>

	Check list tail properly in x-begin-drag

	* src/xfns.c (Fx_begin_drag): Check that TARGETS is actually a
	proper list.
	* src/xterm.c (x_dnd_update_state): Remove debugging code.

2022-03-19  Po Lu  <luangruo@yahoo.com>

	Fix crash on some compositing managers

	* src/xterm.c (x_dnd_get_target_window): Catch errors around
	CompositeReleaseOverlayWindow.

2022-03-19  Po Lu  <luangruo@yahoo.com>

	Improve behavior of drag-n-drop during window manager operations

	* src/xterm.c (x_dnd_begin_drag_and_drop): Select for some
	events on the root window.
	(x_dnd_update_state): New function.
	(handle_one_xevent): Call that function when we get some events
	from the root window substructure or the window manager.
	(x_term_init): New atom `_NET_CLIENT_LIST_STACKING'.
	* src/xterm.h (struct x_display_info): New atom
	`_NET_CLIENT_LIST_STACKING'.

2022-03-19  Paul Eggert  <eggert@cs.ucla.edu>

	Port to gcc -D EMACS_EXTERN_INLINE

	* src/comp.h, src/thread.h: Add INLINE_HEADER_BEGIN and
	INLINE_HEADER_END, since it uses INLINE.
	* src/emacs.c: Include these two files.

2022-03-19  Paul Eggert  <eggert@cs.ucla.edu>

	valid_sp inline fix

	* src/bytecode.c (valid_sp): static, not INLINE, as INLINE
	should be used only in headers and between INLINE_HEADER_BEGIN
	and INLINE_HEADER_END.  No need for ‘inline’ here.

2022-03-19  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify alloc.c static function decls

	* src/alloc.c: Omit unnecessary static function declarations.
	Don’t use ‘inline static’ as the C standard says that keyword
	order is obsolescent.  Anyway, no need for ‘inline’ as compilers
	inline without it well enough.

2022-03-19  Paul Eggert  <eggert@cs.ucla.edu>

	Make native helper functions static

	These don’t need to be extern, even with -flto, since
	their addresses are taken.
	* src/comp.c (helper_unwind_protect, helper_unbind_n)
	(helper_save_restriction, helper_GET_SYMBOL_WITH_POSITION)
	(helper_PSEUDOVECTOR_TYPEP_XUNTAG): Now static.

2022-03-19  Paul Eggert  <eggert@cs.ucla.edu>

	Remove unused fns/data and make fns static

	* src/comp.c (saved_sigset, helper_temp_output_buffer_setup):
	Remove; unused.
	* src/comp.c (logfile, helper_link_table):
	* src/fns.c (hashfn_equal, hashfn_eql):
	* src/frame.c (frame_windows_min_size):
	* src/gnutls.c (emacs_gnutls_global_init):
	* src/minibuf.c (Vcommand_loop_level_list):
	* src/syntax.c (syntax_code_spec):
	* src/timefns.c (time_overflow):
	* src/xterm.c (x_xrender_color_from_gc_foreground)
	(x_display_set_last_user_time):
	Now static, since it’s not used elsewhere.
	* src/xterm.c (x_xrender_color_from_gc_foreground)
	(x_xrender_color_from_gc_background): Move earlier to avoid
	forward use.
	(x_xrender_color_from_gc_foreground): Do not define unless
	!defined USE_CAIRO && (RENDER_MAJOR > 0 || RENDER_MINOR >= 2),
	since it’s not used otherwise.

2022-03-19  Paul Eggert  <eggert@cs.ucla.edu>

	Use filenvercmp instead of doing it by hand

	* src/fns.c (Fstring_version_lessp): Use filenvercmp,
	not string_version_cmp.
	(string_version_cmp): Remove; no longer used.

2022-03-19  Paul Eggert  <eggert@cs.ucla.edu>

	Omit unnecessary code when !HAVE_NATIVE_COMP

	* src/decompress.c (MD5_BLOCKSIZE, acc_buf, acc_size)
	(accumulate_and_process_md5, final_process_md5, md5_gz_stream):
	* src/dynlib.c (dynlib_open_for_eln, dynlib_close) [!WINDOWSNT]:
	* src/fileio.c (internal_delete_file_1, internal_delete_file):
	Define only if HAVE_NATIVE_COMP && WINDOWSNT,
	as they’re not used otherwise.

2022-03-19  Paul Eggert  <eggert@cs.ucla.edu>

	Remove internal_condition_case_[345]

	* src/comp.c (directory_files_matching) [WINDOWSNT]: New function.
	(eln_load_path_final_clean_up) [WINDOWSNT]: Use it.
	This removes the need for internal_condition_case_5.
	* src/eval.c (internal_condition_case_3)
	(internal_condition_case_4, internal_condition_case_5): Remove.
	The first two were never used; the last only in now-removed code.

2022-03-19  Paul Eggert  <eggert@cs.ucla.edu>

	Remove sanitize_window_sizes

	* src/window.c (sanitize_window_sizes): Remove; no-longer-used.
	A previous refactoring moved this to Lisp without removing the C code.

2022-03-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `command-modes' work for (native-compiled) subrs, too

	* lisp/emacs-lisp/comp.el (comp-func): Add a command-modes slot.
	(comp-spill-lap-function, comp-intern-func-in-ctxt): Fill it.
	(comp-emit-for-top-level, comp-emit-lambda-for-top-level): Use it.

	* src/alloc.c (mark_object): Mark the command_modes slot.

	* src/comp.c (make_subr): Add a command_modes parameter.
	(Fcomp__register_lambda): Use it.
	(Fcomp__register_subr): Ditto.

	* src/data.c (Fcommand_modes): Output the command_modes data for subrs
	(bug#54437).

	* src/lisp.h (GCALIGNED_STRUCT): Add a command_modes slot.

	* src/pdumper.c (dump_subr): Update hash.
	(dump_subr): Dump the command_modes slot.

2022-03-19  Po Lu  <luangruo@yahoo.com>

	Improve protection against faulty clients during DND

	* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
	(xdnd_send_leave, x_dnd_send_drop): Catch errors around call to
	XSendEvent.  The target window could be gone.

2022-03-19  Guy Gastineau  <strings.stringsandstrings@gmail.com>  (tiny change)

	Remove redundant checks in erc--switch-to-buffer

	* lisp/erc/erc.el (erc--switch-to-buffer): Commit
	f925fc93bac41d7622d1af927e33b0e738ff55b0 "Add `predicate' arg to
	`read-buffer' and use it for erc-iswitchb" meant to remove this, but
	it was left behind. (Bug#53617)

2022-03-19  F. Jason Park  <jp@neverwas.me>

	Add unit test for erc--switch-to-buffer

	* test/lisp/erc/erc-tests.el (erc--switch-to-buffer): Add new test.
	(Bug#53617)

2022-03-19  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	e059d7c Fix region highlight in non-selected windows

2022-03-19  Po Lu  <luangruo@yahoo.com>

	Ignore drag source frame on Haiku in line with documentation

	* src/haiku_support.cc (class EmacsWindow): New field
	`window_id'.
	(MessageReceived): Ignore dropped messages with same window id.
	(be_drag_message): Add source frame's window ID to message.

2022-03-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	c4596c8522 Fix a regression in 'decipher-digram-list'

2022-03-18  Po Lu  <luangruo@yahoo.com>

	Document dired-mouse-drag-files

	* doc/emacs/dired.texi (Misc Dired Features): Explain that
	dragging files is now supported.
	* etc/NEWS: Update documentation status.
	* lisp/dired.el (dired-mouse-drag-files): Fix typo in doc
	string.

2022-03-18  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (XTread_socket): Don't filter GenericEvents.

2022-03-18  Po Lu  <luangruo@yahoo.com>

	Fix some glitches when dragging files from dired

	* lisp/dired.el (dired-mouse-drag-files): Fix initial values.

	(dired-mouse-drag): Clear mark if active and only make button
	release events unread.

2022-03-18  Po Lu  <luangruo@yahoo.com>

	Handle composite overlay window during drag and drop sessions

	* configure.ac: Test for the composite extension and use it if
	available.
	* msdos/sed1v2.inp: Update.
	* src/Makefile.in (XCOMPOSITE_LIBS, XCOMPOSITE_CFLAGS): New
	variables.
	(EMACS_CFLAGS, LIBES): Add new libs and cflags.
	* src/xterm.c (x_dnd_get_target_window): Look for proxy on
	composite overlay window if mapped.
	(x_term_init): Test if the composite extension is available.
	* src/xterm.h (struct x_display_info): New fields for composite
	extension presence.

2022-03-18  Po Lu  <luangruo@yahoo.com>

	Fix some XIM servers getting confused during drag-and-drop

	* src/xterm.c (x_dnd_begin_drag_and_drop): Clear XIC while event
	loop is in progress.
	(x_filter_event): Return 0 if DND is in progress.
	(xim_instantiate_callback): Likewise.

2022-03-18  Jimmy Aguilar Mena  <spacibba@aol.com>

	cursor-face-highlight-nonselected-window default to nil

	* lisp/simple.el (redisplay--update-cursor-face-highlight) : Use if-let*
	and not check facep.
	(cursor-face-highlight-nonselected-window) : default to nil

2022-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure): Minor optimization

2022-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	Pcomplete: Better obey `completion-at-point-functions`

	Functions on `completion-at-point-functions` should not modify
	the buffer.  Pcomplete itself mostly abides by this but Eshell's
	use of it doesn't.  Try and catch those cases.  Also fix one of
	those cases.

	* lisp/pcomplete.el (pcomplete-allow-modifications): New var.
	(pcomplete-completions-at-point): Enforce it.
	(pcomplete, pcomplete-expand-and-complete, pcomplete-expand):
	Rebind it since these commands expect the extra side effects.

	* lisp/eshell/em-cmpl.el (eshell--pcomplete-insert-tab): New function,
	extracted from `eshell-complete-parse-arguments`.
	(eshell-complete-parse-arguments): Use it and obey
	`pcomplete-allow-modifications`.

2022-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/gnus/mail-source.el (mail-source-set-1): Fix indent and simplify

2022-03-18  Mattias Engdegård  <mattiase@acm.org>

	Speed up fixnum printing

	Use the new number-to-string code to speed up fixnum printing, with
	similar results (often more than twice as fast as before).

	* src/data.c (Fnumber_to_string): Move fixnum conversion to...
	(fixnum_to_string): ... this new function.
	* src/lisp.h: (fixnum_to_string): External declaration.
	* src/print.c (print_object): Use fixnum_to_string instead of sprintf.

2022-03-18  Michael Albinus  <michael.albinus@gmx.de>

	Make application configurable in 'with-connection-local-variables'

	* doc/lispref/variables.texi (Connection Local Variables):
	Explain 'connection-local-default-application'.

	* etc/NEWS: Mention 'connection-local-default-application'.

	* lisp/files-x.el (connection-local-default-application): New variable.
	(connection-local-criteria-for-default-directory): Use it.  (Bug#54405)

	* test/lisp/files-x-tests.el
	(files-x-test-with-connection-local-variables): Extend test.

2022-03-18  João Távora  <joaotavora@gmail.com>

	Defend against broken move-to-column in recent emacs

	* eglot.el (eglot-lsp-abiding-column): Use (min (point) (point-max))

	This is a defensive fix for an Emacs/company-mode problem described
	below.

	The problem can be reproduced in Eglot before this commit with:

	~/Source/Emacs/emacs/src/emacs -Q -f package-initialize -L       \
	~/Source/Emacs/company-mode -l company -f global-company-mode -l \
	 eglot.el ~/tmp/issue-860/args_out_of_range.c -f eglot -f        \
	 display-line-numbers-mode -f toggle-debug-on-error

	  1 // args_out_of_range.c
	  2 struct Book {
	  3   int id;
	  4   char title[50]
	  5 } book = { 1024, "C" };
	  6
	  7 int main(int argc, char *argv[])
	  8 {
	  9
	 10   // Error when typing the dot to make "book."
	 11   book
	 12   return 0;
	 13 }

	When one types the dot after the "book" on line 11, company-mode
	displays a two-line overlay that visually encompasses line 12 after
	"book", which has the "return 0;" statement.  That line happens to
	also hold a warning about incorrect syntax, one that starts at column
	2.

	Eglot uses 'move-to-column' to go that precise place.

	In Emacs 27.2, move-to-column is unaffected by previous company-mode
	overlays, even if the current line is being co-used visually by the
	overlay.  It moves to the right buffer position.

	In Emacs master, this isn't true.  It seems to be confounded by the
	company-mode overlay and moves to eob, which eventually breaks Eglot
	with a backtrace such as this one:

	Debugger entered--Lisp error: (args-out-of-range #<buffer args_out_of_range.c> 110 124)
	  encode-coding-region(110 124 utf-16 t)
	  (length (encode-coding-region (or lbp (line-beginning-position)) (point) 'utf-16 t))
	  (- (length (encode-coding-region (or lbp (line-beginning-position)) (point) 'utf-16 t)) 2)
	  (/ (- (length (encode-coding-region (or lbp (line-beginning-position)) (point) 'utf-16 t)) 2) 2)
	  eglot-lsp-abiding-column(110)
	  (- column (eglot-lsp-abiding-column lbp))
	  (setq diff (- column (eglot-lsp-abiding-column lbp)))
	  (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff)))
	  (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if (> diff 0) (1+ diff) (1- diff)) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil))
	  (let* ((lbp (line-beginning-position)) (diff nil) (--cl-var-- t)) (narrow-to-region lbp (line-end-position)) (move-to-column column) (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if (> diff 0) (1+ diff) (1- diff)) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil)) nil)
	  (catch '--cl-block-nil-- (let* ((lbp (line-beginning-position)) (diff nil) (--cl-var-- t)) (narrow-to-region lbp (line-end-position)) (move-to-column column) (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if (> diff 0) (1+ diff) (1- diff)) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil)) nil))
	  (save-restriction (catch '--cl-block-nil-- (let* ((lbp (line-beginning-position)) (diff nil) (--cl-var-- t)) (narrow-to-region lbp (line-end-position)) (move-to-column column) (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if ... ... ...) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil)) nil)))
	  eglot-move-to-lsp-abiding-column(2)

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/860

2022-03-18  Mattias Engdegård  <mattiase@acm.org>

	Speed up number-to-string for fixnums

	Do the binary-to-decimal conversion by hand for fixnums instead of
	calling sprintf.  This results in a noticeable speed increase (on my
	machine, 2.2× faster excluding GC).

	* src/data.c (Fnumber_to_string): Don't use sprintf for fixnums.

2022-03-18  Po Lu  <luangruo@yahoo.com>

	Implement drag-and-drop of files on Haiku

	* lisp/term/haiku-win.el (haiku-dnd-selection-converters): Add
	new selection converter.
	(haiku-dnd-convert-uri-list): New function.
	(x-begin-drag): Allow selection converters to change message
	field type.

	* src/haikuselect.c (haiku_lisp_to_message): Perform more error
	checking.

2022-03-18  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	530c3491e8 Improve documentation of bookmark default sorting
	11492259b1 ; * doc/lispref/display.texi (Overlay Arrow): More accurat...

2022-03-18  Po Lu  <luangruo@yahoo.com>

	Allow dragging messages with file names on Haiku

	* src/haiku_select.cc (be_add_refs_data): New function.
	* src/haikuselect.c (haiku_lisp_to_message): Handle `ref' type
	correctly.
	* src/haikuselect.h: Update prototypes.

2022-03-18  Po Lu  <luangruo@yahoo.com>

	Allow dragging files from Dired to other programs

	* etc/NEWS: Announce new user option `dired-mouse-drag-files'.
	* lisp/dired.el (dired-mouse-drag-files): New user option.
	(dired-mouse-drag): New command.
	(dired-mouse-drag-files-map): New variable.
	(dired-insert-set-properties): Add additional keymap if mouse
	dragging is enabled.

	* lisp/select.el (xselect-convert-to-targets): Handle new
	form of selection converters.
	(xselect-convert-to-username):
	(xselect-convert-to-text-uri-list):
	(xselect-uri-list-available-p): New functions.
	(selection-converter-alist): Add them as selection converters.

	* src/xselect.c (x_get_local_selection): Handle new form of
	selection converters.
	(syms_of_xselect): Update doc strings.

2022-03-17  Po Lu  <luangruo@yahoo.com>

	Minor fixes to DND support

	* src/xterm.c (x_dnd_begin_drag_and_drop): Free targets
	afterwards.
	(handle_one_xevent): Only calculate dnd_grab if DND is in
	progress.

2022-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	Remove some early-bootstrap dependencies for `advice`

	The dependencies between `advice`, cl-generic`, `bytecomp`, `cl-lib`,
	`simple`, `help`, ... were becoming unmanageable.
	Break the reliance on `advice` (which includes making sure the
	compiler is not needed during the early bootstrap).

	* lisp/simple.el (pre-redisplay-function): Set without using `add-function`.

	* lisp/loadup.el (advice, simple): Move to after `cl-generic`.

	* lisp/help.el (command-error-function): Set without using `add-function`.
	(help-command-error-confusable-suggestions): Explicitly call
	`command-error-default-function` instead.

	* lisp/emacs-lisp/cl-macs.el (pcase--mutually-exclusive-p): Don't
	optimize during early-bootstrap.

	* lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Tiny simplification.
	(cl-defmethod): Label the obsolescence warning as it should.
	(cl--generic-compiler): New variable.
	(cl--generic-get-dispatcher): Use it.
	(cl--generic-prefill-dispatchers): Make freshly made dispatchers.

2022-03-17  Jimmy Aguilar Mena  <spacibba@aol.com>

	Add new variable cursor-face-highlight-nonselected-window

	* lisp/simple.el (cursor-face-highlight-nonselected-window) : New
	custom default to cursor-in-non-selected-windows.
	(redisplay--update-cursor-face-highlight) : Extend highlight condition
	to consider the new variable.

2022-03-17  Mattias Engdegård  <mattiase@acm.org>

	Put bytecode stack frame metadata in a struct

	Using a plain C struct instead of type-punning Lisp_Object stack slots
	makes the bytecode interpreter code more type-safe and potentially
	faster (from better alias analysis), and the special-purpose accessors
	are no longer needed.  It also reduces the stack requirements when
	using 64-bit Lisp_Object on 32-bit platforms.

	* src/bytecode.c (enum stack_frame_index)
	(sf_get_ptr, sf_set_ptr, sf_get_lisp_ptr, sf_set_lisp_ptr,
	sf_get_saved_pc, sf_set_saved_pc): Remove.
	(BC_STACK_SIZE): Now in bytes, not Lisp words.
	(struct bc_frame): New.
	(init_bc_thread, mark_bytecode, Finternal_stack_stats, valid_sp)
	(exec_byte_code):
	* src/lisp.h (struct handler, get_act_rec, set_act_rec):
	Adapt to new struct bc_frame.

2022-03-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Restore HOME after mailcap-parsing-and-mailcap-mime-info

	* test/lisp/net/mailcap-tests.el
	(mailcap-parsing-and-mailcap-mime-info): Restore HOME after the
	test (bug#54435).

2022-03-17  Michael Albinus  <michael.albinus@gmx.de>

	Enable Tramp reloading

	* lisp/net/tramp.el (tramp-file-name): Add ;;;###tramp-autoload
	cookie.  (Bug#50869)

	* test/lisp/net/tramp-tests.el (tramp-test47-unload): Do not skip.
	Test reload.

2022-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Warn suspicious args

2022-03-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid repeated prompts in `M-x shell' if using ~/.emacs_bash

	* lisp/shell.el (shell): Use `shell-eval-command' to avoid
	repeated prompts (bug#9961).

2022-03-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Make shell-resync-dirs work with zsh

	* lisp/shell.el (shell-resync-dirs): Use shell-eval-command to
	avoid getting confused by zsh (bug#54384).
	(shell-eval-command): New function.

2022-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	(seq-contains-p): Refine the non-nil returned value

	* lisp/emacs-lisp/seq.el (seq-contains-p): Like `cl-some` return the
	value returned by the test function rather than t.

2022-03-17  Philipp Stephani  <phst@google.com>

	Fix a use of 'cl-defgeneric'.

	* lisp/progmodes/xref.el (xref-match-length): Use 'cl-defmethod'
	instead of 'cl-defgeneric'.

2022-03-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `?' work again in read-multiple-choice

	* lisp/emacs-lisp/rmc.el (read-multiple-choice): Make the `?' key
	work again to show the help text.

2022-03-17  Felician Nemeth  <felician.nemeth@gmail.com>

	Format long help texts better in read-multiple-choice

	* lisp/emacs-lisp/rmc.el (rmc--show-help): Format long help texts
	better (bug#54430).

2022-03-17  Andrew G Cohen  <cohen@andy.bu.edu>

	Improve propagation of gnus/nnselect group info

	* lisp/gnus/nnselect.el (nnselect-push-info): Speed up pushing the
	nnselect info back to the originating groups.

2022-03-17  Andrew G Cohen  <cohen@andy.bu.edu>

	Fix bug in nnselect fetching new articles in a thread

	* lisp/gnus/nnselect.el (nnselect-request-thread): Ignore the
	Retrieval Status Value in comparing whether articles are the same.

2022-03-17  Sean Whitton  <spwhitton@spwhitton.name>

	Don't use the original sender's address as the envelope-from

	* lisp/gnus/message.el (message-resend): Avoid setting the
	envelope-from to the original sender's address rather than the
	resender's (bug#54429).

2022-03-17  Arash Esbati  <arash@gnu.org>

	Improve LaTeX symbol prettification

	* lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist):
	Support macros which used to be part of textcomp package.

2022-03-17  Po Lu  <luangruo@yahoo.com>

	Prevent invisible frames from acting as drag sources

	* src/xterm.c (x_dnd_begin_drag_and_drop): Error out if f is
	invisible.  It makes no sense for an invisible frame to be a
	drag source, so the function just hangs.

2022-03-17  Po Lu  <luangruo@yahoo.com>

	* src/haikuselect.c (Fhaiku_drag_message): Clear display grab after drag ends.

2022-03-17  Po Lu  <luangruo@yahoo.com>

	Fix creating frames with an initial value of `fullscreen' on Haiku

	* src/haikufns.c (haiku_create_frame): Set configury_done and do
	pending fullscreen change if any.
	* src/haikuterm.c (haiku_fullscreen): Defer actually setting
	fullscreen until configury_done is set.
	* src/haikuterm.h (struct haiku_output): New field
	`configury_done'.

2022-03-17  Michael Albinus  <michael.albinus@gmx.de>

	Do not cache directories with Tramp sshfs

	* lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>:
	Add "-o dir_cache=no" to `tramp-mount-args'.  (Bug#54126)

2022-03-17  Po Lu  <luangruo@yahoo.com>

	Fix mouse movement on Haiku

	* src/haiku_support.cc (MouseMoved): Make sure grab view exists
	before comparing against it.

2022-03-17  Po Lu  <luangruo@yahoo.com>

	Display drag-and-drop messages in echo area on non-graphics displays

	* lisp/mouse.el (mouse-drag-and-drop-region-display-tooltip)
	(mouse-drag-and-drop-region-hide-tooltip): New functions.
	(mouse-drag-and-drop-region): Use them instead of calling
	`x-hide-tip' and `x-show-tip' directly.

2022-03-17  Eli Zaretskii  <eliz@gnu.org>

	Fix compilation error of xterm.c

	* src/xterm.c (x_dnd_begin_drag_and_drop): Use current_count only
	if defined.  Reported by Tassilo Horn <tsdh@gnu.org>.

2022-03-17  Po Lu  <luangruo@yahoo.com>

	Prevent delivery of duplicate events when window is grabbed on Haiku

	* src/haiku_support.cc (grab_view, grab_view_locker): New
	variables.
	(MouseMoved, MouseDown, MouseUp): Keep track of the grab and
	don't deliver motion events to any other view.

2022-03-17  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_dnd_begin_drag_and_drop): Always initialize hold_quit.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Restore old PGTK scrolling code

	* src/pgtkterm.c (pgtk_copy_bits): Restore old code using
	cairo_surface_create_similar.  (bug#54040)

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Make GTK inspector available on PGTK

	* src/pgtkfns.c (Fx_gtk_debug): New function.
	(syms_of_pgtkfns): Define new subr.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	* lisp/term/haiku-win.el (x-begin-drag): Fix type code of B_MIME_TYPE.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Implement cross-program drag-and-drop on Haiku

	* doc/lispref/frames.texi (Drag and Drop): Fix documentation of
	`x-begin-drag' to match actual function arity.
	* lisp/term/haiku-win.el (haiku-dnd-selection-value): New
	variable.
	(haiku-dnd-selection-converters): New variable.
	(haiku-dnd-convert-string): New function.
	(gui-backend-get-selection, gui-backend-set-selection): Handle
	XdndSelection specially.
	(x-begin-drag): New function.

	* src/haiku_select.cc (be_create_simple_message)
	(be_add_message_data): New functions.
	* src/haiku_support.cc (WAIT_FOR_RELEASE): New message type.
	(class EmacsView, MouseUp): If waiting for release, reply and
	drop event.
	(be_drag_message, be_drag_message_thread_entry): New functions.
	* src/haiku_support.h: Update prototypes.

	* src/haikuselect.c (lisp_to_type_code, haiku_lisp_to_message)
	(Fhaiku_drag_message): New functions.
	(syms_of_haikuselect): Define new subr.

	* src/haikuselect.h: Update prototypes.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Improve GTK support for X11 drag-n-drop

	* src/xterm.c (x_dnd_begin_drag_and_drop): Run nested GTK event
	loop instead, so GTK gets the correct events.

2022-03-16  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify generate-new-buffer-name randomness

	* src/buffer.c (Fgenerate_new_buffer_name):
	Simplify by calling get_random instead of Frandom;
	that’s random enough here.

2022-03-16  Paul Eggert  <eggert@cs.ucla.edu>

	Improve random bignum generation

	* src/bignum.c (get_random_limb, get_random_limb_lim)
	(get_random_bignum): New functions, for more-efficient
	generation of random bignums without using Frem etc.
	* src/fns.c (get_random_fixnum): New function.
	(Frandom): Use it, and get_random_bignum.
	Be consistent about signaling nonpositive integer arguments;
	since zero is invalid, Qnatnump is not quite right here.
	* src/sysdep.c (get_random_ulong): New function.

2022-03-16  Alan Mackenzie  <acm@muc.de>

	Strip positions from symbols before the eval in eval-{when,and}-compile.

	This fixes bug #54079.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): Change
	the position of 'byte-run-strip-symbol-positions' in the eval-when-compile
	entry.  Add a call to `byte-run-strip-symbol-positions' in the
	eval-and-compile entry.

2022-03-16  Robert Pluim  <rpluim@gmail.com>

	Report buffer-name when local mode-line is invalid

	* lisp/files.el (hack-local-variables-prop-line): Add '(buffer-name)'
	to the message reporting the malformed mode-line.

2022-03-16  Robert Pluim  <rpluim@gmail.com>

	Guard against custom entries that can contain NULs

	There are custom entries that contain lambda's as values by default,
	which can result in them containing embedded NULs after
	byte-compilation, which wreaks havoc when they are saved to .emacs and
	later read in.  (Bug#52554)

	* lisp/cus-edit.el (custom-save-all): Bind
	print-escape-control-characters to t.
	* lisp/startup.el (startup--load-user-init-file): Bind
	inhibit-null-byte-detection to t.

2022-03-16  Robert Pluim  <rpluim@gmail.com>

	Improve error message for 'not running' processes

	The current error message is simply 'not running', but
	'status_message' can give information about why the process is in that
	state, such as network errors, so return that as well.  (Bug#53762)

	* src/process.c (send_process, Fprocess_send_eof): Add the output of
	'status_message' to the error string.

2022-03-16  Manuel Giraud  <manuel@ledu-giraud.fr>

	* lisp/net/tramp-sh.el (tramp-find-file-exists-command): Fix comment.

2022-03-16  Robert Pluim  <rpluim@gmail.com>

	Link with libdl when using pgtk

	* configure.ac: Define LIBMODULES on GNU/Linux when using pgtk, even
	when not using modules, since pgtkterm.c uses dlsym.  (Bug#54378)

2022-03-16  Po Lu  <luangruo@yahoo.com>

	* doc/lispref/frames.texi (x-begin-drag): Improve wording.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Fix 32-bit Haiku build

	* src/haikuselect.h (be_enum_message): Fix declaration for
	32-bit types.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Add support for dropping plain text on Haiku

	* haiku-win.el (haiku-dnd-handle-drag-n-drop-event): Handle
	`text/plain'.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Redo Haiku DND support

	* lisp/term/haiku-win.el (haiku-dnd-handle-drag-n-drop-event):
	Update for new DND event format.
	* src/haiku_io.c (haiku_len): Handle DRAG_AND_DROP_EVENTs.
	* src/haiku_select.cc (be_enum_message, be_get_refs_data)
	(be_get_message_data): New function.
	* src/haiku_support.cc (class Emacs): Remove `RefsReceived'.
	(MessageReceived): Generate new kind of drag-n-drop events.
	* src/haiku_support.h (enum haiku_event_type): Rename
	`REFS_EVENT' to `DRAG_AND_DROP_EVENT'.
	(struct haiku_refs_event): Delete struct.
	(struct haiku_drag_and_drop_event): New struct.
	* src/haikuselect.c (haiku_message_to_lisp): New function.
	(syms_of_haikuselect): New symbols.
	* src/haikuselect.h: Update prototypes.
	* src/haikuterm.c (haiku_read_socket): Handle new type of
	drag-and-drop events by serializing drop message to Lisp and
	letting Lisp code do the processing.
	* src/haikuterm.h: Update prototypes.

2022-03-16  Eli Zaretskii  <eliz@gnu.org>

	Fix last change in frames.texi

	* doc/lispref/frames.texi (Drag and Drop): Improve and clarify the
	wording.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Pacify compiler warning in handle_one_xevent

	* src/xterm.c (x_dnd_get_target_window): Set proto_out even if
	it won't be used because target is None.  Reported by Lars
	Ingebrigtsen <larsi@gnus.org>.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Correct last change for return-frame drags

	* src/xterm.c (handle_one_xevent): Use `x_any_window_to_frame'
	to determine `x_dnd_return_frame_object'.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Fix minor bugs with XDND support

	* lisp/mouse.el (mouse-drag-and-drop-region): Report more
	selection targets for the benefit of Qt and Mozilla.
	* lisp/select.el (xselect--encode-string)
	(selection-converter-alist): Add new selection targets.

	* src/xterm.c (x_dnd_get_window_proxy): New function.
	(x_dnd_get_target_window): New argument proto_out, and return
	first window with XdndAware instead of bottommost window.
	(handle_one_xevent): Use new argument `proto_out'.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Fix XI 2.0 build

	* src/xterm.c (handle_one_xevent): Move declaration of dummy out
	of HAVE_XINPUT2_1.

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Fix tooltip text properties showing up in dragged text

	* lisp/mouse.el (mouse-drag-and-drop-region): Directly call
	x-show-tip and x-hide-tip instead of going through tooltip-show.

2022-03-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	62e830c3d9 * doc/misc/transient.texi: Fix @dircategory to "Emacs misc...

2022-03-16  Po Lu  <luangruo@yahoo.com>

	Better handle drag-and-drop from one Emacs frame to another

	* doc/lispref/frames.texi (Drag and Drop): Document new
	parameter `return-frame' to `x-begin-drag'.
	* lisp/mouse.el (mouse-drag-and-drop-region): Utilize new
	feature.

	* src/xfns.c (Fx_begin_drag): New parameter `return-frame'.
	* src/xterm.c (x_dnd_begin_drag_and_drop): New parameter
	return_frame_p.
	(handle_one_xevent): Set new flags and return frame whenever
	appropriate.
	* src/xterm.h: Update prototypes.

2022-03-15  Po Lu  <luangruo@yahoo.com>

	* src/xfns.c (Fx_begin_drag): Improve doc string.

2022-03-15  Po Lu  <luangruo@yahoo.com>

	Add support for dragging text from Emacs to other programs

	This still probably needs some more protection from
	malfunctioning clients which delete windows at random, but I
	don't know if that's a problem in practice.

	* doc/emacs/frames.texi (Drag and Drop):
	* doc/lispref/frames.texi (Drag and Drop): Document new
	features.

	* etc/NEWS: Announce new function `x-begin-drag' and new user
	option `mouse-drag-and-drop-region-cross-program'.

	* lisp/mouse.el (mouse-drag-and-drop-region-cross-program): New
	user option.
	(x-begin-drag): New variable declaration.
	(mouse-drag-and-drop-region): If the mouse moves out of an Emacs
	frame, begin a window system drag.
	* lisp/x-dnd.el (x-dnd-handle-xdnd): Remove left-over debugging
	code.

	* src/xfns.c (Fx_set_mouse_absolute_pixel_position): Fix
	indentation of opening paren.
	(Fx_begin_drag): New function.
	(syms_of_xfns): Define new subr.
	* src/xselect.c (x_timestamp_for_selection): New function.

	* src/xterm.c (X_DND_SUPPORTED_VERSION): New preprocessor
	declaration.
	(x_dnd_get_window_proto, x_dnd_send_enter, x_dnd_send_position)
	(x_dnd_send_leave, x_dnd_send_drop, x_set_dnd_targets)
	(x_dnd_begin_drag_and_drop): New functions.
	(handle_one_xevent): Handle drag-and-drop motion and button
	events when active.
	(x_free_frame_resources): If f is the DND source, stop
	drag-and-drop.
	(x_term_init): Intern new atoms.
	(syms_of_xterm): New symbol QXdndSelection.

	* src/xterm.h (struct x_display_info): New atoms
	Xatom_XdndAware, Xatom_XdndSelection, Xatom_XdndTypeList,
	Xatom_XdndActionCopy, Xatom_XdndActionMove,
	Xatom_XdndActionLink, Xatom_XdndActionAsk,
	Xatom_XdndActionPrivate, Xatom_XdndActionList,
	Xatom_XdndActionDescription, Xatom_XdndProxy, Xatom_XdndEnter,
	Xatom_XdndPosition, Xatom_XdndStatus, Xatom_XdndLeave,
	Xatom_XdndDrop, and Xatom_XdndFinished.

2022-03-15  Po Lu  <luangruo@yahoo.com>

	Fix build with GTK 3.18.0 or earlier

	* src/gtkutil.c (xg_update_scroll_bar_pos)
	(xg_update_horizontal_scrollbar_pos): Avoid
	gtk_widget_queue_allocate on older GTK versions.

2022-03-15  Eli Zaretskii  <eliz@gnu.org>

	Clean up implementation of N0 per UAX#9

	* src/bidi.c (bidi_resolve_brackets): Instead of requiring
	prev_for_neutral's type to be known, fall back on SOS, per
	the UBA.

2022-03-15  Sam Steingold  <sds@gnu.org>

	Extract `gnus-collect-urls-from-article' from `gnus-summary-browse-url'

	* lisp/gnus/gnus-sum.el (gnus-collect-urls-from-article):
	New function, extracted from `gnus-summary-browse-url'.
	(gnus-summary-browse-url): Use it.

2022-03-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/url/url-vars.el: Cosmetic changes

	(url-mime-separator-chars): Simplify.
	(url-interactive-p): Tweak docstring.

2022-03-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	doctex-mode: Try and fix bug#35140

	* lisp/textmodes/tex-mode.el (doctex-syntax-propertize-rules):
	Add support for the new ^^X and consider the first ^ of ^^A to be the
	closing char for the previous comment.
	(doctex-font-lock-^^A): Simplify accordingly.

2022-03-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix byte-code button in help--describe-command

	* lisp/help.el (help--describe-command): Fix byte-code button
	(bug#24235).

2022-03-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "New command `gnus-summary-browse-all-urls' bound to "v""

	This reverts commit f52dcfd03ad542704d9a43faab0c33be09ab442e.

	It was never agreed that this should be added.

2022-03-15  João Távora  <joaotavora@gmail.com>

	Don't advertise didchangewatchedfiles on tramp

	* eglot.el (eglot--trampish-p): New helper.
	(eglot-client-capabilities): Use it.
	(eglot--uri-to-path): Use it.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/883

2022-03-15  Po Lu  <luangruo@yahoo.com>

	Fix some minor glitches with Haiku scroll bars

	* src/haiku_support.cc (MouseDown): Don't start overscroll if
	dragging started inside a button.

2022-03-15  Po Lu  <luangruo@yahoo.com>

	Fix crashes when trying to pop up a menu on GTK 2

	* src/xterm.c (handle_one_xevent): Respect finish when
	dispatching copy.

2022-03-15  Po Lu  <luangruo@yahoo.com>

	Fix some issues with input on GTK 2 builds

	* src/xfns.c (setup_xi_event_mask): Don't ask for XI key press
	on GTK 2.

2022-03-14  Po Lu  <luangruo@yahoo.com>

	Fix extraneous ifdef in xwidgets code

	* xterm.c (handle_one_xevent): Pass GesturePinchEnd events to
	xwidgets regardless of no-longer-present define.

2022-03-14  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Fix use of wrong motion structure.

2022-03-14  Po Lu  <luangruo@yahoo.com>

	Stop relying on dynlib for PGTK interrupt input

	* src/pgtkterm.c (pgtk_term_init): Use dlopen and dlsym directly
	instead of dynlib functions.  (bug#54378)

2022-03-14  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Fix a bug and some docstrings

	* lisp/net/eudc.el (eudc-register-protocol): Add doc string.
	(eudc-expand-inline): Add TRY-ALL-SERVERS to docstring.
	(eudc-query-with-words): Fix early-return bug reported by
	Alexander Adolf.
	(eudc-menu): Add doc string.
	(eudc-install-menu): Likewise.

2022-03-14  Paul Eggert  <eggert@cs.ucla.edu>

	Another fix for the no-toolkit build

	This should be better in the long run.
	* oldXMenu/Activate.c (XMenuActivate): Revert previous change,
	eliminating the goto it introduced.
	* oldXMenu/XMenuInt.h: Include <attribute.h>, for FALLTHROUGH.

2022-03-14  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer CALLN

	* src/bytecode.c (Fbyte_code):
	* src/composite.c (Fclear_composition_cache):
	Prefer CALLN to doing it by hand.
	* src/fns.c (ccall2): Remove.  All uses replaced by CALLN.

2022-03-14  Sam Steingold  <sds@gnu.org>

	New command `gnus-summary-browse-all-urls' bound to "v"

	* lisp/gnus/gnus-sum.el (gnus-collect-urls-from-article): New function,
	  extracted from `gnus-summary-browse-url'.
	(gnus-summary-browse-url): Use it; also use `browse-url-button-open-url'
	  to handle the prefix argument.
	(gnus-summary-browse-all-urls): New command.
	(gnus-summary-mode-map): Bind `gnus-summary-browse-all-urls' to "v".

2022-03-14  Po Lu  <luangruo@yahoo.com>

	Fix the no toolkit build

	* Activate.c (XMenuActivate): Stop relying on fallthroughs
	inside switch statement.  (bug#54382)

2022-03-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix RFC2047 encoding of Disposition-Notification-To

	* lisp/mail/rfc2047.el (rfc2047-header-encoding-alist): Encode
	Disposition-Notification-To as an address header (bug#54383).

2022-03-14  Po Lu  <luangruo@yahoo.com>

	Handle position specification hints on X toolkit builds

	* src/xterm.c (x_wm_set_size_hint): Set PPosition and USPosition
	independently of Xt.

2022-03-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Simplify Edebug spec

	* lisp/simple.el (cursor-face-highlight-mode): Fix copy&paste

2022-03-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the execute-kbd-macro doc string

	* src/macros.c (Fexecute_kbd_macro): Improve the doc string
	(bug#14206).

2022-03-14  Philipp Stephani  <phst@google.com>

	Make Edebug specification for 'cl-defstruct' more lenient.

	For example, 'xref-item' uses the list form of ':noinline'.

	* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Accept ':noinline' and
	':named' with an argument.
	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-defstruct/edebug): New
	unit test.

2022-03-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't always escape "." and "?" in `prin1'

	* src/print.c (print_object): Only escape "." and "?" when
	appearing as the first character in a symbol (bug#23130).

2022-03-14  Martin Rudalics  <rudalics@gmx.at>

	Init 'rest' in 'balance-windows-2' (Bug#54380)

	* lisp/window.el (balance-windows-2): Give 'rest' an initial
	value (Bug#54380).

2022-03-14  Jimmy Aguilar Mena  <spacibba@aol.com>

	Add local to remove-hook in cursor-face-highlight-mode

	Add LOCAL flag in remove-hook and reword the dock string.

	Thanks to Stefan Monnier for this

2022-03-14  Po Lu  <luangruo@yahoo.com>

	Clean up some Haiku toolkit code

	* src/haiku_io.c (haiku_read_with_timeout): Accept `bigtime_t'
	instead of `time_t' for values which are cast to bigtime_t
	anyway.
	* src/haiku_support.cc (BMenu_run): Read all help events instead
	of just one.
	* src/haiku_support.h: Update prototypes.

2022-03-14  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1ec4063017 ; * admin/make-tarball.txt: Minor updates.

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Fix extraneous overscroll activation on Haiku

	* src/haiku_support.cc (class EmacsScrollBar): New field
	`maybe_overscroll'.
	(MouseDown): Set that field.
	(MouseUp): Clear that field.
	(MouseMoved): Also test `maybe_overscroll' to ensure that a grab
	started inside the scroll bar.

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Improve cursor-face-highlight-mode a bit more.

	Add the hook locally to the buffer only when needed to avoid even
	calling the function redisplay--update-cursor-face-highlight when the
	mode is enabled.

	* lisp/simple.el (redisplay--update-cursor-face-highlight) : Remove
	unneeded condition.
	(cursor-face-highlight-mode) : Conditionally add or remove
	redisplay--update-cursor-face-highlight to pre-redisplay-functions with
	buffer local flag.

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Improve the cursor-face feature.

	Use a minor mode to reduce potential performance issues.

	* lisp/simple.el (cursor-face-highlight-mode) : New minor mode
	(completion-setup-function) : Use the new minor mode
	cursor-face-highlight-mode in completions.
	(redisplay--unhighlight-overlay-function) : Add -- to the name
	(redisplay--highlight-overlay-function) : Make the face parameter
	optional and add -- in the name.

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Fix tool-bar highlight persisting after mouse moves onto WM frame

	* src/xterm.c (handle_one_xevent): Always report MotionNotify
	coordinates in terms of the edit widget.

2022-03-13  Glenn Morris  <rgm@gnu.org>

	* src/bytecode.c: Include sysstdio.h, for fprint, stderr.

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Enable overscroll on Haiku horizontal scroll bars

	* src/haiku_support.cc (MouseMoved): Handle horizontal
	directions correctly.
	* src/haikuterm.c (haiku_set_horizontal_scroll_bar_thumb):
	Enable overscrolling on scroll bar widget.

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Fix scroll bar movement right before overscroll begins on Haiku

	* src/haikuterm.c (haiku_set_scroll_bar_thumb): Make sure value
	and size are within bounds even if portion adjustment is off.

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Make the completion-header-format info more precise.

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Simplify unneeded condition.

	* lisp/minibuffer.el (display-completion-list) : The function
	completion--insert-string already has a condition for when completions
	is nil.

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Rename hook

	* lisp/simple.el (redisplay--update-cursor-property-highlight) : Renamed
	to redisplay--update-cursor-property-highlight

2022-03-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Really fix find-func for defgeneric

	* lisp/emacs-lisp/find-func.el (find-function-regexp): Really add
	defgeneric.

2022-03-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make vtable sorting stable

	* lisp/emacs-lisp/vtable.el (vtable--sort): Make the sorting
	stable.

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Extend completion-auto-help 'always and 'visible.

	Make them behave the same also with exact but not single completion.

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Use the new cursor-face feature to highlight completions.

	* lisp/minibuffer.el (completions-highlight-face) : New custom.
	(completions-highlight-mode) : Removed

2022-03-13  Paul Eggert  <eggert@cs.ucla.edu>

	Clang debug notes

	* etc/DEBUG: Don’t imply Clang works as well as GCC when
	debugging Emacs.  Mention a coverage problem with Clang.

2022-03-13  Jim Porter  <jporterbugs@gmail.com>

	Fix evaluation of negated argument predicates in Eshell

	* lisp/eshell/em-pred.el (eshell-add-pred-func): Let-bind 'pred' so
	the lambdas see the original value (bug#54369).

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Rename completion-header-string to completion-header-format

	And use a propertized default value.

2022-03-13  Mattias Engdegård  <mattiase@acm.org>

	* src/bytecode.c (sf_set_ptr): Cast pointer to type of right size.

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Add new special text attribute cursor-face

	Reuse the functions for highlight region.
	* lisp/simple.el (redisplay-unhighlight-overlay-function) :
	(redisplay-highlight-overlay-function) : New functions from previous
	lambda
	(redisplay-unhighlight-region-function) :
	(redisplay-highlight-region-function) : Redefined with the new functions.
	(redisplay--update-cursor-property-highlight) : New function for
	pre-redisplay-functions.

2022-03-13  Mattias Engdegård  <mattiase@acm.org>

	Separate bytecode stack

	Use a dedicated stack for bytecode, instead of using the C stack.
	Stack frames are managed explicitly and we stay in the same
	exec_byte_code activation throughout bytecode function calls and
	returns.  In other words, exec_byte_code no longer uses recursion
	for calling bytecode functions.

	This results in better performance, and bytecode recursion is no
	longer limited by the size of the C stack.  The bytecode stack is
	currently of fixed size but overflow is handled gracefully by
	signaling a Lisp error instead of the hard crash that we get now.

	In addition, GC marking of the stack is now faster and more precise.
	Full precision could be attained if desired.

	* src/alloc.c (ATTRIBUTE_NO_SANITIZE_ADDRESS): Make non-static.
	* src/bytecode.c (enum stack_frame_index, BC_STACK_SIZE)
	(sf_get_ptr, sf_set_ptr, sf_get_lisp_ptr, sf_set_lisp_ptr)
	(sf_get_saved_pc, sf_set_saved_pc, init_bc_thread, free_bc_thread)
	(mark_bytecode, Finternal_stack_stats, valid_sp): New.
	(exec_byte_code): Adapt to use the new bytecode stack.
	(syms_of_bytecode): Add defsubr.
	* src/eval.c (unwind_to_catch): Restore saved stack frame.
	(push_handler_nosignal): Save stack frame.
	* src/lisp.h (struct handler): Add act_rec member.
	(get_act_rec, set_act_rec): New.
	* src/thread.c (mark_one_thread): Call mark_bytecode.
	(finalize_one_thread): Free bytecode thread state.
	(Fmake_thread, init_threads): Set up bytecode thread state.
	* src/thread.h (struct bc_thread_state): New.
	(struct thread_state): Add bytecode thread state.

2022-03-13  Mattias Engdegård  <mattiase@acm.org>

	Simplify exec_byte_code arguments

	Pass the function object and encoded arity, not the other components.
	This speeds up several call paths and is necessary for improvements to
	come.

	* src/bytecode.c (Fbyte_code): Make a new byte code object for
	execution.  This is slower but performance isn't critical here.
	(exec_byte_code): Retrieve components from the passed function.
	* src/eval.c (fetch_and_exec_byte_code):
	* src/lisp.h (exec_byte_code): Update signature.

2022-03-13  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/ange-ftp.el (ange-ftp-ls): Make a loop when sanitizing LSARGS.

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Make minibuffer-hide-completions interactive.

	Mainly to find a binding for it.

2022-03-13  Jimmy Aguilar Mena  <spacibba@aol.com>

	Add completion-header-string.

	* doc/emacs/mini.texi (completion-header-string): Remove
	completion-header-text-property-list and completion-lazy-count.
	(completion-header-string): Substitutes the removed variable.

2022-03-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add cl-defgeneric to find-func, too

	* lisp/emacs-lisp/find-func.el (find-function-regexp): Add
	cl-defgeneric, too (bug#54343).

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Allow overscrolling on Haiku scroll bars that are full

	* src/haiku_support.cc (MouseMoved): Allow overscrolling even if
	portion is less than 1.0.

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Fix pointer event tracking on top of Haiku scroll bars

	* src/haiku_support.cc (MouseDown): Set correct mouse event mask
	in case the scroll bar widget decides to not do that.

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Fix splurious button events being generated on Haiku

	* src/haiku_support.cc (MouseDown, MouseUp): Don't process if
	the grab is not appropriate for the buttons that were pressed.

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Fix setting IM spot after key press events

	* src/xterm.c (handle_one_xevent): Check f is not NULL before
	trying to set its status area and set preedit spot location
	after KeyPress events.

2022-03-13  Mattias Engdegård  <mattiase@acm.org>

	Fix esh-proc-tests on macOS

	* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline):
	Add pattern matching output when killing a process on macOS (and
	possibly other BSDs).

2022-03-13  Visuwesh  <visuweshm@gmail.com>  (tiny change)

	* quail.el (quail-define-package): Describe VAR form in DOCSTRING better.

	Bug#50143

2022-03-13  Visuwesh  <visuweshm@gmail.com>  (tiny change)

	Follow contemporary practices in the Tamil input methods

	* lisp/language/ind-util.el (indian-tml-base-digits-table): New table
	to translate digits.
	(indian-tml-base-table): Don't translate digits.
	(indian-tml-itrans-digits-v5-hash): Hashtable that translates digits.

	* lisp/leim/quail/indian.el (quail-tamil-itrans-compute-signs-table)
	(quail-tamil-itrans-various-signs-table)
	(quail-tamil-itrans-various-signs-and-digits-table): Separate out the
	digits from the signs table using the function
	'quail-tamil-itrans-compute-signs-table'.
	(tamil-itrans-digits, tamil-inscript-digits): New input methods that
	translates digits.
	(tamil-itrans, tamil-inscript): Fix table inclusion.

	* etc/NEWS: Announce the change.

	Fixes bug#50143.

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Fix small regression for horizontal scroll bars

	* src/haikuterm.c (haiku_read_socket): Restore previous
	horizontal scrollbar code, since the change it was intended for
	was never made.

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Improve overscrolling support on Haiku

	* src/haiku_support.cc (class EmacsScrollBar): New field
	`real_max_value'.
	(MessageReceived): Set real max value.
	(MouseMoved): Get rid of magic numbers by using real max value
	instead.

2022-03-13  Po Lu  <luangruo@yahoo.com>

	Allow dragging scroll bar for overscroll on Haiku

	* src/haiku_support.cc (class EmacsScrollBar): New fields
	`in_overscroll', `can_overscroll', `last_overscroll',
	`last_reported_overscroll_value' and `max_value'.
	(ValueChanged): Make very sure extraneous value are not
	generated.
	(MouseUp): Clear overscroll if enabled.
	(MouseMoved): If overscroll is enabled and dragging downwards
	fails to dislodge the maximum value, enable overscrolling.
	(BView_scroll_bar_update): New parameter `can_overscroll'
	* src/haiku_support.h: Update prototypes.
	* src/haikuterm.c (haiku_set_scroll_bar_thumb)
	(haiku_set_horizontal_scroll_bar_thumb): Adjust parameters to
	scroll bar update functions.
	(haiku_read_socket): Take ceiling of bar position if
	horizontal.

2022-03-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e5b191465d ; * admin/authors.el (authors-canonical-file-name): Remove...
	6b0fdf73cf ; Fix data structures in authors.el

2022-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	Flocate_file_internal: Protect from `.eln` remapping

	Don't use `openp`s functionality to remap `.elc` files to `.eln` files
	since `locate-file` is not specific to ELisp files.
	This should be not just simpler but more robust than the current
	hack which tries to undo the damage after the fact.

	* src/lread.c (Flocate_file_internal): Don't map `.elc` to `.eln`.
	* lisp/files.el (locate-file): Simplify accordingly.

2022-03-12  Po Lu  <luangruo@yahoo.com>

	Improve reliaibility of scroll bar dimensions adjustment on GTK 3

	* src/gtkutil.c (xg_scroll_bar_size_allocate_cb): New function.
	(xg_finish_scroll_bar_creation): Attach new signal.
	(xg_update_scrollbar_pos)
	(xg_update_horizontal_scrollbar_pos): Also set window dimensions
	for the event box.
	* src/xterm.c (x_scroll_bar_configure): New function.
	* src/xterm.h: Update prototypes.

2022-03-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Further locate-file fixes on nativecomp

	* lisp/files.el (locate-file): Fix up previous locate-file change
	-- don't unconditionally return .elc on nativecomp.

2022-03-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Disable esh-proc-test/kill-pipeline on EMBA

	Test esh-proc-test/kill-pipeline condition:
	    (ert-test-failed
	     ((should
	       (string-match-p
		(rx ...)
		(buffer-substring-no-properties output-start ...)))
	      :form
	      (string-match-p "\\(?:\\(?:interrupt\\|killed\\)\n\\)" "")

2022-03-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix EMBA failure for ert-test-record-backtrace

	* test/lisp/emacs-lisp/ert-tests.el (ert-test-record-backtrace): Make
	  this work with AOT.

2022-03-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Return the same file from locate-file in nativecomp and non

	* lisp/files.el (locate-file): Return the .elc file (if it exists)
	in nativecomp, too, to mimic the behavior from non-nativecomp
	builds (bug#51308).

2022-03-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Make find-function-regexp also find cl-defun/defmethod

	* lisp/emacs-lisp/find-func.el (find-function-regexp): Also find
	cl-defun and cl-defmethod (bug#54343).

2022-03-12  Colin Woodbury  <colin@fosskers.ca>

	* lisp/progmodes/python.el: Account for new keywords.

	* lisp/progmodes/python.el (python-font-lock-keywords-level-2): As
	of Python 3.10, Python has structured pattern matching. This adds
	two new keywords which need to be highlighted (bug#54345).

2022-03-12  Alexander Adolf  <alexander.adolf@condition-alpha.com>

	Facilitate Customization of Message-Mode Header Completion Behavior

	* lisp/gnus/message.el (message-email-recipient-header-regexp):
	New user option.
	(message-completion-alist): Use it here.

2022-03-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Mark tramp-test30-make-process unstable on EMBA

	* test/lisp/net/tramp-tests.el (tramp-test30-make-process): This times
	  out on EMBA.

2022-03-12  Mattias Engdegård  <mattiase@acm.org>

	Remove never-used relative jump opcodes

	* src/bytecode.c (BYTE_CODES, exec_byte_code):
	Remove relative jump opcodes that seem to have been a short-lived
	experiment, never used in a release.

2022-03-12  Mattias Engdegård  <mattiase@acm.org>

	Remove debug code for opcodes long gone

	* src/bytecode.c (BYTE_CODES, enum byte_code_op, exec_byte_code):
	Don't display custom messages in debug mode for Bscan_buffer and
	Bset_mark which were removed long ago.

2022-03-12  Mattias Engdegård  <mattiase@acm.org>

	Faster bytecode immediate argument fetching

	* src/bytecode.c (FETCH2):
	Use `|` instead of `+` to combine the bytes forming a 16-bit immediate
	argument so that GCC (prior to version 12) recognizes the idiom and
	generates a 16-bit load.  This applies for little-endian machines with
	cheap unaligned accesses such as x86[-64], arm64 and power64le.

	This 1-character change results in a measurable speed gain on many
	kinds of Lisp code, as 16-bit immediates are used by all jump
	instructions.

	Clang performs this optimization for both `+` and `|` from version 10.

2022-03-12  Mattias Engdegård  <mattiase@acm.org>

	Maintain end of specpdl instead of size

	Keep track of the end of specpdl explicitly since that is what we are
	comparing against on critical code paths.

	* src/eval.c (init_eval_once_for_pdumper, signal_or_quit)
	(grow_specpdl_allocation):
	* src/fileio.c (Fdo_auto_save):
	* src/lisp.h (grow_specpdl):
	* src/thread.c (run_thread, Fmake_thread):
	* src/thread.h (struct thread_state):
	Replace specpdl_size with specpdl_end, according to the equation
	specpdl_end = specpdl + specpdl_size.

2022-03-12  Mattias Engdegård  <mattiase@acm.org>

	Inline record_in_backtrace

	It's critical in several function call paths.

	* src/eval.c (grow_specpdl_allocation): Make non-static.
	(grow_specpdl, record_in_backtrace): Move from here...
	* src/lisp.h (grow_specpdl, record_in_backtrace): ... to here,
	and declare inline.

2022-03-12  Po Lu  <luangruo@yahoo.com>

	Fix the PGTK build

	* src/gtkutil.c (xg_finish_scroll_bar_creation): Fix ifdefs
	preventing x_window from being correctly set.
	(xg_get_scroll_id_for_window): Ifdef out unused function.

2022-03-12  Po Lu  <luangruo@yahoo.com>

	Try really hard to make GTK 3 scroll bars fit

	* src/gtkutil.c (xg_get_widget_from_map): New argument DISPLAY.
	All callers changed.
	(find_scrollbar_cb): New function.
	(xg_finish_scroll_bar_creation, xg_remove_scroll_bar)
	(xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos)
	(xg_set_toolkit_scroll_bar_thumb)
	(xg_set_toolkit_horizontal_scroll_bar_thumb, xg_initialize):
	Stop using id_to_widget_map on X builds with GTK 3 and set the
	event box as the x_window instead.
	* src/xterm.c (x_window_to_scroll_bar): Don't look for ID on GTK
	3.
	(handle_one_xevent): If a ConfigureNotify event is found for a
	scroll bar and the dimensions are wrong, resize the X window to
	the right ones.

2022-03-12  Felicián Németh  <felician.nemeth@gmail.com>

	Change capability 'documentchanges' to t

	Eglot does support woskspaceEdit/documentChanges, but failed to
	advertise this fact.

	Per https://github.com/joaotavora/eglot/issues/873.

	* eglot.el (eglot-client-capabilities): Set documentChanges to t.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/853

2022-03-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	dbe6a3ecf7 Fix regression in 'custom-prompt-customize-unsaved-options'
	a9920473f6 Improve documentation of 'map-charset-chars'

2022-03-12  Po Lu  <luangruo@yahoo.com>

	Fix some issues with input methods that depend on button state

	* src/xterm.c (handle_one_xevent): Translate button state before
	filtering events.

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Fix horizontal scroll bar updating on Haiku

	* src/haikuterm.c (haiku_set_horizontal_scroll_bar_thumb): Just
	take portion and position without adjustments.

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Use more reasonable default timeouts in Haiku menu loop

	* src/haiku_support.cc (BMenu_run): Set default timeout to 10
	seconds.

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Make C-mouse-3 on scroll bars work on Haiku

	* src/haiku_support.cc (class EmacsScrollBar): New field
	`handle_button'.
	(MouseDown, MouseUp): Pass button events with ControlMask to
	parent view.

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Slightly improve scrollbar position accounting on Haiku

	* src/haiku_support.cc (MessageReceived): Use floats for
	calculating portion and subtract proportion directly.
	* src/haikuterm.c (haiku_set_scroll_bar_thumb): Take ceiling of
	value instead of rounding it.

2022-03-11  Jimmy Aguilar Mena  <spacibba@aol.com>

	Add two new options for completions.

	* doc/emacs/mini.texi (completion-lazy-count):
	(completion-header-text-property-list) : New customs

	Updated NEWS and manual.

2022-03-11  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Support querying all servers

	* lisp/net/eudc.el (eudc-expand-try-all): New command.
	(eudc-expand-inline): Add `try-all-servers' optional argument.
	Update `eudc-query-with-words' call.
	(eudc-query-with-words): Add `try-all-servers' optional argument.
	Move response formatting into main query loop.  Query next server
	if `try-all-servers' is non-nil.
	(eudc-tail-menu): Add "Expand Inline Query Trying All Servers"
	menu item.
	* doc/misc/eudc.texi (Installation): Recommend
	eudc-expand-try-all.
	(Emacs-only Configuration): Likewise.
	(Inline Query Expansion, Inline Query Expansion): Likewise.
	Document `eudc-expand-try-all'.
	* etc/NEWS (EUDC): Describe new 'eudc-expand-try-all' command.

2022-03-11  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	EUDC: Update save-query-as-kill name and docstring

	* lisp/net/eudc-vars.el (eudc-server): Fix quoting for checkdoc.
	(eudc-expansion-save-query-as-kill): Rename from
	`eudc-expansion-overwrites-query'.  Define obsolete variable
	alias.  Update comment and documentation.
	* lisp/net/eudc.el (eudc-expand-inline): Rename `replace' argument
	to `save-query-as-kill'.  Update argument documentation.
	* doc/misc/eudc.texi (Inline Query Expansion): Rename
	`eudc-expand-inline' argument.
	* etc/NEWS (EUDC): Document `eudc-expansion-overwrites-query'
	rename to `eudc-expansion-save-query-as-kill'.

2022-03-11  Manuel Uberti  <manuel.uberti@inventati.org>

	Use new jdtls script for eclipse jdt

	Per https://github.com/joaotavora/eglot/issues/864.

	* eglot.el (eglot-server-programs): use new jdtls
	(eglot--eclipse-jdt-contact, eglot--eclipse-jdt). Remove.
	(eglot-execute-command eglot-eclipse-jdt): Remove.
	(eglot-initialization-options eglot-eclipse-jdt): Remove.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/863

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Fix a crash inside Haiku popup menus

	* src/haiku_support.cc (BMenu_run): Handle B_WOULD_BLOCK from
	wait_for_objects loop.

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Fix initial values of scroll bar foreground and background on GTK 3

	* src/gtkutil.c (xg_create_frame_widgets): Stop creating
	scrollbar stylesheet providers.
	* src/xfns.c (Fx_create_frame): Create scroll bar stylesheet
	providers here instead.
	(x_set_scroll_bar_background):
	(x_set_scroll_bar_foreground): Ignore tooltip frames.

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Implement customization of scroll bar colors on GTK 3

	* src/gtkutil.c (xg_create_frame_widgets): Create CSS providers
	for scroll bars.
	(xg_finish_scroll_bar_creation): Attach created CSS providers.
	* src/xfns.c (x_set_scroll_bar_foreground):
	(x_set_scroll_bar_background): Put appropriate content into CSS
	providers.
	* src/xterm.c (x_free_frame_resources): Free CSS providers.
	* src/xterm.h (struct x_output): New fields for scroll bar
	stylesheet providers.

2022-03-11  Po Lu  <luangruo@yahoo.com>

	* src/frame.c (scroll_bar_adjust_thumb_portion_p): Adjust doc string.

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Improve scroll bar treatment on Haiku

	* src/haiku_support.cc (MessageReceived): Subtract portion from
	range of scroll bar.
	* src/haikuterm.c (BE_SB_MAX): Adjust values for better
	rounding.
	(haiku_set_scroll_bar_thumb): Round values instead of
	truncating them.

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Fix inconsistent thumb position on Haiku scroll bars

	* src/haikuterm.c (haiku_set_scroll_bar_thumb): If
	scroll_bar_adjust_thumb_portion is nil, directly calculate thumb
	portions without setting page_size.

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Handle Wayland displays correctly in browse-url

	* lisp/net/browse-url.el (browse-url-process-environment): Use
	WAYLAND_DISPLAY as the display environment variable on
	PGTK.  (bug#54333)

2022-03-11  Po Lu  <luangruo@yahoo.com>

	Allow C-mouse-2 to split windows on XInput 2 builds

	* src/xterm.c (handle_one_xevent): Use x_scroll_bar_handle_click
	if ControlMask is set.

2022-03-10  Po Lu  <luangruo@yahoo.com>

	Fix scroll bar portion on Haiku scroll bars

	* src/haiku_support.cc (EmacsScrollBar): Set steps to
	appropriate value.
	(ValueChanged): Test new value against old value before sending
	value event.
	(MessageReceived): Handle portion and range.
	(BView_scroll_bar_update): New argument for portion.
	* src/haiku_support.h: Update prototypes.
	* src/haikuterm.c (haiku_set_scroll_bar_thumb):
	(haiku_set_horizontal_scroll_bar_thumb): New functions.
	(haiku_set_horizontal_scroll_bar):
	(haiku_set_vertical_scroll_bar): Use those functions to set
	scroll bar values.
	(haiku_read_socket): Handle new meanings of scroll bar values.
	* src/haikuterm.h (struct scroll_bar):

2022-03-10  Alan Third  <alan@idiocy.org>

	Fix NS toolbar identifier (bug#54326)

	* src/nsterm.m ([EmacsWindow createToolbar:]): Set the identifier to
	something that will always be unique to that frame.

2022-03-10  Juri Linkov  <juri@linkov.net>

	Fix new option completions-max-height and new values for completion-auto-help

	* doc/emacs/mini.texi (Completion Options): Fix pxref for
	"Buffer Display Action Alists".

	* lisp/minibuffer.el (completion-auto-help): Explain new values in docstring.
	(completions-max-height): Use choice to allow nil.

2022-03-10  Jimmy Aguilar Mena  <spacibba@aol.com>

	Add new mode completions-highlight-mode.

	completions-max-height new custom variable.

2022-03-10  Jimmy Aguilar Mena  <spacibba@aol.com>

	completion-auto-help new values.

	Added also entries to news and manual

2022-03-10  Augusto Stoffel  <arstoffel@gmail.com>

	Don't strip invisible text when formatting hover string

	This was introduced in https://github.com/joaotavora/eglot/issues/482 due to a bad interaction with a specific
	server.  But this solution makes hyperlinks in Eldoc buffers
	unclickable, because the markdown-mode function that visits a link
	relies on the invisible text.

	Per https://github.com/joaotavora/eglot/issues/866

	* eglot.el (eglot--format-markup): Use buffer-string instead of
	filter-buffer-substring

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/865

2022-03-10  Michael Albinus  <michael.albinus@gmx.de>

	Support remote home directories via connection property

	* doc/misc/tramp.texi (Home directories): New section.
	(Top, Usage): Add it to the menu.
	(Predefined connection information): Mention "~".
	(Multi-hops, File name syntax): Fix typos.

	* lisp/net/tramp.el (tramp-handle-expand-file-name): Check for
	remote home directory.  (Bug#53847)

2022-03-10  Po Lu  <luangruo@yahoo.com>

	Fix display of minibuffer prompts in some circumstances on Haiku

	* src/haikuterm.c (haiku_flush): Always flip buffers as long as
	buffer flipping is not blocked.

2022-03-09  Po Lu  <luangruo@yahoo.com>

	Fix menu bar activation on PGTK

	* src/gtkutil.c (menu_bar_button_pressed_cb): Only update menu
	bar if no menu is active, and the event window is not the widget
	window itself.  Also make menu in use.
	* src/pgtkmenu.c (popup_deactivate_callback): Make menu not in
	use.
	* src/xdisp.c (redisplay_internal): Return if popup_activated
	also on PGTK.

2022-03-09  Po Lu  <luangruo@yahoo.com>

	Fix stray button release events being reported on GTK 2

	* src/xterm.c (handle_one_xevent): Drop ButtonRelease events
	that are destined for a popup menu.

2022-03-09  Po Lu  <luangruo@yahoo.com>

	Fix menu bar event detection on XI2 builds using Core Input

	* src/gtkutil.c (xg_get_gdk_scale): Always return 1 on GTK+ 2.
	(xg_event_is_for_menubar): Fix some ifdefs.
	* src/xterm.c (handle_one_xevent): Update a comment.

2022-03-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix regression in vtable-goto-object

	* lisp/emacs-lisp/vtable.el (vtable-goto-object): Fix moving to
	the object.

2022-03-09  Po Lu  <luangruo@yahoo.com>

	Fix some issues with GTK native input and modifiers on GTK 2

	* src/gtkutil.c (xg_widget_key_press_event_cb): Manually ignore
	modifier keys on GTK 2.

2022-03-09  Po Lu  <luangruo@yahoo.com>

	Make XInput 2 features work on GTK 2 builds

	* src/xfns.c (setup_xi_event_mask): On GTK 2, select for
	button, motion, entry/exit and key events.
	* src/xmenu.c (create_and_show_popup_menu): Clear XI grab if
	appropriate.
	* src/xterm.c (handle_one_xevent): Pass some kinds of input
	extension events to GTK manually on versions of GTK+ that don't
	understand them.

2022-03-09  Po Lu  <luangruo@yahoo.com>

	Fix GTK widgets not appearing inside child frames

	* src/xfns.c (x_set_parent_frame): Disable GTK's own frame
	synchronization in child frames.

2022-03-09  Po Lu  <luangruo@yahoo.com>

	Fix error when creating frames on NS with no main window

	* nsfns.m (Fx_create_frame): If main window is not present,
	center frame window instead of cascading it.

2022-03-09  Po Lu  <luangruo@yahoo.com>

	Don't update Haiku menu bar if nothing changed

	* haikumenu.c (set_frame_menubar): If Lisp-level contents didn't
	change, refrain from actually updating the menu bar.

2022-03-08  Po Lu  <luangruo@yahoo.com>

	Fix flicker during frame resize on Haiku

	* haikuterm.c (haiku_update_end): Call BWindow_Flush directly.
	(haiku_set_vertical_scroll_bar): Stop calling flush_frame.
	(haiku_flush): Only flip buffer of tooltip frames.

2022-03-08  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* sed1v2.inp: Update for recent changes.

2022-03-08  Po Lu  <luangruo@yahoo.com>

	Improve handling of tooltips inside menus on Haiku

	* src/haiku_support.cc (BMenu_run): Make
	`process_pending_signals_function' return a struct timespec.
	* src/haiku_support.h: Update prototypes.
	* src/haikumenu.c (haiku_process_pending_signals_for_menu):
	Return result of `timer_run'.
	* src/haikuterm.c (haiku_flush): Flip buffers if frame is dirty.

2022-03-08  Paul Eggert  <eggert@cs.ucla.edu>

	Decouple mod-test.c from Gnulib

	mod-test.c should not use Gnulib code, as that creates
	unnecessary coupling between Emacs internals and this test module.
	Also Gnulib code is compiled without -fPIC whereas mod-test.c
	needs -fPIC and recompiling Gnulib with -fPIC would be too painful.
	* src/Makefile.in (LIB_NANOSLEEP): New macro.
	(LIBES): Use it.
	* test/Makefile.in (REPLACE_FREE, FREE_SOURCE_0, FREE_SOURCE_0):
	Remove.  All uses removed.
	(LIB_CLOCK_GETTIME, LIB_NANOSLEEP): New macros.
	(MODULE_CFLAGS): Do not -I from lib as that would include Gnulib
	modifications to standard .h files (e.g., "#define nanosleep
	rpl_nanosleep") and we don’t want the Gnulib replacements.
	Instead, for gmp.h (on platforms lacking <gmp.h>) simply '-I.'
	with a suitable gmp.h.
	(gmp.h): New rule to create a suitable gmp.h.
	($(test_module)): Depend on config.h since the code uses config.h.
	Depend on gmp.h if we need to create a suitable one.
	If compiling mini-gmp.h, compile the original one and not
	the Emacs-specific one, to lessen coupling with Emacs internals.
	Link with LIB_CLOCK_GETTIME and LIB_NANOSLEEP.
	(clean): Remove gmp.h.
	* test/src/emacs-module-resources/mod-test.c: Don’t include timespec.h.
	All uses of timespec.h APIs changed to use system-supplied APIs.
	Change _Static_assert to plain assert, so that we needn’t rely
	on Gnulib’s _Static_assert.
	(timespec_le) [CLOCK_REALTIME]: New function.
	Change use of timespec_cmp changed to use this instead.
	(Fmod_test_sleep_until, Fmod_test_nanoseconds):
	Define these functions and their Lisp names mod-test-sleep-until
	and mod-test-nanoseconds only if CLOCK_REALTIME,
	since they now won’t work on platforms lacking CLOCK_REALTIME.
	(Fmod_test_nanoseconds): Just use _Static_assert since it
	should work on all platforms.
	* test/src/emacs-module-tests.el (mod-test-sleep-until)
	(mod-test-nanoseconds, mod-test-double):
	Skip test if the corresponding functione is not defined.

2022-03-08  Paul Eggert  <eggert@cs.ucla.edu>

	Do not include <attribute.h> from <config.h>

	This is because mod-test.c shouldn’t use source code from lib,
	but it does need to include <config.h>.
	* lib-src/ebrowse.c, lib-src/emacsclient.c, lib-src/etags.c:
	* lib-src/make-docfile.c, lib-src/movemail.c:
	* lib-src/seccomp-filter.c, src/dynlib.h, src/lisp.h:
	* src/syssignal.h, src/sysstdio.h, src/systhread.h, src/tparam.h:
	Include <attribute.h>.
	* src/conf_post.h: Do not include <attribute.h>.
	All uses of attribute.h macros replaced with their _GL_ equivalents.

2022-03-08  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Add more dead keys.

2022-03-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Mark tramp test unstable on EMBA

	* test/lisp/net/tramp-tests.el
	(tramp-test44-asynchronous-requests): Mark timed-out EMBA test as
	unstable.

2022-03-08  Michael Albinus  <michael.albinus@gmx.de>

	Implement abbreviate-file-name in Tramp for Google drive

	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-get-home-directory):
	Implement for Google drive.

2022-03-08  Jim Porter  <jporterbugs@gmail.com>

	Support applying indices to more Eshell dollar expansions

	For example, '${echo -e "hi\nbye"}[1]' should expand to "bye".

	* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Support applying
	indices to '${}', '$()', and '$<>' forms.
	(Bug#54227)

	* lisp/eshell/esh-var-tests.el (esh-var-test/interp-lisp-indices)
	(esh-var-test/interp-cmd-indices)
	(esh-var-test/interp-cmd-external-indices)
	(esh-var-test/quoted-interp-lisp-indices)
	(esh-var-test/quoted-interp-cmd-indices): New tests.

2022-03-08  Jim Porter  <jporterbugs@gmail.com>

	Improve wording of Eshell variable interpolation code/documentation

	* lisp/eshell/esh-arg.el (eshell-unescape-inner-double-quote): Rename
	from 'eshell-parse-inner-double-quote'.

	* lisp/eshell/esh-cmd.el (eshell-with-temp-command): Improve
	docstring.

	* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Use
	'eshell-unescape-inner-double-quote' and improve robustness of quoted
	variable name matching.
	(eshell-parse-indices): Use 'eshell-unescape-inner-double-quote'.

	* doc/misc/eshell.texi (Dollars Expansion): Improve wording of
	subscript notation.

2022-03-08  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	d184773 Avoid assertion violations in 'bidi_resolve_brackets'

2022-03-08  Po Lu  <luangruo@yahoo.com>

	Handle XI focus change events that specify implicit focus correctly

	* src/xterm.c (x_detect_focus_change): If detail is
	XINotifyPointer, set focus type to implicit.

2022-03-08  Po Lu  <luangruo@yahoo.com>

	Fix detection of modifier keys on XInput 2

	* src/xterm.c (handle_one_xevent): Fix iteration over sets of
	modifiers.

2022-03-08  Michael Albinus  <michael.albinus@gmx.de>

	Handle bug#54294 in Tramp

	* lisp/net/tramp.el (tramp-handle-file-locked-p, tramp-handle-lock-file):
	Use `tramp-system-name'.  (Bug#54294)

2022-03-08  Po Lu  <luangruo@yahoo.com>

	Fix more uses of opaque Visual structure

	* src/image.c (x_kill_gs_process):
	* src/xfaces.c (x_free_colors):
	(x_free_dpy_colors):
	* src/xfns.c (Fxw_display_color_p):
	(Fx_display_grayscale_p):
	(Fx_display_visual_class):
	* src/xterm.c (x_copy_color):
	* src/xterm.h (x_mutable_colormap): Stop using private fields of
	Visual.

2022-03-08  Po Lu  <luangruo@yahoo.com>

	Return actual color cell count in x-display-color-cells

	* src/xfns.c (Fx_display_color_cells): Return the actual amount
	of color cells, or the amount of individual combinations of
	components.

2022-03-08  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	80736aef90 Fix which-func-update doc string
	d9e5ae5e20 Improve wording of 'dired-jump's description

2022-03-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	(cl-macro-list): Simplify by unifying the variants

	* lisp/emacs-lisp/cl-macs.el (cl-macro-list): Add the &whole and the
	dotted tail cases from `cl-macro-list1`.
	(cl-macro-list1, cl-define-compiler-macro-list): Delete edebug elem specs.
	(cl-destructuring-bind, cl-define-compiler-macro): Use `cl-macro-list`
	instead, now that it covers all the cases we need.

2022-03-07  Po Lu  <luangruo@yahoo.com>

	Avoid color leaks while better ensuring a close color is found

	* src/xterm.c (x_alloc_nearest_color_1): Verify nearest can be
	allocated, and use that color value.

2022-03-07  Po Lu  <luangruo@yahoo.com>

	Fix choice of visuals for XPM icon

	* src/xterm.c (x_bitmap_icon): Allow using XPM icon on
	StaticColor and StaticGray as well.

2022-03-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove lock file in --no-build-details, too

	* src/filelock.c (current_lock_owner): Make file writes work when
	using --no-build-details (bug#54294).

2022-03-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Mark ert-test-run-tests-batch-expensive unstable on EMBA

2022-03-07  Kjartan Oli Agustsson  <kjartanoli@outlook.com>  (tiny change)

	Add user stylesheet option for doc-view EPUB support

	* lisp/doc-view.el (doc-view-start-process): Add user stylesheet to
	process arguments when appropriate.

	* lisp/doc-view.el (doc-view-mutool-user-stylesheet): New user option.

2022-03-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/seq.el (seq-concatenate): Accept non-`sequencep` sequences

2022-03-07  Po Lu  <luangruo@yahoo.com>

	Correctly handle exposure in oldXMenu

	* oldXMenu/Activate.c (XMenuActivate): Call set expose_func if
	no pane was found.
	(XMenuActivateSetExposeFunction): New function.
	* oldXMenu/XMenu.h: New typedef `expose_func'.  Update
	prototypes.
	* src/xmenu.c (x_menu_expose_event): New function.
	(x_menu_show): Set expose event handler.
	* src/xterm.c (x_dispatch_event): Make `static' only on GTK.
	* src/xterm.h: Expose `x_dispatch_event' on no-toolkit builds.

2022-03-07  Po Lu  <luangruo@yahoo.com>

	Improve color handling on colormapped displays

	* src/xfns.c (select_visual): Set `visual_info' field whenever
	appropriate.
	(x_create_tip_frame, XDisplayCells): Don't access private fields
	of Visual.

	* src/xterm.c (x_color_cells, x_alloc_nearest_color_1): Use
	colormap_size instead of default cell count.
	(XTflash, x_bitmap_icon, x_term_init):
	* src/xterm.h (struct x_display_info, FRAME_X_VISUAL_INFO): Stop
	accessing private fields of Visual.

2022-03-07  Po Lu  <luangruo@yahoo.com>

	Handle color allocation failures caused by colormap changes

	* src/xterm.c (x_alloc_nearest_color_1): Recompute color cells
	if allocation of cached value failed.

2022-03-07  Michael Albinus  <michael.albinus@gmx.de>

	Rework `abbreviate-file-name' in Tramp

	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	Add 'tramp-get-home-directory'.

	* lisp/net/tramp-compat.el (tramp-file-name-handler): Declare.
	(tramp-compat-exec-path): Use it.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
	Add 'tramp-get-home-directory'.
	(tramp-gvfs-handle-expand-file-name): Rewrite tilde handling.
	(tramp-gvfs-handle-get-home-directory): New defun.

	* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
	Add 'tramp-get-home-directory'.
	(tramp-sh-handle-get-home-directory): New defun.
	(tramp-sh-handle-expand-file-name): Rewrite tilde handling.

	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	Add 'tramp-get-home-directory'.
	(tramp-smb-handle-expand-file-name): Rewrite tilde handling.
	(tramp-smb-handle-get-home-directory): New defun.

	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	Add 'tramp-get-home-directory'.
	(tramp-sudoedit-handle-expand-file-name): Rewrite tilde handling.
	(tramp-sudoedit-handle-get-home-directory): New defun.

	* lisp/net/tramp.el (tramp-file-name-for-operation):
	Add `tramp-get-home-directory'.
	(tramp-get-home-directory): New defun.
	(tramp-handle-abbreviate-file-name): Use it.
	(tramp-set-file-uid-gid, tramp-get-remote-uid)
	(tramp-get-remote-gid): Use `tramp-file-name-handler'.
	(tramp-get-remote-null-device): Do not check for null VEC, it
	doesn't happen anymore.

	* test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name-relative):
	Reorder checks.
	(tramp-test07-abbreviate-file-name):
	(tramp--test-ange-ftp-p): Adapt tests.

2022-03-07  Po Lu  <luangruo@yahoo.com>

	Fix color leak

	* src/xterm.c (x_alloc_nearest_color_1): Don't allocate colors
	multiple times when searching for a closest match.

2022-03-07  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	73f28fbde8 Add a comment for previous browse-url-of-dired-file change
	9b74e84857 Restore documented Emacs 27.2 behavior of browse-url-of-d...
	cd77fd3b85 Update to Org 9.5.2-24-g668205

2022-03-07  Manuel Giraud  <manuel@ledu-giraud.fr>

	Fix bookmark-bmenu-list sorting.

	Do not sort bookmarks in `bookmark-bmenu-list' if `bookmark-sort-flag'
	is nil.

	Also, make the default order of bookmark-bmenu-list be the LIFO order
	defined in `bookmark-sort-flag's documentation.

2022-03-07  Po Lu  <luangruo@yahoo.com>

	Fix maximum selection size reporting

	* src/xselect.c (selection_quantum): Take into account extended
	request size.

2022-03-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in previous browse-url-file-url change

	* lisp/net/browse-url.el (browse-url-file-url): Fix typo in
	previous change.

2022-03-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix esh-proc-test/kill-pipeline-head loop syntax

	* test/lisp/eshell/esh-proc-tests.el
	(esh-proc-test/kill-pipeline-head): Fix syntax of loop.

2022-03-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Inhibit extpipe tests on EMBA, because they apparently time out?

	https://emba.gnu.org/emacs/emacs/-/pipelines/16387

2022-03-06  Po Lu  <luangruo@yahoo.com>

	Fix clearing of scroll bars on builds with disabled double buffers

	* src/xterm.c (x_scroll_bar_clear): Use XClearArea if the scroll
	bar is not double-buffered.

2022-03-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak how bibtex-mark-entry places point

	* lisp/textmodes/bibtex.el (bibtex-mark-entry): Make `C-M-h'
	behave like in other modes (with point at the beginning of the
	region) (bug#4717).

2022-03-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Show SVN status on "." directories, too

	* lisp/vc/vc-svn.el (vc-svn-after-dir-status): Allow tracking
	state of the "." directory, too, since they may have modified
	properties (bug#7861).

2022-03-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix `W' in Dired with non-ASCII file names

	* lisp/net/browse-url.el (browse-url--file-name-coding-system):
	Factor out into own function.
	(browse-url-file-url): Property encode non-ASCII characters so
	that external browsers can understand them.
	(browse-url-emacs): Make `W' in Dired work with non-ASCII file
	names (bug#54271).

2022-03-06  Po Lu  <luangruo@yahoo.com>

	Get rid of a loop through all frames when processing events

	* src/xterm.c (handle_one_xevent): Just flip back buffer of f
	and any instead.
	(flush_dirty_back_buffer_on): New function.
	(flush_dirty_back_buffers): Delete function.

2022-03-06  Gustaf Waldemarson  <gustaf.waldemarson@gmail.com>

	Display complex data types in gdb-mi

	* lisp/progmodes/gdb-mi.el (bindat): Require.
	(gdb-invalidate-locals): Use `-stack-list-variables` instead of
	the deprecated `-stack-list-locals`. Additionally, this allow
	function arguments to be displayed in the locals buffer.
	(gdb-locals-values-buffer, gdb-locals-values-buffer-name)
	(gdb-locals-simple-values-only, gdb-locals-values-table): New
	variables.
	(gdb-locals-values-handler-custom): Create a new gdb buffer for
	extracting local variable values. To
	extract the values for 'complex' data-types, the command
	`-stack-list-locals` is used with the `--all-values` flag.

	The extracted values are then stored in a hash-table for later use in
	the `gdb-locals-handler-custom` that performs the actual update of the
	Local variable buffer.

	All variable values are filtered to fit it into a single line, being
	truncated as necessary by the user customizable option
	`gdb-locals-value-limit`.

	The old behavior of hiding complex values can be restored using the
	customizable `gdb-locals-simple-values-only` option.

	Patch amended by William Xu <william.xwl@gmail.com>.

2022-03-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix syntax error in obsolete message function

	* lisp/gnus/message.el (message-send-mail-function): Fix syntax error.

2022-03-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix url-interactive-p type

	* lisp/url/url-vars.el (url-interactive-pw): Fix typo in previous
	checkin (bug#54275).

2022-03-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix problem with fetching images via Cloudflare

	* lisp/url/url-http.el (url-http): Factor out url-interactive-p.
	* lisp/url/url-auth.el (url-basic-auth):
	(url-basic-auth):
	(url-digest-prompt-creds): Use it to not query the user.

	* lisp/url/url-queue.el (url-queue-start-retrieve): Don't send a
	bogus empty Authorization header (bug#54246) -- this triggers
	Cloudflare's anti-attack software.  Instead rely on
	url-request-noninteractive.

	* lisp/url/url-vars.el (url-interactive-p): New utility function.

2022-03-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	(ecomplete-add-item): Preserve the more complete text

	Avoid replacing "John Doe <john@doe.ch>" with "john@doe.ch".

	* lisp/ecomplete.el (ecomplete-add-item): Keep the longest text

2022-03-06  Alan Mackenzie  <acm@muc.de>

	Restore call to byte-run-strip-symbol-positions in byte-compile-out

	Also increment a loop counter.  This should fix bug #54248.

	* lisp/emacs-lisp/byte-run.el (byte-run--strip-vector/record): increment the
	loop counter 'i' in the main loop.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-out): call
	byte-run-strip-symbol-positions on operands which are one-element lists.

2022-03-06  Mattias Engdegård  <mattiase@acm.org>

	Don't accept whitespace or hex floats in rgbi: color specs

	`color-values-from-color-spec` (new in Emacs 28) erroneously accepted
	leading whitespace and hex floats in rgbi: components.

	Reported by Philip Kaludercic.

	* src/xfaces.c (parse_float_color_comp): Disallow leading whitespace
	and hex floats.
	* test/src/xfaces-tests.el
	(xfaces-internal-color-values-from-color-spec): Add test cases.

2022-03-06  Po Lu  <luangruo@yahoo.com>

	Respect inhibit-double-buffering on non-toolkit scroll bars

	* src/xfns.c (x_set_inhibit_double_buffering): Force scroll bars
	to be re-created on builds without toolkit scroll bars.

	* src/xterm.c (x_scroll_bar_create): Don't initialize back
	buffer if double buffering is disabled for the frame.

2022-03-06  João Távora  <joaotavora@gmail.com>

	Have a couple of lsp faces inherit from basic "shadow"

	* eglot.el (eglot-diagnostic-tag-unnecessary-face)
	(eglot-diagnostic-tag-deprecated-face): Inherit from 'shadow'.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/858

2022-03-06  Po Lu  <luangruo@yahoo.com>

	Slightly fix mouse-highlight processing on Haiku

	* src/haikuterm.c (haiku_read_socket): If no corresponding frame
	was found for a keyboard event, clear mouse highlight.

2022-03-06  Po Lu  <luangruo@yahoo.com>

	Implement frame cascading on Haiku

	* haikufns.c (haiku_create_frame): Cascade frame position with
	the focused frame if position is not user or programmer
	specified.

2022-03-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	0090318c61 * lib-src/seccomp-filter.c (main): Use faccessat2 only if ...
	3bb01a499b Fix regression in derived-mode-init-mode-variables

2022-03-05  Po Lu  <luangruo@yahoo.com>

	Implement "window cascading" on NS

	* src/nsfns.m (Fx_create_frame): Cascade new frame position if
	size hint flags are not USPosition or PPosition.

2022-03-05  Po Lu  <luangruo@yahoo.com>

	Reduce non-toolkit scroll bar flicker

	* src/xterm.c (x_scroll_bar_create): Initialize double buffer
	for scroll bar.
	(x_scroll_bar_set_handle)
	(x_scroll_bar_remove, x_scroll_bar_expose): Draw to back buffer
	instead.
	(x_scroll_bar_end_update): New function.
	(x_scroll_bar_clear): Fill the scroll bar with the background
	instead when double buffered.
	* src/xterm.h (struct scroll_bar): New field `x_drawable'.

2022-03-05  Po Lu  <luangruo@yahoo.com>

	Fix reporting of menu bar wheel events on no toolkit builds

	* src/xterm.c (x_toolkit_position): Handle menu bar position
	on no-toolkit builds.
	(x_create_terminal): Always add `toolkit_position_hook'.

2022-03-05  Robert Pluim  <rpluim@gmail.com>

	Use pselect instead of select in nsterm.m

	* src/nsterm.m ([EmacsApp fdhandler:]): Use pselect instead of
	the single remaining use of select (because we try to avoid using
	select directly) (bug#54245).

2022-03-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix emacs-module-test after recent changes

	* test/Makefile.in ($(test_module)): Include libgnu.a in the
	module test (because the module uses functions from gnulib)
	(bug#32452).

2022-03-05  Po Lu  <luangruo@yahoo.com>

	Obey decorator-specified width and height of tooltip frames on Haiku

	* src/haiku_support.cc (BWindow_dimensions): New functions.
	* src/haiku_support.h: Update prototypes.
	* src/haikufns.c (Fx_show_tip): Use actual dimensions, because
	the decorator might specify a minimum width and height for the
	tooltip frame.
	* src/haikuterm.c (haiku_update_size_hints): Ignore tooltip
	frames.

2022-03-05  Po Lu  <luangruo@yahoo.com>

	Garbage Haiku tooltip frames on size change

	* haikuterm.c (haiku_read_socket): If tooltip frame dimensions
	actually changed, garbage the frame.

2022-03-04  Paul Eggert  <eggert@cs.ucla.edu>

	Fix process-attributes time precision on BSD

	* src/sysdep.c (timeval_to_timespec) [__FreeBSD__ || DARWIN_OS]:
	Remove; no longer needed.
	(make_lisp_s_us) [__FreeBSD__ || DARWIN_OS || __OpenBSD__]:
	New function.
	(make_lisp_timeval) [__FreeBSD__ || DARWIN_OS || __OpenBSD__]:
	Rework in terms of make_lisp_s_us.
	(system_process_attributes) [__FreeBSD__ || DARWIN_OS ||
	__OpenBSD__]: Simplify by using the above.  This fixes some minor
	problems where timestamps promised more precision than was
	actually available.

2022-03-04  Paul Eggert  <eggert@cs.ucla.edu>

	Fix process-attributes time precision on GNU/Linux

	* src/sysdep.c [GNU_LINUX]:
	(time_from_jiffies): Simplify by using time-convert.  Change args
	and result type.  All uses changed.
	(ltime_from_jiffies): Remove; call time_from_jiffies instead.
	(put_jiffies): New function.
	(get_up_time): Return Lisp_Object not struct timespec.
	All uses changed.  Simplify by using time-add.
	(system_process_attributes): Simplify by using the above.
	This fixes some minor problems where timestamps promised more
	precision than was actually available.  When info is not
	available (e.g., sysconf fails) do not place it into the alist.
	* src/timefns.c (float_time): Now extern.

2022-03-04  Paul Eggert  <eggert@cs.ucla.edu>

	%CPU can exceed 100 on GNU/Linux

	* src/sysdep.c (system_process_attributes) [GNU_LINUX]:
	CPU usage can exceed 100% on a multicore platform when Emacs is
	not entirely single-threaded.

2022-03-04  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid unnecessary make_float in time arithmetic

	* src/timefns.c (float_time): New function.
	(time_arith, Ffloat_time): Use it.

2022-03-04  Paul Eggert  <eggert@cs.ucla.edu>

	Fix FreeBSD typo in process-attributes cstime

	* src/sysdep.c (system_process_attributes) [__FreeBSD__]:
	Fix typo that caused cstime to always equal cutime.

2022-03-04  Po Lu  <luangruo@yahoo.com>

	Flush default GC before using it in functions that accept a GContext

	* src/xterm.c (x_scroll_run): Flush normal_gc, since some of the
	following code depends on it being up-to-date.

2022-03-04  Po Lu  <luangruo@yahoo.com>

	Remove render code in x_scroll_run and drop NoExpose events instead

	* src/xterm.c (x_scroll_run): Stop avoiding NoExpose events
	through XRenderComposite.
	(handle_one_xevent): Drop NoExpose events to placate some code
	in Athena widgets.

2022-03-04  Dmitry Gutov  <dgutov@yandex.ru>

	project-shell: Ensure the resulting buffer is live

	* lisp/progmodes/project.el (project-shell):
	Make sure to recreate the shell if the buffer exists but not live
	(https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00017.html).

2022-03-04  Po Lu  <luangruo@yahoo.com>

	Prevent some NoExpose events from being generated

	* src/xterm.c (x_scroll_run): Use the rendering extension if
	available to avoid NoExpose events.

2022-03-04  Po Lu  <luangruo@yahoo.com>

	Implement `pre_activate' callbacks for Motif menus

	* lwlib/lwlib-Xm.c (make_menu_in_widget): Add
	xm_pop_up_callback as the popup callback.
	(xm_pop_up_callback): New function.

2022-03-04  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS build

	* msdos/sedlibmk.inp: Update for gnulib merge.

2022-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	trace.el: Preserve the line structure

	Print newlines appearing inside values (i.e. inside strings) as \n
	rather than actual newlines so as to avoid messing up the main
	structure of the trace buffer.

	* lisp/emacs-lisp/trace.el (trace-entry-message)
	(trace-exit-message, trace--read-args): Quote newlines

2022-03-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid statting directories on startup for Info

	* doc/misc/efaq.texi (File-name conventions) Mention
	Info-directory-list instead.

	* doc/misc/info.texi (Emacs Info Variables): Mention
	Info--default-directory-list.

	* lisp/info.el (Info-default-directory-list): Default to nil to
	avoid statting directories on Emacs startup (bug#27933).
	(Info--default-directory-list): Factored out into own function.
	(Info-default-dirs): Append value of Info-default-directory-list
	to the value returned from Info--default-directory-list.

2022-03-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve scroll-bar-mode/default-frame-alist interaction docs

	* lisp/scroll-bar.el (scroll-bar-mode): Mention
	default-frame-alist (bug#54237).

	* src/frame.c (syms_of_frame): Clarify further that setting this
	variable may have unintended consequences.

2022-03-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add some sleeps to gnutls_try_handshake

	* admin/merge-gnulib (GNULIB_MODULES): Add the nanosleep module.
	* m4/gnulib-comp.m4 (gl_EARLY):
	* lib/gnulib.mk.in: Automatic update.

	* m4/nanosleep.m4:
	* lib/nanosleep.c: New module.

	* nt/mingw-cfg.site (gl_cv_func_free_preserves_errno):
	* nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_nanosleep): Omit nanosleep,
	since mingw has it.

	* src/gnutls.c (gnutls_try_handshake): Add some sleeping to the
	busy-wait loop so that we don't use 100% CPU here (bug#32452).

2022-03-04  Po Lu  <luangruo@yahoo.com>

	Add a few warnings about special event structures on X

	* xterm.c (x_construct_mouse_click)
	(x_note_mouse_movement): Add comments explaining the nature of
	some special event structures.

2022-03-04  Po Lu  <luangruo@yahoo.com>

	Fix some errors in stretch glyphs code on PGTK

	* src/pgtkterm.c (x_draw_stretch_glyph_string): Remove
	unnecessary code.  Reported by Eli Zaretskii <eliz@gnu.org>.

2022-03-04  Eli Zaretskii  <eliz@gnu.org>

	Fix wording and punctuation in recent Gnus documentation changes

	* lisp/gnus/nnselect.el (nnselect-allow-ephemeral-expiry): Make
	the first sentence of the doc string be a single line.

	* doc/misc/gnus.texi (Creating Search Groups): Fix space between
	sentences.

2022-03-04  Po Lu  <luangruo@yahoo.com>

	Initialize time inside motion and button events converted from XI events

	* src/xterm.c (handle_one_xevent): Make sure time is initialized
	in artificial events passed to functions that use it.

2022-03-04  Andrew G Cohen  <cohen@andy.bu.edu>

	Turn expiry on for nnselect groups

	Articles in (persistent) groups from the gnus/nnselect backend will
	now be run through the expiry process upon exit, like other persistent
	groups. Expiry is not on by default for ephemeral nnselect groups but
	may be turned on with nnselect-allow-ephemeral-expiry set to t.

	* lisp/gnus/nnselect.el (nnselect-request-expire-articles): Make
	article expiry work.
	(nnselect-allow-ephemeral-expiry): New variable.
	* doc/misc/gnus.texi (Creating Search Groups): Document
	nnselect-allow-ephemeral-expiry.

2022-03-04  Po Lu  <luangruo@yahoo.com>

	Correctly process legacy XI wheel events on top of scroll bars

	* src/xterm.c (handle_one_xevent): Handle XI button events
	generated by scroll wheels on top of scroll bars.

2022-03-03  Po Lu  <luangruo@yahoo.com>

	Pass core scroll wheel events outside the edit widget to Emacs on GTK

	* src/xterm.c (x_construct_mouse_click): Translate coordinates
	if the event window is not the edit widget window.
	(handle_one_xevent): Treat core scroll wheel events specially,
	if mouse_or_wdesc_frame did not find the frame.

2022-03-03  Po Lu  <luangruo@yahoo.com>

	Fix display of stretch glyphs when hscrolled on PGTK

	* pgtkterm.c (x_draw_stretch_glyph_string): Use correct box
	dimensions.

2022-03-03  Po Lu  <luangruo@yahoo.com>

	* src/pgtkterm.c (pgtk_draw_fringe_bitmap): Synchronize logic with X.

2022-03-03  Po Lu  <luangruo@yahoo.com>

	Synchronize NS fringe bitmap code with X

	* nsterm.m (ns_draw_fringe_bitmap): Redefine bitmap if it does
	not already exist.

2022-03-03  Po Lu  <luangruo@yahoo.com>

	Synchronize Haiku fringe bitmap code with X

	* haikuterm.c (haiku_draw_fringe_bitmap):
	(haiku_define_fringe_bitmap):
	(haiku_destroy_fringe_bitmap): Synchronize logic with X.

2022-03-03  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-28

	29ff903bb0 Avoid crashes when fringe bitmaps are defined in daemon mode
	92e2d19fe7 One more fix of the BPA implementation
	cd51d9c7ab Fix handling of brackets in BPA

2022-03-03  Philipp Stephani  <phst@google.com>

	Teach Edebug about the special '&whole' syntax for compiler macros.

	* lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro-list): New
	Edebug element specification.
	(cl-define-compiler-macro): Use it.

	* test/lisp/emacs-lisp/cl-macs-tests.el
	(cl-define-compiler-macro/edebug): New unit test.

2022-03-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	(with-demoted-errors): Fix bug#54225

	* lisp/subr.el (with-demoted-errors): Adjust to argument order of
	`macroexp-warn-and-return` changed in f262a6af3694b41828ff.

2022-03-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix clobbering of match data in executable-set-magic

	* lisp/progmodes/executable.el (executable-set-magic): Switching
	buffers may clobber match data, so save the match data first
	(bug#54218).

2022-03-03  Jim Porter  <jporterbugs@gmail.com>

	Allow splitting strings in Eshell expansions with "plain" strings

	Since '$var[hello 0]' doesn't make sense when 'var' is a string, the
	previous restriction was unnecessary.

	* lisp/eshell/esh-var.el (Commentary): Update documentation.
	(eshell-apply-indices): Allow "plain" strings to split strings.

	* test/lisp/eshell/esh-var-test.el
	(esh-var-test/interp-var-string-split-indices)
	(esh-var-test/quoted-interp-var-string-split-indices): Update tests.

	* doc/misc/eshell.texi (Dollars expansion): Update documentation.

2022-03-03  Jim Porter  <jporterbugs@gmail.com>

	Fix parsing of indices in Eshell expansions

	Previously, more-complex index expansions, like '$var[":" 0]' or
	'$var[$(expr) 0]' failed to parse correctly.

	* lisp/eshell/esh-var.el (Commentary): Clarify indexing and length
	expansions.
	(eshell-parse-indices): Expand docstring and support parsing inside
	double-quotes.
	(eshell-eval-indices): New function.
	(eshell-parse-variable): Use it.

	* test/lisp/eshell/esh-var-tests.el (eshell-test-value): New defvar.
	(esh-var-test/interp-var-indices,
	(esh-var-test/interp-var-split-indices)
	(esh-var-test/interp-var-string-split-indices)
	(esh-var-test/interp-var-regexp-split-indices)
	(esh-var-test/interp-var-assoc, esh-var-test/interp-var-length-list)
	(esh-var-test/interp-var-length-string)
	(esh-var-test/interp-var-length-alist)
	(esh-var-test/quoted-interp-var-indices)
	(esh-var-test/quoted-interp-var-split-indices)
	(esh-var-test/quoted-interp-var-string-split-indices)
	(esh-var-test/quoted-interp-var-regexp-split-indices)
	(esh-var-test/quoted-interp-var-assoc)
	(esh-var-test/quoted-interp-var-length-list)
	(esh-var-test/quoted-interp-var-length-string)
	(esh-var-test/quoted-interp-var-length-alist): New tests.

	* doc/misc/eshell.texi (Dollars Expansion): Expand and reword
	documentation for indexing and length expansions.

2022-03-03  Jim Porter  <jporterbugs@gmail.com>

	Fix Eshell dollar interpolation inside of double-quotes

	For example,

	  echo "${echo hi}"

	previously tried to run the program named 'echo hi', instead of 'echo'
	with the argument 'hi'.

	* lisp/eshell/esh-arg.el (eshell-parse-inner-double-quote):
	New function.

	* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Support parsing
	when wrapped in double-quiotes.

	* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var)
	(esh-var-test/interp-quoted-var)
	(esh-var-test/interp-quoted-var-concat)
	(esh-var-test/quoted-interp-var)
	(esh-var-test/quoted-interp-quoted-var)
	(esh-var-test/quoted-interp-lisp, esh-var-test/quoted-interp-cmd)
	(esh-var-test/quoted-interp-temp-cmd): New tests.

2022-03-03  Jim Porter  <jporterbugs@gmail.com>

	Add a new macro to simplify parsing temporary Eshell command strings

	This abstracts out the somewhat-unusual "insert&delete" logic in
	'eshell-parse-command' so that it can be used elsewhere, and also
	ensures that the deletion occurs even if an error occurs.

	* lisp/eshell/esh-cmd.el (eshell-with-temp-command): New macro.
	(eshell-parse-command): Use it.

2022-03-03  Jim Porter  <jporterbugs@gmail.com>

	Move Eshell variable interpolation tests to their own file

	* test/lisp/eshell/eshell-tests.el (eshell-test/interp-cmd)
	(eshell-test/interp-lisp, eshell-test/interp-temp-cmd)
	(eshell-test/interp-concat, eshell-test/interp-concat-lisp)
	(eshell-test/interp-concat2, eshell-test/interp-concat-lisp2)
	(eshell-test/interp-cmd-external)
	(eshell-test/interp-cmd-external-concat, eshell-test/window-height)
	(eshell-test/window-width, eshell-test/last-result-var)
	(eshell-test/last-result-var2, eshell-test/last-arg-var):
	Move from here...

	* test/lisp/eshell/esh-var-test.el (esh-var-test/interp-lisp)
	(esh-var-test/interp-cmd, esh-var-test/interp-cmd-external)
	(esh-var-test/interp-temp-cmd, esh-var-test/interp-concat-lisp)
	(esh-var-test/interp-concat-lisp2, esh-var-test/interp-concat-cmd)
	(esh-var-test/interp-concat-cmd2)
	(esh-var-test/interp-concat-cmd-external, esh-var-test/window-height)
	(esh-var-test/window-width, esh-var-test/last-result-var)
	(esh-var-test/last-result-var2, esh-var-test/last-arg-var):
	... to here.

2022-03-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	225e0d6047 Correct etc/NEWS entry about bitmapped fonts

	# Conflicts:
	#	etc/NEWS

2022-03-02  Dmitry Gutov  <dgutov@yandex.ru>

	Cache the backend value together with the project root

	* lisp/progmodes/project.el (project-try-vc):
	Cache the backend value together with the root.
	(project-root, project-files, project-ignores):
	Update to access the new data structure.

2022-03-02  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c: Fix commentary on GTK client side windows.

2022-03-02  Po Lu  <luangruo@yahoo.com>

	Fix Motif build without toolkit scroll bars

	* src/xterm.c: Always include Xm.h on Motif.

2022-03-02  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/progmodes/xref.el: Bump the version.

2022-03-02  Po Lu  <luangruo@yahoo.com>

	Don't calculate any frame for extension events

	* src/xterm.c (handle_one_xevent): If event is not a core event,
	don't try to calculate any from event.xany.window.

2022-03-02  Po Lu  <luangruo@yahoo.com>

	Implement `toolkit_position_hook' on PGTK

	* src/pgtkterm.c (pgtk_toolkit_position): New function.
	(pgtk_create_terminal): Set it as the toolkit position hook.

2022-03-02  Po Lu  <luangruo@yahoo.com>

	Fix menu bar position reporting on Haiku as well

	* src/haikuterm.c (haiku_toolkit_position): New function.
	(haiku_create_terminal): Register new hook.

2022-03-02  Po Lu  <luangruo@yahoo.com>

	Fix reporting of imaginary key prefixes on toolkit tool and menu bars

	* src/keyboard.c (make_lispy_position): Set imaginary prefix if
	the terminal says what widget the position is on top of.
	* src/termhooks.h (struct terminal): New field
	`toolkit_position_hook'.
	* src/xterm.c (x_toolkit_position): New function.
	(x_create_terminal): Register hook.

2022-03-02  Brian Leung  <bkleung89@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Prevent empty diagnostic tags vector hiding main fontification

	* eglot.el (eglot-handle-notification): Require that the resulting
	list of faces is non-empty and that each face corresponds only to a
	known tag.

	For unknown tags, we don't pass any additional face information to
	Flymake, and instead expect it to make the appropriate overlay with
	the "severity" property of the Diagnostic.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/851

2022-03-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	9dadcbe429 ; * doc/misc/eshell.texi (Dollars Expansion): Fix markup.
	2c3d1b6bf4 Improve/correct documentation about Eshell variable expansion
	9e257aecc9 Partially revert b03f74e0f2a578b1580e8b1c368665850ee7f808

2022-03-02  Po Lu  <luangruo@yahoo.com>

	Fix some bugs with multiple terminals on Haiku

	* src/haikuterm.c (haiku_mouse_position): Only clear
	`mouse_moved' for Haiku frames.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Fix persistent help text on disabled menu items

	* oldXMenu/Activate.c (XMenuActivate): Always deactivate help
	echo upon leaving a menu item.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	* src/msdos.c (dos_rawgetc): Handle tab bar clicks correctly.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Dismiss help text when item becomes unactivated on oldXMenu

	* oldXMenu/Activate.c (XMenuActivate): Dismiss help text when
	leaving an item.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Fix odd scrolling bugs on LessTif

	* src/xterm.c (handle_one_xevent): Give emulated button events
	to Motif.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Improve behavior of Motif popup menus on XI2

	* src/xmenu.c (create_and_show_popup_menu): Set input focus to
	menu window.

2022-03-01  Paul Eggert  <eggert@cs.ucla.edu>

	Revert previous merge-gnulib change

	* admin/merge-gnulib: Revert previous stopgap change.
	It shouldn’t be needed now that Gnulib has the change
	2022-03-01T18:01:59Z!eggert@cs.ucla.edu.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Add PropertyChangeMask to the standard event set

	* src/xfns.c (x_window): Remove special Motif code.
	* src/xterm.h (STANDARD_EVENT_SET): Add PropertyChangeMask.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Fix crashes and other bugs on LessTif

	* lwlib/lwlib-Xm.c (make_menu_in_widget): XmIsRowColumn is
	broken on the latest LessTif release, so avoid that here.
	* src/xfns.c (x_window): Add PropertyChangeMask which LessTif
	doesn't do itself.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Fix reporting of wheel events on top of GTK scroll bars

	* src/gtkutil.c (xg_update_scrollbar_pos):
	(xg_update_horizontal_scrollbar_pos): Stop ensuring the window
	is native.
	(xg_event_is_for_scrollbar): New variable `for_valuator'.
	All callers changed.
	* src/gtkutil.h: Update prototypes.
	* src/xterm.c (handle_one_xevent): Drop all valuator change
	events destined for scroll bars.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	* src/xwidget.h: Fix build with XI 2.4.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Make precision scrolling on top of the tool bar work

	* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Bind
	some more events.

	(pixel-scroll-precision):
	(pixel-scroll-start-momentum): If window is a frame, use its
	selected window.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Avoid duplicate wheel and button events on non-toolkit scroll bars

	* src/xterm.c (x_scroll_bar_create): Set appropriate input
	extension event mask.
	(handle_one_xevent): Move some ifdefs around and handle input
	extension button events on scroll bars.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Fix old X menu on builds with XI2

	* oldXMenu/Activate.c (XMenuActivateSetTranslateFunction): New
	function.
	(XMenuActivate): Handle generic events.
	* oldXMenu/XMenu.h: New prototypes.
	(Translate_func): New type.
	* src/xmenu.c (x_menu_wait_translate_generic_event): New
	function.
	(x_menu_show): Set translate function.

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Disable some code that interferes with menus on Lucid

	* src/xmenu.c (create_and_show_popup_menu)
	(server_timestamp_predicate): Disable timestamp code on builds
	using the Lucid menu bar widget.

2022-03-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	6dbc3da205 Fix :tag for eol in tab-first-completion

2022-03-01  Po Lu  <luangruo@yahoo.com>

	Fix C-g inside toolkit file dialogs with XI2

	* src/xfns.c (Fx_file_dialog): Handle GenericEvents when looking
	for quit character.
	* src/xmenu.c (x_menu_wait_for_event): If data is non-nil, use
	XPending.

2022-03-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-02-28 02:58:30 UTC.

2022-02-28  Po Lu  <luangruo@yahoo.com>

	Intern server time property during terminal initialization

	* src/xmenu.c (create_and_show_popup_menu): Use previously
	interned atom.
	* src/xterm.c (x_term_init): New atom `EMACS_SERVER_TIME_PROP'.
	* src/xterm.h (struct x_display_info): New field
	`Xatom_EMACS_SERVER_TIME_PROP'.

2022-02-28  Po Lu  <luangruo@yahoo.com>

	Fix Motif menu help text in submenus

	* lwlib/lwlib-Xm.c (xm_arm_callback):
	(make_menu_in_widget):
	(update_one_menu_entry):
	(xm_update_one_widget):
	(do_call): Pass instance to arm callback and use wv as user data
	instead of call data.

2022-02-28  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c: Explain frame resize synchronization.

2022-02-28  Paul Eggert  <eggert@cs.ucla.edu>

	Work around merge-gnulib glitch from fresh checkout

	* admin/merge-gnulib: In a fresh checkout, run gnulib-tool
	twice, instead of merely running autogen.sh twice.

2022-02-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	ecomplete: Try and avoid losing data

	* lisp/ecomplete.el (ecomplete-add-item): Make sure the database is
	setup, so we don't risk overwriting it with a (mostly) empty one.
	(ecomplete-save): Don't save an empty database.

2022-02-28  Po Lu  <luangruo@yahoo.com>

	Clean up input extension event handling code

	* src/xterm.c (handle_one_xevent): Fix usages of event
	structures of the wrong type.

2022-02-28  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Add some missing dead keys.

2022-02-28  Mattias Engdegård  <mattiase@acm.org>

	Clean up byte-compile-arglist-warn

	* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
	Remove unnecessary sort (only need min and max).  Reduce mutation.

2022-02-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix :color specification in flat-button boxes

	* src/xfaces.c (realize_gui_face): Allow reliably specifying
	:color in flat-button boxes (bug#54196).

2022-02-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't throw errors while propertizing in sgml-mode

	* lisp/textmodes/sgml-mode.el (sgml-syntax-propertize): Don't
	throw an error when propertizing (bug#54195).

2022-02-28  Po Lu  <luangruo@yahoo.com>

	Better fix for bug#13476

	* lisp/faces.el (face-spec-recalc): Apply scroll bar foreground
	and background to the frame if changing the scroll-bar face.
	(scroll-bar): Restore previous declaration.  That way, the
	default colors are used for toolkit scroll bars, instead of
	black and white.

2022-02-28  Po Lu  <luangruo@yahoo.com>

	Improve treatment of toolkit scroll bars with the input extension

	* src/xterm.c (x_create_horizontal_toolkit_scroll_bar)
	(x_create_toolkit_scroll_bar): Set XI2 event mask appropriately.
	(handle_one_xevent): Make sure coordinates are correct for the
	frame's window when handling wheel events.

2022-02-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e77fc8262a Update to Org 9.5.2-22-g33543d
	9bce4b67f1 ; * lisp/help.el (with-help-window): Doc fix.  (Bug#54170)
	558b03a958 Add explicit '--no-heading' for ripgrep

2022-02-27  Po Lu  <luangruo@yahoo.com>

	Don't save menu bar events that land on the menu bar itself

	* src/xterm.c (handle_one_xevent): Ignore menu bar events which
	land on the menu bar itself instead of a button.

2022-02-27  Po Lu  <luangruo@yahoo.com>

	Treat scroll bar information consistently on Haiku

	* src/haiku_support.cc (class EmacsScrollBar): New field `info'.
	(EmacsScrollBar): Obtain scroll bar info on initialization.
	(ButtonRegionFor): Use that information instead.

2022-02-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Merge from gnulib

	* m4/gnulib-common.m4 (gl_COMMON_BODY):
	* lib/gnulib.mk.in (CXXCPP):
	* lib/cdefs.h: Updated with admin/merge-gnulib.  (This is in
	preparation to adding the nanosleep module later.)

2022-02-27  Po Lu  <luangruo@yahoo.com>

	Don't send help-echo on menu button arming not caused by motion events

	* lwlib/lwlib-Xm.c (xm_arm_callback): Ignore arming if the arm
	was not caused by an EnterNotify or MotionNotify event.

2022-02-27  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Translate motion events on Motif.

2022-02-27  Po Lu  <luangruo@yahoo.com>

	Work around some problems with Motif and the input extension

	* src/xmenu.c (create_and_show_popup_menu): Restore input focus
	to the frame's outer window if there was an input extension
	grab.

2022-02-27  Po Lu  <luangruo@yahoo.com>

	Translate some more input extension events needed by Motif

	* src/xterm.c (handle_one_xevent): Translate XI_Enter and
	XI_Leave events when built with Motif.

2022-02-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a50f8dec09 Follow OpenSSH changes in Tramp
	e86eae21a9 Document better how to reset attributes of faces for new f...

2022-02-26  Po Lu  <luangruo@yahoo.com>

	* commands.texi (Misc Events): Update description of wheel events.

2022-02-26  Manuel Uberti  <manuel.uberti@inventati.org>

	Add project-ignore-buffer-conditions

	* lisp/progmodes/project.el (project-ignore-buffer-conditions):
	New defcustom.
	(project--read-project-buffer):
	Use it (bug#54100).

2022-02-26  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Fix translation of button events.

2022-02-26  Po Lu  <luangruo@yahoo.com>

	Fix Motif menu and menu bar dismissal on XI2

	* src/xmenu.c (x_activate_menubar): Improve ungrabbing logic on
	XI2.
	(server_timestamp_predicate): New function.
	(create_and_show_popup_menu): If the display supports XI2, make
	sure the timestamps are correct by dispatching a PropertyNotify
	event to Xt.
	* src/xterm.c (handle_one_xevent): Translate XI_ButtonRelease
	events into core events before dispatching them to Xt.

2022-02-26  Po Lu  <luangruo@yahoo.com>

	Ignore irrelevant button events on Haiku scroll bars

	* src/haiku_support.cc (MouseDown): Ignore if there are too many
	buttons pressed.

2022-02-26  Po Lu  <luangruo@yahoo.com>

	Prevent crashes on event for removed scroll bar on Haiku

	* src/haiku_support.cc (class EmacsScrollBar): Remove field
	`scroll_bar'.
	(ValueChanged, MouseDown, MouseUp, BScrollBar_make_for_view):
	Adjust for changes.

	* src/haiku_support.h (struct haiku_scroll_bar_value_event)
	(struct haiku_scroll_bar_drag_event)
	(struct haiku_scroll_bar_part_event): New field `window'.

	* src/haikuterm.c (haiku_scroll_bar_from_widget): New function.
	(haiku_read_socket): Adjust for changes in scroll bar event
	structures.

2022-02-26  Po Lu  <luangruo@yahoo.com>

	Fix reporting of horizontal scroll bar buttons on Haiku

	* haikuterm.c (haiku_read_socket): Use correct values for scroll
	bar buttons when the scroll bar is horizontal.

2022-02-26  Po Lu  <luangruo@yahoo.com>

	Improve scroll bar button handling on Haiku

	* src/haiku_io.c (haiku_len): Add `SCROLL_BAR_PART_EVENT'.
	* src/haiku_support.cc (class EmacsScrollBar): New fields
	`dragging' and `current_state', along with `old_value' and
	`current_part'.
	(EmacsScrollBar): Set horizontal flag to `horizontal_p'.
	(MessageReceived): Set old_value when receiving
	SCROLL_BAR_UPDATE message.
	(ValueChanged): Don't allow scroll bar values to change while
	dragging.
	(MouseUp, MouseDown): Calculate button under mouse and act
	accordingly.
	* src/haiku_support.h (enum haiku_event_type): New event
	`SCROLL_BAR_PART_EVENT'.
	(enum haiku_scroll_bar_part): New enumerator.
	(struct haiku_scroll_bar_part_event): New struct.
	* src/haikuterm.c (haiku_read_socket): Handle
	SCROLL_BAR_PART_EVENTs.

2022-02-26  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	ded89ed3fa * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): ...

2022-02-25  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Set user time for xwidgets as well.

2022-02-25  Dmitry Gutov  <dgutov@yandex.ru>

	Drop the visited file modtime check for remote xref hits

	* lisp/progmodes/xref.el (xref--hits-remote-id): New variable.
	(xref--convert-hits, xref--collect-matches)
	(xref--find-file-buffer): Use it (bug#54025).

2022-02-25  Paul Eggert  <eggert@cs.ucla.edu>

	Robustify merge-gnulib a bit

	* admin/merge-gnulib: Fail if autogen.sh fails.
	Remove autom4te.cache before running gnulib-tool.

2022-02-25  Bob Rogers  <rogers@rgrjr.com>

	Add new file ietf-drums-date.el

	* lisp/mail/ietf-drums-date.el: parse-time-string replacement which is
	compatible but can be made stricter if desired.
	* test/lisp/mail/ietf-drums-date-tests.el (added): Add tests for
	ietf-drums-parse-date-string.
	* lisp/mail/ietf-drums.el (ietf-drums-parse-date): Use
	ietf-drums-parse-date-string.

2022-02-25  Po Lu  <luangruo@yahoo.com>

	Improve treatment of dropping mouse track state on Haiku

	* src/haikuterm.c (haiku_mouse_or_wdesc_frame): New function.
	(haiku_read_socket): Use it to find the appropriate frame when
	handling motion or button events.

2022-02-25  Po Lu  <luangruo@yahoo.com>

	Improve tracking of modified regions on Haiku

	* src/haiku_support.cc (class EmacsView): New field
	`invalid_region'.
	(FlipBuffers): Only invalidate that region.
	(SetUpDoubleBuffering): Clear that region.
	(BView_draw_lock): New parameters for denoting the region
	to invalidate.
	(BView_invalidate_region): New function.
	* src/haiku_support.h: Update prototypes.
	* src/haikufns.c (haiku_set_background_color):
	* src/haikumenu.c (digest_menu_items):
	* src/haikuterm.c (haiku_clip_to_string):
	(haiku_flip_buffers):
	(haiku_clear_frame_area):
	(haiku_clear_frame):
	(haiku_draw_glyph_string):
	(haiku_after_update_window_line):
	(haiku_draw_window_cursor):
	(haiku_draw_vertical_window_border):
	(haiku_draw_window_divider):
	(haiku_draw_fringe_bitmap):
	(haiku_scroll_run):
	(haiku_read_socket):
	(haiku_flash):
	(haiku_clear_under_internal_border): Mark appropriate region as
	invalid before buffer flip.

2022-02-25  Po Lu  <luangruo@yahoo.com>

	Fix calculation of scroll deltas when coalescing wheel events

	* src/xterm.c (handle_one_xevent): Use accumulated values
	instead of raw delta to determine scroll amounts.

2022-02-25  Po Lu  <luangruo@yahoo.com>

	Make interpolated scrolling work above non-selected windows

	* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): New
	parameter `old-window'.
	(pixel-scroll-precision): Pass originally selected window to the
	interpolation function.

2022-02-25  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	5c77aed2d6 Mention flyspell-prog-mode in flyspell-mode doc string

2022-02-24  Jim Porter  <jporterbugs@gmail.com>

	Fix Eshell process tests to (hopefully) work on all platforms

	* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline):
	Fix test (bug#54136).

2022-02-24  Dmitry Gutov  <dgutov@yandex.ru>

	xref--find-file-buffer: Check modified-p and modtime

	* lisp/progmodes/xref.el (xref--find-file-buffer):
	Check whether the buffer contents match what's on disk
	(bug#54025).

2022-02-24  Po Lu  <luangruo@yahoo.com>

	Set user time when receiving any wheel events

	* src/xterm.c (handle_one_xevent): Set user time if the mouse
	wheel moved.

2022-02-24  Eli Zaretskii  <eliz@gnu.org>

	Fix esh-proc-tests on MS-Windows

	* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline)
	(esh-proc-test/kill-background-process): Fix tests on MS-Windows.

2022-02-24  Eli Zaretskii  <eliz@gnu.org>

	Make 't' in Buffer-menu be more defensive

	* lisp/buff-menu.el (Buffer-menu-visit-tags-table): Verify that
	the buffer holds a tags-table file before using it as such.
	(Bug#54133)

2022-02-24  Paul Eggert  <eggert@cs.ucla.edu>

	* admin/merge-gnulib: fix bare checkout (Bug#32452#65)

2022-02-24  Alan Mackenzie  <acm@muc.de>

	Amend byte-run-strip-symbol-positions so that an unexec build builds

	This fixes bug #54098.

	* lisp/emacs-lisp/byte-run.el (byte-run--strip-list)
	(byte-run--strip-vector/record): New functions.  These alter a list or
	vector/record structure only where a symbol with position gets replaced by a
	bare symbol.
	(byte-run-strip-symbol-positions): Reformulate to use the two new functions.
	(function-put): No longer strip positions from the second and third arguments.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-out): Remove the senseless
	"stripping" of putative symbol positions from OPERAND, which is nil or a
	number.

2022-02-24  Michael Albinus  <michael.albinus@gmx.de>

	Fix symlinks in tramp-sshfs.el  (Bug#54130)

	* lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>:
	Add "-o transform_symlinks" to `tramp-mount-args'.
	(tramp-sshfs-file-name-handler-alist):
	Use `tramp-sshfs-handle-file-writable-p'.
	(tramp-sshfs-handle-file-writable-p): New defun.  (Bug#54130)

	* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes)
	(tramp-test20-file-modes): Adapt tests.

2022-02-24  Po Lu  <luangruo@yahoo.com>

	Check if WM support for NET_WM_USER_TIME_WINDOW changed during updates

	* src/xterm.c (x_display_set_last_user_time): Update the user
	time window if window manager support changed.

	* src/xterm.h (struct x_display_info): New field
	`last_user_check_time'.

2022-02-24  Jim Porter  <jporterbugs@gmail.com>

	Don't superfluously emit prompts when terminating processes in Eshell

	* lisp/eshell/esh-proc.el (eshell-kill-process-function): Only reset
	the prompt if PROC is writing to the terminal.
	(eshell-sentinel): Only write the exit message if PROC is writing to
	the terminal (bug#54136).

	* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline)
	(esh-proc-test/kill-pipeline-head)
	(esh-proc-test/kill-background-process): New tests.

2022-02-24  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	5942504391 Reword face-remap-add-relative manual entry

2022-02-23  Po Lu  <luangruo@yahoo.com>

	Set border colors through the toolkit

	* src/xfns.c (x_set_border_pixel): Set colors through Xt to
	avoid some problems.

2022-02-23  Po Lu  <luangruo@yahoo.com>

	Fix auto-lower when the mouse moves onto a scrollbar on Haiku

	* src/haiku_support.cc (MouseMoved):
	(BView_inside_scroll_bar): New functions.
	* src/haiku_support.h: Update prototypes.
	* src/haikuterm.c (haiku_read_socket): Don't auto-lower if the
	pointer left the view for a scroll bar.

2022-02-23  Po Lu  <luangruo@yahoo.com>

	Add support for _NET_WM_STATE_SHADED

	* doc/lispref/frames.texi (Management Parameters): Document new
	frame parameter `shaded'.
	* etc/NEWS: Announce new frame parameter.

	* src/frame.c (frame_parms) [HAVE_X_WINDOWS]: New frame
	parameter `shaded'.
	(syms_of_frame): New symbol `shaded'.
	* src/xfns.c (x_frame_parm_handlers): Install handler
	`x_set_shaded'.
	* src/xterm.c (x_set_shaded): New frame parameter handler.
	(x_get_current_wm_state): New parameter `shaded'.  All callers
	changed.
	(x_net_wm_state):
	(x_handle_net_wm_state): Handle shaded state.
	(x_term_init): Intern new atom `shaded'.
	* src/xterm.h: Update prototypes.

2022-02-23  Po Lu  <luangruo@yahoo.com>

	Condition out things specific to some versions of the input extension

	* src/xterm.c (x_free_xi_devices, x_init_master_valuators)
	(handle_one_xevent): Condition out code that isn't supposed to
	be run on the current input extension version.
	* src/xterm.h (struct xi_scroll_valuator_t): Make conditional on
	HAVE_XINPUT2_1.
	(struct xi_touch_point_t): Make conditional on HAVE_XINPUT2_2.
	(struct xi_device_t): Make individual fields conditional on the
	appropriate client-side input extension version.

2022-02-23  Po Lu  <luangruo@yahoo.com>

	Fix the MS-DOS port

	* msdos/sedlibmk.inp:
	* src/conf_post.h [MSDOS]: Update for recent gnulib.

2022-02-23  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -Wanalyzer-null-dereference

	* src/xdisp.c (normal_char_ascent_descent): Pacify GCC 11.2.1
	20220127 (Red Hat 11.2.1-9) x86-64 -Wanalyzer-null-dereference.

2022-02-23  Mauro Aranda  <maurooaranda@gmail.com>

	Fix auth-sources defcustom

	* lisp/auth-source.el (auth-sources): The extra attributes should be
	in a plist, so inline both :host and :port.  Also, give a valid
	default value for the choice (bug#54127).

2022-02-23  Paul Eggert  <eggert@cs.ucla.edu>

	Port pre-commit hook to Git 2.35.0

	* build-aux/git-hooks/pre-commit: Use LC_ALL=C grep -E instead of
	sane_egrep (removed in Git 2.35.0).

2022-02-23  Paul Eggert  <eggert@cs.ucla.edu>

	Port to current Gnulib some more

	* admin/merge-gnulib: Remove lib/stdio-read.c and lib/stdio-write.c,
	as Emacs doesn’t need these new Gnulib files.

2022-02-23  Paul Eggert  <eggert@cs.ucla.edu>

	Update from Gnulib by running admin/merge-gnulib

2022-02-23  Paul Eggert  <eggert@cs.ucla.edu>

	Port to current Gnulib

	* configure.ac (AM_COND_IF): New macro, needed because Gnulib
	normally assumes Automake and now uses this Automake macro.
	Problem reported by Lars Ingebrigtsen (Bug#32452#47).

2022-02-23  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Create new unique windows with 'C-x t n' (bug#54038).

	* lisp/tab-bar.el (tab-bar-new-tab-choice): Replace the value 'nil'
	with explicit 'clone'.
	(tab-bar-move-window-to-tab): Ignore possible side/atom window
	parameters with ignore-window-parameters while deleting window.
	(tab-bar-new-tab-to): When 'tab-bar-new-tab-choice' is 'clone',
	create new unique windows with the same layout using window-state-get
	and window-state-put.  Do the same after deleting other windows
	when 'tab-bar-new-tab-choice' is 'window'.
	(tab-bar-duplicate-tab): Replace the value 'nil' with 'clone' for
	'tab-bar-new-tab-choice'.

2022-02-23  Po Lu  <luangruo@yahoo.com>

	Expand commentary in xterm.c

	* src/xterm.c: Expand commentary to include sections on optional
	features and toolkit support.

2022-02-23  Protesilaos Stavrou  <info@protesilaos.com>

	Update modus-themes to version 2.2.0

	* doc/misc/modus-themes.org (Enable and load)
	(Differences between loading and enabling): Clarify wording.
	(Customization Options): Update sample configuration.
	(Option for completion framework aesthetics): Refactor
	'modus-themes-completions' to accept an alist value instead of a
	symbol.
	(Override colors): Elaborate on the example.
	(Toggle themes without reloading them): Document sample command that
	uses 'enable-theme' instead of 'load-theme'.
	(Acknowledgements): Update names of contributors to ideas.
	* etc/themes/modus-themes.el (modus-themes-operandi-colors)
	(modus-themes-vivendi-colors): Tweak the palette's completion-related
	background colors.
	(modus-themes-completion-standard-first-match)
	(modus-themes-completion-standard-selected)
	(modus-themes-completion-extra-selected): Deprecate faces and replace
	them with 'modus-themes-completion-selection'.
	(modus-themes-completion-key-binding): Rename it to
	'modus-themes-key-binding'.
	(modus-themes-mode-line): Remove faulty default value.
	(modus-themes-completions): Refactor it to accept an alist value.
	(modus-themes-box-buttons): Fix typo.
	(modus-themes--standard-completions, modus-themes--extra-completions)
	(modus-themes--extra-completions-line): Remove outdated private
	functions.
	(modus-themes--completion): Add new private function.
	(modus-themes-faces): Update faces.

	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-vivendi-theme.el: Bump file's version.

	For a detailed change log, read:
	<https://protesilaos.com/codelog/2022-02-23-modus-themes-2-2-0/>.

2022-02-23  Jim Porter  <jporterbugs@gmail.com>

	Ignore 'eshell-broken-pipe' error in 'eshell-sentinel'

	This can happen if 'eshell-sentinel' tries to write output to another
	process, but that process has already terminated.

	* lisp/eshell/esh-proc.el (eshell-sentinel): Use 'ignore-error'
	instead of 'unwind-protect'.

2022-02-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make face-remap-set-base work with a single face again

	* lisp/face-remap.el (face-remap-set-base): Fix regression
	introduced by cece37cf09de9 (bug#46973).

2022-02-23  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_term_init): Catch some errors from defective X servers.

2022-02-23  Po Lu  <luangruo@yahoo.com>

	Improve input extension version checks on GTK 3

	* src/xterm.c (x_term_init): If newer versions of XInput 2 don't
	work, then look for an older one.

2022-02-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	3dfc8bff15 Fix indexing of module functions that return enumeration t...
	86c0d9eb5f * doc/misc/transient.texi (Other Options): Fix a @ref.  (B...
	3b5e29eaa3 tramp.texi texinfo 4.13 compatibility
	5edb9572ec Explain "Tramp" spelling in its manual

2022-02-23  Po Lu  <luangruo@yahoo.com>

	Fix display corruption with background alpha set on unsupported display

	* src/xfns.c (x_set_alpha_background): Make opaque if display
	doesn't support the required features.

2022-02-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	(add-hook): Fix regression

	* lisp/subr.el (add-hook): When the hook has no local part yet, don't
	set `local` to t, so we set the right part of the depth-sym.
	(remove-hook): Don't modify the depth alist by side-effect since I'm
	not completely sure it's safe.

2022-02-22  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c: Expand commentary.

2022-02-22  Dmitry Gutov  <dgutov@yandex.ru>

	Unbreak project switcher when inside *xref* buffer

	* lisp/progmodes/xref.el (xref--ensure-default-directory):
	New function.
	(xref--show-xref-buffer, xref-show-definitions-buffer-at-bottom):
	Use it (bug#53626).

2022-02-22  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_term_init): Don't catch errors too many times.

2022-02-22  Po Lu  <luangruo@yahoo.com>

	Fix X errors caused by GTK using newer versions of XI2 than Emacs

	* src/xterm.c (x_term_init): Handle errors from XIQueryVersion
	caused by Emacs requesting versions of XI2 older than 2.2 and
	what GTK requested.

2022-02-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Enable "Revert Buffer" if file has different writability

	* lisp/menu-bar.el (menu-bar-file-menu): Enable "Revert Buffer" if
	the file has different writability than the buffer (bug#17148).

2022-02-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	(add-hook, remove-hook): Fix leaks (bug#48666)

	* lisp/subr.el (add-hook, remove-hook): Rewrite the hook depth
	management so we only keep the info relevant to functions present on
	the hook.

2022-02-22  Andrea Rossetti  <andrea.rossetti@gmail.com>  (tiny change)

	Improve ruler-mode dragging

	* lisp/ruler-mode.el (ruler-mode-mouse-drag-any-column)
	(ruler-mode-mouse-add-tab-stop, ruler-mode-mouse-del-tab-stop):
	Adjust callers.

	* lisp/ruler-mode.el (ruler-mode-window-col): Fix dragging when
	stepping outside the header line (bug#17788).

2022-02-22  Jeff Norden  <jeff@jnorden.com>  (tiny change)

	Make outline-blank-line into defcustom

	* lisp/outline.el (outline-blank-line): Make into defcustom
	(bug#54095).

2022-02-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't signal an error on re-builder startup with rx syntax

	* lisp/emacs-lisp/re-builder.el (reb-initialize-buffer): Make
	startup with rx syntax not signal an error (bug#54107).

2022-02-22  Po Lu  <luangruo@yahoo.com>

	Fix build on glibc <2.10

	* src/alloc.c (Fmalloc_info): Only enable if glibc supports
	malloc_info.
	(syms_of_alloc): Likewise.

2022-02-22  Po Lu  <luangruo@yahoo.com>

	Fix GTK build with GLib <2.44

	* src/gtkutil.c (struct _EmacsMenuBar, EmacsMenuBar): New
	structs.
	(emacs_menu_bar_get_type): New function declaration.

	* src/gtkutil.c: Remove declaration of EmacsMenuBar class.

2022-02-22  Po Lu  <luangruo@yahoo.com>

	Improve XInput2 version checking

	* configure.ac: Check for various important structures from all
	versions of libXi.

	* src/xfns.c (setup_xi_event_mask):
	* src/xwidget.c (x_draw_xwidget_glyph_string):
	* src/xterm.c (x_init_master_valuators, handle_one_xevent)
	(x_term_init): Replace XI version checks based on protocol
	headers with new constants.

	* src/xterm.h (HAVE_XINPUT2_1, HAVE_XINPUT2_2, HAVE_XINPUT2_3)
	(HAVE_XINPUT2_4): New definitions.

2022-02-22  Michael Albinus  <michael.albinus@gmx.de>

	* test/lisp/net/tramp-tests.el (tramp--test-check-files): Adapt test.

2022-02-22  Po Lu  <luangruo@yahoo.com>

	Fix duplicate wheel events on XI2

	* src/xterm.c (handle_one_xevent): Don't generate wheel events
	on XI_ButtonPress.

2022-02-22  Po Lu  <luangruo@yahoo.com>

	Always send wheel events on XI2

	* src/xterm.c (handle_one_xevent): Send emulated button events
	as wheel events when handling XI2 button events.

2022-02-22  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	666e40a109 Fix 'display-line-numbers-mode' in hide-show buffers
	68d134cf0f Don't check whether a deleted window is deletable (Bug#54028)
	b38223a844 A friendlier error message from image-mode in an empty buffer
	b7a651ba37 Update to Org 9.5.2-17-gea6b74
	3a8c3f7abd ; Don't reference obsolete variables in edebug.el

2022-02-21  Po Lu  <luangruo@yahoo.com>

	Improve momentum pixel scrolling on a non-selected window

	* lisp/pixel-scroll.el (pixel-scroll-kinetic-state): New
	argument `window'.
	(pixel-scroll-start-momentum): Don't select the window under
	the event when calculating velocity or redisplaying.

2022-02-21  Po Lu  <luangruo@yahoo.com>

	Don't generate multibyte keystroke events if there is no actual text

	* src/xterm.c (handle_one_xevent): Don't generate
	MULTIBYTE_CHAR_KEYSTROKE_EVENTs if nbytes is zero.

2022-02-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Add links to the vtable manual

	* doc/lispref/modes.texi (Tabulated List Mode): Mention vtables.
	* lisp/info-look.el (lambda): Link to vtables.

2022-02-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove the ELPA dependencies from test/Makefile.in

	* test/Makefile.in: Remove the ELPA dependencies, because it's
	pretty confusing when trying to debug things.

	* test/README (SELECTOR): Remove mention of the now-removed
	GNU_ELPA_DIRECTORY variable.

	* test/lisp/net/ntlm-tests.el (push): Add the ELPA dependencies
	here, which keeps it contained to one test file.  This also fixes
	bug#53586, since the obsoletion of `body' came from web-server.el.

2022-02-21  Po Lu  <luangruo@yahoo.com>

	Don't pass invalid keyboard modifiers to the event loop on Haiku

	* src/haikuterm.c (haiku_read_socket): Ensure validity of extra
	keyboard modifiers.

2022-02-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/vc/diff-mode.el (diff--font-lock-prettify): Recognize mode changes

2022-02-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/vc/diff-mode.el (diff--font-lock-prettify): bug#54034

	Handle Git's output when deleting and creating empty files, as well as
	when the diff is not shown because the file is considered as binary.

2022-02-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve vtable :keymap handling

	* lisp/emacs-lisp/vtable.el (vtable-map, vtable--make-keymap):
	Don't alter keymaps passed in, and respect parent keymaps.

2022-02-21  Jim Porter  <jporterbugs@gmail.com>

	Send SIGPIPE to external Eshell processes if their output target closes

	* lisp/eshell/esh-io.el (eshell-pipe-broken): New error.
	(eshell-output-object-to-target): Signal 'eshell-pipe-broken' if the
	target is an exited/signaled process.

	* lisp/eshell/esh-proc.el (eshell-insertion-filter): Handle
	'eshell-pipe-broken'.

	* test/lisp/eshell/esh-proc-tests.el: New test.

2022-02-21  Jim Porter  <jporterbugs@gmail.com>

	Ensure 'eshell-output-object' always returns nil for consistency

	This prevents functions like 'eshell-print' from writing doubled
	output when run in Eshell.  Previously, the result would be:

	  ~ $ eshell-print hi
	  hihi

	* lisp/eshell/esh-io.el (eshell-output-object): Always return nil.

2022-02-21  Jim Porter  <jporterbugs@gmail.com>

	Improve docstrings for 'eshell-exec-lisp' and functions that call it

	* lisp/eshell/esh-cmd.el (eshell-exec-lisp, eshell-apply*)
	(eshell-funcall*, eshell-eval*, eshell-apply, eshell-eval)
	(eshell-funcall, eshell-applyn, eshell-funcalln, eshell-evaln):
	Improve docstrings.

2022-02-21  Eli Zaretskii  <eliz@gnu.org>

	Revert "Remove PROBLEMS section on double-buffering"

	This reverts commit 366b2bc757d011f96693bd219877c5aa42fa3359.

	We cannot be sure this problem is no longer relevant, since
	its root cause was in software we don't control, and cannot
	tell whether any of the versions where that problem happened
	are still out in the wild.

2022-02-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify Special Isearch slightly

	* doc/emacs/search.texi (Special Isearch): Clarify slightly
	(bug#19924).  (All the keys in this node is about what happens
	during isearch, but that information is quite a ways away at this
	point, so it doesn't hurt to repeat that info.)

2022-02-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove PROBLEMS section on double-buffering

	* etc/PROBLEMS: Remove section on problems with double-buffering,
	as apparently it's now no longer an issue (bug#30088).

2022-02-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make 'ispell-change-dictionary' completion work better

	* lisp/textmodes/ispell.el (ispell--aspell-found-dictionaries):
	New variable (bug#24050).
	(ispell-find-aspell-dictionaries): Save the list of actually
	identified dictionary.
	(ispell-valid-dictionary-list): Use it to filter out non-installed
	dictionaries.

2022-02-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `next-buffer' order reflect command line file order

	* lisp/startup.el (command-line-1): Make `next-buffer' order
	reflect the command line file order (bug#21505).

2022-02-21  Po Lu  <luangruo@yahoo.com>

	Try to fix bug#54051

	* src/xterm.c (handle_one_xevent): Don't give obviously bogus
	configure events to Xt.

2022-02-21  Po Lu  <luangruo@yahoo.com>

	Prevent Haiku display from being opened multiple times

	* src/haikufns.c (Fx_open_connection): Return if display
	connection already exists.

2022-02-21  Po Lu  <luangruo@yahoo.com>

	Prevent GTK from setting unreasonable size hints with large menu bars

	* src/gtkutil.c (struct _EmacsMenuBar): New struct.
	(emacs_menu_bar_init):
	(emacs_menu_bar_class_init):
	(emacs_menu_bar_get_preferred_width):
	(emacs_menu_bar_new): New functions.
	(xg_update_menu_item): Use our own menu bar class on GTK 3.
	* src/gtkutil.h (EmacsMenuBar): New class.

2022-02-20  Po Lu  <luangruo@yahoo.com>

	Implement left-right separators for dialog boxes on Haiku

	* src/haiku_support.cc (BAlert_set_offset_spacing): New
	function.
	* src/haiku_support.h: Update prototypes.
	* src/haikumenu.c (struct submenu_stack_cell): Remove unused
	struct.
	(haiku_dialog_show): Use offset spacing if a left-right boundary
	was seen and make sure the user can always quit a dialog if no
	enabled items exist.

2022-02-20  Dmitry Gutov  <dgutov@yandex.ru>

	Bump xref.el version.

	* lisp/progmodes/xref.el: Bump version to 1.4.0.

2022-02-20  Dmitry Gutov  <dgutov@yandex.ru>

	Public-ize xref-show-xrefs

	* lisp/progmodes/xref.el (xref-show-xrefs):
	New function (wrapper for an older, private one, bug#42967).

2022-02-20  Po Lu  <luangruo@yahoo.com>

	Respect `extra-keyboard-modifiers' when handling XI2 keyboard input

	* src/xterm.c (handle_one_xevent): Add extra modifiers to
	XI2 keyboard state.

2022-02-20  Dmitry Gutov  <dgutov@yandex.ru>

	Public-ize xref-current-item

	* lisp/progmodes/xref.el (xref--current-item):
	Rename to 'xref-current-item' (bug#53956).  Update all references.

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Further fixes for eww-open-url on Tramp files

	* lisp/url/url-file.el (url-file-asynch-callback): Simplify
	slightly (bug#40425).
	* lisp/url/url-queue.el (url-queue-start-retrieve): Allow
	non-local files here, too.

2022-02-20  Juri Linkov  <juri@linkov.net>

	* lisp/mouse.el (context-menu-entry): Remove help-buffer-under-preparation.

	(bug#53910)

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix a compilation warning in cus-edit-tests.el

2022-02-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	(loadhist_initialize): Fix regression test failure

	* src/lread.c (loadhist_initialize): Adjust assertion for the nil case.
	(readevalloop): Signal an error for non-string `sourcename`.

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust doc-tests-documentation/autoloaded-macro

	* test/src/doc-tests.el
	(doc-tests-documentation/autoloaded-macro): Adjust test -- rx is
	loaded in nativecomp Emacsen when the tests are run, apparently.

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Simplify Minibuffer Edit example

	* doc/emacs/mini.texi (Minibuffer Edit): Say how to disable SPC
	and ? completion (bug#36745).

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Add instructions on disabling SPC completion to Minibuffer Edit

	* doc/emacs/mini.texi (Minibuffer Edit): Say how to disable SPC
	and ? completion (bug#36745).

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation warning introduced by previous shr.el change

	* lisp/net/shr.el (url-file): Fix compilation warning.

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Make eww work better on Tramp HTML

	* lisp/net/eww.el (eww-open-file): Use it.
	(eww-browse-url): Ditto.

	* lisp/net/shr.el (shr-expand-url): Allow loading relative Tramp
	files if we're reading from a file:// document.

	* lisp/url/url-file.el (url-allow-non-local-files): New user option
	(bug#40425).

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `g' work in eww buffers displaying Tramp files

	* lisp/net/eww.el (eww--file-buffer): Refactored out.
	(eww-open-file): From here.
	(eww-reload): Make reloading work in Tramp files.

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Make string-pixel-width about 40% faster

	* lisp/emacs-lisp/subr-x.el (string-pixel-width): Speed up.

2022-02-20  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/tramp.texi (Customizing Methods): Add tramp-nspawn.

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Quote files that start with - in dired

	* lisp/dired-aux.el (dired-shell-stuff-it): Add ./ to file names
	that start with - (bug#10458).

2022-02-20  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp.el (tramp-read-passwd): Adapt for empty user names.

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation warning in previous sendmail.el change

	* lisp/mail/sendmail.el (mm-long-lines-p): Fix compilation warning.

2022-02-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that `mail-send' breaks too-long lines

	* lisp/mail/sendmail.el (mail-send): Ensure that we fold too-long
	lines when using `sendmail-user-agent' (bug#53412).

2022-02-20  Matthias Meulien  <orontee@gmail.com>

	Add more bookmark types

	* lisp/gnus/gnus-sum.el (gnus-summary-bookmark-jump):
	* lisp/man.el (Man-bookmark-jump): Mark the bookmark type
	(bug#54030).

2022-02-20  Po Lu  <luangruo@yahoo.com>

	Fix font panel on NS

	* src/nsterm.m ([EmacsView changeFont:]): Don't use emacs_event,
	instead placing events directly into the keyboard buffer.

2022-02-20  Po Lu  <luangruo@yahoo.com>

	* src/haikumenu.c (haiku_dialog_show): Set `popup_activated_p'.

	Author:

2022-02-20  Po Lu  <luangruo@yahoo.com>

	Handle GUI input while inside popup dialog on Haiku

	* src/haiku_support.cc (alert_popup_value): New variable.
	(be_alert_thread_entry): New function.
	(BAlert_go): Complete rewrite that allows async input to be
	handled while the popup is active.
	* src/haiku_support.h: Update prototypes.
	* src/haikumenu.c (haiku_dialog_show, haiku_popup_dialog): Stop
	blocking input and pass required callbacks to `BAlert_go'.
	* src/haikuterm.c (haiku_term_init): Set interrupt input mode to
	t.

2022-02-19  Po Lu  <luangruo@yahoo.com>

	Fix typo in last change

	* src/xterm.c (handle_one_xevent): Use `xi_done_keysym' label
	when ignoring modifier keys from XI2 input.

2022-02-19  Po Lu  <luangruo@yahoo.com>

	Ignore modifier keys early when handling X key press events

	* src/xterm.c (handle_one_xevent): Ignore modifier keys earlier
	without going through the usual key lookup.
	(x_delete_terminal): Free recorded modifier map.
	(x_find_modifier_meanings): Record modifier map.

	* src/xterm.h (struct x_display_info): New field `modmap'.

2022-02-19  Po Lu  <luangruo@yahoo.com>

	Free XI2 devices in x_delete_display instead

	* src/xterm.c (x_delete_display): Free XI2 device data here
	instead, since it doesn't involve contacting the X server any
	more.
	(x_delete_terminal): Stop freeing XI2 device data.

2022-02-19  Philip Kaludercic  <philipk@posteo.net>

	Revert "; * rcirc.el (rcirc-print): Prefer sleep-for over sit-for"

2022-02-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	(specpdl_unrewind): Fix corner case

	* src/lisp.h (enum specbind_tag): New elem SPECPDL_NOP.

	* src/eval.c (specpdl_unrewind): Zap entries that can't be applied any more,
	and simplify.
	(default_toplevel_binding, lexbound_p, Fbacktrace__locals): Simplify.
	(do_one_unbind, mark_specpdl): Handle SPECPDL_NOP.

2022-02-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	(macroexp-warn-and-return): Fix bug#53618

	* lisp/emacs-lisp/macroexp.el (macroexp-warn-and-return):
	Reorder arguments to preserve compatibility with that of Emacs-28.
	(macroexp--unfold-lambda, macroexp--expand-all):
	* lisp/emacs-lisp/pcase.el (pcase-compile-patterns, pcase--u1):
	* lisp/emacs-lisp/gv.el (gv-ref):
	* lisp/emacs-lisp/eieio.el (defclass):
	* lisp/emacs-lisp/eieio-core.el (eieio-oref, eieio-oref-default)
	(eieio-oset-default):
	* lisp/emacs-lisp/easy-mmode.el (define-minor-mode):
	* lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet, cl-defstruct):
	* lisp/emacs-lisp/cl-generic.el (cl-defmethod):
	* lisp/emacs-lisp/byte-run.el (defmacro, defun):
	* lisp/emacs-lisp/bindat.el (bindat--type): Adjust accordingly.

2022-02-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	(loadhist_initialize): Minor refactoring

	Consolidate a bit of code.

	* src/lread.c (loadhist_initialize): New function.
	(Fload, readevalloop): Use it.

2022-02-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix mishaps

	This reverts the last change so it also applies to non-git diffs again.
	Instead, we're now more careful not to mis-recognize file headers as
	addition/removal lines.
	In addition to that, mark the file header such that it's
	re-font-locked all at once, and to still recognize it after
	`diff-reverse-direction`.

2022-02-19  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp password prompts for sudo-like methods

	* doc/misc/tramp.texi (Password handling): Explain entries for
	doas, sudo and sudoedit.

	* etc/NEWS (Tramp): Document changed password prompts.

	* lisp/net/tramp-sh.el (tramp-methods) <sudo, doas>:
	Add `tramp-password-previous-hop'.
	(tramp-maybe-open-connection): Modify `previous-hop' if needed.

	* lisp/net/tramp-sudoedit.el (tramp-methods) <sudoedit>:
	Add `tramp-password-previous-hop'.
	(tramp-sudoedit-null-hop): New defconst.
	(tramp-sudoedit-send-command): Use it.

	* lisp/net/tramp.el (tramp-methods): Adapt docstring.
	(tramp-null-hop): New defconst.
	(tramp-get-remote-null-device): Use it.

2022-02-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Some vtable.texi copy edits

	* doc/misc/vtable.texi (Making A Table): Mention the accessors.

2022-02-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention vtable accessor functions

	* doc/misc/vtable.texi (Making A Table): Mention the accessors.

2022-02-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the vtable documentation on argument types

	* doc/misc/vtable.texi (Making A Table): Say what the argument
	types are.

2022-02-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix a vtable example

	* doc/misc/vtable.texi (Introduction): Fix example.

2022-02-19  Eli Zaretskii  <eliz@gnu.org>

	Improve vtable documentation

	* doc/misc/vtable.texi (top-level): Add @syncodeindex directives.
	(Introduction): Fix wording and markup.  Add indexing.
	(Making A Table, Commands, Interface Functions): Fix typos and
	markup.  Add indexing.

	* etc/NEWS: Improve wording of the vtable's NEWS entry.

	* doc/misc/Makefile.in (INFO_COMMON): Add 'vtable'.

2022-02-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Add column sorting order indicators to vtable

	* lisp/emacs-lisp/vtable.el (vtable--indicator): New function.
	(vtable--insert-header-line): Use it to display sorting order
	indicators.

2022-02-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make string-pixel-width slightly speedier

	* lisp/emacs-lisp/subr-x.el (string-pixel-width): Speed up
	string-pixel-width in the zero-length string case.

2022-02-19  Po Lu  <luangruo@yahoo.com>

	Avoid consing extra string when processing GTK native input

	* src/gtkutil.c (xg_im_context_commit): Use
	`decode_string_utf8' to decode input text.

	* src/keyboard.c (kbd_buffer_get_event_1): If coding system is
	Qt, simply return the string without decoding it.

	* src/termhooks.h (enum event_kind): Document meaning of Qt as
	coding system in a multibyte keystroke event's string argument.

2022-02-19  Mauro Aranda  <maurooaranda@gmail.com>

	Fix types of some align.el defcustoms

	* lisp/align.el (align-region-heuristic)
	(align-large-region): Both options can be nil, but the defcustom type
	didn't allow nil values.
	(align-rules-list-type): The "Run If" and "Valid" attributes
	should be functions, but the default value was t.  Change it to
	#'always (bug#54048).

2022-02-19  Mauro Aranda  <maurooaranda@gmail.com>

	Fix :match function for the key widget

	* lisp/wid-edit.el (key): Calling key-valid-p directly doesn't work,
	because the :match function is called with the widget and the value as
	arguments (bug#54049).

2022-02-19  Po Lu  <luangruo@yahoo.com>

	Fix some more hangs when parenting child frames around on Haiku

	* src/haiku_support.cc (ParentTo):
	(FrameMoved): Don't sync when a recursive lock might be able to
	be held.

2022-02-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new library to format variable-pitch tables

	* doc/misc/vtable.texi (Index): New manual.

	* lisp/emacs-lisp/vtable.el: New library.

2022-02-19  Po Lu  <luangruo@yahoo.com>

	Improve portability of alpha channel visual detection

	* src/xfns.c (select_visual): Look for PictVisuals with an alpha
	channel instead of blindly assuming that 32 bit visuals have an
	alpha channel.
	(Fx_show_tip): Fix crash on some displays where child is None.

	* src/xterm.c (x_term_init): Initialize Xrender before
	calling select_visual.

2022-02-19  Alan Mackenzie  <acm@muc.de>

	Fix symbols with position appearing in the output of `compile-defun'

	This happened with the tags of a condition-case.  Also fix the detection of
	circular lists while stripping the positions from symbols with position.

	* lisp/emacs-lisp/byte-run.el (byte-run--circular-list-p): Remove.
	(byte-run--strip-s-p-1): Write a value of t into a hash table for each cons or
	vector/record encountered.  (This is to prevent loops with circular
	structures.)  This is now done for all arguments, not just those detected as
	circular lists.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defvar)
	(byte-compile-form, byte-compile-dynamic-variable-op)
	(byte-compile-constant, byte-compile-push-constant): Remove redundant calls to
	`bare-symbol'.
	(byte-compile-lambda): call `byte-run-strip-symbol-positions' on the arglist.
	(byte-compile-out): call `byte-run-strip-symbol-positions' on the operand.
	This is the main call to this function in bytecomp.el.

	* src/fns.c (hashfn_eq): Strip the position from an argument which is a symbol
	with position.
	(hash_lookup): No longer strip a position from a symbol with position.
	(sxhash_obj): Add handling for symbols with position, substituting their bare
	symbols when symbols with position are enabled.

2022-02-19  Eli Zaretskii  <eliz@gnu.org>

	Fix character compositions on the mode line

	* src/composite.c (composition_compute_stop_pos)
	(Ffind_composition_internal): When characters come from a string,
	determine whether to compose them from that string's multibyteness,
	not from that of the current buffer.  (Bug#53729)

2022-02-19  Po Lu  <luangruo@yahoo.com>

	Don't ignore events from XI2 slave devices anymore

	All the machinery needed to keep track of events from those
	devices is already in place, so that's no longer required.

	* src/xterm.c (x_get_scroll_valuator_delta):
	(xi_reset_scroll_valuators_for_device_id):
	(handle_one_xevent): Don't ignore XI devices that are not master
	pointers or keyboards.

2022-02-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	57c112cfe5 ; * doc/emacs/files.texi (Comparing Files): Fix a reference.
	bdeac2d5af ; Fix a typo in filesets.el's doc string

2022-02-19  Po Lu  <luangruo@yahoo.com>

	Always decode GTK input method text as utf-8-unix

	* src/gtkutil.c (xg_im_context_commit): Use `utf-8-unix' as
	coding system for text.

2022-02-18  Po Lu  <luangruo@yahoo.com>

	Be less strict about which emulated motion events to ignore

	* src/xterm.c (handle_one_xevent): Don't test XI2 version before
	dropping PointerEmulated motion events.

2022-02-18  Po Lu  <luangruo@yahoo.com>

	* src/haikufns.c (haiku_create_frame): Error if font wasn't found.

2022-02-18  Po Lu  <luangruo@yahoo.com>

	Utilize new string decoding feature in GTK native input

	* src/gtkutil.c (xg_im_context_commit): Don't decode strings
	manually using g_utf8_to_ucs4 but pass unibyte string as the
	keystroke event arg instead.

2022-02-18  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Handle multiple directory separators in gnus-search results

	Try to treat the file names more like file names, less like strings
	to massage.

	* lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): Use
	`expand-file-name' to collapse separators and generally canonicalize
	the name. Use `file-name-split' and joining instead of regexp
	munging.

2022-02-18  Po Lu  <luangruo@yahoo.com>

	Fix background stipple with `alpha_background'

	* src/xterm.c (x_fill_rectangle): Fix treatment of foreground
	and background colors when there is a stipple.

2022-02-18  Po Lu  <luangruo@yahoo.com>

	Fix a crash on some versions of GTK

	* src/emacsgtkfixed.c (XSetWMNormalHints): Fix potential
	arithmetic fault.

2022-02-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	1e4b04c Improve documentation of filling and justification commands
	9fd396e * lisp/progmodes/subword.el (superword-mode): Doc fix.  (Bug#...
	e303cb1 Fix indexing of module functions that return complex types.

2022-02-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	c8442df ; Separate command and concept index in Transient manual
	8aa052c ; Fix Transient manual
	5b7752a Fix problem with popd for in remote shell buffers
	38f6ea1 Import texi source file for transient manual
	df34929 Update to Org 9.5.2-15-gc5ceb6

2022-02-18  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	# Conflicts:
	#	lisp/startup.el

2022-02-18  Po Lu  <luangruo@yahoo.com>

	Fix blurry text on multiple scale monitor setups

	* src/pgtkterm.c (pgtk_copy_bits): Preserve window scale factor
	on temporary surface.  (bug#54040)

2022-02-18  Andrew G Cohen  <cohen@andy.bu.edu>

	Make sure nnselect search query is properly parsed

	* lisp/gnus/gnus-search.el (gnus-search-make-spec): The search query
	should not be interpreted as raw, but whatever the underlying search
	engine expects.

2022-02-18  Andrew G Cohen  <cohen@andy.bu.edu>

	Fix gnus searching of native servers

	* lisp/gnus/gnus-group.el (gnus-group-make-search-group):
	(gnus-group-read-ephemeral-search-group):  Find the real server even
	when the group is native.

2022-02-18  Po Lu  <luangruo@yahoo.com>

	Make treatment of `alpha-background' more consistent

	* src/xterm.c (x_clear_glyph_string_rect):
	(x_draw_glyph_string_background): Ignore alpha_background on all
	cursors.

2022-02-18  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Fix gnus-search-run-search methods

	* lisp/gnus/gnus-search.el (gnus-search-run-search): Both these
	implementations were setting the current buffer and then not setting
	it back.

2022-02-17  Po Lu  <luangruo@yahoo.com>

	Make stipple backgrounds respect `alpha-background'

	* src/xterm.c (x_fill_rectangle): Respect `alpha-background'
	when drawing stipple.

2022-02-17  Po Lu  <luangruo@yahoo.com>

	Fix mis-parsing of certain malformed XBM files

	* src/image.c (xbm_scan): Return error on a character literal
	that doesn't start with "\x".

2022-02-17  Po Lu  <luangruo@yahoo.com>

	Parse XBM images which use character escapes for hex literals

	* src/image.c (xbm_scan): Implement parsing of hex escapes in
	character literals.

2022-02-17  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Fix gnus-search notmuch thread searches

	* lisp/gnus/gnus-search.el (gnus-search-run-search): Multiple things
	wrong with collecting thread ids from the search results, and
	constructing a new search query.
	(gnus-search-indexed-search-command): Use list appending rather than
	backtick construction, that was more confusing than it was helpful.

2022-02-17  Juri Linkov  <juri@linkov.net>

	* lisp/mouse.el (context-menu-entry): Don't create menu for Help commands.

	Help commands that describe keybindings call context-menu-entry bound to
	a key.  This causes too much trouble when trying to build the context menu
	in a temporary Help buffer that is not displayed in a window.
	OTOH, there is no information in context menus useful for Help commands.
	So `help-buffer-under-preparation' is added to filter out such calls.
	(bug#53910)

2022-02-17  Eli Zaretskii  <eliz@gnu.org>

	Resurrect innocent joke in byte-opt.el

	* lisp/emacs-lisp/byte-opt.el: Resurrect innocent joke in a
	comment.

2022-02-17  Eli Zaretskii  <eliz@gnu.org>

	Fix files-tests on MS-Windows

	* test/lisp/files-tests.el
	(files-tests-zzdont-rewrite-precious-files): Renamed from
	'files-tests-dont-rewrite-precious-files', to fix a subtle problem
	that breaks 2 tests on MS-Windows.
	(files-tests-revert-buffer)
	(files-tests-revert-buffer-with-fine-grain): No need to disable
	file locking anymore.

2022-02-17  Mattias Engdegård  <mattiase@acm.org>

	Fix or remove outdated comments

	* src/eval.c (funcall_lambda): Rewrite obsolete comment.
	* src/bytecode.c (exec_byte_code): Remove lying comment and
	unneeded #define.
	* lisp/emacs-lisp/byte-opt.el: Remove car.  Keep pig.
	(byte-compile-log-lap-1): Remove obsolete and irrelevant comment.

2022-02-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/face-remap.el: Fix bug#53294

	* lisp/face-remap.el (face-remap--copy-face): New function.
	(face-attrs--make-indirect-safe): Use it.

2022-02-17  Eli Zaretskii  <eliz@gnu.org>

	Speed up exiting "emacs -Q"

	* lisp/files.el (files--buffers-needing-to-be-saved): Don't call
	functions from seq.el.  Using seq.el has an annoying side-effect
	of slowing down "C-x C-c" from "emacs -Q" due to the need to load
	seq.el.

2022-02-17  Po Lu  <luangruo@yahoo.com>

	Fix crash when displaying XBM images on a 32-bit visual

	* src/image.c (Create_Pixmap_From_Bitmap_Data): Fix use of wrong
	(default) depth.

2022-02-17  Po Lu  <luangruo@yahoo.com>

	Implement XBM images on Haiku

	* src/image.c (image_create_bitmap_from_data): Handle allocation
	failures on Haiku.
	(Create_Pixmap_From_Bitmap_Data): Implement for Haiku.

2022-02-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a NEWS entry for the bookmark changes (bug#54030)

	* lisp/bookmark.el (bookmark-bmenu-mode): Make the type shorter.

2022-02-17  Matthias Meulien  <orontee@gmail.com>

	Don't prefix bookmark name with VC backend name

	* lisp/vc/vc-dir.el (vc-dir-bookmark-make-record): Remove prefix from
	bookmark name.

2022-02-17  Matthias Meulien  <orontee@gmail.com>

	Extend bookmark menu with with handler type column

	* lisp/bookmark.el (bookmark-bmenu--revert): Extend table entries with
	handler type.
	(bookmark-bmenu-mode): Add handler type column.
	* lisp/doc-view.el (doc-view-bookmark-jump): Set bookmark handler type.
	* lisp/help-mode.el (help-bookmark-jump): Set bookmark handler type.
	* lisp/image-dired.el (image-dired-bookmark-jump): Set bookmark handler type.
	* lisp/info.el (Info-bookmark-jump): Set bookmark handler type.
	* lisp/net/eww.el (eww-bookmark-jump): Set bookmark handler type.
	* lisp/vc/vc-dir.el (vc-dir-bookmark-jump): Set bookmark handler type.
	* lisp/woman.el (woman-bookmark-jump): Set bookmark handler type.

2022-02-17  Protesilaos Stavrou  <info@protesilaos.com>

	Update modus-themes to version 2.1.0

	* doc/misc/modus-themes.org (Customization Options): Document new user
	options and relevant changes.
	(Option for links, Option for box buttons)
	(Option for completion framework aesthetics, Option for mail citations)
	(Option for intense markup in Org and others)
	(Option for diff buffer looks, Option for org-mode block styles)
	(Option for Org agenda constructs)
	(Option for the headings' overall style): Update user options.
	(More accurate colors in terminal emulators): Add section on how to
	improve the accuracy of color reproduction in terminal emulators.
	(Case-by-case face specs using the themes' palette)
	(Face specs at scale using the themes' palette, Override colors)
	(Override colors through blending, Custom Org user faces): Improve
	wording.
	(Custom Org emphasis faces): Add section about bespoke faces for Org
	emphasis markers.
	(Backdrop for pdf-tools): Improve sample code.
	(Ediff without diff color-coding): Add section about user-level
	changes to the style of Ediff buffers.
	(Full support for packages or face groups): Update lists of supported
	packages.
	(Indirectly covered packages): Update list of indirectly supported
	packages.
	(Note on underlines in compilation buffers): Clarify wording.
	(Note on EWW and Elfeed fonts): Be more specific about 'shr' faces.
	(Are these color schemes?): Answer frequently asked question.
	(Acknowledgements): Update acknowledgements' section.

	* etc/themes/modus-themes.el (modus-themes-operandi-colors)
	(modus-themes-vivendi-colors): Update color palettes.
	(modus-themes-subtle-red, modus-themes-subtle-green)
	(modus-themes-subtle-yellow, modus-themes-subtle-blue)
	(modus-themes-subtle-magenta, modus-themes-subtle-cyan)
	(modus-themes-subtle-neutral, modus-themes-intense-red)
	(modus-themes-intense-green, modus-themes-intense-yellow)
	(modus-themes-intense-blue, modus-themes-intense-magenta)
	(modus-themes-intense-cyan, modus-themes-intense-neutral)
	(modus-themes-refine-red, modus-themes-refine-green)
	(modus-themes-refine-yellow, modus-themes-refine-blue)
	(modus-themes-refine-magenta, modus-themes-refine-cyan)
	(modus-themes-nuanced-red, modus-themes-nuanced-green)
	(modus-themes-nuanced-yellow, modus-themes-nuanced-blue)
	(modus-themes-nuanced-magenta, modus-themes-nuanced-cyan)
	(modus-themes-special-cold, modus-themes-special-mild)
	(modus-themes-special-warm, modus-themes-special-calm)
	(modus-themes-diff-added, modus-themes-diff-changed)
	(modus-themes-diff-removed, modus-themes-diff-refine-added)
	(modus-themes-diff-refine-changed, modus-themes-diff-refine-removed)
	(modus-themes-diff-focus-added, modus-themes-diff-focus-changed)
	(modus-themes-diff-focus-removed, modus-themes-diff-heading)
	(modus-themes-heading-1, modus-themes-heading-2, modus-themes-heading-3)
	(modus-themes-heading-4, modus-themes-heading-5, modus-themes-heading-6)
	(modus-themes-heading-7, modus-themes-heading-8, modus-themes-hl-line)
	(modus-themes-variable-pitch, modus-themes-lang-note)
	(modus-themes-lang-warning, modus-themes-lang-error)
	(modus-themes-reset-soft, modus-themes-reset-hard): Fix typo in
	':group'.
	(modus-themes-markup-code): Add face.
	(modus-themes--headings-choice, modus-themes-headings)
	(modus-themes-org-agenda): Update documentation about typographic
	weights.
	(modus-themes-org-blocks, modus-themes-completions): Update doc string
	and add new stylistic variant.
	(modus-themes-intense-markup): Deprecate old user option.  Replace it
	with 'modus-themes-markup'.
	(modus-themes-mail-citations): Update doc string and add another
	stylistic variant.
	(modus-themes-box-buttons): Add new user option.
	(modus-themes--slant): Tweak how slant is applied.
	(modus-themes--markup, modus-themes--prompt, modus-themes--paren)
	(modus-themes--syntax-foreground, modus-themes--syntax-extra)
	(modus-themes--syntax-string, modus-themes--syntax-comment)
	(modus-themes--heading, modus-themes--agenda-structure)
	(modus-themes--agenda-habit, modus-themes--org-block-delim)
	(modus-themes--mode-line-attrs, modus-themes--standard-completions)
	(modus-themes--link, modus-themes--link-color, modus-themes--region)
	(modus-themes--hl-line, modus-themes--mail-cite): Tweak private
	functions.
	(modus-themes--button): Adjust private function.
	(modus-themes--heading-weights): Deprecate it.  Replace by
	'modus-themes-weights'.
	(modus-themes-faces): Update faces.

	* etc/themes/modus-vivendi-theme.el
	* etc/themes/modus-operandi-theme.el: Bump version number.

	For a detailed change log, read:
	<https://protesilaos.com/codelog/2022-02-17-modus-themes-2-1-0/>.

2022-02-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Have setopt check types

	* doc/lispref/variables.texi (Setting Variables): Note type checking.
	* lisp/cus-edit.el (setopt--set): New function to avoid having
	Customize saving values, too.
	(setopt): Use it.

2022-02-17  Po Lu  <luangruo@yahoo.com>

	Fix warning during dumping on MS-DOS

	* lisp/cus-start.el (standard): Filter out
	`process-error-pause-time' on MS-DOS.

2022-02-17  Po Lu  <luangruo@yahoo.com>

	Prevent menu items leak if x-pre-popup-menu-hook signals

	* src/menu.c (x_popup_menu_1): Make sure menu items are
	discarded if the pre popup menu hook signals.

2022-02-17  Michael Albinus  <michael.albinus@gmx.de>

	Fix problem with "~" in Tramp

	* lisp/net/tramp.el (tramp-handle-substitute-in-file-name):
	Remove special handling of "~" in localname.  (Bug#53053)

2022-02-17  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_init_master_valuators): Clear `pending_enter_reset'.

2022-02-17  Po Lu  <luangruo@yahoo.com>

	Improve handling of XI2 wheel movement

	* src/xterm.c (handle_one_xevent): Process movement in all
	directions and send it as a single event.

2022-02-16  Po Lu  <luangruo@yahoo.com>

	Fix SIGFPE on some fonts when calculating their average width on Haiku

	* src/haiku_font_support.cc (estimate_font_ascii): Avoid division
	by zero.

2022-02-16  Po Lu  <luangruo@yahoo.com>

	* src/emacsgtkfixed.c (XSetWMSizeHints): Improve fix for bug#8919.

2022-02-16  Po Lu  <luangruo@yahoo.com>

	Don't auto-lower when moving onto a menu bar on Haiku

	* src/haiku_io.c (haiku_len): Handle `MENU_BAR_LEFT'.
	* src/haiku_support.cc (EmacsMenuBar::MouseMoved): New function.
	* src/haiku_support.h (enum haiku_event_type): New event
	`MENU_BAR_LEFT'.
	(struct haiku_menu_bar_left_event): New structure.
	* src/haikuterm.c (haiku_read_socket): Don't auto-lower when the
	mouse exits the frame view onto the menu bar and handle
	MENU_BAR_LEFT events.

2022-02-16  Po Lu  <luangruo@yahoo.com>

	Handle `unspecified' values of symbolic font values on Haiku

	* src/haikufont.c (haikufont_spec_or_entity_to_pattern): Handle
	`unspecified' values of symbolic values.

2022-02-16  Michael Albinus  <michael.albinus@gmx.de>

	Fix problem with file-modification-time in tramp-sshfs.el

	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	Use `tramp-handle-file-notify-add-watch',
	`tramp-handle-file-notify-rm-watch' and
	`tramp-handle-file-notify-valid-p'.
	(tramp-sshfs-handle-write-region): Set file modification time.
	(Bug#54016)

	* test/lisp/net/tramp-tests.el (tramp--test-asynchronous-processes-p):
	Filter out tramp-adb on multi-byte `default-directory'.
	(tramp--test-hpux-p, tramp--test-macos-p): Protect against errors.
	(tramp--test-check-files): Discriminate also tramp-sshfs.el.

2022-02-16  Matthias Meulien  <orontee@gmail.com>

	Fix computation of outline heading level for non-git diff

	* lisp/vc/diff-mode.el (diff-setup-buffer-type): Compute outline heading level
	using diff-hunk-header-re (bug#51809).
	(diff--font-lock-prettify): Disable prettify in non-git diff.

2022-02-16  Eli Zaretskii  <eliz@gnu.org>

	Add support for Tai Tham script

	* lisp/international/fontset.el (setup-default-fontset)
	(script-representative-chars): Add tai-tham.
	* lisp/language/thai.el ("Northern Thai"): New language
	environment.  Patch by Richard Wordingham
	<richard.wordingham@ntlworld.com>.  Set
	'composition-function-table' for the Tai Tham block.  Original
	code by Richard Wordingham <richard.wordingham@ntlworld.com>.

	* etc/HELLO: Add Northern Thai greeting.
	* etc/NEWS: Announce addition of Northern Thai language environment.

2022-02-16  Po Lu  <luangruo@yahoo.com>

	Fix recent change in xwidget.c

	* src/xwidget.c (xwidget_init_view): Don't assume ttip_widget
	is NULL if tooltips have not been initialized.

2022-02-16  Mattias Engdegård  <mattiase@acm.org>

	Speed up count_size_as_multibyte

	This function is used in many places to calculate the length of
	a unibyte string converted to multibyte.

	* src/character.c (count_size_as_multibyte): Move the overflow test
	outside the loop, which makes it much faster.  Standard compilers
	will even vectorize it if asked to (-O2 in Clang, -O3 in GCC).

2022-02-16  Mattias Engdegård  <mattiase@acm.org>

	Avoid emacs-module-tests failure on macOS

	* test/src/emacs-module-tests.el (module/describe-function-1):
	Prevent string mismatch caused by line breaks after filling;
	the macOS dynamic library suffix (.dylib) is longer than on other
	platforms.

2022-02-16  Po Lu  <luangruo@yahoo.com>

	Fix frame focus handling with native input

	* lisp/term/x-win.el (x-gtk-use-native-input-watcher): Stop
	passing frame parameter  to `x-internal-focus-input-context'.
	* src/xfns.c (Fx_internal_focus_input_context): Focus all focus
	frames from all displays.

2022-02-16  Po Lu  <luangruo@yahoo.com>

	Resolve xwidget scrolling mysteries

	* src/xterm.c (x_any_window_to_frame): Handle xwidget views.
	(handle_one_xevent): Always increment values array when handling
	motion events.

2022-02-15  Po Lu  <luangruo@yahoo.com>

	* etc/NEWS: Improve the PGTK entry.

2022-02-15  Po Lu  <luangruo@yahoo.com>

	Decode keyboard input as latin-1 whenever appropriate

	* src/keyboard.c (kbd_buffer_get_event_1): Use `coding'
	property if present.

	* src/termhooks.h (enum event_kind): Document meaning of
	`coding' property on text strings.

	* src/xterm.c (handle_one_xevent): Set coding property on text
	to latin-1 if it was obtained with XLookupString.

2022-02-15  Po Lu  <luangruo@yahoo.com>

	Don't decode text within XIM callbacks or handle_one_xevent

	* src/keyboard.c (kbd_buffer_get_event_1):
	(kbd_buffer_get_event_2): New functions.
	(kbd_buffer_get_event): Accept a new meaning of
	MULTIBYTE_CHAR_KEYSTROKE_EVENT where .arg can be a unibyte
	string to be decoded in the locale coding system.

	* src/termhooks.h (enum event_kind): Document new meaning of
	.arg in a multibyte keystroke event.

	* src/xfns.c (struct x_xim_text_conversion_data): New struct.
	(x_xim_text_to_utf8_unix_1):
	(x_xim_text_to_utf8_unix_2): New functions.
	(x_xim_text_to_utf8_unix): Handle decode failure correctly.
	(xic_preedit_draw_callback): Abort IM context if text could not
	be decoded correctly.

	* src/xterm.c (handle_one_xevent): Utilize new meaning of
	MULTIBYTE_CHAR_KEYSTROKE_EVENT.

2022-02-15  Michael Albinus  <michael.albinus@gmx.de>

	Some Tramp cleanup

	* doc/misc/tramp.texi (Remote processes): Add also tramp-sshfs.el.

	* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
	Error-out for multi-byte `default-directory'.

	* lisp/net/tramp.el (tramp-tolerate-tilde): Move it up.
	(tramp-handle-abbreviate-file-name): Use it.
	(tramp-read-passwd): Show literal passphrase prompt.

2022-02-15  Jim Porter  <jporterbugs@gmail.com>

	Don't attempt to connect to a remote server during 'abbreviate-file-name'

	* lisp/net/tramp.el (tramp-handle-abbreviate-file-name): Only use the
	"home-directory" when a connection has been established.

2022-02-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow savehist-additional-variables to truncate lists

	* lisp/savehist.el (savehist-save): Allow truncating values (bug#30943).

2022-02-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust files-test-file-size-human-readable test

	* test/lisp/files-tests.el (files-test-file-size-human-readable):
	Fix test after recent change.

2022-02-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Make autoarg obsolete

	* lisp/obsolete/autoarg.el: Make obsolete.

2022-02-15  Po Lu  <luangruo@yahoo.com>

	Fix parsing of some semibold font styles on Haiku

	* src/haiku_font_support.cc (font_style_to_flags): Accept
	"Semibold" to mean SemiBold as well.  Reported by
	augiedoggie <augiedoggie@users.noreply.github.com>.

2022-02-15  Po Lu  <luangruo@yahoo.com>

	Disable auto-lowering and raising on Haiku when a popup is active

	* src/haikuterm.c (haiku_new_focus_frame):
	(haiku_read_socket): Don't raise or lower if popup is activated.

2022-02-15  Po Lu  <luangruo@yahoo.com>

	Replace use of `DefaultRootWindow' with our recorded root window

	* src/xfns.c (x_relative_mouse_position):
	(x_set_parent_frame):
	(Fx_mouse_absolute_pixel_position):
	(Fx_set_mouse_absolute_pixel_position):
	* src/xterm.c (x_iconify_frame): Use dpyinfo->root_window
	instead of DefaultRootWindow.

2022-02-14  Po Lu  <luangruo@yahoo.com>

	Improve the help message for the pgtk configure option

	* configure.ac: Describe the purpose of PGTK better.

2022-02-14  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (init_xterm): Use more reliable method to disable XI2.

2022-02-14  Po Lu  <luangruo@yahoo.com>

	Better handle devices being enabled on XI2

	* src/xterm.c (handle_one_xevent): Don't abort on DeviceChanged
	if the device couldn't be found, instead regenerating the device
	hierarchy to see if it was enabled.

2022-02-14  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Fix docstring and init of Gnus search -remove-prefix options

	* lisp/gnus/gnus-search.el (*-remove-prefix): For all engine defaults,
	remove incorrect docs stating this is a regexp (it's a string). Also,
	use `expand-file-name' to get the correct default value, not `concat'
	and (getenv "HOME").

2022-02-14  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Fix manual documentation of Gnus tool bars

	* doc/misc/gnus.texi: The options `gnus-use-toolbar',
	`gnus-toolbar-thickness', and `gnus-summary-mail-toolbar' no longer
	exist. Other options in this section have been renamed from "toolbar"
	to "tool-bar".

2022-02-14  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Be more explicit about the meaning of "remove prefix" in Gnus search

	* doc/misc/gnus.texi (Search Engines): It's easy to get confused about
	what we're removing and why.

2022-02-14  Eli Zaretskii  <eliz@gnu.org>

	Improve recent addition to documentation of face remapping

	* doc/lispref/display.texi (Basic Faces): Make the list of basic
	faces more complete.
	(Face Remapping): Improve wording of a recent addition; add
	cross-reference to "Basic Faces".

2022-02-14  Eli Zaretskii  <eliz@gnu.org>

	Improve format of values returned by 'file-size-human-readable'

	* lisp/files.el (file-size-human-readable): Emit one digit of the
	fractional part of the size only if there's just one digit before
	the decimal point.

2022-02-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in Face Remapping

	* doc/lispref/display.texi (Face Remapping): Fix typo.

2022-02-14  Philip Kaludercic  <philipk@posteo.net>

	Add command to contact maintainer

	* package.el (package-menu-mode-map): Add package-contact-maintainer.
	(package--query-desc): Extract a common utility function.
	(package-browse-url): Use package--query-desc.
	(package-contact-maintainer): Add command.

2022-02-14  Philip Kaludercic  <philipk@posteo.net>

	Allow for packages to be installed directly from VCS

	Packages installed via package-fetch are of the kind 'source, and
	their extra properties may include a :upstream key (a list consisting
	of the VC backend, a remote repository, a branch and a path within the
	repository) and :rev key (indicating a specific revision to checkout).

	* package.el (package-devel-dir): Add new option.
	(package-desc): Allow an empty version string to be passed to
	package-desc-from-define.
	(package-desc-full-name): Handle source packages.
	(vc-working-revision): Declare function for package-devel-commit.
	(package-devel-commit): Add function.
	(package-load-descriptor): Detect and handle source packages.
	(package-load-all-descriptors): Use package-devel-dir.
	(vc-clone): Declare function for package-unpack.
	(package-unpack): Handle source packages.
	(package-generate-description-file): Handle source packages by
	omitting a version number.
	(package-install-from-archive): Check if a package is a source
	package.
	(package-fetch): Add new command
	(package-desc-status): Check for source packages.
	(package--remove-hidden): Hide regular packages from the package list
	if a source package was installed.
	(package-status-from-source): Add new face.
	(package-menu--print-info-simple): Handle source packages.
	(package-menu-mark-delete): Allow deleting source packages.
	(package-menu--status-predicate): Sort source packages after
	dependencies but before unsigned packages.
	(package-menu-filter-by-status): Allow filtering by source packages.

2022-02-14  Philip Kaludercic  <philipk@posteo.net>

	Implement vc-clone for git

	* vc-git.el (vc-git-clone): Add Git implementation

2022-02-14  Philip Kaludercic  <philipk@posteo.net>

	Add new command to clone a repository

	* vc.el (vc-clone): Add command

2022-02-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't signal errors in abbrev-table-p

	* lisp/abbrev.el (abbrev-table-p): Ignore the error.
	* src/lread.c (oblookup): Signal `wrong-type-argument' instead of
	`error' if it turns out that we're not really in an obarray (bug#53988).

2022-02-14  Philip Kaludercic  <philipk@posteo.net>

	Improve stability of message-hide-headers

	* message.el (message-hide-headers): Use a pointer instead of tracking
	the "end-of-headers" point manually (bug#53991).

2022-02-14  Po Lu  <luangruo@yahoo.com>

	Premultiply background color by alpha for images

	* src/xterm.c (x_query_frame_background_color): Premultiply
	colors as X wants them when built without Cairo.

2022-02-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in previous Face Remapping doc change

	* doc/lispref/display.texi (Face Remapping): Fix typo.

2022-02-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Note caveat about remapping basic faces

	* doc/lispref/display.texi (Face Remapping): Note caveat about
	basic faces (bug#53636).

2022-02-14  Po Lu  <luangruo@yahoo.com>

	Improve Haiku selection handling

	* lisp/select.el (gui--selection-value-internal): Use X types on
	Haiku as well.

	* lisp/term/haiku-win.el (haiku--selection-type-to-mime): Update
	types to correspond better with X.

	* src/haikuselect.c (Fhaiku_selection_data):
	(Fhaiku_selection_put): Remove a great deal of ad hoc code now
	handled by the regular selection machinery.

2022-02-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a mechanism for querying before executing a command

	* doc/emacs/custom.texi (Disabling): Document it.
	* doc/lispref/commands.texi (Disabling Commands): Document the
	low-level stuff.

	* lisp/simple.el (command-execute): Respect the `(query ...)'
	value for `disabled'.
	(command-execute--query): New function.
	(command-query): New function.

2022-02-14  Po Lu  <luangruo@yahoo.com>

	Handle allocation failures of fringe bitmaps on Haiku

	* src/haikuterm.c (haiku_define_fringe_bitmap): Handle
	allocation failures.

2022-02-14  Po Lu  <luangruo@yahoo.com>

	* etc/TODO: Update some entries related to macOS and NS.

	Xwidgets have worked on NS for a long time, "smooth scrolling"
	is now available as `pixel-scroll-precision-mode' for all GUI
	platforms, and some mouse gestures have been implemented on NS
	and X.

2022-02-14  Po Lu  <luangruo@yahoo.com>

	Ensure bad values don't leak into scroll valuators after DeviceChange

	* src/xterm.c (xi_reset_scroll_valuators_for_device_id): New
	argument `pending_only'.
	(handle_one_xevent): Reset pending scroll valuators on XI_Enter
	and mark valuators updated via DeviceChanged events as pending.

	* src/xterm.h (struct xi_scroll_valuator_t): New field
	`pending_enter_reset'.

2022-02-13  Po Lu  <luangruo@yahoo.com>

	Restore valuator values after receiving a DeviceChanged event

	* src/xterm.c (x_init_master_valuators): Generate valuators for
	both master and slave devices.
	(handle_one_xevent): Find current valuator info and use that to
	populate scroll valuators after a device changed.

2022-02-13  Po Lu  <luangruo@yahoo.com>

	Improve efficiency of handling DeviceChanged events

	* src/xterm.c (handle_one_xevent): Just update the device that
	was changed on DeviceChanged and only do hierarchy recalculation
	upon HierarchyChanged events.

2022-02-13  Po Lu  <luangruo@yahoo.com>

	Try to reduce empty areas on GTK when a frame is being resized

	* src/xterm.c (x_fill_rectangle):
	(x_clear_rectangle, x_draw_image_glyph_string):
	(x_clear_area): Don't use picture if frame background is opaque.

2022-02-13  Po Lu  <luangruo@yahoo.com>

	Fix wide fringe bitmap processing on Haiku

	* src/haiku_support.cc (BBitmap_import_mono_bits): Rewrite to
	use ImportBits.
	(BBitmap_import_fringe_bitmap): New function.

	* src/haiku_support.h: Update prototypes.

	* src/haikuterm.c (haiku_define_fringe_bitmap): Pass entire
	short array to BBitmap_import_fringe_bitmap instead.

2022-02-13  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp's process-file implementations

	* lisp/net/tramp-adb.el (tramp-adb-handle-process-file)
	* lisp/net/tramp-sh.el (tramp-sh-handle-process-file):
	* lisp/net/tramp-smb.el (tramp-smb-handle-process-file):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file):
	Improve implementation.  (Bug#53854)

	* test/lisp/net/tramp-tests.el (tramp-test28-process-file)
	(tramp--test-check-files, tramp-test47-unload): Extend tests.

2022-02-13  Juri Linkov  <juri@linkov.net>

	* lisp/faces.el (read-face-name-sample-text): Add defconst (bug#53960).

	(read-face-name): Use it instead of hard-coded string.

2022-02-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new macro `setopt'

	* doc/emacs/custom.texi (Examining): Mention it.
	(Init Syntax): Ditto.

	* doc/emacs/windows.texi (Window Choice): Adjust example.

	* doc/lispref/windows.texi (Choosing Window Options): Adjust examples.

	* doc/lispref/variables.texi (Setting Variables): Document setopt.

	* doc/misc/eudc.texi (Emacs-only Configuration): Adjust examples.

	* lisp/cus-edit.el (setopt): New macro.

2022-02-13  Po Lu  <luangruo@yahoo.com>

	* src/haikuterm.c (haiku_read_socket): Implement auto-lower.

2022-02-13  Po Lu  <luangruo@yahoo.com>

	Only get rid of IC focus if focus is really gone

	* src/xterm.c (x_focus_changed): Only unset IC focus if the
	focus state is empty.

2022-02-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove the 'C-k' binding in ido-mode

	* lisp/ido.el (ido-file-completion-map): Remove the `C-k' binding,
	because it's too dangerous and probably not very useful (bug#44556).

2022-02-13  Po Lu  <luangruo@yahoo.com>

	Prevent crashes from illegal locale coding systems

	* src/xfns.c (xic_preedit_draw_callback):
	* src/xterm.c (handle_one_xevent): Don't pass invalid coding
	systems to `setup_coding_system'.

2022-02-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-u M-x count-words' also give totals

	* lisp/simple.el (count-words-region): Adjust callers.
	(count-words): If given a prefix, give totals (bug#9959).
	(count-words--buffer-format, count-words--format): Rename and
	don't message, but return the string.

2022-02-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Note meaning on nil HIST in Fread_from_minibuffer

	* src/minibuf.c (Fread_from_minibuffer): Note the meaning of a nil
	HIST parameter (bug#20063).

2022-02-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix mouse clicking in read-face-name

	* lisp/faces.el (read-face-name): Put the data in the right
	position so that clicking on completions work (bug#53960).

2022-02-13  Bob Rogers  <rogers@rgrjr.com>

	Fix ietf-drums-remove-whitespace unmatched " and (

	* lisp/mail/ietf-drums.el:
	+ (ietf-drums-skip-comment):  New helper function.
	+ (ietf-drums-remove-comments):  Use ietf-drums-skip-comment.
	+ (ietf-drums-remove-whitespace):  Handle unterminated quotes and
	comments, as ietf-drums-remove-comments already does.
	* test/lisp/mail/ietf-drums-tests.el:
	+ Test unterminated quote and comment for
	ietf-drums-remove-whitespace and ietf-drums-remove-comments (bug#53965).

2022-02-13  Andreas Schwab  <schwab@linux-m68k.org>

	* src/eval.c (specpdl_unrewind): Remove empty statement.

2022-02-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid a compilation warning in eval.c

	* src/eval.c (specpdl_unrewind): Avoid a compilation warning.

2022-02-13  Po Lu  <luangruo@yahoo.com>

	Fix integer overflow with 32-bit visual

	* src/xfns.c (x_set_border_pixel):
	(x_set_border_color): Use `unsigned long' for border color.

2022-02-12  Po Lu  <luangruo@yahoo.com>

	Work around tooltip bug on new versions of WebKitGTK

	* src/xwidget.c (dummy_tooltip_string): New variable.
	(xw_maybe_synthesize_crossing): Call `xg_prepare_tooltip' to
	disable tooltips on WebKitGTK 2.34 or later.
	(syms_of_xwidget): Make dummy string.

2022-02-12  Po Lu  <luangruo@yahoo.com>

	Stop querying for Xinerama inside x_get_monitor_attributes

	* src/xfns.c (x_get_monitor_attributes): Remove Xinerama check
	and use xinerama_supported_p instead.
	* src/xterm.c (x_term_init): Set `xinerama_supported_p'
	* src/xterm.h (struct x_display_info): New field
	`xinerama_supported_p'.

2022-02-12  Po Lu  <luangruo@yahoo.com>

	* src/pgtkfns.c (Fx_create_frame): Set `was_invisible' flag.

2022-02-12  Po Lu  <luangruo@yahoo.com>

	Use better GC for visible bell on colormapped visuals

	* src/xterm.c (XTflash): Use normal_gc if the visual is not
	TrueColor.

2022-02-12  Po Lu  <luangruo@yahoo.com>

	Fix the Haiku port

	* src/haiku_support.h [__cplusplus]: Define `specpdl_ref' type
	on C++ since that code cannot include lisp.h.

2022-02-12  Po Lu  <luangruo@yahoo.com>

	Fix last change in xterm.c

	* src/xterm.c (x_update_opaque_region): Remove check that f is
	non-NULL.
	(handle_one_xevent): If f is NULL and the configure event is for
	any's edit widget, use that instead.

2022-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/xterm.c (x_update_opaque_region): Avoid crash at startup in Lucid build

2022-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	Rewrite thread context switch code (bug#48990)

	Make the context switch code handle buffer-local variables more
	correctly by reusing the code originally written for `backtrace-eval`.
	This has the side benefit of making the `saved_value` field unused.

	* src/lisp.h (enum specbind_tag): Remove `saved_value` field.
	(rebind_for_thread_switch, unbind_for_thread_switch): Delete decls.
	(specpdl_unrewind): Declare function.

	* src/eval.c (specpdl_saved_value): Delete function.
	(specbind): Delete the code related to `saved_value`, and consolidate
	common code between the different branches.
	(rebind_for_thread_switch, -unbind_for_thread_switch): Move to `thread.c`.
	(specpdl_unrewind): New function, extracted from `backtrace_eval_unrewind`.
	Use `SET_INTERNAL_THREAD_SWITCH`.  Skip the buffer & excursion unwinds
	depending on new arg `vars_only`.
	(backtrace_eval_unrewind): Use it.
	(mark_specpdl): Don't mark `saved_value`.

	* src/thread.c (rebind_for_thread_switch, unbind_for_thread_switch):
	Move from `eval.c` and rewrite using `specpdl_unrewind`.

	* test/src/thread-tests.el (threads-test-bug48990): New test.

	* test/Makefile.in (test_template): Add a + as suggested by make:
	"warning: jobserver unavailable: using -j1.  Add '+' to parent make rule".

2022-02-12  Mattias Engdegård  <mattiase@acm.org>

	Speed up `=` on fixnums in bytecode

	Now that EQ has become expensive, use BASE_EQ where possible.

	* src/bytecode.c (exec_byte_code): Use cheaper operation for Beqlsign.

2022-02-12  Eli Zaretskii  <eliz@gnu.org>

	Optionally allow point to enter composed character sequences

	This changeset is based on code originally posted by
	Kenichi Handa <handa@gnu.org> as part of discussing bug#20140,
	with a few adjustments and changes, mainly to support R2L
	text and provide a user option to control the feature.
	* src/xdisp.c (compute_stop_pos, next_element_from_buffer)
	(composition_reseat_it): Don't allow auto-composing characters
	past point when 'composition-break-at-point' is non-nil.
	(syms_of_xdisp) <composition-break-at-point>: New boolean variable.
	(redisplay_internal, redisplay_window): Disable "just move the
	cursor" optimizations when 'composition-break-at-point' is non-nil.
	* src/keyboard.c (command_loop_1): Force redisplay when
	'composition-break-at-point' is non-nil.

	* lisp/cus-start.el (standard): Provide customization form for
	'composition-break-at-point'.

	* etc/NEWS: Announce the new feature.

2022-02-12  Mattias Engdegård  <mattiase@acm.org>

	Count bytes, not records, in specpdl_ref

	SPECPDL_INDEX becomes much faster because the pointer subtraction,
	expensive because of the inconveniently sized specpdl records, is now
	gone.  This translates to a useful speedup on a wide variety of code.

	* src/lisp.h (specpdl_ref, wrap_specpdl_ref, unwrap_specpdl_ref):
	Rename member.
	(specpdl_count_to_ref, specpdl_ref_to_count)
	(specpdl_ref_add, specpdl_ref_to_ptr, SPECPDL_INDEX):
	Count offset in bytes rather than in records.

2022-02-12  Mattias Engdegård  <mattiase@acm.org>

	Turn specpdl_ref into a type of its own

	Wrap the specpdl_ref contents in a struct, which gives us some very
	useful type checking to make sure that all code that assumed integral
	specpdl refs has been converted.

	We only do this on 64-bit platforms, since those tend to have modern
	ABIs where small structs are optimized as scalars.  In other words,
	this change should not affect the compiled code.

	* src/lisp.h (specpdl_ref): Now a struct on 64-bit platforms.
	(wrap_specpdl_ref, unwrap_specpdl_ref): New.
	(specpdl_count_to_ref, specpdl_ref_to_count)
	(specpdl_ref_eq, specpdl_ref_lt)
	(specpdl_ref_valid_p, make_invalid_specpdl_ref): Use new wrappers.

2022-02-12  Mattias Engdegård  <mattiase@acm.org>

	Replace ptrdiff_t with new specpdl_ref type for specpdl references

	The specpdl_ref type is just an alias for ptrdiff_t; the compiled code
	remains the same.  All operations on specpdl_ref (arithmetic,
	comparison etc) now go through inline functions.

	The bulk of the change is almost completely mechanical.  It is done to
	prepare for a type-safe representation and subsequent performance
	improvement.

	* src/lisp.h (specpdl_ref, specpdl_count_to_ref, specpdl_ref_to_count)
	(specpdl_ref_eq, specpdl_ref_lt, specpdl_ref_valid_p)
	(make_invalid_specpdl_ref, specpdl_ref_add, specpdl_ref_to_ptr): New.
	(SPECPDL_INDEX, struct handler, USE_SAFE_ALLOCA, safe_free)
	(safe_free_unbind_to):
	* src/alloc.c (run_finalizer_function, inhibit_garbage_collection)
	(garbage_collect, Fgarbage_collect, which_symbols):
	* src/bidi.c (bidi_at_paragraph_end, bidi_find_paragraph_start):
	* src/buffer.c (Fkill_buffer, Fset_buffer_major_mode, Fmove_overlay)
	(Fdelete_overlay):
	* src/bytecode.c (exec_byte_code):
	* src/callint.c (Ffuncall_interactively, Fcall_interactively):
	* src/callproc.c (Fcall_process, call_process, create_temp_file)
	(Fcall_process_region):
	* src/charset.c (load_charset_map_from_file):
	* src/coding.c (decode_coding_gap, decode_coding_object)
	(encode_coding_object, Fread_coding_system):
	* src/comp.c (emit_static_object, helper_unbind_n, load_comp_unit):
	* src/composite.c (update_compositions, autocmp_chars):
	* src/cygw32.c (conv_filename_to_w32_unicode)
	(conv_filename_from_w32_unicode):
	* src/data.c (notify_variable_watchers):
	* src/decompress.c (Fzlib_decompress_region):
	* src/dired.c (directory_files_internal, file_name_completion)
	(file_attributes):
	* src/dispnew.c (Fredisplay):
	* src/doc.c (get_doc_string, Fsnarf_documentation):
	* src/editfns.c (Fsave_excursion, Fsave_current_buffer)
	(Freplace_buffer_contents, Fsubst_char_in_region, Fsave_restriction)
	(styled_format):
	* src/emacs-module.c (Fmodule_load, funcall_module):
	* src/emacs.c (init_cmdargs, Fdump_emacs):
	* src/eval.c (call_debugger, do_debug_on_call, FletX, Flet)
	(Ffuncall_with_delayed_message, Funwind_protect)
	(internal_lisp_condition_case, signal_or_quit)
	(load_with_autoload_queue, Feval, grow_specpdl_allocation)
	(record_in_backtrace, eval_sub, Ffuncall, apply_lambda)
	(funcall_lambda, clear_unwind_protect, set_unwind_protect)
	(set_unwind_protect_ptr, unbind_to, Fbacktrace_eval):
	* src/fileio.c (Fmake_temp_file_internal, Fcopy_file, Frename_file)
	(Finsert_file_contents, write_region, Fdo_auto_save):
	* src/fns.c (Fyes_or_no_p, Frequire, hash_table_user_defined_call):
	* src/fringe.c (update_window_fringes):
	* src/gtkutil.c (xg_dialog_run):
	* src/haiku_io.c (c_specpdl_idx_from_cxx):
	* src/haiku_support.cc (be_popup_file_dialog):
	* src/haiku_support.h (c_specpdl_idx_from_cxx):
	* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame)
	(haiku_hide_tip, Fx_show_tip, Fhaiku_read_file_name):
	* src/haikumenu.c (haiku_popup_dialog, set_frame_menubar):
	* src/image.c (slurp_file):
	* src/indent.c (line_number_display_width, Fvertical_motion):
	* src/insdel.c (signal_before_change, signal_after_change)
	(Fcombine_after_change_execute):
	* src/intervals.c (get_local_map):
	* src/json.c (lisp_to_json_nonscalar_1, Fjson_serialize, Fjson_insert)
	(Fjson_parse_string, Fjson_parse_buffer):
	* src/keyboard.c (recursive_edit_1, Frecursive_edit, cmd_error)
	(Finternal_track_mouse, command_loop_1, read_menu_command)
	(safe_run_hooks, read_event_from_main_queue, read_char, timer_check_2)
	(menu_item_eval_property, read_key_sequence, read_key_sequence_vs)
	(Fsuspend_emacs):
	* src/keymap.c (Fcurrent_active_maps, Fdescribe_vector)
	(Fhelp__describe_vector):
	* src/lread.c (Fload, save_match_data_load, readevalloop)
	(Feval_buffer, Feval_region, grow_read_buffer, read_integer, read1):
	* src/macros.c (Fexecute_kbd_macro):
	* src/menu.c (x_popup_menu_1):
	* src/minibuf.c (read_minibuf, set_minibuffer_mode)
	(read_minibuf_unwind, Fread_string, Fread_buffer):
	* src/nsfns.m (Fx_create_frame, Fx_show_tip):
	* src/nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
	* src/pdumper.c (Fdump_emacs_portable):
	* src/pgtkfns.c (Fx_create_frame, x_create_tip_frame, x_hide_tip)
	(Fx_show_tip, Fpgtk_print_frames_dialog, Fx_file_dialog, Fx_select_font):
	* src/pgtkmenu.c (set_frame_menubar, create_and_show_popup_menu)
	(pgtk_menu_show, create_and_show_dialog, pgtk_dialog_show)
	(pgtk_popup_dialog):
	* src/pgtkterm.c (pgtk_cr_export_frames):
	* src/print.c (PRINTPREPARE, temp_output_buffer_setup)
	(Fprin1_to_string, print_vectorlike):
	* src/process.c (Fmake_process, create_process, Fmake_pipe_process)
	(Fmake_serial_process, connect_network_socket, Fmake_network_process)
	(network_interface_info, server_accept_connection)
	(wait_reading_process_output, read_process_output, exec_sentinel):
	* src/regex-emacs.c (re_match_2_internal):
	* src/search.c (looking_at_1, fast_looking_at, search_buffer_re):
	* src/sound.c (Fplay_sound_internal):
	* src/sysdep.c (system_process_attributes):
	* src/term.c (tty_menu_show):
	* src/textprop.c (Fnext_single_char_property_change)
	(Fprevious_single_char_property_change, add_text_properties_1)
	(set_text_properties, set_text_properties_1, Fremove_text_properties)
	(Fremove_list_of_text_properties):
	* src/thread.c (Fmutex_lock, invoke_thread_function):
	* src/undo.c (truncate_undo_list):
	* src/w32fns.c (Fx_create_frame, w32_create_tip_frame, w32_hide_tip)
	(Fx_show_tip, Fx_file_dialog):
	* src/w32font.c (Fx_select_font):
	* src/w32menu.c (set_frame_menubar):
	* src/window.c (window_list, next_window, window_list_1)
	(run_window_configuration_change_hook, Frun_window_scroll_functions)
	(run_window_change_functions, set_window_buffer)
	(temp_output_buffer_show, window_scroll, scroll_command)
	(Fscroll_other_window, Fscroll_other_window_down):
	* src/xdisp.c (safe__call, handle_fontified_prop, handle_face_prop)
	(handle_single_display_spec, Fbuffer_text_pixel_size)
	(message_dolog, with_echo_area_buffer, setup_echo_area_for_printing)
	(display_echo_area, set_message, clear_message, echo_area_display)
	(gui_consider_frame_title, prepare_menu_bars, update_menu_bar)
	(update_tab_bar, update_tool_bar, redisplay_internal)
	(redisplay_preserve_echo_area, run_window_scroll_functions)
	(redisplay_window, extend_face_to_end_of_line)
	(display_count_lines_logically, display_count_lines_visually)
	(display_mode_lines, display_mode_line, Fformat_mode_line)
	(decode_mode_spec):
	* src/xfns.c (Fx_create_frame, x_create_tip_frame, x_hide_tip)
	(Fx_show_tip, Fx_file_dialog, Fx_select_font, Fx_print_frames_dialog):
	* src/xmenu.c (set_frame_menubar, create_and_show_popup_menu)
	(x_menu_show, create_and_show_dialog, x_dialog_show)
	(xw_popup_dialog):
	* src/xselect.c (x_get_local_selection, x_reply_selection_request)
	(x_handle_selection_request, wait_for_property_change):
	* src/xterm.c (x_cr_export_frames, x_connection_closed):
	Replace ptrdiff_t with specpdl_ref for referencing specpdl and use the
	corresponding functions instead of direct arithmetic.

2022-02-12  Po Lu  <luangruo@yahoo.com>

	Fix entry and exit events with XI2 grabs on X toolkit menus

	* src/xmenu.c (popup_get_selection): Only claim cookie if new
	event will be generated.
	(create_and_show_popup_menu): Ungrab XI2 device, then
	immediately set core grab on the frame's edit widget window.

	* src/xterm.c (handle_one_xevent): Use x_any_window_to_frame to
	find exit event frame if a popup menu is active.

2022-02-12  Eli Zaretskii  <eliz@gnu.org>

	Clean up mode-line-* faces handling

	* src/xfaces.c (realize_basic_faces):
	* src/dispextern.h (enum face_id): Remove MODE_LINE_ID.

2022-02-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Add documentation on how to delete files from Trash

	* doc/emacs/files.texi (Misc File Ops): Note trick to make `D'
	work in Trash directories (bug#44059).

2022-02-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve interaction between track-mouse and edebug

	* lisp/emacs-lisp/edebug.el (edebug--display-1): Work around
	`track-mouse' oddity (bug#675).

2022-02-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix off-by-one file size formatting in ls-lisp

	* lisp/ls-lisp.el (ls-lisp-format, ls-lisp-format-file-size): The
	human-readable file sizes can be 7 characters wide (e.g.,
	"1016.1k") (bug#53937).

2022-02-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Cross-link message-expand-name-standard-ui-relevant doc strings

	* lisp/gnus/message.el (message-expand-name-standard-ui): Mention
	the other relevant variables in the doc string (bug#50667).

2022-02-11  Po Lu  <luangruo@yahoo.com>

	Implement visual bell on Haiku like on X

	* src/haiku_draw_support.cc
	(BView_FillRectangleForVisibleBell): Delete function.
	(BView_InvertRect): New function.

	* src/haiku_support.cc (class EmacsView): Delete field
	`visible_bell_color' and visible bell related methods.
	(EmacsView_do_visible_bell): Delete function.
	* src/haiku_support.h: Update prototypes.

	* src/haikuterm.c (haiku_flash): Implement using
	`BView_InvertRect'.
	(haiku_beep): Use `haiku_flash' instead.

2022-02-11  Po Lu  <luangruo@yahoo.com>

	Fix compatibility with ancient versions of libXi

	* src/xmenu.c (popup_get_selection): Don't rely on xev->display
	being non-NULL.

2022-02-11  Po Lu  <luangruo@yahoo.com>

	Be less strict about which PointerEmulated button events to ignore

	* src/xterm.c (handle_one_xevent): Ignore all PointerEmulated
	button events.

2022-02-11  Po Lu  <luangruo@yahoo.com>

	Never set opaque region without an alpha channel

	* src/xfns.c (x_set_alpha_background): Don't modify opaque
	region if the visual has no alpha channel.

2022-02-11  Mattias Engdegård  <mattiase@acm.org>

	Modernize byte-compilation chapters in manual

	* doc/lispref/compile.texi (Speed of Byte-Code): More representative
	numbers for byte code; the difference is much greater today.
	(Compilation Functions, Disassembly): Example output for lexbind
	bytecode.

2022-02-11  Po Lu  <luangruo@yahoo.com>

	Fix the DJGPP port

	* config.bat:
	* msdos/sed1v2.inp:
	* msdos/sedlibmk.inp: Update for present Emacs.

	* src/Makefile.in (MAKE_PDUMPER_FINGERPRINT): Fix indentation
	to not confuse sed*.inp.
	* src/conf_post.h [MSDOS]: Define some things gnulib wants.

2022-02-11  Michael Albinus  <michael.albinus@gmx.de>

	Tolerate tilde in remote file names when needed

	* lisp/net/tramp.el (tramp-tolerate-tilde): New defvar.
	(tramp-handle-expand-file-name):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name):
	Respect it.

	* lisp/net/tramp-adb.el (tramp-adb-tolerate-tilde):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-tolerate-tilde): New defuns.
	Advice `shell-mode' with them.
	(tramp-methods) <sshfs>: Add "-t -t" to `tramp-login-args'.

2022-02-11  Andrew G Cohen  <cohen@andy.bu.edu>

	Allow searching of nnselect (search) groups

	* lisp/gnus/gnus-group.el (gnus-group-make-search-group):
	(gnus-group-read-ephemeral-search-group):  Ensure the server is
	correctly identified even for nnselect groups.
	* lisp/gnus/gnus-search.el (gnus-search-nnselect): New function.
	(gnus-search-default-engines): Use it.
	(gnus-search-make-spec): Queries from nnselect should always be raw.
	* lisp/gnus/nnselect.el (gnus-search): Silence the byte-compiler.

2022-02-11  Po Lu  <luangruo@yahoo.com>

	* etc/PROBLEMS: Document some limitations of Xwayland and PGTK.

2022-02-11  Po Lu  <luangruo@yahoo.com>

	Don't make cursors affected by background alpha on PGTK

	* src/ftcrfont.c (ftcrfont_draw):
	* src/pgtkterm.c (x_clear_glyph_string_rect): Make behavior on
	PGTK consistent with X.

2022-02-11  Po Lu  <luangruo@yahoo.com>

	Set _NET_WM_OPAQUE_REGION on non-GTK3 toolkits when using 32 bit visual

	* src/xfns.c (x_set_alpha_background): Set opaque region if
	opaque.

	* src/xterm.c (x_update_opaque_region): New parameter
	`configure'.  All callers changed.
	(handle_one_xevent): Call `x_update_opaque_region' on configure
	events.

2022-02-11  Po Lu  <luangruo@yahoo.com>

	Fix fallout from switch to 32-bit visuals

	* src/xfns.c (x_decode_color): Make return type wide enough to
	hold any pixel value.
	* src/xterm.h (x_make_truecolor_pixel): Simplify.

2022-02-10  Po Lu  <luangruo@yahoo.com>

	Improve reliability of selection ownership on Haiku

	* src/haiku_select.cc (count_clipboard, count_primary)
	(count_secondary): Initialize to -1
	(BClipboard_set_system_data)
	(BClipboard_set_primary_selection_data)
	(BClipboard_set_secondary_selection_data): Store count before
	saving to the clipboard.
	(BClipboard_owns_clipboard, BClipboard_owns_primary)
	(BClipboard_owns_secondary): Adjust tests accordingly.

2022-02-10  Po Lu  <luangruo@yahoo.com>

	Disable nearest-color allocation on DirectColor visuals

	* src/xterm.c (x_alloc_nearest_color_1): Disable such allocation
	on DirectColor.  The method we use can't possibly work there.

2022-02-10  Mattias Engdegård  <mattiase@acm.org>

	Silence macOS vfork deprecation warnings

	The vfork system call exists and works in macOS 11.6 but the compiler
	gives a deprecation message; silence it, because the performance is
	still better than that of plain fork.  See discussion at
	https://lists.gnu.org/archive/html/emacs-devel/2022-02/msg00260.html

	* src/conf_post.h (VFORK): New #define.
	* src/callproc.c (emacs_spawn):
	* src/sysdep.c (sys_subshell): Use it.

2022-02-10  Juri Linkov  <juri@linkov.net>

	* lisp/mouse.el (context-menu-map): Select only unselected window (bug#53910)

2022-02-10  Juri Linkov  <juri@linkov.net>

	* lisp/tab-line.el (tab-line-format): Use mode-line-window-selected-p.

	Recently 'mode-line-window-selected-p' was added to
	'tab-line-tab-name-format-default'.  Now add the same to another
	place that handles the face 'tab-line-tab-current' (bug#53629).

2022-02-10  Corwin Brust  <corwin@bru.st>  (tiny change)

	Autoload package-installed-p

	* lisp/emacs-lisp/package.el (package-installed-p): Add autoload
	cookie. (Bug#53885)

2022-02-10  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	# Conflicts:
	#	lisp/startup.el

2022-02-10  Alan Mackenzie  <acm@muc.de>

	Note current buffer and restore it in c-force-redisplay.

	This fixes bug #52709.

	* lisp/progmodes/cc-fonts.el (c-force-redisplay): New parameter BUFFER.  Set
	current buffer to this before fontifying.
	(c-fontify-new-found-type): Give the current buffer as argument to
	run-with-timer.

2022-02-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Restore command-line--load-script messaging

	* lisp/startup.el (command-line--load-script): Restore previous
	non-messaging behavior.

2022-02-10  Michael Albinus  <michael.albinus@gmx.de>

	Improve handling of file modes in Tramp

	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-get-remote-uid)
	(tramp-gvfs-handle-get-remote-gid): Do not assume that the default
	location is owned be the remote uid/gid.
	(tramp-gvfs-handle-file-executable-p):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-executable-p):
	Check also for setuid/setgid bit.

	* lisp/net/tramp.el (tramp-check-cached-permissions): Check also
	for ?s access type.  Check whether remote uid/gid are unknown.

2022-02-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't signal a backtrace on empty --script files

	* lisp/startup.el (command-line--load-script): New function that
	avoids erroring out if it turns out there's no forms in the buffer
	(bug#4616).

	* lisp/subr.el (delete-line): New utility function.
	* lisp/international/mule.el (load-with-code-conversion): Accept
	an eval function.

2022-02-10  Po Lu  <luangruo@yahoo.com>

	Enable TrueColor allocation optimizations on all visuals

	* src/xterm.c (x_alloc_nearest_color): Enable optimizations on
	32-bit TrueColor visuals that legitimately don't have an alpha
	mask.

2022-02-10  Po Lu  <luangruo@yahoo.com>

	Correctly premultiply background color of fringe bitmaps

	* src/xterm.c (x_draw_fringe_bitmap): Premultiply alphas by
	alpha_background.

2022-02-10  Po Lu  <luangruo@yahoo.com>

	Correctly allocate colors in xftfont

	* src/xftfont.c (struct xftface_info): New fields
	`bg_allocated_p' and `fg_allocated_p'.
	(xftfont_get_colors): Actually allocate colors and tell the
	caller whether colors were allocated.
	(xftfont_prepare_face): Set allocated fields.
	(xftfont_done_face):
	(xftfont_draw): Free colors that were allocated.

2022-02-10  Dima Kogan  <dima@secretsauce.net>

	Make comint-word actually check comint-file-name-quote-list

	* lisp/comint.el (comint-word): We were checking for
	comint-file-name-quote-list existing, but not actually comparing
	to the characters in that list.  This patch actually checks the
	contents of comint-file-name-quote-list (bug#53911).

2022-02-10  Eli Zaretskii  <eliz@gnu.org>

	Allow customization of the user's eln-cache directory

	* lisp/startup.el (startup-redirect-eln-cache)
	(startup--update-eln-cache): New functions.
	(startup--original-eln-load-path): New defvar.
	(normal-top-level): Record the original value of
	'native-comp-eln-load-path' in 'startup--original-eln-load-path'.
	Do not amend 'native-comp-eln-load-path' here, as that could
	overwrite user customizations.
	(command-line): Amend 'native-comp-eln-load-path' after loading
	the early-init file, and then again after loading the user init
	file.  (Bug#53891)

	* etc/NEWS: Announce 'startup-redirect-eln-cache'.

2022-02-10  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	69e82968d7 Fix integer arithmetic miss-compilation (bug#53451)
	31af9bca99 Mark flymake as compatible with emacs-26.1

2022-02-10  Po Lu  <luangruo@yahoo.com>

	Fix disconnect errors on some X servers

	* src/xfns.c (x_make_gc): Don't set FillOpaqueStippled on cursor
	GC.  The reason is that some X servers break on such a fill
	style if the operation being performed is not a stipple
	operation.

2022-02-09  Po Lu  <luangruo@yahoo.com>

	Fill in missing pixel after PolyLine on scroll bars

	* src/xterm.c (x_scroll_bar_expose): Draw bottom right corner of
	scroll bar manually.

2022-02-09  Po Lu  <luangruo@yahoo.com>

	* src/haikugui.h [_cplusplus]: Remove extern "C" declarations.

	These were left over from an old implementation strategy
	abandoned long before the port was installed.

2022-02-09  Po Lu  <luangruo@yahoo.com>

	Improve reliability of hotplugging window managers

	* src/xterm.c (x_make_frame_visible): Change the user time
	window if the window manager supports something different from
	what it did the first time the frame was made visible.

2022-02-09  Po Lu  <luangruo@yahoo.com>

	Ignore tooltip frames when setting PGTK scrollbar foreground

	* src/pgtkfns.c (pgtk_set_scroll_bar_foreground): Ignore tip
	frames.  (bug#53900)

2022-02-09  Michael Albinus  <michael.albinus@gmx.de>

	Tilde expansion is not possible for Tramp sshfs method

	* lisp/net/tramp.el (tramp-handle-expand-file-name):
	Tilde expansion is not possible.  (Bug#53847)

2022-02-09  Tassilo Horn  <tsdh@gnu.org>

	show-paren: Don't show context again after C-g-ing it away.

	* lisp/paren.el (show-paren--last-pos): New variable.
	(show-paren-function): Don't show context again after C-g-ing it away.

2022-02-09  Po Lu  <luangruo@yahoo.com>

	Get rid of `register' declarations in X11 related files

	* src/xfns.c (XScreenNumberOfScreen): Rewrite K&R declaration.
	* src/xterm.c (x_set_offset): Remove `register' from `xoff' and
	`yoff'.

2022-02-09  Po Lu  <luangruo@yahoo.com>

	Fix compiler warning on GTK

	* src/xterm.c (x_make_frame_visible): Make some fields that are
	set but never used conditioned out on GTK.

2022-02-09  Po Lu  <luangruo@yahoo.com>

	Add support for _NET_WM_USER_TIME_WINDOW

	* src/xterm.c (x_make_frame_visible):
	(x_display_set_last_user_time): Use and set user time window if
	the WM supports it.
	(x_term_init): Intern new atom.

	* src/xterm.h (struct x_display_info): New atom
	`_NET_WM_USER_TIME_WINDOW'.
	(struct x_output): New field `user_time_window'.

2022-02-09  Antoine Levitt  <antoine.levitt@gmail.com>

	Improve the set-fill-column prompt

	* lisp/simple.el (set-fill-column): Improve the prompt (bug#53874).

2022-02-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Make calendar-exit actually respect the KILL parameter

	* lisp/calendar/calendar.el (calendar-exit): Really kill off all
	the buffers (if requested) (bug#53870).

2022-02-09  Po Lu  <luangruo@yahoo.com>

	Implement _NET_WM_USER_TIME protocol

	* src/xterm.c (x_display_set_last_user_time): Set user time on
	the active window.
	(handle_one_xevent): Only set user time when the user actually
	interacted with Emacs.
	(x_make_frame_visible): Set user time if non-zero.
	(x_term_init): Intern `_NET_WM_USER_TIME'.
	* src/xterm.h (struct x_display_info): New field
	`Xatom_net_wm_user_time'.
	(x_display_set_last_user_time): Implement in xterm.c instead.

2022-02-09  Po Lu  <luangruo@yahoo.com>

	Explicitly specify whether or not to respect alpha-background on Cairo

	* src/ftcrfont.c (ftcrfont_draw): Don't respect
	`alpha-background' if drawing cursor.  (bug#53890)
	* src/xterm.c (x_set_cr_source_with_gc_foreground):
	(x_set_cr_source_with_gc_background): New parameters
	`respect_alpha_background'.  All callers changed.
	* src/xterm.h: Update prototypes.

2022-02-09  Tassilo Horn  <tsdh@gnu.org>

	Mention `overlay' show-paren-context-when-offscreen value in NEWS

	* etc/NEWS: Mention `overlay' value of
	show-paren-context-when-offscreen.

2022-02-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	82e74e4559 flymake: Ensure compatibility with older Emacsen

2022-02-09  Po Lu  <luangruo@yahoo.com>

	Make haikufont_list_family actually work

	* haikufont.c (haikufont_list_family): Intern returned font
	families.

2022-02-08  Po Lu  <luangruo@yahoo.com>

	Implement `list_family' for the haikufont driver

	* src/haiku_font_support.cc (be_list_font_families): New
	function.
	* src/haiku_support.h: Update prototypes.
	* src/haikufont.c (haikufont_list_family): New function.
	(haikufont_driver): Add `haikufont_list_family'.

2022-02-08  Po Lu  <luangruo@yahoo.com>

	Improve selection of fonts available from `mouse-set-font'

	People get confused on a build without font dialogs (such as a
	Lucid build) if `menu-set-font' and `mouse-set-font' don't
	present them a list of the fonts actually available on their
	system.

	* lisp/mouse.el (mouse-generate-font-name-for-menu)
	(mouse-generate-font-menu): New functions.
	(mouse-select-font): Allow the user to select from all fonts
	available on the system.
	(mouse-set-font): Use `mouse-select-font' to display font menu.

2022-02-08  Po Lu  <luangruo@yahoo.com>

	Make sure the cursor can't move on top of a tooltip on Haiku

	* src/haikuterm.c (haiku_read_socket): Work around leave
	notification events not being sent on tooltip frames.

2022-02-08  Po Lu  <luangruo@yahoo.com>

	Fix creation of tooltip frames with a stippled background

	* src/xfns.c (x_create_tip_frame): Init faces after creating the
	drawable, since that's needed for loading stipple files.

2022-02-08  Tassilo Horn  <tsdh@gnu.org>

	Allow showing show-paren context in an overlay

	* lisp/paren.el (show-paren-context-when-offscreen): Add new
	possibility `overlay'.
	(show-paren--context-overlay): New defvar.
	(show-paren--delete-context-overlay): New function.
	(show-paren--show-context-in-overlay): New function.
	(show-paren-function): Handle the new `overlay' case.
	* lisp/emacs-lisp/eldoc.el (eldoc-display-message-no-interference-p):
	There's no interference if `show-paren-context-when-offscreen' is
	overlay or child-frame.

2022-02-08  Juri Linkov  <juri@linkov.net>

	* lisp/replace.el (perform-replace): Allow using isearch in recursive-edit.

	Let-bind isearch-filter-predicate to the default value before calling
	recursive-edit to allow using isearch in a recursive edit (bug#53758).

2022-02-08  Robert Pluim  <rpluim@gmail.com>

	Improve make-frame-on-display initial values

	* doc/emacs/frames.texi (Multiple Displays): Add index entry for
	'display server'.
	* lisp/frame.el (make-frame-on-display): Specify sensible initial
	values when reading display name.
	* lisp/menu-bar.el (menu-bar-file-menu): Use 'display server' rather
	than 'display' to avoid monitor<->display confusion.

2022-02-08  Robert Pluim  <rpluim@gmail.com>

	Improve thing-at-point-url-at-point docstring

	* lisp/thingatpt.el (thing-at-point-url-at-point): Correct description
	of BOUNDS argument.

2022-02-08  Michael Albinus  <michael.albinus@gmx.de>

	Respect customization nature of `connection-local-*' user options

	* lisp/files-x.el (connection-local-set-profiles)
	(connection-local-set-profile-variables): Set user options via
	`customize-set-variable'.

2022-02-08  Michael Albinus  <michael.albinus@gmx.de>

	Fix processes on remote default-directory with special characters

	* lisp/net/tramp.el (tramp-handle-make-process): Quote `localname'.

	* test/lisp/net/tramp-tests.el (tramp--test-check-files):
	Test also remote `default-directory' for processes.  (Bug#53846)

2022-02-08  Po Lu  <luangruo@yahoo.com>

	* src/pgtkterm.c (map_event): Fix last change.

2022-02-08  Po Lu  <luangruo@yahoo.com>

	Document some problems found during testing on various X servers

	* etc/PROBLEMS (General X problems): Document some problems
	found during testing on various X servers.

2022-02-08  Po Lu  <luangruo@yahoo.com>

	Improve robustness of override-redirect on Haiku

	* src/haiku_support.cc (class EmacsWindow): New field
	`override_redirect_p'.
	(BWindow_change_decoration, BWindow_set_override_redirect): Set
	and restore from the saved pre-override redirect state fields if
	appropriate.

2022-02-08  Po Lu  <luangruo@yahoo.com>

	Fix frame offset reporting on PGTK

	* src/pgtkterm.c (configure_event): Handle changes in window
	position.  (bug#52697)

2022-02-08  Po Lu  <luangruo@yahoo.com>

	Implement frame resize synchronization on GTK 3

	* src/xterm.c (XTframe_up_to_date):
	(handle_one_xevent): Use the GTK frame clock to implement frame
	resize synchronization.

	* src/xterm.h (struct x_output): New variable
	`xg_sync_end_pending_p'.

2022-02-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Extend find-lisp-object-file-name

	* lisp/help-fns.el (find-lisp-object-file-name): Add optional
	parameter to always look in the DOC file (bug#17685).

2022-02-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Document pcase-lambda

	* doc/lispref/control.texi (Destructuring with pcase Patterns):
	Document pcase-lambda (bug#20268).

2022-02-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some standard-output/help-buffer confusion in describe-function-1

	* lisp/help-fns.el (describe-function-1): We're outputting to
	standard-output, so deconfuse slightly.

2022-02-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix describe-function-1 test failure from previous change

	* lisp/help-fns.el (describe-function-1): Fix test failure from
	previous patch.

2022-02-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Minor fix to how describe-function-1 displays symbols with spaces

	* lisp/help-fns.el (describe-function-1): Ensure that symbols like
	`bar\ ' aren't rendered incorrectly (bug#23130).

2022-02-08  martin rudalics  <rudalics@gmx.at>

	Improve handling of frame-inherited-parameters

	* lisp/frame.el (make-frame): Improve handling of
	frame-inherited-parameters (bug#24651).

2022-02-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Make exit from text-scale-adjust less confusing

	* lisp/face-remap.el (text-scale-adjust): Clear the prompt after
	exiting (bug#25978).

2022-02-08  Po Lu  <luangruo@yahoo.com>

	Clear mouse highlight when mouse moves outside edit widget

	* src/xterm.c (handle_one_xevent): Clear mouse highlight when
	leaving the edit widget.  Otherwise, it stays around on the
	toolbar after the mouse is moved onto the menu bar.

2022-02-08  Andrew G Cohen  <cohen@andy.bu.edu>

	nnselect.el: Speed up group info updating

	* lisp/gnus/nnselect.el (nnselect-request-update-info): Use a hash and
	other tricks to speed things up.
	(nnselect-request-group-scan): Make sure the artlist is uncompressed.

2022-02-08  Po Lu  <luangruo@yahoo.com>

	Try harder to preserve cursor when mapping tooltip frames on Haiku

	* src/haikufns.c (haiku_set_cursor_color): Fix argument to
	`error'.
	(Fx_show_tip): Define cursors on both views.

2022-02-07  Po Lu  <luangruo@yahoo.com>

	Fix menu bar not opening after popup menu is dismissed on Lucid

	* lwlib/xlwmenu.c (XlwMenuDestroy): Only set submenu_destroyed
	if menu bar widget.

2022-02-07  Po Lu  <luangruo@yahoo.com>

	* src/pgtkfns.c (Fx_create_frame): Realize frame widgets. (bug#53861)

2022-02-07  Po Lu  <luangruo@yahoo.com>

	Don't allow tooltips to be transient for override redirect windows

	* src/xfns.c (Fx_show_tip): Delete WM_TRANSIENT_FOR if the child
	window is override-redirect.

	* src/xterm.c (x_term_init): Intern new atom.
	* src/xterm.h (struct x_display_info): New atom
	`Xatom_wm_transient_for'.

2022-02-07  Po Lu  <luangruo@yahoo.com>

	Make sure `update_wm_hints' finds the WMShell

	* src/widget.c (update_wm_hints): Accept frame separately from
	the shell widget.
	(widget_update_wm_size_hints): Require WM shell to be explicitly
	specified.
	(EmacsFrameRealize):
	(EmacsFrameResize): Update callers to `update_wm_hints'.
	* src/widget.h: Update prototypes.
	* src/xterm.c (x_wm_set_size_hint): Pass frame widget
	(ApplicationShell) and the edit widget (EmacsFrame) to
	`widget_update_wm_size_hints'.  (bug#53839)

2022-02-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	minibuffer.el: Try and fix bug#53053

	* lisp/minibuffer.el (completion--sifn-requote): Special case for when
	`upos` is at the very end.

2022-02-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/xref.el (xref--marker-ring): Fix typo

2022-02-07  Michael Albinus  <michael.albinus@gmx.de>

	Make connection-local variables user options

	* lisp/files-x.el (connection-local-profile-alist)
	(connection-local-criteria-alist): Make them user options.

	* doc/lispref/variables.texi (Connection Local Variables):
	* etc/NEWS: Document this.

2022-02-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp-mnt, checkdoc: Reduce run-time dependencies

	* lisp/emacs-lisp/lisp-mnt.el: Don't require `mail-parse` at top-level.
	(lm-crack-address): Require it here instead.

	* lisp/emacs-lisp/checkdoc.el (dired): Don't load at run-time.
	(checkdoc-dired): Add corresponding `declare-function`.

2022-02-07  Mattias Engdegård  <mattiase@acm.org>

	Pin lazily read bytecode (bug#53809)

	* src/eval.c (Ffetch_bytecode): Bytecode strings read lazily weren't
	pinned as they must be.  Do so.

	Bug reported by Gregor Zattler.

2022-02-07  Po Lu  <luangruo@yahoo.com>

	Improve contrast of `custom-button' in the leuven-dark theme

	* etc/themes/leuven-dark-theme.el (custom-button): Improve
	contrast of custom-button foreground.

2022-02-07  Po Lu  <luangruo@yahoo.com>

	* lwlib/xlwmenu.c (pop_up_menu): Fix cast.

2022-02-07  Po Lu  <luangruo@yahoo.com>

	Correct off-by-one errors with frame resizing on Haiku

	* src/haiku_support.cc (UnZoom):
	(MakeFullscreen):
	(BWindow_resize): Fix off-by-one errors in calls to
	`BWindow::ResizeTo'.

2022-02-07  Po Lu  <luangruo@yahoo.com>

	Make menus work better on X toolkit builds with XInput 2

	* src/xmenu.c (popup_get_selection): Translate some important
	XI2 events into events the toolkit can understand.
	(x_activate_menubar):
	(create_and_show_popup_menu): Clear grab regardless of reported
	status on Motif.
	* src/xterm.c (xi_device_from_id): Export function.
	* src/xterm.h: Update prototypes.

2022-02-07  Michael Albinus  <michael.albinus@gmx.de>

	Sanitize ls switches in ange-ftp (bug#53360)

	* lisp/net/ange-ftp.el (ls-lisp--sanitize-switches): Declare.
	(ange-ftp-ls): Sanitize LSARGS.  (Bug#53360)

2022-02-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve indentation of some shell script forms

	* lisp/progmodes/sh-script.el (sh-smie--default-backward-token):
	Don't skip past things like "true;then" (bug#53817).

2022-02-07  Po Lu  <luangruo@yahoo.com>

	Really fix extended frame synchronization

	* src/xterm.c (XTframe_up_to_date): Make sure the extended
	counter ends up even.

2022-02-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix the Scroll key binding on Windows

	* lisp/bindings.el (global-map): Fix the binding on Windows
	(bug#38007).

	* lisp/scroll-lock.el (scroll-lock-mode): The event is `scroll' on
	Windows, not `Scroll_Lock'.

2022-02-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the eintr.html target match what's on the web

	* doc/lispintro/Makefile.in (HTML_TARGETS, eintr.html): Make the
	name match the URL at
	https://www.gnu.org/software/emacs/manual/eintr.html (bug#38817).

2022-02-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Give a better error in locate-default-make-command-line

	* lisp/locate.el (locate-default-make-command-line): Error out
	more nicely.

2022-02-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the ediff-diff-options documentation

	* lisp/vc/ediff-diff.el (ediff-diff-options):
	* doc/misc/ediff.texi (Patch and Diff Programs): Note that setting
	this variable directly is probably the wrong thing to do (bug#6512).

2022-02-06  Po Lu  <luangruo@yahoo.com>

	Respect `x-cursor-fore-pixel' on Haiku

	* src/haikufns.c (haiku_set_cursor_color): Respect
	`x-cursor-fore-pixel'.
	(syms_of_haikufns): Declare variable `x-cursor-fore-pixel'.

2022-02-06  Po Lu  <luangruo@yahoo.com>

	Clean up more code from PGTK port

	* lisp/term/pgtk-win.el (pgtk-disown-selection-internal)
	(pgtk-get-selection-internal): Fix declarations for new calling
	conventions.
	* src/gtkutil.c (xg_frame_set_char_size, x_wm_set_size_hint):
	Clean up meaningless variables on PGTK.
	* src/pgtkfns.c (Fx_create_frame, syms_of_pgtkfns): Clean up
	meaningless variables and fix copied doc strings to use "skip".
	* src/pgtkim.c (im_context_commit_cb)
	(im_context_retrieve_surrounding_cb)
	(im_context_delete_surrounding_cb, make_color_string)
	(im_context_preedit_changed_cb, im_context_preedit_end_cb)
	(im_context_preedit_start_cb): Fix coding style.
	* src/pgtkselect.c (pgtk_selection_usable)
	(Fpgtk_disown_selection_internal, Fpgtk_get_selection_internal):
	Remove unused arguments.
	(syms_of_pgtkselect): Fix doc strings and old style variable
	declarations.
	* src/pgtkterm.c (x_set_offset, x_set_parent_frame)
	(syms_of_pgtkterm): Clean up doc strings and remove meaningless
	variables.

2022-02-06  Po Lu  <luangruo@yahoo.com>

	* doc/emacs/xresources.texi (Table of Resources): Improve wording.

2022-02-06  Po Lu  <luangruo@yahoo.com>

	Correct implementation of extended frame synchronization

	* src/xterm.c (handle_one_xevent): Use value provided in the
	extended synchronization message as the current counter value.

2022-02-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make dired-directory and dired-subdir-alist buffer-local

	* lisp/dired.el (dired-directory):
	(dired-subdir-alist): Make buffer-local (bug#7118)
	(dired-readin):
	(dired-mode):
	* lisp/dired-x.el (dired-virtual): Adjust usage.
	* lisp/locate.el (locate-mode):
	* lisp/find-lisp.el (find-lisp-find-dired-internal):
	* lisp/find-dired.el (find-dired): Adjust usage.

2022-02-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix eval-tests/backtrace-in-batch-mode test

	* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Fix the
	zero-arg case.

2022-02-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make async connect_network_socket failures use Qfailed

	* src/process.c (connect_network_socket): Mark the process as
	Qfailed instead of using the error symbol (since this is what's
	defined for the status) (bug#53814).

2022-02-06  Bob Rogers  <rogers-emacs@rgrjr.homedns.org>

	Remove outdated comments from ietf-drums.el

	* lisp/mail/ietf-drums.el: Remove outdated comments (bug#53811).

2022-02-06  Ioannis Kappas  <ioannis.kappas@gmail.com>  (tiny change)

	ansi-color: don't get stuck on \e

	* lisp/ansi-color.el (ansi-color--control-seq-fragment-regexp): New
	constant.

	* test/lisp/ansi-color-tests.el
	(ansi-color-incomplete-sequences-test): Test for \e that doesn't
	start a valid ANSI escape sequence (bug#53808).

	Code amended (and test code written) by <miha@kamnitnik.top>.  Code by
	Ioannis Kappas is small enough to be

2022-02-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	(debug-early-backtrace): Tweak the non-evald output

	* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Make the
	non-evald output more like what is used in `debug.el`.

2022-02-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	(debug-early-backtrace): Tweak the non-evald output

	* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Make the
	non-evald output more like what is used in `debug.el`.

2022-02-06  Juri Linkov  <juri@linkov.net>

	Use mode-line-window-selected-p in tab-line-tab-name-format-default.

	* lisp/tab-line.el (tab-line-tab-name-format-default):
	Use the recently added function 'mode-line-window-selected-p'
	for the face 'tab-line-tab-current' (bug#53629).

2022-02-06  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-new-tab-choice): Add const 'window'.  Update doc.

	(tab-bar-new-tab-to): Remove window parameters 'window-side' and
	'window-atom' from the old window.  Move split-window/delete-window
	inside ignore-window-parameters (bug#53662).

2022-02-06  Michael Albinus  <michael.albinus@gmx.de>

	Adapt em-tramp-tests.el

	* test/lisp/eshell/em-tramp-tests.el (tramp): Require.
	(em-tramp-test/su-default, em-tramp-test/su-user)
	(em-tramp-test/su-login, em-tramp-test/sudo-basic)
	(em-tramp-test/sudo-user): Adapt tests.

2022-02-06  Mattias Engdegård  <mattiase@acm.org>

	Avoid deprecation warning in NS-specific code

	* src/macfont.m (mac_font_create_preferred_family_for_attributes):
	CTGetCoreTextVersion is obsolete and its use elicits a warning
	in macOS 11.6; use NSProcessInfo instead.

2022-02-06  Wang Chunye  <chunywan@xilinx.com>  (tiny change)

	optimization: constant folding for read-kbd-macro

	to boost startup performance, it is better to avoid invoking
	`read-kbd-macro` at run time which requires 'cl-lib.

	it takes ~20ms to load cl-lib

2022-02-06  Po Lu  <luangruo@yahoo.com>

	Ensure bar cursors are always visible on Haiku

	* src/haikuterm.c (haiku_draw_window_cursor): Adjust bar cursor
	colors like X.

2022-02-06  Po Lu  <luangruo@yahoo.com>

	Fix the GTK 2 build

	* src/gtkutil.c (xg_filter_key): Remove call to GTK3-only
	function without GTK 3.
	* src/xfns.c (select_visual): Avoid 32-bit visuals on GTK 2.

2022-02-06  Po Lu  <luangruo@yahoo.com>

	Disable extended frame synchronization by default

	* doc/emacs/xresources.texi (Table of Resources): Document
	new possible value of `synchronizeResize'.
	* src/xfns.c (Fx_create_frame): Set synchronization protocol
	according to `synchronizeResize'.

2022-02-06  Po Lu  <luangruo@yahoo.com>

	Add support for EWMH extended frame synchronization

	* src/xfns.c (Fx_create_frame): Populate both counter variables.
	* src/xterm.c (XTframe_up_to_date):
	(handle_one_xevent): Support extended synchronization.
	(x_free_frame_resources): Destroy extended counter.
	(x_term_init): Intern new atom _NET_WM_FRAME_DRAWN.

	* src/xterm.h (struct x_display_info): New atom
	`_NET_WM_FRAME_DRAWN'.
	(struct x_output): New fields for extended counter tracking.
	(FRAME_X_EXTENDED_COUNTER): New macro.

2022-02-06  Eli Zaretskii  <eliz@gnu.org>

	Fix infloop in 'redisplay_window' when buffer is narrowed

	* src/xdisp.c (redisplay_window): Ensure window-start point is in
	the accessible portion of the buffer when passing it to
	'window_start_acceptable_p'.  (Bug#14582)

2022-02-06  Tassilo Horn  <tsdh@gnu.org>

	Display show-paren-context-when-offscreen in child frame

	* etc/NEWS: Extend section about the new
	`show-paren-context-when-offscreen' custom option.
	* lisp/paren.el (show-paren-context-when-offscreen): Allow special
	value `child-frame'.
	(show-paren-function): Handle `child-frame' value of
	`show-paren-context-when-offscreen'.
	(show-paren--context-child-frame): New defvar.
	(show-paren--context-child-frame-redirect-focus): New function.
	(show-paren--context-child-frame-buffer): New function.
	(show-paren--context-child-frame-parameters): New defvar.
	(show-paren--delete-context-child-frame): New function.
	(show-paren--show-context-in-child-frame): New function.

2022-02-06  Michael Albinus  <michael.albinus@gmx.de>

	Make usage of su and sudo consistent in eshell (bug#53783)

	* lisp/eshell/em-tramp.el (eshell/su, eshell/sudo):
	Use `tramp-default-host' instead of "localhost".

2022-02-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	821c240075 Fix ietf-drums-get-comment doc string
	638247baa4 Fix typo in display.texi

2022-02-06  Po Lu  <luangruo@yahoo.com>

	* lwlib/xlwmenu.c (pop_up_menu): Work around motion problems on XI2.

2022-02-05  Bob Rogers  <rogers@rgrjr.com>

	Add ietf-drums tests, fix parse-address decoding

	* test/lisp/mail/ietf-drums-tests.el (ietf-drums-tests):  Test most of
	lisp/mail/ietf-drums.el functionality.
	* lisp/mail/ietf-drums.el: (ietf-drums-parse-address): Bug fix:
	Require rfc2047 when needed (bug#53811).

2022-02-05  Po Lu  <luangruo@yahoo.com>

	Allow disabling frame resize synchronization

	* doc/emacs/xresources.texi (Table of Resources): Document new
	parameter `synchronizeResize'.
	* etc/NEWS: Announce frame resize synchronization.
	* src/xterm.c (x_term_init): Don't enable XSync if the
	X resource `synchronizeResize' is off or false.

2022-02-05  Po Lu  <luangruo@yahoo.com>

	Clean up lots of #ifdef'd out code in PGTK files

	Most of them are either relics from X or from the NS code
	pgtkfns.c was copied from whole.

	* src/pgtkfns.c (x_icon):
	(pgtk_set_scroll_bar_foreground):
	(pgtk_set_scroll_bar_background):
	(Fx_create_frame):
	(pgtk_window_is_ancestor):
	(x_create_tip_frame):
	* src/pgtkselect.c (syms_of_pgtkselect):
	* src/pgtkterm.c (pgtk_iconify_frame):
	(x_set_frame_alpha):
	(button_event): Remove defined out code that cannot make sense.

	* src/pgtkmenu.c (show_help_event): Remove ifdef'd out code and
	reword comment.

2022-02-05  Po Lu  <luangruo@yahoo.com>

	Handle window state changes on PGTK

	* src/pgtkterm.c (window_state_event): Set fullscreen, sticky,
	and iconification status according to the new window state.
	(bug#53793)

2022-02-05  Po Lu  <luangruo@yahoo.com>

	Minor changes to xsync support

	* src/xfns.c (append_wm_protocols): Don't append
	_NET_WM_SYNC_REQUEST unless the display supports our version of
	XSync.

	* src/xterm.c (handle_one_xevent): Don't handle
	_NET_WM_SYNC_REQUEST unless the display supports that.
	(x_free_frame_resources): Test basic counter against None.

2022-02-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the elp-instrument-package doc string

	* lisp/emacs-lisp/elp.el (elp-instrument-package): Note the effect
	of loading further files (bug#13252).

2022-02-05  Mauro Aranda  <maurooaranda@gmail.com>

	Fix reverting the default face to standard/themed state in GUIs

	* lisp/cus-edit.el (custom-face-set, custom-face-mark-to-save)
	(custom-face-save): Record the default (standard or themed) attributes
	of the default face in a symbol property.
	(custom-face-reset-saved, custom-face-mark-to-reset-standard): When
	reverting the default face to the standard or themed state, use the
	default attributes we recorded, instead of relying in the defface spec
	of the default face, since that doesn't give enough information to
	reset all attributes, like foreground, family, etc (bug#14635).

2022-02-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option 'find-library-include-other-files'

	* lisp/emacs-lisp/find-func.el (read-library-name--find-files):
	New function (bug#15735).
	(read-library-name): Use it.
	(find-library-include-other-files): New user option.

2022-02-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak how eshell/cd works when cd-ing to ".." from "/"

	* lisp/eshell/em-dirs.el (eshell/cd): Make "cd .." from "/" less
	confusing (bug#16861).

2022-02-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a :distant-foreground to the lazy-highlight face

	* lisp/isearch.el (lazy-highlight): Add a :distant-foreground
	color so that the text is always legible (bug#16969).

2022-02-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function mode-line-window-selected-p

	* doc/lispref/modes.texi (Mode Line Basics): Mention it (bug#53629).
	* lisp/bindings.el (mode-line-window-selected-p): New function
	from martin rudalics <rudalics@gmx.at>.

2022-02-05  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp to changed unload behavior (bug#53632)

	* test/lisp/net/tramp-tests.el (tramp-test47-unload): Check also
	for autoloaded macros.  Respect `tramp-autoload' function property.

2022-02-05  Po Lu  <luangruo@yahoo.com>

	Add support for basic syncing with the window manager on resize

	This is handled by GTK 3, so the code is disabled on that
	specific build.  On other builds, this eliminates any unexposed
	part of a frame from showing up after a resize when
	`frame-resize-pixelwise' is t.

	* configure.ac: Check for the X Synchronization Extension if
	present.
	* src/Makefile.in (EMACS_CFLAGS):
	(LIBES): Add XSYNC_LIBS and XSYNC_CFLAGS.

	* src/xfns.c (append_wm_protocols): Declare
	`_NET_WM_SYNC_REQUEST' support if appropriate.
	(x_window): Adjust location of call to `append_wm_protocols' on
	Xt version to prevent it from being overwritten.
	(Fx_create_frame): Create basic counter.
	* src/xterm.c (XTframe_up_to_date): Set counter value to the one
	asked for by the window manager.
	(handle_one_xevent): Handle _NET_WM_SYNC_REQUEST.
	(x_free_frame_resources): Free frame counter if present.
	(x_term_init): Test for XSync and set fields accordingly.
	* src/xterm.h (struct x_display_info): New fields for XSync
	support and new atoms.
	(struct x_output): New fields for counter status.
	(FRAME_X_BASIC_COUNTER): New macro.

2022-02-05  Po Lu  <luangruo@yahoo.com>

	* lisp/pixel-scroll.el: Update commentary.

2022-02-05  Eli Zaretskii  <eliz@gnu.org>

	Fix 'current-column' in the presence of display strings

	* src/indent.c (check_display_width): Support calculation of width
	of 'display' properties whose values are strings.  This fixes the
	value returned by 'current-column' when display strings are
	present between BOL and point.  (Bug#53795)

2022-02-05  Alan Mackenzie  <acm@muc.de>

	* lisp/emacs-lisp/debug-early.el: Improve the documentation

2022-02-05  Michael Albinus  <michael.albinus@gmx.de>

	Remove superfluous `font-lock-add-keywords' calls in Tramp

	* lisp/net/tramp.el (with-parsed-tramp-file-name)
	(with-tramp-progress-reporter, with-tramp-file-property)
	(with-tramp-connection-property, with-tramp-locked-connection):
	* lisp/net/tramp-gvfs.el (with-tramp-dbus-call-method)
	(with-tramp-dbus-get-all-properties): Do not call
	`font-lock-add-keywords' for macros, it isn't needed anymore.

2022-02-05  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp to changed unload behavior (bug#53632)

	* lisp/net/tramp.el (tramp-autoload-file-name-handler)
	(tramp-register-autoload-file-name-handlers)
	(tramp-unload-file-name-handlers, tramp-unload-tramp):
	* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp)
	(tramp-archive-autoload-file-name-handler)
	(tramp-register-archive-file-name-handler):
	Add `tramp-autoload' function property.

2022-02-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix yank-media utf-16 detection

	* lisp/yank-media.el (yank-media--utf-16-p): Factor out into its
	own function for easier testing and fix the code.

2022-02-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the selected-window doc string

	* src/window.c (Fselected_window): Add some pointers to other
	functions in this area.

2022-02-05  Jim Porter  <jporterbugs@gmail.com>

	Ensure that the CAR of 'eshell-last-async-procs' always points to a process

	Previously, if a non-process was piped to a process, this could end up
	being nil, which isn't correct.  'eshell-last-async-procs' should just
	ignore non-process commands in a pipeline.

	* lisp/eshell/esh-cmd.el (eshell-do-pipelines): Set 'headproc'
	correctly.

	* test/lisp/eshell/eshell-tests.el (eshell-test/pipe-headproc): New test.

2022-02-05  Brendan O'Dea  <bod@debian.org>  (tiny change)

	Remove kerning escapes in woman mode

	* lisp/woman.el (woman-decode-region): Remove kerning escapes
	(bug#53770).

2022-02-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the Archive file names tramp documentation

	* doc/misc/tramp.texi (Archive file names): Explicitly say how to
	open an archive with Tramp (bug#25076).

2022-02-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix yank-media-types--format decoding

	* lisp/yank-media.el (yank-media-types--format): Check that we
	really have some nuls.

2022-02-05  Po Lu  <luangruo@yahoo.com>

	Finish up cursor color merging on Haiku

	* src/haikuterm.c (haiku_draw_text_decoration):
	(haiku_draw_plain_background):
	(haiku_draw_stretch_glyph_string):
	(haiku_merge_cursor_foreground): Use merged cursor colors.

2022-02-04  Po Lu  <luangruo@yahoo.com>

	Fix last change to ftcrfont.c

	* src/ftcrfont.c (ftcrfont_draw): Remove relic `face' variable
	and use s->face instead.

2022-02-04  Po Lu  <luangruo@yahoo.com>

	Implement face cursor color merging on Haiku

	* src/ftcrfont.c (ftcrfont_draw):
	* src/haikufont.c (haikufont_draw): Use
	`haiku_merge_cursor_foreground' to calculate cursor HL colors.
	* src/haikuterm.c (haiku_merge_cursor_foreground): New function.
	* src/haikuterm.h: Update prototypes.

2022-02-04  Po Lu  <luangruo@yahoo.com>

	Set WM_TRANSIENT_FOR on tooltip frames

	Otherwise the decorations get all messed up on GNOME and some
	other composited desktops.

	* src/xfns.c (Fx_show_tip): Set WM_TRANSIENT_FOR to the window
	underneath the tooltip.

2022-02-04  Po Lu  <luangruo@yahoo.com>

	Implement _NET_WM_PING protocol

	* src/xfns.c (append_wm_protocols): New function.
	(x_window): Call `append_wm_protocols' after window creation.
	* src/xterm.c (handle_one_xevent): Handle _NET_WM_PING client
	messages.
	(x_term_init): Intern _NET_WM_PING atom.
	* src/xterm.h (struct x_display_info): New field
	`Xatom_net_wm_ping'.

2022-02-04  Vladimir Panteleev  <git@cy.md>

	Update the MULTIPLE property with conversion outcomes

	Per the ICCCM spec:

	> If the owner fails to convert the target named by an atom in the
	> MULTIPLE property, it should replace that atom in the property with
	> None.

	* src/xselect.c (x_handle_selection_request): Do it.

2022-02-04  Vladimir Panteleev  <git@cy.md>

	Do not delete the MULTIPLE property after reading it

	Per the ICCCM spec:

	> The requestor should delete [...] the property specified in the
	> MULTIPLE request when it has copied all the data.

	We are not the requestor, so we should not be deleting this property
	(which is what x_get_window_property_as_lisp_data does).  The property
	needs to remain available as the requestor will generally want to read
	it back to see which conversions succeeded or not.

	* src/xselect.c (x_get_window_property_as_lisp_data): Add flag which
	skips deleting the read property, or handling INCR (which does not
	make sense for MULTIPLE).
	(x_handle_selection_request): Enable the flag.

2022-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	(with-demoted-errors): Warn on missing `format` arg

	The `format` arg has been mandatory for a while, but the backward
	compatibility code that handled the case of a missing `format` arg
	made it hard to notice when using the old calling convention.

	* lisp/subr.el (with-demoted-errors): Warn on missing `format` arg.

	* lisp/emacs-lisp/smie.el (smie-indent--separator-outdent): Don't abuse
	`with-demoted-errors`.
	(smie-indent-line, smie-auto-fill):
	* test/lisp/emacs-lisp/ert-tests.el (ert-test-with-demoted-errors):
	* lisp/vc/vc-hooks.el (vc-refresh-state):
	* lisp/vc/vc-annotate.el (vc-annotate-background-mode):
	* lisp/vc/diff-mode.el (diff-syntax-fontify-hunk):
	* lisp/textmodes/reftex-toc.el (reftex-re-enlarge):
	* lisp/progmodes/sh-script.el (sh-smie-sh-rules):
	* lisp/progmodes/octave.el (inferior-octave-startup):
	* lisp/pcmpl-gnu.el (pcmpl-gnu-make-all-targets):
	* lisp/org/org-refile.el (org-refile):
	* lisp/org/org-capture.el (org-capture-store-last-position):
	* lisp/nxml/nxml-mode.el (nxml-mode):
	* lisp/notifications.el (notifications-notify):
	* lisp/gnus/mm-view.el (mm-display-inline-fontify):
	* lisp/finder.el (finder-unload-function):
	* lisp/files.el (safe-local-variable-p, backup-buffer-copy
	* lisp/autorevert.el (auto-revert-notify-handler):
	Pass `format` arg to `with-demoted-errors`.

2022-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	python.el: Silence left over warning in last commit

	* lisp/progmodes/python.el
	(python-shell-calculate-process-environment): Declare
	tramp-remote-process-environment before using it.

2022-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	python.el: Try and better split the Tramp code

	Massage the Python-Tramp code so that the Tramp part and the Python
	part are a bit less intertwined.  It's still not quite right, but it's
	a bit closer to the point where the Tramp part can be moved to `tramp.el`.

	* lisp/progmodes/python.el: Don't require `tramp-sh`.
	Do require `subr-x` OTOH.  Remove redundant `:group`s.
	(python-shell--calculate-process-environment): New function, that only
	return the entries to be added.
	(python-shell-calculate-process-environment): Rewrite and declare obsolete.
	(python-shell-tramp-refresh-remote-path)
	(python-shell-tramp-refresh-process-environment): Silence
	compiler warnings.
	(python-shell-with-environment): Move the bulk of its code to
	a new function `python-shell--with-environment` for easier debugging
	and to avoid code duplication.
	(python-shell--with-environment): New function.  Split the Tramp case
	into its own function.
	(python-shell--tramp-with-environment): New function.
	(python-eldoc-function-timeout-permanent): Fix doc's first line.

	* test/lisp/progmodes/python-tests.el: Adjust accordingly.
	(python-shell-calculate-process-environment-1)
	(python-shell-calculate-process-environment-2)
	(python-shell-calculate-process-environment-3)
	(python-shell-calculate-process-environment-4)
	(python-shell-calculate-process-environment-5)
	(python-shell-calculate-process-environment-6)
	(python-shell-calculate-process-environment-7)
	(python-shell-calculate-process-environment-8):
	Use `python-shell--calculate-process-environment`.
	(python--tests-process-env-canonical, python--tests-process-env-eql):
	New functions.
	(python-shell-with-environment-2, python-shell-with-environment-3):
	Use them.

2022-02-04  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp tests backward compatibility

	* test/lisp/net/tramp-tests.el (tramp-test39-detect-external-change):
	Improve backward compatibility.

2022-02-04  Andrea Corallo  <akrl@sdf.org>

	* Have `null' and `not' explicit in LIMPLE so we inline them

	* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Generate explicit
	`eq' call in LIMPLE for LAP opcode 'not'.

2022-02-04  Eli Zaretskii  <eliz@gnu.org>

	Fix infloop in redisplay_window due to fix of bug#14582

	* src/xdisp.c (window_start_acceptable_p): New function.
	(redisplay_window): Call 'window_start_acceptable_p' to determine
	whether a given window-start point is acceptable, including when
	the window's force_start flag is set -- this fixes infloop in
	redisplay_window in that case.

2022-02-04  Po Lu  <luangruo@yahoo.com>

	Remove misleading "in current buffer" message from auto-raise-mode

	* lisp/frame.el (auto-raise-mode): Declare as global to prevent
	a misleading message from being displayed.  It's actually
	frame-local, but declaring it global doesn't hurt since
	`frame-parameter' is a gv.

2022-02-04  Stefan Kangas  <stefankangas@gmail.com>

	Silence byte-compiler in two tests

	* test/lisp/electric-tests.el (electric-pair-define-test-form):
	* test/src/buffer-tests.el (buffer-tests--make-test-name): Silence
	byte-compiler by defining defuns also at run time.

2022-02-04  Po Lu  <luangruo@yahoo.com>

	Implement auto-raise on Haiku

	* src/haikuterm.c (haiku_read_socket): Implement auto-raising
	of frames that have that parameter set.

2022-02-04  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp-gvfs.el (tramp-gvfs-send-command): Fix problem with locale.

2022-02-04  Po Lu  <luangruo@yahoo.com>

	Fix bit rot in the color allocation code

	* src/xterm.c (x_alloc_nearest_color_1): Reintroduce an older
	version of the code that would try to allocate a "compromise
	delta".

2022-02-04  Po Lu  <luangruo@yahoo.com>

	* src/xwidget.c (xwidget_button): Always let button events through.

	Filtering out emulated events is done in handle_one_xevent, so
	all this accomplishes is to filter out legitimate button events.

2022-02-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	0591aa6cd3 Revert an erroneous change in tramp-cache.el

2022-02-04  Po Lu  <luangruo@yahoo.com>

	Fix toggling `x-gtk-use-native-input'.

	* lisp/term/x-win.el (x-internal-focus-input-context):
	(x-gtk-use-native-input-watcher): Update for changes to
	`x-internal-focus-input-context'.

	* src/xfns.c (Fx_internal_focus_input_context): New parameter
	`focus'.

2022-02-03  Po Lu  <luangruo@yahoo.com>

	Make Emacs build with some other XLib implementations

	* configure.ac (HAVE_XKB): Check for functions that aren't
	always implemented by various XLib implementations.

	* src/xfns.c (select_visual): Handle NULL values of vinfo.
	(XkbRefreshKeyboardMapping):
	(XkbFreeNames):
	(XDisplayCells):
	(XDestroySubwindows): Define replacement functions where they
	aren't available.

	* src/xterm.c (x_find_modifier_meanings): Handle NULL values of
	various fields.

2022-02-03  Po Lu  <luangruo@yahoo.com>

	* src/xfns.c (Fx_internal_focus_input_context): Fix typo.

2022-02-03  Po Lu  <luangruo@yahoo.com>

	Make `x-gtk-use-native-input' take effect immediately

	* lisp/term/x-win.el (x-internal-focus-input-context): New
	declaration.
	(x-gtk-use-native-input-watcher): New variable watcher.
	* src/xfns.c (Fx_internal_focus_input_context): New function.
	(syms_of_xfns): Define new subr.

2022-02-03  Po Lu  <luangruo@yahoo.com>

	Try to fix input method flicker on GTK builds

	* src/xterm.c (x_focus_changed): Only focus GTK context if
	native input is on.  (bug#53698)

2022-02-03  Andrew G Cohen  <cohen@andy.bu.edu>

	Improve compression of article lists in gnus/nnselect

	* lisp/gnus/nnselect.el (nnselect-compress-artlist): Allow compressed list.
	nnselect-uncompress-artlist): Properly loop over rsv values.

2022-02-03  Po Lu  <luangruo@yahoo.com>

	Improve image depth handling

	Emacs defaults to a 32-bit TrueColor visual, but if that happens
	on a display which defaults to 16-bit TrueColor, yet happens to
	have 32-bit color, and doesn't have the X Render Extension, an
	error will occur in x_composite_image as libXpm will load
	pixmaps of depth 16 instead of depth 32.

	* src/image.c (x_create_x_image_and_pixmap): Explicitly specify
	display depth.
	(x_create_xrender_picture):
	(xpm_load):
	(gs_load): Use dpyinfo->n_planes instead of
	DefaultDepthOfScreen.

2022-02-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the bookmark-default-handler doc string

	* lisp/bookmark.el (bookmark-default-handler): Document the
	`buffer' property (bug#20845).

2022-02-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove tarball instructions from gnus-faq.texi

2022-02-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make sort-numeric-fields resilient towards blank lines

	* lisp/sort.el (sort-numeric-fields): Don't signal an error on
	blank lines (bug#31800).

2022-02-03  Jim Porter  <jporterbugs@gmail.com>

	Use 'require' to load eshell-tests-helpers

	* test/lisp/eshell/eshell-tests.el
	* test/lisp/eshell/em-extpipe-tests.el: Load eshell-tests-helpers with
	'require'.

	* test/lisp/eshell/eshell-tests-helpers.el (eshell-history-file-name):
	Define this here so individual test files don't have to.

2022-02-03  Jim Porter  <jporterbugs@gmail.com>

	When executing an Eshell pipeline, send input to the first process

	Previously, input was sent to the last process in the pipeline,
	resulting in unexpected behavior when running commands like
	'tr a-z A-Z | rev'.

	* lisp/eshell/esh-util.el (eshell-process-pair-p)
	(eshell-make-process-pair): New functions.

	* lisp/eshell/esh-cmd.el (eshell-last-async-proc): Rename to...
	(eshell-last-async-procs): ... this, and store a pair of processes.
	(eshell-interactive-process): Replace with...
	(eshell-interactive-process-p, eshell-head-process)
	(eshell-tail-process): ... these.
	(eshell-cmd-initialize): Set 'eshell-last-async-procs'.
	(eshell-do-pipelines): Set 'headproc'.
	(eshell-execute-pipeline): Return 'headproc' and 'tailproc'.
	(eshell-resume-eval): Use 'eshell-last-async-procs'.
	(eshell-do-eval): Make sure we work with a pair of processes.

	* lisp/eshell/esh-proc.el (eshell-send-eof-to-process): Move from
	here...
	* lisp/eshell/esh-mode.el (eshell-send-eof-to-process): ... to here,
	and only send EOF to the head process.

	* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments)
	* lisp/eshell/esh-mode.el (eshell-intercept-commands)
	(eshell-watch-for-password-prompt):
	Use 'eshell-interactive-process-p'.

	* lisp/eshell/em-rebind.el (eshell-delchar-or-maybe-eof)
	* lisp/eshell/em-term.el (eshell-term-send-raw-string)
	* lisp/eshell/esh-mode.el (eshell-self-insert-command)
	(eshell-send-input, eshell-send-invisible):
	Use 'eshell-head-process'.

	* lisp/eshell/esh-cmd.el (eshell-as-subcommand):
	Use 'eshell-tail-process'.

	* lisp/eshell/eshell.el (eshell-command):
	* test/lisp/eshell/eshell-tests-helpers.el
	(eshell-wait-for-subprocess):
	Use 'eshell-interactive-process-p' and 'eshell-tail-process'.

	* test/lisp/eshell/eshell-tests.el (eshell-test/pipe-headproc-stdin):
	New test.

2022-02-03  Jim Porter  <jporterbugs@gmail.com>

	Ensure that tailproc is set for the last process in an Eshell pipeline

	In particular, this used to fail for pipelines where the last process
	in the pipeline came from the first element of the pipeline. This
	could happen when a process was piped to an ordinary Lisp function,
	like in '*echo hi | echo bye'.

	* lisp/eshell/esh-cmd.el (eshell-do-pipelines): Set the tailproc even
	for the first process in the pipeline.

	* test/lisp/eshell/eshell-tests.el (eshell-test/pipe-tailproc): New
	test.

2022-02-03  Eli Zaretskii  <eliz@gnu.org>

	Allow ensuring that a window's starting point is never invisible

	* src/xdisp.c (syms_of_xdisp) <make-window-start-visible>: New
	buffer-local variable.
	(redisplay_window): If 'make-window-start-visible' is non-nil,
	don't accept window-start position that is in invisible text or is
	covered by a "replacing" 'display' property.  (Bug#14582)

2022-02-03  Thomas Fitzsimmons  <fitzsim@fitzsim.org>

	soap-client: Add minimum supported Emacs version

	* lisp/net/soap-client.el: Add Emacs 24.1 to Package-Requires.
	Bump version to 3.2.1.

2022-02-03  Michael Albinus  <michael.albinus@gmx.de>

	Implement file modification check in Tramp

	* lisp/net/tramp.el (tramp-handle-lock-file): Check, whether FILE
	is modified.

	* test/lisp/net/tramp-tests.el (tramp-test39-detect-external-change):
	New test.

2022-02-03  Mattias Engdegård  <mattiase@acm.org>

	Don't use `string-replace` in soap-client (bug#53744)

	* lisp/net/soap-client.el (soap-decode-xs-complex-type):
	Cease using `string-replace` since it requires Emacs 28.

2022-02-03  Mattias Engdegård  <mattiase@acm.org>

	Don't use `string-search` in soap-client (bug#53744)

	* lisp/net/soap-client.el (soap-decode-xs-complex-type):
	Since soap-client is a core ELPA package and may be used with
	Emacs versions older than 28, it cannot use `string-search`;
	revert to `string-match`.

2022-02-03  Eli Zaretskii  <eliz@gnu.org>

	Fix "Buffers->Frames" submenu in daemon sessions

	* lisp/menu-bar.el (menu-bar-update-buffers): Detect the initial
	frame by its special terminal's name.  (Bug#53740)

	* src/terminal.c (init_initial_terminal): Add comment about using
	the initial-terminal's name in menu-bar.el.

2022-02-03  Po Lu  <luangruo@yahoo.com>

	* src/haikufont.c (haikufont_draw): Allocate string buffer on stack.

2022-02-03  Po Lu  <luangruo@yahoo.com>

	Stop creating cairo contexts in haiku_begin_cr_clip

	* src/haikufont.c (haikufont_draw):
	* src/ftcrfont.c (ftcrfont_draw): Stop holding the draw lock.
	* src/haiku_support.cc (class EmacsView): New field
	`cairo_context'.
	(DetachCairoSurface): Destroy cairo_context.
	(AttachCairoSurface): Create cairo_context from the surface.
	(EmacsView_cairo_surface): Delete function.
	(EmacsView_cairo_context): New function.
	* src/haiku_support.h: Update prototypes.
	* src/haikuterm.c (haiku_begin_cr_clip):
	(haiku_end_cr_clip): Retrieve the existing cairo context instead
	of creating a new one.
	* src/haikuterm.h (FRAME_CR_CONTEXT): New macro.

2022-02-03  Po Lu  <luangruo@yahoo.com>

	Obtain draw lock outside haiku_start_clip

	* src/haikuterm.c (haiku_start_clip):
	(haiku_end_clip): Stop obtaining the draw lock.
	(haiku_draw_glyph_string): Set draw lock here instead.

2022-02-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	ab2f275422 Improve documentation of 'emacs-version'

2022-02-03  Po Lu  <luangruo@yahoo.com>

	* src/haikuterm.c (haiku_draw_text_decoration): Don't lock for draws.

2022-02-03  Po Lu  <luangruo@yahoo.com>

	Simplify box display code on Haiku

	* src/haikuterm.c (haiku_calculate_relief_colors): Remove
	`rgbout_c' parameter.
	(haiku_draw_relief_rect): Push state if performing additional
	clipping.
	(haiku_draw_string_box): Stop passing clip rects to the relief
	drawing functions.
	(haiku_draw_glyph_string): Fix calls to haiku_draw_string_box
	for new parameters.

2022-02-02  Po Lu  <luangruo@yahoo.com>

	Fix display of text decorations with defaulted foreground on Haiku

	* src/haikuterm.c (haiku_draw_text_decoration): Remove parameter
	`dcol' and use face->foreground instead.  All callers changed.

2022-02-02  Po Lu  <luangruo@yahoo.com>

	Fix background daemon on Haiku

	* src/emacs.c (DAEMON_MUST_EXEC): Define when using the Haiku
	application kit.

2022-02-02  Po Lu  <luangruo@yahoo.com>

	Prevent the initial frame from showing up in the frame menu

	* lisp/menu-bar.el (menu-bar-update-buffers): Ignore initial
	frame when generating frame list.  (bug#53740)

2022-02-02  Stefan Kangas  <stefankangas@gmail.com>

	New theme leuven-dark (Bug#53032)

	* etc/themes/leuven-dark-theme.el: New file, written by
	Fabrice Niessen and Thibault Polge.

2022-02-02  Stefan Kangas  <stefankangas@gmail.com>

	* test/lisp/cedet/semantic/bovine/gcc-tests.el (ert-x): Require.

2022-02-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust test to adjusted code

2022-02-02  Alan Mackenzie  <acm@muc.de>

	New file lisp/emacs-lisp/debug-early.el for backtraces in early bootstrap

	This is also used in batch mode in general.

	* lisp/debug-early.el (debug-early-backtrace, debug-early): New functions.

	* lisp/loadup.el (top level): Load debug-early.el as first file.

	* src/eval.c (signal_or_quit): Remove the condition in the batch mode section
	of not being in dumping or bootstrap, since it is no longer needed.  Test that
	'debug-early's symbol-function is bound.  Ensure there is enough working space
	in specpdl and eval_depth.
	(syms_of_eval): New DEFSYM for Qdebug_early.  Initialize Vdebugger to
	Qdebug_early rather than Qnil.

2022-02-02  Juri Linkov  <juri@linkov.net>

	* lisp/replace.el (query-replace-read-from): Use default for empty input.

	Set 'default' from non-empty 'query-replace-read-from-default'.
	Use the default in non-regexp prompt and return it for empty input.
	https://lists.gnu.org/archive/html/emacs-devel/2022-02/msg00044.html

2022-02-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the describe-key doc string

	* lisp/help.el (describe-key): Say something about prefix keys
	(bug#33320).

2022-02-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Add some indexing for "compiler macro"

	* doc/lispref/functions.texi (Inline Functions): Add a link to
	where compiler macros are defined.
	(Declare Form): Add a concept index.

2022-02-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Mark vt-control and vc100-led obsolete since Emacs 29.1

	Move vt-control and vt100-led to obsolete (bug#37562)

2022-02-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix decoding error in ietf-drums-parse-address

	* lisp/mail/ietf-drums.el (ietf-drums-parse-address): Don't try to
	decode the name if there is no name (bug#53716).

2022-02-02  Alan Mackenzie  <acm@muc.de>

	Fix bug with M-x compile-defun in a defconst/defvar

	* lisp/emacs-lisp/bytecomp.el (compile-defun): Have symbols-with-pos-enabled
	bound to non-nil when the eval takes place.

2022-02-02  Po Lu  <luangruo@yahoo.com>

	Improve correctness of generated xwidget events

	* src/xwidget.c (xw_maybe_synthesize_crossing): Add new
	parameters for controlling the crossing mode.  Also improve the
	accuracy of generated crossing events when the mouse pointer
	moves outside the toplevel from an inferior of it.  All callers
	changed.
	(xw_notify_virtual_upwards_until):
	(xw_notify_virtual_downwards_until): New parameters for crossing
	mode.  All callers changed.

2022-02-02  Po Lu  <luangruo@yahoo.com>

	Send button events before setting xwidget passive grab

	* src/xwidget.c (xwidget_button_1): Send button event before
	any grab processing.

2022-02-02  Po Lu  <luangruo@yahoo.com>

	* src/nsselect.m (ns_get_foreign_selection): Fix GCC warning.

2022-02-02  Po Lu  <luangruo@yahoo.com>

	Make behavior of `mouse-autoselect-window' consistent with X on NS

	* src/nsterm.m ([EmacsView mouseMoved:]): Ignore if
	`selected_window' is a minibuffer window.

2022-02-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	9ab0b43a72 * etc/NEWS: Apply final fixes after proofreading.

	# Conflicts:
	#	etc/NEWS

2022-02-01  Po Lu  <luangruo@yahoo.com>

	Improve behavior of `mouse-autoselect-window' on Haiku

	* src/haikuterm.c (haiku_read_socket): Don't select windows if
	the selected window is a minibuffer window or a popup is
	activated.

2022-02-01  Po Lu  <luangruo@yahoo.com>

	Fix display of vertical window dividers on Haiku

	* src/haikuterm.c (haiku_draw_window_divider): Make drawing
	consistent with X.

2022-02-01  Po Lu  <luangruo@yahoo.com>

	Don't use XRender to fill rectangles unless an alpha channel exists

	* src/xterm.c (x_clear_area): Don't use XRender unless
	`alpha_bits' is set.

2022-02-01  Juri Linkov  <juri@linkov.net>

	* lisp/replace.el (query-replace-read-from-default): New variable.

	(query-replace-read-from-regexp-default): New variable.
	(query-replace-read-from): Use new variables.

	* lisp/progmodes/project.el (project-query-replace-regexp):
	Let-bind query-replace-read-from-regexp-default to find-tag-default-as-regexp.

	* lisp/progmodes/xref.el (xref-find-references-and-replace):
	Let-bind query-replace-read-from-default to find-tag-default.

	https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg01909.html

2022-02-01  Juri Linkov  <juri@linkov.net>

	* lisp/tab-line.el: Support non-buffer tabs in some tab face functions.

	(tab-line-tab-face-special, tab-line-tab-face-modified): For non-buffer tabs
	when 'tab-line-tabs-function' is e.g. 'tab-line-tabs-buffer-groups',
	try to get the buffer from the property 'buffer'.
	https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg01923.html

2022-02-01  Andrea Corallo  <akrl@sdf.org>

	* Improve 'maybe_defer_native_compilation'

	* src/comp.c (maybe_defer_native_compilation): Always store the
	function name in Vcomp_deferred_pending_h if pending for deferred
	compilation.

2022-02-01  Andrea Corallo  <akrl@sdf.org>

	* lisp/startup.el (startup--require-comp-safely): Fix typo in a92c6191b0

2022-02-01  Mattias Engdegård  <mattiase@acm.org>

	Speed up calls to C primitives

	* src/eval.c (funcall_subr): Test most likely cases first (conforming
	calls to finite-arity or n-adic SUBRs), and the error cases last,
	instead of doing it the other way around.  Simplify.

2022-02-01  Po Lu  <luangruo@yahoo.com>

	* src/pgtkterm.c (pgtk_draw_rectangle): Fix trivial typo.  (bug#53677)

2022-02-01  Andreas Schwab  <schwab@linux-m68k.org>

	Remove extra \= from obsoletion message

	* lisp/emacs-lisp/eieio.el (defclass): Remove \= from obsoletion
	message.
	* lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload)
	(eieio-defclass-internal): Likewise.

2022-02-01  Andrea Corallo  <akrl@sdf.org>

	Rename `comp--loadable' into `comp--compilable'

	* lisp/startup.el (comp--compilable): Rename from `comp--loadable'.
	(startup--require-comp-safely): Update accordingly.
	(startup--honor-delayed-native-compilations): Likewise.
	* src/comp.c (syms_of_comp): Update.
	(maybe_defer_native_compilation): Likewise.

2022-02-01  Andrea Corallo  <akrl@sdf.org>

	* Fix `startup--require-comp-safely' (bug#53675)

	* lisp/startup.el (startup--require-comp-safely): Remove unnecessary
	check.

2022-02-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	31ef751f94 Clarify documentation of a "face's font"
	29bdedf12f Bind Qdebugger to Qdebug in signal_or_quit.

2022-02-01  Po Lu  <luangruo@yahoo.com>

	Clean up Haiku display structures

	* src/haikufns.c (haiku_set_parent_frame): Set `parent_desc'
	correctly.

	* src/haikuterm.h (C_FRAME, C_FONT, C_TERMINAL):
	(struct haiku_display_info):
	(struct haiku_output): Get rid of C_* preprocessor defines,
	since these files are no longer included in any way by C++ files.

2022-02-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2022-01-27 20:16:15 UTC.

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Display images with a mask correctly when `alpha-background' is set

	* src/xterm.c (x_query_frame_background_color): Return value
	adjusted for background alpha.
	(x_draw_image_glyph_string): Respect `alpha-background' when
	generating background pixmap.

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Only apply last change to the clipboard

	* lisp/select.el (gui--selection-value-internal): Only return
	nil if we own the clipboard.

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Avoid extraneous selection querying if we own the selection

	* lisp/select.el (gui--selection-value-internal): Return nil if
	`gui-backend-selection-owner-p' on window systems where it is
	reliable.

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Make fringe bitmaps respect alpha-background

	* src/xterm.c (x_draw_fringe_bitmap): Respect alpha-background
	on non-overlay fringe bitmaps.
	* src/xterm.h (struct x_display_info): New field `alpha_mask'.

2022-01-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix nnregistry byte compilation warning

	* lisp/gnus/nnregistry.el (nnregistry-server-opened)
	(nnregistry-open-server): Fix byte compilation warning.

2022-01-31  Stefan Monnier  <monnier@iro.umontreal.ca>

	(byte-compile-eval): Adjust to changes in `load-history`

	The `function-history` patch introduced a regression which caused
	spurious compiler warnings.  Fix it.
	The new code also fixes a bug in the old code, thus causing some
	new non-spurious warnings.  Fix them as well.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to changes in
	`load-history`.

	* lisp/gnus/gnus-group.el (nnrss-discover-feed)
	(nnrss-save-server-data): Use `declare-function`.

	* lisp/cedet/semantic/wisent/comp.el (wisent-defcontext)
	(wisent-with-context):
	* lisp/emacs-lisp/comp.el (comp-op-case): Silence compiler warning.

2022-01-31  Alan Mackenzie  <acm@muc.de>

	Enlarge max-specpdl-size for generation of files in .../admin/grammars

	* admin/grammars/Makefile.in: Add a --eval clause to set max-specpdl-size to
	5000 (previously 2500) for these targets.

2022-01-31  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Don't remove dummy.group from gnus-newsrc-alist on Gnus save

	bug#53352

	* lisp/gnus/gnus-start.el (gnus-gnus-to-quick-newsrc-format): This
	function was removing dummy.group from the global value of
	`gnus-newsrc-alist' on save; we only wanted to remove it temporarily.

2022-01-31  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Obsolete gnus-registry-enabled in favor of checking gnus-registry-db

	* lisp/gnus/gnus-registry.el (gnus-registry-enabled): Obsolete this
	variable; recommend using `gnus-registry-db' as a boolean instead.
	(gnus-registry-load, gnus-registry-register-message-ids,
	gnus-registry-article-marks-to-chars,
	gnus-registry-article-marks-to-names, gnus-registry-clear,
	gnus-registry-install-p): In all these functions, test
	`gnus-registry-db' instead of `gnus-registry-enabled'. We no longer
	set or clear that variable.

2022-01-31  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc.el (vc-diff-internal): Assume revert-buffer is in current buffer.

	Support the case when reverting is in the buffer with a name other than
	the default name "*vc-diff*".  Then don't try to switch to the buffer
	"*vc-diff*" with an assumption that revert-buffer is always performed
	in the current buffer (bug#28852).

2022-01-31  Alan Mackenzie  <acm@muc.de>

	* lisp/progmodes/cc-mode.el (c-common-init): Bind case-fold-search to nil

	This fixes bug #53605.

2022-01-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust toggle-menu-bar-mode-from-frame doc string

	* lisp/menu-bar.el (toggle-menu-bar-mode-from-frame): Adjust the
	doc string to reflect what it does (bug#43383).

2022-01-31  Eli Zaretskii  <eliz@gnu.org>

	Minor copyedits of 'function-history' documentation

	* doc/lispref/loading.texi (Where Defined): Fix indexing and
	punctuation.

2022-01-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix misplaced braces in loading.texi

	* doc/lispref/loading.texi (Where Defined): Fix misplaced braces.

2022-01-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Make more ranges sort properly in describe-keymap

	* lisp/subr.el (keymap-canonicalize): Don't consider two-character
	ranges as a range (bug#11325).

2022-01-31  Stefan Monnier  <monnier@iro.umontreal.ca>

	(function-history): New symbol property (bug#53632)

	Rework the code we have in Fdefalias that tries to keep track
	of definitions so as to be able to undo them later.

	We used to store in `load-history` when an autoload is redefined as
	a non-autoload and in the `autoload` symbol property we used to store
	the autoload data that used to be used before it got overridden.

	Instead, store the history of the function definition of
	a symbol in its `function-history` symbol property.
	To make this list cheap in the default case, the latest value is not stored
	in the list (since it's in the `symbol-function`) and neither is the first
	file.  So if there's only been a single definition (the most common case),
	the list is empty and the property is just not present at all.

	The patch also gets rid of the `autoload` vs `defun` distinction in
	`load-history` which seems unnecessary (a significant part of the
	motivation for this patch was to get rid of the special handling of
	autoloads in this part of the code).

	* src/data.c (add_to_function_history): New function.
	(defalias): Use it.  Don't add the `t` entries for autoloads and always
	use `defun` regardless of the kind of definition.
	Change `Vautoload_queue` to only hold the function
	symbols since the rest is now available from `function-history`.
	* src/eval.c (un_autoload): Adjust accordingly.

	* src/lread.c (load-history): Update docstring.

	* lisp/loadhist.el (loadhist-unload-filename): New var.
	(unload-feature): Bind it.
	(loadhist-unload-element): Document its availability.
	(loadhist--restore-autoload): Delete var.
	(loadhist--unload-function): Delete function.
	(loadhist-unload-element): Delete the `t` and `autoload` methods.
	Rewrite the `defun` method using `function-history`.

	* lisp/help-fns.el: Require `seq`.
	(help-fns--autoloaded-p): Rewrite.
	(help-fns-function-description-header): Adjust call accordingly.

	* doc/lispref/loading.texi (Where Defined): Remove `autoload` and `t`
	entries from `load-history` since we don't generate them any more.
	Document the `function-history` which replaces the `autoload` property.
	(Unloading): Adjust symbol property name accordingly.

	* test/lisp/loadhist-resources/loadhist--bar.el:
	* test/lisp/loadhist-resources/loadhist--foo.el: New files.
	* test/lisp/loadhist-tests.el (loadhist-tests-unload-feature-nested)
	(loadhist-tests-unload-feature-notnested): New tests.

2022-01-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Make Gnus address checking more resilient

	* lisp/gnus/gnus-art.el (article--check-suspicious-addresses):
	Check that we have an email address before checking the validity
	(bug#53651).

2022-01-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify that INSTALL isn't for Git checkouts (bug#53627)

2022-01-31  Michael Albinus  <michael.albinus@gmx.de>

	Extend filelock-tests.el for bug#53207

	* test/src/filelock-tests.el (filelock-tests--fixture): Make it a
	defmacro.  Adapt callees.
	(filelock-tests-unlock-spoiled, filelock-tests-kill-buffer-spoiled):
	Simplify.
	(filelock-tests-detect-external-change): New test

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Fix artifacting on PGTK when bits are copied with an alpha channel

	* src/pgtkterm.c (x_draw_stretch_glyph_string): Draw background
	respecting `alpha-background'.
	(pgtk_copy_bits): Use CAIRO_OPERATOR_SOURCE to draw onto the
	destination surface.

2022-01-31  Eli Zaretskii  <eliz@gnu.org>

	Improve 'latin1-display-ucs-per-lynx'

	* lisp/international/latin1-disp.el (latin1-display-ucs-per-lynx):
	Don't judge display-ability of all the characters by testing just
	one of them.  Instead, install an ASCII equivalent of every
	character that the terminal cannot display.

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Implement `alpha-background' on PGTK

	* src/ftcrfont.c (ftcrfont_draw): Respect alpha-background where
	appropriate.
	* src/gtkutil.c (xg_create_frame_widgets): Swap some
	conditionals around to get the right visual and signal handlers
	on PGTK.
	(xg_widget_style_updated): Likewise.
	* src/pgtkfns.c (pgtk_set_alpha_background): New function.
	(pgtk_frame_parm_handlers): Add it instead of the generic param
	handler.
	(Fx_create_frame): Fix typo.
	* src/pgtkterm.c (pgtk_fill_rectangle):
	(pgtk_set_cr_source_with_gc_foreground):
	(pgtk_set_cr_source_with_gc_background):
	(pgtk_set_cr_source_with_color): New argument
	`respect_alpha_backend'.  All callers changed.
	* src/pgtkterm.h: Update function prototypes.

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Fix accesses to GTK structures on tooltip frames

	* src/xfns.c (xic_set_preeditarea): Don't set the GTK context on
	tooltip frames.
	(x_set_alpha_background): Don't make tooltip frames paintable.
	* src/xterm.c (x_xr_ensure_picture): Get rid of GDK visual code.
	This is now done in a better way inside xg_create_frame_widgets.
	(bug#53654)

2022-01-31  Po Lu  <luangruo@yahoo.com>

	* src/haikufns.c (Fx_display_visual_class): Return correct values.

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Improve portability of GDK visual code

	* src/gtkutil.c (xg_create_frame_widgets): Look up the visual
	instead of assuming it based on the depth.

2022-01-31  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_term_init): Avoid freeze with 24-bit visuals.

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Improve portability of alpha channel handling on TrueColor visuals

	* src/xfns.c (select_visual): Always ask for a TrueColor visual.
	* src/xfont.c (xfont_draw):
	* src/xftfont.c (xftfont_draw): Test `alpha_bits' instead of
	n_planes.
	* src/xterm.c (x_fill_rectangle, x_clear_rectangle): Likewise.
	(x_query_colors, x_alloc_nearest_color): Remove code that
	hard-coded alpha mask.
	(x_term_init): Calculate alpha bits and offset and populate
	field appropriately.
	* src/xterm.h (struct x_display_info): New fields `alpha_bits'
	and `alpha_offset'.
	(x_make_truecolor_pixel): Stop hardcoding the value of the alpha
	mask.

2022-01-31  Stefan Kangas  <stefankangas@gmail.com>

	Factor out function to check for clang in tests

	This also stops a flymake test from failing on my machine.

	* lisp/emacs-lisp/ert-x.el (ert-gcc-is-clang-p): New function
	factored out from ...
	* test/lisp/progmodes/flymake-tests.el (flymake-tests--gcc-is-clang):
	* test/lisp/cedet/semantic/bovine/gcc-tests.el
	(semantic-gcc-test-output-parser-this-machine): ... here.

	* test/lisp/progmodes/flymake-tests.el (different-diagnostic-types)
	(included-c-header-files):
	* test/lisp/cedet/semantic/bovine/gcc-tests.el
	(semantic-gcc-test-output-parser-this-machine): Use above new function.

2022-01-31  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/image.el (image-map): Use defvar-keymap.

2022-01-31  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	6f282b31ad Update to Org 9.5.2-13-gdd6486
	6636231b2c ; * lisp/international/latin1-disp.el: Update commentary.
	f22e9ba9ac Fix regression in Occur Edit mode

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Fix motion not being reported on GTK when mouse moves over toolbar

	* src/gtkutil.c (xg_event_is_for_scrollbar): Make code
	consistent between XI2 and Core Input.

2022-01-31  Po Lu  <luangruo@yahoo.com>

	Make cursor alpha consistent with a transparent background

	* src/xfont.c (xfont_draw):
	* src/xftfont.c (xftfont_shape):
	* src/xterm.c (x_clear_glyph_string_rect): Don't respect
	background alpha when drawing the cursor.

2022-01-30  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_xrender_color_from_gc_foreground): Fix omission error.

2022-01-30  Po Lu  <luangruo@yahoo.com>

	Fix the X toolkit build

	* src/xterm.c (x_after_update_window_line): Update calls to
	`x_fill_rectangle'.

2022-01-30  Po Lu  <luangruo@yahoo.com>

	Fix tooltip frame creation with 32-bit visuals

	* src/xfns.c (x_create_tip_frame): Define CWColormap and
	CWBorderPixel to use a 32-bit visual if available.

2022-01-30  Po Lu  <luangruo@yahoo.com>

	* etc/NEWS: Announce the 'alpha-background' frame parameter.

2022-01-30  Po Lu  <luangruo@yahoo.com>

	Fix the no toolkit build.

	* src/xfns.c (x_window): Use n_planes instead of CopyFromParent
	for depth.

2022-01-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix with-suppressed-warnings edebug spec

	* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Fix
	edebug spec.

2022-01-30  Po Lu  <luangruo@yahoo.com>

	Fix builds without GTK

	* src/xfns.c (x_set_alpha_background): Don't call
	gtk_widget_set_app_paintable without GTK.

2022-01-30  Po Lu  <luangruo@yahoo.com>

	Implement `alpha-background' on non-Cairo builds

	* src/frame.c (gui_set_alpha_background): Recompute basic faces
	so xft face ext info gets reset.
	* src/gtkutil.c (xg_create_frame_widgets): Attach to style
	updated signal.
	(xg_update_frame_menubar): Set menu bar visual correctly.
	(xg_widget_style_updated): New function.

	* src/xfns.c (x_set_alpha_background): New function.
	(x_frame_parm_handlers): Use x_set_alpha_background instead.

	* src/xfont.c (xfont_draw):
	* src/xftfont.c (xftfont_draw): Handle `alpha-background'
	parameter.

	* src/xterm.c (x_xr_ensure_picture): Export function.
	(x_update_opaque_region): New function.
	(x_fill_rectangle): New parameter `respect_alpha_background'.
	All callers changed.
	(handle_one_xevent): Set opaque region on ConfigureNotify.
	(x_drop_xrender_surfaces): Set opaque region.
	(x_xrender_color_from_gc_foreground):
	(x_xrender_color_from_gc_background): Premultiply alpha with
	components if asked for.
	* src/xterm.h (struct x_display_info): New atom
	`Xatom_net_wm_opaque_region'.

2022-01-30  Juri Linkov  <juri@linkov.net>

	* lisp/frame.el (undelete-frame--save-deleted-frame): Handle initial frame.

	The function undelete-frame--save-deleted-frame is renamed
	from undelete-frame--handle-delete-frame (bug#51883).

2022-01-30  Juri Linkov  <juri@linkov.net>

	* lisp/frame.el: Don't require 'frameset.el' (bug#51883).

	(clone-frame): Use frame-internal-parameters.
	(undelete-frame--handle-delete-frame): Instead of using frameset-save,
	save frame-parameters except frame-internal-parameters and 'display'
	on non-graphic display.  Also save window-state from window-state-get.
	(undelete-frame): Instead of using frameset-restore,
	set default-frame-alist for make-frame (like in clone-frame),
	and restore window-state with window-state-put.

	* lisp/frameset.el (frameset-session-filter-alist): Append
	parameters from frame-internal-parameters with the filter :never.
	Remove :name that is now in frame-internal-parameters.
	(frameset-persistent-filter-alist): Remove outer-window-id,
	parent-id, window-id that are now in frame-internal-parameters,
	included here via frameset-session-filter-alist.

	* src/frame.c (frame-internal-parameters): New variable.

2022-01-30  Alan Mackenzie  <acm@muc.de>

	Enlarge max-specpdl-size for generation of leim-list.el in bootstrap

	* leim/Makefile.in (${leimdir}/leim-list.el): Add a --eval clause to set
	max-specpdl-size to 5000 (previously 2500) for this target.

2022-01-30  Po Lu  <luangruo@yahoo.com>

	Handle correctly errors during frame creation on Haiku

	* src/haikufns.c (haiku_create_frame): Only block input where
	required.

	* src/haiku_support.cc (BCursor_delete): Accept NULL values of
	`cursor'.

2022-01-30  Po Lu  <luangruo@yahoo.com>

	Use XRender to composite fringe bitmaps

	This will allow us to apply transforms such as scaling in the
	future.

	* src/xterm.c (x_draw_fringe_bitmap): Composite fringe bitmaps
	with XRender if available.

2022-01-30  Po Lu  <luangruo@yahoo.com>

	Fix some problems with inconsistent visuals on GDK

	* src/xterm.c (x_xr_ensure_picture): Use the visual GDK used
	instead of our own.

2022-01-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e81e375539 ; Yet another minor fix of Malayalam composition rules.
	94f38cbec4 Fix last change of Malayalam composition rules
	ed3bbeb80d Fix rendering of Malayalam script
	5ef3a52342 Improve documentation of Occur mode

2022-01-30  Po Lu  <luangruo@yahoo.com>

	Use consistent font when displaying menu equivalent keys on Haiku

	* src/haiku_support.cc (DrawContent): Set plain font when
	drawing key text.

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Add support for ARGB visuals on non-Xt builds

	* src/gtkutil.c (xg_create_frame_widgets): Enable RGBA visual
	on non-PGTK builds.
	* src/xfns.c (select_visual): Select 32-bit visuals on non-Xt
	builds.
	* src/xterm.c (x_draw_fringe_bitmap):
	(x_draw_image_glyph_string): Stop using DefaultDepthOfScreen.
	(x_query_colors):
	* src/xterm.h (x_make_truecolor_pixel): Make colors opaque on
	32-bit visuals.

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Some adjustments to last change

	* src/gtkutil.c (xg_set_undecorated): Only set ARGB visual on
	Cairo builds without PGTK.
	* src/xfns.c (select_visual): Likewise.

2022-01-29  Håkon Flatval  <hkon20@hotmail.com>

	Add background transparency support for GTK+Cairo

2022-01-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	package.el: Fix bug#53529

	* lisp/emacs-lisp/package.el (package-autoload-ensure-default-file):
	Enforce Unix EOLs.

2022-01-29  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-menu-bar-button): New variable (bug#51648).

	(tab-bar-format-menu-bar): Use it.

2022-01-29  Juri Linkov  <juri@linkov.net>

	* lisp/isearch.el: Put 'isearch-scroll' property on two new symbols.

	Put 'isearch-scroll' property on new commands 'recenter-other-window'
	and 'context-menu-open'.

2022-01-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Modernize the security section in the efaq a bit

	* doc/misc/efaq.texi (Security risks with Emacs): Remove the X
	bit, and add a bit about browsing the web (bug#24489).

2022-01-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow redirecting `message' output to a different buffer

	* doc/lispref/display.texi (Logging Messages): Document it.
	* src/xdisp.c (message_dolog): Add sanity checking.
	(syms_of_xdisp): Make Vmessages_buffer_name into a defvar
	(bug#27170).

2022-01-29  Eli Zaretskii  <eliz@gnu.org>

	Don't require mouse for prompting via dialog boxes

	* lisp/subr.el (use-dialog-box-p): Don't require mouse support,
	and allow dialog boxes when invoked via the TTY menus without a
	mouse.
	(from--tty-menu-p): New internal variable.

	* lisp/menu-bar.el (popup-menu): Bind 'from--tty-menu-p' when
	invoking a command from the menu.

2022-01-29  Charles A. Roelli  <charles@aurox.ch>

	Make revert-buffer ('g') keep point in VC diff buffers

	* lisp/vc/vc.el (vc-diff-restore-buffer): New function.
	(vc-diff-finish): Update its calling convention to include an
	optional 'oldbuf' parameter, and handle it.
	(vc-diff-internal): Pass a clone of the incumbent vc-diff
	buffer to 'vc-diff-finish' (bug#28852).

2022-01-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify Fmatch_data doc string

	* src/search.c (Fmatch_data): Note quirk about non-matching
	optional groups in the doc string (bug#29343).

2022-01-29  Jae-hyeon Park  <jhpark@kias.re.kr>  (tiny change)

	Make gnus-icalendar-with-decoded-handle more DWIM

	* lisp/gnus/gnus-icalendar.el
	(gnus-icalendar-with-decoded-handle): Assume that calendars with
	no charset is utf-8.

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Fix error after merge

	* src/filelock.c (lock_file): Fix test against I_OWN_IT.

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-28

	611736f3bc Remove debug logging
	ddba3c3dba Fix error in filelock.c

	# Conflicts:
	#	src/filelock.c

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Fix error at startup with recent change

	* lisp/startup.el (normal-top-level): Don't access
	`native-comp-eln-load-path' if not (featurep 'native-compile).

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Fix unrelated help text tooltips if a popup is shown during the delay

	* doc/lispref/frames.texi (Pop-Up Menus): Document new hook.
	* etc/NEWS: Announce `x-pre-popup-menu-hook'.
	* lisp/tooltip.el (tooltip-mode): Make sure `tooltip-hide' is
	run before any popup menu is displayed to prevent unrelated help
	text from obscuring the popup menu if it pops up during the
	tooltip delay.
	* src/menu.c (x_popup_menu_1): Run said hook right before the
	popup menu is displayed.
	(syms_of_menu): New hook `x-pre-popup-menu-hook'.

2022-01-29  Eli Zaretskii  <eliz@gnu.org>

	Allow <Delete> key to delete entire grapheme clusters

	* lisp/simple.el (delete-forward-char): If deleting forward,
	delete complete grapheme clusters as single units.

	* etc/NEWS: Announce the change.

2022-01-29  Eli Zaretskii  <eliz@gnu.org>

	Fix native-compilation at startup

	* lisp/startup.el (normal-top-level): Set up the initial value of
	'native-comp-eln-load-path' early into startup, then amend it
	after calling 'command-line'.  (Bug#53497)

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Write a dummy event on each popup menu event

	* src/haiku_io.c (haiku_len): Add new event.
	* src/haiku_support.cc (be_popup_menu_thread_entry):
	(Highlight): Write a dummy event to the event port.
	* src/haiku_support.h (enum haiku_event_type): New `DUMMY_EVENT'
	type.
	(struct haiku_dummy_event): New structure.
	* src/haikuterm.c (haiku_read_socket): Handle dummy events.

2022-01-29  Eli Zaretskii  <eliz@gnu.org>

	Fix compiler warning due to a recent change

	* src/data.c (Ffset): Avoid compiler warning about 'function'.

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Fix a default value of the `:underline' face attribute

	* lisp/cus-face.el (custom-face-attributes): Add `:position' t
	default value of "On" for underlines.

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Improve menu drag tracking on Haiku

	* src/haikuterm.c (haiku_read_socket): Ignore all button events
	when popup_activated_p.

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Make menus on Haiku work better

	* src/haikuterm.c (haiku_read_socket): Don't send up events for
	ungrabbed buttons.

2022-01-29  Po Lu  <luangruo@yahoo.com>

	Implement real menu help-echo text on Haiku

	* lisp/tooltip.el (tooltip-show-help): Remove Haiku-specific
	conditional since that's now taken care of by C code.

	* src/haiku_io.c (haiku_read_size):
	(haiku_read_with_timeout):
	(haiku_write_without_signal): Add parameter `popup_p'.  All
	callers changed.
	(port_popup_menu_to_emacs): New variable.

	* src/haiku_support.cc (struct be_popup_menu_data): New
	structure.
	(be_popup_menu_thread_entry): New function.
	(class EmacsMenuItem): New field `menu_ptr'.
	(Highlight): Send help text to the popup port if this item
	isn't for a menu bar.
	(BMenu_add_item): Set menu_ptr appropriately.
	(BMenu_run): Complete rewrite that allows to read help text from
	the menu bar port.

	* src/haiku_support.h (struct haiku_menu_bar_help_event): New
	fields for popup menus.

	* src/haikumenu.c (digest_menu_items): Only set help tooltip on
	popup menus when system tooltips are enabled.
	(haiku_menu_show_help):
	(haiku_process_pending_signals_for_menu): New functions.
	(haiku_menu_show): Pass new callbacks.

2022-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/data.c (Ffset, defalias): Complete last change

	Somehow part of the autoload history handling was left behind in `Ffset`
	when the rest was moved to `defalias`.  Finish the job.

	* src/data.c (Ffset): Don't set the `autoload` property here...
	(defalias): ... set it here instead.

2022-01-28  Hugo Heagren  <hugo@heagren.com>

	bind-keys-form: error for repeat sub-keywords without :repeat-map

	Error descriptively if :continue or :exit is specified without
	:repeat-map.

2022-01-28  Hugo Heagren  <hugo@heagren.com>

	bind-key-form: allow :continue keyword inside repeat map

	Purely syntactic sugar, using :continue is the same as not using any
	keyword inside :repeat-map at all.

	Amend end of function to pass repeat-map value onto next invocation in
	recursive uses. This allows for the same repeat map to be used for
	:exit and :continue.

2022-01-28  Hugo Heagren  <hugo@heagren.com>

	bind-key-form: allow :exit keyword inside repeat map

	Keys bound inside the scope of :exit are bound inside the repeat map,
	but do not have their repeat-map property set (so they run a function,
	but 'exit' the map).

2022-01-28  Hugo Heagren  <hugo@heagren.com>

	bind-keys-form: new keyword :repeat-map, for defining repeat maps

	use-package-normalize/:bind: allow keyword :repeat-map.

	bind-keys-form: Add keyword :repeat-map. Specifying a symbol as the
	repeat-map defines a keymap with that name (and with the docstring
	`repeat-doc', if specified). Symbols for functions bound to keys under
	the scope of :repeat-map have their 'repeat-map property set to this
	map. Update docstring (and that of `bind-keys') to reflect changes.

	Rename `doc' to `prefix-doc' for clarity and consistency with
	'repeat-doc'.

2022-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	Reduce code duplication in parts of (auto)load&defalias

	* src/data.c (defalias): New function, extracted from `Fdefalias`.
	(Fdefalias): Use it.
	(Ffset): Don't handle `Vautoload_queue` here, handle it in
	`defalias` instead.
	* src/comp.c (comp--register-subr): Use `defalias` instead of
	duplicating its code.

	* src/eval.c (load_with_autoload_queue): New function, extracted from
	`Fautoload_do_load`.
	(Fautoload_do_load): Use it.
	(un_autoload): Mark it as static.
	* src/fns.c (Frequire): Use it as well.

	* src/lisp.h (defalias, load_with_autoload_queue): New declarations.
	(un_autoload): Remove declaration.

2022-01-28  Sebastian Urban  <mrsebastianurban@gmail.com>

	Make where-is correctly identify aliases

	* lisp/help.el (where-is): Make aliases correctly say which
	function is an alias for what (bug#37325).

2022-01-28  Sebastian Urban  <mrsebastianurban@gmail.com>  (tiny change)

	Fix manual points about tex-latex-block/latex-insert-block

	* doc/emacs/text.texi (LaTeX Editing):
	(LaTeX Editing): Update documentation of
	tex-latex-block/latex-insert-block to what they really point to
	(bug#37325).

2022-01-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the read-file-name doc string slightly

	* lisp/minibuffer.el (read-file-name): Note that the semantics of
	INITIAL are odd (bug#37883).

2022-01-28  Michael Albinus  <michael.albinus@gmx.de>

	Clarify where the shell-command output goes

	* lisp/simple.el (shell-command):
	* doc/emacs/misc.texi (Single Shell): Clarify where the output
	goes if the specified buffer isn't the current one (bug#40896).

2022-01-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow using dired-hide-details-mode in wdired buffers

	* lisp/dired.el (dired-hide-details-mode): Also work in
	wdired-mode buffers (bug#45127).

	* lisp/wdired.el (wdired-mode-map): Add a key binding.

2022-01-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Move native-comp-eln-load-path setting earlier again

	* lisp/startup.el (normal-top-level): Move
	`native-comp-eln-load-path' earlier because hooks called may need
	the setting (bug#53596).

2022-01-28  Lele Gaifax  <lele@metapensiero.it>

	Fix copyright-fix-years, use a dash to separate years in a range

	Commit 7a46fa9c751f7c3147cd9b27fe84c1ce25419d3b, allowing en-dash as
	years separator, changed the way the years range is composed taking the
	separator from the `sep' variable instead of always using an hardwired
	hyphen. Since the code explicitly avoid to touch (that is, extend)
	existing ranges, that `sep' variable is almost always a space, or
	whatever character precedes the last parsed year, thus generating a
	range like "2020 2022" instead of "2020-2022".

	* lisp/emacs-lisp/copyright.el (copyright-fix-years): Always use an dash
	to separate years in a range.

	* test/lisp/emacs-lisp/copyright-tests.el (with-copyright-fix-years-test):
	(copyright-fix-years-tests--data):
	(text-copyright-fix-years): New test cases (bug#53597).

2022-01-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix merge error in doc-view-pdf/ps->png

	* lisp/doc-view.el (doc-view-pdf/ps->png): Fix merge error from
	previous epub patch.

2022-01-28  Po Lu  <luangruo@yahoo.com>

	Prevent duplicate grab setting with xwidgets

	* src/xwidget.c (xwidget_show_view): Don't set passive grab if
	already set.

2022-01-28  Po Lu  <luangruo@yahoo.com>

	Use the real cursor beneath the pointer on xwidgets

	* src/xwidget.c (define_cursors): Make manual cursor definition
	code PGTK-only.
	(xw_update_cursor_for_view):
	(xw_last_crossing_cursor_cb): New functions.
	(xw_maybe_synthesize_crossing): Attach and disconnect cursor
	signal handler where appropriate.
	(xwidget_init_view): Set the default cursor to the nontext
	cursor.
	(Fxwidget_delete_view): Disconnect last crossing signal if
	appropriate.
	* src/xwidget.h (struct xwidget_view): New field
	`last_crossing_cursor_signal'.

2022-01-28  Po Lu  <luangruo@yahoo.com>

	Fix xwidget build on PGTK

	* src/xwidget.c (xw_forward_event_translate): Adjust calls to
	`find_widget_at_pos' for recent changes.

2022-01-28  Po Lu  <luangruo@yahoo.com>

	Fix duplicate scroll events without XI2

	* src/xwidget.c (xwidget_button): Only generate scroll events
	when the button was released.

2022-01-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	3dd47bde7a * lisp/frame.el (clone-frame): Filter out 'parent-id' (bug...

2022-01-27  Po Lu  <luangruo@yahoo.com>

	Clear xwidget passive grab whenever a drag begins

	* src/xwidget.c (xv_drag_begin_cb): New function.
	(xwidget_view_from_window): Attach said function to grab widget
	when a grab starts.
	* src/xwidget.h (struct xwidget_view): New field
	`passive_grab_drag_signal'.

2022-01-27  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Remove obsolete workaround.

2022-01-27  Po Lu  <luangruo@yahoo.com>

	Fix inappropriate use of killed xwidgets

	* src/xwidget.c (x_draw_xwidget_webkit_view): Don't record
	embedder or synthesize focus events if the widget is killed.

2022-01-27  Po Lu  <luangruo@yahoo.com>

	Implement xwidget passive grabs

	* src/xwidget.c (find_widget_at_pos): New parameters for
	controlling whether to respect grabs.  All callers changed.
	(window_coords_from_toplevel): Make work when the widget is
	the toplevel.
	(find_widget): Fix coding style.
	(xwidget_button_1): Set and clear passive grabs if appropriate.
	(xw_maybe_synthesize_crossing): Allow current_window to be NULL
	if the mode is XW_CROSSING_LEFT.

2022-01-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new switch --init-directory

	* doc/emacs/cmdargs.texi (Initial Options): Mention it.
	* lisp/startup.el (normal-top-level): Move the eln init to after
	we've processed the command line arguments.
	(command-line): Interpret the --init-directory switch.

	* src/emacs.c (standard_args): Add.

2022-01-27  Glenn Morris  <rgm@gnu.org>

	* lisp/doc-view.el (doc-view-epub-font-size): Fix type; add version.

	Flagged by test-custom-opts.

2022-01-27  Andrea Corallo  <akrl@sdf.org>

	Fix potential native compiler circular dependencies during load

	* lisp/startup.el (startup--require-comp-safetly): New function.
	(startup--honor-delayed-native-compilations): Make use of
	`startup--require-comp-safetly'.
	* src/comp.c (CALL0I): New define.
	(maybe_defer_native_compilation): Make use of
	`startup--require-comp-safetly'.

2022-01-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up previous "Quit Emacs" from menu logic

	* lisp/files.el (files--buffers-needing-to-be-saved): Separated
	out into its own function...
	(save-some-buffers): ... from here.
	(save-buffers-kill-emacs): Check that we have anything to save
	before prompting the user.

2022-01-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the save buffers prompt from Quit Emacs menu more understandable

	* lisp/files.el (save-buffers-kill-emacs): Use a much simpler (and
	more understandable) prompt when exiting Emacs from the menu bar
	(bug#4980).

	* lisp/subr.el (use-dialog-box-p): Separate out into its own
	function for reuse...
	(y-or-n-p): ... from here.

2022-01-27  Eli Zaretskii  <eliz@gnu.org>

	Improve detection of glyphless characters on TTY frames

	* src/term.c (produce_glyphs): If the terminal can report for
	which characters it has glyphs, use that to determine whether
	a given character should be displayed as glyphless.

2022-01-27  Arni Magnusson  <thisisarni@gmail.com>

	Add setx highlighting to bat-mode

	* lisp/progmodes/bat-mode.el (bat-font-lock-keywords):
	(bat-font-lock-keywords): Highlight setx (bug#53568).

2022-01-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Move some of the doc-view variables around to fix load errors

2022-01-27  Daniel Nicolai  <dalanicolai@gmail.com>

	Add support for EPUB, CBZ, FB2 and (O)XPS extension to doc view

	* doc/emacs/misc.texi (Document View): Add requirements for new
	extensions (i.e. mutool).

	* lisp/doc-view.el (doc-view): Additionally update preliminary comment
	(doc-view-custom-set-epub-font-size): redraw image after setting
	(doc-view-unoconv-program): Put code all on one line
	(doc-view-doc-type): Update docstring.
	(doc-view-kill-proc): Fix comment indentation
	(doc-view-mode-p):
	Add check for new extensions and alternative check for PDF
	(doc-view-pdf/ps->png): Associate new extension with png converter
	(doc-view-convert-current-doc): Handle new extensions like PDF's
	(doc-view-set-doc-type): Set correct doc-type for new extensions.

	* lisp/files.el (auto-mode-alist):
	Associate new extension types with doc-view.

2022-01-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak href/superscript fix in tex-mode

	* lisp/textmodes/tex-mode.el (tex-font-lock-keywords-1): Fix
	superscripts in href in a better way.

2022-01-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Don't output spurious prefixes in read-char-exclusive"

	This reverts commit 701ec0bda2b15fc97af6ca68fb842fb1ec9aac35.

	This change broke display of `C-q-' when doing the `C-q' command,
	so it has to be fixed a different way.

2022-01-27  Po Lu  <luangruo@yahoo.com>

	Improve xwidget window ancestry calculations

	* src/xwidget.c (xw_find_common_ancestor):
	(xw_notify_virtual_upwards_until)
	(xw_notify_virtual_downwards_until): New functions.
	(xw_maybe_synthesize_crossing): Synthesize virtual events like
	GTK does for non-linear changes.

2022-01-27  Andreas Schwab  <schwab@linux-m68k.org>

	* src/pdumper.c (dump_vectorlike): Handle PVEC_SYMBOL_WITH_POS.

2022-01-27  Andrea Corallo  <akrl@sdf.org>

	* Fix `startup--honor-delayed-native-compilations' for (bug#53497)

	* lisp/startup.el (startup--honor-delayed-native-compilations): Don't
	forget to set `comp--loadable' when `comp--delayed-sources' is empty.

2022-01-27  Andrea Corallo  <akrl@sdf.org>

	* Have `benchmark-run-compiled' use the native compiler when available

	* lisp/emacs-lisp/benchmark.el (benchmark-run-compiled): Use native
	compiler when available.

2022-01-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	c9524819ea Partially revert a fill-region-as-paragraph regression
	6075ea0b79 Fix 'make_lispy_position' when there's an image at EOB

	# Conflicts:
	#	test/lisp/textmodes/fill-tests.el

2022-01-27  Po Lu  <luangruo@yahoo.com>

	* lisp/xwidget.el (xwidget-webkit-edit-mode-map): Pass C-backspace.

2022-01-27  Po Lu  <luangruo@yahoo.com>

	Implement crossing event generation between windows for xwidgets on X

	* src/xwidget.c (enum xw_crossing_mode): New enum.
	(xwidget_motion_notify):
	(xwidget_motion_or_crossing): Synthesize crossing events if the
	pointer moved between different windows.
	(window_coords_from_toplevel):
	(xw_maybe_synthesize_crossing): New functions.
	(xwidget_init_view): Initialize new field to NULL.
	(Fdelete_xwidget_view): Clear last crossing window.

	* src/xwidget.h (struct xwidget_view): New field
	`last_crossing_window'.

2022-01-26  Stefan Kangas  <stefankangas@gmail.com>

	Silence byte-compiler slightly in tests

	* test/src/comp-resources/comp-test-45603.el
	(comp-test-45603--call-marked):
	* test/src/comp-resources/comp-test-funcs.el
	(comp-tests-discardn-f, comp-test-42360-f, comp-test-46824-1-f)
	(comp-test-silly-frame2): Silence byte-compiler.

2022-01-26  Stefan Kangas  <stefankangas@gmail.com>

	Don't use obsolete second argument to byte-compile-file

	* test/src/comp-resources/comp-test-funcs.el
	(comp-test-big-interactive): Don't use obsolete second argument to
	byte-compile-file.

2022-01-26  Stefan Kangas  <stefankangas@gmail.com>

	Don't discourage auto-mode-alist entries in autoloads

	* lisp/files.el (auto-mode-alist, interpreter-mode-alist): Delete
	comment discouraging entries in autoload directives.  (Bug#8158)

2022-01-26  Po Lu  <luangruo@yahoo.com>

	Improve XI2 valuator reset logic

	* src/xterm.c (handle_one_xevent): Clear valuators on XI_Leave
	instead of XI_Enter.

2022-01-26  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_focus_frame): Set input focus on outer window.

2022-01-26  Po Lu  <luangruo@yahoo.com>

	Get rid of unnecessary draw locking in haikumenu.c

	* src/haikumenu.c (Fhaiku_menu_bar_open): Stop holding the draw
	lock.

2022-01-26  Po Lu  <luangruo@yahoo.com>

	Apply fix for bug#52761 to GTK native input as well

	* src/xgselect.c (xg_select): Apply said fix on regular GTK
	builds when native input is being used.

2022-01-26  Glenn Morris  <rgm@gnu.org>

	* Makefile.in (install-etc): Remove unnecessary chown.

	Not needed since this rule was changed to not use tar, 2012-05-11.

2022-01-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Make smerge-refine-ignore-whitespace into defcustom

	* lisp/vc/smerge-mode.el (smerge-refine-ignore-whitespace): Make
	into defcustom (bug#12585).

2022-01-26  Mattias Engdegård  <mattiase@acm.org>

	Add tests for concat, vconcat and append

	* test/src/fns-tests.el (fns-tests-concat)
	(fns-concat, fns-vconcat, fns-append): New.

2022-01-26  Mattias Engdegård  <mattiase@acm.org>

	Minor `concat` tweaks

	* src/fns.c (concat): Do things in the right order for speed.
	(concat_strings): Initialize variable.

2022-01-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix copyright-find-copyright when searching from the end

	* lisp/emacs-lisp/copyright.el (copyright-find-copyright): Make
	the double check also work when searching from the end (bug#7179).

2022-01-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix copyright.el comment and add a test

	* lisp/emacs-lisp/copyright.el (copyright-find-copyright): Fix
	comment (bug#7179).

2022-01-26  Sean Whitton  <spwhitton@spwhitton.name>

	Fix input of sharp-quoted symbols in Eshell with em-extpipe

	* lisp/eshell/em-extpipe.el (eshell-parse-external-pipeline): Fix
	misinterpreting sharp-quoted symbols as the beginning of single-quoted
	strings (Bug#53518).  Add protection against a possible infinite loop.
	* test/lisp/eshell/em-extpipe-tests.el (em-extpipe-test-17): New
	test (bug#53518).

2022-01-26  Michael Albinus  <michael.albinus@gmx.de>

	Adapt tramp-tests

	* test/lisp/net/tramp-tests.el (tramp--test-special-characters):
	Adapt test candidates.

2022-01-26  Michael Albinus  <michael.albinus@gmx.de>

	Fix insert-file-contents for tramp-crypt

	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	Use `tramp-handle-insert-file-contents'.

2022-01-26  Po Lu  <luangruo@yahoo.com>

	Add workaround for super modifier misconfiguration to non-XKB code

	* src/xterm.c (x_find_modifier_meanings): Don't let a modifier
	be both Hyper and Super.

2022-01-26  Andrea Corallo  <akrl@sdf.org>

	Make use of NILP where possible

	* src/w32menu.c (menubar_selection_callback, w32_menu_show): Use NILP
	where possible.
	* src/w32fns.c (w32_set_mouse_color): Likewise.
	* src/w16select.c (Fw16_selection_exists_p): Likewise.
	* src/process.c (Fnetwork_lookup_address_info): Likewise.
	* src/cygw32.c (Fcygwin_convert_file_name_to_windows)
	(Fcygwin_convert_file_name_from_windows): Likewise.

2022-01-26  Po Lu  <luangruo@yahoo.com>

	Simplify Haiku scrolling code

	* src/haikuterm.c (haiku_scroll_run): Remove code that can never
	be reached since Cairo frames are always double buffered.

2022-01-26  Po Lu  <luangruo@yahoo.com>

	Fix GTK menu bar height reporting when scaled

	* src/gtkutil.c (xg_update_frame_menubar): Multiply requisition
	height by GDK scale.

2022-01-26  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	7eca80b204 ; * src/composite.c (syms_of_composite) <auto-composition-...

2022-01-26  Po Lu  <luangruo@yahoo.com>

	Simplify Haiku underline code

	* src/haikuterm.c (haiku_draw_text_decoration): Remove code left
	over from when mouse face had to be set manually.

2022-01-25  Po Lu  <luangruo@yahoo.com>

	Make `haiku-menu-bar-open' faster

	* src/haikumenu.c (Fhaiku_menu_bar_open): Get draw lock before
	updating the menu bar.
	* src/haikuterm.c (haiku_read_socket): Don't update menu bar if
	b->no_lock.

2022-01-25  Stefan Kangas  <stefankangas@gmail.com>

	* src/image.c (parse_image_spec): Use NILP.

2022-01-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve how change-log-mode fills all-file-name lines

	* lisp/vc/add-log.el (change-log-fill-file-list): New function to
	improve how we fill all-file-name ChangeLog lines (bug#19341).
	(change-log-indent): Use it.

2022-01-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up Gnus FAQ entry

	* doc/misc/gnus-faq.texi (FAQ 3-9): Remove mention of
	nnimap-list-pattern, which was removed some years ago (bug#53522).

2022-01-25  Andrea Corallo  <akrl@sdf.org>

	* src/comp.c (emit_lisp_obj_rval): Make use of NILP.

	;* src/fns.c (concat_strings): Add missing space.

2022-01-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/comp.c (emit_limple_insn): Fix another int/Lisp_Object mixup

2022-01-25  Glenn Morris  <rgm@gnu.org>

	Tag an mml-sec test

	* test/lisp/gnus/mml-sec-tests.el (mml-secure-en-decrypt-3):
	Tag unstable on hydra.nixos.org due to repeated intermittent failures.

2022-01-25  Andrea Corallo  <akrl@sdf.org>

	* src/fns.c (concat_strings): Clean-up unused variable.

2022-01-25  Andrea Corallo  <akrl@sdf.org>

	* `batch-byte+native-compile' produce .eln younger than .elc (bug#52912)

	* lisp/emacs-lisp/comp.el (batch-native-compile): Add return
	value.
	(batch-byte+native-compile): Touch the produced .eln after the
	corresponding .elc is produced.

2022-01-25  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/comp.el (batch-byte+native-compile): Fix unwind form

2022-01-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/lisp.h (lisp_h_EQ, lisp_h_NILP): Fix length and indent

2022-01-25  Mattias Engdegård  <mattiase@acm.org>

	Faster concat, append, vconcat, copy-sequence, etc

	Split the C auxiliary function `concat` into separate functions for
	string and list/vector as target types, respectively.  This makes them
	simpler and faster.

	Implement `Fcopy_sequence` more efficiently for strings, lists and
	vectors instead of using `concat`.

	The result is a significant performance increase for the Lisp
	built-ins concat, append, vconcat, copy-sequence and anything using
	them such as mapconcat, copy-alist and propertize.

	* src/fns.c (concat2, concat3, Fconcat): Use concat_strings.
	(Fappend, Fvconcat): Adapt to changed signature of concat.
	(Fcopy_sequence): Faster implementation for lists, strings, and vectors.
	(concat_strings): New.
	(concat): Strip code for string target, simplify, optimize.
	(Fcopy_alist): Use Fcopy_sequence.

2022-01-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't mutate literals in tabulated-list-widen-current-column

	* lisp/emacs-lisp/tabulated-list.el
	(tabulated-list-widen-current-column): Avoid mutating constants
	(bug#53501).

2022-01-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix widening some columns in tabulated-list-widen-current-column

	* lisp/emacs-lisp/tabulated-list.el
	(tabulated-list-widen-current-column): Don't bug out on list-based
	columns (bug#53498).

2022-01-25  Jim Porter  <jporterbugs@gmail.com>

	Treat "-" as a positional arg in 'eshell-eval-using-options'

	* lisp/eshell/esh-opt.el (eshell--process-args): Treat "-" as a
	positional arg.

	* lisp/eshell/em-tramp.el (eshell/su): Simplify checking for "-".

	* test/lisp/eshell/esh-opt-tests.el
	(esh-opt-test/eval-using-options-stdin): New test.

2022-01-25  Jim Porter  <jporterbugs@gmail.com>

	Don't manipulate args in-place for 'eshell-eval-using-options'

	This is necessary for preserve the original arguments to forward on to
	:external commands.  Previously, when :preserve-args was also set, the
	original argument list could be altered, changing the meaning of the
	command.

	* lisp/eshell/esh-opt.el (eshell-eval-using-options): Copy MACRO-ARGS
	when :preserve-args is set, and pass the original value to
	'eshell--do-opts'.
	(eshell--do-opts): Use the original arguments when calling an external
	command.

	* lisp/eshell/em-tramp.el (eshell/su, eshell/sudo): Don't copy the
	original arguments, since 'eshell-eval-using-options' does this for
	us.

	* test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test):
	Split this test into...
	(esh-opt-test/process-args)
	(esh-opt-test/process-args-parse-leading-options-only)
	(esh-opt-test/process-args-external): ... these.
	(test-eshell-eval-using-options): Split this test into...
	(esh-opt-test/eval-using-options-short)
	(esh-opt-test/eval-using-options-long)
	(esh-opt-test/eval-using-options-constant)
	(esh-opt-test/eval-using-options-user-specified)
	(esh-opt-test/eval-using-options-short-single-token)
	(esh-opt-test/eval-using-options-terminate-options)
	(esh-opt-test/eval-using-options-parse-leading-options-only)
	(esh-opt-test/eval-using-options-unrecognized): ... these.
	(esh-opt-test/eval-using-options-external): New test.

	* test/lisp/eshell/em-tramp-tests.el: New tests.

2022-01-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the term-clear-full-screen-programs doc string

	* lisp/term.el (term-clear-full-screen-programs): Improve the doc
	string.

2022-01-25  Po Lu  <luangruo@yahoo.com>

	Improve reliability of menu bar updates on Haiku

	* src/haiku_support.cc (class EmacsWindow): New fields
	`menu_update_cv', `menu_update_mutex' and `menu_updated_p'.
	(~EmacsWindow): Destroy cv and mutex.
	(MenusBeginning): Release lock and wait for condition to be
	become true.
	(EmacsWindow_signal_menu_update_complete): New function.
	* src/haiku_support.h (struct haiku_menu_bar_state_event): New
	field `no_lock'.
	* src/haikumenu.c (Fhaiku_menu_bar_open): Always update menu
	bar.
	* src/haikuterm.c (haiku_read_socket): Always update menu bar
	and signal the window thread after update completion.

2022-01-25  Po Lu  <luangruo@yahoo.com>

	* src/haiku_support.cc (Highlight): Send events if !highlight_p.

2022-01-25  Po Lu  <luangruo@yahoo.com>

	Don't send menu help events on Haiku if the pointer isn't in the menu

	* src/haiku_support.cc (Highlight): Only send help events
	if the mouse cursor is actually in the menu.

2022-01-25  Po Lu  <luangruo@yahoo.com>

	Fix tool bar size reporting on GTK when the display is scaled

	* src/gtkutil.c (xg_update_tool_bar_sizes): Multiply sizes to
	turn them into device pixels.

2022-01-25  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	c34d06e3d7 * configure.ac (LIBSECCOMP): Bump minimum version for facc...
	335a5a9e0f Make the `f' command work in image-mode again

2022-01-24  Po Lu  <luangruo@yahoo.com>

	Improve portability of X11 IM code

	* configure.ac: Test for XICCallback.callback if X11R6 or later.
	* src/xfns.c (Xxic_preedit_start_callback): Use XICCallback if
	present.

2022-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	Remove some dubious uses of `interactive-form`

	* lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): `commandp` and
	`interactive-form` are for function values, not for source code.
	* lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag):
	Prefer `commandp` over `interactive-form`.

2022-01-24  Po Lu  <luangruo@yahoo.com>

	Fix invalid picture after toggling the tool bar or menu bar on GTK

	* src/xterm.c (x_drop_xrender_surfaces): New function.
	(handle_one_xevent): Call x_drop_xrender_surfaces instead of
	just font_drop_xrender_surfaces.

2022-01-24  Po Lu  <luangruo@yahoo.com>

	Fix GTK native input on scaled displays

	* src/xfns.c (xic_set_preeditarea): Scale preedit spot rectangle
	before giving it to GTK.

2022-01-24  Sean Whitton  <spwhitton@spwhitton.name>

	Add Eshell syntax to more easily bypass Eshell's own pipelining

	* etc/NEWS:
	* doc/misc/eshell.texi (Input/Output): Document the new syntax.
	* lisp/eshell/em-extpipe.el: New module (Bug#46351).
	* test/lisp/eshell/em-extpipe-tests.el: New tests.
	* lisp/eshell/esh-module.el (eshell-modules-list): Add `eshell-extpipe'.

2022-01-24  Sean Whitton  <spwhitton@spwhitton.name>

	Rework eshell-match-result for testing asynchronous commands

	When using eshell-match-result via eshell-command-result-p to examine
	the output of asynchronous Eshell commands, a newly emitted prompt is
	included in the text against which the regexp is matched.  This makes
	it awkward to match against the whole output; for example, to check
	whether it is empty.  Rework the function to exclude the prompt.

	* test/lisp/eshell/eshell-tests-helpers.el (eshell-match-result):
	Exclude any newly emitted prompt from the text against which the
	regexp is matched.  Additionally, the function no longer moves point.
	* test/lisp/eshell/eshell-tests.el (eshell-test/flush-output): Update
	and simplify test given how eshell-match-result no longer moves point.

2022-01-24  Sean Whitton  <spwhitton@spwhitton.name>

	Move Eshell test helpers to their own file

	* test/lisp/eshell/eshell-tests.el:
	* test/lisp/eshell/eshell-tests-helpers.el: Move helpers to own file.

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make hi-lock-face-defaults into a defcustom

	* lisp/hi-lock.el (hi-lock-face-defaults): Make into defcustom.

2022-01-24  Juri Linkov  <juri@linkov.net>

	* lisp/hi-lock.el (hi-lock-use-overlays): New variable.

	(hi-lock-set-pattern): Use it.  Set overlay priority to 1.
	(bug#53155)

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add NEWS entry for term-clear-full-screen-programs

2022-01-24  Miha Rihtaršič  <miha@kamnitnik.top>

	Implement alternative sub-buffer support in term.el

	* etc/e/eterm-color.ti: Added termcaps for entering and leaving an
	alternative sub-buffer.
	* lisp/term.el (term-reset-size): Resize correctly in an alternative
	sub-buffer is in use.
	(term-clear-full-screen-programs): New user option.
	(term-handle-ansi-escape):
	(term-termcap-format): Handle termcaps for entering and leaving an
	alternative sub-buffer.
	(term-switch-to-alternate-sub-buffer): New (used to be commented out)
	function to enter or leave an alternative sub-buffer.
	bug#53485

2022-01-24  Juri Linkov  <juri@linkov.net>

	* lisp/info.el (Info-link-keymap): Fix repetitive clicks on the header line.

	Rebind [header-line mouse-1] from mouse-select-window to
	Info-mouse-follow-link.  It selects the window anyway,
	but also allows repetitively clicking on the Next button
	on the Info header line (bug#53170).

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't list the default hi-lock faces twice in the future history

	* lisp/hi-lock.el (hi-lock-read-face-name): Don't include faces
	twice in the defaults (bug#19877).

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix gnus-article-truncate-lines doc string

	* lisp/gnus/gnus-art.el (gnus-article-truncate-lines): Fix doc
	string.

2022-01-24  Juri Linkov  <juri@linkov.net>

	* etc/NEWS: Mention 'replace-regexp-function' (bug#52558).

2022-01-24  Juri Linkov  <juri@linkov.net>

	* lisp/faces.el (read-face-name): Support a list of defaults for M-n.

	When MULTIPLE is nil and the arg DEFAULT is a list, keep its elements
	in the "future history" of the minibuffer retrieved by `M-n M-n ...'.
	(bug#53255)

2022-01-24  Glenn Morris  <rgm@gnu.org>

	* lisp/minibuffer.el (completions-sort): Fix type.

	Flagged by test-custom-opts.

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't output spurious prefixes in read-char-exclusive

	* src/keyboard.c (read_char): Don't touch the echo area if
	Vecho_keystrokes is nil.
	* src/lread.c (read_filtered_event): Bind echo_keystrokes to nil
	to avoid outputting prefixes we're not going to act on anyway
	(bug#19718).

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow sorting in electric-buffer-list with `S'

	* lisp/ebuff-menu.el (electric-buffer-menu-mode-map): Add the `S'
	sorting command here, too (bug#20178).

2022-01-24  Amin Bandali  <bandali@gnu.org>

	ERC: Add new comaintainer, F. Jason Park

	* lisp/erc/erc*.el: Add J.P. as my comaintainer to headers.

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix \href{a_b} in tex-mode

	* lisp/textmodes/tex-mode.el (tex-font-lock-keywords-2): Fontify
	href parameters like constants so that _ aren't fontified like
	subscripts.

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Fix tex-mode handling of _ chars in href{} commands"

	This reverts commit 487a0be7f7eb0ca9402247f13a11e39aa2946d05.

	This will be fixed a different way.

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add derived-mode test for bug#24176

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make anonymous functions work in auto-mode-alist

	* lisp/files.el (set-auto-mode--apply-alist): Don't infloop on
	anonymous functions in auto-mode-alist (bug#20709).

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't loop so much in gud-query-cmdline on remote systems

	* lisp/progmodes/gud.el (gud-query-cmdline): Avoid looping over
	large numbers of files on remote systems (bug#21528).

2022-01-24  Protesilaos Stavrou  <info@protesilaos.com>

	Make Completions sorting a user option

	* etc/NEWS: Document the new user option.
	* lisp/minibuffer.el (completions-sort): Add new user option.
	(minibuffer-completion-help): Implement it for the Completions
	buffer.  (Bug#53362)

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow jumping to ert failure definitions

	* lisp/emacs-lisp/ert.el (ert-test):
	(ert-deftest):  Store the file name.
	(ert-test-location): New function.
	(ert-run-tests-batch): Use it.

	* lisp/emacs-lisp/find-func.el (find-ert-deftest-regexp): New
	variable.
	(find-function-regexp-alist): Add ert-deftest (bug#22471).

	Based on code by Phillip Lord <phillip.lord@russet.org.uk>.

2022-01-24  Yuuki Harano  <masm+github@masm11.me>

	* configure.ac: Remove forgotten GLIB_GSETTINGS call

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add NEWS item for `I' command

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a *Help* command that'll take you to the lispref manual

	* doc/emacs/help.texi (Help Mode): Document it.
	* lisp/help-mode.el (help-mode-map): Add an `I' keystroke.
	(help-goto-lispref-info): New command.

	* lisp/info-look.el (:mode): Add an entry for the lispref manual.

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix tex-mode handling of _ chars in href{} commands

	* lisp/textmodes/tex-mode.el (tex--current-command): New function
	(bug#23102).
	(tex-font-lock-suscript): Don't subscript _ chars in href.

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `font-lock-add-keywords' work in derived modes

	* lisp/font-lock.el (font-lock-set-defaults): Make
	`font-lock-add-keywords' work in derived modes (bug#24176).

2022-01-24  Po Lu  <luangruo@yahoo.com>

	Remove redundant declarations from keyboard.h that are now in lisp.h

	* src/keyboard.h (process_pending_signals)
	(pending_signals): Remove declarations.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Inline maybe_quit

	Since `maybe_quit` is called on many critical paths, inline a slightly
	cheaper condition (that ignores Vinhibit_quit).

	* src/eval.c (maybe_quit): Rename to `probably_quit`.
	* src/lisp.h (maybe_quit): New simplified inline function.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Bump specpdl inline, move reallocation out of line

	The common case is just to increment `specpdl_ptr`; do that in-line,
	but move the uncommon reallocation to a separate subroutine.

	* src/eval.c (grow_specpdl): Now inline, most code moved...
	(grow_specpdl_allocation): ...here.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Implement Ffuncall in terms of funcall_general

	* src/eval.c (funcall_general, Ffuncall): Delegate the actual work in
	Ffuncall to funcall_general which does exactly this.
	This slows down some less used function call paths by a small amount
	but the code duplication was just silly.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Open-code aref and aset in bytecode interpreter

	* src/bytecode.c (exec_byte_code): Inline aref and aset for
	vectors and records, since this is important for code that makes heavy
	use of arrays and/or objects.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Remove the unused unbind-all bytecode

	It was implemented but never generated, originally intended for
	TCO in the pre-lexbind era (which was semantically dubious anyway).
	Removing it speeds up the interpreter because there is no longer any
	need for the outermost `count` variable unless checking is enabled.

	* lisp/emacs-lisp/bytecomp.el:
	* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst):
	* src/bytecode.c (BYTE_CODES, exec_byte_code):
	Remove definition and implementation of unbind-all, freeing up the opcode
	for other purposes.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Move a runtime interpreter check to debug mode

	* src/bytecode.c (exec_byte_code): Perform bytecode unwinding error
	check only when building with debugging (NDEBUG not defined, checking
	enabled, or BYTE_CODE_SAFE enabled).  This improves speed in several
	ways.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Remove nil check in exec_byte_code

	Since we pass no arguments to a non-lexbind bytecode function, we can
	specify its arity as 0 instead of nil and save a test and branch.

	* src/bytecode.c (Fbyte_code, exec_byte_code):
	* src/eval.c (fetch_and_exec_byte_code, funcall_lambda):
	* src/lisp.h:
	Change the args_template parameter type to ptrdiff_t, since it is now
	always a small integer, in exec_byte_code and
	fetch_and_exec_byte_code, all callers adjusted.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Byte code arity check micro-optimization

	* src/bytecode.c (exec_byte_code): Slight simplification.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Pin bytecode strings to avoid copy at call time

	Avoid making a copy (in the interpreter C stack frame) of the bytecode
	string by making sure it won't be moved by the GC.  This is done by
	reallocating it to the heap normally only used for large strings,
	which isn't compacted.

	This requires that we retain an explicit reference to the bytecode
	string object (`bytestr`) lest it be GCed away should all other
	references vanish during execution.  We allocate an extra stack slot
	for that, as we already do for the constant vector object.

	* src/alloc.c (allocate_string_data): Add `immovable` argument.
	(resize_string_data, make_clear_multibyte_string): Use it.
	(pin_string): New.
	* src/pdumper.c (dump_string): Fix incorrect comment.
	Update hash for Lisp_String (only comments changed, not contents).
	* src/lread.c (read1):
	* src/alloc.c (Fmake_byte_code, purecopy):
	* src/bytecode.c (Fbyte_code): Pin bytecode on object creation.
	(exec_byte_code): Don't copy bytecode.  Retain `bytestr` explicitly.
	* src/lisp.h (Lisp_String): Explain special size_byte values.
	(string_immovable_p): New.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Inline setcar and setcdr in byte-code interpreter

	The function call overhead is nontrivial in comparison to the actual
	code which makes this worthwhile.

	* src/bytecode.c (exec_byte_code):
	Inline code from Fsetcar and Fsetcdr.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Inline fixnum operations in bytecode interpreter

	Since numeric operations are mostly done on fixnums, this gives a
	speed-up for common code.

	* src/bytecode.c (exec_byte_code): Inline fixnum comparisons and
	operations with fixnum results: =, >, <, <=, >=, -, +, -, *, /, %, max
	and min.

2022-01-24  Mattias Engdegård  <mattiase@acm.org>

	Short-circuit the recursive bytecode funcall chain

	Inline parts of the code for function calls to speed up the common
	case of calling lexbound byte-code.  By eliminating intermediate
	functions, this also reduces C stack usage a little.

	* src/bytecode.c (exec_byte_code): Inline parts of Ffuncall,
	funcall_lambda and fetch_and_exec_byte_code in the Bcall opcode
	handler.
	* src/eval.c (backtrace_debug_on_exit): Inline and move to lisp.h.
	(do_debug_on_call): Make global so that it can be called from
	bytecode.c.
	(funcall_general): New function, essentially the meat of Ffuncall.
	* src/lisp.h (backtrace_debug_on_exit): Moved here from eval.c.

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add "then" to sh--completion-keywords

	* lisp/progmodes/sh-script.el (sh--completion-keywords): Allow
	completing over "then" (bug#53490).

2022-01-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix Gnus registry key bindings

	* lisp/gnus/gnus-registry.el (gnus-registry-install-shortcuts):
	Don't overwrite all other M M commands (bug#53492).

2022-01-24  Martin Rudalics  <rudalics@gmx.at>

	Orderly inhibit frame resizing when activating tool or tab bar (Bug#52986)

	* src/xdisp.c (redisplay_tab_bar, redisplay_tool_bar): If we do
	not display a tool or tab bar in these functions, still set
	f->tool/tab_bar_redisplayed and f->tool/tab_bar_resized.  This
	avoids that when one of these are initially turned off, a later
	activation resizes the frame despite of the fact that
	'frame-inhibit-implied-resize' should prevent it (Bug#52986).

2022-01-24  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_composite_image): Use the display's picture format.

2022-01-24  Po Lu  <luangruo@yahoo.com>

	Scale coordinates when checking if a touch event falls inside menu bar

	* src/xterm.c (handle_one_xevent): Apply scale to touch event
	coordinates before intersecting them with the menu bar.

2022-01-24  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid glitches in ELC lines in build output

	* src/verbose.mk.in (AM_V_ELC, AM_V_ELN): Use ifneq not ifdef, as
	we want have_working_info’s value expanded (Bug#53358).

2022-01-23  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Drop frame picture on configure.

2022-01-23  Po Lu  <luangruo@yahoo.com>

	Add some code for transparent frame backgrounds without Cairo

	* src/image.c (svg_load_image): Fix build without native image
	transforms.

	* src/xfns.c (set_up_x_back_buffer):
	(tear_down_x_back_buffer): Free XR picture if present.

	* src/xftfont.c (xftfont_get_xft_draw): Fix formatting issue.

	* src/xterm.c (x_xr_ensure_picture): New function.
	(FRAME_CR_CONTEXT, FRAME_CR_CONTEXT):
	(FRAME_CR_SURFACE_DESIRED_WIDTH)
	(FRAME_CR_SURFACE_DESIRED_HEIGHT): Move to separate USE_CAIRO
	block so the ext data code can be used on builds with XRender as
	well.

	(x_xr_apply_ext_clip):
	(x_xr_reset_ext_clip): New functions.
	(x_set_clip_rectangles):
	(x_reset_clip_rectangles): Set ext data on XRender as well.
	(x_term_init): Look for a picture format appropriate for our
	purposes.
	(x_clear_area): Use XRenderFillRectangle to draw backgrounds if
	available.
	(x_xrender_color_from_gc_foreground):
	(x_xrender_color_from_gc_background): New functions.

	* src/xterm.h (FRAME_X_PICTURE):
	(FRAME_X_PICTURE_FORMAT)
	(FRAME_CHECK_XR_VERSION): New macros.

	(struct x_gc_ext_data): Define on XRender as well.
	(struct x_display_info): Define ext_codes when using XRender and
	add new field `pict_format'.
	(struct x_output): New field `picture'.

2022-01-23  Po Lu  <luangruo@yahoo.com>

	Get rid of compose status on XI2

	* src/xterm.c (handle_one_xevent): Stop assuming compose
	processing will occur on XI2.

2022-01-23  Alan Mackenzie  <acm@muc.de>

	Expunge read-with-symbol-position and read-symbol-positions-list

	These are remnants of the old way of determining byte compiler warning
	positions.

	* src/lread.c (read_internal_start, read1): Remove initializations amd
	manipulations of these variables.
	(syms_of_lread): Remove the declarations of the variables.

	* lisp/emacs-lisp/bytecomp.el (compile-defun, byte-compile-from-buffer):
	Remove bindings of the variables.

2022-01-23  Po Lu  <luangruo@yahoo.com>

	Set IC preedit area on ConfigureNotify

	* src/xterm.c (handle_one_xevent): Set the preedit spot when a
	ConfigureNotify event is received.

2022-01-23  Alan Mackenzie  <acm@muc.de>

	Bind print-symbols-bare to t in byte-compile-from-buffer

	* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Bind
	print-symbols-bare to t here for the benefit of non-defining forms in buffers.

2022-01-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make message in hack-local-variables-confirm clearer

	* lisp/files.el (hack-local-variables-confirm): Mention the
	.dir-locals.el file in the message to be slightly less confusing
	(bug#27066).

2022-01-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-x M-x insert-kbd-macro RET RET' work better

	* lisp/macros.el (insert-kbd-macro): Don't give bogus output on
	names that have no function definition (bug#30309).

2022-01-23  Thuna  <thuna.cing@gmail.com>  (tiny change)

	Fix tabulated-list-widen-current-column widening wrong column

	* tabulated-list.el (tabulated-list-widen-current-column): Use correct
	comparison operation when checking if point is within the column
	bounds  (bug#53375).

2022-01-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow using outline minor mode in `M-x apropos-value'

	* lisp/apropos.el (apropos-mode): Set up outline minor mode
	(bug#31094).
	(apropos-value): Don't add "---" separators, because it doesn't
	really seem to add anything much.
	(apropos-value-internal): Escape newlines so that no values can be
	confused for headings.

2022-01-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make apropos-print-doc more resilient

	* lisp/apropos.el (apropos-print-doc): Don't bug out on doc
	strings that have invalid command key syntaxes.

2022-01-23  Brian Leung  <bkleung89@gmail.com>

	Properly check the completionitem.deprecated property

	* eglot.el (eglot-completion-at-point): Check the :deprecated property
	is `t'.  We do this so that a :deprecated property of :json-false does
	not cause a completion candidate to be incorrectly marked as deprecated.

2022-01-23  Alan Mackenzie  <acm@muc.de>

	Fix position argument to macroexp--warn-wrap in cconv--convert-funcbody

	* lisp/emacs-lisp/cconv.el (cconv--convert-funcbody): Change the position
	argument to macroexp--warn-wrap from BODY to ARG, to give correct positions in
	warning messages.

2022-01-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve `M-x speedbar' under emacs -nw very slightly

	* lisp/speedbar.el (speedbar-frame-mode): `M-x speedbar' doesn't
	seem to do anything visible under -nw, so issue a message in that
	case to tell the user how to proceed (bug#32597).

2022-01-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2022-01-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make kill-process into a command

	* doc/lispref/processes.texi (Signals to Processes): Document it.
	* src/process.c (Fkill_process): Make into a command (bug#32640).

2022-01-23  Phil Sainty  <psainty@orcon.net.nz>

	Add new function to prompt a user for a process name

	* lisp/emacs-lisp/subr-x.el (read-process-name): New function
	(bug#32640).

2022-01-23  Po Lu  <luangruo@yahoo.com>

	Make sure cursors are drawn correctly after haiku_clear_frame

	* src/haikuterm.c (haiku_clear_frame): Mark all cursors as off.

2022-01-23  Alex Kost  <alezost@gmail.com>

	Improve scheme-imenu-generic-expression

	* lisp/progmodes/scheme.el (scheme-imenu-generic-expression):
	Improve so that we match `define-public' etc (bug#33117).

2022-01-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Make occur edit mode more resilient

	* lisp/replace.el (occur-engine): Make the prefix read-only so
	that it's preserved in edit mode (bug#53419).

2022-01-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert the other bits related to `load-read-file'

	* src/lread.c (syms_of_lread): Revert the other bits related to
	reverting `byte-compile-from-buffer'/`load-read-file'.

2022-01-23  Po Lu  <luangruo@yahoo.com>

	Fix menus on the no-toolkit build when using XI2

	* src/xmenu.c (x_activate_menubar):
	(create_and_show_popup_menu): Only ungrab the device if it is
	actually grabbed.
	(x_menu_show): Release XI2 passive grab.

2022-01-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	6d3608be88 Seccomp: improve support for newer versions of glibc (Bug#...
	e58ecd01d5 EUDC: Fix a quoting bug in the BBDB backend

2022-01-22  Po Lu  <luangruo@yahoo.com>

	Fix documentation formatting error

	* doc/lispref/streams.texi (Input Functions): Remove extraneous
	@end defun.

2022-01-22  Po Lu  <luangruo@yahoo.com>

	* src/haikumenu.c (run_menu_bar_help_event): Fix bounds sanity check.

2022-01-22  Po Lu  <luangruo@yahoo.com>

	Clean up some of the X extension related code

	* src/image.c (Fimage_transforms_p): Remove unused variables.
	* src/xterm.c (x_probe_xfixes_extension):
	(x_term_init): Probe for xfixes during terminal initialization
	instead.
	* src/xterm.h (struct x_display_info): New fields for xfixes
	support.

2022-01-22  Po Lu  <luangruo@yahoo.com>

	* src/pgtkterm.c (pgtk_flash): Fix input blocking.

2022-01-22  Eli Zaretskii  <eliz@gnu.org>

	Minor copyedits in "Symbols with Position"

	* doc/lispref/symbols.texi (Symbols with Position): Fix wording
	and improve indexing.

2022-01-22  Alan Mackenzie  <acm@muc.de>

	Merge branch 'master' of /home/acm/emacs/emacs.git/master

2022-01-22  Alan Mackenzie  <acm@muc.de>

	Don't use 'load-read-function' in byte-compile-from-buffer

	* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Call
	read-positioning-symbols directly, rather than binding load-read-function to
	it.  This is so that a lower level use of load-read-function will not return a
	form containing symbols with position.

2022-01-22  Alan Mackenzie  <acm@muc.de>

	Merge branch 'scratch/correct-warning-pos'

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix print-unreadable-function documentation

	* doc/lispref/streams.texi (Output Variables): Fix description of
	non-string values.

2022-01-22  Michael Albinus  <michael.albinus@gmx.de>

	Add direct remote copying in Tramp's scp support

	* doc/misc/tramp.texi: Use @trampfn{} function where possible.
	(Top, Configuration): Insert section 'Ssh setup' and remove
	section 'Windows setup hints' in menu.
	(Default Method): Mention tramp-use-scp-direct-remote-copying.
	(Ssh setup): New node.
	(Windows setup hints): Move it to that new node.
	(Frequently Asked Questions): Move items about ssh config to that node.

	* etc/NEWS: Add Tramp's direct remote copying feature.  Fix typos.

	* lisp/net/tramp-sh.el (tramp-use-scp-direct-remote-copying):
	New defcustom.
	(tramp-methods) <scp, scpx>: Add "%y" marker.
	(tramp-scp-direct-remote-copying): New defun.
	(tramp-do-copy-or-rename-file-out-of-band): Extend for direct
	remote copying.

	* lisp/net/tramp.el (tramp-methods): Extend docstring.
	(tramp-password-prompt-not-unique): New defvar.
	(tramp-read-passwd): Adapt docstring.
	(tramp-read-passwd-without-cache): New defun.
	(tramp-action-password): Call it.

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Mark nil vc-follow-symlinks as safe

	* lisp/vc/vc-hooks.el (vc-follow-symlinks): A nil value should be
	safe for file-local (bug#33264).

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Use load-read-function in byte-compile-from-buffer

	* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Use
	load-read-function.

	* src/lread.c (syms_of_lread): Adjust doc string (bug#33723).

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify Vprint_unreadable_function doc string

	* src/print.c (syms_of_print): Clarify Vprint_unreadable_function
	doc string

2022-01-22  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of 'unprintable' stuff

	* src/print.c (syms_of_print) <print-unreadable-function>:
	* doc/lispref/streams.texi (Input Functions, Output Variables):
	Improve the documentation of 'print-unreadable-function' and
	'readablep'.  Add indexing and cross-references.

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve dired-do-create-files slightly

	* lisp/dired-aux.el (dired-do-create-files): Expand slightly upon
	the doc string (bug#35367).  Suggested by Mike Kupfer
	<mkupfer@alum.berkeley.edu>.

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Speed up multisession--set-value-sqlite slightly

	* lisp/emacs-lisp/multisession.el
	(multisession--set-value-sqlite): Use `readablep'.

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function 'readablep'

	* doc/lispref/streams.texi (Input Functions): Document it.
	* lisp/subr.el (readablep): New function (bug#52566).

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new variable print-unreadable-function

	* doc/lispref/streams.texi (Output Variables): Document it.

	* src/print.c (print_vectorlike): Use the variable.
	(syms_of_print): New variable print-unreadable-function
	(bug#52566).

2022-01-22  Po Lu  <luangruo@yahoo.com>

	Add some menu bar help code on GNUstep

	* src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Implement
	help event generation for GNUstep.

2022-01-22  Po Lu  <luangruo@yahoo.com>

	Fix PGTK build with xwidgets

	* src/xwidget.c: Swap some preprocessor definitions around.
	Reported by Iñigo Serna <inigoserna@gmail.com>.

2022-01-22  Po Lu  <luangruo@yahoo.com>

	Fix GNUstep build warnings

	* src/nsmenu.m
	([EmacsMenu menu:updateItem:atIndex:shouldCancel:])
	([EmacsMenu menuHasKeyEquivalent:forEvent:target:action:])
	([EmacsMenu numberOfItemsInMenu:]): New methods.

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix HTML target marking in shr

	* lisp/net/shr.el (shr-descend): Use a marker (because we may be
	altering the text later for indentation), and mark the start, not
	the end of the tag (bug#53409).
	(shr-tag-a): Ditto.

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Put the old label into the future history in reftex-change-label

	* lisp/textmodes/reftex-global.el (reftex-change-label): Put the
	old label into the future history so that it can be edited easily
	(bug#53417).

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix the prompt in hi-lock-read-face-name

	* lisp/hi-lock.el (hi-lock-read-face-name): Fix the prompt after
	recent changes (bug#53255).

2022-01-22  Matthias Meulien  <orontee@gmail.com>

	Fix some doc strings in outline.el

	* lisp/outline.el (outline-default-state): Fix doc string.
	(outline-default-rules): Fix doc string.

2022-01-22  Alan Mackenzie  <acm@muc.de>

	Merge branch 'master' into scratch/correct-warning-pos

2022-01-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the test for existing multisession variables more sensible

	* lisp/emacs-lisp/multisession.el (multisession-edit-value):
	Unconfuse the code.

2022-01-22  Alan Mackenzie  <acm@muc.de>

	Miscellaneous amendments to the scratch/correct-warning-pos branch

	* lisp/cedet/semantic/fw.el (semantic-alias-obsolete)
	(semantic-varalias-obsolete): Replace calls to byte-compile-warn with calls to
	byte-compile-warn-x (when it exists).

	* lisp/emacs-lisp/bytecomp.el (byte-compile-log-warning-function)
	(byte-compile--log-warning-for-byte-compile): Make the POSITION parameter no
	longer &optional (for the benefit of flymake on *.el).
	(byte-compile-log-warning): Replace a nil POSITION argument with an actual
	position.
	(byte-compile-file-form-require): Push the required symbol onto
	byte-compile-form-stack, for the benefit of `do-after-load-evaluation'.

	* lisp/keymap.el (define-keymap--compile): Replace four calls to
	byte-compile-warn with byte-compile-warn-x.

	* doc/lispref/elisp.texi (master menu): Add entries for Shorthands and Symbols
	with position.

	* doc/lispref/streams.texi (Input Functions): Document
	read-positioning-symbols.

	* doc/lispref/symbols.texi (Symbols): Add new menu entry.
	(Symbols with Position): New @section.

2022-01-22  Eli Zaretskii  <eliz@gnu.org>

	Improve detection of suspicious uses of bidi controls

	* lisp/international/textsec.el
	(textsec-bidi-controls-suspicious-p): New function.
	(textsec-name-suspicious-p): Use it.

	* test/lisp/international/textsec-tests.el (test-suspicious-name):
	Enable the test that was previously failing with
	'bidi-find-overridden-directionality'.

2022-01-22  Po Lu  <luangruo@yahoo.com>

	Prevent raw bytes from being displayed as help text on Haiku

	* src/haikumenu.c (digest_menu_items): Don't set encoded text
	into the menu item vector.

2022-01-22  Po Lu  <luangruo@yahoo.com>

	Use locale coding system to decode XIM preedit text

	* src/xfns.c (x_xim_text_to_utf8_unix): XIMs typically return
	text in the locale coding system, so use that instead.

2022-01-22  Eli Zaretskii  <eliz@gnu.org>

	Change visibility of "Undelete Frame"

	* lisp/menu-bar.el (menu-bar-file-menu): Make "Undelete Frame"
	always visible.  Suggested by Gregory Heytings <gregory@heytings.org>.

2022-01-22  Po Lu  <luangruo@yahoo.com>

	Get rid of some unnecessary code in handle_one_xevent

	* src/xterm.c (handle_one_xevent): Stop mutating event->xkey.

2022-01-21  Stefan Kangas  <stefankangas@gmail.com>

	* eglot.el (eglot-handle-notification): silence byte-compiler.

2022-01-21  Brian Leung  <bkleung89@gmail.com>

	Add support for optional completionitem.tags

	* eglot.el (eglot--lsp-interface-alist): Add optional CompletionItem.tags.
	(eglot-completion-at-point): Add :company-deprecated key and value,
	checking for either the appropriate tag (1) in the :tags property, or
	a truthy value for the :deprecated property.
	(eglot-client-capabilities): Advertise tagSupport (for tag == 1) and
	deprecatedSupport.

	Also load an updated version of seq.el in Emacsen < 27.

	* Makefile (ELPA_DEPS): Require latest seq.el.

2022-01-21  Stefan Kangas  <stefankangas@gmail.com>

	Don't use :exclusive no

	See https://github.com/joaotavora/eglot/issues/812 for background, in particular:
	https://github.com/joaotavora/eglot/issues/812#issuecomment-1014821345

	* eglot.el (eglot-completion-at-point): Don't use :exclusive no, as it
	leads to breakage in many cases.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/812

2022-01-21  Po Lu  <luangruo@yahoo.com>

	Fix recent changes to visible bell code

	* src/gtkutil.c (xg_create_scroll_bar):
	(xg_create_horizontal_scroll_bar): Stop ensuring an X window
	before the widget is realized.
	(xg_update_scrollbar_pos):
	(xg_update_horizontal_scrollbar_pos): Ensure such a window here
	instead.

2022-01-21  Po Lu  <luangruo@yahoo.com>

	Clean up visible bell code on X

	* src/gtkutil.c (xg_create_scroll_bar):
	(xg_create_horizontal_scroll_bar): Ensure that the scroll bars
	have their own X windows.
	* src/xterm.c (XTflash): Remove use of GDK functions for
	drawing.

2022-01-21  Po Lu  <luangruo@yahoo.com>

	Fix crash when the visible bell is rung but there is no cairo surface

	* src/pgtkterm.c (pgtk_flash): Return if the cairo surface is
	not present.  (bug#53420)
	(pgtk_cr_update_surface_desired_size): Reformat comment.

2022-01-21  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid glitches in ELC lines in build output

	* src/verbose.mk.in (have_working_info): New macro.
	(AM_V_ELC, AM_V_ELN): Use 'echo' rather than $(info ...)
	on buggy versions of GNU Make.

2022-01-21  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify AM_V_ELC setup

	* src/verbose.mk.in (AM_V_ELC, AM_V_ELN): Use simpler Make ‘if’s.

2022-01-21  Glenn Morris  <rgm@gnu.org>

	* lisp/cus-start.el (polling-period): Update type.

	Flagged by test-custom-opts.

2022-01-21  Glenn Morris  <rgm@gnu.org>

	* src/keyboard.c (start_polling): Fix type mixup.

	Flagged by --enable-check-lisp-object-type.

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Disable background image fetching from asking for passwords

	* lisp/url/url-queue.el (url-queue-start-retrieve): Inhibit
	prompting for passwords from these background requests.

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Further emake tweaks

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix previous emake change

	* admin/emake (cores): Fix typo in previous change.

2022-01-21  Po Lu  <luangruo@yahoo.com>

	* src/keyboard.c (syms_of_keyboard): Fix build without input polling.

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the completion-category-overrides doc string

	* lisp/minibuffer.el (completion-category-overrides): Clarify what
	this variable does (bug#22324).
	(completion-category-defaults): Mention the overrides variable.

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove text mistakenly added to the diff--iterate-hunks doc string

	* lisp/vc/diff-mode.el (diff--iterate-hunks): Remove text added by
	mistake to the doc string.

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Followup fix to previous message-update-smtp-method-header change

	* lisp/gnus/message.el (message-update-smtp-method-header): Narrow
	to the headers first.

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow From to be part of message-hidden-headers

	* lisp/gnus/message.el (message-update-smtp-method-header): Don't
	bug out if the From header is part of `message-hidden-headers'
	(bug#52871).

2022-01-21  Jim Porter  <jporterbugs@gmail.com>

	Don't use 'eshell-eval-using-options' for 'eshell/source' or 'eshell/.'

	This makes 'source' and '.' in Eshell more compatible with regular
	shells, which just treat the first argument as the file to source and
	all subsequent arguments as arguments to that file.

	* lisp/eshell/em-script.el (eshell/source, eshell/.): Don't use
	'eshell-eval-using-options'.

	* etc/NEWS: Announce the change (bug#53293)

2022-01-21  Jim Porter  <jporterbugs@gmail.com>

	Raise an error from 'eval-eval-using-options' for unknown options

	* lisp/eshell/em-basic.el (eshell/echo): Add -E option.

	* lisp/eshell/esh-opt.el (eshell--process-option): Raise an error if
	an unknown option is encountered, even when :external is nil.

	* test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test)
	(test-eshell-eval-using-options): Add test cases for this.

2022-01-21  Theodor Thornhill  <theo@thornhill.no>

	Fix indentation in NEWS of cl-flet item

	* etc/NEWS: Correct description of indentation of 'cl-flet' and
	'cl-labels (bug#53410).

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify Splitting Mail in the Gnus manual

	* doc/misc/gnus.texi (Splitting Mail): Clarify what happens when
	crossposting or not (bug#53307).

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Interpret a "" value of EMACS_TEST_VERBOSE as "off"

	* doc/misc/ert.texi (Running Tests in Batch Mode): Adjust doc.
	* lisp/emacs-lisp/ert.el (ert-run-tests-batch): Allow overriding
	the EMACS_TEST_VERBOSE variable by setting it to "" (bug#53313).

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the edebug-all-defs user option work more reliably

	* lisp/emacs-lisp/edebug.el (edebug-all-defs): This user option
	has no effect unless edebug is loaded (because that loads the
	advice needed for the commands in question) (bug#53331).

2022-01-21  Po Lu  <luangruo@yahoo.com>

	Make xwidgets work on builds that don't use Cairo drawing

	* configure.ac: Check for the parts of Cairo that are needed for
	xwidgets when they are enabled without cairo drawing.

	* src/xterm.c:
	* src/xwidget.c: Always include cairo-xlib headers when xwidgets
	are enabled.

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up mm-display-inline-fontify slightly

	* lisp/gnus/mm-view.el (mm-display-inline-fontify): Remove some
	left-over compat code.

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Make diff--iterate-hunks more resilient

	* lisp/vc/diff-mode.el (diff--iterate-hunks): Ignore malformed
	hunks instead of signaling errors (bug#53343).

2022-01-21  Shuguang Sun  <shuguang79@qq.com>

	Use the correct converter for odf files in doc-view

	* lisp/doc-view.el (doc-view-pdf/ps->png): Use the correct
	converter for odf files (bug#53354).

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Update multisession variables when editing the values

	* lisp/emacs-lisp/multisession.el (multisession-edit-value):
	Update multisession variables when editing the values (bug#53361).

2022-01-21  Jim Porter  <jporterbugs@gmail.com>

	Further improve determination of when commands can be invoked directly

	This covers the case when a subcommand is to be invoked in more places
	than before, for example when a subcommand is concatenated in an
	argument.

	* lisp/eshell/esh-cmd.el (eshell--find-subcommands): New function.
	(eshell--invoke-command-directly): Use 'eshell-find-subcommands'.

	* test/lisp/eshell/eshell-tests.el
	(eshell-test/interp-cmd-external-concat): New test (bug#30725).

2022-01-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust emake after recent changes

2022-01-21  Po Lu  <luangruo@yahoo.com>

	Synchronize XI2 code with Core Input code

	* src/xterm.c (handle_one_xevent): Apply recent changes for XI2
	events as well.

2022-01-21  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-28

	11ea45c9e4 Fix UB in ebrowse
	ba57b78064 Fix execute-extended-command-for-buffer in fundamental-mode
	ef0c1d4c2c Add workaround to handle a problem with Enlightenment WM (...

2022-01-21  Po Lu  <luangruo@yahoo.com>

	Work around GTK changing window backgrounds on colormapped displays

	* src/xterm.c (x_clear_window):
	(x_clear_area): Fill the contents with the reverse GC instead of
	using XClearArea and XClearWindow when not double buffered.

2022-01-20  Po Lu  <luangruo@yahoo.com>

	Fix BadValue crash when looking up empty color names on some X servers

	* src/xterm.c (x_parse_color): Avoid parsing empty color names.

2022-01-20  Dmitry Gutov  <dgutov@yandex.ru>

	ruby-toggle-block-space-before-parameters: New user option

	* lisp/progmodes/ruby-mode.el (ruby-toggle-block-space-before-parameters):
	New user option (bug#53321).
	(ruby-do-end-to-brace): Handle it.

	* test/lisp/progmodes/ruby-mode-tests.el
	(ruby-toggle-block-to-brace-no-space): New test.

2022-01-20  Po Lu  <luangruo@yahoo.com>

	Update menu bars when `use-system-tooltips' changes on Haiku

	* lisp/term/haiku-win.el: Add new function as variable watcher
	for `use-system-tooltips'.
	(haiku-use-system-tooltips-watcher): New function.

2022-01-20  Po Lu  <luangruo@yahoo.com>

	Allow fractional values of `polling-period'

	This allows C-g to be handled faster in the NS port at the cost
	of some extra CPU time on slow machines.

	* etc/NEWS: Announce new feature.
	* src/keyboard.c (start_polling):
	(bind_polling_period): Handle floating point values of
	`polling-period'.
	(syms_of_keyboard): Make `polling-period' a Lisp variable
	instead of an int variable.

2022-01-20  Po Lu  <luangruo@yahoo.com>

	Avoid FOCUS_IN_EVENTS not being sent on NS

	* src/nsterm.m ([EmacsView windowDidBecomeKey]): Work around
	emacs_event being NULL by storing focus in events directly
	into the keyboard buffer.  (bug#52376)

2022-01-20  Theodor Thornhill  <theo@thornhill.no>

	Enable lsp project-wide diagnostics via flymake

	* eglot.el (eglot-handle-notification): Pass on diagnostics from
	unvisited files to flymake.  Enables project-wide-diagnostics, so that
	we can view all diagnostics in a given workspace.  Uses new
	functionality from flymake 1.2.1, hence the version bump.

	* eglot-tests.el (project-wide-diagnostics-typescript): New tests
	showcasing the possibility to see all related diagnostics in a
	workspace.

	* eglot-tests.el (project-wide-diagnostics-rust-analyzer): New tests
	showcasing the possibility to see all related diagnostics in a
	workspace.

	* NEWS.md: Mention the new functionality
	* README.md: Mention the new functionality

2022-01-20  Alan Mackenzie  <acm@muc.de>

	In early bootstrap, use byte-compiled compiler to native compile first files

	This speeds up a make bootstrap by around 15%.

	* lisp/Makefile.in (BYTE_COMPILE_FLAGS): set a value specific to compile-first
	which doesn't contain the setting of Emacs variable load-prefer-newer.
	Add a new make hunk which byte-compiles (rather then native compiles) when the
	environment variable ANCIENT is "yes".  Set the date of the .elc files built
	to 1971-01-01 to cause a second compilation of them later.

	* src/Makefile.in: Add an extra invocation of directory lisp's MAKE with
	target compile-first and the flag environment variable ANCIENT set to yes.

	* src/verbose.mk.in: When ANCIENT is yes, output ELC, not ELC+ELN for
	AM_V_ELC.

2022-01-20  Arash Esbati  <arash@gnu.org>

	Remove matching of whitespaces in LaTeX environment names

	* lisp/textmodes/ispell.el (ispell-tex-skip-alists): Don't match
	arbitrary number of whitespaces in LaTeX environment names.
	(bug#53390)

2022-01-20  Eli Zaretskii  <eliz@gnu.org>

	Update documentation of 'clone-indirect-buffer-hook'

	* doc/emacs/buffers.texi (Indirect Buffers):
	* src/buffer.c (syms_of_buffer) <clone-indirect-buffer-hook>:
	Update the documentation of 'clone-indirect-buffer-hook' due the
	recent changes.
	* etc/NEWS: Mention the change in where the hook is run.

	* lisp/face-remap.el (face-attrs--make-indirect-safe): Doc fix.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Make textsec-link-suspicious-p less mistrustful

	* lisp/international/textsec.el (textsec-link-suspicious-p): Scale
	back the suspicion -- only warn about texts that contain a full
	explicit link.

2022-01-20  Thuna  <thuna.cing@gmail.com>  (tiny change)

	Fix tabulated-list-widen-current-column widening wrong column

	* tabulated-list.el (tabulated-list-widen-current-column): Account
	for the padding and the content width when calculating column
	width (bug#53375).

2022-01-20  Peter Münster  <pm@a16n.net>

	Make image-dired-delete-marked more resilient

	* lisp/image-dired.el (image-dired-delete-marked): Don't bug out
	on empty buffers (bug#53385).

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix thinko in previous hi-lock-read-face-name change

	* lisp/hi-lock.el (hi-lock-read-face-name): Fix the string/symbol
	logic.

2022-01-20  Andrew Hyatt  <ahyatt@gmail.com>

	Fix indirect font changes incorrectly affecting original buffer

	* lisp/face-remap.el (face-attrs--make-indirect-safe):
	(clone-indirect-buffer-hook): Set up a face remapping alist
	(bug#53294).

	* lisp/simple.el (clone-indirect-buffer): Move the point the hook
	is run.

	* src/buffer.c (Fmake_indirect_buffer, syms_of_buffer): Move the
	place where the clone-indirect-buffer-hook variable is defined, so
	that we can call it from C.

2022-01-20  Jim Porter  <jporterbugs@gmail.com>

	Consider subcommands when deciding to invoke Eshell command directly

	When an Eshell command contains an asynchronous subcommand (such as
	calling an external process), it must be evaluated iteratively.  See
	bug#30725.

	* lisp/eshell/esh-cmd.el (eshell-invoke-command): Move most of the
	logic from here...
	(eshell--invoke-command-directly): ... to here. Also add checks for
	subcommands.

	* test/lisp/eshell/eshell-tests.el (eshell-test--max-subprocess-time):
	New variable.
	(eshell-wait-for-subprocess): New function.
	(eshell-command-result-p): Use 'eshell-wait-for-subprocess'.
	(eshell-test/interp-cmd-external): New test (bug#30725).

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename the textsec-check function to textsec-suspicious-p

	* lisp/net/shr.el (shr-tag-a):
	* lisp/international/textsec-check.el (textsec-suspicious-p):
	* lisp/gnus/message.el (message-send-mail):
	* lisp/gnus/gnus-art.el (article--check-suspicious-addresses):
	* etc/NEWS (like):
	* doc/lispref/text.texi (Suspicious Text):
	(Suspicious Text): Rename the textsec-check function to
	textsec-suspicious-p.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the read-face-name completion buffer display samples

	* lisp/faces.el (read-face-name): Display face samples when
	completing (bug#53255).

	* lisp/hi-lock.el (hi-lock-read-face-name): Use read-face-name.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the textsec-domain-suspicious-p warning message

	* lisp/international/textsec.el (textsec-domain-suspicious-p):
	Improve warning message.

2022-01-20  Po Lu  <luangruo@yahoo.com>

	Fix error when describing menu items that don't have equivalent keys

	* lisp/help-fns.el (help-fns--key-bindings): Never pass nil to
	insert.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Make textsec-link-suspicious-p have fewer false positives

	* lisp/international/textsec.el (textsec-link-suspicious-p):
	Attempt to improve the domain-guessing logic.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve how menus are described in *Help*

	* lisp/help-fns.el (help-fns--insert-bindings): New function.
	(help-fns--key-bindings): Split menu/key handling and output menu
	bindings separately (bug#52870).

2022-01-20  Po Lu  <luangruo@yahoo.com>

	Make system tooltips display in the menu bar on Haiku

	* doc/emacs/haiku.texi (Haiku Basics): Update documentation.
	* src/haiku_support.cc (Highlight): Apply the hack used for
	regular menus to the menu bar as well.
	* src/haikumenu.c (digest_menu_items): Set help text on menu bar
	if `tooltip-mode' is t and system tooltips are used.
	(syms_of_haikumenu): New symbol `tooltip-mode'.

2022-01-20  Mattias Engdegård  <mattiase@acm.org>

	Fix Fchar_syntax for non-ASCII in unibyte buffers

	Fchar_syntax did not convert unibyte characters to multibyte when the
	current buffer was unibyte, in contrast to `char-syntax` in
	byte-compiled code (bug#53260).

	* src/bytecode.c (exec_byte_code): Call out to Fchar_syntax;
	the dynamic frequency is too low to justify inlining here, and it
	did lead to implementations diverging.
	* src/syntax.c (Fchar_syntax): Convert non-ASCII unibyte values to
	multibyte.
	* test/src/syntax-tests.el (syntax-char-syntax): New test.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Re-enable some textsec-tests after recent bidi.c fix

2022-01-20  Jim Porter  <jporterbugs@gmail.com>

	In Eshell, allow "-n" to suppress the trailing newline for "plain" echo

	* doc/misc/eshell.texi (Built-in commands): Expand on the
	documentation of echo (bug#27361).
	* lisp/eshell/em-basic.el (eshell-echo): Respect OUTPUT-NEWLINE even
	when 'eshell-plain-echo-behavior' is non-nil.
	(eshell/echo): Add "-N" option and recommend its use over "-n" in
	Lisp-friendly echo.
	(eshell/printnl): Simplify; 'eshell-stringify' is equivalent to
	calling 'eshell-echo' here.

2022-01-20  Eli Zaretskii  <eliz@gnu.org>

	Fix 'bidi-find-overridden-directionality' for Lisp strings

	* src/bidi.c (bidi_find_first_overridden): Don't use ZV for Lisp
	strings.  Reported by Lars Ingebrigtsen <larsi@gnus.org>.

2022-01-20  Po Lu  <luangruo@yahoo.com>

	Make the undelete-frame-mode menu item a toggle

	* lisp/menu-bar.el (menu-bar-file-menu): Make the undelete frame
	mode option a toggle.  (bug#53382)
	Also enable some options that were disabled on NS, but should no
	longer be since NS now supports the tab bar.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Make key-valid-p work in Turkey

	* lisp/keymap.el (key-valid-p): Inhibit case folding, otherwise
	(key-valid-p "I") would return nil in tr_TR environments.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak textsec-link-suspicious-p

	* lisp/international/textsec.el (textsec-link-suspicious-p): Don't
	mark dates as suspicious.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Add test for bug#51733

2022-01-20  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of textsec

	* lisp/international/textsec-check.el (textsec-check): Doc fixes.

	* doc/lispref/text.texi (Suspicious Text): Improve wording and
	indexing.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow suspicious names with some forms of bidi controls

	* lisp/international/textsec.el (textsec-name-suspicious-p): Allow
	names with bidi-find-overridden-directionality.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve textsec-domain-suspicious-p message

	* lisp/international/textsec.el (textsec-domain-suspicious-p):
	Improve warning message.

2022-01-20  Eli Zaretskii  <eliz@gnu.org>

	Allow disabling 'undelete-frame-mode' from the menu bar

	* lisp/menu-bar.el (menu-bar-file-menu): Add
	'disable-undelete-frame-mode' menu item.  (Bug#53382)

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Document textsec

	* doc/lispref/elisp.texi (Top): Add menu.
	* doc/lispref/text.texi (Text): Add menu.
	(Suspicious Text): New node.

	* lisp/international/textsec-check.el (textsec-check): Adjust doc
	string.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Check link text domain suspiciousness

	* lisp/international/textsec.el (textsec-link-suspicious-p): Check
	whether the domain in the link text is suspicious.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Expand textsec-link-suspicious-p checking

	* lisp/international/textsec.el (textsec-link-suspicious-p): Check
	the text more thoroughly for link-like things.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve textsec-domain-suspicious-p message

	* lisp/international/textsec.el (textsec-domain-suspicious-p):
	Ensure that we're not confusing the user if there's a directional
	override in the string we're checking.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new bidi-string-strip-control-characters function

	* lisp/international/characters.el
	(bidi-string-strip-control-characters): New function.

2022-01-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Make article--check-suspicious-addresses more resilient

	* lisp/gnus/gnus-art.el (article--check-suspicious-addresses): Be
	more resilient to junk in headers.  (But all this should be rewritten
	eventually, because the entire process is way too convoluted.)

2022-01-20  Po Lu  <luangruo@yahoo.com>

	Make `nil' values of the `:position' underline property work correctly

	* src/xfaces.c (Finternal_set_lisp_face_attribute): Handle cases
	where the underline property `:position' is nil.

2022-01-19  Po Lu  <luangruo@yahoo.com>

	Port hourglass display to XCB

	* src/xterm.c (x_show_hourglass):
	(x_hide_hourglass): Use straightforward translations to XCB if
	available.

2022-01-19  Po Lu  <luangruo@yahoo.com>

	Get rid of calls to XRenderQueryExtension after terminal initialization

	* src/image.c (x_create_xrender_picture):
	(Fimage_transforms_p): Use `xrender_supported_p'.

	* src/xterm.c (x_term_init): Query for XRender support and
	extension versions.

	* src/xterm.h (struct x_display_info): New fields
	`xrender_supported_p', `xrender_major' and `xrender_minor'.

2022-01-19  Po Lu  <luangruo@yahoo.com>

	Implement selection ownership on Haiku

	* lisp/term/haiku-win.el (haiku-selection-owner-p): New
	declaration.
	(gui-backend-selection-owner-p): Implement using newly exposed
	primitive.

	* src/haiku_select.cc
	(count_clipboard, count_primary, count_secondary): New
	variables for tracking selection ownership.
	(BClipboard_set_system_data):
	(BClipboard_set_primary_selection_data):
	(BClipboard_set_secondary_selection_data): Set ownership
	variables.
	(BClipboard_owns_clipboard):
	(BClipboard_owns_primary):
	(BClipboard_owns_secondary): New functions.

	* src/haikuselect.c (Fhaiku_selection_owner_p): New function.
	(syms_of_haikuselect): Define new subr.
	* src/haikuselect.h: New prototypes.

2022-01-19  Derek Passen  <dpassen1@gmail.com>  (tiny change)

	Add clojure-lsp support for clojure

	* eglot.el (eglot-server-programs): Add clojure-lsp for Clojure.
	* README.md: Document the above change.

2022-01-19  Andrea Corallo  <akrl@sdf.org>

	Suspend temp .elc production when native compiling till when necessary

	* lisp/emacs-lisp/bytecomp.el (byte-to-native-output-buffer-file):
	Rename from `byte-to-native-output-file'.
	(byte-write-target-file): Update.
	(byte-compile-file): Write the temporary .elc only when not native
	compiling.
	(byte-compile-file): Kill the .elc buffer only when not native
	compiling.
	* lisp/emacs-lisp/comp.el (batch-byte+native-compile): Instead of just
	renaming the temporary .elc make use of `byte-write-target-file' to
	write it down and kill the temporary buffer.

2022-01-19  Andrea Corallo  <akrl@sdf.org>

	* Move some code in in `byte-write-target-file'.

	* lisp/emacs-lisp/bytecomp.el (byte-write-target-file): New function
	spilling code from `byte-compile-file'.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make article--check-suspicious-addresses more resilient

	* lisp/gnus/gnus-art.el (article--check-suspicious-addresses):
	Don't bug out on mbox-less addresses.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak the previous suspicious Message change

	* lisp/gnus/message.el (message-check-recipients)
	(message-send-mail): Move the check to after encoding.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make Message check for invalid recipients before sending

	* lisp/gnus/message.el (message-check-recipients): Check for
	suspicious addresses before sending (bug#51733).

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make textsec-mixed-numbers-p actually work

	* lisp/international/textsec.el (textsec-mixed-numbers-p): Fix the
	test.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make Gnus check for suspicious headers

	* lisp/gnus/gnus-art.el (gnus-treat-suspicious-headers): New user
	option.
	(gnus-article-treat-suspicious-headers): New function.
	(article-decode-encoded-words): Hook into the machinery to check
	headers.
	(article--check-suspicious-addresses): New function.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Add text for suspicious links

	* lisp/international/textsec-check.el (textsec-check): Note `link'.
	(textsec-propertize): Fix typo.

	* lisp/international/textsec.el (textsec-link-suspicious-p): New
	function.

	* lisp/net/shr.el (shr-tag-a): Check for sus links.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't overwrite the link text in shr-tag-a for suspicious URLs

	* lisp/net/shr.el (shr-tag-a): Tweak how the suspiciousness
	warning is handled.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix thinko in textsec-url-suspicious-p

	* lisp/international/textsec.el (textsec-url-suspicious-p): Don't
	bug out on non-HTTP URLs.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make shr mark links with suspicious URLs

	* lisp/international/textsec-check.el (textsec-propertize): New
	function.
	(textsec-check): Only check, don't alter STRING.

	* lisp/international/textsec.el (textsec-url-suspicious-p): New
	function.

	* lisp/net/shr.el (shr-tag-a): Mark suspicious links.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new file textsec-check.el

	* lisp/international/textsec-check.el: New file.
	* lisp/international/textsec.el
	(textsec-email-address-header-suspicious-p): Rename.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Mark whole-script confusables as suspicious domains

	* lisp/international/textsec.el (textsec-domain-suspicious-p):
	Consider domain names that are whole-script confusables with ASCII
	to be suspicious.  (I think this is what the Unicode standard is
	recommending, but I'm not 100% sure.)

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Split textsec-email-address-suspicious-p into two functions

	* lisp/international/textsec.el
	(textsec-email-address-suspicious-p): Made into its own function.
	(textsec-email-suspicious-p): Use it and adjust doc strings.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make textsec-suspicious-nonspacing-p work on marks

	* lisp/international/textsec.el (textsec-suspicious-nonspacing-p):
	We're only interested in nonspacing marks, not control characters
	in this test.

2022-01-19  Po Lu  <luangruo@yahoo.com>

	Fix recent change for big endian systems where `Atom' is 64 bits

	* src/xfns.c (x_create_tip_frame): Cast atoms to xcb_atom_t
	and pass a reference to that to xcb_change_property instead.

2022-01-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/cus-face.el (custom-face-attributes): Expose the lambdas

2022-01-19  Po Lu  <luangruo@yahoo.com>

	Port some X11 tooltip code to XCB

	* configure.ac: Require `xcb-aux' to be present before using
	XCB.
	* src/xfns.c (x_sync):
	(x_create_tip_frame):
	(Fx_show_tip): Port window related code to XCB.

2022-01-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Deconfuse textsec doc strings slightly

	* lisp/international/textsec.el (textsec-name-suspicious-p):
	(textsec-domain-suspicious-p):
	(textsec-local-address-suspicious-p):
	(textsec-name-suspicious-p):
	(textsec-suspicious-nonspacing-p):
	(textsec-email-suspicious-p): Suspiciosness isn't only about
	homoglyphs, so don't claim so in the doc strings.

2022-01-19  Robert Pluim  <rpluim@gmail.com>

	Improve textsec doc strings

	* lisp/international/textsec.el (textsec-domain-suspicious-p)
	(textsec-local-address-suspicious-p, textsec-name-suspicious-p)
	(textsec-suspicious-nonspacing-p): Improve doc strings.

2022-01-19  Po Lu  <luangruo@yahoo.com>

	Use Cairo XCB surfaces when XCB is available

	This lets us get at goodies such as shm support, which aren't
	available with the xlib surface.  (bug#52120)

	* configure.ac: Test for cairo-xcb if cairo is available on X.
	* src/xterm.c (USE_CAIRO_XCB_SURFACE): New define.
	(x_begin_cr_clip): Create XCB surfaces if available.
	(x_try_cr_xlib_drawable):
	(x_scroll_run): Handle XCB surfaces.
	(x_term_init): Find XCB visualtype structure.
	* src/xterm.h (struct x_display_info): New field `xcb_visual'.
	* src/xwidget.c (x_draw_xwidget_glyph_string): Fix integer
	overflow.

2022-01-19  Eli Zaretskii  <eliz@gnu.org>

	Minor improvement in textsec diagnostics

	* lisp/international/textsec.el (textsec-suspicious-nonspacing-p):
	Clarify wording of the strings returned to explain the suspicious
	use of nonspacing characters.

2022-01-19  Michael Albinus  <michael.albinus@gmx.de>

	Respect structure of Tramp archive file names

	* lisp/net/tramp.el (tramp-make-tramp-file-name):
	Respect structure of archive file names.

2022-01-19  Po Lu  <luangruo@yahoo.com>

	* src/haikufns.c (Fx_display_mm_width): Fix copy-paste error.

2022-01-19  Po Lu  <luangruo@yahoo.com>

	Rename system tooltip variables to `use-system-tooltips'

	* doc/emacs/frames.texi (Tooltips):
	* doc/emacs/haiku.texi (Haiku Basics):
	* doc/lispref/display.texi (Tooltips): Document
	`use-system-tooltips' instead.

	* etc/NEWS: Announce new option.
	* lisp/cus-start.el (standard): Add new option.

	* lisp/term/haiku-win.el (haiku-use-system-tooltips):
	* lisp/term/pgtk-win.el (x-gtk-use-system-tooltips):
	* lisp/term/x-win.el (x-gtk-use-system-tooltips): Add aliases
	for old options.

	* src/frame.c (syms_of_frame): New variable
	`use-system-tooltips'.

	* src/haikufns.c (Fx_show_tip):
	(syms_of_haikufns):
	* src/pgtkfns.c (x_hide_tip):
	(Fx_show_tip):
	(syms_of_pgtkfns):
	* src/xfns.c (x_hide_tip):
	(Fx_show_tip):
	(syms_of_xfns): Use `use-system-tooltips' instead of the old
	platform dependent options.

2022-01-18  Po Lu  <luangruo@yahoo.com>

	Use more reliable timestamps for some kinds of events on Haiku

	* src/haiku_support.cc (DispatchMessage):
	(MouseMoved):
	(MouseDown):
	(MouseUp): Set `time' field of event structures to input server
	time.
	* src/haiku_support.h (struct haiku_key_event):
	(struct haiku_mouse_motion_event):
	(struct haiku_button_event): New field `time'.
	* src/haikuterm.c (haiku_read_socket): Use input server time
	if provided.

2022-01-18  Po Lu  <luangruo@yahoo.com>

	Fix event timestamp generation on Haiku

	* src/haikuterm.c (haiku_read_socket): Use milliseconds for event
	time.

2022-01-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-generic-tests.el: Fix warning

	* test/lisp/emacs-lisp/cl-generic-tests.el (ert): Require at run-time
	for `ert--get-explainer`.

2022-01-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	VC: Fix tests for SCCS and Mtn

	* test/lisp/vc/vc-tests.el: Prefer closures to `(lambda ...).
	(vc-test-mtn05-rename-file, vc-test-mtn06-version-diff): Skip.

	* lisp/vc/vc.el (vc-responsible-backend): Fix vc-test--register on SCCS.

2022-01-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	autoload.el: Fix corner case and avoid encoding issues

	* lisp/emacs-lisp/autoload.el (autoload-print-form): Don't burp when
	autoloading a `cl-defmethod`.
	(autoload-rubric): Support non-UTF-8 chars and enforce Unix EOLs.

2022-01-18  Eli Zaretskii  <eliz@gnu.org>

	Improve doc strings in textsec.el

	* lisp/international/textsec.el (textsec-mixed-numbers-p)
	(textsec-ascii-confusable-p, textsec-resolved-script-set)
	(textsec-single-script-confusable-p)
	(textsec-mixed-script-confusable-p)
	(textsec-whole-script-confusable-p, textsec-domain-suspicious-p)
	(textsec-local-address-suspicious-p, textsec-name-suspicious-p)
	(textsec-suspicious-nonspacing-p): Doc fix.

2022-01-18  Eli Zaretskii  <eliz@gnu.org>

	Remove 'cuneiform-numbers-and-punctuation' from w32font.c

	* src/w32font.c (syms_of_w32font, font_supported_scripts): Remove
	'cuneiform-numbers-and-punctuation'.  Reported by Kévin Le Gouguec
	<kevin.legouguec@gmail.com>.

2022-01-18  Lars Ingebrigtsen  <larsi@gnus.org>

	The name in textsec-email-suspicious-p is optional

	* lisp/international/textsec.el (textsec-email-suspicious-p): The
	name is optional.

2022-01-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Add textsec functions for verifying email addresses

	* lisp/international/characters.el (bidi-control-characters):
	Rename from glyphless--bidi-control-characters for use in textsec,
	and add LRM/RLM/ALM.
	(update-glyphless-char-display): Adjust the code.

	* lisp/international/textsec.el (textsec-local-address-suspicious-p)
	(textsec-name-suspicious-p, textsec-suspicious-nonspacing-p)
	(textsec-email-suspicious-p): New functions.

2022-01-18  Po Lu  <luangruo@yahoo.com>

	Intern virtual modifier atoms the smart way on X

	* src/xterm.c (x_find_modifier_meanings): Get rid of calls to
	XInternAtom.
	(x_term_init): Initialize atom refs for virtual modifiers and
	make sure to only call `x_find_modifier_meanings' after they
	are interned.
	* src/xterm.h (struct x_display_info): New fields for virtual
	modifier atoms.

2022-01-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Add textsec-domain-suspicious-p

	* .gitignore: Ignore idna-mapping.el.

	* admin/notes/unicode: Note idna-mapping file.
	* admin/unidata/IdnaMappingTable.txt: New file.

	* admin/unidata/Makefile.in (all): Generate idna-mapping.el.

	* admin/unidata/unidata-gen.el (unidata-gen-idna-mapping): Generate.

	* lisp/international/textsec.el (textsec-domain-suspicious-p): New
	function.

2022-01-18  Michael Albinus  <michael.albinus@gmx.de>

	Morka handling of multi-hops in Tramp more consistent

	* lisp/net/tramp.el (tramp-make-tramp-file-name): Adapt argument list.
	Add hops to `tramp-default-proxies-alist'.
	(tramp-find-foreign-file-name-handler): Adapt argument list.
	(tramp-handle-abbreviate-file-name): Abbreviate multi-hops.
	(tramp-handle-file-remote-p): Adapt handling of hops.
	(tramp-add-hops): New defun.
	(tramp-compute-multi-hops): Use it.

	* lisp/net/tramp.el (tramp-make-tramp-hop-name, tramp-get-buffer)
	(tramp-file-name-handler, tramp-handle-file-truename)
	(tramp-handle-insert-file-contents, tramp-local-host-p)
	(tramp-read-passwd, tramp-clear-passwd):
	* lisp/net/tramp-archive.el (tramp-archive-dissect-file-name)
	(tramp-archive-gvfs-file-name):
	* lisp/net/tramp-cache.el (tramp-get-hash-table):
	* lisp/net/tramp-sh.el (tramp-sh-handle-file-truename)
	(tramp-sh-handle-make-process, tramp-sh-handle-process-file)
	(tramp-sh-file-name-handler-p, tramp-get-remote-path):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-truename):
	Adapt callees.

	* test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
	(tramp-test02-file-name-dissect-simplified)
	(tramp-test02-file-name-dissect-separate)
	(tramp-test07-abbreviate-file-name): Adapt tests.

2022-01-18  Po Lu  <luangruo@yahoo.com>

	* src/haikuterm.c (haiku_read_socket): Add work for frame size bug.

	BWindow::ResizeTo seems to have the same rounding issues that
	BRect has, but I have no idea how to solve it there.  As a
	temporary workaround until a solution has been found, avoid
	garbaging tooltip frames when FrameResized reports different
	dimensions from what they were set to.

2022-01-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Add textsec predicates for different types of confusability

	* lisp/international/textsec.el (textsec-resolved-script-set)
	(textsec-single-script-confusable-p)
	(textsec-mixed-script-confusable-p)
	(textsec-whole-script-confusable-p): New functions.

2022-01-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Add textsec support for confusable characters

	* admin/notes/unicode: Note the confusables.txt file.
	* admin/unidata/Makefile.in (${unidir}/uni-confusable.el):
	Generate the confusable file.

	* admin/unidata/README (https): Add confusables.txt.

	* admin/unidata/confusables.txt: New file.

	* admin/unidata/unidata-gen.el (unidata-gen-confusable): Parse the
	confusables.txt file.

	* lisp/international/textsec.el (textsec-ascii-confusable-p)
	(textsec-unconfuse-string): New functions.

2022-01-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve textsec-restriction-level doc string

	* lisp/international/textsec.el (textsec-restriction-level):
	Improve doc string.

2022-01-18  Po Lu  <luangruo@yahoo.com>

	* src/haikufns.c (Fx_show_tip): Fix typo.

2022-01-18  Po Lu  <luangruo@yahoo.com>

	Fix default value of `no-special-glyphs' frame parameter on Haiku

	* src/haikufns.c (haiku_create_frame): Make `no-special-glyphs'
	nil by default.

2022-01-18  Po Lu  <luangruo@yahoo.com>

	Improve tooltip implementation on Haiku

	This fixes several issues: tooltips having no right internal
	border, reusing tooltips occasionally freezing Emacs, and
	inconsistent behavior when compared to X.

	* src/haiku_support.cc (BWindow_resize): Revert a recent change.
	(BView_move_frame):
	(BWindow_set_avoid_focus): Stop sync'ing when locked.  This
	tends to cause lockups for an unknown reason.
	* src/haikufns.c (initial_setup_back_buffer): New function.
	(haiku_create_frame): Remove tooltip related code.
	(haiku_set_internal_border_width): Handle cases where the face
	cache is NULL and/or the window has not been created.
	(haiku_set_inhibit_double_buffering): Likewise.
	(haiku_create_tip_frame): New function.
	(Fx_create_frame): Remove tooltip specific code.
	(Fx_show_tip): Synchronize code with X.

	* src/haikuterm.c (haiku_new_font): Don't adjust size on tooltip
	frames.
	(haiku_read_socket): Draw internal border on tooltip frames
	during resize.
	(haiku_clear_under_internal_border): Handle cases where the face
	cache is NULL.

2022-01-18  Po Lu  <luangruo@yahoo.com>

	* lisp/tooltip.el (tooltip-show-help): Fix typo.

2022-01-17  Po Lu  <luangruo@yahoo.com>

	* lisp/tooltip.el: Fix warning when built on a non-Haiku system.

2022-01-17  Po Lu  <luangruo@yahoo.com>

	Fix system tooltips above menus

	* src/haikufns.c (Fx_show_tip): Disable frame reuse inside a
	menu.
	(syms_of_haikufns): New symbol `tooltip-reuse-hidden-frame'.

2022-01-17  Po Lu  <luangruo@yahoo.com>

	Allow non-system tooltips to display above menus on Haiku

	* doc/emacs/haiku.texi (Haiku Basics): Document that tooltips
	can now be displayed above the menu bar.

	* lisp/tooltip.el (tooltip-show-help): Only display help text in
	the echo area if Haiku system tooltips are enabled.

	* src/haiku_support.cc (FlipBuffers): Stop flushing view.
	* src/haikufns.c (Fx_show_tip): Fix a sizing bug leading to
	tooltips needing two redisplays to display correctly.
	* src/haikuterm.c (haiku_read_socket): Ignore resize events on
	tooltips.

2022-01-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	(hack-local-variables--find-variables): Use `user-error`

	* lisp/files.el (hack-local-variables--find-variables):
	Incorrect formatting are not coding errors.

2022-01-17  Stefan Kangas  <stefankangas@gmail.com>

	Change rust language server to rust-analyzer

	rust-analyzer is the officially blessed Language Server for Rust:
	https://github.com/rust-lang/rfcs/pull/2912

	Also drop the special support code for RLS.

	* eglot.el (eglot-server-programs): Add rust-mode language server
	"rust-analyzer" and prefer it to the older "rls".
	(eglot-rls, jsonrpc-connection-ready-p)
	(eglot-handle-notification): Delete special support for "rls".

	* eglot-tests.el (rls-analyzer-watches-files)
	(rls-analyzer-hover-after-edit): Rename to ...
	(rust-analyzer-watches-files)
	(rust-analyzer-hover-after-edit): ... this.  Update tests to work
	with rust-analyzer.
	* README.md: Update references for RLS to point to rust-analyzer.
	* NEWS.md: Announce above change.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/803

2022-01-17  Eli Zaretskii  <eliz@gnu.org>

	Fix minor inconsistencies in 'char-script-table'

	* admin/unidata/blocks.awk (name2alias): Map some obscure blocks
	to their native scripts, to follow Scripts.txt.

	* lisp/international/characters.el (char-script-table): Add
	few exceptions.
	* lisp/international/fontset.el (script-representative-chars):
	Remove scripts no longer used.

2022-01-17  Eli Zaretskii  <eliz@gnu.org>

	Doc fixes in textsec.el

	* lisp/international/textsec.el (textsec-scripts)
	(textsec-single-script-p, textsec-covering-scripts): Clarify "script".

2022-01-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Change textsec-mixed-numbers-p to use recommended algorithm

	* lisp/international/textsec.el (textsec-mixed-numbers-p): New
	function.

2022-01-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function textsec-mixed-numbers-p

	* lisp/international/textsec.el (textsec-mixed-numbers-p): New
	function.

2022-01-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add some textsec-restriction-level comments

	* lisp/international/textsec.el (textsec-restriction-level): Add
	comment about source of the list of languages.

2022-01-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add textsec-restriction-level function

	* lisp/international/textsec.el (textsec-restriction-level): New
	function.

2022-01-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some doc strings in textsec.el

	* lisp/international/textsec.el (textsec-single-script-p): Fix
	typo in doc string.
	(textsec-covering-scripts): Improve doc string and sort the results.

2022-01-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid loading the possibly stale unidata-gen.elc file

	* admin/unidata/Makefile.in (${unidir}/uni-scripts.el): Fix .elc
	  staleness.  (Should probably be fixed in a different way.)

2022-01-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add support for functions that deal with Unicode scripts

	* admin/unidata/Makefile.in (${unidir}/uni-scripts.el): Build
	uni-scripts.el.

	* admin/unidata/Scripts.txt:
	* admin/unidata/ScriptExtensions.txt:
	* admin/unidata/PropertyValueAliases.txt: New files from Unicode.

	* admin/unidata/README: Update.

	* admin/unidata/unidata-gen.el (unidata-gen-charprop): Allow
	writing other data, too.
	(unidata-gen-scripts, unidata-gen--read-script-aliases)
	(unidata-gen--insert-file): New functions to parse the Script* files.

	* lisp/international/textsec.el: Implement some functions that
	work on scripts.

2022-01-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Move the Gnus range functions to a new range.el file

	* lisp/emacs-lisp/range.el: New file.

	* lisp/gnus/gnus-agent.el (range):
	(gnus-agent-synchronize-group-flags):
	(gnus-agent-possibly-alter-active):
	(gnus-agent-fetch-headers):
	(gnus-agent-read-agentview):
	(gnus-agent-fetch-group-1):
	(gnus-agent-read-p):
	(gnus-agent-expire-group-1):
	(gnus-agent-retrieve-headers): Adjust callers.

	* lisp/gnus/gnus-art.el (range):
	(gnus-article-describe-bindings):

	* lisp/gnus/gnus-cloud.el (range):
	(gnus-cloud-available-chunks):

	* lisp/gnus/gnus-draft.el (gnus-group-send-queue):

	* lisp/gnus/gnus-group.el (range):
	(gnus-group-line-format-alist):
	(gnus-number-of-unseen-articles-in-group):
	(gnus-group-update-eval-form):
	(gnus-group-read-group):
	(gnus-group-delete-articles):
	(gnus-group-catchup):
	(gnus-group-expire-articles-1):
	(gnus-add-marked-articles):

	* lisp/gnus/gnus-int.el (gnus-request-marks):

	* lisp/gnus/gnus-kill.el (gnus-apply-kill-file-internal):

	* lisp/gnus/gnus-range.el (gnus-range-difference)
	(gnus-sorted-range-intersection, gnus-uncompress-range)
	(gnus-add-to-range, gnus-remove-from-range)
	(gnus-member-of-range, gnus-list-range-intersection)
	(gnus-list-range-difference, gnus-range-length, gnus-range-add)
	(gnus-range-map): Make into obsolete aliases.

	* lisp/gnus/gnus-start.el (gnus-make-articles-unread):
	(gnus-convert-old-ticks):
	(gnus-read-old-newsrc-el-file):

	* lisp/gnus/gnus-sum.el (gnus-select-newsgroup):
	(gnus-articles-to-read):
	(gnus-articles-to-read):
	(gnus-killed-articles):
	(gnus-adjust-marked-articles):
	(gnus-update-marks):
	(gnus-update-marks):
	(gnus-compute-read-articles):
	(gnus-list-of-read-articles):
	(gnus-summary-update-info):
	(gnus-summary-move-article):
	(gnus-summary-expire-articles):
	(gnus-update-read-articles):
	(gnus-summary-insert-old-articles):
	(gnus-summary-insert-old-articles):
	(gnus-summary-insert-old-articles):

	* lisp/gnus/mail-source.el (gnus-range):
	(gnus-compress-sequence):

	* lisp/gnus/nnheader.el (range):
	(gnus-range-add):
	(nnheader-update-marks-actions):

	* lisp/gnus/nnimap.el (nnimap-update-info):
	(nnimap-update-info):
	(nnimap-update-info):
	(nnimap-update-qresync-info):
	(nnimap-update-qresync-info):
	(nnimap-update-qresync-info):
	(nnimap-parse-copied-articles):

	* lisp/gnus/nnmaildir.el (nnmaildir-request-update-info):
	(nnmaildir-request-update-info):
	(nnmaildir-request-expire-articles):
	(nnmaildir-request-expire-articles):
	(nnmaildir-request-set-mark):

	* lisp/gnus/nnmairix.el (nnmairix-request-set-mark):

	* lisp/gnus/nnmbox.el (nnmbox-record-active-article):
	(nnmbox-record-deleted-article):

	* lisp/gnus/nnml.el (nnml-request-compact-group):

	* lisp/gnus/nnvirtual.el (nnvirtual-request-expire-articles):
	* lisp/gnus/nnselect.el (numbers-by-group):
	(nnselect-request-update-info):
	(nnselect-push-info):

2022-01-17  Po Lu  <luangruo@yahoo.com>

	Merge from origin/emacs-28

	f393d0d441 Fix regression leading to flickering tooltips when the mou...

2022-01-17  Eli Zaretskii  <eliz@gnu.org>

	Revert "Add undelete-frame-max instead of undelete-frame-mode (bug#51883)"

	This reverts commit 714e11d53534416b6519396a9df5d62054731810.

	That commit was unilateral and disregarded past discussions.

2022-01-17  Eli Zaretskii  <eliz@gnu.org>

	Revert "* etc/NEWS: Improve wording of 'undelete-frame-max' (bug#51883)."

	This reverts commit 65666c47863c4ad2ed4bacd1a0bc5e638269df52.

	The original commit was unilateral and disregarded past
	discussions.

2022-01-17  Po Lu  <luangruo@yahoo.com>

	Fix Emacs icon not appearing on Haiku

	* lib-src/be_resources.cc (main): Scale input bitmap
	appropriately before setting it as the mini and large icons.
	* src/Makefile.in (Emacs): Add dependency on
	`lib-src/be-resources'.

2022-01-17  Po Lu  <luangruo@yahoo.com>

	Use BControlLook to determine scroll bar size on Haiku

	* src/haiku_support.cc (BScrollBar_default_size): Use
	BControlLook instead of legacy constants.

2022-01-17  Po Lu  <luangruo@yahoo.com>

	Display override redirect frames in all workspaces on Haiku

	* src/haiku_support.cc (class EmacsWindow): New field
	`pre_override_redirect_workspaces'.
	(BWindow_set_override_redirect): Set window to display on all
	workspaces.

2022-01-17  Michael Albinus  <michael.albinus@gmx.de>

	Improve handling of INFILE in tramp*-process-file (Bug#53284)

	* lisp/net/tramp-adb.el (tramp-adb-handle-process-file):
	* lisp/net/tramp-sh.el (tramp-sh-handle-process-file):
	* lisp/net/tramp-smb.el (tramp-smb-handle-process-file):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file):
	Improve handling of INFILE.  Fix thinko using
	`process-file-side-effects'.  (Bug#53284)

	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	Use `tramp-sshfs-handle-set-file-times'.
	(tramp-sshfs-handle-set-file-times): New defun.

	* test/lisp/net/tramp-tests.el (tramp-test28-process-file): Extend test.

2022-01-17  Juri Linkov  <juri@linkov.net>

	* etc/NEWS: Improve wording of 'undelete-frame-max' (bug#51883).

2022-01-17  Po Lu  <luangruo@yahoo.com>

	* src/haikufns.c (Fx_show_tip): Sync after making window visible.

2022-01-16  Po Lu  <luangruo@yahoo.com>

	Really eliminate tooltip flicker on Haiku

	* src/haikufns.c (tip_frame): Make non-static.
	* src/haikuterm.c (haiku_read_socket): Ignore motion events that
	didn't actually move when a tip frame is visible.
	* src/haikuterm.h (tip_frame): Declare.

2022-01-16  Po Lu  <luangruo@yahoo.com>

	Translate timestamps when using GTK native input

	* src/gtkutil.c (xg_widget_key_press_event_cb): Use timestamp
	specified in key event.
	(xg_filter_key): Translate timestamps.

2022-01-16  Po Lu  <luangruo@yahoo.com>

	Exercise wire right after event is filtered for native input

	* src/xterm.c (handle_one_xevent): Run a no-op immediately after
	an event was filtered by GDK.

2022-01-16  Juri Linkov  <juri@linkov.net>

	Add undelete-frame-max instead of undelete-frame-mode (bug#51883)

	* doc/emacs/frames.texi (Frame Commands): Replace
	undelete-frame-mode with undelete-frame-max.

	* lisp/frame.el (undelete-frame-max): New defcustom, by default 1.
	(undelete-frame--handle-delete-frame): Use undelete-frame-max
	instead of hard-coded 16.
	(undelete-frame-mode): Remove function.
	(after-init-hook): Add hook undelete-frame--handle-delete-frame to
	delete-frame-functions using after-init-hook to not store the
	initial frame.
	(undelete-frame): Remove undelete-frame-mode.  Use undelete-frame-max
	instead of hard-coded 16.

	* lisp/menu-bar.el (menu-bar-file-menu): Remove menu item undelete-frame-mode.

	* src/frame.c (Fdelete_frame): Replace `undelete-frame-mode' with
	`undelete-frame-max' in the docstring.

2022-01-16  Matthias Meulien  <orontee@gmail.com>

	Extend Outline mode with default visibility state

	* etc/NEWS: Announce support for default visibility state (bug#51809).

	* lisp/outline.el (outline-mode, outline-minor-mode): Ensure default
	visibility state is applied with outline-apply-default-state.
	(outline-default-state, outline-default-rules)
	(outline-default-long-line, outline-default-line-count): New defcustoms.
	(outline-apply-default-state, outline-show-only-headings)
	(outline--show-headings-up-to-level): New functions.

2022-01-16  Po Lu  <luangruo@yahoo.com>

	Fix XI2 event filtering for very old versions of libXi

	* src/xterm.c (handle_one_xevent): Handle cases where
	xev->display is NULL.

2022-01-16  Stefan Kangas  <stefankangas@gmail.com>

	* eglot.el (eglot--server-capable): don't use obsolete name.

2022-01-16  Stefan Kangas  <stefankangas@gmail.com>

	Obsolete eglot--plist-keys in favor of map-keys

	* eglot.el (eglot--plist-keys): Make into obsolete function alias
	for map-keys.

2022-01-16  Po Lu  <luangruo@yahoo.com>

	Fix the xft build

	* src/xsettings.h [!HAVE_PGTK]: Include dispextern.h and remove
	duplicate definition of Display_Info.

2022-01-16  Po Lu  <luangruo@yahoo.com>

	Use kMenuWindowFeel on Haiku toolkip windows

	* src/haiku_support.cc (BWindow_set_tooltip_decoration): Use
	kMenuWindowFeel and set flags here.
	* src/haikufns.c (Fx_show_tip): Don't set_avoid_focus manually
	since setting tooltip decorations already does that.

2022-01-16  Po Lu  <luangruo@yahoo.com>

	Make help event generation on Haiku behave closer to X

	* src/haikuterm.c (haiku_read_socket): Generate help events more
	like how X does it.

2022-01-16  Po Lu  <luangruo@yahoo.com>

	Reduce poll time for Haiku file dialogs

	* src/haiku_support.c (be_popup_file_dialog): Reduce idle
	processor load by increasing timeout.  The timeout is still too
	low to be noticeable by the user.

2022-01-16  Po Lu  <luangruo@yahoo.com>

	* src/gtkutil.c (xg_widget_key_press_event_cb): Also raise input signal.

2022-01-16  Yuuki Harano  <masm+github@masm11.me>

	* src/pgtkterm.c (evq_flush): Shift events one by one

2022-01-16  Po Lu  <luangruo@yahoo.com>

	Avoid focus and allow monospace text in tooltip frames on Haiku

	* src/haikufns.c (Fx_show_tip): Set avoid focus on tooltip
	frames.

	* src/haikuterm.c (haiku_default_font_parameter): Don't special
	case the default font on tooltip frames, since the bug that was
	supposed to work around has already been fixed.

2022-01-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e488601849 Update to Org 9.5.2-9-g7ba24c
	95640360f0 * lisp/net/dictionary.el (dictionary-context-menu): Use pa...

2022-01-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	7f36aca99d * lisp/indent.el (tab-first-completion): Fix incorrect cho...

2022-01-16  Po Lu  <luangruo@yahoo.com>

	Update modifier meanings even if an xkb_desc was not available

	* src/xterm.c (handle_one_event): Always update modifiers after
	the keyboard mapping is refreshed.

2022-01-15  Po Lu  <luangruo@yahoo.com>

	* src/xwidget.c (webkit_js_to_lisp): Use correct constant to check size.

2022-01-15  Po Lu  <luangruo@yahoo.com>

	Fix a minor snafu when resizing frames on Haiku

	* src/haiku_support.cc (BWindow_resize): Adjust for minor snafu
	where BWindow::ResizeTo uses BRect-style width and height
	instead of actual width and height.

2022-01-15  Tassilo Horn  <tsdh@gnu.org>

	Add some more mailcap tests.

	* test/lisp/net/mailcap-resources/mailcap: New file.
	* test/lisp/net/mailcap-resources/test.test: New file.
	* test/lisp/net/mailcap-tests.el (with-pristine-mailcap): New macro.
	(mailcap-parsing-and-mailcap-mime-info): New test for parsing mailcap
	files and selecting the right viewer.
	(mailcap--test-result): New variable.
	(mailcap--test-viewer): New function.
	(mailcap-view-file): New test for mailcap-view-file.

2022-01-15  Stefan Kangas  <stefankangas@gmail.com>

	Remove unnecessary compatibility code

	* eglot.el (eglot-mode-map): Remove unnecessary compatibility
	code.  We already depend on eldoc 0.11.0.

2022-01-15  Juri Linkov  <juri@linkov.net>

	* lisp/mouse.el (context-menu-map): Select clicked window (bug#53249).

2022-01-15  Juri Linkov  <juri@linkov.net>

	More fixes for recently committed context-menu additions from bug#52973

	* lisp/hi-lock.el (highlight-symbol-at-mouse): New defalias.
	(hi-lock-face-symbol-at-mouse): Rename from hi-lock-symbol-at-mouse.
	(hi-lock-context-menu): Use thing-at-mouse and middle-separator.

	* lisp/man.el (Man-context-menu): Fix Man-at-mouse and use middle-separator.

	* lisp/mouse.el (context-menu-functions): Remove context-menu-online-search.
	Add occur-context-menu and dictionary-context-menu (bug#50552).

2022-01-15  Stefan Kangas  <stefankangas@gmail.com>

	Improve backwards-compatibility of eglot-mode-map

	* eglot.el (eglot-mode-map): Only bind to eldoc-doc-buffer in Emacs
	28.1 or later.

2022-01-15  Juri Linkov  <juri@linkov.net>

	* doc/emacs/search.texi (Special Isearch): Move isearch-char-by-name item back

	Put it at the end of the list and still closer to isearch-emoji-by-name.

2022-01-15  Alan Mackenzie  <acm@muc.de>

	Remove the remnants of old position mechanism from scratch/correct-warning-pos

	Also correct one or two positions in macroexp-warn-and-return invocations.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-read-position)
	(byte-compile-last-position, byte-compile-set-symbol-position): Remove.
	(byte-compile-warning-prefix, byte-compile-function-warn)
	(byte-compile-emit-callargs-warn, byte-compile-arglist-warn)
	(byte-compile-warn-about-unresolved-functions, compile-defun)
	(byte-compile-from-buffer, byte-compile-from-buffer)
	(byte-compile-file-form-defmumble, byte-compile-check-lambda-list)
	(byte-compile-lambda, byte-compile-form, byte-compile-normal-call)
	(byte-compile-check-variable, byte-compile-push-constant)
	(byte-compile-subr-wrong-args, byte-compile-negation-optimizer)
	(byte-compile-condition-case, byte-compile-defvar, byte-compile-autoload)
	(byte-compile-lambda-form): Remove the remnants of the old warning position
	mechanism.
	(byte-compile-function-warn): Replace byte-compile-last-position by a
	symbol-with-pos-pos call.
	(compile-defun): Use local variable start-read-position to fulfill purpose of
	old byte-compile-read-position.  Push the just read FORM onto
	byte-compile-form-stack.

	* lisp/emacs-lisp/eieio.el (defclass): New mechanism to get the correct
	source warning position to macroexp-warn-and-return.

	* lisp/emacs-lisp/macroexp.el (macroexp--unfold-lambda): Correct
	the position argument given to macroexp-warn-and-return.

2022-01-15  Stefan Kangas  <stefankangas@gmail.com>

	* eglot.el (eglot-strict-mode): very minor docfix.

2022-01-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	* pcvs-info.el (cvs-mode-toggle-mark): Typo

2022-01-15  Eli Zaretskii  <eliz@gnu.org>

	Fix setting cursor in pixel-scrolling modes

	* src/xdisp.c (redisplay_window): Don't set cursor to any glyph
	row past the one that contains EOB.  (Bug#53275)

2022-01-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't strip properties in show-paren-function

	* lisp/paren.el (show-paren-function): Don't strip text properties
	(bug#51606) because that makes the offscreen context less
	informative.

2022-01-15  Stefan Kangas  <stefankangas@gmail.com>

	* eglot.el (eglot--connect): display seconds on timeout.

2022-01-15  Po Lu  <luangruo@yahoo.com>

	Use preferred XIM style without trying to detect if it's supported

	The old code would in general fall back to the default if the
	preferred style wasn't available, which is usually worse than
	what the user specified

	* src/xfns.c (best_xim_style): Stop checking if the preferred
	input style is supported.

2022-01-15  Stefan Kangas  <stefankangas@gmail.com>

	Print server command to events buffer

	* eglot.el (eglot--connect): Print server command to events
	buffer.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/476

2022-01-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Add emoji-alternate-names variable

	* lisp/international/emoji.el (emoji-alternate-names): New
	variable (bug#52860).
	(emoji-search): Note usage.
	(emoji--choose-emoji): Use it.

2022-01-15  Tassilo Horn  <tsdh@gnu.org>

	mailcap: Docfix & handle function-viewer case in mailcap-view-file

	* lisp/net/mailcap.el (mailcap-mime-data): Fix docstring: if viewer is
	a symbol/function, it should have zero args and expect the file's
	contents to be in the current buffer.
	(mailcap-view-file): Implement the case where the chosen viewer is a
	function and not a shell command.

2022-01-15  Po Lu  <luangruo@yahoo.com>

	Prevent pre-edit overlay text from being displayed after a command

	This works around buggy input methods causing the overlay to be
	displayed alongside newly inserted text for a brief period.

	* lisp/term/x-win.el (x-clear-preedit-text): New function.
	(x-preedit-text): Add said function to pre-command-hook.  It
	will remove itself when triggered.

2022-01-15  Po Lu  <luangruo@yahoo.com>

	* src/emacsgtkfixed.c (XSetWMSizeHints): Remove some useless code.

2022-01-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't bug out on improper lists in pp-emacs-lisp-code

	* lisp/emacs-lisp/pp.el (pp--format-list): Don't bug out on
	improper lists (bug#52917).

2022-01-15  Tom Tromey  <tom@tromey.com>

	Use "server complete" instead of "complete" in gud-gdb-completions

	* lisp/progmodes/gud.el (gud-gdb-completions): gud-gdb sends a
	"complete" command to gdb to implement command line completion.  It
	would be better to send "server complete".  This is what Emacs does
	for other behind-the-scenes commands it sends (bug#52922).

2022-01-15  Alex Bochannek  <alex@bochannek.com>

	(gnus-summary-hide-thread): Fix thread hiding for dummy roots.

	* lisp/gnus/gnus-sum.el (gnus-summary-hide-thread): Make thread
	hiding work when using dummy `gnus-summary-make-false-root'
	(bug#52923).

2022-01-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve the with-output-to-temp-buffer doc string

	* lisp/subr.el (with-output-to-temp-buffer): Clarify the point of
	the macro (bug#53265).

2022-01-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Add command to invoke a search engine"

	This reverts commit 3f36d0836274a01d3cfc73f53ddbc76afc1d8a5e.

	Similar functionality has been added to webjump, so this commit duplicated that.

2022-01-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	5990148860 * lisp/simple.el (undo-no-redo): Fix customization group
	ac2cdb8a46 * lisp/progmodes/xref.el (xref-file-name-display): Fix doc...
	c05864dd25 Avoid another segfault in 'face_at_buffer_position'

2022-01-15  Po Lu  <luangruo@yahoo.com>

	Find a way to make lowering frames work on Haiku

	* doc/lispref/frames.texi (Raising and Lowering): Document that
	lowering frames is now supported on Haiku.
	* src/haikuterm.c (haiku_frame_raise_lower): Implement a hack to
	lower frames.

2022-01-15  Po Lu  <luangruo@yahoo.com>

	Filter key release events when using native input without having XIM

	* src/xterm.c (handle_one_xevent): Also check for XI key
	release events when using native input on a build without XIM.

2022-01-14  Po Lu  <luangruo@yahoo.com>

	Fix native input when using core input events

	* src/gtkutil.c (xg_filter_key): Test for core key press events
	correctly.
	* src/xterm.c (handle_one_xevent): Also check for KeyRelease
	events.

2022-01-14  Po Lu  <luangruo@yahoo.com>

	Remove non-functional configure test

	It cannot work anymore, leading to compiler warnings when
	building xterm.c.

	* configure.ac: Remove test for whether
	XRegisterIMInstantiateCallback wants XPointer or XPointer * as
	the client_data.

	* src/xterm.c (xim_initialize):
	(xim_close_dpy): Just cast client data to void * and hope that
	the compiler keeps quiet.

2022-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	pcvs-info.el: Prefer `declare-function` over `autoload`

	* lisp/vc/pcvs-info.el (cvs-mode-toggle-mark): Use `declare-function`
	to silence the byte-compiler warning.

2022-01-14  Philipp Stephani  <phst@google.com>

	* lisp/indent.el (indent-for-tab-command): Use 'eq' for symbols.

2022-01-14  Philipp Stephani  <phst@google.com>

	indent-for-tab-command: Deal with large point or modiff values.

	* lisp/indent.el (indent-for-tab-command): Don't use 'eq' to compare
	integers that aren't guaranteed to be fixnums.

2022-01-14  Philipp Stephani  <phst@google.com>

	Simplify code for 'indent-for-tab-command' slightly.

	* lisp/indent.el (indent-for-tab-command): Don't use a one-element
	list for SYN.

2022-01-14  Alan Mackenzie  <acm@muc.de>

	Merge branch 'master' into scratch/correct-warning-pos

	Merge branch:
	commit d29291d665e808307126bf52c3e748fef78f0f9c (HEAD -> master,
	origin/master, origin/HEAD)
	Author: Stefan Monnier <monnier@iro.umontreal.ca>
	Date:   Fri Jan 14 12:26:30 2022 -0500

	    (macroexp--expand-all): Fix bug#53227 and bug#46636

2022-01-14  Alan Mackenzie  <acm@muc.de>

	Commit fixes and enhancements to the scratch/correct-warning-pos branch

	No longer strip positions from symbols before each use of a form, instead
	relying on the low level C routines to do the right thing.  Instead strip them
	from miscellaneous places where this is needed.  Strip them also in
	`function-put'.

	Push forms onto byte-compile-form-stack and pop them "by hand" rather than by
	binding the variable at each pushing, so that it will still have its data
	after an error has been thrown and caught by a condition case.  This gives an
	source position to the ensuing error message.

	* lisp/emacs-lisp/byte-run.el (byte-run--ssp-seen, byte-run--circular-list-p)
	(byte-run--strip-s-p-1, byte-run-strip-symbol-positions): New functions and
	variables, which together implement stripping of symbol positions.  The latest
	(?final) version modifies the argument in place rather than making a copy.
	(function-put): Strip symbol positions from all of the arguments before doing
	the `put'.

	* lisp/emacs-lisp/bytecomp.el (byte-compile--form-stack): has been renamed to
	byte-compile-form-stack and moved to macroexp.el.
	(byte-compile-initial-macro-environment (eval-and-compile)): Replace
	macroexpand-all-toplevel with macroexpand--all-toplevel.
	(displaying-byte-compile-warnings): bind byte-compile-form-stack here.
	(byte-compile-toplevel-file-form, byte-compile-form): Push the top level form
	onto byte-compile-form-stack (whereas formally the variable was bound at each
	pushing).  Manually pop this from of the variable at the end of the function.

	* lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro): Remove the symbol
	stripping.

	* lisp/emacs-lisp/comp.el (comp--native-compile): Set max-specpdl-size to at
	least 5000 (previously it was 2500).  Bind print-symbols-bare to t.

	* lisp/emacs-lisp/macroexp.el (byte-compile-form-stack): Definition move here
	from bytecomp.el for easier compilation.
	(byte-compile-strip-symbol-positions and associated functions): Removed.
	(macro--expand-all): push argument FORM onto byte-compile-form-stack at the
	start of this function, and pop it off at the end.
	(internal-macroexpand-for-load): No longer strip symbol positions.  Bind
	symbols-with-pos-enabled and print-symbols-bare to t.

	* lisp/help.el (help--make-usage): Strip any position from argument ARG.

	* src/fns.c (Fput): No longer strip symbol positions from any of the
	arguments.

2022-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	(macroexp--expand-all): Fix bug#53227 and bug#46636

	* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Don't mis-expand
	invalid funcalls.

2022-01-14  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Use MD5 for thumb filename generation

	* lisp/image-dired.el (image-dired-thumb-name): Revert back to MD5 for
	file name generation to preserve backwards-compatibility.  (Bug#53229)

2022-01-14  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c: Add a small writeup on input handling on X.

	Hopefully I will extend this section with details about more
	aspects of X11 support in the future.

2022-01-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

	Skip ffap test on some systems

2022-01-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Make function-alias-p use a better error symbol

	* lisp/subr.el (function-alias-p): Use the same error symbol as
	`indirect-function'.

2022-01-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't have ffap interpret ":/bin" as the current directory

	* lisp/ffap.el (ffap-file-at-point): Don't interpret :/bin as the
	current directory (bug#52441).

2022-01-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a `shortdoc' convenience alias

	* lisp/emacs-lisp/shortdoc.el (shortdoc): Add a convenience alias
	(bug#52968).

2022-01-14  Po Lu  <luangruo@yahoo.com>

	Fix leak when refs are sent to a frame during destruction on Haiku

	* src/haikuterm.c (haiku_read_socket): Free b->ref if it was
	sent from a frame that was destroyed.

2022-01-14  Po Lu  <luangruo@yahoo.com>

	Make sure the X mouse position hook always looks at an X frame

	* src/xterm.c (XTmouse_position): Check that f1 is an X frame.

2022-01-14  Robert Pluim  <rpluim@gmail.com>

	spelling-tests.el: use ert-with-temp-directory

	* test/lisp/so-long-tests/spelling-tests.el (so-long-spelling): Use
	;ert-with-temp-directory' instead of passing :directory to
	'ert-with-temp-file', and restore the prefix/suffix values used
	originally with 'make-temp-file'.

2022-01-14  Robert Pluim  <rpluim@gmail.com>

	spelling-tests.el: ignore errors when checking for ispell

	ispell-valid-dictionary-list can signal an error, eg when the local
	hunspell installation cannot find any dictionaries, so it's best to
	ignore that error.

	* test/lisp/so-long-tests/spelling-tests.el (so-long-spelling): Wrap
	ispell check in ignore-errors, as ispell-valid-dictionary-list can
	signal an error.

2022-01-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new context menu functions to the context-menu-functions type

	* lisp/mouse.el (context-menu-functions): Add new menu functions
	to the defcustom type list (bug#52973).

2022-01-14  Philip Kaludercic  <philipk@posteo.net>

	Add command to invoke a search engine

	* mouse.el (context-menu-online-search): Add new function
	(eww-search-prefix): Declare variable from eww.el
	(mouse-online-search-at-point): Add new command

2022-01-14  Philip Kaludercic  <philipk@posteo.net>

	Implement context-menu-mode support for hi-lock

	* hi-lock.el (hi-lock-symbol-at-mouse): Add new command
	(hi-lock-context-menu): Add new function

2022-01-14  Philip Kaludercic  <philipk@posteo.net>

	Implement context-menu-mode support for man pages

	* man.el (Man-at-mouse): Add new command
	(Man-context-menu): Add new function

2022-01-14  Juri Linkov  <juri@linkov.net>

	Fix @item in the Emacs manual

	* doc/emacs/maintaining.texi (Identifier Search): Replace @itemx with @item.

	* doc/emacs/search.texi (Special Isearch): Remove @item.

2022-01-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix mailcap setup when no mailcap files exist

	* lisp/net/mailcap.el (mailcap-parse-mailcaps): Ensure that we
	populate mailcap--computed-mime-data even if none of the files
	exist (bug#53009).

2022-01-14  Lucien Cartier-Tilet  <lucien@phundrak.com>  (tiny change)

	(battery-status-function) Fix errors in Termux

	* lisp/battery.el (battery-status-function): In Termux, neither
	/sys/ or /proc/ are readable on phones that are not rooted. This
	patch makes Emacs verify if they are readable before it attempts
	reading them (bug#53026).

2022-01-14  Robert Pluim  <rpluim@gmail.com>

	Improve some nntp/nnimap error messages

	* lisp/gnus/nntp.el (nntp-send-string):
	(nntp-wait-for):
	(nntp-accept-process-output):
	(nntp-possibly-change-group):
	* lisp/gnus/nnimap.el (nnimap-retrieve-headers): Improve error
	messages (bug#53070).

2022-01-14  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/xref.el (xref-query-replace-in-results): Fix prefix-arg.

	Use current-prefix-arg.

2022-01-14  Juri Linkov  <juri@linkov.net>

	* doc/emacs/search.texi (Special Isearch): Put related items together.

	Move isearch-char-by-name closer to isearch-emoji-by-name.

2022-01-14  Eli Zaretskii  <eliz@gnu.org>

	Update docs of 'xref-query-replace-in-results'

	* doc/emacs/maintaining.texi (Identifier Search): Update the
	documentation of 'xref-query-replace-in-results'.

2022-01-14  Sergey Vinokurov  <serg.foo@gmail.com>

	Use assq_no_quit on all local_var_alist accesses

	* src/data.c (Fkill_local_variable):
	* src/buffer.c (buffer_local_value): Use assq_no_quit instead of
	Fassoc/Fassq on local_var_alist (bug#53242).

	* src/data.c (Flocal_variable_p): Use assq_no_quit instead of
	open-coding the search on local_var_alist.

2022-01-14  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'xref-find-references-and-replace'

	* etc/NEWS: Clarify the 'xref-find-references-and-replace' entry.

	* doc/emacs/maintaining.texi (Identifier Search): Document
	'xref-find-references-and-replace'.

2022-01-14  Miha Rihtaršič  <miha@kamnitnik.top>

	Fix python-eldoc affecting unrelated comint processes

	* lisp/progmodes/python.el (python-shell-send-string-no-output): Don't
	let-bind comint-preoutput-filter-functions globally for all comint
	processes.  Modify the behavior of only the current python
	process (bug#53219).

2022-01-14  Robert Pluim  <rpluim@gmail.com>

	Improve function-alias-p documentation

	* doc/lispref/functions.texi (Defining Functions): Improve the text.

2022-01-14  Po Lu  <luangruo@yahoo.com>

	Try to make sure an XKB desc is always available

	* src/xterm.c (handle_one_xevent): Re-retrieve XKB map if it's
	unavailable for some reason upon handling an XKB map or keyboard
	notify event.

2022-01-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix byte-compilation warning in pcvs-info

	* lisp/vc/pcvs-info.el (cvs-mode-toggle-mark): Fix
	byte-compilation warning.

2022-01-14  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	34ca4ff9a5 Fix Edebug specification for inline functions (Bug#53068).
	3c06c37a8b Remove mention of removed `gnus-treat-play-sounds' variable...

2022-01-13  Po Lu  <luangruo@yahoo.com>

	* INSTALL: Document using Emacs on alternative window systems.

2022-01-13  Dmitry Gutov  <dgutov@yandex.ru>

	xref-find-references-and-replace: New command

	* lisp/progmodes/xref.el (xref-find-references-and-replace):
	New command.

2022-01-13  Dmitry Gutov  <dgutov@yandex.ru>

	Steamline xref-query-replace-in-results

	* lisp/progmodes/xref.el (xref-query-replace-in-results):
	Steamline the most common scenario
	(https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00864.html).

2022-01-13  Po Lu  <luangruo@yahoo.com>

	Fix out of bounds bitmap access on Haiku

	* src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp): Fix
	out of bounds access to bitmap data.

2022-01-13  Po Lu  <luangruo@yahoo.com>

	Refresh keyboard mapping upon receiving new XKB map

	* src/xterm.c (handle_one_xevent): Call
	XkbRefreshKeyboardMapping where required.

2022-01-13  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-keymap to easy-mmode-defmap

	* lisp/progmodes/gud.el (gud-minibuffer-local-map):
	* lisp/vc/pcvs-info.el (cvs-status-map): Use defvar-keymap.

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap): Document as
	deprecated.

2022-01-13  Theodor Thornhill  <theo@thornhill.no>
	    João Távora  <joaotavora@gmail.com>

	Change from symbol-at-point to thing-at-point

	* eglot.el (eglot-rename): Change from symbol-at-point to
	thing-at-point to avoid interning a symbol.  Add "unknown symbol" to
	prompt when no symbol is found.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/385

2022-01-13  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'isearch-emoji-by-name'

	* lisp/isearch.el (isearch-menu-bar-map, isearch-emoji-by-name):
	Fix wording of documentation.

	* etc/NEWS: Fix wording of the 'isearch-emoji-by-name' entry.

	* doc/emacs/search.texi (Special Isearch): Fix wording of the
	documentation of 'isearch-emoji-by-name'; move it out of the
	enumeration that deals with non-ASCII characters in general.

2022-01-13  Eli Zaretskii  <eliz@gnu.org>

	Fix frame-undeletion menu items

	* lisp/menu-bar.el (menu-bar-file-menu): Fix wording of the new
	menu items and their help-echo.  Don't show "Undelete Frame"
	in the menu unless there is a frame to undelete.

2022-01-13  Eli Zaretskii  <eliz@gnu.org>

	Avoid scrolling display when point moves into invisible text

	* src/xdisp.c (try_cursor_movement): Handle point moving into
	invisible text.  (Bug#53215)

2022-01-13  Michael Albinus  <michael.albinus@gmx.de>

	* doc/lispref/functions.texi (Defining Functions): Fix thinko.

2022-01-13  Brian Leung  <bkleung89@gmail.com>

	Support optional diagnostic.tags

	https://microsoft.github.io/language-server-protocol/specifications/specification-3-17/#diagnosticTag

	A DiagnosticTag can be either 1 (DiagnosticTag.Unnecessary) or
	2 (DiagnosticTag.Deprecated).  Following the rendering suggestions in
	the protocol, we fade out Unnecessary code and strike-through
	Deprecated code.

	* eglot.el (eglot-diagnostic-tag-unnecessary-face)
	(eglot-diagnostic-tag-deprecated-face): New faces.
	(eglot--tag-faces): New defconst.
	(eglot--lsp-interface-alist): Add Diagnostic.tags.
	(eglot-client-capabilities): Advertise supported tags.
	(eglot-handle-notification): Assign the appropriate properties.

	* eglot-tests.el (diagnostic-tags-unnecessary-code): New test.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/794

2022-01-13  Eli Zaretskii  <eliz@gnu.org>

	Improve preserving X coordinate during scroll commands

	* src/window.c (window_scroll_pixel_based): Don't unnecessarily
	move the iterator.  (Bug#53220)

2022-01-13  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/jsonrpc.el (Version): Bump to 1.0.15.

2022-01-13  Po Lu  <luangruo@yahoo.com>

	Fix passive input focus when the pointer moves over inferiors

	* src/xterm.c (handle_one_xevent): Don't detect focus on entry
	and exit events if we're not on the top window.

2022-01-13  Stefan Kangas  <stefankangas@gmail.com>

	* eglot.el: improve commentary section.

2022-01-13  Stefan Kangas  <stefankangas@gmail.com>

	Support racket-langserver

	* eglot.el (eglot-server-programs): Support racket-langserver.
	* README.md:
	* NEWS.md: Update for above changes.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/694

2022-01-13  Robert Pluim  <rpluim@gmail.com>

	spelling-tests.el: actually create a temp directory

	This test was creating a file, but actually needs a directory, and
	fails otherwise.

	* test/lisp/so-long-tests/spelling-tests.el (so-long-spelling):
	Pass the :directory arg to ert-with-temp-file so we actually
	create a directory.

2022-01-13  Po Lu  <luangruo@yahoo.com>

	Filter key release events through GTK when using native input

	* src/gtkutil.c (xg_filter_key): Set correct event type for key
	release events.
	* src/xterm.c (x_filter_event): Also filter release events.

2022-01-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make ert explainers work on function aliases

	* lisp/emacs-lisp/ert.el: New function.
	(ert--expand-should-1): Use it (bug#53178).

2022-01-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid infloops in help-fns--analyze-function with aliases

	* lisp/help-fns.el (help-fns--analyze-function): Use
	function-alias-p to avoid infloops.

2022-01-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function function-alias-p

	* doc/lispref/functions.texi (Defining Functions): Document it.
	* lisp/subr.el (function-alias-p): New function (bug#53178).

2022-01-13  Gregory Heytings  <gregory@heytings.org>

	Undelete deleted frames.

	* lisp/frame.el (undelete-frame): New command.
	(undelete-frame--handle-delete-frame): New auxiliary function.
	(undelete-frame--deleted-frames): New auxiliary variables.
	(undelete-frame-mode): New minor mode.
	(ctl-x-5-map): Bind the new command.

	* etc/NEWS: Document the new command and minor mode.

	* src/frame.c (Fdelete_frame): Update docstring, and mention the
	minor mode.

	* lisp/menu-bar.el (menu-bar-file-menu): Add an entry for the
	new command.

	* doc/emacs/frames.tex (Frame Commands): Document the new command
	and minor mode.

	See bug#51883.

2022-01-12  Po Lu  <luangruo@yahoo.com>

	Fix GTK native input methods randomly freezing input

	* src/gtkutil.c (xg_widget_key_press_event_cb): Exercise the X11
	connection causing pselect to return immediately from input.
	(bug#53160)

2022-01-12  Po Lu  <luangruo@yahoo.com>

	Block input when drawing fringe bitmaps on Haiku

	* src/haikuterm.c (haiku_draw_fringe_bitmap): Block input.

2022-01-12  Po Lu  <luangruo@yahoo.com>

	Use XI2 focus events on X toolkit builds

	* src/xfns.c (setup_xi_event_mask): Set focus masks on both the
	shell window and the frame window.
	* src/xterm.c (x_detect_focus_change): Enable XI2 focus code on
	Xt.

2022-01-12  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/jsonrpc.el (jsonrpc--debug): Use apply on format args list.

2022-01-12  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Rework setting/unsetting of gnus-registry-enabled

	The basic idea is, we're moving the setting/unsetting of
	`gnus-registry-enabled' so that it is a more reliable indicator of
	whether the registry is actually available or not.

	* lisp/gnus/gnus-registry.el (gnus-registry-load): Move the setting of
	`gnus-registry-enabled' here, after we're sure the registry actually
	has been loaded.
	(gnus-registry-initialize): Move it out of here. All this function
	does is conditionally call `gnus-registry-load'.
	(gnus-registry-register-message-ids): Only check
	`gnus-registry-enabled', since we'd more confident about this
	now. Sort checks in order of increasing complexity.
	(gnus-registry-clear): Unset `gnus-registry-enabled'.
	(gnus-registry-install-hooks): This function should only install
	hooks, not set variables.
	(gnus-registry-unload-hook): Change the unload hook to call
	`gnus-registry-clear', as that will do all the necessary
	work (including calling `gnus-registry-unload-hook')

2022-01-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge remote-tracking branch 'origin/emacs-28' into trunk

2022-01-12  Juri Linkov  <juri@linkov.net>

	* lisp/subr.el (remove-hook): Use set-variable-value-history for value history

2022-01-12  Stefan Kangas  <stefankangas@gmail.com>

	Bump eglot version to 1.8

	* eglot.el (Version): Bump to 1.8.
	* NEWS.md (1.8): Rename header from "(upcoming)".

2022-01-12  Juri Linkov  <juri@linkov.net>

	* lisp/leim/quail/emoji.el: New file (bug#52605).

2022-01-12  Daniel Martín  <mardani29@yahoo.es>

	Add isearch-emoji-by-name

	* lisp/isearch.el (isearch-emoji-by-name): Add a new command to insert
	Emoji characters into incremental search strings. (Bug#52605)
	(isearch-mode-map): Bind it to 'C-x 8 e RET'.
	(isearch-menu-bar-map): Add it to the menu bar.
	* doc/emacs/search.texi (Special Isearch): Update the documentation to
	mention the new command.
	* etc/NEWS: And advertise it.

2022-01-12  Glenn Morris  <rgm@gnu.org>

	Prefer unexport in Makefiles

	* admin/grammars/Makefile.in, leim/Makefile.in:
	* lisp/Makefile.in, test/Makefile.in:
	Use unexport for EMACSLOADPATH.

2022-01-12  Glenn Morris  <rgm@gnu.org>

	Avoid user environment interfering with bootstrap

	* Makefile.in, admin/unidata/Makefile.in:
	* doc/misc/Makefile.in, lib-src/Makefile.in:
	Don't export user environment variables that can affect running
	emacs.  (Bug#53038)

2022-01-12  Jim Porter  <jporterbugs@gmail.com>

	Follow POSIX/GNU argument conventions for 'eshell-eval-using-options'

	* lisp/eshell/esh-opt.el (eshell--split-switch): New function.
	(eshell-set-option): Allow setting a supplied value instead of always
	consuming from 'eshell--args'.
	(eshell--process-option): Support consuming option values specified as
	a single token.
	(eshell--process-args): For short options, pass full switch token to
	'eshell--process-option'.

	* test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test): Fix
	test.
	(test-eshell-eval-using-options): Add tests for various types of
	options.

	* doc/misc/eshell.texi (Defining new built-in commands): New
	subsection, describe how to use 'eshell-eval-using-options'.

	* etc/NEWS: Announce the change.

2022-01-12  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations with variable-weight fonts

	* src/font.c (font_score, font_delete_unmatched): Don't assume
	weight, slant, and width properties of the font must be fixnums:
	some variable-weight fonts violate that assumption.  Reported
	by Sean Whitton <spwhitton@spwhitton.name>.  This is for builds
	with Fontconfig < v2.11.91, for which the fix in
	'ftfont_pattern_entity' cannot work.  (Bug#52888)

2022-01-12  Sean Whitton  <spwhitton@spwhitton.name>

	Skip virtual FcPattern entries for variable weight fonts

	* src/ftfont.c (ftfont_list): Pass FC_VARIABLE to FcObjectSetBuild.
	* src/ftfont.c (ftfont_pattern_entity): Skip meta/virtual FcPattern
	entries for variable weight fonts (Bug#52888).

2022-01-12  Po Lu  <luangruo@yahoo.com>

	Use correct coordinates when translating XI2 crossing events

	* src/xwidget.c (xwidget_motion_or_crossing): Use displaced
	position instead of event position.

2022-01-12  Po Lu  <luangruo@yahoo.com>

	Ignore scroll lock key on Haiku

	* src/haiku_support.cc (keysym_from_raw_char): Return special
	value for keys that shouldn't be sent to Emacs.
	(DispatchMessage): Respect said value.

2022-01-12  Brian Leung  <bkleung89@gmail.com>

	Don't error out on unsupported diagnostic.codedescription

	A codeDescription property is, at the time of writing, an object with
	an href property (of type URI, or a string), denoting a "URI to open
	with more information about the diagnostic error".

	It's not obvious how best to put this into a Flymake diagostic
	aside from simply appending it to the diagnostic message, so we'll
	worry about it some other time.

	* eglot.el (eglot--lsp-interface-alist)
	(eglot-client-capabilities): Don't error out on unsupported
	Diagnostic.codeDescription.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/768

2022-01-12  Po Lu  <luangruo@yahoo.com>

	Translate more keys on Haiku

	* src/haiku_support.cc (keysym_from_raw_char): Translate print,
	scroll lock, and pause/break.

2022-01-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't do Gnus article emphasis in text/html parts

	* lisp/gnus/gnus-art.el (gnus-treat-emphasize): Don't do emphasis
	in text/html parts, because this leads to mis-filled text
	(especially with *...* that's boldified, which typically becomes
	much wider).

2022-01-11  Po Lu  <luangruo@yahoo.com>

	Fix arity error when trying to add a file to an automake project

	* lisp/cedet/ede/project-am.el (project-add-file): Add ignored
	_FILE parameter like the other `project-add-file' methods.

2022-01-11  Po Lu  <luangruo@yahoo.com>

	Fix display of text decorations in the mode line

	This is considered a temporary fix until the cause of
	fringe-overwriting underlines is established.

	* src/xterm.c (x_draw_glyph_string): Don't constrain decorations
	if the row is a tab or modeline.

2022-01-11  Po Lu  <luangruo@yahoo.com>

	Avoid unnecessary lookup of min and max keycodes when XKB is present

	* src/xterm.c (x_emacs_to_x_modifiers): Avoid calling
	XDisplayKeycodes when that information is available in the xkb
	desc and is not needed anyway.

2022-01-11  Po Lu  <luangruo@yahoo.com>

	Ignore resetting devices upon some events we don't have to handle

	* src/xterm.c (handle_one_xevent): Ignore SlaveSwitch
	DeviceChanged events.

2022-01-11  Alan Mackenzie  <acm@muc.de>

	Merge branch 'master' into scratch/correct-warning-pos

2022-01-11  Alan Mackenzie  <acm@muc.de>

	Remove the filename argument from the command line after an ELC+ELN build

	This fixes bug #53164.  Without this fix, bootstrap-emacs loads the source
	file uselessly into a buffer after completing the compilation.

2022-01-11  Juri Linkov  <juri@linkov.net>

	* lisp/window.el (display-comint-buffer-action): Move to the end of file.

	Move closer to pop-to-buffer-same-window after its default value
	display-buffer--same-window-action is defined.

2022-01-11  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc.el (vc-shrink-buffer-window): New function (bug#51062).

	(vc-diff-finish-functions): New variable.
	(vc-diff-finish): Use it.
	(vc-log-finish-functions): New variable.
	(vc-log-internal-common): Use it.

2022-01-11  Juri Linkov  <juri@linkov.net>

	* src/window.c (other-window-scroll-default): New variable (bug#51210).

	(Fother_window_for_scrolling): Use it.

2022-01-11  Juri Linkov  <juri@linkov.net>

	More fixes for display-comint-buffer-action

	* lisp/window.el (display-comint-buffer-action):
	Use display-buffer--same-window-action as the default value.

	* lisp/progmodes/sh-script.el (sh-show-shell):
	* lisp/shell.el (shell): Add display-comint-buffer-action to pop-to-buffer.

	* lisp/progmodes/project.el (project-shell, project-eshell): Use
	`bound-and-true-p display-comint-buffer-action' for backward-compatibility.

	https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg02964.html

2022-01-11  Morgan Smith  <Morgan.J.Smith@outlook.com>

	Fix display-comint-buffer-action default behavior (closes bug#52878)

	* lisp/window.el (display-comint-buffer-action): Make it an alist.

2022-01-11  Paul Eggert  <eggert@cs.ucla.edu>

	Clean up filelock code related to errno

	Reduce dependency on Haiku internals, by not assuming that
	Haiku errno values (which are negative) are neither -1 nor -2.
	This removes an #ifdef HAIKU while still maintaining
	portability to Haiku.
	* src/filelock.c (NEGATIVE_ERRNO, ANOTHER_OWNS_IT, I_OWN_IT):
	New constants, which should work regardless of whether
	we are on Haiku or B_USE_POSITIVE_POSIX_ERRORS is defined.
	(current_lock_owner, lock_if_free, lock_file, unlock_file)
	(Ffile_locked_p): Use them, without assuming anything about errno
	value sign.

2022-01-11  Paul Eggert  <eggert@cs.ucla.edu>

	Fix userlock diagnostic

	* lisp/userlock.el (ask-user-about-lock):
	Fix typo (missing paren) in diagnostic.

2022-01-11  Po Lu  <luangruo@yahoo.com>

	Stop ungrabbing when freeing XI devices

	This breaks when x_free_xi_devices is called from a
	HierarchyChange event where a master device has been removed or
	a slave device has been detached, and it should no longer be
	required since we now rely on passive grabs.

	* src/xterm.c (x_init_master_valuators): Stop calling
	XIUngrabDevice on all devices.

2022-01-11  Po Lu  <luangruo@yahoo.com>

	Make native input work on GTK 2

	* src/gtkutil.c (xg_create_frame_widgets): Allow focusing fixed
	widget.

2022-01-11  Po Lu  <luangruo@yahoo.com>

	Stop decoding GTK event strings when using native input

	* src/gtkutil.c (xg_widget_key_press_event_cb): Stop decoding
	event strings.

2022-01-11  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline-minor-mode-cycle--bind): Fix outline-on-heading-p.

	When calling outline-on-heading-p, set its argument INVISIBLE-OK to t,
	so when <backtab> (bound to outline-cycle-buffer) hides the current outline
	at a deep level, <backtab> should continue cycling outlines even when
	the current outline heading is invisible.  It worked this way before
	the recent change that moved cycling keys from font-lock text properties
	to outline-minor-mode keymap with :filter.

2022-01-11  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	8db5f82d45 ; Fix tabulated-list-mode tests after revert

2022-01-11  Po Lu  <luangruo@yahoo.com>

	Fix creating GUI frames in an automatically started server on Haiku

	* lisp/term/haiku-win.el: Correct specification of
	`display-format-alist'.

2022-01-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	(files-tests--with-buffer-offer-save): Turn it into a function

	* test/lisp/files-tests.el (files-tests--with-buffer-offer-save):
	Turn it into a function.
	(files-tests-save-buffers-kill-emacs--asks-to-save-buffers)
	(files-tests-buffer-offer-save): Adjust calls accordingly

2022-01-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	(hack-one-local-variable-constantp): Mark as obsolete

	* lisp/files.el (hack-one-local-variable-constantp): Mark as obsolete.
	(hack-one-local-variable-eval-safep): Use `macroexp-const-p` instead.

2022-01-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge remote-tracking branch 'origin/emacs-28' into trunk

2022-01-10  Fredrik Bergroth  <fbergroth@gmail.com>

	Support autoimporttext from pyright language server

	* eglot.el (eglot-completion-at-point): show autoImportText via company-docsig.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/769

2022-01-10  Sam Steingold  <sds@gnu.org>

	Use 'auth-info-password' in tests

	* test/lisp/auth-source-tests.el (auth-source-test-searches):
	  (auth-source-test-secrets-create-secret):
	  (auth-source-test-netrc-create-secret, auth-source-delete):
	  Use 'auth-info-password' instead of ad hoc code.

2022-01-10  Sam Steingold  <sds@gnu.org>

	Update for the recent change

	* doc/misc/auth.texi (Help for developers): Document
	  'auth-source-pick-first-password' and 'auth-info-password'.
	  Update the 'auth-source-search' example.

2022-01-10  Po Lu  <luangruo@yahoo.com>

	Use window beneath mouse for determining scroll deltas on Haiku

	* src/haikuterm.c (haiku_read_socket): Use window underneath
	wheel for calculating scroll deltas.

2022-01-10  Po Lu  <luangruo@yahoo.com>

	* src/filelock.c (lock_if_free): Fix Haiku positive errno check.

2022-01-10  Paul Eggert  <eggert@cs.ucla.edu>

	Assume C99 when defining pD

	* src/lisp.h (pD): Assume C99 or later, to simplify the ifdefs.

2022-01-10  Felicián Németh  <felician.nemeth@gmail.com>

	Add tooltip describing pending requests

	* eglot.el (eglot--mode-line-format): Add tooltip to `pending'.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/784

2022-01-10  Karl Fogel  <kfogel@red-bean.com>

	Document external maintenance of some packages

	Document the fact that some packages in Emacs are externally
	maintained, and specifically document Org Mode's external maintenance.

	For more context, see the thread that starts here:

	  https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg00366.html
	  From: Karl Fogel
	  To: Emacs Devel
	  Subject: Improving documentation of Org Mode integration into Emacs.
	  Date: Sat, 04 Dec 2021 15:14:59 -0600
	  Message-ID: <87zgpgax7w.fsf@red-bean.com>

2022-01-10  Juri Linkov  <juri@linkov.net>

	Add diff-mode-read-only to enable shorter keys in diff-mode

	To be able to use outline-minor-mode-cycle keys in diff-mode,
	outline-minor-mode should be higher in minor-mode-map-alist,
	and a new variable diff-mode-read-only should be set
	when the diff-mode buffer is read-only.
	https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00740.html

	* lisp/vc/diff-mode.el: Add diff-mode-read-only to minor-mode-map-alist.
	(diff-mode-read-only): New buffer-local variable.
	(diff-mode): Set diff-mode-read-only to t when buffer-read-only is non-nil.
	Update diff-mode-read-only in read-only-mode-hook.
	Remove buffer-read-only from minor-mode-overriding-map-alist.
	Remove view-mode-hook because now view-mode is higher than
	diff-mode-read-only in minor-mode-map-alist.

	* lisp/vc/vc-git.el (vc-git-stash-show):
	* lisp/vc/vc.el (vc-diff-internal): Set buffer-read-only to t
	before calling diff-mode that will set diff-mode-read-only.

2022-01-10  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el: Don't set outline-minor font-lock text property 'keymap'.

	Instead of adding font-lock text property 'keymap' with
	outline-minor-mode-cycle on headings in outline-minor-mode,
	check for outline-minor-mode-cycle and outline-on-heading-p
	in :filter on keys from the keymap of outline-minor-mode.
	https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00180.html

	(outline-minor-mode-cycle--bind): Add a condition on outline-minor-mode-cycle
	and outline-on-heading-p in :filter.
	(outline-font-lock-keywords): Remove if-branches for outline-minor-mode-cycle
	that added keymap.
	(outline-minor-mode-highlight-buffer): Don't put keymap on overlays.
	(outline-minor-mode): Rewrite :keymap setting to rely on
	easy-mmode-define-keymap, and add :inherit outline-minor-mode-cycle-map.
	Don't check for outline-minor-mode-cycle to add font-lock keywords.
	(outline--insert-open-button, outline--insert-close-button):
	Remove :parent outline-minor-mode-cycle-map.

2022-01-10  Eli Zaretskii  <eliz@gnu.org>

	Fix 'exchange-point-and-mark' in 'transient-mark-mode'

	* lisp/simple.el (exchange-point-and-mark): Don't deactivate mark
	when 'transient-mark-mode' is ON.  (Bug#53150)

2022-01-10  Po Lu  <luangruo@yahoo.com>

	Implement recent improvements to underline display on PGTK

	* src/pgtkterm.c (pgtk_draw_glyph_string): Respect new underline
	face fields.

2022-01-10  Po Lu  <luangruo@yahoo.com>

	Prevent text decorations from overwriting surrounding areas on X

	* src/xterm.c (x_draw_underwave): New parameter
	`decoration_width'.
	(x_draw_glyph_string): Constrain decoration width to current
	text area.

2022-01-10  Po Lu  <luangruo@yahoo.com>

	Allow controlling the underline position of faces

	* doc/lispref/display.texi (Face Attributes): Document new
	`:position' property of the `:underline' attribute.
	* etc/NEWS: Announce new property.
	* lisp/cus-face.el (custom-face-attributes): Implement
	customization for new face attribute.
	* src/dispextern.h (struct face): New fields
	`underline_pixels_above_descent_line' and
	`underline_at_descent_line_p'.
	* src/haikuterm.c (haiku_draw_text_decoration):
	* src/nsterm.m (ns_draw_text_decoration):
	* src/w32term.c (w32_draw_glyph_string):
	* src/xterm.c (x_draw_glyph_string): Respect new face fields.

	* src/xfaces.c (realize_gui_face): Handle new `:position'
	keyword.
	(syms_of_xfaces): New symbol `:position'.

2022-01-10  Po Lu  <luangruo@yahoo.com>

	* doc/emacs/xresources.texi (GTK resources): Fix dead links.

2022-01-10  Po Lu  <luangruo@yahoo.com>

	Load X resources from a settings file like other programs on Haiku

	* doc/emacs/haiku.texi (Haiku Basics): Document how X resources
	are discovered on Haiku.
	* src/haiku_support.cc (class Emacs): Load settings file.
	(be_find_setting): New function.
	* src/haiku_support.h (be_find_setting): New prototype.
	* src/haikuterm.c (get_string_resource): Look in the settings
	file if there's nothing in the in-memory resource database.

2022-01-10  Michael Albinus  <michael.albinus@gmx.de>

	* admin/MAINTAINERS: Add Tramp compatibility note

2022-01-10  Po Lu  <luangruo@yahoo.com>

	Use phys cursor height instead of font base to set spot Y

	* src/xfns.c (xic_set_xfontset): Use `phys_cursor_height' to
	avoid the spot potentially appearing at an incorrect position.

2022-01-10  Po Lu  <luangruo@yahoo.com>

	Don't set callbacks on XIC when adjusting spot if callbacks are off

	* src/xfns.c (xic_set_preeditarea): Don't set callbacks if the
	XIC style is not XIMPreeditCallbacks.  (bug#53146)

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Make toggling native input methods via shift work again

	* src/xterm.c (handle_one_xevent): Start filtering XI key
	release events again, but drop the event if the IM asked.

2022-01-09  Stefan Kangas  <stefankangas@gmail.com>

	Make old elide-head commands wrappers for mode

	* lisp/elide-head.el (elide-head, elide-head-show): Make into
	wrappers around elide-head-mode.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Don't hard code key codes on Haiku

	* src/haiku_support.cc (keysym_from_raw_char): New function.
	(DispatchMessage): Map raw character to keysym if applicable.
	(be_map_key): Delete function.
	* src/haiku_support.h (struct haiku_key_event): Update fields
	to hold keysym and character instead.
	* src/haikuterm.c (haiku_read_socket): Don't call be_map_key,
	and use keysym field if provided instead.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Map some more keypad keys on Haiku

	* src/haiku_support.cc (BMapKey): Rename to `be_map_key'.
	(be_map_key): Recognize more key codes.
	* src/haiku_support.h (BMapKey, be_map_key): Adjust accordingly.
	* src/haikuterm.c (haiku_read_socket): Likewise.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Fix build without X11 I18N

	* src/xterm.c (event_handler_gdk):
	(handle_one_xevent):
	(x_draw_window_cursor):
	(x_term_init): Fix build without HAVE_X_I18N.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Fix off-by-one errors in caret position application

	* src/gtkutil.c (xg_im_context_preedit_changed):
	* src/xfns.c (xic_preedit_caret_callback):
	(xic_preedit_draw_callback): Constrain caret position to
	SCHARS (arg) - 1.

2022-01-09  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/abbrev.el (edit-abbrevs-mode-map): Use defvar-keymap.

2022-01-09  Stefan Kangas  <stefankangas@gmail.com>

	Do interactive mode tagging for edit-abbrevs-mode

	* lisp/abbrev.el (edit-abbrevs-redefine)
	(abbrev-edit-save-to-file, abbrev-edit-save-buffer): Interactive mode
	tagging for edit-abbrevs-mode.
	(edit-abbrevs-mode): Make non-interactive.

2022-01-09  Brian Leung  <bkleung89@gmail.com>

	Properly print error message of eglot-alternatives

	* eglot.el (eglot-alternatives): Work with the listified form. This
	allows presumed executables provided as (EXECUTABLE &rest ARGS...)
	to be displayed in the error.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/786

2022-01-09  Brian Leung  <bkleung89@gmail.com>

	Add up-to-date server executables for html/css/json

	* README.md: Advertise updated executables.
	* eglot.el (eglot-server-programs): Prioritize the alternatives.

	The {html,css,json}-languageserver executables that are distributed
	outside VS Code are not regularly updated by Microsoft; any relevant
	updates to the VS Code source tree reach VS Code users without the
	need for VS Code developers to go out of their way to publish new
	versions of the executables. Consequently, users of other editors who
	have been using the server executables from the most obvious NPM
	packages are likely using stale versions.

	@hrsh7th, a Vim user, created an NPM package with updated versions of these
	executables taken straight from VS Code's source tree. We therefore
	prefer to direct users to the corresponding repo, which contains
	appropriate installation instructions, in the README.

2022-01-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/gnus/nnnil.el (nnnil-close-server): Add new `defs` arg

2022-01-09  Ivan Sokolov  <ivan-p-sokolov@ya.ru>

	Add doc-string indices to easy-mmode-{defmap,defsyntax}

	* lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap)
	(easy-mmode-defsyntax): Declare third argument as doc-string.
	(Bug#52978)

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Fix filelock.c for Haiku

	This was found during the investigation surrounding bug#53136,
	but is not directly related.

	* src/filelock.c (lock_if_free): Explicitly test err against -1
	or -2, and reverse sign of system errors on Haiku.  (No Haiku
	error occupies -1 or -2.)

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Add an option to display the cursor at the beginning of any preedit text

	Believe it or not, people actually want this, because it makes
	Emacs behave closer to some other editors such as WPS Office.

	* lisp/term/x-win.el
	(x-display-cursor-at-start-of-preedit-string): New user option.
	(x-preedit-text): Respect new option.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Pass through caret position from native GTK input methods

	* src/gtkutil.c (xg_im_context_preedit_changed): Set caret
	position appropriately.
	* src/xfns.c (xg_widget_key_press_event_cb): Ignore modifier
	keys.
	(xic_preedit_caret_callback, xic_preedit_draw_callback):
	Constrain caret position to the string length as well.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Fix specification of caret position

	* src/xfns.c (xic_preedit_caret_callback):
	(xic_preedit_draw_callback): Use `cursor' property correctly.

	* src/xterm.c (handle_one_xevent): Stop filtering XI release
	events.  This caused more problems than it fixed.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Add missing part of last commit

	* src/xterm.h (struct x_output): Add field `preedit_caret'.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Display caret in preedit text where the input method asked

	* src/xfns.c (xic_preedit_start_callback): Clear caret position.
	(xic_preedit_caret_callback): Record new caret position and
	announce it.
	(xic_preedit_done_callback): Clear caret position.
	(xic_preedit_draw_callback): Set caret position appropriately.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Fix native GTK input for cyrillic input methods

	* src/gtkutil.c (xg_widget_key_press_cb): Get unicode mapping of
	keyval if string doesn't exist.
	* src/xterm.c (handle_one_xevent): Fix build without
	HAVE_X_I18N.

2022-01-09  Stefan Kangas  <stefankangas@gmail.com>

	New minor mode elide-head-mode

	* lisp/elide-head.el (elide-head-mode): New minor mode.  (Bug#52980)
	(elide-head--delete-overlay, elide-head--show)
	(elide-head--hide): New functions factored out from ...
	(elide-head, elide-head-show): ... here.  Make obsolete in favor
	of elide-head-mode.
	(elide-head-headers-to-hide): Doc fix.

	* test/lisp/elide-head-tests.el (ert-x): Require.
	(elide-head-tests-elide-head-mode)
	(elide-head-tests-elide-head-mode/enable-disable)
	(elide-head-tests-elide-head-mode/normal-mode)
	(elide-head-tests-elide-head-mode/revert-buffer): New tests.
	(elide-head--add-test): Update test to use elide-head-mode.
	(elide-head-tests-elide-head)
	(elide-head-tests-elide-head-with-prefix-arg)
	(elide-head-tests-show): Make obsolete.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	* lisp/term/x-win.el (x-preedit-text): Make edit overlay window local.

2022-01-09  Brian Leung  <bkleung89@gmail.com>

	Add vim-language-server for vimrc-mode

	* README.md: Advertise.
	* eglot.el (eglot-server-programs): Add vim-language-server.

2022-01-09  Brian Leung  <bkleung89@gmail.com>

	Add cmake-language-server for cmake-mode

	* README.md: Advertise.
	* eglot.el (eglot-server-programs): Add cmake-language-server.

2022-01-09  Po Lu  <luangruo@yahoo.com>

	Reduce flicker on Haiku Emacs tooltips

	* src/haikuterm.c (haiku_read_socket): Ignore motion events from
	tooltip frames.

2022-01-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	30f1bdb41f Clarify docstring of package-native-compile
	c54fda643d Fix Subject "simplification" in Rmail

2022-01-09  Po Lu  <luangruo@yahoo.com>

	* src/image.c (syms_of_image): Declare support for webp on Haiku.

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Add support for native webp images on Haiku

	* src/haikuimage.c (haiku_can_use_native_image_api): Add support
	for `webp' images.

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Make caps lock work on Haiku

	* src/haiku_support.cc (map_caps):
	(map_caps_shift): New functions.
	(DispatchMessage): Map keys with the appropriate map if caps
	lock is on.

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Fix some problems with Haiku font display

	* src/haiku_font_support.cc (BFont_char_bounds): Fix rounding
	errors.
	(BFont_open_pattern): Set size before setting family and style.

2022-01-08  Stefan Kangas  <stefankangas@gmail.com>

	Un-reverse references in xref buffer



	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/763

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Implement override redirect on Haiku

	* src/haiku_support.cc (pre_override_redirect_style):
	(pre_override_redirect_feel): New variables.
	(BWindow_set_override_redirect):
	* src/haiku_support.h (BWindow_set_override_redirect): New
	functions.
	* src/haikufns.c (haiku_create_frame): Set override redirect.
	(haiku_set_override_redirect): New function.
	(haiku_frame_parm_handlers): Add `haiku_set_override_redirect'

2022-01-08  Martin Carlson  <spearalot@gmail.com>  (tiny change)

	Add variable to withhold the init req process id

	* eglot.el (eglot-withhold-process-id): New defvar.
	(eglot--connect): Don't send pid to language server if above new
	defvar has a non-nil value.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/722

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Fix some portability bugs in gtkutil.c

	* src/gtkutil.c (xg_widget_key_press_event_cb): Surround raising
	SIGIO with USABLE_SIGIO.

2022-01-08  NA  <na@aisrntairetnraoitn.com>  (tiny change)

	Support language server for html, css, json and docker

	* eglot.el (eglot-server-programs): Support html-languageserver,
	css-languageserver, json-languageserver, and docker-langserver.
	* README.md: Update documentation for above changes.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/204

2022-01-08  Stefan Kangas  <stefankangas@gmail.com>

	Minor checkdoc fixes

	* eglot.el (eglot, eglot--when-buffer-window, eglot--widening)
	(eglot-initialization-options, eglot--current-flymake-report-fn)
	(eglot-handle-notification, eglot-handle-request)
	(eglot--highlight-piggyback, eglot-register-capability)
	(eglot-unregister-capability):
	* eglot-tests.el (auto-detect-running-server, auto-shutdown)
	(auto-reconnect, eglot--tests-force-full-eldoc, rename-a-symbol)
	(basic-completions, non-unique-completions, basic-xref)
	(snippet-completions, snippet-completions-with-company)
	(eglot-eldoc-after-completions, python-yapf-formatting)
	(javascript-basic, json-basic, eglot-ensure)
	(eglot--guessing-contact): Doc fixes; formatting.

	* eglot.el (xref-backend-identifier-completion-table): Fix error
	format.

2022-01-08  Omar Polo  <op@omarpolo.com>

	Add lua-lsp support for lua-mode

	* eglot.el (eglot-server-programs): Add support for the lua-lsp server for lua.
	* README.md: Document the above change.

2022-01-08  jgart  <47760695+jgarte@users.noreply.github.com>  (tiny change)

	Add support for the mint language server

	* eglot.el (eglot-server-programs): Add support for the mint language server.
	* README.md: Document the above change.

2022-01-08  Illia Danko  <illia@aigent.com>  (tiny change)

	Add pyright language server support for python-mode

	* eglot.el (eglot-server-programs): Add pyright support for
	python-mode.
	* README.md: Document the above change.

2022-01-08  Philipp Edelmann  <edelmann@fs.tum.de>  (tiny change)

	Use fortls also for fortran-mode

	* eglot.el (eglot-server-programs): Use fortls also for fortran-mode.

2022-01-08  Brian Leung  <bkleung89@gmail.com>

	Add yaml-language-server for yaml-mode

	* eglot.el (eglot-server-programs): Add yaml-language-server.
	* README.md: Mention yaml-language-server.

2022-01-08  lorniu/sz  <lorniu@gmail.com>  (tiny change)

	Use `locate-user-emacs-file` instead of `concat`

	* eglot.el (eglot--eclipse-jdt-contact): Use locate-user-emacs-file.

2022-01-08  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d2284b0353 ; Update files for 28.0.91 pretest

	# Conflicts:
	#	lisp/ldefs-boot.el

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Make sure native keypresses are received immediately on GTK

	* src/gtkutil.c (xg_widget_key_press_event_cb): Send input
	available signal.

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Fix pinch-to-scale on real X servers and NS

	* lisp/face-remap.el (text-scale-pinch): Stop waiting for
	more events.

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Correctly translate GDK virtual modifiers when using native input

	* src/gtkutil.c (xg_virtual_mods_to_x): New function.
	(xg_widget_key_press_event_cb): Translate modifiers to X first.

2022-01-08  Michael Albinus  <michael.albinus@gmx.de>

	Adapt Tramp for `auth-info-password'

	* lisp/net/tramp-compat.el (tramp-compat-auth-info-password):
	New defalias.

	* lisp/net/tramp.el (tramp-read-passwd): Use it.

2022-01-08  Po Lu  <luangruo@yahoo.com>

	* src/haikuterm.c (haiku_clear_frame): Fix clipping.

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Add an option to rely on passive touch grabs on X

	This prevents crashes with three-finger touch gestures on
	Xwayland running on GNOME Shell, and also when running some
	programs that make use of an Emacs window's XID on the same X
	server.

	* src/xterm.c (handle_one_xevent): Respect
	`x-input-grab-touch-events'.
	(syms_of_xterm): New option `x-input-grab-touch-events.

2022-01-08  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of native input methods

	* doc/emacs/mule.texi (International, Input Methods)
	(Unibyte Mode): Document user-level features of native input
	methods.

2022-01-08  Po Lu  <luangruo@yahoo.com>

	* lisp/cus-start.el (standard): Fix standard customizables for PGTK.

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Fix build on PGTK

	* src/gtkutil.c (xg_mark_data):
	* src/gtkutil.h (xg_filter_key): Ifdef out definitions on PGTK.

2022-01-08  Po Lu  <luangruo@yahoo.com>

	Allow using GTK+ to handle input methods on X

	* doc/emacs/xresources.texi (Table of Resources): Document new
	value of `inputStyle'.
	* etc/NEWS: Announce new option.

	* lisp/cus-start.el (standard): Add `x-gtk-use-native-input'.
	* src/gtkutil.c (xg_mark_data): Mark xg_pending_quit_event.
	(xg_add_virtual_mods):
	(xg_im_context_commit):
	(xg_im_context_preedit_changed):
	(xg_im_context_preedit_end):
	(xg_widget_key_press_event_cb):
	(xg_filter_key): New functions.
	* src/gtkutil.h: Add prototype for `xg_filter_key'.
	* src/xfns.c (xic_set_preeditarea): Set cursor location for the
	GTK IM context as well.
	* src/xterm.c (xg_pending_quit_event): New variable.
	(x_focus_changed): Set focus on the GTK input context as well.
	(x_filter_event): Filter events through GTK if the user asked
	for it.
	(handle_one_xevent): Likewise.
	(XTread_socket): Set hold_quit to xg_pending_quit_event if it
	exists.
	(x_draw_window_cursor): Always set preedit area even if XIC
	doesn't exist.
	* src/xterm.h (struct x_display_info): New field
	`prefer_native_input'.
	(struct x_output): New field `im_context'.

2022-01-07  Po Lu  <luangruo@yahoo.com>

	* src/pgtkterm.c (pgtk_enqueue_string): Free return of g_utf8_to_ucs4.

2022-01-07  Po Lu  <luangruo@yahoo.com>

	Call EVENT_INIT in some places

	* src/xfns.c (xic_preedit_done_callback):
	(xic_preedit_draw_callback): Call EVENT_INIT.

2022-01-07  Sam Steingold  <sds@gnu.org>

	Add `auth-info-password' and use it instead of ad hoc code

	* lisp/auth-source.el (auth-info-password):
	  Extract from `auth-source-pick-first-password'.
	(auth-source-pick-first-password, auth-source-secrets-create)
	(auth-source-user-and-password): Use `auth-info-password'.
	* lisp/erc/erc-services.el (erc-nickserv-get-password):
	  Use `auth-source-pick-first-password'.
	* lisp/erc/erc.el (erc-open, erc-server-join-channel): Likewise.
	* lisp/gnus/mail-source.el (mail-source-set-1): Add a comment.
	* lisp/gnus/nnimap.el (nnimap-credentials): Use `auth-info-password'.
	* lisp/gnus/nntp.el (nntp-send-authinfo): Likewise.
	* lisp/mail/rmail.el (rmail-get-remote-password): Likewise.
	* lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Likewise.
	* lisp/net/sieve-manage.el (sieve-sasl-auth): Likewise.
	* lisp/net/tramp.el (tramp-read-passwd): Likewise.
	* lisp/net/rcirc.el (rcirc): Likewise (fixes a bug: the possibility
	  that password might be a function was not handled).

2022-01-07  Eli Zaretskii  <eliz@gnu.org>

	Fix "C-SPC C-SPC" after "C-x C-x"

	* lisp/simple.el (exchange-point-and-mark): Fix what the command
	does when 'transient-mark-mode' is OFF.  (Bug#52896)

2022-01-07  Eli Zaretskii  <eliz@gnu.org>

	Minor improvements for 'pgtk' documentation

	* src/dispnew.c (syms_of_display) <initial-window-system>
	<window-system>:
	* src/frame.c (Fwindow_system):
	* doc/lispref/display.texi (Defining Faces, Window Systems):
	* doc/lispref/frames.texi (Frames): Mention/explain 'pgtk'/'haiku'.
	* doc/lispref/commands.texi (Misc Events): Fix @example and
	markup.

2022-01-07  Yuuki Harano  <masm+github@masm11.me>

	Handle internal events specially on PGTK

	* src/xgselect.c (xg_select): If there are pending events already,
	don't sleep.

2022-01-07  Yuuki Harano  <masm+github@masm11.me>

	Write documentation about ARG of the preedit-text event on PGTK

	* doc/lispref/commands.texi (Misc Events):

2022-01-07  Po Lu  <luangruo@yahoo.com>

	Fix special-cased cursor foreground and background correctly on PGTK

	* src/pgtkfns.c (x_set_foreground_color):
	(x_set_background_color): Set cursor color as well if
	appropriate.  (bug#53073)

2022-01-07  Po Lu  <luangruo@yahoo.com>

	Add documentation for the `none' input style

	* doc/emacs/xresources.texi (Table of Resources): Document
	missing value of `inputStyle'.

2022-01-07  Protesilaos Stavrou  <info@protesilaos.com>

	* admin/MAINTAINERS: Describe Modus themes as externally maintained package

2022-01-07  Po Lu  <luangruo@yahoo.com>

	* doc/lispref/display.texi (Face Attributes): Update doc for new values.

2022-01-07  Po Lu  <luangruo@yahoo.com>

	Improve documentation of the preedit-text event

	* doc/lispref/commands.texi (Misc Events): Document how
	`preedit-text' events are used.

2022-01-07  Po Lu  <luangruo@yahoo.com>

	Disable new input method behavior by default on X

	* src/xfns.c (supported_xim_styles): Default to STYLE_NONE.

2022-01-07  Po Lu  <luangruo@yahoo.com>

	Allow controlling the X input method style

	* doc/emacs/xresources.texi (Table of Resources): Document new
	resource `inputStyle'.
	* etc/NEWS: Announce new resource.

	* src/xfns.c (create_frame_xic): Give the display info to
	`best_xim_style'.
	(best_xim_style): Take the display's preferred style into
	account.

	* src/xterm.c (x_term_init): Parse the preferred style if
	inputStyle is set.

	* src/xterm.h (struct x_display_info): New field
	`preferred_xim_style'.

	(STYLE_OFFTHESPOT, STYLE_OVERTHESPOT, STYLE_ROOT):
	(STYLE_CALLBACK, STYLE_NONE): New macros.

2022-01-07  Po Lu  <luangruo@yahoo.com>

	* src/haikuselect.c: Fix implicit declaration of free.

2022-01-07  Po Lu  <luangruo@yahoo.com>

	Display pre-edit information from X input methods

	This also repurposes the `pgtk-preedit-text' event to be
	meaningful on X, renames it `preedit-text', and documents it.

	* doc/lispref/commands.texi (Misc Events): Document
	`preedit-text'.
	* lisp/term/pgtk-win.el (pgtk-preedit-text): Bind to
	`preedit-text' instead.
	* lisp/term/x-win.el (x-preedit-overlay): New variable.
	(x-preedit-text): New command, bound as a special event to
	`preedit-text'.

	* src/keyboard.c (kbd_buffer_get_event):
	(make_lispy_event): Rename PGTK_PREEDIT_TEXT_EVENT
	PREEDIT_TEXT_EVENT.
	(syms_of_keyboard): New defsym `preedit-text'.
	* src/pgtkterm.c (pgtk_enqueue_preedit): Use PREEDIT_TEXT_EVENT
	instead.
	* src/termhooks.h (enum event_kind): Rename
	`PGTK_PREEDIT_TEXT_EVENT' `PREEDIT_TEXT_EVENT'.

	* src/xfns.c (Xxic_preedit_draw_callback):
	(Xxic_preedit_caret_callback):
	(Xxic_preedit_done_callback):
	(Xxic_preedit_start_callback): New callback variables.

	(STYLE_OFFTHESPOT, STYLE_OVERTHESPOT):
	(STYLE_ROOT, STYLE_CALLBACK, STYLE_NONE): New macros.
	(supported_xim_styles): Use reasonable values.  This also serves
	as a better fix for bug#10867.
	(best_xim_style): Restore code deleted as part of the original
	fix for bug#10867.
	(create_frame_xic): Add preedit callbacks.
	(xic_set_preeditarea): Add preedit callbacks.
	(x_xic_to_frame):
	(xic_preedit_start_callback):
	(xic_preedit_caret_callback):
	(xic_preedit_done_callback):
	(x_xim_text_to_utf8_unix):
	(xic_preedit_draw_callback): New functions.

	* src/xterm.c (x_detect_focus_change): Fix type of XI event.
	(x_free_frame_resources): Free preedit text buffer if still
	present.
	* src/xterm.h (struct x_output): New fields `preedit_size',
	`preedit_chars' and `preedit_active'.

2022-01-06  Po Lu  <luangruo@yahoo.com>

	* admin/MAINTAINERS: Add myself for some things.

2022-01-06  Philip Kaludercic  <philipk@posteo.net>

	Add rcirc-when command

	* doc/misc/rcirc.texi: Document rcirc-when.
	* etc/NEWS: Document rcirc-when.
	* lisp/net/rcirc.el (rcirc-when): Add command.

2022-01-06  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of font-related face attributes

	* lisp/faces.el (set-face-attribute): Mention aliases of face
	attributes.  (Bug#53050)

2022-01-06  Michael Albinus  <michael.albinus@gmx.de>

	* admin/MAINTAINERS: Describe Tramp as externally maintained package

2022-01-06  Eli Zaretskii  <eliz@gnu.org>

	Revert "Fix selection of fonts that don't have regular weight"

	This reverts commit 1b2511fa2aed460120a36765ba16c14e355eef1d.
	That commit caused unintended regressions which are worse
	than the problem it attempted to fix.  See the discussion at

	  https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg01643.html

	for the details.

2022-01-06  Po Lu  <luangruo@yahoo.com>

	Remove some more useless clipping stack calls on Haiku

	* src/haikuterm.c (haiku_draw_box_rect):
	(haiku_draw_relief_rect):
	(haiku_draw_text_decoration): Get rid of calls to
	BView_StartClip and BView_EndClip.

2022-01-06  Po Lu  <luangruo@yahoo.com>

	Generate TOUCH_END_EVENTs on NS when mwheel momentum is disabled

	* src/nsterm.m ([EmacsView mouseDown:]): Generate
	TOUCH_END_EVENTs on the first event whose momentum phase is not
	NSEventPhaseNone.

2022-01-06  Po Lu  <luangruo@yahoo.com>

	Make sure touch end events aren't sent too many times

	* src/xterm.c (handle_one_xevent): Don't send touch end events
	twice if two valuators have their masks set without a change in
	value.

2022-01-06  Po Lu  <luangruo@yahoo.com>

	Add group to xkey state before filtering it on XI_KeyRelease

	* src/xterm.c (handle_one_xevent): Add group to xkey.state
	before filtering an XI2 key release event.  This fixes fcitx on
	some systems.

2022-01-06  Po Lu  <luangruo@yahoo.com>

	Fix GNUstep compilation warnings

	* src/Makefile.in (NON_OBJC_CFLAGS): Add `-Wnested-externs'.
	* src/emacs.c (load_pdump): Only define exec_bufsize if
	!NS_SELF_CONTAINED.
	* src/image.c (ARGB_TO_ULONG): Don't define if HAVE_NS.
	* src/nsterm.m (ns_destroy_window): Pacify incorrect GCC
	warning.
	(ns_query_color): Make static.
	(ns_run_loop_break): Fix old-style definition.
	([EmacsView toggleFullScreen:]): Remove unused variable.

2022-01-06  Po Lu  <luangruo@yahoo.com>

	Fix duplicate overhang display on GNUstep

	* src/nsfont.m (nsfont_draw): Stop saving DPS clip and remove
	workaround for bad clipping.
	* src/nsterm.m (ns_draw_glyph_string): Clip to glyph string rect
	when displaying overhangs.

2022-01-05  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Check for errors when kbd map.

2022-01-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	cl-generic.el: Fix bug#46722

	Fix longstanding bug due to unexpected interference via side-effect.

	* lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher):
	Copy the `dispatch` arg before storing it into the hash-table.

2022-01-05  Juri Linkov  <juri@linkov.net>

	* lisp/textmodes/paragraphs.el (repunctuate-sentences): Use filter variable.

	(repunctuate-sentences-filter)<defun>:
	Reimplement without using match data.
	(repunctuate-sentences-filter)<defvar>: New variable.
	(repunctuate-sentences): Use new variable.
	Remove regexp group from spaces as was before.
	https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00395.html

2022-01-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in cvs-status-mode-map keymap

	* lisp/vc/cvs-status.el (cvs-status-mode-map): Fix typo in keymap
	definition.

2022-01-05  Eli Zaretskii  <eliz@gnu.org>

	Fix info-lookup docs and "C-h S" in major-modes with no manuals

	* lisp/info-look.el (info-lookup-alist, info-lookup-add-help)
	(info-lookup-symbol, info-lookup-file, info-lookup)
	(info-lookup-interactive-arguments): Clarify and expand the doc
	strings.
	(info-lookup-change-mode): Topic values can have their `:mode' as
	a cons cell, not just a mode's symbol; support that.

2022-01-05  Po Lu  <luangruo@yahoo.com>

	Enable subpixel antialiasing on the Cairo font driver on Haiku

	* src/ftcrfont.c (ftcrfont_open): Manually enable subpixel
	antialiasing on Haiku.

	* src/haiku_support.cc
	(get_subpixel_antialiasing): New function declaration.
	(be_use_subpixel_antialising):
	* src/haiku_support.h (be_use_subpixel_antialising): New
	functions.

2022-01-05  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/buff-menu.el (Buffer-menu-mode-map): Use defvar-keymap.

2022-01-05  Po Lu  <luangruo@yahoo.com>

	Resolve clipping related mysteries on Haiku

	* src/ftcrfont.c (ftcrfont_draw):
	* src/haikufont.c (haikufont_draw): Remove workarounds for
	previously broken clipping code.
	* src/haikuterm.c (haiku_clip_to_string): Handle empty clipping
	rectangles correctly.
	(haiku_clip_to_string_exactly): Stop setting num_clips.
	(haiku_draw_glyph_string): Stop saving face when drawing
	overhangs.

2022-01-05  Po Lu  <luangruo@yahoo.com>

	Make sure mouse face doesn't stay on the cursor after it is cleared

	cursor_in_mouse_face_p will still return true when the phys
	cursor is drawn inside show_mouse_face when called by
	clear_mouse_face, since that drawing happens before
	hlinfo->mouse_face_window can be set to nil.

	However, the row's mouse_face_p will be adjusted before the
	cursor is drawn in show_mouse_face, so it can be used to
	determine if the cursor is actually under mouse face.

	* src/xdisp.c (fill_composite_glyph_string):
	(fill_gstring_glyph_string):
	(fill_glyphless_glyph_string):
	(fill_glyph_string):
	(fill_xwidget_glyph_string):
	(fill_stretch_glyph_string): Only apply mouse face when
	DRAW_CURSOR if the row is also mouse_face_p.

	(set_glyph_string_background_width): Only adjust width if the
	row holding the cursor is also mouse_face_p.

2022-01-05  Po Lu  <luangruo@yahoo.com>

	Simply conditions for mouse face display when drawing cursor on Haiku

	* src/haikuterm.c (haiku_draw_stretch_glyph_string): Simplify
	conditions for mouse face display.

2022-01-05  Po Lu  <luangruo@yahoo.com>

	Remove some unnecessary graphics state saves on Haiku

	* src/haikufont.c (haikufont_draw):
	* src/haikuterm.c (haiku_draw_box_rect):
	(haiku_draw_relief_rect):
	(haiku_draw_underwave):
	(haiku_draw_text_decoration):
	(haiku_draw_plain_background):
	(haiku_draw_glyph_string_foreground):
	(haiku_draw_glyphless_glyph_string_foreground):
	(haiku_draw_stretch_glyph_string):
	(haiku_draw_composite_glyph_string_foreground):
	(haiku_draw_image_glyph_string): Remove unnecessary calls to
	BView_StartClip and BView_EndClip.

2022-01-05  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e7aa3ece52 Fix vc-git with old Git over Tramp and cygwin-mount.el
	c0cfbca311 * lisp/emacs-lisp/checkdoc.el (bytecomp): Add missing require

	# Conflicts:
	#	etc/NEWS

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Fix xwidgets setting their own signal handlers

	* src/xgselect.c (release_select_lock):
	(acquire_select_lock): Fix coding style.
	(xg_select): Call `catch_child_signal' if xwidgets are enabled.

	* src/xwidget.c (kill_xwidget):
	(kill_buffer_xwidgets): Call `catch_child_signal'.  (bug#53013)

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Fix display of internal border in child frames on pgtk

	* src/pgtkfns.c (Fx_create_frame): Fix child frame border
	resource names.
	* src/pgtkterm.c (pgtk_clear_under_internal_border): Fix test
	for child frames.  (bug#53018)

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Correctly set up XI key input mask on X Toolkit builds

	* src/xfns.c (setup_xi_event_mask): Also set the key event mask
	on the outer window, which might also have the input focus.
	(x_window) [USE_X_TOOLKIT]: Set up XI event mask a bit later.

2022-01-04  Daniel Mendler  <mail@daniel-mendler.de>

	completion--nth-completion: Throw meaningful error

	If a configured completion style does not exist, throw a meaningful
	error. Also make completion-styles-alist a defvar, since completion
	styles like orderless extend it.

	* lisp/minibuffer.el (completion-styles-alist): Make it a defvar.
	(completion--nth-completion): Give a more meaningful error.

2022-01-04  Paul Eggert  <eggert@cs.ucla.edu>

	Update from gnulib

2022-01-04  Robert Pluim  <rpluim@gmail.com>

	Remove ambiguity from key-valid-p docstring

	* lisp/keymap.el (key-valid-p): Be explicit about the separator
	being one and only one space.

2022-01-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve pp-emacs-lisp-code for #'

	* lisp/emacs-lisp/pp.el (pp--insert-lisp): Format (function ...)
	as #'.

2022-01-04  Eli Zaretskii  <eliz@gnu.org>

	A cleaner fix for display bug#52947

	* src/xdisp.c (tab_bar_height, redisplay_tab_bar): Don't call
	set_iterator_to_next here...
	(display_tab_bar_line): ...call it here, even if we exit the loop
	because we encounter a newline.

2022-01-04  Jimmy Aguilar Mena  <spacibba@aol.com>

	Autoload decorator for windmove-mode

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Translate more modifiers to GDK ones in xwidgets

	* src/xwidget.c (xw_translate_x_modifiers): Also handle Control
	and ShiftMask.

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Stop assuming X kbd state works with GDK when forwarding events to xwidgets

	* src/xwidget.c (xw_translate_x_modifiers): New function.
	(Fxwidget_perform_lispy_event): Translate X modifiers to GDK
	modifiers before sending them to the xwidget.

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Make `x-file-dialog' arity match documentation on Haiku

	* lisp/term/haiku-win.el (x-file-dialog): Fix arity.

2022-01-04  Alan Third  <alan@idiocy.org>

	Remove macOS drop-shadows on some frames (bug#28512)

	* src/nsterm.m ([EmacsWindow setParentChildRelationships]): Remove
	shadows on undecorated child frames.

2022-01-04  Stefan Kangas  <stefankangas@gmail.com>

	Remove unnecessary autoload cookie in font-core.el

	* lisp/font-core.el (font-lock-defaults): Remove autoload of
	risky-local-variable property; this file is preloaded.

2022-01-04  Yuuki Harano  <masm+github@masm11.me>

	Remove gsettings.m4 and write directly into Makefile.in

	* configure.ac (HAVE_PGTK): Declare substitution
	(HAVE_GSETTINGS): Declare substitution
	* Makefile.in (HAVE_PGTK): New variable
	(HAVE_GSETTINGS): New variable
	(gsettingsschemadir): Don't use value from gsettings.m4
	(distclean): Add clean-gsettings-schemas
	(install-gsettings-schemas): Implement instead of gsettings.m4
	(uninstall-gsettings-schemas): Implement instead of gsettings.m4
	(clean-gsettings-schemas): Implement instead of gsettings.m4
	($(gsettings_SCHEMAS:.xml=.valid)): Implement instead of gsettings.m4
	* m4/gsettings.m4: Remove

2022-01-04  Jim Porter  <jporterbugs@gmail.com>

	Prevent further cases of duplicated separators in context menus

	In some cases, context menu items are added before the overall prompt
	string.  This could cause multiple consecutive separators to appear if
	they "surround" the prompt string.  (Bug#52293)

	* lisp/mouse.el (context-menu-map): Improve the de-duplication logic
	to ignore non-menu-items when checking for consecutive separators.

	* test/lisp/mouse-tests.el
	(context-menu-map-remove-consecutive-separators)
	(context-menu-map-remove-separators-at-beginning-or-end): New tests.

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Fix unused variable warning in last change

	* src/haiku_draw_support.c (BBitmap_transform_bitmap): Fix
	unused variable warning.

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Rationalize Haiku rectangle handling

	* src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp):
	(BView_DrawMask):
	(rotate_bitmap_270):
	(rotate_bitmap_90):
	(BBitmap_transform_bitmap):
	* src/haiku_support.cc (UnZoom):
	(GetParentWidthHeight):
	(MakeFullscreen):
	(AttachCairoSurface):
	(AfterResize):
	(DrawContent):
	(BView_cr_dump_clipping): Use new rectangle handling macros.

	* src/haiku_support.h (BE_RECT_WIDTH, BE_RECT_HEIGHT): New
	macros.

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Make menu bar key navigation work on Haiku

	* src/haiku_support.cc (menu_bar_active_p): New variable.
	(DispatchMessage): Pass through key events if the menu bar is
	active.
	(MenusBeginning, MenusEnd): Set `menu_bar_active_p' according
	to the state of the menu bar.
	(BMenuBar_delete): Clear `menu_bar_active_p'.

	* src/haikufns.c (haiku_free_frame_resources): Block input only
	after checking that F is a window system frame.
	* src/haikumenu.c (Fhaiku_menu_bar_open): Update doc string.

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Improve Haiku frame restacking logic

	* src/haiku_support.cc (BWindow_is_active):
	* src/haiku_support.h (BWindow_is_active): New functions.

	* src/haikufns.c (Fhaiku_frame_restack): Prevent the newly
	raised frame from being sent to the back of the display.

2022-01-04  Po Lu  <luangruo@yahoo.com>

	Find a way to make restacking frames work on Haiku

	* doc/lispref/frames.texi (Raising and Lowering): Update
	documentation to reflect that restacking frames is now
	supported on Haiku.
	* lisp/frame.el (haiku-frame-restack): New declaration.
	(frame-restack): Use `haiku-frame-restack' on Haiku.

	* src/haiku_support.cc (BWindow_send_behind):
	* src/haiku_support.h (BWindow_send_behind):
	* src/haikufns.c (Fhaiku_frame_restack): New functions.
	(syms_of_haikufns): New subr `haiku-frame-restack'.

2022-01-03  Stefan Kangas  <stefankangas@gmail.com>

	* test/src/doc-tests.el: New file.

2022-01-03  Po Lu  <luangruo@yahoo.com>

	Add effective group to xkey events when handling XI key press events

	* src/xterm.c (handle_one_xevent): Add effective group to
	xkey.state when translating XI key events.

2022-01-03  Stefan Kangas  <stefankangas@gmail.com>

	Fix two unused variable warnings in make-docfile.c

	* lib-src/make-docfile.c (scan_lisp_file): Fix unused variable
	warnings.

2022-01-03  Stefan Kangas  <stefankangas@gmail.com>

	Test that buffer exists in shortdoc-all-groups-work

	* test/lisp/emacs-lisp/shortdoc-tests.el
	(shortdoc-all-groups-work): Test that the shortdoc buffer was created.

2022-01-03  Po Lu  <luangruo@yahoo.com>

	Fix Haiku bitmap sanity checks

	* src/haikufns.c (haiku_get_pixel, haiku_put_pixel): Fix sanity
	checking of coordinate values.

2022-01-03  Po Lu  <luangruo@yahoo.com>

	Fix fringe bitmap display on haiku again

	* src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp): Fix
	off-by-one errors.

2022-01-03  Po Lu  <luangruo@yahoo.com>

	Fix duplicate file panel display on Haiku

	* lisp/term/haiku-win.el (x-file-dialog): Fix up prompt to look
	better.

	* src/haiku_support.cc (be_popup_file_dialog): Remove duplicate
	call to `Show'.

2022-01-03  Stefan Kangas  <stefankangas@gmail.com>

	New test shortdoc-all-groups-work

	* test/lisp/emacs-lisp/shortdoc-tests.el
	(shortdoc-all-groups-work): New test.  See Bug#52969.

2022-01-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	Revert part of 59732a83c8 to fix bug#52969

	While we don't need to put docstrings of .elc files into etc/DOC,
	we still need to put those of `loaddefs.el` there since we don't have
	a "dynamic docstring" feature for the non-compiled files and keeping
	the actual docstrings in the heap would be prohibitive.

	* src/Makefile.in ($(etc)/DOC): Scan `lisp/loaddefs.el` still.

	* lib-src/make-docfile.c (scan_lisp_file): New function.
	(scan_file): Use it.
	(skip_white, read_lisp_symbol, search_lisp_doc_at_eol): New functions.

2022-01-03  Po Lu  <luangruo@yahoo.com>

	* src/haiku_font_support.cc (BFont_char_bounds): Fix bearings.

2022-01-03  Po Lu  <luangruo@yahoo.com>

	Synchronize at a better place when making a frame visible on Haiku

	* src/haiku_support.cc (BWindow_set_visible): Stop synchronizing
	here.

	* src/haikufns.c (haiku_visualize_frame):
	(haiku_unvisualize_frame): Synchronize after visibility changes.

2022-01-03  Po Lu  <luangruo@yahoo.com>

	Implement AC line status for the Haiku battery function

	* lisp/battery.el (battery--search-haiku-acpi-status): Return
	`fully-charged' instead of `normal'.
	(battery-haiku-acpi-battery): Implement %L for AC line status.

2022-01-03  Stefan Kangas  <stefankangas@gmail.com>

	elide-head: Make GPL regexp more forgiving

	* lisp/elide-head.el (elide-head-headers-to-hide): Make GPL regexp
	more forgiving.
	* test/lisp/elide-head-tests.el (elide-head--add-test): New macro.
	(elide-head--test-headers-to-hide/gpl2-1)
	(elide-head--test-headers-to-hide/gpl3-1)
	(elide-head--test-headers-to-hide/gpl3-2)
	(elide-head--test-headers-to-hide/gpl3-3)
	(elide-head--test-headers-to-hide/gpl3-4): New tests.

2022-01-03  Po Lu  <luangruo@yahoo.com>

	Fix battery load calculation on Haiku

	* lisp/battery.el (battery-haiku-acpi-battery): Fix load
	calculation.

2022-01-03  Po Lu  <luangruo@yahoo.com>

	Add support for the Haiku ACPI battery driver

	* lisp/battery.el (battery-status-function): Choose
	`battery-haiku-acpi-battery' if the Haiku ACPI driver is
	available.
	(battery--search-haiku-acpi-status):
	(battery-haiku-acpi-battery): New functions.

2022-01-03  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/elide-head.el (elide-head-headers-to-hide): Simplify.

2022-01-02  Stefan Kangas  <stefankangas@gmail.com>

	Silence byte-compiler in eieio tests

	This is a temporary workaround for Bug#52971.
	* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
	(eieio-compat)
	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (eieio-compat):
	Silence byte-compiler by wrapping require in with-no-warnings.

2022-01-02  Po Lu  <luangruo@yahoo.com>

	Don't try to guess a delta if a scroll valuator's state is unknown

	* src/xterm.c (x_get_scroll_valuator_delta): Return DBL_MAX if
	the scroll valuator's value is unknown.

2022-01-02  Po Lu  <luangruo@yahoo.com>

	Revert "Stop sending touch-end events if coalescing scroll events"

	This reverts commit a6952f78f3962ac2d9a5add580a130f0abd31429.

2022-01-02  Po Lu  <luangruo@yahoo.com>

	Use XKB to find modifiers on x

	* src/xterm.c (x_find_modifier_meanings): Look for virtual
	modifiers with Xkb instead.
	(handle_one_xevent): Add group when translating XI2 keycodes and
	handle Xkb keymap events.
	(x_term_init): Populate dpyinfo->xkb_event_type.

	* src/xterm.h (struct x_display_info): New field
	`xkb_event_type', and change modifier masks to `unsigned int'.

2022-01-02  Po Lu  <luangruo@yahoo.com>

	* src/haikumenu.c (haiku_menu_show): Fix input blocking.

2022-01-02  Stefan Kangas  <stefankangas@gmail.com>

	Move define-keymap and defvar-keymap to keymap.el

	These functions deal with the "new" keymap binding interface, so they
	belong in keymap.el rather than in subr.el.
	* lisp/subr.el (define-keymap--compile, define-keymap)
	(defvar-keymap): Move from here ...
	* lisp/keymap.el (define-keymap--compile, define-keymap)
	(defvar-keymap): ... to here.

2022-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge remote-tracking branch 'origin/emacs-28' into trunk

2022-01-02  Stefan Kangas  <stefankangas@gmail.com>

	elide-head: Add support for modified BSD license

	* lisp/elide-head.el (elide-head-headers-to-hide): Add support for
	the modified BSD license (3-clause BSD).

2022-01-02  Stefan Kangas  <stefankangas@gmail.com>

	New :type key for defcustom

	As compared to the old type key-sequence that deals with raw key
	sequences, this :type conforms to the format used by the new keymap-*
	functions.
	* lisp/wid-edit.el (key): New widget type.  (Bug#52523)
	(widget-key-prompt-value-history): New variable.
	(widget-key-validate): New function.
	(key-sequence): Doc fix.
	* doc/lispref/customize.texi (Simple Types): Document above new type.

2022-01-02  Mattias Engdegård  <mattiase@acm.org>

	Don't fail flymake-tests if `gcc` actually is Clang

	* test/lisp/progmodes/flymake-tests.el (flymake-tests--gcc-is-clang)
	(different-diagnostic-types, included-c-header-files): Skip tests that
	depend on the `gcc` command really being GCC and not Clang.

2022-01-02  Po Lu  <luangruo@yahoo.com>

	Add column width to tooltip frame width on pgtk

	* src/pgtkfns.c (Fx_show_tip): Add column width to width to
	avoid an odd problem in the GTK allocation code.  (bug#52705)

2022-01-02  Po Lu  <luangruo@yahoo.com>

	Fix mouse wheel scroll direction on pgtk

	* src/pgtkterm.c (scroll_event): Fix scroll modifiers when
	`mwheel-coalesce-scroll-events' is nil.

2022-01-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	efb1c7ec37 ; * admin/notes/years: More known problems.
	f475c5823a ; Copyright year fixes
	2684def348 ; Run set-copyright from admin.el
	2558b37b5e ; * admin/notes/years: Mention known problems with 'update...

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Fix XRegisterIMInstantiateCallback function argument configure test

	* configure.ac: Use XIDProc where XIMProc was mistakenly used.

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Stop sending touch-end events if coalescing scroll events

	* src/xterm.c (handle_one_xevent): Don't generate touch-end
	events if mwheel_coalesce_scroll_events is non-nil.

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Fix mouse face problems when moving between two frames on Haiku

	* src/haiku_support.cc (movement_locker): New locker.
	(MouseMoved): Lock that locker.
	(BWindow_new):
	(BWindow_quit): Use LockLooper instead of Lock.

	* src/haikuterm.c (haiku_read_socket): Clear mouse face if
	a motion event is received for a frame other than the one
	that is currently displaying the mouse face.

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Make quitting actually work in Haiku file dialogs

	* src/haiku_support.h: (be_popup_file_dialog)
	* src/haiku_support.cc (be_popup_file_dialog): New parameter
	`maybe_quit_function'.
	* src/haikufns.c (Fhaiku_read_file_name): Pass `maybe_quit' as
	the maybe_quit_function.

2022-01-01  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	58b0ada20b Update more copyright years

2022-01-01  Stefan Kangas  <stefankangas@gmail.com>

	elide-head: Support more licenses

	* lisp/elide-head.el (elide-head-headers-to-hide): Add support for the
	Expat License, and more variants of the BSD-2-Clause License.

	Add old FSF address.  This fixes a bug reported in 2003:
	https://lists.gnu.org/r/bug-gnu-emacs/2003-01/msg00142.html

2022-01-01  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year.
	86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year
	ebe8772f65 ; Minor fixes related to copyright years
	23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye...
	8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t.
	19dcb237b5 ; Add 2022 to copyright years.

	# Conflicts:
	#	etc/NEWS
	#	etc/refcards/ru-refcard.tex
	#	lib/cdefs.h
	#	lisp/erc/erc-dcc.el
	#	lisp/erc/erc-imenu.el
	#	lisp/erc/erc-replace.el
	#	lisp/image-dired.el
	#	lisp/progmodes/xref.el
	#	m4/alloca.m4
	#	m4/byteswap.m4
	#	m4/errno_h.m4
	#	m4/getopt.m4
	#	m4/gnulib-common.m4
	#	m4/inttypes.m4
	#	m4/stddef_h.m4
	#	m4/stdint.m4
	#	m4/sys_socket_h.m4

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Increase size of precision scrolling momentum ring

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-initial-velocity-factor): Fix
	calculation of last timestamp.
	(pixel-scroll-precision):
	(pixel-scroll-kinetic-state):
	(pixel-scroll-accumulate-velocity):
	(pixel-scroll-start-momentum):
	(pixel-scroll-calculate-velocity): Increase default ring size
	to 30.

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Make last change compile

	* src/haiku_support.cc (EmacsShow): Fix last change.
	(TearDownDoubleBuffering): Likewise.
	(Draw): Draw normally if not double buffered even if shown_flag
	is true.

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Fix expose events in non-double-buffered child frames on Haiku

	* src/haiku_support.cc (EmacsShow): Set shown_flag to 1 only if
	this view is double buffered.
	(TearDownDoubleBuffering): Clear shown_flag.

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Fix some more off-by-one errors in Haiku image code

	* src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp):
	(BView_DrawMask):
	(BBitmap_transform_bitmap):
	* src/haiku_support.cc (AttachCairoSurface): Adjust calculations
	to take account of BRect width and height functions returning
	(start - end) instead of the actual width and height of the
	rectangle.

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Fix deadlocks with invisible frames and threads in Haiku

	* src/haiku_support.cc (class EmacsWindow): New field
	`was_shown_p'.
	(EmacsShow): Lock looper if the window wasn't ever visible.
	(BWindow_new): Unlock window looper after creating it.

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Set display last user time when handling pinch events

	* src/xterm.c (handle_one_xevent): Set last user time for XI
	pinch events.

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Fix child frame synchronization order on Haiku

	* src/haiku_support.cc (DoMove):
	(FrameMoved): Fix locking and sync order semantics.

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Implement numeric values of `mouse-highlight' on Haiku

	* src/haikuterm.c (haiku_read_socket): Clear mouse face on
	keyboard input if `mouse-highlight' is a fixnum.

2022-01-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2021-12-31 02:56:06 UTC.

2022-01-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	67400da412 Improve doc strings of fringe indicator variables
	a6adfe21e4 * lisp/tab-line.el (tab-line--get-tab-property): New funct...

2022-01-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f2031d0ddb Minor improvement in user documentation of completion style
	1e3076e2db Fix bug where bookmark-jump used (point), not (point-at-bol)

2022-01-01  Po Lu  <luangruo@yahoo.com>

	Flush frames after mouse face is cleared on a child frame in Haiku

	* src/haiku_support.cc (~EmacsWindow):
	(UpwardsSubsetChildren):
	(UpwardsUnSubsetChildren): Fix locking semantics.

	* src/haikuterm.c (haiku_read_socket): Flush dirty back buffers
	after clearing mouse face because the pointer was moved out of a
	frame.

2021-12-31  Po Lu  <luangruo@yahoo.com>

	Print dead xwidgets specially

	* src/print.c (print_vectorlike) <PVEC_XWIDGET>: Print "killed
	xwidget" for dead xwidgets.

2021-12-31  Alan Mackenzie  <acm@muc.de>

	Try to make scratch/correct-warning-pos build on Windows and not segfault

	* src/comp.c (emit_EQ): Replace calls to gcc_jit_context_new_location with
	NULLs.
	(Fcomp__init_ctxt): Remove the register_emitter call for Qsymbol_with_pos_p,
	which was causing a segfault.

2021-12-31  Alan Mackenzie  <acm@muc.de>

	Miscellaneous enhancements to scratch/correct-warning-pos.

	1. Check the type (symbol with position) of the argument given to the native
	compiled version of SYMBOL_WITH_POS_SYM.
	2. Handle infinite recursion caused by circular lists, etc., in
	macroexp-strip-symbol-positions by using hash tables.
	3. Read byte compiled functions without giving symbols positions.

	* lisp/emacs-lisp/comp.el (comp-finalize-relocs): Add symbol-with-pos-p into
	the list of relocated symbols.

	* lisp/emacs-lisp/macroexp.el (macroexp--ssp-conses-seen)
	(macroexp--ssp-vectors-seen, macroexp--ssp-records-seen): Renamed, and
	animated as hash tables.
	(macroexp--strip-s-p-2): Optionally tests for the presence of an argument in
	one of the above hash tables, so as to handle otherwise infinite recursion.
	(byte-compile-strip-s-p-1): Add a condition-case to handle infinite recursion
	caused by circular lists etc., using the above hash tables as required.

	* src/comp.c (comp_t): New element symbol_with_pos_sym.
	(emit_SYMBOL_WITH_POS_SYM): Amend just to call the new SYMBOL_WITH_POS_SYM.
	(emit_CHECK_SYMBOL_WITH_POS, define_SYMBOL_WITH_POS_SYM): New functions.
	(Fcomp__init_ctxt): Register an emitter for Qsymbol_with_pos_p.
	(Fcomp__compile_ctxt_to_file): Call define_SYMBOL_WITH_POS_SYM.
	(syms_of_comp): Define Qsymbol_with_pos_p.

	* src/data.c (syms_of_data): Define a new error symbol Qrecursion_error, an
	error category for the new error symbols Qexcessive_variable_binding and
	Qexcessive_lisp_nesting.

	* src/eval.c (grow_specpdl): Change the signal_error call to an xsignal0 call
	using the new error symbol Qexcessive_variable_binding.
	(eval_sub, Ffuncall): Change the `error' calls to xsignal using the new error
	symbol Qexcessive_lisp_nesting.

	* src/lread.c (read1): When reading a compiled function, read the components
	of the vector without giving its symbols a position.

2021-12-31  Stefan Kangas  <stefankangas@gmail.com>

	Use defvar-keymap in play/*.el

	* lisp/play/5x5.el (5x5-mode-map):
	* lisp/play/blackbox.el (blackbox-mode-map):
	* lisp/play/bubbles.el (bubbles-mode-map):
	* lisp/play/decipher.el (decipher-mode-map):
	* lisp/play/doctor.el (doctor-mode-map):
	* lisp/play/gametree.el (gametree-mode-map):
	* lisp/play/gomoku.el (gomoku-mode-map):
	* lisp/play/mpuz.el (mpuz-mode-map):
	* lisp/play/pong.el (pong-mode-map):
	* lisp/play/solitaire.el (solitaire-mode-map): Use defvar-keymap.

2021-12-31  Lars Ingebrigtsen  <larsi@gnus.org>

	`make-finalizer' now has to be called with a function, so adjust test

2021-12-31  Michael Albinus  <michael.albinus@gmx.de>

	Documentation update for Secret Service

	* doc/misc/auth.texi (Secret Service API): Precise "session" collection.

	* lisp/auth-source.el (auth-sources): Adapt custom label.

	* lisp/net/secrets.el: Adjust comments.

2021-12-31  Po Lu  <luangruo@yahoo.com>

	Fix copyright dates in some files belonging to the pgtk port

	* src/pgtkgui.h:
	* src/pgtkim.c:
	* src/pgtkmenu.c:
	* src/pgtkselect.c:
	* src/pgtkselect.h:
	* src/pgtkterm.c:
	* src/pgtkterm.h: Fix copyright dates to say '2021'.

2021-12-31  Po Lu  <luangruo@yahoo.com>

	On Haiku, sync a frames's connection to the app sever after raising

	* src/haiku_support.h: (BWindow_sync)
	* src/haiku_support.cc (BWindow_sync): New function.
	* src/haikuterm.c (haiku_frame_raise_lower): Synchronize window
	after raising it to avoid situations where raising windows is
	done out-of-order, such as when ediff raises a frame.

2021-12-31  Po Lu  <luangruo@yahoo.com>

	Fix child frame unlinking on Haiku

	* src/haiku_support.cc (UnlinkChild): Fix obvious mistake.
	(DoMove): Lock child frame window before moving it.

2021-12-31  Po Lu  <luangruo@yahoo.com>

	Use a single global lock for the child frame state on Haiku

	Each BWindows (and various system callbacks) runs in a separate
	thread, so there are very complicated locking semantics that
	used to be handled manually.  This changes child frame state to
	use a single global lock, which makes things much easier.

	* src/haiku_support.cc (child_frame_lock): New variable.
	(class EmacsWindow):
	(~EmacsWindow):
	(Unparent):
	(ParentTo):
	(MoveChild):
	(FrameMoved):
	(EmacsHide):
	(EmacsShow):
	(GetParentWidthHeight):
	(OffsetChildRect):
	(MakeFullscreen):
	(SetUpDoubleBuffering): Use a single lock for controlling access
	to child frame state.

2021-12-31  Stephen Berman  <stephen.berman@gmx.net>

	Fix handling of webkit xwidget bookmarks

	Make jumping to a bookmarked webkit xwidget in another window or
	another frame show the xwidget only in that window or frame and
	refactor new session code used by the bookmark code (bug#52856).
	In addition, make xwidget-webkit-clone-* commands work.

	* lisp/xwidget.el (xwidget-webkit-clone-and-split-below)
	(xwidget-webkit-clone-and-split-right): Unbreak these functions by
	passing just the URL to them, not the message displaying it.
	(xwidget-webkit-bookmark-jump-new-session): Adjust doc string,
	rephrasing and removing a customization suggestion that cannot
	take effect.
	(xwidget-webkit-bookmark-jump-handler): New autoloaded function.
	(xwidget-webkit-bookmark-make-record): Use it.
	(xwidget-webkit--create-new-session-buffer): New function
	extracted from `xwidget-webkit-new-session'.
	(xwidget-webkit-new-session): Use it.

2021-12-31  Eli Zaretskii  <eliz@gnu.org>

	Minor improvements of 'lisp-directory' docs

	* lisp/startup.el (lisp-directory):
	* etc/NEWS:
	* doc/lispref/loading.texi (Library Search): Improve wording of
	documentation of 'lisp-directory' and related features.

2021-12-31  Po Lu  <luangruo@yahoo.com>

	Prevent double buffering from being disabled on USE_BE_CAIRO builds

	The direct rendering code used in that situation never
	completely worked, and the BDirectWindow destructor is also
	buggy.  Completely remove that code in order to let us inherit
	from BWindow, so as to prevent the buggy destructor from being
	run.

	* src/haiku_support.cc (cairo_format_from_color_space): Delete
	function.
	(class EmacsWindow): Inherit from BWindow.
	(EmacsWindow): Call BWindow constructor instead.
	(MessageReceived):
	(DispatchMessage):
	(FrameResized):
	(FrameMoved):
	(Zoom): Call BWindow functions instead.
	(EmacsView_cairo_surface): Stop looking for surfaces in the
	window.
	(EmacsWindow_begin_cr_critical_section):
	(EmacsWindow_end_cr_critical_section): Stop locking the window.

	* src/haikufns.c (haiku_set_inhibit_double_buffering): Always
	enable double buffering on Cairo builds.

2021-12-31  Po Lu  <luangruo@yahoo.com>

	Don't select for gesture events on xwidgets if the server is too old

	* src/xwidget.c (x_draw_xwidget_glyph_string): Only select for
	XI gesture events if the server supports XI 2.4 or later.

2021-12-31  Stefan Monnier  <monnier@iro.umontreal.ca>

	(Fmake_finalizer): Check the arg is a function

	* src/eval.c (syms_of_eval): Add `Qfunctionp`.
	* src/alloc.c (Fmake_finalizer): Check the arg is a function.

2021-12-31  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/package.el (package-get-version): Add fallback

2021-12-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	Don't store docstrings of preloaded .el files in etc/DOC

	Since the location of those files changes between build time and
	installation time, this requires to tweak the file name used in those
	(#$ . NNN) references during the dump so they don't hardcode the build
	directory.  We do it in the same way as was already done for those
	same file names in `load-history`, except we convert them back to
	absolute file names more lazily (i.e. when fetching the actual
	docstring rather than at startup), which requires remembering the
	`lisp-dir` computed at startup in the new `lisp-directory` variable.

	* src/Makefile.in ($(etc)/DOC): Don't scan Lisp files any more.

	* src/lread.c (Fload): Use relative file names for `load-file-name`
	when preloading for the dump, like we already did for `current-load-list`.
	(read_list): Don't zero-out dynamic docstring references during the
	preload since they won't be filled later by Snarf-documentation any more.
	(read1): Remove the hash-hack for doc references that were zeroed.

	* lisp/startup.el (lisp-directory): New variable.
	(command-line): Set it.

	* src/doc.c (get_doc_string): Use `lisp-directory` for dynamic
	docstring references using relative file names.
	(syms_of_doc): Add `Qlisp_directory`.

	* lib-src/make-docfile.c (scan_file): Don't handle `.el` or `.elc`
	files any more.
	(IS_SLASH): Remove macro, not used any more.
	(skip_white, read_lisp_symbol, search_lisp_doc_at_eol)
	(scan_lisp_file): Remove functions, not used any more.

	* doc/lispref/loading.texi (Library Search): Mention `lisp-directory`.

2021-12-30  Po Lu  <luangruo@yahoo.com>

	Add pinch event support to xwidgets

	* src/xterm.c (handle_one_xevent): Pass through pinch events to
	xwidgets and provide root coordinates when translating motion
	events.
	* src/xwidget.c (xwidget_motion_notify): Use provided root
	window coordinates.
	(xwidget_pinch): New function.
	* src/xwidget.h (xwidget_motion_notify): Update prototype.
	(xwidget_pinch): New function prototype.

2021-12-30  Po Lu  <luangruo@yahoo.com>

	Restore original xwidget embedder after performing a lispy event

	* src/xwidget.c (Fxwidget_perform_lispy_event): Restore original
	embedder after performing event.
	(Fdelete_xwidget_view): Block input around non-reentrant
	section.

2021-12-30  Po Lu  <luangruo@yahoo.com>

	* src/xwidget.c (Fxwidget_perform_lispy_event): Use FRAME_WINDOW_P.

2021-12-30  Glenn Morris  <rgm@gnu.org>

	* lisp/window.el (display-comint-buffer-action): Fix type.

2021-12-30  Philipp Stephani  <phst@google.com>

	* lisp/emacs-lisp/ert.el (ert-select-tests): Document new error.

	* lisp/emacs-lisp/ert.el (ert-select-tests): Simplify nested switch

2021-12-30  Philipp Stephani  <phst@google.com>

	Properly report errors about unbound ERT test symbols.

	Assertions should only be used to check internal consistency within a
	package, not to check arguments passed by callers.  Instead, define
	and use a new error symbol.

	* lisp/emacs-lisp/ert.el (ert-test-unbound): New error symbol.
	(ert-select-tests): Use it.

	* test/lisp/emacs-lisp/ert-tests.el (ert-test-select-undefined): New
	unit test.

	* etc/NEWS: Document new behavior.

2021-12-30  Eli Zaretskii  <eliz@gnu.org>

	Fix multisession-tests on MS-Windows

	* test/lisp/emacs-lisp/multisession-tests.el
	(multi-test-files-simple): On MS-Windows and Haiku, wait before
	invoking the Emacs sub-process, not after, to ensure the later
	update is detected with 1-sec file time resolution.

2021-12-30  Po Lu  <luangruo@yahoo.com>

	Make sure widget buttons always have a left box line

	* lisp/wid-edit.el (widget-specify-button): Add an invisible
	before-string to the button overlay.  (bug#51550)

2021-12-30  Alan Mackenzie  <acm@muc.de>

	CC Mode: Prevent rapid alternation of fontification of "found types"

	This fixes bug #52863.

	* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): When a new type is
	found, postpone entering it into c-found-types (and thus triggering the
	fontification of that type throughout the buffer) until the end of the
	function, when we're sure that the "type" found actually is a type.

2021-12-30  Eli Zaretskii  <eliz@gnu.org>

	Fix previous change in 'pop_it'

	* src/xdisp.c (restore_face_box_flags): New function.
	(pop_it): Use 'restore_face_box_flags'.  (Bug#51550)

2021-12-30  Eli Zaretskii  <eliz@gnu.org>

	Fix start-of-box-face display after display and overlay strings

	* src/xdisp.c (pop_it): Recompute the 'start_of_box_run_p' flag,
	like we do in 'handle_fontified_prop', when faces change while
	iterating over a buffer or string.  (Bug#51550)

2021-12-30  Alan Mackenzie  <acm@muc.de>

	Make symbols with positions work with native compilation

	This version of the software should bootstrap Emacs successfully with native
	compilation enabled.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-strip-s-p-1)
	(byte-compile-strip-symbol-positions): Rename and move to macroexp.el.  Rename
	calls to these functions throughout the file.
	(byte-compile-initial-macro-environment): In the code sections for
	eval-when-compile and eval-and-compile, call macroexp-strip-symbol-positions
	before evaluating code.
	(byte-compile-file, byte-compile-output-file-form)
	(byte-compile-file-form-defmumble, byte-compile, batch-byte-compile): Call
	macroexp-strip-symbol-positions from code being passed to the native compiler.

	* lisp/emacs-lisp/cl-macs.el (cl-macs--strip-s-p-1)
	(cl-macs--strip-symbol-positions): Remove, replacing them with the renamed
	functions in macroexp.el.
	(cl-define-compiler-macro): Apply macroexp-strip-symbol-positions to ARGS and
	BODY.

	* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Use `null' to compile
	byte-not rather than a compilation of `eq'.
	(comp--native-compile): bind symbols-with-pos-enabled to t.

	* lisp/emacs-lisp/macroexp.el (byte-compile--ssp-conses-seen)
	(byte-compile--ssp-vectors-seen, byte-compile--ssp-records-seen): Provisional
	auxiliary variables to support the following functions.
	(macroexp--strip-s-p-2, byte-compile-strip-s-p-1)
	(macroexp-strip-symbol-positions): Functions moved from bytecomp.el, renamed,
	and further developed.
	(macroexp--compiler-macro): Bind symbol-with-pos-enabled to t around the call
	to `handler'.
	(internal-macroexpand-for-load): Strip symbol positions from the form being
	eagerly expanded for macros.

	* src/comp.c (F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM): New macro for a
	relocation symbol.
	(comp_t): New elements bool_ptr_type, f_symbols_with_pos_enabled_ref,
	lisp_symbol_with_position, lisp_symbol_with_position_header,
	lisp_symbol_with_position_sym, lisp_symbol_with_position_pos,
	lisp_symbol_with_position_type, lisp_symbol_with_position_ptr_type,
	get_symbol_with_position.
	(helper_GET_SYMBOL_WITH_POSITION): New function.
	(emit_BASE_EQ): Function rename from emit_EQ.
	(emit_AND, emit_OR, emit_BARE_SYMBOL_P, emit_SYMBOL_WITH_POS_P)
	(emit_SYMBOL_WITH_POS_SYM): New functions.
	(emit_EQ): New function which handles symbols with position correctly.
	(emit_NILP): Use emit_BASE_EQ rather than emit_EQ.
	(emit_limple_insn): When emitting a conditional branch, check each operand for
	being a literal Qnil, and if one of them is, use emit_BASE_EQ rather than
	emit_EQ.
	(declare_runtime_imported_funcs): Declare helper_GET_SYMBOL_WITH_POSITION.
	(emit_ctxt_code): Export the global F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM.
	(define_lisp_symbol_with_position, define_GET_SYMBOL_WITH_POSITION): New
	functions.
	(Fcomp__init_ctxt): Initialize comp.bool_ptr_type, call the two new
	define_.... functions.
	(load_comp_unit): Initialize **f_symbols_with_pos_enabled_reloc.

	* src/fns.c (Fput): Strip positions from symbols in PROPNAME and VALUE.

2021-12-30  Juri Linkov  <juri@linkov.net>

	* lisp/tab-line.el (tab-line-tab-name-format-default): Add help-echo.

	(bug#52889)

2021-12-30  Po Lu  <luangruo@yahoo.com>

	Make xwidget motion commands hscroll the window of wide widgets

	* lisp/xwidget.el (xwidget-info): New function declaration.
	(xwidget-webkit-scroll-forward):
	(xwidget-webkit-scroll-backward): Hscroll the window if the
	widget is wider than the text area.  (bug#52885)

	* src/xwidget.c (xwidget_scroll, xwidget_motion_notify): Apply
	clip offsets to coordinates.

2021-12-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	06545bc0cc CC Mode: c-update-brace-stack: After struct foo *, do not ...
	f11779f01b Improve documentation of 'M-X' and related features

	# Conflicts:
	#	etc/NEWS

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Work around xwidgets releasing the passive grab on an entry event

	* src/xterm.c (handle_one_xevent): Don't send XI_Enter events to
	xwidgets if button 1 is pressed.

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Use XRandR 1.5 to generate monitor attributes if available

	* src/xfns.c (x_get_monitor_attributes_xrandr): Use XRR 1.5 if
	present.
	(xlw_monitor_dimensions_at_pos_1): Remove redundant XRR 1.5
	code.
	(xlw_monitor_dimensions_at_pos): Rely on
	`x_get_monitor_attributes_xrandr' to retrieve the workarea
	instead.

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Translate crossing event mode when sending them to xwidgets

	* src/xwidget.c (xi_translate_notify_detail): Use XI constants
	instead.
	(xwidget_motion_or_crossing): Translate XI entry event mode.

2021-12-29  Juri Linkov  <juri@linkov.net>

	* lisp/textmodes/paragraphs.el (repunctuate-sentences-filter): New function.

	(repunctuate-sentences): Use it on isearch-filter-predicate
	to skip unnecessary matches.  (bug#52769)

2021-12-29  Juri Linkov  <juri@linkov.net>

	* lisp/textmodes/sgml-mode.el (sgml-mode): Set skeleton-end-newline to nil.

	Prevent skeleton.el from adding a newline to each inserted
	skeleton.  Those which do want a newline do that explicitly in
	their define-skeleton form.  This is what texinfo-mode does (bug#52864).

2021-12-29  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of 'define-keymap'

	* doc/lispref/keymaps.texi (Creating Keymaps)
	(Changing Key Bindings): Fix typos, improve wording.

2021-12-29  Eli Zaretskii  <eliz@gnu.org>

	Fix recent changes in 'keymap-lookup' documentation

	* doc/lispref/keymaps.texi (Functions for Key Lookup): Improve
	wording, correct typos.

2021-12-29  Tassilo Horn  <tsdh@gnu.org>

	Revert "Revert "Fix fontification in diff--font-lock-prettify""

	This reverts commit 3cadd72673d8095df7eeb8e847db87ae42b5e2f6.

2021-12-29  Tassilo Horn  <tsdh@gnu.org>

	Revert "Fix fontification in diff--font-lock-prettify"

	This reverts commit 1da392d62d1ae743151f7fda83d0725ec6053686.

2021-12-29  Matthias Meulien  <orontee@gmail.com>

	Fix fontification in diff--font-lock-prettify

	* lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix
	diff--font-lock-prettify on created or deleted files
	(bug#52810).

2021-12-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Document keymap-set-after in Modifying Menus in lispref

	* doc/lispref/keymaps.texi (Modifying Menus): Document
	keymap-set-after (bug#52819).

2021-12-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Document `keymap-lookup' in the lipsref manual

	* doc/lispref/keymaps.texi (Functions for Key Lookup): Document
	`keymap-lookup' instead of `lookup-key' (bug#52820).

2021-12-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Move define-keymap manual entry to Creating Keymaps

	* doc/lispref/keymaps.texi (Creating Keymaps)
	(Changing Key Bindings): Move `define-keymap'/`defvar-keymap' to
	the Creating Keymaps node.

2021-12-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow the user to specify shr-width in mm-shr

	* lisp/gnus/mm-decode.el (mm-shr): Allow the user to specify the
	width by setting `shr-width' (bug#52825).

2021-12-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Make multi-test-files-busy shorter

	Ignore manual/ directory made by admin/make-manuals

2021-12-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust multi-test-files-simple test for Windows

	* test/lisp/emacs-lisp/multisession-tests.el
	(multi-test-files-simple): Adjust test to Emacs timestamp
	resolution on Windows.

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Fix a hang on servers that don't support the X Keyboard Extension

	* src/xfns.c (Fx_backspace_delete_keys_p): Don't block input
	before checking for Xkb.

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Translate state of XI2 entry events when sending them to xwidgets

	* src/xwidget.c (xi_translate_notify_detail): New function.
	(xwidget_motion_or_crossing): Translate detail and state of
	GenericEvents before sending them to the widget.

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Get rid of obsolete xwidget-related code on PGTK

	* src/emacsgtkfixed.c (emacs_fixed_class_init): Stop setting
	obsolete methods.

	(EMACS_FIXED_GET_CLASS, struct GtkFixedPrivateL):
	(emacs_fixed_gtk_widget_size_allocate): Delete obsolete things.

	* src/xwidget.c (x_draw_xwidget_glyph_string): Work around
	mysterious bug.

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Test for Xkb support when opening a display

	* src/xfns.c (Fx_backspace_delete_keys_p): Use
	dpyinfo->supports_xkb instead of testing for its presence
	manually.

	* src/xterm.c (x_term_init): Test for Xkb presence
	and set supports_xkb appropriately.

	* src/xterm.h (struct x_display_info): New field `supports_xkb'.

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Queue xwidget views for allocation in more places

	* src/xwidget.c (Fmake_xwidget) [HAVE_PGTK]:
	(Fxwidget_resize) [HAVE_PGTK]: Queue xwidgets and views for
	allocation.

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Improve xwidget event handling on XI2

	* src/xterm.c (handle_one_xevent): Pass XI2 entry and leave
	events to xwidgets and fix scroll valuator reset logic for
	xwidgets.

	* src/xwidget.c (xwidget_button_1): Stop ungrabbing all devices
	XI2 builds.
	(xwidget_motion_or_crossing): Learn to pass through XI2 crossing
	events.
	(x_draw_xwidget_glyph_string): Add crossing events to the XI2
	event mask.

2021-12-29  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	06dcd2be5d Improve rectangle-mark-mode documentation regarding mark a...

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Translate buttons when sending XI2 motion events to xwidgets

	* src/xterm.c (handle_one_xevent): Translate all three buttons
	when passing XI2 motion events to xwidgets.

2021-12-29  Po Lu  <luangruo@yahoo.com>

	Use XI2 to handle xwidget button events

	* src/xterm.c (handle_one_xevent): Handle xwidget views when
	handling XI_ButtonPress or XI_ButtonRelease events.
	* src/xwidget.c (x_draw_xwidget_glyph_string): Add appropriate
	values to the XI2 event mask.

2021-12-28  Po Lu  <luangruo@yahoo.com>

	Fix embedder calculation for xwidgets on PGTK

	* src/xwidget.c (Fmake_xwidget):
	(x_draw_xwidget_glyph_string): Defer focus event synthesis on
	PGTK as well.
	(record_osr_embedder): Use view window on PGTK.
	(to_embedder):
	(from_embedder): Rectify accordingly.

2021-12-28  Po Lu  <luangruo@yahoo.com>

	Fix NS xwidget build

	* src/xwidget.c (kill_frame_xwidget_views):
	* src/xwidget.h (kill_frame_xwidget_views): Disable on NS.

2021-12-28  Po Lu  <luangruo@yahoo.com>

	* src/xwidget.c (syms_of_xwidget): Fix typo.

2021-12-28  Po Lu  <luangruo@yahoo.com>

	Add support for xwidgets to the PGTK port

	* src/emacsgtkfixed.c (EMACS_FIXED_GET_CLASS): New function.
	(struct GtkFixedPrivateL): New struct.
	(emacs_fixed_gtk_widget_size_allocate):
	(emacs_fixed_class_init): New functions.

	* src/keyboard.h: Declare lispy_function_keys also when
	HAVE_PGTK.

	* src/pgtkterm.c (x_free_frame_resources): Destroy all xwidget
	views.
	(pgtk_scroll_run): Move xwidget views that overlap with the
	scrolled area.
	(pgtk_emacs_to_gtk_modifiers): Expose function.

	* src/pgtkterm.h: Wrap in include guard.
	(pgtk_emacs_to_gtk_modifiers): New prototype.

	* src/xwidget.c (xw_forward_event_translate):
	(xw_forward_event_from_view): New functions.
	(Fmake_xwidget): Remove obsolete PGTK specific code.
	(Fxwidget_perform_lispy_event): Convert modifiers correctly on
	PGTK.
	(define_cursors): Use GDK functions to define cursors on PGTK.
	(xwidget_view_from_window): Disable on non-PGTK builds.
	(xwidget_show_view):
	(xwidget_hide_view): Implement on PGTK.
	(xv_do_draw): Disable on non-PGTK builds.
	(offscreen_damage_event): Queue xwidget views for draw.
	(xwidget_expose): Disable on non-PGTK builds.
	(xwidget_init_view):
	(x_draw_xwidget_glyph_string):
	(Fdelete_xwidget_view): Implement for PGTK.
	(syms_of_xwidget): Don't initialize XID to widget table on PGTK.
	(lower_frame_xwidget_views): Disable on PGTK.
	* src/xwidget.h (struct xwidget_view): New fields for PGTK
	builds.
	(kill_frame_xwidget_views): Enable on PGTK.

2021-12-28  Sam Steingold  <sdsg@amazon.com>

	Fix bug#52467 by adding a new custom variable 'display-comint-buffer-action'

	* lisp/window.el (display-comint-buffer-action): New `defcustom`,
	defaults to 'display-buffer-same-window' for backward compatibility.
	* lisp/cmuscheme.el (run-scheme, switch-to-scheme): Pass
	'display-comint-buffer-action' to 'pop-to-buffer' instead
	of using 'pop-to-buffer-same-window'.
	* lisp/eshell/eshell.el (eshell): Likewise.
	* lisp/shell.el (shell): Likewise.
	* lisp/org/ol-eshell.el (org-eshell-open): Likewise.
	* lisp/progmodes/inf-lisp.el (inferior-lisp): Likewise.
	* lisp/progmodes/project.el (project-shell, project-eshell): Likewise.
	* lisp/textmodes/tex-mode.el (tex-display-shell, tex-compile-default)
	(tex-recenter-output-buffer): Pass 'display-comint-buffer-action'
	to 'pop-to-buffer'.

2021-12-28  Philipp Stephani  <phst@google.com>

	Fix test lisp/cedet/semantic/bovine/gcc-tests on macOS (Bug#52431)

	* test/lisp/cedet/semantic/bovine/gcc-tests.el
	(semantic-gcc-test-output-parser-this-machine): Also detect Apple
	clang on macOS Monterey.

2021-12-28  Juri Linkov  <juri@linkov.net>

	* lisp/textmodes/paragraphs.el (repunctuate-sentences): Region for NO-QUERY.

	Use region boundaries also for the case when NO-QUERY arg is non-nil
	(bug#52769).

2021-12-28  Juri Linkov  <juri@linkov.net>

	* lisp/textmodes/paragraphs.el (repunctuate-sentences): Support region.

	Add optional args 'start' and 'end', and pass them as region boundaries
	to query-replace-regexp (bug#52769).

2021-12-28  Juri Linkov  <juri@linkov.net>

	* lisp/replace.el (replace-regexp-function): New function (bug#52558).

	(replace-search, replace-highlight): Use it.

2021-12-28  Andrea Corallo  <akrl@sdf.org>

	* Fix native comp for non trivial function names (bug#52833)

	* lisp/emacs-lisp/comp.el (comp-c-func-name): Fix native compilation
	for functions with function names containing non trivial
	characters (bug#52833).

2021-12-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* etc/NEWS (eieio-compat): Rewrite

2021-12-28  Po Lu  <luangruo@yahoo.com>

	* lwlib/xlwmenu.c (fit_to_screen): Adjust correctly for child menus.

2021-12-28  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc.el (vc-revert): Use generate-new-buffer, not just new buffer name

2021-12-28  Po Lu  <luangruo@yahoo.com>

	Document a problem with IBus and the C-. key

	* etc/PROBLEMS: Document an IBus emoji panel problem.

2021-12-28  Po Lu  <luangruo@yahoo.com>

	Add support for pinch events to NS

	* lisp/face-remap.el (text-scale-pinch): Remove mistaken
	assumption that angle is always 1.0 at the beginning of
	a sequence.

	* src/nsterm.c (- magnifyWithEvent): New function.

2021-12-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	c0815aca18 Fix typos in in 'reset-language-environment'
	ea65de7577 eshell-complete-parse-arguments: don't use string-match on...

2021-12-27  Po Lu  <luangruo@yahoo.com>

	Fix menu placement on multiple-display setups when using lwlib

	* lwlib/xlwmenu.c (fit_to_screen):
	(pop_up_menu): Adjust menu position based on dimensions of the
	current monitor's workarea.  (bug#52809)

	* src/xfns.c (x_get_monitor_attributes): Stop testing for the
	RandR extension here.
	(xlw_monitor_dimensions_at_pos_1):
	(xlw_monitor_dimensions_at_pos): New functions.

	* src/xterm.c (x_term_init): Query for the RandR extension when
	connecting to a display.
	* src/xterm.h (xlw_monitor_dimensions_at_pos): New prototype.

2021-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	Replace uniquify.el's advice with direct calls

	This fixes bug#1338.

	* src/buffer.c (Frename_buffer): Call `uniquify--rename-buffer-advice`.
	* lisp/files.el (create-file-buffer):
	Call`uniquify--create-file-buffer-advice`.

	* lisp/uniquify.el (uniquify--rename-buffer-advice)
	(uniquify--create-file-buffer-advice): Don't add them as advice any more.
	Adjust their calling convention accordingly.

2021-12-27  Po Lu  <luangruo@yahoo.com>

	Only rely on passive device grabs on XI2

	* src/xterm.c (xi_grab_or_ungrab_device): Remove function.
	(handle_one_xevent): Stop setting non-passive grabs.

2021-12-27  Stefan Kangas  <stefankangas@gmail.com>

	Fix read-multiple-choice tests

	* lisp/emacs-lisp/rmc.el (rmc--add-key-description): Fix typo.
	* test/lisp/emacs-lisp/rmc-tests.el
	(test-rmc--add-key-description)
	(test-rmc--add-key-description/with-attributes)
	(test-rmc--add-key-description/non-graphical-display): Fix tests.

2021-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix EIEIO tests to account for eieio-compat move

	* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el:
	Require `eieio-compat` explicitly.

	* test/manual/cedet/tests/test.el (a-method, a-generic):
	* doc/misc/srecode.texi (Compound Dictionary Values):
	* doc/misc/ede.texi (ede-generic-project): Update sample code to use
	cl-generic syntax.

2021-12-27  Stefan Kangas  <stefankangas@gmail.com>

	admin.el: Move etc/NEWS to etc/NEWS.NN in one commit

	This should preserve git history better for git blame, etc.
	* admin/admin.el (admin-git-command): New variable.
	(set-version): Move etc/NEWS to etc/NEWS.NN and prompt to commit
	it immediately.  (Bug#52420)

2021-12-27  Stefan Kangas  <stefankangas@gmail.com>

	disabled-command: Explain what SPC means again

	* lisp/novice.el (disabled-command-function): Explain what SPC means
	again, an explanation that was lost in a recent change.

2021-12-27  Stefan Kangas  <stefankangas@gmail.com>

	read-multiple-choice: Improve key formatting

	* lisp/emacs-lisp/rmc.el (rmc--add-key-description): Improve
	formatting of key missing in the description.  Use face help-key-name
	on terminals that can't display underline.

2021-12-27  Juri Linkov  <juri@linkov.net>

	* etc/NEWS: Mention completion-wrap-movement.

	* doc/emacs/search.texi (Lax Search): Add char-fold-include.

	* lisp/tab-bar.el (tab-bar-history-mode-map): New defvar-keymap.

2021-12-27  Michael Albinus  <michael.albinus@gmx.de>

	The temporary "session" collection might not exist in Secret Service

	* doc/misc/auth.texi (Secret Service API):
	* test/lisp/net/secrets-tests.el (secrets--test-delete-all-session-items)
	(secrets-test02-collections, secrets-test03-items)
	(secrets-test04-search): The temporary "session" collection might
	not exist.

	* lisp/net/secrets.el (secrets-struct-secret-content-type):
	Remove compatibility hack.
	(secrets-create-item): Adapt accordingly.

2021-12-27  Michael Albinus  <michael.albinus@gmx.de>

	Use `permission-denied' in Tramp tests, and more

	* lisp/net/tramp-crypt.el (tramp-crypt-maybe-open-connection):
	Simplify code.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-system-info):
	Adapt for "mtp" method.

	* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes):
	Use `permission-denied' error.  Simplify code.
	(tramp-test24-file-acl, tramp-test26-file-name-completion):
	Simplify code.

2021-12-27  Stefan Kangas  <stefankangas@gmail.com>

	Doc fix; fix terminology in key binding functions

	* lisp/keymap.el (keymap-set, key-valid-p):
	* lisp/subr.el (define-keymap): Doc fix; improve terminology.

2021-12-27  Po Lu  <luangruo@yahoo.com>

	Fix precision scrolling inside terminal buffers

	* lisp/term.el (term-goto-process-mark-maybe): Don't move point
	to process mark if the event is a vertical wheel event.

2021-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-list/eieio-compat.el: Really move to obsolete

2021-12-27  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d4e2850b32 Update to Org 9.5.2-3-geb9f34

2021-12-26  Po Lu  <luangruo@yahoo.com>

	* src/pgtkterm.c (pgtk_handle_event): Add pinch event support.

2021-12-26  Stefan Kangas  <stefankangas@gmail.com>

	perl-mode: Recognize "when"/"given" keywords

	* lisp/progmodes/perl-mode.el (perl-font-lock-keywords-2): Add
	keywords "when", "given" and "default".  (Bug#10560)
	(perl--syntax-exp-intro-keywords): Add "printf".

	* test/manual/indent/perl.perl: Add test for "when"/"given".

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Fix menu window persistence and entry/leave events on Lucid on XI2

	* src/xmenu.c (x_activate_menubar): Always clear the XI2 grab on
	Xt.
	* src/xterm.c (handle_one_xevent): On XI2, ignore LeaveNotify
	events coming from the shell widget and use `x_window_to_frame'
	to find the frame when handling XI_Leave events.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Fix Lucid popup menu being stuck on XI2 builds

	* src/xmenu.c (x_activate_menubar): Make some changes
	conditional on XI2.
	(create_and_show_popup_menu): Clear XI2 grab before showing
	popup.
	* src/xterm.c (xi_grab_or_ungrab_device): Don't grab device
	if popup is activated on Lucid.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Store sign separately when accumulating precision scroll momentum

	* lisp/pixel-scroll.el (pixel-scroll-kinetic-state): Return
	vector in new format.
	(pixel-scroll-accumulate-velocity): Use new sign field.

2021-12-26  Stefan Kangas  <stefankangas@gmail.com>

	Use defvar-keymap in tests

	* test/lisp/button-tests.el (button-tests--map):
	* test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-keymap):
	* test/lisp/help-tests.el (help-tests-remap-map)
	(help-tests-major-mode-map, help-tests-minor-mode-map):
	* test/lisp/kmacro-tests.el (kmacro-tests-keymap):
	* test/lisp/repeat-tests.el (repeat-tests-map)
	(repeat-tests-repeat-map):
	* test/src/keymap-tests.el (keymap-tests-minor-mode-map)
	(keymap-tests-major-mode-map): Use defvar-keymap.

2021-12-26  Stefan Kangas  <stefankangas@gmail.com>

	Prefer the defcustom :risky property in gnus

	* lisp/gnus/gnus-art.el (gnus-button-alist)
	(gnus-header-button-alist):
	* lisp/gnus/gnus-group.el (gnus-group-highlight)
	(gnus-group-icon-list):
	* lisp/gnus/gnus-sum.el (gnus-summary-highlight):
	* lisp/gnus/mm-util.el (mm-charset-eval-alist): Prefer the
	defcustom :risky property to setting 'risky-local-variable
	manually.

2021-12-26  Stefan Kangas  <stefankangas@gmail.com>

	Rewrite disabled-command to use read-multiple-choice

	* lisp/novice.el (disabled-command-function): Rewrite to use
	read-multiple-choice.  Use command substitutions.

2021-12-26  Stefan Kangas  <stefankangas@gmail.com>

	read-multiple-choice: Display "SPC" instead of " "

	* lisp/emacs-lisp/rmc.el (rmc--add-key-description): Improve display
	of the keys TAB, RET, SPC, DEL, and ESC.  This fixes a bug where " "
	was highlighted in the description in a confusing way.
	* test/lisp/emacs-lisp/rmc-tests.el
	(test-rmc--add-key-description)
	(test-rmc--add-key-description/with-attributes): Update tests for the
	above change.

2021-12-26  Stefan Kangas  <stefankangas@gmail.com>

	read-multiple-choice: Add optional argument show-help

	* lisp/emacs-lisp/rmc.el (rmc--show-help): Factor out new function
	from read-multiple-choice.
	(read-multiple-choice): Add new optional argument show-help.
	* doc/lispref/commands.texi (Reading One Event): Document above new
	optional argument.

2021-12-26  Stefan Kangas  <stefankangas@gmail.com>

	read-multiple-choice: Add face when key not in name string

	* lisp/emacs-lisp/rmc.el (rmc--add-key-description): Add face
	property also when key is not in the name string.
	* test/lisp/emacs-lisp/rmc-tests.el
	(test-rmc--add-key-description/with-attributes)
	(test-rmc--add-key-description/non-graphical-display): Update tests.

2021-12-26  Stefan Kangas  <stefankangas@gmail.com>

	Factor out new function rmc--add-key-description

	* lisp/emacs-lisp/rmc.el (rmc--add-key-description): Factor out
	new function from...
	(read-multiple-choice): ...here.

	* test/lisp/emacs-lisp/rmc-tests.el (test-rmc--add-key-description)
	(test-rmc--add-key-description/with-attributes)
	(test-rmc--add-key-description/non-graphical-display): New tests.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	* INSTALL: Document `--with-xinput2'.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Accumulate deltas in pinch events that were skipped

	* src/keyboard.c (kbd_buffer_get_event): Accumulate relative deltas
	inside skipped events when coalescing them.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Clarify situations where pinch events can be sent.

	* doc/lispref/commands.texi (Misc Events): Clarify the
	conditions under which pinch events will be sent.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Coalesce pinch gestures in the keyboard buffer

	* src/keyboard.c (kbd_buffer_get_event): Coalesce consecutive
	pinch gesture events.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Document the representation of DX and DY in pinch events

	* doc/lispref/commands.texi (Misc Events): Document
	the precise meaning of DX and DY in pinch events.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Document some missing commands related to text scaling

	* doc/emacs/display.texi (Text Scale): Document
	`text-scale-pinch' and `mouse-wheel-text-scale'.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Fix some issues with a recent change

	* doc/lispref/commands.texi (Misc Events): Improve documentation
	on pinch events.
	* etc/NEWS: Update documentation status for some recent changes
	and describe pinch events in more detail.
	* lisp/face-remap.el (text-scale-pinch): Prevent pinch events
	from being received in too quick succession.

2021-12-26  Eli Zaretskii  <eliz@gnu.org>

	Minor improvements in multisession.el

	* lisp/emacs-lisp/multisession.el (multisession--read-file-value):
	Handle 'file-missing' error when reading values from files.
	(multisession--backend-values, multisession--backend-set-value)
	(multisession--read-file-value): Use 'utf-8-emacs' encoding.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Change `x-server-input-version' to `x-server-input-extension-version'

	* src/xfns.c (Fx_server_input_version)
	(Fx_server_input_extension_version): Rename to
	`x-server-input-extension-version'.
	(syms_of_xfns): Update defsubr.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Add configure tests for faulty XI2 installations

	* configure.ac: Detect cases where XI 2.4 headers are installed
	without the correct event structures.
	* src/xterm.c (handle_one_xevent): Don't use structures that
	might not exist unless configure found them.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Only focus frame implicitly if focus flag is set

	* src/xterm.c (x_detect_focus_change): Test for focus flag on
	XI entry events.

2021-12-26  Stefan Kangas  <stefankangas@gmail.com>

	Add test for text-char-description

	* test/src/keymap-tests.el (keymap-text-char-description): New
	test.

2021-12-26  Po Lu  <luangruo@yahoo.com>

	Add support for pinch gestures to the XI2 build

	* doc/lispref/commands.texi (Misc Events): Document new event
	type `pinch'.
	* etc/NEWS: Announce new event `pinch'.
	* etc/PROBLEMS: Document problems with mismatched libXi
	versions.
	* lisp/face-remap.el (text-scale--pinch-start-scale): New
	variable.
	(text-scale-pinch): New command.
	* src/keyboard.c (make_lispy_event): Handle PINCH_EVENTs.
	(syms_of_keyboard): New symbol `pinch'.
	* src/termhooks.h (enum event_kind): New enum `PINCH_EVENT'.
	* src/xfns.c (setup_xi_event_mask): Add pinch events to event
	mask if available.
	* src/xterm.c (handle_one_xevent): Handle pinch events.

2021-12-26  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	89a82182cb Improve documentation of read-multiple-choice
	5fccd1e371 Explain why we remove stuff from 'user-full-name'

2021-12-25  Po Lu  <luangruo@yahoo.com>

	Allow interpolating scrolls via the Page Down and Page Up keys

	* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Define
	new commands.
	(pixel-scroll-precision-interpolate-page): New user option.
	(pixel-scroll-interpolate-down):
	(pixel-scroll-interpolate-up): New functions.

2021-12-25  Po Lu  <luangruo@yahoo.com>

	Don't clear internal border if frame isn't realized

	* src/pgtkterm.c (pgtk_clear_under_internal_border): Don't clear
	border if frame isn't realized.  (bug#52705)

2021-12-25  Stefan Kangas  <stefankangas@gmail.com>

	Make read-multiple-choice-face inherit help-key-binding

	* lisp/faces.el (read-multiple-choice-face): Inherit
	help-key-binding in addition to underline.

2021-12-25  Sam Steingold  <sds@gnu.org>

	Use the standard `quit-window' binding from `special-mode' for "q"

	* epa.el (epa-info-mode-map): Remove `defvar'.

2021-12-25  Protesilaos Stavrou  <info@protesilaos.com>

	Update modus-themes to version 2.0.0

	* doc/misc/modus-themes.org (Overview): Update the description of the
	themes.
	(Enable and load): Reflow text.
	(Customization Options): Update the code sample with all customization
	options.
	(Option for color-coding success state)
	(Option for red-green color deficiency or deuteranopia): Document the
	new user option 'modus-themes-deuteranopia'.
	(Option for mode line presentation, Option for mode line padding):
	Update documentation about mode line padding.
	(Option for completion framework aesthetics): Minor rewording.
	(Option for diff buffer looks): Update section to exclude the
	discontinued "foreground-only" diff styles.
	(Option for Org agenda constructs): Expand documentation pertaining to
	the 'modus-themes-org-agenda' user option.
	(Option for the headings' overall style, Option for scaled headings):
	Document how heading scaling is now done directly with the
	'modus-themes-headings' user option.
	(Option for variable-pitch font in headings): Remove section on
	'modus-themes-variable-pitch-headings'.  Its functionality is merged
	into 'modus-themes-headings'.
	(A theme-agnostic hook for theme loading): Add section on how users
	can add their own "foreground-only" diff styles.
	(Full support for packages or face groups, Indirectly covered
	packages): Update list of supported packages.
	(Note on god-mode.el): Reflow text.
	(Frequently Asked Questions): Remove invalid characters from heading.
	(Acknowledgements): Update list of contributors to code, ideas, etc.

	* etc/themes/modus-themes.el (modus-themes-operandi-colors)
	(modus-themes-vivendi-colors): Update theme color palettes.
	(modus-themes-variable-pitch-headings): Make it obsolete.  Use
	'modus-themes-headings' instead.
	(modus-themes--headings-choice): Accept float to adjust heading
	height.
	(modus-themes-headings, modus-themes-org-agenda): Update doc strings
	to cover new features.
	(modus-themes-scale-headings, modus-themes-scale-1, modus-themes-scale-2)
	(modus-themes-scale-3, modus-themes-scale-4, modus-themes-scale-5)
	(modus-themes-scale-title, modus-themes-scale-small): Deprecate them.
	Use 'modus-themes-headings' directly.
	(modus-themes-org-habit): Remove long-deprecated user option
	(modus-themes-mode-line): Update doc string about padding the mode
	line.
	(modus-themes-mode-line-padding): Deprecate user option.  Use
	'modus-themes-mode-line' directly.
	(modus-themes-diffs): Update doc string to omit discontinued
	"foreground-only" styles.
	(modus-themes-completions): Remove outdated reference.
	(modus-themes-intense-hl-line): Delete long-deprecated form.
	(modus-themes-lang-checkers, modus-themes-hl-line)
	(modus-themes-paren-match, modus-themes-syntax, modus-themes-links)
	(modus-themes-region): Update syntax of code sample in doc string.
	(modus-themes-success-deuteranopia): Deprecate it and alias it as
	'modus-themes-deuteranopia'.
	(modus-themes--variable-pitch, modus-themes--lang-check)
	(modus-themes--prompt, modus-themes--paren)
	(modus-themes--syntax-foreground, modus-themes--syntax-extra)
	(modus-themes--syntax-string, modus-themes--syntax-comment)
	(modus-themes--heading, modus-themes--agenda-structure)
	(modus-themes--agenda-date, modus-themes--agenda-event)
	(modus-themes--agenda-habit, modus-themes--org-block-delim)
	(modus-themes--mode-line-padding, modus-themes--mode-line-attrs)
	(modus-themes--diff, modus-themes--diff-deuteran)
	(modus-themes--success-deuteran, modus-themes--link)
	(modus-themes--link-color, modus-themes--scale, modus-themes--region)
	(modus-themes--hl-line): Update private functions to parse the updated
	user options and to simplify/refine their code.
	(modus-themes-faces): Remove some faces, add a few others, and
	generally clean up the code to avoid overusing private functions for
	the expansion of attributes with user-facing options.
	(modus-themes-custom-variables): Remove support for 'highlight-tail'
	variable.

	* etc/themes/modus-operandi-theme.el:
	* etc/themes/modus-vivendi-theme.el: Bump file version.

	The change log entry for this release is available here:
	<https://protesilaos.com/codelog/2021-12-24-modus-themes-2-0-0/>.

2021-12-25  Stefan Kangas  <stefankangas@gmail.com>

	Fix unused variable warning in xfns.c

	* src/xfns.c (Fx_server_input_version): Fix unused variable
	warning.

2021-12-25  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/net/webjump.el: Add TODO section.  (Bug#14624)

2021-12-25  Stefan Kangas  <stefankangas@gmail.com>

	Use defvar-keymap in ido.el

	* lisp/ido.el (ido-common-completion-map)
	(ido-file-dir-completion-map, ido-file-completion-map)
	(ido-buffer-completion-map): Use defvar-keymap.

2021-12-25  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/url/url-handlers.el (directory-files): Adapt ARGS list.

	* lisp/net/browse-url.el (browse-url-of-file): Improve browsing remote files.

	* lisp/simple.el (completion-auto-select): Fix docstring.

2021-12-25  Po Lu  <luangruo@yahoo.com>

	Add a utility function to query the XI2 version on a display

	* src/xfns.c (Fx_server_input_version): New function.
	(syms_of_xfns): Define new subr.

2021-12-25  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	c09ad0cabd Fix the bug with duplicate entries in xref output

2021-12-24  Stefan Kangas  <stefankangas@gmail.com>

	Move mouse key bindings to gametree-mode-map

	* lisp/play/gametree.el (gametree-mode-map): Move mouse key
	bindings here.

2021-12-24  Po Lu  <luangruo@yahoo.com>

	Add support for XI 2.4

	We will be able to use touchpad (not touchscreen) gestures, such
	as pinch and swipe gestures after this change, but they are not
	yet exposed to Lisp.

	* src/xterm.c (x_term_init): Declare support for XI 2.4 if
	present.

2021-12-24  Po Lu  <luangruo@yahoo.com>

	Fix Emacs tooltips on PGTK

	* src/pgtkfns.c (x_create_tip_frame): Don't set cursor and
	show window.
	(Fx_show_tip): Set cursor and show window.

2021-12-24  Stefan Kangas  <stefankangas@gmail.com>

	Simplify command remapping in play/blackbox.el

	* lisp/play/blackbox.el (blackbox-redefine-key): Make obsolete.
	(blackbox-mode-map): Simplify.

2021-12-24  Stefan Kangas  <stefankangas@gmail.com>

	Prefer the defcustom :risky property in eshell

	* lisp/eshell/em-banner.el (eshell-banner-message):
	* lisp/eshell/em-hist.el (eshell-input-filter):
	* lisp/eshell/em-pred.el (eshell-predicate-alist)
	(eshell-modifier-alist):
	* lisp/eshell/esh-cmd.el (eshell-subcommand-bindings):
	* lisp/eshell/esh-io.el (eshell-virtual-targets):
	* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Prefer
	defcustom :risky property to setting 'risky-local-variable manually.

2021-12-24  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/eshell/em-hist.el (eshell-hist-match-partial): Minor doc fix.

2021-12-24  Stefan Kangas  <stefankangas@gmail.com>

	Use defvar-keymap in eshell

	* lisp/eshell/em-cmpl.el (eshell-cmpl-mode-map):
	* lisp/eshell/em-hist.el (eshell-isearch-map, eshell-hist-mode-map):
	* lisp/eshell/em-pred.el (eshell-pred-mode-map):
	* lisp/eshell/em-prompt.el (eshell-prompt-mode-map):
	* lisp/eshell/em-rebind.el (eshell-rebind-mode-map):
	* lisp/eshell/esh-arg.el (eshell-arg-mode-map):
	* lisp/eshell/esh-mode.el (eshell-mode-map, eshell-command-map):
	* lisp/eshell/esh-proc.el (eshell-proc-mode-map):
	* lisp/eshell/esh-var.el (eshell-var-mode-map): Use defvar-keymap.

2021-12-24  Stefan Kangas  <stefankangas@gmail.com>

	Respect changes in eshell-hist-match-partial

	* lisp/eshell/em-hist.el (eshell-hist--update-keymap): New function.
	(eshell-hist-match-partial): Add :set property with above new
	function.
	(eshell-hist-mode-map): Update for eshell-hist-match-partial using
	eshell-hist--update-keymap.

2021-12-24  Yuuki Harano  <masm+github@masm11.me>

	* etc/PROBLEMS: Add a problem when PGTK started in systemd unit file

2021-12-24  Michael Albinus  <michael.albinus@gmx.de>

	Add tag :tramp-asynchronous-processes to tramp-tests.el

	* test/lisp/net/tramp-tests.el (tramp-test29-start-file-process)
	(tramp--test--deftest-direct-async-process)
	(tramp-test30-make-process, tramp-test31-interrupt-process)
	(tramp-test34-explicit-shell-file-name)
	(tramp-test44-asynchronous-requests):
	Add :tramp-asynchronous-processes tag.
	(tramp--test-asynchronous-processes-p): New defun.
	(tramp-test32-shell-command, tramp-test33-environment-variables):
	Use it.
	(tramp--test-expensive-test-p): Rename from
	`tramp--test-expensive-test'.  Make it a defun.  Adapt all callees.

2021-12-24  Sebastian Fieber  <sebastian.fieber@web.de>

	verify signed content in smime encrypted and signed message

	* lisp/gnus/gnus-art.el (gnus-mime-display-part): Parse pkcs7
	parts (bug#40397).
	(gnus-mime-security-verify-or-decrypt):
	(gnus-insert-mime-security-button): Handle these parts.

	* lisp/gnus/mm-decode.el (mm-verify-function-alist): Add pkcs7
	functions.
	(mm-decrypt-function-alist): Handle them.
	(mm-possibly-verify-or-decrypt): Ditto.

	* lisp/gnus/mm-view.el (mm-view-pkcs7-decrypt): Handle pkcs7.

	Changes:
	- structure the result of mm-dissect-buffer of application/pkcs7-mime
	  like a multipart mail so there is no losing of information of
	  verification and decryption results which can now be displayed by
	  gnus-mime-display-security

	- adjust gnus-mime-display-part to handle application/pkcs7-mime like
	  multipart/encrypted or multipart/signed

	- add dummy entries to mm-verify-function-alist and
	  mm-decrypt-function-alist so gnus-mime-display-security correctly
	  displays "S/MIME" and not "unknown protocol"

	- don't just check for multipart/signed in
	  gnus-insert-mime-security-button but also for the pkcs7-mime mimetypes
	  to print "Encrypted" or "Signed" accordingly in the security button

	- adjust mm-possibly-verify-or-decrypt to check for smime-type to ask
	  whether to verify or decrypt the part and not to always ask to decrypt

	- adjust mm-view-pkcs7-decrypt and verify to call mm-sec-status so
	  success information can be displayed by gnus-mime-display-security

	- adjust gnus-mime-security-verify-or-decrypt to handle pkcs7-mime
	  right with the done changes

2021-12-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Simplify whitespace stripping in shr-expand-url

	* lisp/net/shr.el (shr-expand-url): Simplify whitespace stripping.

2021-12-24  Po Lu  <luangruo@yahoo.com>

	Fix text decoration display on stretch glyphs with no box on NS

	* src/nsterm.m (ns_dumpglyphs_stretch): Draw decorations if
	there is no box.

2021-12-24  Po Lu  <luangruo@yahoo.com>

	Make precision scrolling work on margins and fringes

	* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Add
	missing key definitions.

2021-12-24  Po Lu  <luangruo@yahoo.com>

	Remove useless functions from PGTK port that were breaking emacsbug

	* src/pgtkfns.c (Fx_server_vendor, Fx_server_version): Remove
	useless functions that returned invalid values.
	(syms_of_pgtkfns): Stop defining removed subrs.

2021-12-24  Po Lu  <luangruo@yahoo.com>

	Grab the server when warping the client pointer

	* src/xfns.c (Fx_set_mouse_absolute_pixel_position):
	* src/xterm.c (x_make_frame_invisible): Avoid race conditions
	where the client pointer is destroyed between when it is
	obtained and when XIWarpPointer is called.

2021-12-24  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	04be23f19f Improve Xref documentation
	edb1d491d9 * lisp/net/shr.el (shr-expand-url): Also strip trailing wh...

2021-12-23  Po Lu  <luangruo@yahoo.com>

	Acquire draw lock when updating menubar on Haiku

	* src/haikumenu.c (digest_menu_items): Acquire draw lock.

2021-12-23  Po Lu  <luangruo@yahoo.com>

	Fix menu grabs on XI2 Motif builds

	* src/xmenu.c (x_activate_menubar) [USE_MOTIF]: Clear XI grab.
	* src/xterm.c (xi_grab_or_ungrab_device) [USE_MOTIF]: Always
	ungrab if a popup is active.

2021-12-23  Po Lu  <luangruo@yahoo.com>

	Fix some more incorrect valuator clearing

	* src/xterm.c (handle_one_xevent): Improve detection of stray
	ungrab events.

2021-12-23  Po Lu  <luangruo@yahoo.com>

	Drop scrollbar motion events when valuators are found

	* src/xterm.c (handle_one_xevent): Drop XI_Motion if it's on
	top of a scroll bar and a valuator is found.

2021-12-23  Glenn Morris  <rgm@gnu.org>

	* doc/misc/Makefile.in (need_emacsver): Add missing members.

2021-12-23  Po Lu  <luangruo@yahoo.com>

	Make precision scrolling also work on various bars

	* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map):
	Define keys for various kinds of bars.

2021-12-23  Po Lu  <luangruo@yahoo.com>

	Fix precision scrolling down for multi-line display strings

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page): Make sure Y delta
	is appropriate before deciding on next-pos.

2021-12-23  Po Lu  <luangruo@yahoo.com>

	Set start to desired start when pixel scrolling to end of buffer

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page): Set start to desired
	start when point cannot be moved further down.

2021-12-23  Po Lu  <luangruo@yahoo.com>

	Allow window-text-pixel-size to measure pixels around a position

	* doc/lispref/display.texi (Size of Displayed Text): Announce
	new meaning of `from'.
	* etc/NEWS: Announce changes.

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up-page):
	Use new feature.

	* src/xdisp.c (window_text_pixel_size): Understand a special
	format of `from' that specifies the amount of pixels above or
	below a position.

	(Fwindow_text_pixel_size): Update doc string.

2021-12-23  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert back to using monospaced fonts in the mode line

	* lisp/faces.el (mode-line-active, mode-line-inactive): Revert
	back to using monospaced fonts on the mode line (for now).  The
	main remaining usability problem is clicking on the very small "-"
	characters in "U:--".

2021-12-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	29fffbdd87 Revert field-related thingatpt changes
	9bcb732686 * lisp/window.el (quit-restore-window): Select previously ...
	b7d31d6192 Revert "Remove Motif support"

	# Conflicts:
	#	etc/NEWS

2021-12-22  Philip Kaludercic  <philipk@posteo.net>

	Fix wrong-type-argument

	* message.el (message-update-smtp-method-header): Only Use address
	part of mail-extract-address-component.

2021-12-22  Philip Kaludercic  <philipk@posteo.net>

	Allow automatic X-Message-SMTP-Method header insertion

	* message.el (message-server-alist): Add user option
	(message-update-smtp-method-header): Add function
	(message-send): Call message-update-smtp-method-header
	* doc/misc/message.texi (Sending Variables): Document
	message-server-alist
	* etc/NEWS: Add news entry

2021-12-22  Stefan Kangas  <stefankangas@gmail.com>

	Fix compile time error in a pcase test

	* test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-cl-type): Fix test.

2021-12-22  Stefan Kangas  <stefankangas@gmail.com>

	Use defvar-keymap in minibuffer.el

	* lisp/minibuffer.el (completion-in-region-mode-map)
	(minibuffer-local-completion-map)
	(minibuffer-local-must-match-map)
	(minibuffer-local-filename-completion-map)
	(minibuffer-local-ns-map, minibuffer-inactive-mode-map): Use
	defvar-keymap.

2021-12-22  Stefan Kangas  <stefankangas@gmail.com>

	Make substitute-command-keys test less brittle

	* test/lisp/help-tests.el (help-tests--test-keymap): New keymap
	variable.
	(help-tests-substitute-command-keys/keymaps): Make test less
	brittle by using above new keymap.

2021-12-22  Alan Third  <alan@idiocy.org>

	Add native HEIC support on macOS (bug#51381)

	* lisp/image.el (image-type-header-regexps):
	(image-type-file-name-regexps):
	(image-type-auto-detectable): Add auto-detect code for heic.
	* src/image.c (syms_of_image): Add heic as an image type under NS.
	* src/nsimage.m (ns_can_use_native_image_api): Add heic to list of
	possible image types in the native image support lookup.

2021-12-22  Alan Third  <alan@idiocy.org>

	Allow resizing undecorated frames on macOS (bug#28512, bug#31795)

	* src/nsterm.m (FRAME_DECORATED_FLAGS, FRAME_UNDECORATED_FLAGS):
	Remove unused defines.
	* src/nsterm.m ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]):
	Since this is now the only place these defines are used just put them
	inline and add NSWindowStyleMaskResizable for undecorated frames on
	Cocoa.

2021-12-22  Alan Third  <alan@idiocy.org>

	Make NS toolbar item ID more unique (bug#50160)

	* src/nsmenu.m
	([EmacsToolbar addDisplayItemWithImage:idx:tag:labelText:helpText:enabled:]):
	Add the label to the identifier to avoid collisions between toolbar
	items that use the same image.

2021-12-22  Alan Third  <alan@idiocy.org>

	Make NS toolbar use NSString instead of C strings

	* src/nsfns.m ([NSString stringWithLispString:]): Ensure that the lisp
	object is actually a string.
	* src/nsmenu.m (update_frame_tool_bar): Convert to NSString instead of
	C strings.
	([EmacsToolbar addDisplayItemWithImage:idx:tag:labelText:helpText:enabled:]):
	No need to convert to NSString here anymore.

2021-12-22  Alan Third  <alan@idiocy.org>

	Fix macfont backend color handling

	* src/macfont.m (get_cgcolor): Replace use of ns_lookup_indexed_color.
	(CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND):
	(CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND):
	(CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND): Fix call to get_cgcolor
	and fix all callers.

2021-12-22  Alan Third  <alan@idiocy.org>

	Further cleanup of NS color code

	* src/dispextern.h (FACE_COLOR_TO_PIXEL): Remove define and fix all
	callers.
	* src/nsterm.h (struct nsfont_info): Remove color_table.
	* src/nsterm.m ([NSColor colorWithUnsignedLong:]): Always assume the
	input contains the correct alpha value.
	(ns_lookup_indexed_color):
	(ns_index_color):
	(ns_color_index_to_rgba): Remove functions and fix all callers.
	(ns_query_color): No longer set pixel to the lookup table index,
	always just set it to the ARGB integer value.
	(ns_defined_color): Ignore makeindex as we no longer set pixel to the
	lookup table index.
	(ns_initialize_display_info):
	(ns_redisplay_interface): Remove lookup table.
	(ns_term_init): Fix the alpha setting.

	thing

2021-12-22  Alan Third  <alan@idiocy.org>

	Simplify NS color handling

	* src/image.c (RGB_TO_ULONG):
	(ARGB_TO_ULONG):
	(RED_FROM_ULONG):
	(RED16_FROM_ULONG):
	(GREEN16_FROM_ULONG):
	(BLUE16_FROM_ULONG): Define these here for NS too.
	* src/nsfns.m (ns_set_foreground_color):
	(ns_set_background_color): Use new EmacsColor methods.
	* src/nsterm.h (struct ns_color_table): Replace this struct with a
	built-in Objective C type.
	(RGB_TO_ULONG):
	(ARGB_TO_ULONG):
	(ALPHA_FROM_ULONG):
	(RED_FROM_ULONG):
	(GREEN_FROM_ULONG):
	(BLUE_FROM_ULONG):
	(RED16_FROM_ULONG):
	(GREEN16_FROM_ULONG):
	(BLUE16_FROM_ULONG): These are no longer needed in the NS specific code.
	(struct ns_display_info): Use an NSMutableArray instead of a custom struct.
	* src/nsterm.m ([NSColor colorWithUnsignedLong:hasAlpha:]):
	([NSColor unsignedLong]): New methods.
	(ns_lookup_indexed_color):
	(ns_index_color): Use the NSMutableArray lookup table.
	(ns_term_init):
	(ns_color_index_to_rgba):
	(ns_query_color): Use the new EmacsColor methods.
	(ns_initialize_display_info):
	(ns_delete_display): Initialize and release the NSMutableArray lookup table.

2021-12-22  Jonas Bernoulli  <jonas@bernoul.li>

	Help outline-minor-mode avoid some false matches

	* lisp/international/emoji.el (emoji--generate-file): Help
	'outline-minor-mode' avoid false matches by quoting certain
	characters when they appear at bol in a multi-line string.

2021-12-22  Jonas Bernoulli  <jonas@bernoul.li>

	Hide transient prefix/suffix commands from execute-extended-command

	* lisp/international/emoji.el (emoji--define-transient): Hide
	transient prefix/suffix commands from 'execute-extended-command'
	by declaring that they should only be listed in the non-existent
	'not-a-mode' mode.

2021-12-22  Michael Albinus  <michael.albinus@gmx.de>

	Fix some Tramp tests

	* test/lisp/net/tramp-tests.el (tramp-test07-file-exists-p)
	(tramp-test14-delete-directory, tramp-test29-start-file-process)
	(tramp-test30-make-process): Adapt tests.

2021-12-22  Mattias Engdegård  <mattiase@acm.org>

	Use unibyte strings in ntlm auth requests and responses

	* lisp/net/ntlm.el (ntlm-build-auth-request)
	(ntlm-build-auth-response): Make sure to use unibyte strings for bytes
	greater than 127, or base64 encoding will fail.
	This should fix failures in ntlm-tests.

2021-12-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust test after recent help.el change

2021-12-22  Po Lu  <luangruo@yahoo.com>

	* src/pgtkterm.c (scroll_event): Fix scroll delta scale.

	* src/pgtkterm.c (scroll_event): Fix sign of delta_y.

2021-12-22  Po Lu  <luangruo@yahoo.com>

	Disable by default and add NEWS entry to the new completion behavior

	* etc/NEWS: Announce 'completion-auto-select'.
	* lisp/simple.el (completion-auto-select): Default to nil.

2021-12-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Simplify disabled-command-function prompting

	* lisp/novice.el (disabled-command-function): Use a prompt for
	`read-event' instead of messaging it, so that people using
	Emacspeak get the prompt read to them.

2021-12-22  Lars Ingebrigtsen  <larsi@gnus.org>

	Use pop-to-buffer-same-window in `M-x term'

	* lisp/term.el (term): Allow `display-buffer*' customization to
	take effect (bug#52688).

2021-12-22  Po Lu  <luangruo@yahoo.com>

	Fix horizontal scrolling on PGTK

	* src/pgtkterm.c (scroll_event): Fix for when
	`mwheel-coalesce-scroll-events' is nil.

2021-12-21  Po Lu  <luangruo@yahoo.com>

	Use XI2 calls to warp the client pointer

	* src/xfns.c (Fx_set_mouse_absolute_pixel_position):
	* src/xterm.c (frame_set_mouse_pixel_position): Replace
	calls to XWarpPointer with calls to XIWarpPointer with
	the client pointer explicitly specified.  This avoids the
	odd situation where the client pointer of the root window
	is not the client pointer of the frame.

2021-12-21  Po Lu  <luangruo@yahoo.com>

	Fix GTK crash when clicking on xwidgets on XI2

	* src/xterm.c (handle_one_xevent): Drop button events destined
	for an xwidget.

2021-12-21  Paul Eggert  <eggert@cs.ucla.edu>

	Update from gnulib

2021-12-21  Philip Kaludercic  <philipk@posteo.net>

	Delete completion window on quitting

	* lisp/simple.el (completion-list-mode-map): Rebind
	delete-completion-window over keyboard-quit.

2021-12-21  Philip Kaludercic  <philipk@posteo.net>

	Allow for next-completion to wrap around the completion buffer

	* lisp/simple.el (completion-wrap-movement): Add new option.
	(previous-completion): Update docstring.
	(next-completion): Respect completion-wrap-movement.
	(switch-to-completions): Handle backwards completion by jumping to the
	end of the buffer.
	* lisp/minibuffer.el: (minibuffer-local-completion-map): Bind
	minibuffer-complete to backtab
	(completion--in-region-1): Handle backtab to scroll backwards

2021-12-21  Philip Kaludercic  <philipk@posteo.net>

	Allow for the completion buffer to be automatically selected

	* lisp/simple.el (completion-auto-select): Add new option.
	(completion-setup-function): Respect completion-auto-select.

2021-12-21  Stefan Kangas  <stefankangas@gmail.com>

	Declare functions to silence byte-compiler

	* lisp/auth-source.el (gnutls-symmetric-decrypt, gnutls-ciphers):
	* lisp/net/dbus.el (libxml-parse-xml-region):
	* lisp/simple.el (thread-name):
	* lisp/thread.el (thread-name, thread-signal, thread--blocker)
	(current-thread, thread-live-p, all-threads):
	* test/lisp/emacs-lisp/multisession-tests.el (sqlite-close):
	* test/lisp/net/gnutls-tests.el (gnutls-symmetric-decrypt)
	(gnutls-symmetric-encrypt, gnutls-hash-mac, gnutls-hash-digest)
	(gnutls-ciphers, gnutls-digests, gnutls-macs):
	* test/lisp/net/network-stream-tests.el (gnutls-peer-status):
	* test/lisp/net/shr-tests.el (libxml-parse-html-region):
	* test/src/decompress-tests.el (zlib-decompress-region):
	* test/src/process-tests.el (thread-last-error, thread-join)
	(make-thread):
	* test/src/xml-tests.el (libxml-parse-xml-region): Declare
	functions to silence byte-compiler in --without-all builds.

2021-12-21  Stefan Kangas  <stefankangas@gmail.com>

	Fix some tests in --without-all builds

	* test/lisp/image-tests.el (image-type/from-filename):
	* test/src/image-tests.el (image-tests-init-image-library):
	* test/src/thread-tests.el (threads-test-bug33073): Fix tests in
	--without-all builds.

2021-12-21  Stefan Kangas  <stefankangas@gmail.com>

	Silence additional byte-compiler warning in test

	* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
	Silence byte-compiler.

2021-12-21  Michael Albinus  <michael.albinus@gmx.de>

	Add `permission-denied' error to Tramp

	* lisp/net/tramp-compat.el (tramp-permission-denied): New defconst.
	(tramp-compat-permission-denied): New defsubst.

	* lisp/net/tramp.el (tramp-handle-access-file):
	* lisp/net/tramp-archive.el (tramp-archive-handle-copy-file): Use it.

2021-12-21  Po Lu  <luangruo@yahoo.com>

	Fix xg_event_is_scrollbar for grab-related events on XI2

	* src/gtkutil.c (xg_event_is_for_scrollbar): Don't return true
	if event coordinates are outside the frame on XInput 2.

2021-12-21  Mattias Engdegård  <mattiase@acm.org>

	Don't produce multibyte strings by accident in sasl-scram-rfc

	* lisp/net/sasl-scram-rfc.el (sasl-scram--client-final-message):
	The XOR of two unibyte strings should be a unibyte string.
	This code previously worked by accident because of an overly tolerant
	base64 encoder (bug#52670), but now causes a test failure.

2021-12-21  Po Lu  <luangruo@yahoo.com>

	Ignore XI_TouchBegin events on the GTK tool bar

	* src/xterm.c (handle_one_xevent): Ignore TouchBegin events
	that target the tool bar.

2021-12-21  Andrew G Cohen  <cohen@andy.bu.edu>

	Fix gnus subject matching when subject is empty

	* lisp/gnus/gnus-sum.el (gnus-summary-limit-include-thread): Don't try
	to limit to a matching subject when the simplified subject is empty.

2021-12-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Speed up find_field when called from outside a field"

	This reverts commit 4d8af56c76ee20bc8e1ebdeef5c4100cea005974.

	This leads to lisp-mode-tests failures

2021-12-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove the `mode-line-percent-position' min width hack

	* lisp/bindings.el (mode-line-position): Remove hack to get
	min-width to work on the `mode-line-percent-position' bit.
	* src/xdisp.c (display_string): Respect min-width in the non-Lisp
	string case (bug#52332).

2021-12-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow @ characters in heredoc in shell-script-mode

	* lisp/progmodes/sh-script.el (defconst): Also allow @ in heredoc
	(bug#52496).

2021-12-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Use the new `permission-denied' error to catch multisession errors

	* lisp/emacs-lisp/multisession.el (multisession--read-file-value):
	Use the new `permission-denied' error to catch file errors on Windows.

2021-12-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Speed up find_field when called from outside a field

	* src/editfns.c (find_field): Speed up the field functions when
	called from outside a field (bug#52593).  (In some cursory tests,
	this makes the called-from-outside-a-field case about 3x faster.)

2021-12-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	Fix bug#28557

	* test/lisp/emacs-lisp/cconv-tests.el: Remove `:expected-result :failed`
	from the bug#28557 tests.
	(cconv-tests-cl-function-:documentation): Account for the presence of
	the arglist (aka "usage") in the docstring.

	* lisp/emacs-lisp/cl-macs.el (cl--transform-lambda):
	* lisp/emacs-lisp/cl-generic.el (cl-defgeneric):
	Handle non-constant `:documentation`.

	* lisp/emacs-lisp/generator.el (iter-lambda):
	* lisp/emacs-lisp/cconv.el (cconv--convert-funcbody):
	Use `macroexp-parse-body`.

2021-12-20  Po Lu  <luangruo@yahoo.com>

	Don't drop touch events we're not interested in on GTK3

	* src/xterm.c (handle_one_xevent): Allow GTK to handle
	unwanted TouchBegin events.

2021-12-20  Po Lu  <luangruo@yahoo.com>

	Fix touch event menu bar detection

	* src/xterm.c (handle_one_event): Don't drop menu bar touch
	events.

2021-12-20  Po Lu  <luangruo@yahoo.com>

	Fix xg_event_is_for_menubar for XI2 events

	* src/gtkutil.c (xg_event_is_for_menubar): Use correct fields
	for XI2 events.
	* src/xterm.c (handle_one_event): Drop TouchBegin events we
	know about.

2021-12-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	eieio-tests.el: Silence last warnings

	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (eieio-tests--dummy):
	New class.
	(eieio-test-22-init-forms-dont-match-runnable): Tweak to silence warning.

2021-12-20  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (handle_one_xevent): Set user time on touch events.

2021-12-20  Po Lu  <luangruo@yahoo.com>

	Ignore all emulated button events (i.e. those from touchscreens)

	* src/xterm.c (handle_one_xevent): Ignore all XIPointerEmulated
	events if the display supports XI 2.2 or later.

2021-12-20  Paul Eggert  <eggert@cs.ucla.edu>

	Put AM_V_GEN etc. first

	With the recent changes to src/verbose.mk.in, it’s more important
	to be consistent about putting AM_V_GEN and similar macros at the
	start of a rule’s recipe, since ‘make’ now outputs the diagnostic
	before it executes the recipe rather than the shell outputting it.
	Most of the uses were already this way, but there were a few
	outliers.  Problem reported by Pip Cet.
	* Makefile.in (${srcdir}/info/dir):
	* admin/unidata/Makefile.in (${unidir}/charprop.el, ${unifiles})
	(${unidir}/emoji-labels.el):
	* lib/Makefile.in (libgnu.a, libegnu.a):
	* lisp/Makefile.in (TAGS):
	* src/Makefile.in (lisp.mk, Emacs):
	* test/Makefile.in (%.log, $(test_module)):
	Put AM_V_GEN and similar macros first.

2021-12-20  Stefan Kangas  <stefankangas@gmail.com>

	Make some variable aliases obsolete

	* lisp/progmodes/make-mode.el (makefile-query-one-target-method):
	* lisp/skeleton.el (skeleton-transformation, skeleton-filter):
	* lisp/textmodes/artist.el (artist-text-renderer):
	* lisp/textmodes/bibtex.el (bibtex-autokey-name-case-convert):
	(bibtex-autokey-titleword-case-convert):
	* lisp/textmodes/ispell.el (ispell-format-word):
	* lisp/textmodes/sgml-mode.el (sgml-transformation):
	* lisp/vc/add-log.el (change-log-time-zone-rule): Make variable
	aliases obsolete.

2021-12-20  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer $(info) to @echo

	Have GNU Make output some diagnostics directly, instead of forking
	and execing a shell to do it.
	* GNUmakefile (help):
	* doc/lispref/two-volume.make (vol2.pdf, elisp2med-init)
	(elisp2-init):
	* doc/misc/Makefile.in (echo-info, echo-sources):
	* lib-src/Makefile.in (archlibdir, install, check):
	* src/verbose.mk.in (AM_V_AR, AM_V_CC, AM_V_CXX, AM_V_CCLD)
	(AM_V_CXXLD, AM_V_ELC, AM_V_ELN, AM_V_GEN, AM_V_GLOBALS)
	(AM_V_RC):
	* test/Makefile.in (subdirs, subdir-targets):
	Prefer $(info) to @echo.
	* GNUmakefile (MAKECMDGOALS, configure, Makefile):
	Prefer $(warning) to @echo >&2.
	* src/verbose.mk.in (AM_V_ELN): Output target, like the others.

2021-12-20  Mattias Engdegård  <mattiase@acm.org>

	Fix sloppy base64 acceptance of some multibyte characters

	The base64 encoding functions incorrectly accepted some multibyte
	characters; stop doing that (bug#52670).

	* src/fns.c (base64_encode_1): Reject all multibyte characters.
	* test/src/fns-tests.el (fns-tests-base64-encode-string)
	(fns-test-base64url-encode-region)
	(fns-test-base64url-encode-string): Add tests.
	* doc/lispref/text.texi (Base 64): Rephrase outdated manual text.
	* etc/NEWS: Add a notice.

2021-12-20  Sam Steingold  <sds@gnu.org>

	Fix build in a separate directory (bug#52669)

	* src/lisp.h: Include <globals.h> instead of "globals.h"

2021-12-20  Stefan Kangas  <stefankangas@gmail.com>

	Use defvar-keymap in wdired.el

	* lisp/wdired.el (wdired-mode-map, wdired-perm-mode-map): Use
	defvar-keymap.

2021-12-20  Stefan Kangas  <stefankangas@gmail.com>

	Use declare-function instead of defun in eieio-tests.el

	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Prefer
	declare-function to defun.

2021-12-20  Mattias Engdegård  <mattiase@acm.org>

	Silence byte-compiler warnings from absent optional features

	* test/src/inotify-tests.el (inotify-rm-watch):
	* test/src/lcms-tests.el (lcms-xyz->jch):
	* test/src/sqlite-tests.el (sqlite-open):
	Add declarations to prevent byte-compilation warnings when features
	are absent.

2021-12-20  Mattias Engdegård  <mattiase@acm.org>

	Body of dynamic let-bindings is not in tail position

	This fixes a known bug in `named-let`.

	* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Prevent TCO from inside
	dynamic variable bindings.
	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add test.

2021-12-20  Mattias Engdegård  <mattiase@acm.org>

	Add `macroexp--dynamic-variable-p`

	This predicate can be used for discriminating between lexically and
	dynamically bound variables during macro-expansion (only).
	It is restricted to internal use for the time being.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
	Use macroexpand--all-toplevel.
	* lisp/emacs-lisp/macroexp.el (macroexp-dynamic-variable-p): New.
	(macroexp--expand-all): Maintain macroexp--dynvars.
	(macroexpand-all): Rebind macroexp--dynvars.
	(macroexpand--all-toplevel): New.
	(internal-macroexpand-for-load): Use macroexpand--all-toplevel.
	* src/eval.c (eval_sub): Transfer defvar declarations from
	Vinternal_interpreter_environment into macroexp--dynvars during
	lazy macro-expansion.
	* src/lread.c (readevalloop): Rebind macroexp--dynvars around
	read-and-evaluate operations.
	(syms_of_lread): Define macroexp--dynvars.
	* test/lisp/emacs-lisp/macroexp-resources/vk.el: New file.
	* test/lisp/emacs-lisp/macroexp-tests.el (macroexp-tests--run-emacs)
	(macroexp-tests--eval-in-subprocess)
	(macroexp-tests--byte-compile-in-subprocess)
	(macroexp--tests-dynamic-variable-p): Add tests.

2021-12-20  Mattias Engdegård  <mattiase@acm.org>

	Treat base64 string encode/decode as pure functions

	* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns):
	Mark base64-decode-string, base64-encode-string and
	base64url-encode-string as pure and side-effect-free.

2021-12-20  Stefan Kangas  <stefankangas@gmail.com>

	Silence byte-compiler using with-no-warnings in tests

	We could silence the specific warnings by adding support for them to
	with-suppressed-warnings, but it is almost not worth the complexity
	for warnings that only show up in one file.  In any case, it is not
	urgent, so leave behind FIXMEs for now.

	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
	(eieio-test-37-obsolete-name-in-constructor, class-c)
	(eieio-test-01-mix-alloc-initarg, slotattr-class-base):
	* test/lisp/progmodes/elisp-mode-tests.el
	(xref-elisp-generic-co-located-default): Silence byte-compiler.

2021-12-20  Stefan Kangas  <stefankangas@gmail.com>

	Silence undefined function warnings in eieio-tests.el

	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Silence
	byte-compiler with some function definitions.  These are overridden by
	class definitions further down.

2021-12-20  Stefan Kangas  <stefankangas@gmail.com>

	Prefer skip-unless in one eieio test

	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
	(eieio-test-01-mix-alloc-initarg): Use skip-unless to correctly mark
	the test as skipped.

2021-12-20  Stefan Kangas  <stefankangas@gmail.com>

	Silence byte-compiler in cconv-tests.el

	* test/lisp/emacs-lisp/cconv-tests.el
	(cconv-tests-iter-lambda-:documentation)
	(cconv-tests-cl-function-:documentation): Silence byte-compiler.

2021-12-20  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	16ed9fad2c ; * doc/lispref/frames.texi (Child Frames): Improve wording.
	f11b996a3c Clarify description of two mouse dragging parameters (Bug#...

2021-12-19  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/progmodes/sh-script.el (sh-mode-map): Use defvar-keymap.

2021-12-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Further tweaks to emoji person groups

	* lisp/international/emoji.el (emoji--score): Don't take the bit
	after the colon into consideration, like in "kiss: person, person,
	light skin tone, medium-light skin tone".

2021-12-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Further tweaks to the emoji segmentation

	* lisp/international/emoji.el (emoji--parse-emoji-test): Ensure
	that we key off of the "person" variants, even if they come after
	the gendered variations (which is the case for a handful of glyphs).

2021-12-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Further fixes for emojis in the "people" categories

	* lisp/international/emoji.el (emoji--base-name): Get more derived
	categories right.

2021-12-19  Juri Linkov  <juri@linkov.net>

	* lisp/isearch.el: Don't display "Pending" for lax and toggle commands.

	* lisp/isearch.el (isearch-message-prefix): Display "Pending"
	only when isearch-adjusted is 't' (bug#52356).
	(isearch-define-mode-toggle):
	Set isearch-adjusted to 'toggle' instead of 't'.
	(isearch-search-fun-default):
	Set isearch-adjusted to 'lax' instead of 't'.

2021-12-19  Eli Zaretskii  <eliz@gnu.org>

	Move Rmail autoloads to the common loaddefs.el

	* lisp/mail/rmailsum.el:
	* lisp/mail/rmailsort.el:
	* lisp/mail/rmailmsc.el:
	* lisp/mail/rmailmm.el:
	* lisp/mail/rmailkwd.el:
	* lisp/mail/rmailedit.el:
	* lisp/mail/rmail.el: Remove generated-autoload-file setting and
	don't require rmail-loaddefs.el

2021-12-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Add some very rudimentary field-beginning/end tests

2021-12-19  Eli Zaretskii  <eliz@gnu.org>

	New error symbol 'permission-denied'

	* src/fileio.c (syms_of_fileio) <permission-denied>: Define the
	symbol and its 'err-conditions' and 'error-message' properties.
	(get_file_errno_data): Return permission-denied on EACCES.

	* test/src/filelock-tests.el (filelock-tests-file-locked-p-spoiled)
	(filelock-tests-unlock-spoiled)
	(filelock-tests-kill-buffer-spoiled): Adapt the tests to the new
	error symbol.

	* doc/lispref/errors.texi (Standard Errors):
	* etc/NEWS: Document 'permission-denied' error.

2021-12-19  Stefan Kangas  <stefankangas@gmail.com>

	Make bad-packages-alist obsolete

	* lisp/simple.el (bad-packages-alist, bad-package-check): Make
	obsolete.  (Bug#52351)

2021-12-19  Alan Mackenzie  <acm@muc.de>

	CC Mode: Remove annoying background fontification.  Should fix bug #52298

	Partially revert the commits from 2021-10-24 - 2021-10-26, "CC Mode: Fontify
	"found types" which are recognized after being first scanned".

	This removes the background fontification which ran off of a 0.1s timer, but
	leaves the facility of normal fontification causing the fontification
	throughout the buffer of newly found types.

	* lisp/progmodes/cc-fonts.el (c-find-types-background)
	(c-type-finder-timer-func): Remove.

	* lisp/progmodes/cc-mode.el (c-type-finder-timer, c-inhibit-type-finder)
	(c-type-finder-pos, c-post-gc-hook): Remove.
	(c-leave-cc-mode-mode): Remove the manipulations of c-type-finder-timer and
	c-post-gc-hook.
	(c-basic-common-init): Remove the manipulations of c-type-finder-pos,
	c-type-finder-timer, and c-post-gc-hook.

	* lisp/progmodes/cc-vars.el (c-type-finder-time-slot)
	(c-type-finder-repeat-time, c-type-finder-chunk-size): Remove.

	* doc/misc/cc-mode.texi (Found Types): Remove.  Amend some menu entries.

2021-12-19  Stefan Kangas  <stefankangas@gmail.com>

	Silence "initform needs quoting" warning in tests

	* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
	(persist-simple):
	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (class-a)
	(class-c, inittest, slotattr-base, slotattr-ok)
	(slotattr-class-base, slotattr-class-ok, IT): Silence byte-compiler
	warnings about "ambiguous initform needs quoting".

2021-12-19  Michael Albinus  <michael.albinus@gmx.de>

	Fix timeout problem in autorevert-tests.el

	* test/lisp/autorevert-tests.el (auto-revert-test05-global-notify):
	Remove debug message.  Increase timeout.

2021-12-19  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Enable webp support in PGTK builds, too

	* configure.ac (HAVE_WEBP): Enable webp in PGTK builds, too.

2021-12-19  Eli Zaretskii  <eliz@gnu.org>

	Fix last change in 'handle_display_prop'

	* src/xdisp.c (handle_display_prop): Pass the window's buffer to
	'display_min_width' and to 'handle_display_spec'.  (Bug#52385)

2021-12-19  Stefan Kangas  <stefankangas@gmail.com>

	Silence "Unknown slot" warnings in tests

	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el:
	* test/lisp/net/ntlm-tests.el: Silence byte-compiler.

2021-12-19  Daniel Mendler  <mail@daniel-mendler.de>

	Add a new elp-restore-package command

	* lisp/emacs-lisp/elp.el (elp-restore-package): New command
	(bug#52457).

2021-12-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix elp-*-list interactive specs

	* lisp/emacs-lisp/elp.el (elp-reset-list):
	(elp-restore-list): Fix the interactive specs (bug#52457).

2021-12-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	5f25852e91 Update to Org 9.5.1-31-ga18849

2021-12-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Rework how shr sets <span id='foo'> targets to make it more reliable

	* lisp/net/eww.el (eww-display-html): The target is now a list.
	* lisp/net/shr.el (shr--link-targets): New variable.
	(shr-insert-document): Set the targets.
	(shr-descend): Save targets and apply them later.
	(shr-ensure-paragraph): Remove hack to avoid filling from removing
	targets.
	(shr-tag-a): Save targets for later.
	(shr-render-td-1): Bind and set targets (bug#52512).

2021-12-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix prompt in `sql-sqlite'

	* lisp/progmodes/sql.el (sql-get-login): Fix the Database: prompt
	(bug#52546).

2021-12-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix indexing gendered emoji forms that have "person" base forms

	* lisp/international/emoji.el (emoji--base-name): Index man/woman
	on the generic form we have read already (bug#52580).

2021-12-19  LdBeth  <andpuke@foxmail.com>  (tiny change)

	Add a shr-allowed-images user option

	* lisp/net/shr.el (shr-allowed-images): New variable (bug#52594).
	(shr-image-is-blocked): New function to use it.
	(shr-tag-img): Use it.
	* doc/misc/eww.texi (Advanced): Document it.

2021-12-19  miha  <miha@kamnitnik.top>

	Fix prompt colors in comint-snapshot-last-prompt

	* lisp/comint.el (comint-snapshot-last-prompt): Fix colorization
	of the prompt (bug#11883).

2021-12-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Move rmail-related functions from gnus-util.el to gnus-rmail.el

	* lisp/gnus/gnus-rmail.el: New file with rmail-related functions
	moved from gnus-util.el.

	* lisp/gnus/gnus-util.el: Move the rmail-related functions to its
	own file.  This avoids loading rmail.el when something requires
	gnus-util.el.

2021-12-18  Po Lu  <luangruo@yahoo.com>

	Add missing implementation of `pgtk-menu-bar-open'

	* lisp/term/pgtk-win.el (pgtk-menu-bar-open): New function.
	(bug#52604)

2021-12-18  Po Lu  <luangruo@yahoo.com>

	* src/gtkutil.c: Remove obsolete fixme.

	* etc/NEWS: Add news entry for pgtk.

2021-12-18  Paul Eggert  <eggert@cs.ucla.edu>

	Update from gnulib

	Make the following changes by hand, and run ‘admin/merge-gnulib’.
	* configure.ac (AM_CONDITIONAL): Adjust to new Gnulib convention.

2021-12-18  Andrew G Cohen  <cohen@andy.bu.edu>

	Fix gnus search by message-id

	* lisp/gnus/gnus-search.el (gnus-search-run-search): Continue
	iterating until a match is found.

	* lisp/gnus/nnselect.el (nnselect-request-article): Use new
	gnus-search query format.

2021-12-18  Eli Zaretskii  <eliz@gnu.org>

	Improve doc strings in emoji.el

	* lisp/international/emoji.el (emoji-insert, emoji-recent)
	(emoji-search, emoji-list, emoji-describe, emoji-list-help):
	Improve and clarify the doc strings.

2021-12-18  Mattias Engdegård  <mattiase@acm.org>

	Remove incorrect byte-hunk-handler for `eval`

	This optimization is of very limited utility and miscompiles top-level
	code having the form (eval 'CODE t) by replacing it with CODE which
	will then, as things currently stand, be evaluated with dynamic binding.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-eval): Remove.

2021-12-18  Michael Albinus  <michael.albinus@gmx.de>

	Make generation of JUnit test reports more robust.

	* lisp/emacs-lisp/ert.el (ert-load-file-name): New defvar.
	(ert-write-junit-test-report): Use it.  Make detection of selector
	more robust.  Protect calls of `xml-escape-string' with 'noerror.

	* test/infra/Makefile.in (subdir_template): Use "make -k ...".

	* test/infra/gitlab-ci.yml (test-filenotify-gio):
	Adapt make_params in order to get a JUnit test report.
	(test-native-comp-speed0): Use "make -k ...".

	* test/infra/test-jobs.yml: Regenerate.

	* test/lisp/progmodes/perl-mode-tests.el (top):
	Set `ert-load-file-name'.

2021-12-18  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/dired.el (dired-mode-map): Use defvar-keymap.

2021-12-18  Stefan Kangas  <stefankangas@gmail.com>

	Silence byte-compiler in multisession-tests.el

	* test/lisp/emacs-lisp/multisession-tests.el
	(multi-test-sqlite-simple, multi-test-sqlite-busy)
	(multi-test-files-simple, multi-test-files-busy)
	(multi-test-files-some-values): Silence byte-compiler.

2021-12-18  YugaEgo  <yet@ego.team>

	Cleanup append-to-buffer section in ELisp Intro

	* doc/lispintro/emacs-lisp-intro.texi
	(append-to-buffer, Buffer Related Review, fwd-para let):
	Finalize shifting focus of the 'let*' introduction
	to the 'append-to-buffer' section.  Improve wording, fix
	typos, remove redundant comments (Bug#8275).

2021-12-18  Eli Zaretskii  <eliz@gnu.org>

	Clean up some of PGTK code

	* src/pgtkgui.h: Fix comments.
	* src/image.c (DONT_CREATE_TRANSFORMED_IMAGEMAGICK_IMAGE)
	(is_wayland_display, check_x_display_info)
	(pgtk_get_string_resource): Reformat comments.
	* src/gtkutil.c (xg_show_tooltip): Add comments to large #ifdef's.

2021-12-18  Po Lu  <luangruo@yahoo.com>

	Fix cairo build on haiku

	* configure.ac: Move pgtk cairo detection to the correct
	location.

2021-12-18  Po Lu  <luangruo@yahoo.com>

	* src/pgtkfns.c (Fx_show_tip): Adjust call for new signature.

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-18  Po Lu  <luangruo@yahoo.com>

	Work around some mysterious touch ownership race on GNOME Shell

	* src/xterm.c (x_unlink_touch_point): Return if touchpoint was
	actually unlinked.
	(handle_one_xevent): Catch and ignore errors during touch
	sequence grabbing.

2021-12-18  Po Lu  <luangruo@yahoo.com>

	Add new argument `ignore-line-at-end' to `window-text-pixel-size'

	* doc/lispref/display.texi (Size of Displayed Text): Update
	documentation.
	* etc/NEWS: Announce new argument.
	* src/xdisp.c (window_text_pixel_size): Allow controlling if
	the iterator's ascent and descent will be appended to the
	pixel height returned.  All callers changed.
	(Fwindow_text_pixel_size): New argument `ignore-line-at-end'.
	All callers changed.

2021-12-18  Eli Zaretskii  <eliz@gnu.org>

	Fix display of window-specific overlays with 'display' property

	* src/xdisp.c (handle_display_prop): Pass the window to
	'get_char_property_and_overlay', not the buffer.  (Bug#52385)
	The assignment of the buffer to OBJECT was moved to before
	the call to 'get_char_property_and_overlay', for unknown
	reasons, as part of installing the support for the
	'min-width' space spec.

2021-12-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Make multisession file reading more resilient on Windows

	* lisp/emacs-lisp/multisession.el (multisession--read-file-value):
	Rename and try harder on file errors on Windows.

2021-12-18  Po Lu  <luangruo@yahoo.com>

	Coding style fixes

	* src/gtkutil.c (xg_frame_set_char_size): Fix coding style.

2021-12-18  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-18  Po Lu  <luangruo@yahoo.com>

	Document a bug that exists with some versions of GNOME and GTK

	* etc/PROBLEMS (Window-manager and toolkit-related problems):
	Document GNOME shell bug.

2021-12-17  Po Lu  <luangruo@yahoo.com>

	Flip buffers if display were modified in haiku_read_socket

	* src/haikuterm.c (flush_dirty_back_buffers): New function.
	(haiku_read_socket): Flip buffers if the display could have
	been modified.

2021-12-17  Po Lu  <luangruo@yahoo.com>

	Don't abort upon untracked TouchUpdate events

	Emacs might get an untracked TouchUpdate event in the unlikely
	event of a device hierarchy change during a touch sequence, in
	which case all devices and touchpoints will be reset.

	* src/xterm.c (handle_one_xevent): Don't abort when receiving
	a TouchUpdate that isn't part of a touch sequence.

2021-12-17  Michael Albinus  <michael.albinus@gmx.de>

	Handle missing JUnit test reports

	* lisp/emacs-lisp/ert.el (ert-write-junit-test-report)
	(ert-write-junit-test-summary-report): Handle missing JUnit test reports.

2021-12-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	multisession.el: Avoid old specializer syntax

	Avoid the use of the old (eql VAL) specializer, preferring the new
	(eql EXP) form.

	* lisp/emacs-lisp/multisession.el (multisession-backend-value)
	multisession--backend-set-value, multisession--backend-values)
	multisession--backend-delete, multisession-backend-value)
	multisession--backend-set-value, multisession--backend-values)
	multisession--backend-delete): Quote the symbol passed to `eql` specializer.

2021-12-17  Eli Zaretskii  <eliz@gnu.org>

	Improve multisession test results on MS-Windows

	* lisp/emacs-lisp/multisession.el
	(multisession--backend-set-value): Force 'fsync'ing the temporary
	file.

2021-12-17  Po Lu  <luangruo@yahoo.com>

	Fix touchscreen support on Xt builds

	* src/xterm.c (handle_one_xevent): Make menu bar touch event
	code conditional on GTK3.

2021-12-17  Po Lu  <luangruo@yahoo.com>

	Update menu bar when processing touch sequences on it

	* src/xterm.c (handle_one_event): Prevent menu bar from
	becoming outdated when handling XI_TouchBegin events that may
	cause it to be opened.

2021-12-17  Po Lu  <luangruo@yahoo.com>

	Ignore motion events sent by an emulated pointer

	* src/xterm.c (handle_one_xevent): Ignore XI_Motion events that
	have PointerEmulated set when the display supports XInput 2.2
	or later.

2021-12-17  Paul Eggert  <eggert@cs.ucla.edu>

	Port tramp-adb.el back to Emacs 26

	* lisp/net/tramp-adb.el (tramp-adb-ls-output-time-less-p):
	Revert previous change since Tramp code should still be backward
	compatible to Emacs 26.  But add a comment about this.
	Problem reported by Michael Albinus in:
	https://lists.gnu.org/r/emacs-devel/2021-12/msg01623.html

2021-12-17  Eli Zaretskii  <eliz@gnu.org>

	Fix selection of fonts that don't have regular weight

	* src/font.c (font_delete_unmatched): The kludge of allowing
	inexact matches of the font weight is now used for non-NTGUI
	platforms as well.  (Bug#52493)

2021-12-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix parallel build with multisession.el

	* lisp/emacs-lisp/multisession.el: Don't require url -- this pulls
	in gnus-util, which requires rmail, which depends on
	rmail-loaddefs being generated, which our Makefiles doesn't guarantee.

2021-12-17  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-17  Po Lu  <luangruo@yahoo.com>

	Add support for touchscreen events generated by XInput 2

	* doc/lispref/commands.texi (Input Events): Add "Touchscreen
	Events" to menu.
	(Touchscreen Events): New node.
	* etc/NEWS: Announce new event types.

	* src/keyboard.c (make_lispy_event): Handle touchscreen events.
	(syms_of_keyboard): New symbols `touchscreen-begin',
	`touchscreen-end' and `touchscreen-update'.
	* src/termhooks.h (enum event_kind): New touchscreen events.

	* src/xfns.c (setup_xi_event_mask): Set up touch event mask if
	appropriate.
	(x_window) [USE_GTK]: Call `setup_xi_event_mask'.

	* src/xterm.c (x_free_xi_devices): Free touchpoints.
	(x_init_master_valuators): Handle all devices and set master and
	touch mode flags appropriately.
	(xi_reset_scroll_valuators_for_device_id):
	(x_get_scroll_valuator_delta): Ignore slave devices.

	(xi_link_touch_point):
	(xi_unlink_touch_point):
	(xi_find_touch_point): New functions.
	(handle_one_xevent): Handle XI touch events and events from
	non-master devices.

	* src/xterm.h (struct xi_touch_point_t): New structure.
	(struct xi_device_t): Add touchpoints field.

2021-12-16  Dmitry Gutov  <dgutov@yandex.ru>

	Kill eshell-mode project buffers too

	* lisp/progmodes/project.el (project-kill-buffer-conditions):
	Add 'eshell-mode' too (bug#49465).

2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	* src/timefns.c: Minor comment fix.

2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify epa-ks--parse-buffer timestamp handling

	* lisp/epa-ks.el (epa-ks--parse-buffer): Omit unnecessary calls to
	seconds-to-time, and prefer the unaliased name time-convert when
	calls are necessary.

2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	Omit temporary warning re obsolete timestamps

	Do not warn about timestamps like (1 . 1000).  This warning was added
	in Emacs 27 as a temporary transition aid, and has now served its
	purpose.  These timestamps, which Emacs 26 and earlier treated as (HI
	. LO) instead of as (TICKS . HZ), were never generated by Emacs
	primitives, and in practice the warning seems to have been triggered
	only by test cases designed to generate it.
	* src/timefns.c (WARN_OBSOLETE_TIMESTAMPS): Remove.
	All uses changed to assume it’s false.
	(decode_lisp_time): Simplify by taking a bool instead of an
	integer bitmask.  All uses changed.

2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	Assume current-time-zone exists

	* lisp/timezone.el (timezone-time-zone-from-absolute): Simplify by
	assuming current-time-zone exists (true since Emacs 19.7 in 1993).

2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer format-time-string to current-time-zone

	* lisp/org/ox-icalendar.el (org-icalendar-template)
	(org-icalendar-export-current-agenda)
	(org-icalendar--combine-files):
	* lisp/time.el (display-time-update):
	Prefer (format-time-string "%Z") to (cadr (current-time-zone)).

2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	Minor nndiary simplificatiuon with time zone

	* lisp/gnus/nndiary.el (nndiary-last-occurrence)
	(nndiary-next-occurrence): Simplify (and X (car X)) to (car X).

2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer format-time-string to current-time-string

	* lisp/arc-mode.el (archive-unixdate):
	* lisp/gnus/nnrss.el (nnrss-normalize-date):
	* lisp/tar-mode.el (tar-clip-time-string):
	Prefer format-time-string to reassembling current-time-string output.

2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	encode-time simplifications

	* lisp/gnus/gnus-search.el (gnus-search-query-parse-date):
	* lisp/net/soap-client.el (soap-decode-date-time):
	* lisp/net/tramp-adb.el (tramp-adb-ls-output-time-less-p):
	* lisp/org/ol.el (org-store-link):
	* lisp/org/org-clock.el (org-clock-sum)
	(org-clock-update-time-maybe):
	* lisp/org/org-colview.el (org-colview-construct-allowed-dates):
	* lisp/org/org-macro.el (org-macro--vc-modified-time):
	* lisp/org/org-macs.el (org-2ft, org-matcher-time):
	* lisp/org/org-table.el (org-table-eval-formula):
	* lisp/org/org.el (org-read-date, org-display-custom-time)
	(org-time-string-to-time, org-timestamp-change):
	Prefer (encode-time L) to (apply #'encode-time L) where either will do.
	* lisp/gnus/gnus-search.el (gnus-search-imap-handle-date):
	* lisp/org/org-clock.el (org-clocktable-steps):
	Prefer (encode-time S M ...) to (apply #'encode-time (list S M ...)).

2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	Fix icalendar time zone parsing glitch

	* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
	Use pcase instead of cl-case, as cl-macs might not be loaded.
	Otherwise, a build complains “calendar/icalendar.el:618:57:
	Warning: ‘90’ is a malformed function” and some
	icalendar--decode-isodatetime tests fail.  This fixes a bug
	introduced in 2021-11-21T08:18:57Z!dick.r.chiang@gmail.com.

2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>

	Fix encode-time doc string

	* src/timefns.c (Fencode_time): Fix incorrect doc string
	that talks about FORM (which doesn’t exist) by copying
	wording from the manual instead.

2021-12-16  Juri Linkov  <juri@linkov.net>

	* lisp/vc/vc-dispatcher.el (vc-command-messages): Add choice 'log'.

	(vc-do-command): Don't display messages but only write them to the *Messages*
	buffer when vc-command-messages is 'log' (bug#52518).

2021-12-16  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-16  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of multisession variables

	* doc/lispref/variables.texi (Multisession Variables): Improve
	wording and markup, add indexing.

2021-12-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Update files times in multisesssion properly

	* lisp/emacs-lisp/multisession.el
	(multisession--backend-set-value): Make cached/external files
	times match up.

2021-12-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the multisession files value read more resilient

	* lisp/emacs-lisp/multisession.el
	(multisession--update-file-value): Make more resilient towards errors.

2021-12-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Skip extension tests on hosts without the function

2021-12-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Make emoji--recent use multisession variables

	* lisp/international/emoji.el (emoji--recent): Make into a
	multisession variable.
	(emoji-recent, emoji--recent-transient): Use it.
	(emoji--add-recent): Update it.

2021-12-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Declare a couple more functions in multisession.el

	* lisp/emacs-lisp/multisession.el: New file.

2021-12-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Add support for multisession variables

	* doc/lispref/elisp.texi (Top): Add to menu.
	(Top):
	* doc/lispref/variables.texi (Variables): Ditto.
	(Multisession Variables): Document multisession variables.

	* lisp/emacs-lisp/multisession.el: New file.

2021-12-16  Po Lu  <luangruo@yahoo.com>

	Require xwidget.el in `make-xwidget'

	* src/xwidget.c (Fmake_xwidget): Require `xwidget'.

2021-12-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1e578267fb Fix control buffer window height in 'ediff-setup-control-b...

2021-12-15  Stefan Kangas  <stefankangas@gmail.com>

	Prefer command remapping in ses.el

	* lisp/ses.el (ses-mode-print-map): Use command remapping instead of
	substitute-key-definition.

2021-12-15  Fredrik Bergroth  <fbergroth@gmail.com>

	Add missing entries from completionitemkind

	* eglot.el (eglot--kind-names): update

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/772

2021-12-15  Garret Buell  <gmbuell@gmail.com>  (tiny change)

	Mark eglot-completion-at-point capf "non-exclusive"

	Add :exclusive 'no to eglot-completion-at-point results marking it as
	non-exclusive. This will allow completion to fall back to other less precise
	completion backends (e.g. dabbrev) if Eglot's returns no results.

	* eglot.el (eglot-completion-at-point): Set :exclusive to 'no

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/770

2021-12-15  Stefan Kangas  <stefankangas@gmail.com>

	Use defvar-keymap in hideif.el

	* lisp/progmodes/hideif.el (hide-ifdef-mode-submap): Use
	defvar-keymap.  Use command remapping instead of
	substitute-key-definition.

2021-12-15  Michael Albinus  <michael.albinus@gmx.de>

	Add errors in ert JUnit test reports

	* lisp/emacs-lisp/ert.el (ert-write-junit-test-report)
	(ert-write-junit-test-summary-report): Handle errors.

2021-12-15  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline-minor-mode-use-buttons): Add :safe #'booleanp.

	(outline-minor-mode-cycle, outline-minor-mode-highlight):
	Replace `put safe-local-variable' with :safe tag.

2021-12-15  Andrea Corallo  <akrl@sdf.org>

	Have 'dlopen' use RTLD_GLOBAL in 'dynlib_open'

	* src/pdumper.c (dump_do_dump_relocation): Use 'dynlib_open_for_eln'
	in place of 'dynlib_open'.
	* src/dynlib.h (dynlib_open_for_eln): Declare it.
	* src/dynlib.c (dynlib_open_for_eln): New function.
	(dynlib_open): Add RTLD_GLOBAL.
	* src/comp.c (Fnative_elisp_load): Use 'dynlib_open_for_eln' in place
	of 'dynlib_open'.

2021-12-15  Arash Esbati  <arash@gnu.org>

	Recognize starred environments

	* lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Add
	missing starred environments from sidecap and rotating packages.

2021-12-15  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	7078f32b5b Fix crash when dumping charset_table with portable dumper ...
	a4fcbf46a7 ; etc/NEWS: Move the note about Xref EIEIO change to the p...
	f88c1d222f Remove maintainer comment from Emacs 28 module snippet.

	# Conflicts:
	#	etc/NEWS

2021-12-14  Po Lu  <luangruo@yahoo.com>

	Prevent GDK from handling emulated button events

	* src/xterm.c (handle_one_xevent): Drop emulated button events.

2021-12-14  Po Lu  <luangruo@yahoo.com>

	Work around pixel scrolling issues when line numbers are displayed

	* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
	Compare start position against line number display width
	instead.

2021-12-14  Dmitry Gutov  <dgutov@yandex.ru>

	project-kill-buffers-display-buffer-list: Fix :package-version value

	* lisp/progmodes/project.el (project-kill-buffers-display-buffer-list):
	Fix :package-version value.

2021-12-14  Dmitry Gutov  <dgutov@yandex.ru>

	Add 'comint-mode' and 'change-log-mode' to project-kill-buffer-conditions

	* lisp/progmodes/project.el (project-kill-buffer-conditions):
	Add 'comint-mode' and 'change-log-mode' to the list (bug#52465).

2021-12-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	eieio-compat.el: Move to lisp/obsolete

	The file only contains obsolete definitions, so it really belongs in
	`lisp/obsolete`.  Moving it there will also signal a warning for those
	people who run old `.elc` files using EIEIO and generated with
	Emacs<25 and who otherwise might not know about the obsolescence of
	some of the functions they use.

	* lisp/emacs-lisp/eieio-compat.el: Move to ...
	* lisp/obsolete/eieio-compat.el: ... here.

2021-12-14  Stefan Kangas  <stefankangas@gmail.com>

	Prefer command remapping in allout.el

	* lisp/allout.el (allout-compose-and-institute-keymap): Use command
	remapping instead of substitute-key-definition.

2021-12-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix ert.texi error from previous change

	* doc/misc/ert.texi (Running Tests in Batch Mode): Fix @r command.

2021-12-14  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/net/eudc.el (custom-menu-create): Remove unnecessary autoload.

2021-12-14  Stefan Kangas  <stefankangas@gmail.com>

	Remove Emacs 21 compat code for command-remapping

	* lisp/arc-mode.el (archive-mode-map):
	* lisp/obsolete/iswitchb.el (iswitchb-global-map): Remove Emacs 21
	compat code.

2021-12-14  Michael Albinus  <michael.albinus@gmx.de>

	Minor Tramp cleanup

	* lisp/net/tramp.el (tramp-get-buffer-string): Simplify.
	(tramp-lock-pid): Fix docstring.

2021-12-14  Michael Albinus  <michael.albinus@gmx.de>

	Explain JUnit test reports in ert doc

	* doc/misc/ert.texi (Running Tests in Batch Mode): Explain
	generation of JUnit test reports.

2021-12-14  Stefan Kangas  <stefankangas@gmail.com>

	Use defvar-keymap in elisp-mode.el

	* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-map)
	(elisp--dynlex-modeline-map, lisp-interaction-mode-map): Use
	defvar-keymap.

2021-12-14  Stefan Kangas  <stefankangas@gmail.com>

	Prefer command remapping in cperl-mode.el

	* lisp/progmodes/cperl-mode.el (cperl-mode-map): Use command remapping
	instead of substitute-key-definition.

2021-12-14  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Only allow SQLite extensions from an allowlist

	* src/sqlite.c (Fsqlite_load_extension): Only allow extensions
	from an allowlist.

2021-12-14  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	3607508f3f Set calc-make-windows-dedicated to nil by default
	9de8eec3bc * make-dist: Don't run "make --question info".  (Bug#52322)
	cea8deea72 ; * src/xdisp.c (move_it_vertically_backward): Clarify com...
	6170c5036e Fix regression in help-mode prompt

	# Conflicts:
	#	etc/NEWS

2021-12-13  Stefan Kangas  <stefankangas@gmail.com>

	completion.el: Make two compat aliases obsolete

	* lisp/completion.el (cmpl-syntax-table, initialize-completions):
	Make compat aliases obsolete.

2021-12-13  Michael Albinus  <michael.albinus@gmx.de>

	ERT can generate JUnit test reports

	* .gitignore: Add test/**/*.xml.

	* admin/notes/emba: Mention JUnit test report.

	* etc/NEWS: ERT can generate JUnit test reports.

	* lisp/emacs-lisp/ert.el (xml-escape-string): Autoload.
	(ert-write-junit-test-report)
	(ert-write-junit-test-summary-report): New defuns.
	(ert-run-tests-batch, ert-summarize-tests-batch-and-exit): Call them.

	* test/Makefile.in (clean): Remove *.xml.

	* test/README: Mention $EMACS_TEST_JUNIT_REPORT environment variable.

	* test/infra/Makefile.in ($(FILE)): Generate header commentary.
	(clean): Remove.

	* test/infra/gitlab-ci.yml (variables): Set EMACS_TEST_JUNIT_REPORT.
	(.job-template): Use it in script and after_script.
	(.build-template, .gnustep-template, .filenotify-gio-template)
	(.native-comp-template): Adapt rules.
	(.test-template): Trigger JUnit test report.

	* test/infra/test-jobs.yml: Regenerate.

2021-12-13  Stefan Kangas  <stefankangas@gmail.com>

	Make alias obsolete in xscheme.el

	* lisp/progmodes/xscheme.el (xscheme-yank-previous-send): Make
	obsolete.

2021-12-13  Stefan Kangas  <stefankangas@gmail.com>

	Make two aliases obsolete in lisp/international/robin.el

	* lisp/international/robin.el (robin-transliterate-region)
	(robin-transliterate-buffer): Make obsolete.

2021-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/generator.el (iter-yield): Simplify

2021-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/pcomplete.el: Mark obsolete some unused functions

	* lisp/pcomplete.el (pcomplete-match-beginning, pcomplete-match-end):
	Mark as obsolete.
	(pcomplete-opt, pcomplete--here, pcomplete--help): Use lexical-binding.

2021-12-13  Eli Zaretskii  <eliz@gnu.org>

	* src/sqlite.c (Fsqlite_open, Fsqlite_load_extension): Use ENCODE_FILE.

2021-12-13  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/ielm.el (ielm-map): Use defvar-keymap.

	* lisp/ielm.el (ielm-header): Show key binding for describe-mode.

2021-12-13  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	9bd3f78645 Make `M-x run-python' select the window again
	62139aeb42 * lisp/tab-bar.el (tab-bar-switch-to-last-tab): Add 'abs' ...
	ea8422204f * make-dist (manifest): Filter out msdos/autogen/* files.
	b5354e989d Rewrite the "Quitting Windows" section of Emacs Lisp Refer...
	64ea1a178c Fix eshell for systems that do not have subprocesses

2021-12-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new `sqlite-pragma' command

	* doc/lispref/text.texi (Database): Document it.
	* src/sqlite.c (Fsqlite_pragma): Add a separate command for
	pragmas.  These can be done via sqlite-execute, but it's less
	confusing to have them in a separate command.

2021-12-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Introduce a new sqlite-locked-error

	* src/sqlite.c (Fsqlite_execute): Use it.
	(syms_of_sqlite): Introduce a new error for locked databases so
	that we can catch that condition on higher levels.

2021-12-12  Po Lu  <luangruo@yahoo.com>

	Work around pixel scrolling issues when org-indent-mode is on

	* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
	Subtract line height of window start when it doesn't appear
	at the 0th pixel of the line.

2021-12-12  Po Lu  <luangruo@yahoo.com>

	Stop using XI focus events on non-GTK builds

	* src/xfns.c (setup_xi_event_mask): Stop setting XI_FocusIn
	and XI_FocusOut.
	* src/xterm.c (x_detect_focus_change) <GenericEvent>: Don't
	handle XI_FocusIn and XI_FocusOut events when not on GTK.

2021-12-12  Eli Zaretskii  <eliz@gnu.org>

	* lisp/char-fold.el (char-fold-override): Doc fix.

2021-12-12  Juri Linkov  <juri@linkov.net>

	* lisp/char-fold.el (char-fold-override): New defcustom (bug#52394).

	(char-fold--default-override): New defconst with the default value nil.
	(char-fold--previous): Add char-fold--default-override.
	(char-fold--make-table): Don't populate the table with default chars
	when char-fold-override or char-fold--default-override is non-nil.
	(char-fold-update-table): Add char-fold--default-override.

2021-12-12  Juri Linkov  <juri@linkov.net>

	* lisp/startup.el: Let-bind browse-url-browser-function instead of setq-local

	* lisp/startup.el (fancy-startup-text, fancy-about-text)
	(fancy-splash-head, normal-about-screen): Let-bind browse-url-browser-function
	to eww-browse-url around functions that use browse-url.
	(fancy-startup-screen, fancy-about-screen): Don't set buffer-local
	browse-url-browser-function.
	https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg00939.html

2021-12-12  Po Lu  <luangruo@yahoo.com>

	Fix overline display when there is a box on PGTK

	* src/pgtkterm.c (pgtk_draw_glyph_string): Draw box before any
	text decorations.

2021-12-12  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-12  Po Lu  <luangruo@yahoo.com>

	Fix overline display over stretch glyphs with box on NS

	* src/nsterm.m (ns_dumpglyphs_stretch): Don't draw text
	decorations when there is a box.
	(ns_draw_glyph_string): Draw text decorations after the box
	in stretch glyph that have one.

2021-12-12  Po Lu  <luangruo@yahoo.com>

	Fix overline display when there is a box

	* src/w32term.c (w32_draw_glyph_string):
	* src/xterm.c (x_draw_glyph_string): Draw box before any text
	decorations.

2021-12-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Really fix the etags TEX parsing

	* lib-src/etags.c (TEX_decode_env): Re-fix off-by-one parsing of
	TEXTAGS environment variable (bug#52438).

2021-12-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix an off-by-one error in TEX parsing in etags

	* lib-src/etags.c (TEX_decode_env): Fix off-by-one parsing of
	TEXTAGS environment variable (bug#52438).  Based on a patch by
	David Fussner <dfussner@googlemail.com> and amended by Andreas
	Schwab <schwab@linux-m68k.org>.

2021-12-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Check for support in sqlite-mode-open-file

	* lisp/sqlite-mode.el (sqlite-mode-open-file): Error out earlier
	when we don't have sqlite support.

2021-12-12  Stefan Kangas  <stefankangas@gmail.com>

	eshell: Prefer octal number for file modes

	* lisp/eshell/esh-util.el (eshell-private-file-modes)
	(eshell-private-directory-modes): Prefer octal number for file modes.

2021-12-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Make with-sqlite-transaction mode code efficient

	* lisp/sqlite.el (with-sqlite-transaction): Rewrite to only
	include BODY once.

2021-12-12  Po Lu  <luangruo@yahoo.com>

	* src/xterm.c (x_detect_focus_change): Fix XI2 focus on GTK builds.

2021-12-12  Po Lu  <luangruo@yahoo.com>

	Fix last change

	* src/xterm.c (x_detect_focus_change): Test against
	FOCUS_EXPLICIT.

2021-12-12  dick r. chiang  <dick.r.chiang@gmail.com>

	Fix some compilation warnings in sqlite-less builds

	* test/src/sqlite-tests.el:
	* lisp/sqlite-mode.el: Avoid compilation warnings in builds
	without libsqlite (bug#52440).

2021-12-12  Po Lu  <luangruo@yahoo.com>

	Fix frame focus on X Toolkit builds with XInput 2

	* src/xterm.c (x_detect_focus_change): Allow focus_state to not
	be FOCUS_EXPLICIT when handling FocusIn and FocusOut events.

2021-12-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Update bovine/gcc-tests for newer Macos versions

	* test/lisp/cedet/semantic/bovine/gcc-tests.el
	(semantic-gcc-test-output-parser-this-machine): Update gcc->llvm
	detection to Macos Monterey.

2021-12-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	8a0734329a Avoid undefined behavior in 'send-process-region' (Bug#523...
	30dd5c9acc Update to Org 9.5.1-25-g9ca3bc
	a374849926 Fix the DJGPP port

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak erroring in sqlite-mode-delete

	* lisp/sqlite-mode.el (sqlite-mode-delete): Use user-error instead
	of error for user-level stuff.

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make sqlite-mode-list-tables work on older sqlite versions

	* lisp/sqlite-mode.el (sqlite-mode-list-tables): Use sqlite_master
	instead of sqlite_schema, since the former name is the historical
	name and is available in all sqlite3 versions:
	https://sqlite.org/schematab.html

2021-12-11  Po Lu  <luangruo@yahoo.com>

	Fix coding style

	* src/pgtkmenu.c (popup_widget_loop):
	(popup_deactivate_callback):
	(show_help_event):
	(menu_highlight_callback):
	(menubar_selection_callback):
	(popup_selection_callback):
	(dialog_selection_callback):
	(create_and_show_dialog): Fix coding style.

2021-12-11  Po Lu  <luangruo@yahoo.com>

	Prevent hangs when displaying a context menu on pgtk

	* src/pgtkmenu.c (pgtk_menu_wait_for_event, popup_widget_loop):
	Remove unnecessary workarounds.

2021-12-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-11  Po Lu  <luangruo@yahoo.com>

	Clear precision scroll interpolation when direction changes

	* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate):
	Clear scroll interpolation when direction changes.

2021-12-11  Po Lu  <luangruo@yahoo.com>

	Fix drawing overlines on top of stretch glyphs when there is a box

	* src/haikuterm.c (haiku_draw_string_box): Also draw text
	decorations if the clipping is to be set.
	(haiku_draw_glyph_string): Only draw text decorations if
	the box will not be drawn with clipping.

2021-12-11  Mattias Engdegård  <mattiase@acm.org>

	Constant-propagate access to captured variables

	* lisp/emacs-lisp/byte-opt.el (byte-optimize--substitutable-p):
	Treat (internal-get-closed-var N) as constants for propagation
	purposes, because that is effectively what such forms will be compiled
	to.  This allows for the elimination of some lexical variables.

	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
	Add test case.

2021-12-11  Mattias Engdegård  <mattiase@acm.org>

	Reimplement gnus-thread-header in Lisp

	* lisp/gnus/gnus-sum.el (gnus-thread-header):
	Replace lovingly hand-crafted assembler code with plain Lisp.
	With lexical binding the difference is unlikely to be detectable.

2021-12-11  Eli Zaretskii  <eliz@gnu.org>

	Fix hang when deleting a pipe process

	* src/w32.h (FILE_DONT_CLOSE): New flag.
	* src/w32.c (sys_close): Don't close descriptors used to read from
	the pipe process.  Leave the FILE_DONT_CLOSE flag set in the
	descriptor's info.
	(register_aux_fd): Set the FILE_DONT_CLOSE flag in the
	descriptor's info.
	* src/w32proc.c (reader_thread): When exiting normally, close the
	file descriptor used to read from a pipe process.  (Bug#52414)

2021-12-11  Yuuki Harano  <masm+github@masm11.me>

	Implement pgtk_frame_raise_lower

	* src/pgtkterm.c (pgtk_raise_frame): New function.
	(pgtk_lower_frame): New function.
	(pgtk_frame_raise_lower): New function to call one of those.
	(pgtk_create_terminal): Set frame_raise_lower_hook.

2021-12-11  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of sqlite3 support

	* lisp/sqlite-mode.el (sqlite-mode-list-data):
	* configure.ac (HAVE_SQLITE3): Fix typos.

	* doc/lispref/text.texi (Database): Improve and clarify wording,
	add index entries, mention all the function arguments.

	* etc/NEWS: Minor wording changes of the sqlite entries.

2021-12-11  Po Lu  <luangruo@yahoo.com>

	Coding style fixes

	* src/pgtkterm.c (button_event): Fix coding style.

2021-12-11  Po Lu  <luangruo@yahoo.com>

	Fix tooltips in PGTK child frames

	* src/gtkutil.c (xg_show_tooltip, xg_hide_tooltip): Make
	safe for child frames.

2021-12-11  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-11  Po Lu  <luangruo@yahoo.com>

	Use window height to determine wheel event pixel deltas on XInput 2

	* src/xterm.c (handle_one_xevent): Use window height instead of
	frame height to determine the height of a scroll unit.

2021-12-11  Po Lu  <luangruo@yahoo.com>

	Prevent hang when exiting Emacs on Haiku

	* src/haiku_support.cc (be_app_quit): Don't wait for app
	thread to also quit.

2021-12-11  Eli Zaretskii  <eliz@gnu.org>

	* src/sqlite.c (row_to_value): Call 'make_unibyte_string'.

2021-12-11  Basil L. Contovounesios  <contovob@tcd.ie>

	Pacify unused variable warning in xterm.c

	* src/xterm.c (handle_one_xevent) <GenericEvent> [HAVE_XINPUT2]: The
	variable any_stop_p is used only when HAVE_XWIDGETS, so guard its
	declaration accordingly to pacify GCC's -Wunused-variable warning.

2021-12-11  Eli Zaretskii  <eliz@gnu.org>

	Minor cleanups in sqlite.c

	* src/sqlite.c (Fsqlite_open): Signal an error if
	'init_sqlite_functions' fails.  Encode FILE using UTF-8.
	(Fsqlite_close, Fsqlite_execute, Fsqlite_select)
	(Fsqlite_load_extension): Doc fixes.
	(Fsqlite_load_extension): Encode MODULE using UTF-8.

2021-12-11  Eli Zaretskii  <eliz@gnu.org>

	Minor cleanups of sqlite3 code on MS-Windows

	* src/sqlite.c (sqlite_loaded_p): Function deleted: not used
	anymore.
	(init_sqlite_functions) [WINDOWSNT]: Use a static 'bool' variable
	to indicate if sqlite3 DLL was successfully loaded.
	(Fsqlite_available_p) [WINDOWSNT]: Just call
	'init_sqlite_functions' if Vlibrary_cache doesn't mention
	'sqlite3'.

2021-12-11  Eli Zaretskii  <eliz@gnu.org>

	Fix a typo in sqlite.c

	* src/sqlite.c (Fsqlite_select): Fix a typo in arguments to
	make_sqlite.

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Add confirmation to sqlite-mode-delete

	* lisp/sqlite-mode.el (sqlite-mode-delete): Add confirmation.

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't leave open cursors when listing sqlite data

	* lisp/sqlite-mode.el (sqlite-mode-list-data)
	(sqlite--mode--list-data): Don't leave open cursor (because they
	block other processes from deleting stuff).
	(sqlite-mode-delete): Adjust to new layout.

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Add FIXME comment

	* lisp/sqlite-mode.el (sqlite-mode-delete): New command.
	(sqlite--mode--list-data, sqlite-mode-list-data): Adjust to new
	command.

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Add an sqlite-mode-delete command

	* lisp/sqlite-mode.el (sqlite-mode-delete): New command.
	(sqlite--mode--list-data, sqlite-mode-list-data): Adjust to new
	command.

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix Fsqlite_finalize book-keeping

	* src/sqlite.c (Fsqlite_finalize): Mark the object as dead.

2021-12-11  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	5708da48d1 Revert "Make `M-x run-python' select the window again"
	aa2872a127 Make `M-x run-python' select the window again
	c8e19b3a84 Don't bug out on certain empty elements with ids

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve sqlite-mode--tablify tables

	* lisp/sqlite-mode.el (sqlite-mode--tablify): Tweak column widths
	and sanitize newlines.

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Check whether the sqlite supports sqlite3_load_extension

	* configure.ac: Check for sqlite3_load_extension, which is
	apparently missing in some versions.
	* src/sqlite.c: Add guards.
	(Fsqlite_load_extension): Ifdef out on systems that doesn't have it.

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix sqlite-mode.el build problems

	* lisp/sqlite-mode.el (sqlite-mode-list-tables): Fix function
	rename usage.

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some sqlite doc string typos

	* src/sqlite.c (Fsqlite_load_extension, Fsqlite_more_p): Fix typos
	in doc strings.

2021-12-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new mode for examining sqlite files

	* lisp/sqlite-mode.el: New file.

2021-12-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix comment in heading

	Add NEWS entry for sqlite

2021-12-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Add sqlite3 support to Emacs

	* configure.ac: Add check for the sqlite library.
	* doc/lispref/text.texi (Database): Document it.

	* lisp/sqlite.el: New file.

	* lisp/term/w32-win.el (dynamic-library-alist): Add a mapping.

	* src/Makefile.in (SQLITE3_LIBS): Add the libraries.

	* src/alloc.c (union emacs_align_type): Add a Lisp_Sqlite struct.

	* src/data.c (Ftype_of): Add sqlite.

	* src/emacs.c (main): Load the syms.

	* src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN): Add PVEC_SQLITE.
	(GCALIGNED_STRUCT): New struct to keep data for sqlite database
	objects and statement objects.
	(SQLITEP, SQLITE, CHECK_SQLITE, XSQLITE): New macros for accessing
	the objects.

	* src/pdumper.c (dump_vectorlike): Update hash.
	(dump_vectorlike): Don't dump it.

	* src/print.c (print_vectorlike): Add a printer for the sqlite
	object.

	* src/sqlite.c: New file.

	* test/src/sqlite-tests.el: Add tests.

2021-12-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix bibtex-biblatex-entry-alist sorting when using latex

	* lisp/textmodes/bibtex.el (bibtex-biblatex-entry-alist): Sort
	PhdThesis and TechReport correctly when using the latex variant
	(bug#52354).

2021-12-10  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-10  Stefan Kangas  <stefankangas@gmail.com>

	* etc/TODO: Entry about converting to defvar-keymap.

2021-12-10  Stefan Kangas  <stefankangas@gmail.com>

	Use defvar-keymap for package-menu-mode-map

	* lisp/emacs-lisp/package.el (package-menu-mode-map): Use
	defvar-keymap.

2021-12-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Make keymap-lookup work for keymap results, too

	* lisp/keymap.el (keymap-lookup): Make this function work for
	non-symbol lookups, too (bug#52374).

2021-12-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Make dired-buffers-for-dir expand the DIR argument

	* lisp/dired.el (dired-buffers-for-dir): Expand DIR argument
	(bug#52395).
	(dired-find-buffer-nocreate, dired-clean-up-after-deletion):
	Adjust callers.

2021-12-10  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-10  Po Lu  <luangruo@yahoo.com>

	Further reduce image-related stutter during precision scrolling

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page): Disable
	`scroll-preserve-screen-position' and `auto-window-vscroll'
	while scrolling.

2021-12-10  Po Lu  <luangruo@yahoo.com>

	Stop setting `make-cursor-line-fully-visible' in precision scrolling

	* lisp/pixel-scroll.el (pixel-scroll-precision-mode): Stop
	setting `make-cursor-line-fully-visible'.

2021-12-10  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	7a25ba0fde ; * lisp/image-dired.el: Fix typo.
	dda6337066 emacsclient takes more care about XDG_RUNTIME_DIR
	26fb4168b8 ; Prefer HTTPS in more URLs
	6b89578524 ; * lisp/progmodes/flymake.el: Update the minimum Emacs ve...

2021-12-09  Po Lu  <luangruo@yahoo.com>

	Fix bob detection when pixel scrolling upwards

	* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
	Don't go to the beginning-of-visual-line if bobp.

2021-12-09  Po Lu  <luangruo@yahoo.com>

	Fix pixel scrolling upwards in Info buffers

	* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
	Don't blindly trust window start to be the beginning of a
	visual line.

2021-12-09  Po Lu  <luangruo@yahoo.com>

	Remove unused let-bindings from pixel-scroll.el

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page): Remove unused
	bindings.

2021-12-09  Po Lu  <luangruo@yahoo.com>

	Fix precision scrolling for stretch glyphs

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page): Simplify logic.
	(pixel-scroll-precision-interpolate): Block throw-on-input
	when actually scrolling.

2021-12-09  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/time.el (world-clock-mode-map): Convert to defvar-keymap.

2021-12-09  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-09  Eli Zaretskii  <eliz@gnu.org>

	Fix logic in 'compute_window_start_on_continuation_line'

	* src/xdisp.c (compute_window_start_on_continuation_line): Fix a
	thinko in logic.  Patch by dickmao <dick.r.chiang@gmail.com>.
	(Bug#52378)

2021-12-09  Michael Albinus  <michael.albinus@gmx.de>

	Fix thinko in Tramp test

	* test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name):
	Fix thinko.

2021-12-09  Michael Albinus  <michael.albinus@gmx.de>

	Improve lock-pid handling in Tramp

	* lisp/net/tramp-cache.el: Remove comment.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
	* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection):
	Do not set "lock-pid" connection-property.
	(tramp-sudoedit-handle-delete-file): Use "rm -f".

	* lisp/net/tramp.el (tramp-test-message): Extend for buffers w/o
	remote default-directory.
	(tramp-lock-pid): New defvar.
	(tramp-get-lock-pid): Reimplement.

2021-12-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1821844357 Add missing K key documentation for Cangjie input methods
	be860c1385 Fix manual entry of 'quit-restore-window' (Bug#52328)
	35a96139df Clarify a comment in xdisp.c
	6ba2f028cf Revert "Grep alias `all' shall not match parent directory"
	eb9e33e238 ; * etc/NEWS: Non-nil repeat-keep-prefix is not the default...
	538fc1d0e0 Fix mode-line display in Calendar mode

	# Conflicts:
	#	etc/NEWS
	#	lisp/help.el

2021-12-09  Po Lu  <luangruo@yahoo.com>

	Make precision scrolling up work over display strings

	* lisp/pixel-scroll.el
	(pixel-point-and-height-at-unseen-line): Use
	`window-text-pixel-size'.
	(pixel-scroll-precision-scroll-up-page): Use delta as vscroll
	directly.

2021-12-09  Po Lu  <luangruo@yahoo.com>

	Fix pixel scrolling over lines with different sized glyphs

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page): Calculate desired
	vscroll with `window-text-pixel-size'.

2021-12-08  Po Lu  <luangruo@yahoo.com>

	Fix jumping cursor during interpolated scrolls

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page): Go to next position
	before setting start or vscroll.

2021-12-08  Po Lu  <luangruo@yahoo.com>

	Allow customizing step between each interpolated scroll

	* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate):
	Use new option.
	(pixel-scroll-precision-interpolation-between-scroll): New user
	option.

2021-12-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-08  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Show image info in header line

	* lisp/image-dired.el
	(image-dired-update-header-line): New function to show image
	information in the header line.
	(image-dired-display-thumb-properties): Make obsolete.
	(image-dired-track-thumbnail)
	(image-dired--display-thumb-properties-fun)
	(image-dired-forward-image, image-dired-next-line)
	(image-dired-previous-line, image-dired-beginning-of-buffer)
	(image-dired-end-of-buffer, image-dired-read-comment): Use
	image-dired-update-header-line instead of
	image-dired-display-thumb-properties.

2021-12-08  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Go to next image when marking

	* lisp/image-dired.el
	(image-dired-marking-shows-next): New user option to show the next
	image after marking, unmarking or flagging an image.
	(image-dired--do-mark-command): New macro.
	(image-dired-mark-thumb-original-file)
	(image-dired-unmark-thumb-original-file)
	(image-dired-flag-thumb-original-file)
	(image-dired-toggle-mark-thumb-original-file)
	(image-dired-unmark-all-marks): Use above new macro.

2021-12-08  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Remove some TODOs

	To the extent that these TODOs are relevant or useful, it would be
	better to add such features to image-mode directly.
	* lisp/image-dired.el: Remove some TODOs.

2021-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* test/lisp/emacs-lisp/subr-x-tests.el (subr-x-named-let): New test

2021-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* test/lisp/emacs-lisp/cl-macs-tests.el: Avoid `with-suppressed-warnings`

	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--progv): Use a proper
	namespace prefix for the global vars.

2021-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/mouse.el: Fix some lambdas quoted with ` or '

	Also prefer #' to quote named functions.

	* lisp/mouse.el (minor-mode-menu-from-indicator, context-menu-entry)
	([C-down-mouse-3]): Don't abuse lambda lists for functions.
	(context-menu-mode): Remove redundant `:group`.
	(mouse-drag-line): Remove unused var `draggable`.
	(mouse-yank-primary): Make it work for non-mouse events.

2021-12-08  Juri Linkov  <juri@linkov.net>

	* lisp/mouse.el (context-menu-entry): Bind to make-sparse-keymap, not ignore.

	Then where-is-internal does not run context-menu-map from the :filter,
	and no context menu functions are called by e.g. describe-mode in wrong buffer
	(bug#9923)

2021-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Define some more keymaps in one step

	* lisp/calc/calc-store.el (calc-var-name-map):
	* lisp/mail/rmailsum.el (rmail-summary-edit-map):
	* lisp/speedbar.el (speedbar-buffers-key-map): Define in one step.
	* lisp/progmodes/ebrowse.el (ebrowse-global-submap-4)
	(ebrowse-global-submap-5): Define in one step and use defvar-keymap.

2021-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Define calc-help-map in one step

	* lisp/calc/calc-ext.el (calc-help-map): Define in one step and
	convert to defvar-keymap.

2021-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Convert shortdoc-mode-map to defvar-keymap

	* lisp/emacs-lisp/shortdoc.el (shortdoc-mode-map): Convert to
	defvar-keymap.

2021-12-08  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	ce5bca4913 Document native-comp-async-report-warning-errors more
	1933cd5307 Doc fix; Epiphany has been renamed to GNOME Web
	b80d7568e4 * lisp/dired-aux.el (dired-check-process): Doc fix.  (Bug#...
	0f30227f97 ; * lisp/net/browse-url.el (browse-url-epiphany): Fix typo.
	d34009db66 Remove dead link from newsticker

	# Conflicts:
	#	lisp/net/browse-url.el

2021-12-08  Po Lu  <luangruo@yahoo.com>

	Fix coarse scroll deltas on macOS

	* src/nsterm.m (- mouseDown): Multiply deltas as appropriate.

2021-12-08  Po Lu  <luangruo@yahoo.com>

	Clear scroll interpolation when interpolated scroll completes

	* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): Set
	saved interpolation to nil upon completion.

2021-12-08  Po Lu  <luangruo@yahoo.com>

	Improve precision scroll interpolation

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-interpolation-total-time)
	(pixel-scroll-precision-interpolation-factor): Add better
	default values.

	(pixel-scroll-precision-interpolate): Save deltas and run loop
	inside `while-no-input' instead.

2021-12-08  Po Lu  <luangruo@yahoo.com>

	Fix last change

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-interpolation-total-time)
	(pixel-scroll-precision-interpolation-factor): Fix declared versions.

2021-12-08  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-08  Po Lu  <luangruo@yahoo.com>

	Make interpolated scrolling work better

	* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate):
	Stop using `while-no-input'.

2021-12-08  Po Lu  <luangruo@yahoo.com>

	Allow customizing precision scroll interpolation

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-interpolation-total-time)
	(pixel-scroll-precision-interpolation-factor): New user
	options.
	(pixel-scroll-precision-interpolate): Use these new options.

	(pixel-scroll-precision-mode): Set
	`make-cursor-line-fully-visible' to nil.

2021-12-07  Po Lu  <luangruo@yahoo.com>

	Send scroll stop events to xwidgets correctly

	* src/xterm.c (handle_one_xevent): Record stop events manually.

	* src/xwidget.h (xwidget_scroll):
	* src/xwidget.c (xwidget_scroll): New parameter `stop_p'.

2021-12-07  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	Convert etc-authors-mode-map to defvar-keymap

	* lisp/textmodes/etc-authors-mode.el (etc-authors-mode-map):
	Convert to defvar-keymap.

2021-12-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Pacify svg_load_image compiler warning

	* src/image.c (svg_load_image): Fix compiler warning from gcc
	(Debian 11.2.0-10).

2021-12-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Check decoding results in webp_load before using it

	* src/image.c (webp_load): Check whether we were able to decode
	the image before using it.

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Navigate from image display buffer

	* lisp/image-dired.el
	(image-dired-mark-thumb-original-file)
	(image-dired-unmark-thumb-original-file)
	(image-dired-flag-thumb-original-file)
	(image-dired-toggle-mark-thumb-original-file)
	(image-dired-unmark-all-marks)
	(image-dired-display-next-thumbnail-original)
	(image-dired-display-previous-thumbnail-original): Make commands
	usable from image-dired-display-image-mode.
	(image-dired-display-image-mode-map): Bind above commands.
	(image-dired--with-thumbnail-buffer): New macro.

2021-12-07  Miha Rihtaršič  <miha@kamnitnik.top>

	Improve yanking in the middle of comint process output

	* lisp/comint.el
	(comint--unmark-string-as-output): New function to remove unwanted
	properties from text yanked from comint buffers.

	(comint-mode): Use it as a 'filter-buffer-substring-function'.

	(comint-output-filter): Set 'insert-in-front-hooks' text property on
	process output such that text yanked by the user in the middle of
	process output is marked as process output (Bug#3735).

	(comint--mark-as-output): New function.
	(comint--mark-yanked-as-output): New function.

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	browse-url: Refactor code to find executable

	* lisp/net/browse-url.el (browse-url--find-executable): Extract from...
	(browse-url-firefox-program, browse-url-chrome-program)
	(browse-url-chromium-program): ...here.

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	browse-url: Remove support for Galeon

	* lisp/net/browse-url.el (browse-url-galeon-program)
	(browse-url-galeon-arguments)
	(browse-url-galeon-startup-arguments)
	(browse-url-galeon-new-window-is-tab, browse-url-galeon)
	(browse-url-galeon-sentinel): Delete, thus removing support for the long
	defunct Galeon web browser.
	* etc/NEWS: Announce its removal.

2021-12-07  Eli Zaretskii  <eliz@gnu.org>

	* etc/tutorials/TUTORIAL.he: Add section about package management.

2021-12-07  Eli Zaretskii  <eliz@gnu.org>

	Improve before-make-frame-hook and after-make-frame-functions docs.

	* lisp/frame.el (before-make-frame-hook)
	(after-make-frame-functions):
	* doc/lispref/frames.texi (Creating Frames): Mention that these
	functions will be run for the initial frame only if added to the
	hook in early-init file.  (Bug#38143)

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	browse-url: Remove support for Netscape

	* lisp/net/browse-url.el (browse-url-netscape-program)
	(browse-url-netscape-arguments)
	(browse-url-netscape-startup-arguments)
	(browse-url-netscape-new-window-is-tab)
	(browse-url-netscape-version, browse-url-netscape)
	(browse-url-netscape-sentinel, browse-url-netscape-reload)
	(browse-url-netscape-send): Delete, thus removing support for the long
	defunct Netscape web browser.
	* etc/NEWS: Announce its removal.

2021-12-07  Glenn Morris  <rgm@gnu.org>

	* doc/misc/eshell.texi (Built-ins): Fix xref.

2021-12-07  Michael Albinus  <michael.albinus@gmx.de>

	Make a more robust check in Tramp using scripts

	* lisp/net/tramp-sh.el (tramp-find-inline-encoding):
	Check, whether scripts in `tramp-remote-coding-commands' are
	expandable.

2021-12-07  Lele Gaifax  <lele@metapensiero.it>

	Add the new packages section to the Italian tutorial

	* etc/tutorials/TUTORIAL.it (INSTALLAZIONE DI ULTERIORI PACCHETTI):
	Translate from recently added INSTALLING PACKAGES section in the English
	version.  (Bug#52345)
	(CONCLUSIONI): Reword paragraph, to better convey the original intent.

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	Remove some unnecessary references to Emacs 22

	* lisp/cedet/semantic/fw.el:
	* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer):
	* lisp/emulation/viper-util.el (viper-frame-value):
	* lisp/mail/rmail.el (rmail-delete-headers):
	* lisp/mh-e/mh-e.el (mh-inc-spool-list): Remove some unnecessary
	references to Emacs 22.

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	* etc/tutorials/TUTORIAL: Say that there is usually a delete key.

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Fix behavior of slideshow command

	* lisp/image-dired.el (image-dired-slideshow-start): Fix behavior
	to match documentation.  Minor simplification of docstring.

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	Remove obsolete values from image-mode-auto-resize

	* lisp/image-mode.el (image-auto-resize): Remove obsolete options
	fit-height and fit-width.
	(image-transform-resize): Document that fit-height and fit-width
	are obsolete.

	(image-auto-resize-max-scale-percent): Fix defcustom const :tag.

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/view.el (view-mode-map): Convert to defvar-keymap.

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	Remove XEmacs compat code from strokes.el

	* lisp/strokes.el (strokes-mode): Remove XEmacs compat code;
	select-frame-hook does not exist in Emacs.

2021-12-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Add vc-git-stash-pop to vc-dir-git-mode

	* lisp/vc/vc-git.el (vc-dir-git-mode-map): Add vc-git-stash-pop
	(bug#52158).

2021-12-07  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	da23e607d3 Select the right buffer for event in context-menu function...

2021-12-07  Po Lu  <luangruo@yahoo.com>

	Cancel xwidget progress timer when buffer is killed

	* lisp/xwidget.el (xwidget-webkit-buffer-kill): New function.
	(xwidget-webkit-mode): Add `xwidget-webkit-buffer-kill' to
	`kill-buffer-hook'.  (bug#52344)

2021-12-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-06  Eric Abrahamsen  <eric@ericabrahamsen.net>

	When registering Gnus message ids, guard against no registry

	* lisp/gnus/gnus-registry.el (gnus-registry-register-message-ids):
	There are situations where this code is called without a full Gnus
	startup (eg, debbugs). If the registry doesn't exist, just skip this
	process.

2021-12-06  Stefan Kangas  <stefankangas@gmail.com>

	Silence byte-compiler in two tests

	* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
	* test/lisp/mail/mail-utils-tests.el
	(mail-utils-tests-mail-rfc822-time-zone): Silence byte-compiler.

2021-12-06  Stefan Kangas  <stefankangas@gmail.com>

	Remove spurious space in byte-compiler warning

	* lisp/emacs-lisp/bytecomp.el
	(byte-compile-docstring-length-warn): Remove spurious space in
	byte-compiler warning.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	("warn-wide-docstring-defun.el"): Update test.

2021-12-06  Stefan Kangas  <stefankangas@gmail.com>

	Assume unfilled byte-compiler warnings in tests

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp--define-warning-file-test): Remove workaround for filled
	byte-compilation warnings.  See Bug#52281.

2021-12-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix previous shr-parse-style change

	* lisp/net/shr.el (shr-parse-style): Fix previous clean-up here
	(which wasn't well thought through).

2021-12-06  Tassilo Horn  <tsdh@gnu.org>

	dired.texi: Document dired-create-destination-dirs-on-trailing-dirsep

	* doc/emacs/dired.texi (Operating on Files): Document new option
	dired-create-destination-dirs-on-trailing-dirsep.

2021-12-06  Eli Zaretskii  <eliz@gnu.org>

	Revert "Avoid small parasitic button on mode line"

	This reverts commit c9e901f4a612646be4ce06e1619897edfb073bf0.

	Turns out without that "ghost" button min-width doesn't work
	on the mode line at all...

2021-12-06  Michael Albinus  <michael.albinus@gmx.de>

	Tramp code cleanup

	* lisp/net/tramp.el (tramp-get-default-directory)
	(tramp-get-buffer-string): New defsubsts.
	(tramp-message, tramp-error-with-buffer)
	(tramp-file-name-for-operation, tramp-command-completion-p)
	(tramp-action-login, tramp-action-yesno, tramp-action-yn)
	(tramp-action-terminal, tramp-action-confirm-message)
	(tramp-wait-for-regexp, tramp-call-process)
	(tramp-call-process-region, tramp-read-passwd):
	* lisp/net/tramp-cmds.el (tramp-list-remote-buffers)
	(tramp-reporter-dump-variable):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-monitor-process-filter):
	* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory)
	(tramp-sh-handle-process-file, tramp-sh-handle-write-region)
	(tramp-sh-gio-monitor-process-filter):
	* lisp/net/tramp-smb.el (tramp-smb-action-set-acl):
	* lisp/net/tramp-sudoedit.el
	(tramp-sudoedit-handle-file-name-all-completions):
	* test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case)
	(tramp-test32-shell-command): Use them.

2021-12-06  Eli Zaretskii  <eliz@gnu.org>

	Fix mode-line display on TTY frames

	* lisp/bindings.el (mode-line-frame-control): Remove the leading
	'-' before '%F' on TTY frames.  It has no real purpose, and looks
	ugly nowadays, since it's preceded by a blank, due to the new
	min-width feature.

2021-12-06  Eli Zaretskii  <eliz@gnu.org>

	Avoid small parasitic button on mode line

	* lisp/bindings.el (mode-line-position): Remove stray space
	character, which caused a "ghost" button on the mode line.
	(Bug#52332)

2021-12-06  Yuuki Harano  <masm+github@masm11.me>

	* src/pgtkterm.c (x_set_parent_frame): Fix coding style

2021-12-06  Yuuki Harano  <masm+github@masm11.me>

	Fix SEGV crash by unref css provider too much

	I Got css provider from F, and was going to remove it from style
	context.  But between them, unhighlight was called when
	gtk_container_remove was called, and the css provider was already
	freed, so I can't use the css provider to remove it from style
	context.

	As a fix, I call gtk_container_remove after remove it.
	Also, I free a css provider set by unhighlight.

	* src/pgtkterm.c (x_set_parent_frame):

2021-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	Merge remote-tracking branch 'origin/emacs-28' into trunk

2021-12-06  Stefan Kangas  <stefankangas@gmail.com>

	* etc/tutorials/TUTORIAL.sv: Adjust to latest change in TUTORIAL.

2021-12-06  Daniel Fleischer  <danflscr@gmail.com>

	Add package management to tutorial and startup screen

	* etc/tutorials/TUTORIAL: Add section about package installation.
	* lisp/startup.el (fancy-startup-tail): Add button for
	package-list-packages.

	This was discussed in:
	https://lists.gnu.org/r/emacs-devel/2021-12/msg00079.html

2021-12-06  Stefan Kangas  <stefankangas@gmail.com>

	image.c: Remove some dead code

	* src/image.c (gui_put_x_image): Remove dead code, commented out since
	2004.

2021-12-06  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Update org-compat doc string

	* lisp/org/org-compat.el (file-attribute-modification-time):
	Update doc string to match that of builtin Emacs.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Fix minor clock skew issues

	* lisp/midnight.el (clean-buffer-list):
	* lisp/progmodes/vhdl-mode.el (vhdl-template-replace-header-keywords):
	* lisp/net/rcirc.el (rcirc-connect):
	Don’t assume that getting the current time twice in rapid
	succession will yield the same date and time.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid timestamp info loss in mh-alias-tstamp

	* lisp/mh-e/mh-alias.el (mh-alias-tstamp):
	Don’t lose subsecond info when setting mh-alias-tstamp.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify by using format-time-string

	* lisp/mail/sendmail.el (mail-do-fcc):
	* lisp/net/tramp.el (tramp-debug-message):
	Prefer format-time-string to doing time formatting by hand.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify RFC 5322 time zone generation

	* lisp/mail/feedmail.el (feedmail-rfc822-time-zone)
	(feedmail-rfc822-date, feedmail-default-message-id-generator):
	* lisp/mail/mail-utils.el (mail-rfc822-time-zone, mail-rfc822-date):
	* lisp/timezone.el (timezone-make-arpa-date):
	Simplify by using format-time-string with %z.

	* lisp/mail/feedmail.el (feedmail-rfc822-time-zone):
	* lisp/mail/mail-utils.el (mail-rfc822-time-zone):
	Mark these should-have-been-internal functions obsolete.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Fix image load timekeeping bug

	* lisp/image.el (image-animate-timeout): Fix bug that caused the
	local variable time-to-load-image to be practically zero, instead
	of the time it actually took to load the image.  I think
	this bug was introduced in 2013-02-16T03:29:30Z!rgm@gnu.org.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Use time-convert in with-decoded-time-value

	* lisp/calendar/time-date.el (with-decoded-time-value):
	Prefer time-convert to current-time on the off chance that code
	will use this obsolete macro even after current-time returns pairs.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify message-make-expires

	* lisp/gnus/message.el (message-make-expires):
	Use time-add instead of doing it by hand.  This also calculates the
	expiration time more accurately than the old code did.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify message-unique-id etc.

	* lisp/gnus/message.el (message-unique-id):
	* lisp/net/sasl.el (sasl-unique-id-function):
	Avoid unnecessary consing and reliance on internal timestamp
	format by using (time-convert nil 'integer) which typically does
	no consing, instead of using (current-time) and then ignoring
	the subsecond parts of the generated list.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer nil to (current-time) when either will do

	* lisp/emacs-lisp/timer.el (timer-event-handler, run-at-time):
	* lisp/gnus/gnus-score.el (gnus-score-date):
	* lisp/gnus/gnus-search.el (gnus-search-query-parse-date)
	(gnus-search-imap-handle-date):
	* lisp/gnus/gnus-sum.el (gnus-user-date)
	(gnus-summary-create-article):
	* lisp/image-dired.el (image-dired-create-thumb-1):
	* lisp/image/gravatar.el (gravatar-retrieve)
	(gravatar--prune-cache):
	* lisp/net/dbus.el (dbus-monitor-handler):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-set-file-times):
	* lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-times):
	* test/lisp/autorevert-tests.el (auto-revert--wait-for-revert)
	(auto-revert-tests--write-file, auto-revert-test--wait-for):
	* test/lisp/net/tramp-tests.el (tramp--test-print-duration):
	Prefer nil to (current-time) when either will do, as this avoids
	some consing.  Similarly, prefer omitting (current-time) arg
	when this is equivalent.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify cedet-utest-elapsed-time

	* test/manual/cedet/cedet-utests.el (cedet-utest-elapsed-time):
	Copy newer (circa-2011) implementation from elp.el, so that the
	code matches its documentation again.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Use time-equal-p to compare timestamps in tests

	* test/lisp/calendar/time-date-tests.el (test-days-to-time)
	(test-time-since): Use time-equal-p to compare timestamps,
	since the default form shouldn’t matter.

2021-12-06  Paul Eggert  <eggert@cs.ucla.edu>

	Add time-convert tests

	* test/src/timefns-tests.el (time-convert-forms): New test.

2021-12-06  NightMachinary  <rudiwillalwaysloveyou@gmail.com>

	Added dired-create-destination-dirs-on-trailing-dirsep

	* lisp/dired-aux.el
	(dired-create-destination-dirs-on-trailing-dirsep): New customization
	option.
	(dired-do-create-files): Use it.
	(dired-create-destination-dirs): Mention the new option in the
	docstring.

2021-12-06  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e3427faf55 Fix typos and improve consistency in ERC manual
	0bf10d5082 * test/Makefile.in (check-declare): Add missing --batch.
	34f5656137 Document the subtleties of the 'cursor' text property

2021-12-06  Po Lu  <luangruo@yahoo.com>

	Fix child frame crash on pgtk

	* src/gtkutil.c (xg_check_special_colors): Use `FRAME_WIDGET'
	on PGTK.

2021-12-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the Git stash commands available in vc-dir Git buffers

	* lisp/vc/vc-dir.el (vc-dir): Call the backend-specific minor mode
	if it exists.
	* lisp/vc/vc-git.el (vc-dir-git-mode-map): New map.
	(vc-dir-git-mode): New minor mode.

2021-12-06  Po Lu  <luangruo@yahoo.com>

	Fix coding style

	* src/pgtkfns.c (frame_geometry):
	* src/pgtkterm.c (x_set_parent_frame):
	(pgtk_text_icon):
	(key_release_event):
	(configure_event):
	(map_event):
	(window_state_event):
	(delete_event):
	(enter_notify_event): Fix coding style.

2021-12-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Make gnus-check-backend-function mode `debug-on-signal' friendly

	* lisp/gnus/gnus.el (gnus-check-backend-function): Allow running
	with `debug-on-signal'.

2021-12-05  Stefan Monnier  <monnier@iro.umontreal.ca>

	EIEIO: Remove redundant type info in help

	`C-h o` returned redundant info when used on EIEIO classes, listing
	the same thing both for the type name and for the constructor name.

	* lisp/emacs-lisp/eieio.el (help-fns-describe-function-functions):
	Remove special case for defclass constructors.
	* lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor): Declare it obsolete.

2021-12-05  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Use string-match-p in one case

	* lisp/image-dired.el (image-dired-get-thumbnail-image): Use
	string-match-p.

2021-12-05  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Don't disable mouse dragging

	* lisp/image-dired.el (image-dired-thumbnail-mode-map): Don't
	disable mouse dragging.  (Bug#52201)

2021-12-05  Po Lu  <luangruo@yahoo.com>

	Fix jittering when precision scrolling over images

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-initial-velocity-factor): Default to
	nil.
	(pixel-scroll-precision-scroll-down-page): Always set window
	start.

2021-12-05  Justin Schell  <justinmschell@gmail.com>  (tiny change)

	vc-git--program-version to support Git for macOS version string

	`git version` on macOS returns e.g., "git version 2.30.1 (Apple
	Git-130)" and `vc-git--program-version` currently returns "0" instead
	of "2.30.1".

	* lisp/vc/vc-git.el (vc-git--program-version): Ignore text after
	the version number when parsing git versions (bug#52172).

2021-12-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't fill byte-compilation warnings in batch mode

	* lisp/emacs-lisp/warnings.el (display-warning): Don't break up
	byte-compilation into several lines when in batch mode, because
	that makes it difficult for some tools to parse them (bug#52281).

2021-12-05  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Audit `string-match' usage in shr.el

	* lisp/net/shr.el (shr-descend):
	(shr-insert):
	(shr-expand-url):
	(shr-image-from-data):
	(shr-dom-print):
	(shr-parse-style):
	(shr-tag-object):
	(shr-tag-img):
	(shr-render-td-1): Prefer string-match-p and string-search over
	string-match where possible.

2021-12-05  dickmao  <dick.r.chiang@gmail.com>

	Add workaround to compilation warning in gcc 10.x in image.c

	* src/image.c (webp_load): Work around a (wrong) compiler warning
	in gcc 10.x (bug#52276).

2021-12-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Update comment about `declare-function'

	* lisp/subr.el (declare-function): Fix comment --
	`byte-compile-declare-function' doesn't exist.

2021-12-05  YugaEgo  <yet@ego.team>

	* lisp/info.el (info-menu-star): Improve documentation

	* lisp/info.el (info-menu-star): Improve the doc string (bug#52315).

2021-12-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix wording in eieio.texi (Generics)

	* doc/misc/eieio.texi (Generics): Fix wording in paragraph
	(bug#52317).

2021-12-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix regression introduced by previous context-menu-map change

	* lisp/mouse.el (context-menu-map): Make the context mode work
	with flyspell again  (bug#52237).

2021-12-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Clarify Creating Frames documentation"

	This reverts commit 5d7eb2979bc7eec01cff7e7908dbbd3edb38ea0c.

	The new documentation was incorrect.

2021-12-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Improve before-make-frame-hook and after-make-frame-functions docs"

	This reverts commit 7842a606b76dfabd1540da1c130728064e8f02ed.

	The new documentation was incorrect.

2021-12-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix fancy-about-screen point placement

	* lisp/startup.el (fancy-about-screen): Make point placement more
	resilient (bug#43636).

2021-12-05  Stefan Kangas  <stefankangas@gmail.com>

	Light copy-edits to recent additions to ERC manual

	* doc/misc/erc.texi (Introduction, Getting Started): Light copy-edits.

2021-12-05  Stefan Kangas  <stefankangas@gmail.com>

	Remove no-op calls to decode-char with 'ucs' arg

	* lisp/gnus/mm-util.el (mm-ucs-to-char):
	* lisp/language/hanja-util.el (hangul-to-hanja-char):
	* lisp/leim/quail/hangul.el (hangul3-input-method-internal)
	(hangul390-input-method-internal):
	* lisp/nxml/rng-cmpct.el (rng-c-process-escapes):
	* lisp/nxml/xsd-regexp.el (xsdre-compile-single-char)
	(xsdre-range-list-to-char-alternative):
	* lisp/xml.el (xml-parse-string, xml--entity-replacement-text)
	(xml-substitute-special): Remove calls to decode-char where first
	argument is 'ucs'; that is now a no-op.  Discussed in Bug#52263.

	* lisp/nxml/xmltok.el (xmltok-unicode-to-char): Make into obsolete
	function alias for 'identity'.  Update single caller.

2021-12-05  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Use gnus-error to report mail-source failures

	* lisp/gnus/mail-source.el (mail-source-fetch): Instead of querying
	the user on mail sources errors -- in effect asking "do you want to
	continue, or halt the process?" -- log the error with `gnus-error',
	severity 5. The query didn't provide any meaningful control; error
	reporting is all that's needed.
	(mail-source-ignore-errors): Obsolete this option; users can see the
	error or not by configuring `gnus-verbose'.
	* doc/misc/gnus.texi (Mail Source Customization): Remove mention of
	the above option from the manual.

2021-12-05  Yuuki Harano  <masm+github@masm11.me>

	* src/frame.c (gui_set_border_width): Revert confused changes

2021-12-05  Eli Zaretskii  <eliz@gnu.org>

	Fix out-of-bounds access in xdisp.c

	* src/xdisp.c (produce_stretch_glyph): Avoid indexing it->stack
	with a negative index.  Reported by Po Lu <luangruo@yahoo.com>.

2021-12-05  Po Lu  <luangruo@yahoo.com>

	Interpolate large pixel scrolls

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-large-scroll-height): New user option.
	(pixel-scroll-precision-interpolate): New function.
	(pixel-scroll-precision): Interpolate scrolls under some
	circumstances.

2021-12-05  Stefan Kangas  <stefankangas@gmail.com>

	Silence byte-compiler in generator-tests.el

	* test/lisp/emacs-lisp/generator-tests.el (cps-let*-shadow-empty)
	(cps-let-shadow-empty, cps-let*-parallel): Silence byte-compiler.

2021-12-05  Stefan Kangas  <stefankangas@gmail.com>

	Silence warnings about testing obsolete functions and macros

	* test/lisp/emacs-lisp/cl-generic-tests.el:
	* test/lisp/emacs-lisp/edebug-tests.el:
	* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Silence
	byte-compiler warnings about testing obsolete functions and macros.

2021-12-05  Stefan Kangas  <stefankangas@gmail.com>

	Remove hacks for broken `with-suppressed-warnings'

	* test/lisp/obsolete/cl-tests.el (labels-function-quoting):
	* test/lisp/tar-mode-tests.el (tar-mode-test-tar-grind-file-mode):
	Remove hack for broken `with-suppressed-warnings'.

2021-12-05  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	c086358574 Update to Org 9.5.1-15-gdb4805
	fef3e60061 * lisp/emacs-lisp/edebug.el (edebug-eval-defun): Minor doc...
	a1e30e4106 ; Fix most remaining AUTHORS warnings
	f3e6a432c5 ; * doc/misc/efaq.texi (New in Emacs 28): Add more news.
	00236cc802 Fix the enumeration values returned by 'try_scrolling'

2021-12-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove hack from seq-tests.el for broken `with-suppressed-warnings'

	* test/lisp/emacs-lisp/seq-tests.el: `with-suppressed-warnings'
	now works better in erf-deftests, so remove hack that works around
	it (bug#36568).

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve before-make-frame-hook and after-make-frame-functions docs

	* lisp/frame.el (before-make-frame-hook):
	(after-make-frame-functions): Note when the functions are run.

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify Creating Frames documentation

	* doc/lispref/frames.texi (Creating Frames): Remove misleading
	explanation -- even if the hooks are set, they won't be run
	(bug#38143).

2021-12-04  Po Lu  <luangruo@yahoo.com>

	Fix tty mouse wheel on window systems other than X

	* lisp/mwheel.el (mouse-wheel-down-alternate-event)
	(mouse-wheel-up-alternate-event)
	(mouse-wheel-left-alternate-event)
	(mouse-wheel-right-alternate-event): Set appropriately for
	non-X systems.

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make help--describe-command more robust

	* lisp/help.el (help--describe-command): `help-function' buttons
	are defined in help-mode.el, so it might not exist yet when
	calling `documentation' directly (bug#52291).

2021-12-04  Christer Enfors  <christer.enfors@gmail.com>  (tiny change)

	Add IRC introduction to the ERC manual

	* doc/misc/erc.texi (Getting Started): Mention libera.char (bug#52287).
	(Introduction): Explain what IRC is.

2021-12-04  Po Lu  <luangruo@yahoo.com>

	Make pixel scrolling through images less jumpy

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page): Improve detection of
	situations where vscroll must directly be set.

2021-12-04  Earl Hyatt  <okamsn@protonmail.com>

	Update the Info documentation of Eshell's built-in commands

	* doc/misc/eshell.texi (Built-in commands): Add the remaining
	built-in Eshell commands to the list of built-ins.  Expand some of
	the descriptions and mention user options affecting command
	behavior.  Sort these commands in alphabetical order (bug#52289).

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make package-dir-info more resilient

	* lisp/emacs-lisp/package.el (package-dir-info): Check that the
	file exists before using it (bug#41489).

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak fancy-about-text

	* lisp/startup.el (fancy-about-text): Mention that Emacs is an
	editor, because people don't know that (bug#43636).

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fill Emacs version on about screen

	* lisp/startup.el (fancy-about-text): Fill the Emacs version,
	since it's too long these days.

2021-12-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Further gnus-inews-insert-gcc fixes

	* lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc): Use a single
	comma to separate groups, since that's what the splitter expects
	(bug#52274).

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Avoid having gud bug out if `C-x C-a' has been bound

	* lisp/progmodes/gdb-mi.el (gud-global-map): Use gud-global-map.
	* lisp/progmodes/gud.el (gud-global-map): Define a map instead of
	assuming that `C-x C-a' is undefined (bug#6035).
	(gud-def): Use the map.

2021-12-04  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Don't swallow gnus-search errors when creating nnselect groups

	* lisp/gnus/gnus-search.el (gnus-search-run-query): Modify
	condition-case to re-signal any gnus-search related errors; the user
	should see them.
	(gnus-search-error): Define a new parent error for all gnus-search
	errors.

2021-12-04  Juri Linkov  <juri@linkov.net>

	* lisp/isearch.el (isearch-delete-char): Reopen hidden overlays (bug#52248).

	(isearch-filter-visible): Move text-property-not-all higher
	to not call isearch-range-invisible on inhibit-isearch text.
	Remove min/max since arguments are always in the right order.

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix pixel-fill--fill-line infloop for certain unbreakable lines

	* lisp/textmodes/pixel-fill.el (pixel-fill--fill-line): Fix
	infloops for certain line widths (bug#52271).

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a comma between groups in gnus-inews-insert-gcc

	* lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc): Insert a comma
	between group names to get more mail-like syntax (bug#52274).

2021-12-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve bookmark-maybe-historicize-string doc string

	* lisp/bookmark.el (bookmark-maybe-historicize-string): Clarify
	that this isn't about menus (but calls from bmenu) (bug#12504).

2021-12-04  Michael Albinus  <michael.albinus@gmx.de>

	Add ".crate" to Tramp archive file suffixes.

	* doc/misc/tramp.texi (Archive file names):
	* lisp/net/tramp-archive.el (tramp-archive-suffixes): Add ".crate".

2021-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	eieio-core.el: Allow assignment to cl-structs through `slot-value`

	* lisp/emacs-lisp/eieio-core.el (eieio--validate-slot-value):
	Obey the `:read-only` property of the slot.
	(eieio-oset): Allow use on cl-structs as well.
	(eieio-read-only): New error.

	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (eieio-test--struct):
	Make the last field read-only.
	(eieio-test-defstruct-slot-value): Test that cl-struct slots can be
	assigned via `slot-value`.

2021-12-04  Paul Eggert  <eggert@cs.ucla.edu>

	Fix (date-to-time "2021-12-04")

	This should complete the fix for Bug#52209.
	* lisp/calendar/time-date.el (date-to-time): Apply
	decoded-time-set-defaults only to the output of (parse-time-string
	date), and only when the output has a year (to avoid confusion
	when dates lack years).  There is no point applying it after
	timezone-make-date-arpa-standard since the latter fills in all the
	blanks.  And the former code mistakenly called encode-time on an
	already-encoded time.  This goes back to the code a couple of days
	ago, except with changed behavior (to fix Bug#52209) only when
	timezone-make-date-arpa-standard is not called.
	* test/lisp/calendar/time-date-tests.el (test-date-to-time)
	(test-days-between): New tests.

2021-12-04  Michael Albinus  <michael.albinus@gmx.de>

	Further changes on directory summary line in Tramp

	* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-system-info):
	Do not assume 0 in case of missing information.

	* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
	* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
	Revert previous change, it doesn't fly.

2021-12-04  Stefan Kangas  <stefankangas@gmail.com>

	Silence byte-compiler in some tests

	* test/lisp/dired-tests.el:
	* test/lisp/emacs-lisp/cl-macs-tests.el:
	* test/lisp/emacs-lisp/derived-tests.el:
	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el:
	* test/lisp/emacs-lisp/generator-tests.el:
	* test/lisp/emacs-lisp/lisp-tests.el:
	* test/lisp/emacs-lisp/seq-tests.el (test-seq-let)
	(test-seq-setq):
	* test/lisp/emacs-lisp/subr-x-tests.el (subr-x-test-if-let*-false)
	(subr-x-test-if-let*-and-laziness-is-preserved)
	(subr-x-test-when-let*-false)
	(subr-x-test-when-let*-and-laziness-is-preserved):
	* test/lisp/emacs-lisp/timer-tests.el
	(timer-tests-debug-timer-check):
	* test/lisp/format-spec-tests.el (format-spec-do-flags-truncate)
	(format-spec-do-flags-pad):
	* test/lisp/ls-lisp-tests.el (ls-lisp-test-bug27762):
	* test/lisp/obsolete/cl-tests.el (labels-function-quoting):
	* test/lisp/progmodes/elisp-mode-tests.el:
	* test/lisp/replace-tests.el (replace-regexp-bug45973):
	* test/lisp/ses-tests.el:
	* test/lisp/subr-tests.el:
	* test/lisp/tar-mode-tests.el (tar-mode-test-tar-grind-file-mode):
	* test/src/data-tests.el (data-tests--set-default-per-buffer):
	* test/src/search-tests.el
	(test-replace-match-modification-hooks): Silence byte-compiler.

2021-12-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-04  Po Lu  <luangruo@yahoo.com>

	Fix double buffering on pgtk

	* src/pgtkterm.c (pgtk_update_end): Stop flipping buffers here.
	(pgtk_frame_up_to_date)
	(pgtk_buffer_flipping_unblocked_hook): New function.

	(pgtk_create_terminal): Attach new hooks.

	(leave_notify_event): Clear mouse face.

2021-12-04  Po Lu  <luangruo@yahoo.com>

	Fix coding style of a recent change

	* src/pgtkfns.c (update_watched_scale_factor): Fix coding style.

2021-12-04  Eli Zaretskii  <eliz@gnu.org>

	Fix the MinGW build broken by recent changes in image.c

	* src/image.c (rsvg_handle_get_intrinsic_size_in_pixels)
	[WINDOWSNT]: Fix prototype.  (Bug#44655)

2021-12-04  Alan Third  <alan@idiocy.org>

	Make use of Trash on macOS (bug#21340)

	* src/nsfns.m (Fsystem_move_file_to_trash): New function.

2021-12-04  Eli Zaretskii  <eliz@gnu.org>

	Yet another place inside redisplay_window to prevent quitting

	* src/xdisp.c (handle_single_display_spec): Inhibit quitting
	around the call to 'lookup_derived_face' (which can QUIT).
	(Bug#44448)

2021-12-04  Eli Zaretskii  <eliz@gnu.org>

	Fix dependencies for files in the 'nt' subdirectory

	* Makefile.in ($(NTDIR)): If non-empty, depend on 'lib'.  That's
	because some files in nt/ include generated Gnulib headers.

2021-12-04  Yuuki Harano  <masm+github@masm11.me>

	Keep track of scale factor by atimer and recreate cairo_surface_t

	Otherwise texts become blurry when a frame moved from 1x monitor
	to 2x monitor.  I need GTK's such signal, but there isn't. Instead
	I watch frame's monitor's scale factor periodically.  We can see
	blurriness for a short time, but it is gone soon.

	* src/pgtkfns.c (update_watched_scale_factor): New function to check
	scale factor and recreate cairo_surface_t if changed.
	* src/pgtkfns.c (Fx_create_frame): Initialize atimer.
	(Fx_show_tip): Add an argument.
	* src/pgtkterm.c (FRAME_CR_SURFACE_DESIRED_WIDTH): Move macros to pgtkterm.h
	(x_free_frame_resources): Free atimer.
	(size_allocate): Add an argument.
	(pgtk_cr_update_surface_desired_size): Add an argument. Recreate if it
	is true.
	* src/pgtkterm.h (struct pgtk_output): New members.
	(FRAME_CR_SURFACE_DESIRED_HEIGHT): Move macros from pgtkterm.c

2021-12-04  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-04  Po Lu  <luangruo@yahoo.com>

	Make precision pixel scrolling work in an hscrolled window

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page)
	(pixel-scroll-precision-scroll-up-page): Use beginning of visual
	line as window start if hscrolled.
	(pixel-scroll-precision): Don't delegate to mwheel-scroll if
	window is hscrolled.

2021-12-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	745a732ae4 ; Further author fixes in authors.el
	bef17bca21 * src/dosfns.c (Fint86): Doc fix; don't use obsolete names.
	bc55dc04af * doc/misc/erc.texi (Keystroke Summary): Fix doc for TAB.
	ef4d216eb3 Remove reference to variable obsolete since 24.1
	7282e492d5 * doc/misc/efaq.texi (New in Emacs 28): New node.
	eafcccd38f ; FAQ: Normalize references to the NEWS.NN file
	c006c490eb ; * doc/misc/efaq.texi (Latest version of Emacs): Update v...
	9fbc4fa0e7 Add Tramp version integrated in Emacs 28.1

2021-12-04  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	5d6f828799 Unbreak build after 9c222b9c1a7f91497a37567b4d7de3a511fff069.

2021-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/minibuffer.el: Don't return a boundary outside its arg

	* lisp/minibuffer.el (completion-table-subvert): Fix out of string
	start boundary for the odd case where `string` is shorter than `s1`.

2021-12-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the error message in epa-display-error more helpful

	* lisp/epa.el (epa-display-error): Output a more helpful error
	message when reading a keyring file (bug#12923).

2021-12-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix keymap-lookup implementation

	* lisp/keymap.el (keymap-lookup): Make this actually work for
	looking up keys.

2021-12-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix highlighting of "Exit*" phrases in f90-mode

	* lisp/progmodes/f90.el (f90-font-lock-keywords-2): Don't
	highlight phrases that start with "Exit" as an exit statement
	(bug#14442).

2021-12-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `mouse-1' restart the cua-rect rectangle

	* lisp/emulation/cua-rect.el (cua-mouse-set-rectangle-mark):
	Restart the rectangle on mouse-1 (bug#51557).

2021-12-03  Po Lu  <luangruo@yahoo.com>

	Make last change work for deltas that are multiples of max-height

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page)
	(pixel-scroll-precision-scroll-up-page): Use `max-height' that
	is slightly less than the text height of the window.

2021-12-03  Po Lu  <luangruo@yahoo.com>

	Make it work to pixel scroll by deltas larger than the window

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-scroll-down-page):
	(pixel-scroll-precision-scroll-up-page): New functions.

	(pixel-scroll-precision-scroll-up)
	(pixel-scroll-precision-scroll-down): Make it safe to scroll
	by deltas larger than the current window.

2021-12-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that MAIN_FIRST have finished compilation before doing the rest

	* lisp/Makefile.in (main-first): Ensure that we're done with the
	main bits before starting on the rest.
	(GREP_OPTIONS): Depend on main-first.
	(MAIN_FIRST): Compile cconv.el before c-by.el (bug#8764).

2021-12-03  Paul Eggert  <eggert@cs.ucla.edu>

	Port to Tiny C on x86-64

	This allows Emacs to build on Ubuntu 21.10 x86-64 with
	‘./configure --without-modules CC=tcc’.
	* configure.ac (GC_SETJMP_WORKS):
	Accept __x86_64__ as an alias for __amd64__.
	* src/lisp.h (alignas): Provide a no-op substitute.

2021-12-03  Eli Zaretskii  <eliz@gnu.org>

	Revert "emacs-lisp-mode: Use error face for "/d" indicator"

	This reverts commit ddc875d9f75bdd1d5dda6a721489f43317b0f8b5.

	I disagree with the need to make it more prominent than the
	warning face.  The warning face is prominent enough.  We
	never decided to annoy people like that.

2021-12-03  Eli Zaretskii  <eliz@gnu.org>

	Add more dired-x tests

	* test/lisp/dired-x-tests.el (dired-x--string-to-number): Add more
	tests with various thousands separators.

2021-12-03  Stefan Kangas  <stefankangas@gmail.com>

	Remove some more items obsolete since Emacs 23

	* lisp/emacs-lisp/shadow.el (find-emacs-lisp-shadows):
	* lisp/net/newst-backend.el (newsticker-cache-filename)
	(newsticker--cache-save-version1, newsticker--cache-update)
	(newsticker--cache-read-version1):
	* lisp/obsolete/vc-arch.el (vc-arch-command): Remove items
	obsolete since Emacs 23.

2021-12-03  Stefan Kangas  <stefankangas@gmail.com>

	Remove two functions obsolete since Emacs 23

	* lisp/international/mule-cmds.el (unify-8859-on-encoding-mode)
	(unify-8859-on-decoding-mode): Remove functions obsolete since
	Emacs 23.
	* lisp/nxml/xsd-regexp.el: Doc fix.

2021-12-03  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer rsvg_handle_get_intrinsic_size_in_pixels

	Use rsvg_handle_get_intrinsic_size_in_pixels if available,
	as this is simpler and better than what we were doing.
	From a comment by by Alan Third (Bug#44655#56).
	* src/image.c (init_svg_functions): Arrange for the new function.
	(svg_load_image): Prefer the results of
	rsvg_handle_get_intrinsic_size_in_pixels if available.

2021-12-03  Paul Eggert  <eggert@cs.ucla.edu>

	Improve overflow checking in svg_load_image

	* src/image.c: Include math.h, for lrint.
	(scale_image_size, compute_image_size): Use ‘double’, not ‘int’
	for image size args, since librsvg uses ‘double’ for pixel counts.
	(scale_image_size): Use ceil instead of rounding, to avoid
	discarding fractional SVG pixels.  Divisor and multiplier are now
	double instead of int, for better portability to librsvg
	functions with fractional pixel sizes.
	(image_get_dimension, compute_image_size, svg_load_image):
	Be more careful about ignoring, rejecting or clipping scale
	factors or sizes that are out of integer range.
	(compute_image_size): Don’t bother to calculate :max-width if
	:width is specified, and likewise for :max-height and :height.

2021-12-03  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify svg_load_image

	* src/image.c (svg_load_image): Simplify slightly.

2021-12-03  Paul Eggert  <eggert@cs.ucla.edu>

	More-robust svg_load_image fallback

	Suggested by Alan Third (Bug#44655#56).
	* src/image.c (svg_load_image): Fall back on
	rsvg_handle_get_geometry_for_layer if the
	rsvg_handle_get_intrinsic_dimensions computations yielded unusable
	viewbox width and height, instead of falling back only if
	rsvg_handle_get_intrinsic_dimensions did not report image width
	and height, or did not report a viewbox.

2021-12-03  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Use gnus-message instead of plain message in gnus-search

	bug#51778

	* lisp/gnus/gnus-search.el: All messaging should be done via
	`gnus-message'.

2021-12-03  Koen van Greevenbroek  <koen_devel@posteo.net>  (tiny change)

	Fix a compilation warning in pgtkterm.c

	* src/pgtkterm.c (set_fullscreen_state): Fix a compilation warning
	(bug#52260).

2021-12-03  Tor Kringeland  <tor.a.s.kringeland@ntnu.no>  (tiny change)

	Add a docstring to `iso-transl-set-language'

	* lisp/international/iso-transl.el: Document
	`iso-transl-set-language' (bug#52261).

2021-12-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Move 'C-x 8 .' to 'C-x 8 . .'

	* lisp/international/iso-transl.el (iso-transl-char-map): Move
	'C-x 8 .' to 'C-x 8 . .' and add ż.

2021-12-03  Tor Kringeland  <tor.a.s.kringeland@ntnu.no>  (tiny change)

	Add support for some Polish characters with `C-x 8'

	* lisp/international/iso-transl.el: Add support for some Polish
	characters (bug#52173).

2021-12-03  Katsumi Yamaoka  <yamaoka@jpl.org>

	Fix regression introduced by the previous date-to-time change

	* lisp/calendar/time-date.el (date-to-time): The function needs to
	test if `parse-time-string' returns a valid data as the old
	version did it with the help of `encode-time' (bug#52209).

2021-12-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify the run-at-time documentation about "integral multiple"

	* lisp/emacs-lisp/timer.el (run-at-time):
	* doc/lispref/os.texi (Timers): Explain what "integral multiple"
	really means.

2021-12-03  Jim Porter  <jporterbugs@gmail.com>

	Remove separators at the beginning and end of the context menu

	* lisp/mouse.el (context-menu-map): Remove beginning/end
	separators (bug#52237).

2021-12-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve how dired-mark-sexp interprets file sizes in non-C locales

	* lisp/dired-x.el (dired-x--string-to-number): Try to understand
	localized numbers (with "." separators or the like) (bug#23373).

2021-12-03  Stefan Kangas  <stefankangas@gmail.com>

	emacs-lisp-mode: Use error face for "/d" indicator

	* lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Use 'error' face for
	the dynamic scoping ("/d") indicator in the mode line to make it stand
	out more.

2021-12-03  Stefan Kangas  <stefankangas@gmail.com>

	Don't support obsolete sregex syntax in re-builder

	* lisp/emacs-lisp/re-builder.el (reb-lisp-mode)
	(reb-lisp-syntax-p, reb-change-syntax, reb-cook-regexp): Remove final
	remaining references to the long obsolete sregex syntax.

2021-12-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in NEWS about 'write-file'

2021-12-03  Michael Albinus  <michael.albinus@gmx.de>

	Fix dired--insert-disk-space

	* lisp/dired.el (dired--insert-disk-space): Handle case
	`get-free-disk-space' returns nil.

2021-12-03  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/image.el (image): Add :prefix and :link.

2021-12-03  Stefan Kangas  <stefankangas@gmail.com>

	image-mode: Advertise viewing as text less eagerly

	* lisp/image-mode.el (image-text-based-formats): New defcustom.
	(image-mode--setup-mode): Don't show message to show image as text
	unless it is a text based image format.  Don't mention key binding
	for editing as hex.  (Bug#51961)
	(image-mode-as-text): Don't mention key binding for editing as hex.
	(image-mode-as-hex): Minor cleanup.

2021-12-03  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-macs.el (natnum): Fix typo

	* lisp/emacs-lisp/cl-macs.el (natnum): Define it as a type

2021-12-03  Michael Albinus  <michael.albinus@gmx.de>

	Adapt directory summary line handling in Tramp

	* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
	* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
	Do not add or modify summary line when `dired-free-space' is bound.

2021-12-03  Eli Zaretskii  <eliz@gnu.org>

	Revert "Support display of non-ASCII characters with aligned columns"

	This reverts commit 608267c71e11da9c757c269a5e22e62ef04d0bfe.

2021-12-03  Po Lu  <luangruo@yahoo.com>

	Send scroll stop events to xwidgets when built with XInput 2

	* src/xwidget.c (xwidget_scroll): Set xg_event->scroll.is_stop
	when appropriate.

2021-12-03  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-03  Po Lu  <luangruo@yahoo.com>

	Improve velocity calculation in momentum scrolling

	* lisp/pixel-scroll.el
	(pixel-scroll-precision-momentum-factor): Remove option.
	(pixel-scroll-precision-initial-velocity-factor)
	(pixel-scroll-precision-momentum-min-velocity): New user
	options.
	(pixel-scroll-accumulate-velocity): Clear velocity ring
	if sign is different.
	(pixel-scroll-calculate-velocity): Use current time.
	(pixel-scroll-start-momentum): Use better algorithm.

2021-12-03  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	9c222b9c1a Port to C compilers that lack size-0 arrays
	fed35a8951 Port emacsclient to Solaris 10
	f35d6a9c73 * CONTRIBUTE: Improve commit message instructions
	e0ee1d003a Work around IBM XL C compiler bug
	6b99b6eb8b * admin/make-tarball.txt: Various clarifications.
	bbf4140091 * admin/diff-tar-files: Don't assume .tar.gz.
	0a50ad11db * lisp/tab-bar.el (tab-bar-close-other-tabs): Fix regression.

2021-12-02  Po Lu  <luangruo@yahoo.com>

	Generate touch-end events on pgtk

	* src/pgtkterm.c (scroll_event): Generate touch end events.

2021-12-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-02  Po Lu  <luangruo@yahoo.com>

	Make momentum scrolling much nicer

	* lisp/pixel-scroll.el (pixel-scroll-precision-momentum-tick):
	Set default value to 0.01.
	(pixel-scroll-precision-momentum-seconds): New user option.
	(pixel-scroll-start-momentum): Improvements to momentum
	algorithm.

2021-12-02  Po Lu  <luangruo@yahoo.com>

	* lisp/pixel-scroll.el (pixel-scroll-start-momentum): Fix algorithm.

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-02  Michael Albinus  <michael.albinus@gmx.de>

	* etc/NEWS: Mention change in `insert-directory' derivates.  Fix typos.

2021-12-02  Eli Zaretskii  <eliz@gnu.org>

	Support display of non-ASCII characters with aligned columns

	* src/xdisp.c (get_normal_width): New function.
	(gui_produce_glyphs): Use 'get_normal_width' to widen on display
	characters whose width is not an integral multiple of the
	"standard" width.
	(syms_of_xdisp) <align-columns-display>: New boolean variable.

2021-12-02  Stefan Kangas  <stefankangas@gmail.com>

	update_autogen: Improve error handling slightly

	* admin/update_autogen: Check exit status of cd.  Use single
	quoting for trap condition.

2021-12-02  Stefan Kangas  <stefankangas@gmail.com>

	update_autogen: Remove unused -H flag

	We now update ChangeLog files only when preparing a new release, so
	this flag is never used.  Keeping it risks confusing more than it
	helps.
	* admin/update_autogen: Remove the -H flag as it is no longer used.

2021-12-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	f38dfa56a0 ; Update loaddefs files.
	b3d4b18507 ; make change-history-commit
	334ff0232e * lisp/repeat.el: Use same logic for repeat-check-key and ...
	8230a47ecc * lisp/help.el (help--analyze-key): Prefer posn-set-point ...

	# Conflicts:
	#	lisp/ldefs-boot.el

2021-12-02  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	aa1d7dd867 ; * etc/AUTHORS: Update.
	6294e60205 ; * admin/authors.el (authors-aliases): More fixes.
	40fc31ea28 ; * ChangeLog.3: Update.
	2be090d5d3 ; * ChangeLog.3: Minor fixes.
	9963b11bf7 ; * admin/authors.el (authors-aliases): Further updates.
	50b40e1d4f ; * lisp/org/ob-julia.el: Fix Author header for authors.el.
	84166ea2e6 CC Mode: Recognize "struct foo {" as introducing a type de...

2021-12-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix characters.el build issue

	* lisp/international/characters.el
	(glyphless--bidi-control-characters): Don't use names here,
	because it's too early (bug#52240).

2021-12-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix previous macroexp--warn-wrap change

	* lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap): Don't call
	byte-compile-warning-enabled-p with zero parameters.

2021-12-02  Filipp Gunbin  <fgunbin@fastmail.fm>

	* lisp/gnus/gnus-art.el (gnus--variable-pitch-p): Don't error out if face nil

2021-12-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-c C-w' copy the executable bits to the new file

	* lisp/files.el (write-file): When visiting an executable file,
	make the new file executable, too (bug#18915).

2021-12-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new variable 'process-error-pause-time'

	* doc/lispref/processes.texi (Asynchronous Processes): Document it.
	* lisp/cus-start.el (standard): Customize.

	* src/process.c (read_process_output_error_handler)
	(exec_sentinel_error_handler): Use it.
	(syms_of_process): New variable process-error-pause-time (bug#19457).

2021-12-02  Po Lu  <luangruo@yahoo.com>

	Improve momentum scrolling algorithm

	* lisp/pixel-scroll.el (pixel-scroll-precision-momentum-tick):
	(pixel-scroll-precision-momentum-factor): New user options.

	(pixel-scroll-kinetic-state, pixel-scroll-accumulate-velocity):
	Set scroll momentum ring size to 10.

	(pixel-scroll-start-momentum): Improve algorithm.

2021-12-02  Eli Zaretskii  <eliz@gnu.org>

	Fix display of free disk space in Dired

	* lisp/dired.el (dired--insert-disk-space): Fix 'first' display on
	MS-Windows.
	(dired-free-space): Clarify the meaning of 'first'.

2021-12-02  Eli Zaretskii  <eliz@gnu.org>

	Fix recent changes related to 'glyphless-display-mode'

	* lisp/textmodes/glyphless-mode.el (glyphless-mode-types): Fix
	spelling of "bidirectional".
	* lisp/international/characters.el (char-acronym-table): Fix
	acronyms for LRI and RLI: use their accepted shorthands.
	(glyphless-char-display-control): Fix spelling of doc string.

	* doc/lispref/display.texi (Glyphless Chars): Fix spelling and add
	a cross-reference.

2021-12-02  Po Lu  <luangruo@yahoo.com>

	Get rid of duplicate pgtk function

	* src/pgtkfns.c (Fpgtk_popup_font_panel): Remove function.
	(syms_of_pgtkfns): Get rid of removed subr.

2021-12-02  Po Lu  <luangruo@yahoo.com>

	Documentation fixes for pgtk port

	* doc/lispref/display.texi (Defining Faces):
	* doc/lispref/frames.texi (Multiple Terminals): Add references
	to the `pgtk' terminal type.

2021-12-02  Po Lu  <luangruo@yahoo.com>

	Fix `menu-set-font' on pgtk

	* src/pgtkfns.c (Fx_select_font): New function.
	(syms_of_pgtkfns): Define new subr.

2021-12-02  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Make dired-virtual doc string less confusing

	* lisp/dired-x.el (dired-virtual): Make the doc string less
	confusing (bug#20992).

2021-12-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Add `cl-constantly' function

	* lisp/emacs-lisp/cl-lib.el (cl-constantly): Add Common Lisp
	function missing (bug#21584).

2021-12-02  Jim Porter  <jporterbugs@gmail.com>

	Ensure there are no duplicate separators when creating a context menu

	Previously, if there were three or more consecutive menu separators,
	not all of them would be removed.

	* lisp/mouse.el (context-menu-map): Ensure no duplicate separators
	(bug#52237).

2021-12-02  Daniel Fleischer  <danflscr@gmail.com>

	browse-url-button-regexp: Recognize gemini: links

	Gemini is a relatively new text-based web protocol, similar to
	gopher. There's the "elpher" package to browse gopher and gemini
	pages. Adding it to the regexp will make Emacs be aware of gemini links,
	e.g. in ERC.

	* lisp/net/browse-url.el (browse-url-button-regexp): Add support
	for the gemini: URL type.

2021-12-02  Michael Levine  <melevine45@gmail.com>

	Fix usage of deprecated syntax in some cedet tests

	* test/lisp/cedet/srecode/fields-tests.el
	(srecode-field-utest-impl): Fix deprecated syntax.

2021-12-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a bidi-control target for `glyphless-char-display-control'

	* doc/lispref/display.texi (Glyphless Chars): Document bidi-control.

	* lisp/international/characters.el (char-acronym-table): Add the
	ISOLATE characters.
	(update-glyphless-char-display): Implement bidi-control, and mark
	all Cf characters we don't know about as UNK.
	(glyphless--bidi-control-characters): New variable.
	(glyphless-char-display-control): Add a new type -- bidi-control.

	* lisp/textmodes/glyphless-mode.el (glyphless-mode-types): Add a
	new type -- bidi-control.

2021-12-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/cedet/semantic/bovine/c.el (semantic-tag-protection): Silence warning

	We used to get

	    cedet/semantic/bovine/c.el:1462:25: Warning: value returned from
	    (string= s "static") is unused

	* lisp/cedet/semantic/bovine/c.el (semantic-tag-protection): Merge two
	`when` into an `if` and set `prot` instead of throwing away a result.
	Use `pcase` while we're at it.

2021-12-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/macroexp.el: Improve last change

	Don't burp when `byte-compile-warning-enabled-p` is not yet defined.
	And use the call that we had already instead of adding a new one.

	(macroexp--warn-wrap): Allow `category`
	to be a list to pass to `byte-compile-warning-enabled-p`.
	(macroexp-macroexpand): Simplify accordingly.

2021-12-01  Po Lu  <luangruo@yahoo.com>

	Add some primitive momentum-based precision scrolling

	The algorithm used to scroll the display kinetically is very
	simple and needs improvement.  Someone should work on that
	eventually.

	* lisp/pixel-scroll.el (pixel-scroll-precision-use-momentum):
	New user option.
	(pixel-scroll-precision-mode-map): Add
	`pixel-scroll-start-momentum'.
	(pixel-scroll-kinetic-state):
	(pixel-scroll-accumulate-velocity):
	(pixel-scroll-calculate-velocity): New functions.
	(pixel-scroll-start-momentum): New command.

	* src/xterm.c (handle_one_xevent): Fix touch-end event
	generation.

2021-12-01  Po Lu  <luangruo@yahoo.com>

	Add `touch-end' event type

	* etc/NEWS:
	* doc/lispref/commands.texi (Misc Events): Document new
	`touch-end' event type.

	* lisp/bindings.el: Ignore touch-end events by default.

	* src/keyboard.c (make_lispy_event): Add support for
	TOUCH_END_EVENT events.
	(syms_of_keyboard): New symbol `touch-end'.

	* src/termhooks.h (enum event_kind): New member
	`TOUCH_END_EVENT'.

	* src/xterm.c (handle_one_xevent): Send touch-end events when
	appropriate.

2021-12-01  Po Lu  <luangruo@yahoo.com>

	Fix precision scrolling when there is a scroll margin

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down)
	(pixel-scroll-precision-scroll-up): Take scroll margin into
	account.

2021-12-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-01  Po Lu  <luangruo@yahoo.com>

	Get rid of vmotion loop in `pixel-scroll-precision-scroll-up'

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up): Use
	posn-at-x-y for cursor motion.

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Change how Dired displays available space

	* doc/emacs/dired.texi (Misc Dired Features): Document it (bug#23812).
	* lisp/dired.el (dired-free-space): New user option.
	(dired-insert-directory): Use it from here.
	(dired--insert-disk-space): New function that uses the user option.

	* lisp/files.el (insert-directory): Don't transform "total" here.
	* lisp/ls-lisp.el (ls-lisp--insert-directory): Or here.  Instead
	just leave the "total <num>" bit alone, and let Dired transform it.

	* test/lisp/files-tests.el (files-tests): Move "available" tests
	to dired-tests.
	* test/lisp/dired-tests.el (data-dir): Moved here.

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix "SEE ALSO" buttons in some man pages

	* lisp/man.el (Man-highlight-references0): Don't include "and" in
	the links (bug#52229).

2021-12-01  Andrea Corallo  <akrl@sdf.org>

	Make use of `comp-cstr-shallow-copy'

	* lisp/emacs-lisp/comp.el (comp-mvar-propagate): Remove.
	(comp-fwprop-call, comp-fwprop-insn): Use `comp-cstr-shallow-copy'.

	* lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range)
	(comp-cstr-union-1-no-mem, comp-cstr-union-1)
	(comp-cstr-intersection-no-mem, comp-cstr-intersection)
	(comp-cstr-negation): Use `comp-cstr-shallow-copy'.

2021-12-01  Andrea Corallo  <akrl@sdf.org>

	* Redefine `comp-cstr-shallow-copy'

	* lisp/emacs-lisp/comp-cstr.el (comp-cstr): Don't synthesize copier
	function.
	(comp-cstr-shallow-copy): New function.
	(comp-cstr-=): Use `copy-sequence'.

2021-12-01  Andrea Corallo  <akrl@sdf.org>

	* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Decl struct predicates as pure

2021-12-01  Alan Mackenzie  <acm@muc.de>

	Several amendments to scratch/correct-warning-pos.

	The position return by read-positioning-symbols is now the position in the
	buffer, rather than the offset from the start of a form, enabling warning
	positions in other parts of the buffer to be output.

	* src/lisp.h (lisp_h_EQ): Add XLI casts so that it compiles cleanly.

	* src/data.c (Fremove_pos_from_symbol): New DEFUN.

	* src/lread.c (readchar_count): renamed to readchar_offset.
	(read_internal_start) Initialize readchar_offset to the buffer's point when
	STREAM is a buffer.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-prefix): Amend to use
	OFFSET as a buffer position, not an offset from the start of a form.
	(byte-compile-warn): Remove symbol positions from any shape of ARGS, not just
	a symbol with position.

	* lisp/emacs-lisp/cconv.el (cconv-convert): In the :unused case,
	position the new IGNORE symbol with the VAR it has replaced.

	* lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap, macroexp-warn-and-return):
	Add an extra position parameter to each.

	* lisp/emacs-lisp/bindat.el (bindat-type), lisp/emacs-lisp/byte-run.el
	(defmacro, defun), lisp/emacs-lisp/cconv.el (cconv--convert-func-body)
	(cconv-convert), lisp/emacs-lisp/cl-generic.el (cl-defmethod),
	lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet, cl-defstruct),
	lisp/emacs-lisp/easy-mmode.el (define-minor-mode),
	lisp/emacs-lisp/eieio-core.el (eieio-oref, eieio-oref-default)
	(eieio-oset-default), lisp/emacs-lisp/eieio.el (defclass),
	lisp/emacs-lisp/gv.el (gv-ref), lisp/emacs-lisp/macroexp.el
	(macroexp-macroexpand, macroexp--unfold-lambda, macroexp--expand-all),
	lisp/emacs-lisp/pcase.el (pcase-compile-patterns, pcase--u1): Add an extra
	position argument to each call of macroexp-warn-and-return.

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-x C-d' require either an existing directory or a wildcard

	* lisp/files.el (list-directory): Require either an existing
	directory or a wildcard (bug#25807).

2021-12-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cconv.el (cconv--lifted-arg): Simplify

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix table-fixed-width-mode when typing fast

	* lisp/textmodes/table.el (table-with-cache-buffer): Use the value
	of table-fixed-width-mode in the correct buffer (bug#26701).

2021-12-01  Eli Zaretskii  <eliz@gnu.org>

	Mention 'glyphless-display-mode' in conjunction with bidi display

	* doc/emacs/mule.texi (Bidirectional Editing): Mention
	'glyphless-display-mode'.  (Bug#27544)

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix fencepost error in pixel-fill--fill-line

	* lisp/textmodes/pixel-fill.el (pixel-fill--fill-line): Don't add
	a newline (and continuation) if we're at the end of the line.

2021-12-01  Robert Pluim  <rpluim@gmail.com>

	characters.el: remove repetition in glyphless-char-display-control

	* lisp/international/characters.el (glyphless-char-display-method):
	New custom widget for the different options for displaying glyphless
	characters.
	(glyphless-char-display-control): Use 'glyphless-char-display-method'.

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new face `variable-pitch-text'

	* doc/emacs/display.texi (Standard Faces): Mention in.

	* lisp/faces.el (variable-pitch-text): New face.

	* lisp/gnus/gnus-art.el (gnus-header): Use it.

	* lisp/net/shr.el (shr-text): Use it.

2021-12-01  Mattias Engdegård  <mattiase@acm.org>

	Fix closure-conversion of shadowed captured lambda-lifted vars

	Lambda-lifted variables (ones passed explicitly to lambda-lifted
	functions) that are also captured in an outer closure and shadowed
	were renamed incorrectly (bug#51982).

	Reported by Paul Pogonyshev.

	* lisp/emacs-lisp/cconv.el (cconv--lifted-arg): New.
	(cconv-convert): Provide correct definiens for the closed-over
	variable.
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
	* test/lisp/emacs-lisp/cconv-tests.el (cconv-tests--intern-all)
	(cconv-closure-convert-remap-var): Add tests.

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new minor mode `glyphless-display-mode'

	* doc/emacs/display.texi (Text Display): Mention it.

	* doc/lispref/display.texi (Glyphless Chars): Document it.
	* lisp/textmodes/glyphless-mode.el: New minor mode (bug#27544).

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix update-glyphless-char-display variable setting

	* lisp/international/characters.el
	(update-glyphless-char-display): Only set the variable if given.

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make pixel-fill-region handle space regions better

	* lisp/textmodes/pixel-fill.el (pixel-fill-region): Preserve the
	face on the replacement spaces.

2021-12-01  Po Lu  <luangruo@yahoo.com>

	Fix precision pixel scrolling for a recent change

	* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Use
	`mwheel-coalesce-scroll-events' instead.

2021-12-01  Po Lu  <luangruo@yahoo.com>

	Stop relying on `x_coalesce_scroll_events' in pgtk code

	* src/pgtkterm.c (scroll_event): Use
	`mwheel_coalesce_scroll_events'.
	(x_coalesce_scroll_events): Remove variable.

2021-12-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Enable gnus-treat-fold-headers by default

	* lisp/gnus/gnus-art.el (gnus-treat-fold-headers): Change default
	to `head'.

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Use proportional fonts in the Gnus headers by default

	* lisp/gnus/gnus-art.el (gnus-header): Inherit from `variable-pitch'.
	(gnus--variable-pitch-p): New helper function.
	(gnus-article-treat-fold-headers): Fill using pixel filling.

2021-12-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Preserve newlines at the end of pixel-fill-region

	* lisp/textmodes/pixel-fill.el (pixel-fill-region): Preserve
	newlines at the end.

2021-12-01  Eli Zaretskii  <eliz@gnu.org>

	Support precision mouse scrolling on MS-Windows

	* src/w32fns.c (w32_wnd_proc): Pass the WM_SETTINGCHANGE message
	to the Lisp thread.
	* src/w32term.c (w32_construct_mouse_wheel): Support mice with
	precision scrolling wheel.
	(w32_get_mouse_wheel_vertical_delta): New function.
	(w32_read_socket): When the WM_SETTINGCHANGE is received, call
	'w32_get_mouse_wheel_vertical_delta'.
	(w32_initialize): Call 'w32_get_mouse_wheel_vertical_delta' at
	startup.
	* src/nsterm.m (syms_of_nsterm):
	* src/haikuterm.c (syms_of_haikuterm):
	* src/xterm.c (syms_of_xterm): Remove window-system specific
	variables for coalescing mwheel events.
	* src/keyboard.c (syms_of_keyboard)
	<mwheel-coalesce-scroll-events>: New variable, to replace the
	above platform-specific ones.

	* doc/lispref/commands.texi (Misc Events): Improve wording of the
	description of mouse-wheel events.

2021-12-01  Stefan Kangas  <stefankangas@gmail.com>

	update_autogen: Remove deprecated -I flag

	* admin/update_autogen (info_dir): Remove deprecated -I flag; it is no
	longer used since info/dir is now generated at install time if needed,
	and is not in the repository any more.

2021-12-01  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-12-01  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e632b83a28 Update authors.el for Emacs 28
	e9fdb11903 ; * ChangeLog.3: Some additional fixes.
	8fa4749df1 ; * ChangeLog.3: Filename fixes.
	ea5a90b4f4 * lisp/repeat.el: Fix long-standing problem when a random ...
	ef4954b69c * lisp/repeat.el (repeat-keep-prefix): Change default to nil.
	6d5886e780 * test/lisp/repeat-tests.el (repeat-tests-call-b): Test fo...
	9e16c6a96d ; * src/comp.c (syms_of_comp) <comp-no-native-file-h>: Doc...
	9aa8fd6e62 * src/callint.c (Fcall_interactively): Fix inhibit_mouse_e...
	70c229b1fc Fix regression in gdb-frame-handler
	cd9dd26d24 Format and index concept 'predicate' in ELisp Intro
	ab291656d0 ; * ChangeLog.3: Fix typos.
	354f6c5609 ; * ChangeLog.3: Formatting fixes.
	6192525a96 ; make change-history-commit

2021-12-01  Stefan Kangas  <stefankangas@gmail.com>

	Update SKK-JISYO.L from upstream

	* leim/SKK-DIC/SKK-JISYO.L: Update from
	https://raw.githubusercontent.com/skk-dev/dict/master/SKK-JISYO.L

2021-12-01  Stefan Kangas  <stefankangas@gmail.com>

	Update publicsuffix.txt from upstream

	* etc/publicsuffix.txt: Update from
	https://publicsuffix.org/list/public_suffix_list.dat
	dated 2021-11-26 23:07:15 UTC.

2021-11-30  Jim Porter  <jporterbugs@gmail.com>

	Suppress emacsclient message that daemon should have started if --quiet

	* lib-src/emacsclient.c (start_daemon_and_retry_set_socket): Don't
	output "daemon should have started" message if --quiet (bug#52214).

2021-11-30  Bob Rogers  <rogers-emacs@rgrjr.homedns.org>

	Make date-to-time work with date-only date strings

	* lisp/calendar/time-date.el (date-to-time): Try harder to parse
	dates with no times (bug#52209).

2021-11-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2021-11-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Autoload byte-compile-warning-enabled-p

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-enabled-p):
	Autoloads (for easier use in macroexp etc).

2021-11-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Add an ldefs-boot.el target to the Makefile

	* lisp/Makefile.in (ldefs-boot.el): Add a target to regenerate the
	ldefs-boot.el file.

2021-11-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Make "make force-autoloads" produce the correct result

	* lisp/emacs-lisp/autoload.el (cl-lib): We need the cl-macs at
	runtime to expand cl-defmacros to find declare indent forms.

2021-11-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't include the other loaddef files in the no-autoloads section

	* lisp/emacs-lisp/autoload.el (make-directory-autoloads): Don't
	include the other loaddef files in the no-autoloads section.

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Avoid unnecessary call when pixel scrolling

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down):
	Avoid unnecessary call to `posn-at-point'

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Make pixel scrolling faster

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): Get
	rid of big motion loop.
	(pixel-scroll-precision-scroll-up): Stop subtracting height of
	window lines.

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Synchronize pgtk tab bar code with xterm

	* src/pgtkterm.c (x_draw_image_relief):
	(button_event): Synchronize code with xterm. (Bug#50779)

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-11-30  Andrea Corallo  <akrl@sdf.org>

	* lisp/loadup.el (paren): Preload it (again).

2021-11-30  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of pixel-fill

	* doc/lispref/text.texi (Filling): Describe the arguments of
	'pixel-fill-region'.  Add index entry.

	* lisp/textmodes/pixel-fill.el (pixel-fill-region): Doc fix.

2021-11-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Use pixel-fill-width in shr.el

	* lisp/net/shr.el (shr--window-width): Factor out into own function.
	(shr-insert-document): Use it.
	(shr-fill-text): Ditto.

2021-11-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Document pixel-fill-region

	* doc/lispref/text.texi (Filling): Document pixel-fill-region.

	* lisp/textmodes/pixel-fill.el (pixel-fill-width): Add new helper
	function.

2021-11-30  Andrea Corallo  <akrl@sdf.org>

	Revert "Preload paren.el"

	Reverting as the previous commit make this fix not anymore necessary.

	This reverts commit 340e527bed83ff0382446132c871088ad61d1745.

2021-11-30  Andrea Corallo  <akrl@sdf.org>

	Improve native compiler startup circular dependency prevention mechanism

	* src/comp.c (maybe_defer_native_compilation): Update to accumulate
	delayed objects in `comp--delayed-sources'.
	(syms_of_comp): Add `comp--delayed-sources' and `comp--loadable'
	vars.

	* lisp/startup.el (startup--honor-delayed-native-compilations): New
	function.
	(normal-top-level): Call it.

2021-11-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow storing buffer names in registers

	* doc/emacs/regs.texi (File and Buffer Registers): Rename and add
	doc for `buffer' version.
	* lisp/register.el (register-val-jump-to, register-val-describe):
	Add support for (buffer . ...) registers (bug#33033).

2021-11-30  Mattias Engdegård  <mattiase@acm.org>

	Generalize CPS-conversion let optimization

	* lisp/emacs-lisp/generator.el (cps--transform-1):
	Eliminate a temporary for the last of any `let` form, not just for
	single-binding ones.  Suggested by Stefan Monnier.

2021-11-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow inhibiting warnings about obsolete macros again

	* lisp/emacs-lisp/macroexp.el (macroexp-macroexpand): Inhibit
	warning if requested (bug#50984).

2021-11-30  Po Lu  <luangruo@yahoo.com>

	* src/nsterm.m (Vns_scroll_event_delta_factor): Fix doc string.

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Fix pixel scrolling again

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): Fix
	confusion about absolutivity of `window-edges'.

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Fix 1-off errors in pixel scrolling code

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): Fix
	one-off errors.

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Improve upwards pixel scrolling for large images

	This fixes most of the problem, but with a large image the
	vscroll can sometimes jump about, which has to be fixed.

	* lisp/pixel-scroll.el (pixel-scroll-precision-up): Handle
	vscrolling large images in the first unseen line.

2021-11-30  Mattias Engdegård  <mattiase@acm.org>

	Better CPS conversion of multi-binding `let`

	* lisp/emacs-lisp/generator.el (cps--transform-1):
	Don't translate single-binding `let` into `let*` with an extra
	temporary variable; it just adds two more useless states.

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Calculate pixel deltas correctly

	* src/pgtkterm.c (scroll_event): Fix scroll delta
	factor. (bug#52195)

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

	* lisp/pixel-scroll.el (pixel-scroll-precision): Handle zero delta.

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-11-30  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	30553d889d Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/e...
	ecf3bf66ba Remove problematic characters from modus-themes.org (bug#5...
	de9d27f679 Avoid undefined behavior when copying part of structure

	# Conflicts:
	#	doc/misc/modus-themes.org

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Fix annoying bell rings when pixel scrolling to buffer limits

	* lisp/pixel-scroll.el (pixel-scroll-precision): Don't ding at
	buffer limits.

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Enable shallow menu bar updates on PGTK

	* src/gtkutil.c (menu_bar_button_pressed_cb): New function.
	(create_menus): Connect button press event signal.

	* src/pgtkmenu.c (set_frame_menubar): Allow shallow updates.

2021-11-30  Po Lu  <luangruo@yahoo.com>

	Add `ns-scroll-event-delta-factor'

	* src/nsterm.m (- mouseDown): Take delta factor into account.
	(Vns_scroll_event_delta_factor): New variable.

	* lisp/cus-start.el: Add option.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Allow non-float values in x-scroll-event-delta-factor

	* src/xterm.c (handle_one_xevent): Use XFLOATINT instead of
	XFLOAT_DATA.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Make interrupt input optionally work on PGTK

	* src/pgtkterm.c (pgtk_delete_terminal): Close display fd if it
	exists.
	(pgtk_term_init): Set up interrupt handling for display fd if
	available.
	* src/pgtkterm.h (struct pgtk_display_info): Add `connection'
	field.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Stop setting mouse face GC manually, as it is no longer required

	* src/pgtkterm.c (x_set_mouse_face_gc): Remove obsolete code.

2021-11-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new package pixel-fill.el

	* lisp/net/shr.el (shr-char-breakable-p, shr-char-nospace-p)
	(shr-char-kinsoku-bol-p, shr-char-kinsoku-eol-p)
	(shr-find-fill-point): Moved to pixel-fill.el and renamed.
	(shr-pixel-region): Made obsolete.
	(shr-fill-line): Use pixel-fill-region.

	* lisp/textmodes/pixel-fill.el: New package.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Add missing function declarations to pgtk-win.el

	* lisp/term/pgtk-win.el: Add missing IM context related
	declarations.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Enable pixel-precision scrolling on pgtk port

	* src/pgtkterm.c (scroll_event): Generate enhanced wheel
	events.
	(x_coalesce_scroll_events): New variable.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Get rid of pgtk_select and use xg_select instead

	* src/pgtkmenu.c (pgtk_menu_wait_for_event): Get rid
	of pgtk_select.
	* src/pgtkterm.h (pgtk_select):
	* src/pgtkterm.c (pgtk_select): Delete function.
	* src/process.c (wait_reading_process_output): Stop
	using pgtk_select.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	* lisp/frame.el (display-graphic-p): Fix typo.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Fix build after merge

	* lisp/mwheel.el (mouse-wheel-up-event):
	* src/gtkutil.c (xg_event_is_for_scrollbar):
	* src/termhooks.h (enum output_method): Fix trivial typos.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Merge remote-tracking branch 'origin/feature/pgtk' into feature/pgtk

	Merge remote-tracking branch 'origin/master' into feature/pgtk

2021-11-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Audit the Emacs manual for keymap-*-related changes

	* doc/emacs/programs.texi (Other C Commands):
	* doc/emacs/msdos-xtra.texi (MS-DOS Keyboard):
	* doc/emacs/custom.texi (Init Examples):
	* doc/emacs/abbrevs.texi (Editing Abbrevs): Change some examples
	to use keymap-* functions.

2021-11-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix some of the argument handling in keymap-set and keymap-substitute

	* lisp/keymap.el (keymap-set): Fix handling of binding one key to
	another key.
	(keymap-substitute): Fix confusion in implementation -- the args
	are definitions, not keys.

2021-11-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Edit the lispref manual for define-key/keymap-set fallout

	* doc/lispref/variables.texi (Tips for Defining):
	* doc/lispref/text.texi (Clickable Text):
	* doc/lispref/modes.texi (Derived Modes):
	(Example Major Modes):
	* doc/lispref/loading.texi (Autoload):
	(Hooks for Loading):
	* doc/lispref/keymaps.texi (Creating Keymaps):
	(Inheritance and Keymaps):
	(Controlling Active Maps):
	(Changing Key Bindings):
	(Low-Level Key Binding):
	(Remapping Commands):
	(Translation Keymaps):
	(Key Binding Commands):
	* doc/lispref/help.texi (Help Functions):
	* doc/lispref/display.texi (Abstract Display Example):
	* doc/lispref/commands.texi (Interactive Codes):
	(Keyboard Events):
	(Misc Events):
	(Classifying Events):
	(Strings of Events): Prefer `keymap-set' instead of `define-key'
	most places, and use `defvar-keymap' in some of the examples.

2021-11-29  Alan Third  <alan@idiocy.org>

	Fix build on macOS

	* src/nsterm.h (NSPasteboardTypeMultipleTextSelection):
	(NSPasteboardTypePNG): These are already defined on macOS 10.6 and
	above and aren't used at all in GNUstep.

2021-11-29  Alan Third  <alan@idiocy.org>

	Fix NS port text decorations (bug#52156)

	* src/nsterm.m (ns_draw_text_decoration): Set the correct colors for
	decorations other than underline.
	(ns_draw_glyph_string): Remove superfluous color setting call.

2021-11-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot.el

2021-11-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up generation of help text for ldefs-boot.el

	* lisp/emacs-lisp/autoload.el (autoload-rubric): Don't put the
	help text into cedet/*/loaddefs.el (bug#51744).

2021-11-29  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/gitlab-ci.yml (.job-template): Modify find scripts.

2021-11-29  Protesilaos Stavrou  <info@protesilaos.com>

	Remove problematic characters from modus-themes.org (bug#52126)

	* doc/misc/modus-themes.org
	(Enable and load, Font configurations for Org and others)
	(Note on highlight-parentheses.el, Note on god-mode.el): Update links to
	headings so that they no longer include the removed portions of text.

	(Option for color-coding success state, Option for line highlighting)
	(Option for line numbers, Option for parenthesis matching)
	(Advanced customization, Per-theme customization settings)
	(Case-by-case face specs using the themes' palette)
	(Face specs at scale using the themes' palette)
	(Remap face with local value, Cycle through arbitrary colors)
	(Override colors, Override color saturation)
	(Font configurations for Org and others, Configure bold and italic faces)
	(Custom Org user faces, Update Org block delimiter fontification)
	(Measure color contrast, Load theme depending on time of day)
	(Backdrop for pdf-tools, Decrease mode line height)
	(A theme-agnostic hook for theme loading, Note on EWW and Elfeed fonts)
	(Frequently Asked Questions): Remove parentheses from headings as they
	can cause problems in the .texi version of the file.

2021-11-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't return whitespace for thing-at-point in whitespace-only buffers

	* lisp/thingatpt.el (bounds-of-thing-at-point): If the buffer is
	empty, return nil for most things (bug#52098).

2021-11-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Make Re: recognition in ispell-message less ambiguous

	* lisp/textmodes/ispell.el (ispell-message): Require a "Re" as a
	word, not as a word ending (bug#52104).

2021-11-29  Brahimi Saifullah  <brahimi.saifullah@gmail.com>  (tiny change)

	Make `group' widgets prettier in Customize

	* lisp/wid-edit.el (group): Make the ":" invisible so that the
	buffer looks prettier (bug#52143).

2021-11-29  Matthias Meulien  <orontee@gmail.com>

	project-kill-buffers can display list of buffers to kill

	* lisp/progmodes/project.el
	(project-kill-buffers-display-buffer-list): Option to toggle
	temporarily display of the list of buffers to kill when calling
	project-kill-buffers
	(project-kill-buffers): Handle
	project-kill-buffers-display-buffer-list option (bug#52148).

2021-11-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Signal a better error in tabulated-list-sort

	* lisp/emacs-lisp/tabulated-list.el (tabulated-list-sort): Signal
	error earlier on invalid column numbers (bug#52154).

2021-11-29  Yuuki Harano  <masm+github@masm11.me>

	* src/xdisp.c (mouse_face_from_buffer_pos): Revert whitespace only change

2021-11-29  Yuuki Harano  <masm+github@masm11.me>

	Remove draw_glyphs_debug

	It is left-over from debugging, and not needed any more.

	* src/xdisp.c (draw_glyphs_debug):
	(draw_glyphs):

2021-11-29  Yuuki Harano  <masm+github@masm11.me>

	Replace XFillRectangle with cairo_rectangle and cairo_fill

	* src/pgtkterm.c (pgtk_flash):

2021-11-29  Yuuki Harano  <masm+github@masm11.me>

	Use /* */ comment style instead of //

	* src/gtkutil.c (xg_create_frame_widgets):
	* src/pgtkfns.c (Fx_create_frame):
	(frame_geometry):
	* src/pgtkterm.c (pgtk_mouse_position):
	(pgtk_redisplay_interface):
	(pgtk_clear_frame):
	(pgtk_create_terminal):
	(struct pgtk_window_is_of_frame_recursive_t):
	(key_press_event):
	(syms_of_pgtkterm):

2021-11-29  Daniel Martín  <mardani29@yahoo.es>

	Use mupdf in doc-view-mode if gs is not installed

	* lisp/doc-view.el (doc-view-mode-p): Use mupdf to render PDF and
	related formats if gs is not installed (bug#52170).

2021-11-29  Ikumi Keita  <ikumi@ikumi.que.jp>  (tiny change)

	Make fill-region-as-paragraph clear the markers it creates

	* lisp/textmodes/fill.el (fill-region-as-paragraph): Clear
	temporary markers (bug#52175).

2021-11-29  Gregory Heytings  <gregory@heytings.org>

	Do not buttonize key bindings outside of *Help* buffers

	* etc/NEWS: Mention the new variable.

	* lisp/apropos.el (apropos-describe-plist): Bind the new
	variable (bug#52053).
	* lisp/button.el (button-describe): Bind the new variable.

	* lisp/help-fns.el (describe-function, describe-variable)
	(describe-face, describe-symbol, describe-syntax)
	(describe-categories, describe-keymap, describe-mode)
	(describe-widget): Bind the new variable.

	* lisp/help-macro.el (make-help-screen): Bind the new variable.

	* lisp/help.el (help-buffer-under-preparation): New variable
	that is bound to t by commands that create a *Help* buffer.
	(substitute-command-keys): Use the new variable:
	help-link-key-to-documentation is supposed to have an effect
	only "in *Help* buffers". Fixes bug#52053.
	(view-lossage, describe-bindings, describe-key): Bind the new
	variable.

	* lisp/repeat.el (describe-repeat-maps): Bind the new variable.

	* lisp/international/mule-cmds.el (describe-input-method)
	(describe-language-environment): Bind the new variable.

	* lisp/international/mule-diag.el (describe-character-set)
	(describe-coding-system, describe-font, describe-fontset)
	((list-fontsets): Bind the new variable.

2021-11-29  Alan Mackenzie  <acm@muc.de>

	First commit of scratch/correct-warning-pos.

	This branch is intended to generate correct position information in warning
	and error messages from the byte compiler, and is intended thereby to fix bugs

	It introduces a new mechanism, the symbol with position.  This is taken over
	from the previous git branch scratch/accurate-warning-pos which was abandoned
	for being too slow.  The main difference in the current branch is that the
	symbol `nil' is never given a position, thus speeding up NILP markedly.

	* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand)
	(byte-optimize-form-code-walker, byte-optimize-let-form, byte-optimize-while)
	(byte-optimize-apply): Use byte-compile-warn-x in place of byte-compile-warn.

	* lisp/emacs-lisp/bytecomp.el (byte-compile--form-stack): New variable.
	(byte-compile-strip-s-p-1, byte-compile-strip-symbol-positions): New
	functions.
	(byte-compile-recurse-toplevel, byte-compile-initial-macro-environment)
	(byte-compile-preprocess, byte-compile-macroexpand-declare-function): Bind
	print-symbols-bare to non-nil.
	(byte-compile--first-symbol, byte-compile--warning-source-offset): New
	functions.
	(byte-compile-warning-prefix): Modify to output two sets of position
	information, the old (incorrect) set and the new set.
	(byte-compile-warn): Strip positions from symbols before outputting.
	(byte-compile-warn-x): New function which outputs a correct position supplied
	in an argument.
	(byte-compile-warn-obsolete, byte-compile-emit-callargs-warn)
	(byte-compile-format-warn, byte-compile-nogroup-warn)
	(byte-compile-arglist-warn, byte-compile-docstring-length-warn)
	(byte-compile-warn-about-unresolved-functions, byte-compile-file)
	(byte-compile--check-prefixed-var, byte-compile--declare-var)
	(byte-compile-file-form-defvar-function, byte-compile-file-form-defmumble)
	(byte-compile-check-lambda-list, byte-compile--warn-lexical-dynamic)
	(byte-compile-lambda, byte-compile-form, byte-compile-normal-call)
	(byte-compile-check-variable, byte-compile-free-vars-warn)
	(byte-compile-subr-wrong-args, byte-compile-fset, byte-compile-set-default)
	(byte-compile-condition-case, byte-compile-save-excursion)
	(byte-compile-defvar, byte-compile-autoload)
	(byte-compile-make-variable-buffer-local, byte-compile-define-symbol-prop)
	(byte-compile-define-keymap): Replace byte-compile-warn with
	byte-compile-warn-x.
	(byte-compile-file, compile-defun): Bind symbols-with-pos-enabled to non-nil.
	(compile-defun, byte-compile-from-buffer): Use `read-positioning-symbols'
	rather than plain `read'.
	(byte-compile-toplevel-file-form, byte-compile-form): Dynamically bind
	byte-compile--form-stack.
	(byte-compile-file-form-autoload, byte-compile-file-form-defvar)
	(byte-compile-file-form-make-obsolete, byte-compile-lambda)
	(byte-compile-push-constant, byte-compile-cond-jump-table)
	(byte-compile-define-keymap, byte-compile-annotate-call-tree):
	Strip positions from symbols where they are unwanted.
	(byte-compile-file-form-defvar): Strip positions from symbols using
	`bare-symbol'.
	(byte-compile-file-form-defmumble): New variable bare-name, a version of name
	without its position.
	(byte-compile-lambda): Similarly, new variable bare-arglist.
	(byte-compile-free-vars-warn): New argument arg supplying position information
	to byte-compile-warn-x.
	(byte-compile-push-constant): Manipulation of symbol positions.
	(display-call-tree): Strip positions from symbols.

	* lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use)
	(cconv--analyze-function, cconv-analyze-form): Replace use of
	byte-compile-warn with byte-compile-warn-x.

	* lisp/emacs-lisp/cl-generic.el (cl-defmethod): New variable org-name which
	  will supply position information to a new macroexp-warn-and-return.

	  * lisp/emacs-lisp/cl-macs.el (cl-macs--strip-s-p-1)
	  (cl-macs--strip-symbol-positions): New functions to strip positions from
	  symbols in an expression.  These duplicaate similarly named functions in
	  bytecomp.el.

	* lisp/emacs-lisp/macroexpand.el (macroexp--warn-wrap): Calls
	  byte-compile-warn-x in place of byte-compile-warn.
	  (macroexp-warn-and-return): Commented out new position parameter _arg.

	* src/.gdbinit: Add in code to handle symbols with position.

	* src/alloc.c (XPNTR, set_symbol_name, valid_lisp_object_p, purecopy)
	(mark_char_table, mark_object, survives_gc_p, symbol_uses_obj): Use
	BARE_SYMBOL_P and XBARE_SYMBOL in place of the former SYMBOLP and XSYMBOL.
	(build_symbol_with_pos): New function.
	(Fgarbage_collect): Bind Qsymbols_with_pos_enabled to nil around the call to
	garbage_collect.

	* src/data.c (Ftype_of): Add case for PVEC_SYMBOL_WITH_POS.
	(Fbare_symbol_p, Fsymbol_with_pos_p, Fbare_symbol, Fsymbol_with_pos_pos)
	(Fposition_symbol): New functions.
	(symbols_with_pos_enabled): New boolean variable.

	* src/fns.c (internal_equal, hash_lookup): Handle symbols with position.

	* src/keyboard.c (recursive_edit_1): Bind Qsymbols_with_pos_enabled and
	Qprint_symbols_bare to nil.

	* src/lisp.h (lisp_h_PSEUDOVECTORP): New macro.
	(lisp_h_BASE_EQ): New name for the former lisp_h_EQ.
	(lisp_h_EQ): Extended to handle symbols with position.
	(lisp_h_NILP): Now uses BASE_EQ rather than EQ.
	(lisp_h_SYMBOL_WITH_POS_P, lisp_h_BARE_SYMBOL_P): New macros.
	(lisp_h_SYMBOLP): Redefined to handle symbols with position.
	(BARE_SYMBOL_P, BASE_EQ): New macros.
	(SYMBOLP (macro)): Removed.
	(SYMBOLP (function), XSYMBOL, make_lisp_symbol, builtin_lisp_symbol)
	(c_symbol_p): Moved to later in file.
	(struct Lisp_Symbol_With_Pos): New data type.
	(pvec_type): PVEC_SYMBOL_WITH_POS: New type code.
	(PSEUDOVECTORP): Redefined to use the lisp_h_PSEUDOVECTORP.
	(BARE_SYMBOL_P, SYMBOL_WITH_POS_P, SYMBOLP, XSYMBOL_WITH_POS, XBARE_SYMBOL)
	(XSYMBOL, make_lisp_symbol, builtin_lisp_symbol, c_symbol_p, CHECK_SYMBOL)
	(BASE_EQ): New functions, or functions moved from earlier in the file.
	(SYMBOL_WITH_POS_SYM, SYMBOL_WITH_POS_POS): New INLINE functions.

	* src/lread.c (read0, read1, read_list, read_vector, read_internal_start)
	(list2): Add a new bool parameter locate_syms.
	(Fread_positioning_symbols): New function.
	(Fread_from_string, read_internal_start, read0, read1, read_list): Pass around
	suitable values for locate_syms.
	(read1): Build symbols with position when locate_syms is true.

	* src/print.c (print_vectorlike): Add handling for PVEC_SYMBOL_WITH_POS.
	(print_object): Replace EQ with BASE_EQ.
	(print_symbols_bare): New boolean variable.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Really make `x-scroll-event-delta-factor' dependent on system

	* lisp/cus-start.el: Move X specific builtins that start
	with "x-" before the catch-all test.

2021-11-29  Andreas Schwab  <schwab@linux-m68k.org>

	Avoid undefined behavior when copying part of structure

	* src/dispnew.c (copy_row_except_pointers): Don't use address of
	subobject as starting point.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Fix last change for non-X platforms

	* lisp/cus-start.el: Don't announce
	`scroll-bar-adjust-thumb-portion' on non-X systems.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Allow customizing the pixel delta of wheel events on X

	* lisp/cus-start.el: Add `x-scroll-event-delta-factor'.
	* src/xterm.c (handle_one_xevent): Apply scroll event
	delta factor to wheel events with pixel data.
	(Vx_scroll_event_delta_factor): New user option.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	Make overhangs in ftcrfont work on Haiku

	* src/ftcrfont.c (ftcrfont_draw): Dump left overhang clipping
	on Haiku and always set `background_filled_p'.

2021-11-29  Po Lu  <luangruo@yahoo.com>

	* doc/emacs/haiku.texi (Haiku Basics): Fix a typo.

2021-11-29  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	c4daff9cf8 * Makefile.in (PREFERRED_BRANCH): Now emacs-28.
	bca57086be ; Remove an obsolete comment
	455b64c336 * src/coding.c (Fdecode_coding_region, Fencode_coding_regi...

2021-11-28  Po Lu  <luangruo@yahoo.com>

	Update XKB map on MappingNotify

	* src/xterm.c (handle_one_xevent): Update XKB map when X
	tells us the keyboard map has been updated.

2021-11-28  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak gnus-art key binding

	* lisp/gnus/gnus-art.el (:keymap): Fix mnemonic key binding.

2021-11-28  Mattias Engdegård  <mattiase@acm.org>

	Use compiler macros for the key syntax checks

	Compile-time key string syntax checks are better written using
	compiler macros than with byte-hunk-handlers inside the compiler
	proper.

	* lisp/emacs-lisp/bytecomp.el (byte-compile-define-keymap)
	(byte-compile-define-keymap--define): Remove.
	* lisp/keymap.el (keymap--compile-check): New.
	(keymap-set, keymap-global-set, keymap-local-set, keymap-global-unset)
	(keymap-local-unset, keymap-unset, keymap-substitute)
	(keymap-set-after, key-translate, keymap-lookup, keymap-local-lookup)
	(keymap-global-lookup): Use compiler-macro for argument checks.
	* lisp/subr.el (define-keymap--compile): New.
	(define-keymap--define): Fold into define-keymap.
	(define-keymap): Use compiler-macro.
	(defvar-keymap): Use define-keymap.

2021-11-28  Mattias Engdegård  <mattiase@acm.org>

	Avoid unused argument warnings in lambda compiler macros

	* lisp/emacs-lisp/byte-run.el (byte-run--set-compiler-macro):
	Don't warn when a compiler macro with lambda-form expander does not
	use all the arguments of the function.  Nobody expected any warning
	since the arguments look like free variables inside the lambda form.

2021-11-28  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	1fffe9a210 ; * lisp/org/org.el: Fix version header.
	2a4de5e5e5 Fix Subject when forwarding message with 2-line From
	b8b2dd17c5 Update to Org 9.5.1-11-g96d91b
	a937f536b3 * doc/lispref/commands.texi (Click Events): Fix wording (b...

2021-11-28  Michael Albinus  <michael.albinus@gmx.de>

	Adapt gitlab-ci.yml

	* test/infra/gitlab-ci.yml (variables): Set EMACS_TEST_TIMEOUT to 3600.
	(.job-template, .test-template): Another approach to catch test
	artifacts on emba.

2021-11-28  Po Lu  <luangruo@yahoo.com>

	Make haiku-win build correctly on non-Haiku systems

	* lisp/term/haiku-win.el (haiku-selection-targets): Add
	missing declaration.

2021-11-28  Po Lu  <luangruo@yahoo.com>

	Fix xwidget popups on XI2 again

	* src/xwidget.c (xwidget_button_1): Release seat grab.

2021-11-28  Po Lu  <luangruo@yahoo.com>

	Fix xwidget popups on XI2

	* src/gtkutil.c (xg_is_menu_window): Determine whether wdesc
	is a menu generated by a menu bar more reliably.

	* src/xwidget.c (xwidget_button_1): Release all XI2 grabs on
	click.

2021-11-27  Po Lu  <luangruo@yahoo.com>

	Fix typos in configure.ac

	* configure.ac: Fix typos in wording of XInput 2 options.

2021-11-27  Po Lu  <luangruo@yahoo.com>

	Make `pixel-scroll-precision-scroll-up' work better with overlays

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up):
	Just set vscroll when on overlay.

2021-11-27  Michael Albinus  <michael.albinus@gmx.de>

	Simplify use of artifacts in emba files

	* test/infra/gitlab-ci.yml (.test-template): Re-insert.
	(test-all-inotify, test-filenotify-gio, test-gnustep)
	(test-native-comp-speed0):
	* test/infra/Makefile.in (subdir_template): Use it when
	appropriate.  Remove artifacts.

	* test/infra/test-jobs.yml: Regenerate.

2021-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	* test/src/comp-tests.el: Rework last patch

	Move `require`s out of `eval-when-compile` if the functions are called
	at run-time.
	Don't use #' to quote symbols (i.e. at those places where a lambda
	expression couldn't be used).
	Don't pre-load comp-test-45603.el and comp-test-pure.el any more.

	(comp-deftest pure): Use `declare-function` after loading `comp-test-pure.el`
	to silence the byte-compiler.

2021-11-27  Eli Zaretskii  <eliz@gnu.org>

	Avoid assertion violations in --enable-checking builds

	* src/xdisp.c (gui_produce_glyphs): Make sure character glyphs
	don't trigger assertion violation due to negative ascent or
	descent.  This was reporte dto happen with some fonts used by the
	xfont backend.

2021-11-27  Po Lu  <luangruo@yahoo.com>

	Improve documentation of wheel events

	* doc/lispref/commands.texi (Misc Events): Add missing
	parameters to `wheel-up' and `wheel-down'.

2021-11-27  Po Lu  <luangruo@yahoo.com>

	Fix pixel scroll for overlays and text in display properties

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down):
	Just set vscroll if we're scrolling through an overlay or
	something to that effect.

2021-11-27  Po Lu  <luangruo@yahoo.com>

	Set motion event time when handling XI2 motion events

	* src/xterm.c (handle_one_xevent): Set motion event time when
	handling XI_Motion.

2021-11-27  Po Lu  <luangruo@yahoo.com>

	Remove GC prone call in `pixel-point-and-height-at-unseen-line'

	* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
	Remove call to unnecessary call to `beginning-of-visual-line'.

2021-11-27  Po Lu  <luangruo@yahoo.com>

	Make `pixel-scroll-precision-scroll-up' slightly more robust

	* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up):
	Subtract from existing vscroll if feasible.

2021-11-27  Po Lu  <luangruo@yahoo.com>

	Make `pixel-scroll-precision-scroll-up' use existing logic

	* lisp/pixel-scroll.el (pixel-point-at-unseen-line): Rewrite
	to use `pixel-point-and-height-at-unseen-line'.
	(pixel-point-and-height-at-unseen-line): New function.
	(pixel-scroll-precision-scroll-up): Use existing logic
	to determine unseen line position.

2021-11-26  Stephen Gildea  <stepheng+emacs@gildea.com>

	time-stamp-tests.el: Test more formats

	* test/lisp/time-stamp-tests.el (time-stamp-format-ignored-modifiers):
	Additional testing with illegal formats, including "%".
	(time-stamp-format-multiple-conversions): Add a test with "%%%".

2021-11-26  Po Lu  <luangruo@yahoo.com>

	Set initial tab bar parameter on NS

	* src/nsfns.m (Fx_create_frame): Initialize `tab-bar-lines'
	frame parameter during frame creation.

2021-11-26  Alan Third  <alan@idiocy.org>

	Silence NS warnings

	* src/nsterm.m ([EmacsView mouseDown:]): Move variables into the block
	where they're used.

2021-11-26  Stephen Gildea  <stepheng+emacs@gildea.com>

	* test/src/comp-tests.el: Eliminate byte-compiler warnings (Bug#52105).

2021-11-26  Robert Pluim  <rpluim@gmail.com>

	Specify initial values for glyphless-char-display-control elements

	* lisp/international/characters.el (glyphless-char-display-control):
	Specify :value for all the elements, since nil is not a valid value.

2021-11-26  Michael Albinus  <michael.albinus@gmx.de>

	Adapt test/infra/gitlab-ci.yml

	* test/infra/gitlab-ci.yml (test-all-inotify)
	(test-filenotify-gio, test-gnustep, test-native-comp-speed0):
	Add or adapt artifacts.

2021-11-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new face `gnus-header'

	* lisp/gnus/gnus-art.el (gnus-header): New face.
	(gnus-header-from, gnus-header-subject, gnus-header-newsgroups)
	(gnus-header-name, gnus-header-content): Inherit from this new face.

2021-11-26  Robert Pluim  <rpluim@gmail.com>

	Adjust custom-face-attributes for 'regular' weight

	Following the changes to support "medium" weight fonts, the weight for
	"normal" fonts is now reported as 'regular', which caused
	customize-face to display faces as lisp-expressions, since it didn't
	recognize that.  This has been corrected.

	* lisp/cus-face.el (custom-face-attributes): Recognize 'regular' as a
	weight.

2021-11-26  Lars Ingebrigtsen  <larsi@gnus.org>

	Add an intermediary face for mode lines: `mode-line-active'

	* doc/emacs/display.texi (Standard Faces): Document the new face.

	* lisp/faces.el (mode-line-active): New face.
	(mode-line): Don't inherit from vaiable-pitch.

	* src/xfaces.c (lookup_basic_face, realize_basic_faces)
	(syms_of_xfaces):
	* src/xdisp.c (window_box_height, window_text_pixel_size)
	(display_mode_lines, Fformat_mode_line):
	* src/dispextern.h (CURRENT_MODE_LINE_ACTIVE_FACE_ID_3)
	(CURRENT_MODE_LINE_ACTIVE_FACE_ID, enum face_id): Rename from
	*MODE_LINE_FACE_ID to *MODE_LINE_ACTIVE_FACE_ID.

2021-11-26  Po Lu  <luangruo@yahoo.com>

	Move the precision pixel scrolling feature to pixel-scroll.el

	* etc/NEWS: Update NEWS entry for 'pixel-scroll-precision-mode'

	* lisp/better-pixel-scroll.el: Remove file.

	* src/pixel-scroll.el (x-coalesce-scroll-events): New variable
	declaration.
	(pixel-scroll-precision-mode-map): New variable.
	(pixel-scroll-precision-scroll-down):
	(pixel-scroll-precision-scroll-up):
	(pixel-scroll-precision): New functions.
	(pixel-scroll-precision-mode): New minor mode.

2021-11-26  Po Lu  <luangruo@yahoo.com>

	Explain confusing aspects of XInput 2 scroll wheel reporting

	* src/xterm.c (x_init_master_valuators): Explain how XInput 2
	reports scroll wheel movement.

	(handle_one_xevent): Explain why XI2 scroll valuators
	are reset after each enter events.

2021-11-26  Dmitry Gutov  <dgutov@yandex.ru>

	Remove empty lines from stash read prompt

	* lisp/vc/vc-git.el (vc-git-stash-read): Pass OMIT-NULLS (bug#52119).
	(vc-git-stash-list): Simplify.

2021-11-26  Po Lu  <luangruo@yahoo.com>

	Make XInput 2 builds work without cairo

	* src/xterm.c: Move some defines around so XI2 code doesn't
	get ifdef'd out if Cairo is disabled.

2021-11-26  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	cfaf681d3d ; * src/emacs.c (main): Add commentary about command-line ...
	4d16a2f737 Fix pdf generation with Texinfo 6.7
	a22c9a34bd Fix 'posn-at-point' near some overlays
	d1aa552d11 ; * CONTRIBUTE: No cleanups on release branches, even in d...
	588caf0b27 * lisp/repeat.el (repeat-post-hook): Add check symbolp rep...

2021-11-26  Po Lu  <luangruo@yahoo.com>

	Fix sign of pixel scroll events on Haiku

	* src/haikuterm.c (haiku_read_socket): Fix sign of scroll
	events.

2021-11-26  Po Lu  <luangruo@yahoo.com>

	Make tab bar option visible in the menu bar on NS

	* lisp/menu-bar.el (menu-bar-showhide-menu): Make
	`showhide-tab-bar' visible on NS as well.

2021-11-26  Po Lu  <luangruo@yahoo.com>

	Make pixel scrolling through images at the first line smoother

	* lisp/better-pixel-scroll.el (better-pixel-scroll-scroll-up):
	Try to reset vscroll if already vscrolled.

2021-11-26  Po Lu  <luangruo@yahoo.com>

	Don't perform pixel scrolling when window is hscrolled

	* lisp/better-pixel-scroll.el (better-pixel-scroll): Call
	mwheel-scroll instead if window is hscrolled.

2021-11-25  Po Lu  <luangruo@yahoo.com>

	Add `better-pixel-scroll-mode'

	* etc/NEWS: Announce `better-pixel-scroll-mode'.
	* lisp/better-pixel-scroll.el: New file.

2021-11-25  Alan Third  <alan@idiocy.org>

	Fix selection for old GNUstep and GCC

	* src/nsselect.m (ns_get_foreign_selection): Remove language features
	not yet supported by GCC.  Be more selective with which pasteboard
	types we use.
	* src/nsterm.h: Set up some more #defines for deprecated variables.

2021-11-25  Eli Zaretskii  <eliz@gnu.org>

	Update 'custom-face-attributes'

	* lisp/cus-face.el (custom-face-attributes): Synchronize with
	tables in font.c.

2021-11-25  Andreas Schwab  <schwab@linux-m68k.org>

	* src/emacs.c (usage_message): Fix name of --seccomp option.

2021-11-25  Eli Zaretskii  <eliz@gnu.org>

	Fix handling of '--dump-file' command-line option

	* lisp/startup.el (command-line-1): Handle "--dump-file" and
	"--seccomp" if they are left on the command-line.  (Bug#52106)

2021-11-25  Stephen Gildea  <stepheng+emacs@gildea.com>

	MH-E: support Mailutils "folders +/"

	* lisp/mh-e/mh-utils.el (mh-sub-folders-parse):
	Support Mailutils style of "folders +/" output.
	* test/lisp/mh-e/mh-utils.el:
	Test "folders +/" with GNU Mailutils 3.13.91 and later.

2021-11-25  Robert Pluim  <rpluim@gmail.com>

	Correct the :inherit property on some faces

	Otherwise M-x customize-face will show them as lisp-expressions rather
	than nice widgets.

	* lisp/ansi-color.el (ansi-color-bold):
	(ansi-color-italic):
	(ansi-color-underline):
	* lisp/faces.el (mode-line): Don't quote the face we're inheriting
	from.

2021-11-25  Robert Pluim  <rpluim@gmail.com>

	* doc/misc/flymake.texi: Correct local variable mode specification

2021-11-25  Robert Pluim  <rpluim@gmail.com>

	Don't display redundant 'see' in info-mode

	* lisp/info.el (Info-fontify-node): Don't show 'see' when displaying
	the result of "(See @ref" or "also @ref", but leave "Also @ref" alone.

2021-11-25  Michael Albinus  <michael.albinus@gmx.de>

	Tag a test from process-tests.el as :unstable on emba.

	* test/src/process-tests.el (process-tests/multiple-threads-waiting):
	Tag it as :unstable on emba.

2021-11-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Add temporary mode-line-position change

	* lisp/bindings.el (mode-line-position): Add interim solution to
	make `min-width' work here; this should be fixed for real in the
	display_line machinery somewhere.

2021-11-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Indent `closure' forms better

	* lisp/emacs-lisp/lisp-mode.el (closure): Indent `closure' forms
	better (bug#52063).

2021-11-25  Po Lu  <luangruo@yahoo.com>

	Fix scroll wheel reporting on NS

	* src/nsterm.m (- mouseDown): Clear scroll wheel
	accumulators.

2021-11-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Define a face for shr text

	* lisp/net/shr.el (shr-text): New face.
	(shr-insert): Use it instead of hard-coding `variable-pitch'.

2021-11-25  Po Lu  <luangruo@yahoo.com>

	Set serial when filtering XI_KeyPress events

	This fixes fcitx flicker for whatever reason.

	* src/xterm.c (handle_one_xevent): Set serial when filtering
	XI_KeyPress events.

2021-11-24  Po Lu  <luangruo@yahoo.com>

	Add support for pixel wheel deltas on NS

	* src/xterm.c (x_coalesce_scroll_events): Update doc string.
	* src/nsterm.c (- mouseDown): Report pixel scroll deltas.
	(x_coalesce_scroll_events): New variable

2021-11-24  Stephen Gildea  <stepheng+emacs@gildea.com>

	mh-utils-tests: 'mh-sub-folders-actual' coverage

	* test/lisp/mh-e/mh-utils.el (mh-sub-folders-parse-no-folder)
	(mh-sub-folders-parse-relative-folder, mh-sub-folders-parse-root-folder):
	New tests.
	* lisp/mh-e/mh-utils.el (mh-sub-folders-parse): New function,
	refactored out of 'mh-sub-folders-actual' to create a testing seam.

2021-11-24  Matt Kramer  <mkramer@lbl.gov>  (tiny change)

	Fix tab-line cycling when using buffer groups (bug#52050)

	* lisp/tab-line.el (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab):
	Remove tabs that aren't associated with a buffer, such as the `group-tab' that
	exists when `tab-line-tabs-function' is `tab-line-tabs-buffer-groups'.

2021-11-24  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	b4f47d2 Use @pxref when necessary

2021-11-24  Michael Albinus  <michael.albinus@gmx.de>

	Some optimizations for emba jobs

	* test/infra/gitlab-ci.yml (.test-template): Remove.
	(test-all-inotify, test-filenotify-gio, test-gnustep)
	(test-native-comp-speed0):
	* test/infra/Makefile.in (subdir_template): Remove .test-template
	from extends.  Add or adapt needs and artifacts.

	* test/infra/test-jobs.yml: Regenerate.

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove APPEND argument from add-display-text-property

	* doc/lispref/display.texi (Display Property): Update doc.
	* lisp/emacs-lisp/subr-x.el (add-display-text-property): Remove
	the append argument -- it's nonsensical.

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix min-width problem with "overlapping" regions

	* src/xdisp.c (handle_display_prop): Fix problem with overlapping
	regions.

2021-11-24  Juri Linkov  <juri@linkov.net>

	* lisp/outline.el (outline-font-lock-keywords): Replace ‘.+’ with ‘.*’.

	Make the regexp less restrictive and don't require the outline heading
	to have more text after outline-regexp until the end of the heading line
	(bug#51016).

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function 'add-display-text-property'

	* doc/lispref/display.texi (Display Property): Document it.
	* lisp/emacs-lisp/subr-x.el (add-display-text-property): New function.

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Change eshell-mode mode-line-format insinuation

	* lisp/eshell/esh-mode.el (eshell-mode): Tweak how the mode line
	is altered after recent mode-line-format changes.

2021-11-24  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of 'min-width' display spec.

	* doc/lispref/display.texi (Other Display Specs): Clarify
	documentation of the 'min-width' display spec.

2021-11-24  Narendra Joshi  <narendraj9@gmail.com>  (tiny change)

	* lisp/vcursor.el (vcursor-get-char-count): Preserve point

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in display_min_width comment

	* src/xdisp.c (display_min_width): Fix typo in comment.

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make min-width of the U:-- wider

	* lisp/bindings.el (standard-mode-line-format): Make the modified
	bits larger since there's often a big difference between - and %
	characters.

2021-11-24  Stephen Gildea  <stepheng+emacs@gildea.com>

	mh-utils-tests: Add new tests of "folders +/"

	* test/lisp/mh-e/mh-utils-tests.el
	(mh-sub-folders-actual, mh-sub-folders): Add new tests of "folders +/".
	Rewrite tests that were using 'assoc' to use 'member' instead, so that
	on failure, ERT logs the list of which the element was not a member,
	rather than the 'nil' returned by 'assoc'.
	(mh-test-variant-handles-plus-slash): Factor out new helper function.
	(mh-folder-completion-function-08-plus-slash)
	(mh-folder-completion-function-09-plus-slash-tmp):
	Use new helper function.
	* test/lisp/mh-e/test-all-mh-variants.sh: LD_LIBRARY_PATH unnecessary.

2021-11-24  Eli Zaretskii  <eliz@gnu.org>

	Minor fixes for a recent commit

	* src/xdisp.c (find_display_property): Fix style of comments.
	(Fget_display_property): Doc fix.
	(get_display_property): Fix style and whitespace.

2021-11-24  Mattias Engdegård  <mattiase@acm.org>

	Add sample of -fanalyzer output (bug#51882)

	* etc/compilation.txt (file): Add fragment of GCC diagnostics from
	-fanalyzer (from Philip Kaludercic).

2021-11-24  Mattias Engdegård  <mattiase@acm.org>

	Tighten `gnu` compile regexp further

	* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
	The -fanalyzer ASCII art does not contain tabs.

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Use a proportional font for the mode line

	* lisp/bindings.el (mode-line-position): Add min-width specs.
	(standard-mode-line-format): Ditto.

	* lisp/faces.el (mode-line): Inherit from `variable-pitch'.

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Make display_min_width work from the mode line

	* src/xdisp.c (display_min_width): Make this work from mode line
	constructs via display_string.

2021-11-24  Robert Pluim  <rpluim@gmail.com>

	* admin/unidata/emoji-zwj.awk: Quote functions properly.

2021-11-24  Po Lu  <luangruo@yahoo.com>

	Make `yank-media' work on Haiku

	This works with what WebPositive does with images, at least.  I don't
	know about other programs, but Haiku doesn't seem to standardize this
	very well.

	* lisp/term/haiku-win.el (haiku--selection-type-to-mime): Handle
	regular symbols.
	(gui-backend-get-selection): Handle special type `TARGETS'.
	(gui-backend-set-selection): Always clear clipboard.

	* src/haiku_select.cc (BClipboard_get_targets): New function.
	(BClipboard_set_data): New argument `clear'.  All callers
	changed.
	(BClipboard_set_system_data)
	(BClipboard_set_primary_selection_data)
	(BClipboard_set_secondary_selection_data): New argument `clear'.

	(BClipboard_system_targets, BClipboard_primary_targets)
	(BClipboard_secondary_targets): New functions.

	* src/haikuselect.c (haiku_selection_data_1): New function.
	(Fhaiku_selection_targets): New function.
	(Fhaiku_selection_put): Allow controlling if the clipboard is
	cleared.
	(syms_of_haikuselect): New symbols and subrs.

	* src/haikuselect.h (BClipboard_set_system_data)
	(BClipboard_set_primary_selection_data)
	(BClipboard_set_secondary_selection_data): New argument `clear'.

	(BClipboard_system_targets, BClipboard_primary_targets)
	(BClipboard_secondary_targets): New functions.

2021-11-24  Michael Albinus  <michael.albinus@gmx.de>

	* admin/notes/emba (Emacs jobset): Remove stage slow.

	* test/infra/Makefile.in (subdir_template): Add rule.

	* test/infra/gitlab-ci.yml (.job-template): Remove changes section.
	(.build-template, .gnustep-template, .filenotify-gio-template):
	(.native-comp-template): Adapt changes section.
	(.test-template): Add needs.  Adapt artifacts paths.
	(stages): Remove slow.
	(test-all-inotify): Move up.  Change stage to normal.  Remove timeout.
	(test-filenotify-gio, test-gnustep, test-native-comp-speed0):
	Move needs up.

	* test/infra/test-jobs.yml: Regenerate.

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix min-width end condition handling

	* src/xdisp.c (handle_display_prop): Fix check for min-width ends
	-- they may be consecutive.

2021-11-24  Po Lu  <luangruo@yahoo.com>

	Correct adjustments to frame widths in events

	* src/haiku_support.cc (EmacsWindow.FrameResized)
	(EmacsWindow.Zoom): Adjust widths to fit into the correct
	coordinate system.

2021-11-24  Po Lu  <luangruo@yahoo.com>

	Remove unused arguments to EmacsView.AfterResize

	* src/haiku_support.cc (EmacsView.AfterResize): Remove
	unused arguments.
	(BView_resize_to): Stop passing unused arguments.

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add support for the min-width display property

	* doc/lispref/display.texi (Display Property): Document
	get-display-property.
	(Other Display Specs): Document min-width property.

	* src/dispextern.h (struct it): Add fields for min-width handling.

	* src/xdisp.c (find_display_property, get_display_property): New
	helper functions.
	(display_min_width): Insert stretch glyphs based on the min width.
	(Fget_display_property): New defun.
	(handle_display_prop): Handle min-width ends.
	(handle_single_display_spec): Handle min-width starts.

2021-11-24  Gregory Heytings  <gregory@heytings.org>

	Re-enable the disabledForeground X resource.

	* doc/emacs/xresources.texi (Lucid Resources): Document the resource.
	Also document the 'cursor' resource (bug#52052).
	* lwlib/xlwmenu.c (make_drawing_gcs): Re-enable the use of the
	disabledForeground resource.  The use of this X resource was disabled
	without reason in commit ef93458b2f8 by overwriting its value with the
	value of the foreground resource.

2021-11-24  Alan Third  <alan@idiocy.org>

	Allow NS to handle non-text clipboard contents

	* src/nsselect.m (ns_get_foreign_selection): Handle non-plain text
	clipboard entries.
	(ns_string_from_pasteboard): Remove EOL conversion.
	(syms_of_nsselect): Define QTARGETS.

2021-11-24  Po Lu  <luangruo@yahoo.com>

	Clear past end of frame on Haiku

	* src/haiku_support.c (EmacsWindow.FrameResized): Delete
	size adjustment.

	* src/haikuterm.c (haiku_clear_frame): Clear one pixel
	past the end of the frame.

2021-11-24  Po Lu  <luangruo@yahoo.com>

	Fix 1 pixel wide border in frames on Haiku

	* src/haiku_support.cc (EmacsWindow.FrameResized): Add 1 to
	pixel widths.

	* src/haikuterm.c (haiku_read_socket): Use `lrint' to round
	widths.

2021-11-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix string-glyph-split infloop

	* lisp/emacs-lisp/subr-x.el (string-glyph-split): Fix infloop when
	applied to (string-glyph-split "✈️🌍") (bug#52067).

2021-11-24  Gregory Heytings  <gregory@heytings.org>

	Pass options from make to configure through a variable.

	* GNUmakefile (configure): Use the variable.

	* INSTALL.REPO: Document the variable (bug#51965).

2021-11-24  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	756b8a5f1b Fix typos in documentation
	38fdeaef46 ; * etc/DEBUG: Fix last change.

2021-11-23  Po Lu  <luangruo@yahoo.com>

	Fix mouse-wheel-text-scale

	* lisp/mwheel.el (mouse-wheel-text-scale): Test for alternative
	events correctly.

2021-11-23  Po Lu  <luangruo@yahoo.com>

	Remove extraneous code left over from the ftbe font driver

	* src/haikuterm.c (syms_of_haikuterm): Remove dead code.

2021-11-23  Po Lu  <luangruo@yahoo.com>

	Use only effective modifiers when handling XI2 button events

	* src/xterm.c (handle_one_xevent): Use mods.effective when
	constructing button events.

2021-11-23  Yuuki Harano  <masm+github@masm11.me>

	Remove PGTK_DEBUG stuff

	* src/gtkutil.c:
	(xg_create_frame_widgets):
	(xg_create_frame_outer_widgets):
	(x_wm_set_size_hint):
	(xg_set_toolkit_scroll_bar_thumb):
	* src/pgtkfns.c (x_set_background_color):
	(pgtk_set_name):
	(x_explicitly_set_name):
	(pgtk_implicitly_set_name):
	(x_set_title):
	(Fx_create_frame):
	(Fpgtk_set_mouse_absolute_pixel_position):
	(pgtk_log):
	(pgtk_backtrace):
	* src/pgtkselect.c (get_func):
	(clear_func):
	(pgtk_selection_lost):
	(Fpgtk_own_selection_internal):
	(Fpgtk_disown_selection_internal):
	(Fpgtk_selection_exists_p):
	(Fpgtk_selection_owner_p):
	(nxatoms_of_pgtkselect):
	(syms_of_pgtkselect):
	* src/pgtkterm.c (flip_cr_context):
	(get_keysym_name):
	(frame_set_mouse_pixel_position):
	(x_free_frame_resources):
	(x_destroy_window):
	(x_set_offset):
	(pgtk_set_window_size):
	(pgtk_iconify_frame):
	(pgtk_make_frame_visible):
	(pgtk_make_frame_invisible):
	(pgtk_new_font):
	(x_display_pixel_height):
	(x_display_pixel_width):
	(x_set_no_focus_on_map):
	(x_set_no_accept_focus):
	(x_set_z_group):
	(x_set_cursor_gc):
	(x_set_glyph_string_gc):
	(x_set_glyph_string_clipping):
	(x_draw_glyph_string_background):
	(pgtk_draw_glyph_string):
	(pgtk_after_update_window_line):
	(pgtk_clear_frame_area):
	(pgtk_draw_window_cursor):
	(pgtk_copy_bits):
	(pgtk_cr_draw_image):
	(pgtk_draw_fringe_bitmap):
	(pgtk_redraw_scroll_bars):
	(pgtk_clear_frame):
	(pgtk_read_socket):
	(pgtk_select):
	(xg_scroll_callback):
	(xg_end_scroll_callback):
	(pgtk_set_vertical_scroll_bar):
	(set_fullscreen_state):
	(pgtk_fullscreen_hook):
	(pgtk_handle_event):
	(pgtk_fill_rectangle):
	(pgtk_clear_under_internal_border):
	(print_widget_tree_recursive):
	(print_widget_tree):
	(pgtk_handle_draw):
	(size_allocate):
	(key_press_event):
	(key_release_event):
	(map_event):
	(delete_event):
	(enter_notify_event):
	(leave_notify_event):
	(focus_in_event):
	(focus_out_event):
	(motion_notify_event):
	(button_event):
	(scroll_event):
	(drag_data_received):
	(pgtk_xlfd_to_fontname):
	(pgtk_defined_color):
	(pgtk_parse_color):
	(pgtk_query_colors):
	(pgtk_query_color):
	(pgtk_clear_area):
	(pgtk_cr_update_surface_desired_size):
	(pgtk_begin_cr_clip):
	(pgtk_end_cr_clip):
	(pgtk_set_cr_source_with_gc_foreground):
	(pgtk_set_cr_source_with_gc_background):
	(pgtk_set_cr_source_with_color):
	(pgtk_cr_draw_frame):
	(pgtk_cr_destroy_frame_context):
	* src/pgtkterm.h:

2021-11-23  Michael Albinus  <michael.albinus@gmx.de>

	Adapt artifacts paths in emba testjobs

	* test/infra/Makefile.in (subdir_template): Adapt artifacts paths.

	* test/infra/test-jobs.yml: Regenerate.

2021-11-23  Yuuki Harano  <masm+github@masm11.me>

	* src/ftcrfont.c (ftcrfont_open): Revert redundant brace change.

2021-11-23  Yuuki Harano  <masm+github@masm11.me>

	* src/frame.c (syms_of_frame): Revert frame_resize_pixelwise defaults to false

	It was just a workaround of mutter's bug, which is already fixed, so
	we can revert it.

2021-11-23  Yuuki Harano  <masm+github@masm11.me>

	* src/frame.c (Fframep): Fix comment

2021-11-23  Yuuki Harano  <masm+github@masm11.me>

	* src/font.h: Remove redundant condition

	It is redundant because pgtk build always defines HAVE_FREETYPE.

2021-11-23  Yuuki Harano  <masm+github@masm11.me>

	Enclose pgtk changes within #ifdef

	* src/emacsgtkfixed.c:
	* src/emacsgtkfixed.h:

2021-11-23  Yuuki Harano  <masm+github@masm11.me>

	* src/emacs.c (main): Combine two conditions to one

2021-11-23  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	bdb489a ; * etc/DEBUG: Adjust instructions for libgccjit reproducer.
	b4fb381 ; * src/xdisp.c (produce_stretch_glyph): Avoid compilation wa...

2021-11-23  Stefan Kangas  <stefankangas@gmail.com>

	Prefer locate-user-emacs-file in gitmerge.el

	* admin/gitmerge.el (gitmerge-status-file): Prefer
	'locate-user-emacs-file' to fiddling with 'user-emacs-directory'.

2021-11-23  Po Lu  <luangruo@yahoo.com>

	Fix compilation with XInput 2 but without XKB

	* src/xterm.c (handle_one_xevent): Remove extraneous
	conditional.

2021-11-23  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	d791cd556d Fix '(space :relative-width N)' display spec w/non-ASCII c...
	712898210f * lisp/proced.el (proced-sort-header): Fix event positions...

	# Conflicts:
	#	lisp/proced.el

2021-11-22  Po Lu  <luangruo@yahoo.com>

	Only reset scroll valuators on real enter events

	* src/xterm.c (handle_one_xevent): Test event detail and mode
	before resetting scroll valuators.

2021-11-22  Po Lu  <luangruo@yahoo.com>

	Fix delay between tool bar clicks and visual feedback

	* src/haikuterm.c (haiku_read_socket): Redisplay after tool
	bar click.

2021-11-22  Po Lu  <luangruo@yahoo.com>

	Fix XI2 keysym translation

	* src/xterm.c (handle_one_xevent): Handle XI_KeyPress events
	that can't be translated into strings.

2021-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/subr.el (event-start, event-end): Handle `(menu-bar)` events

	* lisp/net/browse-url.el (browse-url-interactive-arg): Simplify accordingly

2021-11-22  Juri Linkov  <juri@linkov.net>

	* lisp/textmodes/flyspell.el: Pop up the menu under cursor from keyboard.

	* lisp/textmodes/flyspell.el (flyspell-emacs-popup):
	Use popup-menu-normalize-position with point when no mouse is involved,
	instead of the incorrect use of mouse-position (bug#52025).

2021-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>

	src/indent.c, src/xdisp.c: Questions about with_echo_area_buffer_unwind_data

2021-11-22  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: 'C-x t RET' creates a new tab for non-existent tab name.

	* lisp/tab-bar.el (tab-bar-switch-to-tab): Create a new tab and
	rename it to NAME when can't find the tab with the given NAME (bug#51935).

2021-11-22  Mattias Engdegård  <mattiase@acm.org>

	Simplify `gnu` compilation-mode regexp

	* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
	Remove the pattern ostensibly added for Ruby, because at closer
	inspection it could never have matched anything.  This lessens the
	performance impact of the pattern added for GCC's -fanalyzer,
	now slightly tweaked.

2021-11-22  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el (tab-bar-history-old-minibuffer-depth): Remove variable.

	(tab-bar--history-pre-change, tab-bar--history-change): Use minibuffer-depth
	instead of this variable (bug#51370).

2021-11-22  Michael Albinus  <michael.albinus@gmx.de>

	Adapt emba jobs

	* admin/notes/emba (Emacs jobset): Precise.

	* test/infra/Makefile.in (tn): New variable.
	(subdir_template): Use it.  Handle eieio-tests, faceup-tests and
	so-long-tests.  Rearrange .PHONY entry.  Add needs and artifacts
	to emba job.

	* test/infra/gitlab-ci.yml (test-filenotify-gio): Move up.

	* test/infra/test-jobs.yml: Regenerate.

2021-11-22  Eli Zaretskii  <eliz@gnu.org>

	Improve recently installed documentation

	* doc/lispref/display.texi (Size of Displayed Text): Move to
	description of 'buffer-text-pixel-size' to preserve previous text;
	mention the importance of WINDOW.

2021-11-22  Po Lu  <luangruo@yahoo.com>

	Fix compiler warning in image.c

	* src/image.c (webp_load): Initialize `mask_img' to NULL.

2021-11-22  Stefan Kangas  <stefankangas@gmail.com>

	Use substitute-command-keys for literal key sequences

	* lisp/abbrev.el (expand-region-abbrevs):
	* lisp/calc/calc-graph.el (calc-graph-show-dumb):
	* lisp/calc/calc-help.el (calc-help-for-help):
	* lisp/calc/calc-mode.el (calc-auto-why):
	* lisp/calc/calc.el (calc-do):
	* lisp/calculator.el (calculator-mode):
	* lisp/dired-aux.el (dired-create-files)
	(dired-do-create-files-regexp, dired-create-files-non-directory):
	* lisp/dired-x.el (dired-virtual):
	* lisp/dired.el (dired-mark-region, dired-unmark-all-files):
	* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
	* lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
	* lisp/epa-ks.el (epa-ks--display-keys):
	* lisp/erc/erc.el (erc-toggle-debug-irc-protocol):
	* lisp/files.el (save-some-buffers):
	* lisp/gnus/gnus-dired.el (gnus-dired-find-file-mailcap)
	(gnus-dired-print):
	* lisp/gnus/gnus-group.el (gnus-keep-same-level):
	* lisp/gnus/gnus-score.el (gnus-score-find-trace):
	* lisp/gnus/gnus.el (to-list):
	* lisp/gnus/message.el (message--send-mail-maybe-partially):
	* lisp/mail/supercite.el (sc-set-variable):
	* lisp/minibuffer.el (minibuffer-inactive-mode):
	* lisp/progmodes/etags.el (select-tags-table):
	* lisp/progmodes/idlw-shell.el (idlwave-shell-mode)
	(idlwave-shell-char-mode-loop):
	* lisp/replace.el (query-replace-help):
	* lisp/simple.el (set-variable):
	* lisp/subr.el (read-char-from-minibuffer):
	* lisp/textmodes/ispell.el (ispell-help, ispell-message):
	* lisp/textmodes/reftex-global.el (reftex-find-duplicate-labels):
	* lisp/textmodes/reftex-vars.el
	(reftex-toc-include-file-boundaries)
	(reftex-toc-include-labels, reftex-toc-include-index-entries)
	(reftex-toc-include-context, reftex-toc-follow-mode)
	(reftex-index-include-context, reftex-index-follow-mode)
	(reftex-enable-partial-scans)
	(reftex-auto-update-selection-buffers)
	(reftex-highlight-selection):
	* lisp/time.el (display-time-update):
	* lisp/vc/ediff-help.el (ediff-help-for-quick-help):
	* lisp/vc/ediff-init.el (ediff-keep-variants):
	* lisp/vc/ediff-ptch.el (ediff-fixup-patch-map)
	(ediff-patch-file-internal):
	* lisp/windmove.el (windmove-delete-default-keybindings): Use
	'substitute-command-keys' for literal key sequences.

	* lisp/userlock.el (userlock--fontify-key): Remove function.
	(ask-user-about-lock, ask-user-about-lock-help)
	(ask-user-about-supersession-threat)
	(ask-user-about-supersession-help): Use 'substitute-command-keys' for
	literal key sequences.

	* lisp/ibuffer.el (ibuffer-unmark-all): Use 'substitute-command-keys'
	for command.

2021-11-22  Stefan Kangas  <stefankangas@gmail.com>

	Avoid false positives about wide docstrings for key sequences

	* lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p):
	Ignore literal key sequence substitutions.
	* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-substitutions.el:
	New file.
	* test/lisp/emacs-lisp/bytecomp-tests.el
	("warn-wide-docstring-ignore-substitutions.el"): New test.

2021-11-22  martin rudalics  <rudalics@gmx.at>

	Add new function buffer-text-pixel-size

	* doc/lispref/display.texi (Size of Displayed Text): Document it.

	* lisp/emacs-lisp/subr-x.el (string-pixel-width): Use
	buffer-text-pixel-size (bug#51995).

	* src/xdisp.c (window_text_pixel_size): Factor out from
	Fwindow_text_pixel_size.
	(Fbuffer_text_pixel_size): New function.

2021-11-22  Po Lu  <luangruo@yahoo.com>

	Fix mouse movement event generation on Haiku

	* src/haikuterm.c (haiku_mouse_position): Set timestamp.
	(haiku_read_socket): Set last_mouse_movement_time.

	* src/haikuterm.h (struct haiku_display_info): Add field
	`last_mouse_movement_time'.

2021-11-22  Po Lu  <luangruo@yahoo.com>

	Don't set button event modifiers twice on Haiku

	* src/haikuterm.c (haiku_read_socket): Simplify.

2021-11-22  Po Lu  <luangruo@yahoo.com>

	Move XI2 event filtering to a more appropriate location

	* src/xterm.c (handle_one_xevent): Filter all key press events
	even if no frame is found.

2021-11-22  Stefan Kangas  <stefankangas@gmail.com>

	Add new format for literal key sequences to substitute-command-keys

	* lisp/help.el (substitute-command-keys): Add new format "\\`f'" for
	literal key sequences.  (Bug#50804)
	* doc/lispref/help.texi (Keys in Documentation): Document the above
	new substitution.

	* test/lisp/help-tests.el
	(help-tests-substitute-command-keys/literal-key-sequence):
	(help-tests-substitute-command-keys/literal-key-sequence-errors): New
	tests.
	(help-tests-substitute-key-bindings/face-help-key-binding): Extend test.

2021-11-22  Po Lu  <luangruo@yahoo.com>

	Use more precise test for emulated wheel events in XI2

	* src/xterm.c (handle_one_xevent): Ignore button events
	that have XIPointerEmulated set.

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Make `xwidget-display-event' a special event as well

	* doc/lispref/commands.texi (Xwidget Events): Document that
	`xwidget-display-event' is a special event, and that it should
	be handled through callbacks.

	* etc/NEWS: Update NEWS entry.

	* lisp/xwidget.el (xwidget-webkit-new-session)
	(xwidget-webkit-import-widget): Attach display callback.
	(xwidget-webkit-display-event): Call display callback instead.
	(xwidget-webkit-display-callback): New function.

	* src/keyboard.c (make_lispy_event): Store
	source information for XWIDGET_DISPLAY_EVENT correctly.

	* src/xwidget.c (store_xwidget_display_event): Store
	source of the display request.
	(webkit_ready_to_show): Store source if available.
	(webkit_create_cb_1): Store source if available.
	(kill_xwidget): Remove dead widget from internal_xwidget_list.

2021-11-21  Glenn Morris  <rgm@gnu.org>

	Fix recent compile-tests addition

	* test/lisp/progmodes/compile-tests.el (compile-test-error-regexps):
	Bump number of expected errors.

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Also filter XI_KeyRelease events

	* src/xterm.c (handle_one_xevent): Also filter XI_KeyRelease
	events through the X input method.

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Use only effective modifiers for XI2 key press events

	* src/xterm.c (handle_one_xevent): Use only effective modifiers
	in XI_KeyPress events.

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Remove variable that no longer exists from manual

	* doc/emacs/haiku.texi: Remove nonexistent variable.

2021-11-21  Stefan Kangas  <stefankangas@gmail.com>

	Adapt isearch help screen for variable-pitch-mode

	* lisp/isearch.el (isearch-help-for-help-internal): Adapt for
	'variable-pitch-mode', now that 'make-help-screen' uses that.

2021-11-21  Omar Polo  <op@omarpolo.com>

	implement certfp authentication to rcirc

	* lisp/net/rcirc.el (rcirc-connect): Use the provided client certs
	* doc/misc/rcirc.texi (Configuration): Document the change

2021-11-21  Omar Polo  <op@omarpolo.com>

	Move the sasl section after the bitlbee text

2021-11-21  Philip Kaludercic  <philipk@posteo.net>

	Improve error parsing for GCC -fanalyzer output

	* compile.el (compilation-error-regexp-alist-alist): Adjust gnu rule
	* compile-tests.el (compile-tests--test-regexps-data): Add testcase

2021-11-21  Eli Zaretskii  <eliz@gnu.org>

	Fix positioning of pop-up menus when there are window-margins

	* src/menu.c (x_popup_menu_1): Calculate X and Y correctly for
	clicks in the text area.  (Bug#51782)

2021-11-21  Robert Pluim  <rpluim@gmail.com>

	Add :version tags to new mwheel defcustoms

	* lisp/mwheel.el (mouse-wheel-down-alternate-event):
	(mouse-wheel-up-alternate-event): Add :version tag.

2021-11-21  Eli Zaretskii  <eliz@gnu.org>

	Minor cleanup in w32inevt.c

	* src/w32inevt.c (w32_console_mouse_position, mouse_moved_to)
	(do_mouse_event): Use 'get_frame' to obtain the frame pointer.

2021-11-21  Stefan Kangas  <stefankangas@gmail.com>

	Use variable-pitch-mode in 'C-h C-h'

	* lisp/faces.el (help-key-binding): Inherit 'fixed-pitch'.
	* lisp/help-macro.el (make-help-screen): Use
	'variable-pitch-mode'.

	This was discussed in
	https://lists.gnu.org/r/emacs-devel/2021-11/msg01378.html

2021-11-21  Michael Albinus  <michael.albinus@gmx.de>

	Reorganize emba control files

	Using dynamic job generation in GitLab does not work sufficiently.  So
	we generate the jobs in the Emacs sources.

	* configure.ac (SUBDIR_MAKEFILES): Add test/infra/Makefile.

	* test/Makefile.in (subdirs, generate-test-jobs): New targets.

	* test/infra/Makefile.in:
	* test/infra/test-jobs.yml: New files.

	* test/infra/default-gitlab-ci.yml:
	* test/infra/test-jobs-generator.sh: Remove.

	* test/infra/gitlab-ci.yml: Insert contents of default-gitlab-ci.yml.
	(stages): Remove generator and trigger.  Add normal.
	(test-jobs-generator, test-jobs-pipeline): Remove jobs.
	(top): Include test-jobs.yml.

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Fix double and triple click in Haiku.

	* src/haikuterm.c (haiku_read_socket): Record timestamp
	in events.

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Report time in XInput 2 button events

	* src/xterm.c (handle_one_xevent): Report time in XI button
	events.

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Fix horizontal wheel events on Haiku

	* src/haikuterm.c (haiku_read_socket): Fix modifier
	calculation for horizontal wheel events.

2021-11-21  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	0dd3883def Update to Org 9.5-72-gc5d6656
	e3d5337970 Fix mouse handling with several TTY frames on MS-Windows
	7e437af413 Fix temacs invocation from outside of the 'src' directory
	0fbfd4253e ; Avoid byte-compilation warnings in edmacro.el
	c22c988b1f Fix mouse events on tab bar or tool bar when 'track-mouse'...
	354c834fba Fix `browse-url-interactive-arg' for certain kinds of events

	# Conflicts:
	#	lisp/mouse.el

2021-11-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fill the Emacs version on the splash page

	* lisp/startup.el (fancy-startup-tail):
	(normal-mouse-startup-screen):
	(normal-no-mouse-startup-screen): Fill the Emacs version data,
	since it's usually longer than a single line, anyway.

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Implement `pick_embedded_child' for offscreen xwidgets

	* src/xwidget.c (pick_embedded_child): New function.
	(Fmake_xwidget): Connect `pick-embedded-child' signal
	to offscreen window.

2021-11-21  Stefan Kangas  <stefankangas@gmail.com>

	Revert "* admin/gitmerge.el (gitmerge-mode-map): Convert to defvar-keymap."

	This reverts commit 4c467e4aff12e65fa4fa62d7f4bdcbf4a2bcd92c.

2021-11-21  dickmao  <dick.r.chiang@gmail.com>

	Fix icalendar time zone parsing

	* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
	Parse time zones more correctly.
	* test/lisp/calendar/icalendar-tests.el
	(icalendar-tests--decode-isodatetime): Fix tests so that they work
	in other time zones than Europe/Berlin (bug#51959).

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Fix documentation string of x_coalesce_scroll_events

	* src/xterm.c (x_coalesce_scroll_events): Update doc string to
	reflect that this option is now supported under Haiku.

2021-11-21  Eli Zaretskii  <eliz@gnu.org>

	Improve the fix for bug#51864

	* src/xfaces.c (face_at_buffer_position): Call
	FACE_FROM_ID_OR_NULL just once.
	(face_at_string_position): Make sure we have a usable base face.

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Improve Haiku documentation

	* doc/emacs/haiku.texi: Remove duplicate text and
	extraneous pxref.

2021-11-21  Po Lu  <luangruo@yahoo.com>

	Add a user command to stop page loading in xwidget-webkit

	* lisp/xwidget.el: Add `xwidget-webkit-stop' to menu.
	(xwidget-webkit-stop): New command.
	(xwidget-webkit-tool-bar-map): New tool bar item.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Fix compiler warnings

	* src/haikuterm.c (haiku_read_socket): Fix compiler
	warnings intoduced by last change.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Add pixel delta support for wheel events on Haiku

	* src/haiku_support.cc (EmacsWindow.MessageReceived): Stop
	adjusting scroll deltas.
	* src/haikuterm.c (haiku_read_socket): Handle pixel deltas
	correctly.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Attach download-started signals to correct WebKit context

	* src/xwidget.c (Fmake_xwidget): Use correct context.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Allow handling smooth scroll events in xwidgets

	* src/xterm.c (handle_one_xevent): Pass through XI2 motion
	events to xwidgets.
	* src/xterm.c (xwidget_button): Don't handle legacy scroll
	events on XInput 2.
	(xwidget_motion_notify, xwidget_scroll): New functions.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Select device notification events correctly

	* src/xfns.c (setup_xi_event_mask): Select PropertyEvent,
	HierarchyChanged and DeviceChanged for all devices.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Add XInput 2 input method support

	* src/xterm.c (handle_one_xevent): Let input methods filter
	events first before trying to handle an XI2 key press event.

2021-11-20  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/test-jobs-generator.sh: Generate also stages entry.

	Revert last change on emba files

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Add support for the Haiku operating system and its window system

	* .gitignore: Add binaries specific to Haiku.

	* Makefie.in (HAVE_BE_APP): New variable.
	(install-arch-dep): Install Emacs and Emacs.pdmp when
	using Haiku.

	* configure.ac: Detect and configure for Haiku and
	various related configurations.
	(be-app, be-freetype, be-cairo): New options.
	(HAVE_BE_APP, HAIKU_OBJ, HAIKU_CXX_OBJ)
	(HAIKU_LIBS, HAIKU_CFLAGS): New variables.
	(HAIKU, HAVE_TINY_SPEED_T): New define.
	(emacs_config_features): Add BE_APP.

	* doc/emacs/Makefile.in (EMACSSOURCES): Add Haiku
	appendix.

	* doc/emacs/emacs.texi: Add Haiku appendix to menus and
	include it.

	* doc/emacs/haiku.texi: New Haiku appendix.

	* doc/lispref/display.texi (Defining Faces, Window Systems):
	Explain meaning of `haiku' as a window system identifier.
	(haiku-use-system-tooltips): Explain meaning of system
	tooltips on
	Haiku.

	* doc/lispref/frames.texi (Multiple Terminals): Explain
	meaning of haiku as a display type.
	(Frame Layout): Clarify section for Haiku frames.
	(Size Parameters): Explain limitations of fullwidth and
	fullheight on Haiku.
	(Management Parameters): Explain limitations of
	inhibiting double buffering on builds with Cairo,
	and the inability of frames with no-accept-focus to
	receive keyboard input on Haiku.
	(Font and Color Parameters): Explain the different font
	backends available on Haiku.
	(Raising and Lowering): Explain that lowering and
	restacking frames doesn't work on Haiku.
	(Child Frames): Explain oddities of child frame
	visibility on Haiku.

	* doc/lispref/os.texi (System Environment): Explain
	meaning of haiku.
	* etc/MACHINES: Add appropriate notices for Haiku.
	* etc/NEWS: Document changes.
	* etc/PROBLEMS: Document font spacing bug on Haiku.

	* lib-src/Makefile.in: Build be-resources binary on
	Haiku.
	(CXX, CXXFLAGS, NON_CXX_FLAGS, ALL_CXXFLAGS)
	(HAVE_BE_APP, HAIKU_LIBS, HAIKU_CFLAGS): New variables.
	(DONT_INSTALL): Add be-resources binary if on Haiku.
	(be-resources): New target.

	* lib-src/be_resources.cc: Add helper binary for setting
	resources on the Emacs application.

	* lib-src/emacsclient.c (decode_options): Set
	alt_display to "be" on Haiku.

	* lisp/cus-edit.el (custom-button, custom-button-mouse)
	(custom-button-unraised, custom-button-pressed): Update
	face definitions for Haiku.

	* lisp/cus-start.el: Add haiku-debug-on-fatal-error and
	haiku-use-system-tooltips.

	* lisp/faces.el (face-valid-attribute-values): Clarify
	attribute comment for Haiku.
	(tool-bar): Add appropriate toolbar color for Haiku.

	* lisp/frame.el (haiku-frame-geometry)
	(haiku-mouse-absolute-pixel-position)
	(haiku-set-mouse-absolute-pixel-position)
	(haiku-frame-edges)
	(haiku-frame-list-z-order): New function declarations.

	(frame-geometry, frame-edges)
	(mouse-absolute-pixel-position)
	(set-mouse-absolute-pixel-position)
	(frame-list-z-order): Call appropriate window system
	functions on Haiku.

	(display-mouse-p, display-graphic-p)
	(display-images-p, display-pixel-height)
	(display-pixel-width, display-mm-height)
	(display-mm-width, display-backing-store)
	(display-save-under, display-planes)
	(display-color-cells, display-visual-class): Update type
	tests for Haiku.

	* lisp/international/mule-cmds.el
	(set-coding-system-map): Also
	prevent set-terminal-coding-system from appearing in the menu
	bar on Haiku.

	* lisp/loadup.el: Load Haiku-specific files when built
	with Haiku, and don't rename newly built Emacs on Haiku as BFS
	doesn't support hard links.

	* lisp/menu-bar.el (menu-bar-open): Add for Haiku.

	* lisp/mwheel.el (mouse-wheel-down-event): Expect
	wheel-up on Haiku.
	(mouse-wheel-up-event): Expect wheel-down on Haiku.
	(mouse-wheel-left-event): Expect wheel-left on Haiku.
	(mouse-wheel-right-event): Expect wheel-right on Haiku.

	* lisp/net/browse-url.el
	(browse-url--browser-defcustom-type):
	Add option for WebPositive.
	(browse-url-webpositive-program): New variable.
	(browse-url-default-program): Search for WebPositive.
	(browse-url-webpositive): New function.

	* lisp/net/eww.el (eww-form-submit, eww-form-file)
	(eww-form-checkbox, eww-form-select): Define faces
	appropriately for Haiku.

	* lisp/term/haiku-win.el: New file.

	* lisp/tooltip.el (menu-or-popup-active-p): New function
	declaration.
	(tooltip-show-help): Don't use tooltips on Haiku when a
	menu is active.

	* lisp/version.el (haiku-get-version-string): New
	function declaration.
	(emacs-version): Add Haiku version string if
	appropriate.

	* src/Makefile.in: Also produce binary named "Emacs"
	with Haiku resources set.

	(CXX, HAIKU_OBJ, HAIKU_CXX_OBJ, HAIKU_LIBS)
	(HAIKU_CFLAGS, HAVE_BE_APP, NON_CXX_FLAGS)
	(ALL_CXX_FLAGS): New variables.

	(.SUFFIXES): Add .cc.
	(.cc.o): New target.
	(base_obj): Add Haiku C objects.
	(doc_obj, obj): Split objects that should scanned for
	documentation into doc_obj.
	(SOME_MACHINE_OBJECTS): Add appropriate Haiku C objects.
	(all): Depend on Emacs and Emacs.pdmp on Haiku.
	(LIBES): Add Haiku libraries.
	(gl-stamp)
	($(etc)/DOC): Scan doc_obj instead of obj
	(temacs$(EXEEXT): Use C++ linker on Haiku.
	(ctagsfiles3): New variable.
	(TAGS): Scan C++ files.

	* src/alloc.c (garbage_collect): Mark Haiku display.

	* src/dispextern.h (HAVE_NATIVE_TRANSFORMS): Also enable
	on Haiku.
	(struct image): Add fields for Haiku transforms.
	(RGB_PIXEL_COLOR): Define to unsigned long on Haiku as
	well.
	(sit_for): Also check USABLE_SIGPOLL.
	(init_display_interactive): Set initial window system to
	Haiku on Haiku builds.

	* src/emacs.c (main): Define Haiku syms and init haiku
	clipboard.
	(shut_down_emacs): Quit BApplication on Haiku and
	trigger debug
	on aborts if haiku_debug_on_fatal_error.
	(Vsystem_type): Update docstring.

	* src/fileio.c (next-read-file-uses-dialog-p): Enable on
	Haiku.

	* src/filelock.c (WTMP_FILE): Only define if BOOT_TIME
	is also defined.

	* src/floatfns.c (double_integer_scale): Work around
	Haiku libroot brain damage.

	* src/font.c (syms_of_font): Define appropriate font
	driver symbols for Haiku builds with various options.

	* src/font.h: Also enable ftcrfont on Haiku builds with
	Cairo.
	(font_data_structures_may_be_ill_formed): Also enable on
	Haiku builds that have Cairo.

	* src/frame.c (Fframep): Update doc-string for Haiku
	builds and return haiku if appropriate.
	(syms_of_frame): New symbol `haiku'.

	* src/frame.h (struct frame): Add output data for Haiku.
	(FRAME_HAIKU_P): New macro.
	(FRAME_WINDOW_P): Test for Haiku frames as well.

	* src/ftcrfont.c (RED_FROM_ULONG, GREEN_FROM_ULONG)
	(BLUE_FROM_ULONG): New macros.
	(ftcrfont_draw): Add haiku specific code for Haiku
	builds with Cairo.

	* src/ftfont.c (ftfont_open): Set face.
	(ftfont_has_char, ftfont_text_extents): Work around
	crash.
	(syms_of_ftfont): New symbol `mono'.

	* src/ftfont.h (struct font_info): Enable Cairo-specific
	fields for Cairo builds on Haiku.

	* src/haiku_draw_support.cc:
	* src/haiku_font_support.cc:
	* src/haiku_io.c:
	* src/haiku_select.cc:
	* src/haiku_support.cc:
	* src/haiku_support.h:
	* src/haikufns.c:
	* src/haikufont.c:
	* src/haikugui.h:
	* src/haikuimage.c:
	* src/haikumenu.c:
	* src/haikuselect.c:
	* src/haikuselect.h:
	* src/haikuterm.c:
	* src/haikuterm.h: Add new files for Haiku windowing
	support.

	* src/haiku.c: Add new files for Haiku operating system
	support.

	* src/image.c: Implement image transforms and native XPM
	support
	on Haiku.

	(GET_PIXEL, PUT_PIXEL, NO_PIXMAP)
	(PIX_MASK_RETAIN, PIX_MASK_DRAW)
	(RGB_TO_ULONG, RED_FROM_ULONG, GREEN_FROM_ULONG)
	(BLUE_FROM_ULONG, RED16_FROM_ULONG, GREEN16_FROM_ULONG)
	(BLUE16_FROM_ULONG): Define to appropriate values on
	Haiku.

	(image_create_bitmap_from_data): Add Haiku support.
	(image_create_bitmap_from_file): Add TODO on Haiku.
	(free_bitmap_record): Free bitmap on Haiku.
	(image_size_in_bytes): Implement for Haiku bitmaps.
	(image_set_transform): Implement on Haiku.
	(image_create_x_image_and_pixmap_1): Implement on Haiku,
	24-bit or 1-bit only.
	(image_destroy_x_image, image_get_x_image): Use correct
	img and pixmap values on Haiku.
	(lookup_rgb_color): Use correct macro on Haiku.
	(image_to_emacs_colors): Implement on Haiku.
	(image_disable_image): Disable on Haiku.
	(image_can_use_native_api): Test for translator presence
	on Haiku.
	(native_image_load): Use translator on Haiku.
	(imagemagick_load_image): Add Haiku-specific quirks.
	(Fimage_transforms_p): Allow rotate90 on Haiku.
	(image_types): Enable native XPM support on Haiku.
	(syms_of_image): Enable XPM images on Haiku.

	* src/keyboard.c (kbd_buffer_get_event)
	(handle_async_input, handle_input_available_signal)
	(handle_user_signal, Fset_input_interrupt_mode)
	(init_keyboard): Check for USABLE_SIGPOLL along with
	USABLE_SIGIO.

	* src/lisp.h (pD): Work around broken Haiku headers.
	(HAVE_EXT_MENU_BAR): Define on Haiku.
	(handle_input_available_signal): Enable if we just have
	SIGPOLL as well.

	* src/menu.c (have_boxes): Return true on Haiku.
	(single_menu_item): Enable toolkit menus on Haiku.
	(find_and_call_menu_selection): Also enable on Haiku.

	* src/process.c (keyboard_bit_set): Enable with only
	usable SIGPOLL.
	(wait_reading_process_output): Test for SIGPOLL as well
	as SIGIO availability.

	* src/sound.c (sound_perror, vox_open)
	(vox_configure, vox_close): Enable for usable SIGPOLL as
	well.

	* src/sysdep.c (sys_subshell): Enable for usable SIGPOLL.
	(reset_sigio): Make conditional on F_SETOWN.
	(request_sigio, unrequest_sigio)
	(emacs_sigaction_init): Also handle SIGPOLLs.
	(init_sys_modes): Disable TCXONC usage on Haiku, as it
	doesn't have any ttys other than pseudo ttys, which don't
	support C-s/C-q flow control, and causes compiler warnings.
	(speeds): Disable high speeds if HAVE_TINY_SPEED_T.

	* src/termhooks.h (enum output_method): Add output_haiku.
	(struct terminal): Add Haiku display info.
	(TERMINAL_FONT_CACHE): Enable for Haiku.

	* src/terminal.c (Fterminal_live_p): Return `haiku' if
	appropriate.
	* src/verbose.mk.in (AM_V_CXX, AM_V_CXXLD): New logging
	variables.

	* src/xdisp.c (redisplay_internal)
	(note_mouse_highlight): Return on Haiku if a popup is activated.
	(display_menu_bar): Return on Haiku if frame is a Haiku
	frame.

	* src/xfaces.c (GCGraphicsExposures): Enable correctly on Haiku.
	(x_create_gc): Enable dummy GC code on Haiku.

	* src/xfns.c (x-server-version, x-file-dialog): Add
	Haiku specifics to doc strings.

	* src/xterm.c (syms_of_xterm): Add Haiku information to
	doc string.

2021-11-20  Stefan Kangas  <stefankangas@gmail.com>

	Make string-animate smoother

	* lisp/play/animate.el (animate-total-added-delay): New defcustom.
	(animate-n-steps): Double the default value.  Use :type 'natnum'.
	(animate-string): Make the delay depend on the above new defcustom
	divided by the number of steps.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Prevent crashes when scrolling in an unknown Window on XI2

	* src/xterm.c (handle_one_xevent): Fix XI2 frame lookup to
	handle foreign windows.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Fix xwidgets with XInput 2 builds

	* src/xwidget.c (Fmake_xwidget): Refrain from synthesizing
	a focus event here on XI2 builds.
	(Fxwidget_perform_lispy_event): Try to set embedder on XI2
	builds and do nothing otherwise.
	(synthesize_focus_in_event): Use focus_change.window as opposed
	to any.window.
	(x_draw_xwidget_glyph_string): Synthesize focus event here
	instead on XI2 builds.

2021-11-20  Stefan Kangas  <stefankangas@gmail.com>

	Make 'eval' use lexical scoping in most tests

	* test/lisp/electric-tests.el (electric-pair-define-test-form)
	(define-electric-pair-test):
	* test/lisp/emacs-lisp/backtrace-tests.el
	(backtrace-tests--uncompiled-functions):
	* test/lisp/emacs-lisp/cl-macs-tests.el
	(cl-macs-test--symbol-macrolet):
	* test/lisp/emacs-lisp/let-alist-tests.el
	(let-alist-list-to-sexp):
	* test/lisp/emacs-lisp/lisp-tests.el
	(elisp-tests-with-temp-buffer, core-elisp-tests-3-backquote):
	* test/lisp/emacs-lisp/testcover-resources/testcases.el
	(testcover-testcase-nth-case):
	* test/lisp/ffap-tests.el (ffap-ido-mode):
	* test/lisp/files-tests.el (file-test--do-local-variables-test):
	* test/lisp/net/tramp-tests.el (tramp--test-utf8):
	* test/lisp/progmodes/elisp-mode-tests.el
	(find-defs-defgeneric-eval, find-defs-defun-eval)
	(find-defs-defvar-eval, find-defs-face-eval)
	(find-defs-feature-eval): Give 'eval' non-nil LEXICAL argument.
	* test/lisp/subr-tests.el
	(subr-tests--dolist--wrong-number-of-args):
	* test/src/eval-tests.el (eval-tests--if-dot-string)
	(eval-tests--mutating-cond)
	(eval-tests-19790-backquote-comma-dot-substitution): Test 'eval'
	using LEXICAL as both nil and non-nil.
	(eval-tests--let-with-circular-defs): Give explicit nil to 'eval'.

2021-11-20  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Improve some messages

	* lisp/image-dired.el (image-dired-dir)
	(image-dired-create-thumb-1): Improve messages.
	(image-dired-rotate-original): Signal 'user-error' instead of 'error'.

2021-11-20  Stefan Kangas  <stefankangas@gmail.com>

	Convert snake and tetris keymaps to defvar-keymap

	* lisp/play/snake.el (snake-mode-map, snake-null-map):
	* lisp/play/tetris.el (tetris-mode-map, tetris-null-map): Convert
	to defvar-keymap.

2021-11-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Make shr render text with superscripts prettier

	* lisp/net/shr.el (shr-sup): New face.
	(shr-tag-sup, shr-tag-sub): Use it to make the super/subscripts
	slightly smaller so that we don't get uneven line heights with
	text that uses these.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Fix a comment in XInput related code

	* src/xterm.c (x_term_init): Fix comment to say "XInput 2.1"
	instead of "XInput 1.1".

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Expose pixel-wise wheel events to Lisp

	* doc/lispref/commands.texi (Misc Events): Document changes to
	wheel events.

	* src/keyboard.c (make_lispy_event): Handle wheel events with
	pixel delta data.
	* src/termhooks.h (WHEEL_EVENT): Document changes to
	WHEEL_EVENT args.
	* src/xfns.c (syms_of_xfns): Declare new symbols.
	* src/xterm.c (handle_one_xevent): Give wheel events pixel delta
	data.
	(x_coalesce_scroll_events): New user option.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Add support for event processing via XInput 2

	* configure.ac: Add an option to use XInput 2 if available.
	* src/Makefile.in (XINPUT_LIBS, XINPUT_CFLAGS): New variables.
	(EMACS_CFLAGS): Add Xinput CFLAGS.
	(LIBES): Add XInput libs.
	* src/xmenu.c (popup_activated_flag): Expose flag if
	XInput 2 is available.
	* src/xfns.c (x_window): Set XInput 2 event mask.
	(setup_xi_event_mask): New function.
	(syms_of_xfns): Provide XInput 2 feature.
	* src/xterm.c (x_detect_focus_change): Handle XInput 2
	GenericEvents.
	(handle_one_xevent): Handle XInput 2 events.
	(x_term_init): Ask the server for XInput 2 support and set
	xkb_desc if available.
	(x_delete_terminal): Free XKB kb desc if it exists, and free
	XI2 devices if they exist.
	(xi_grab_or_ungrab_device)
	(xi_reset_scroll_valuators_for_device_id)
	(x_free_xi_devices, x_init_master_valuators): New functions.
	(x_get_scroll_valuator_delta): New function.
	(init_xterm): Don't tell GTK to only use Core Input when built
	with XInput 2 support.
	* src/xterm.h (struct x_display_info): Add fields for XKB
	and XI2 support.
	* src/gtkutil.c (xg_event_is_for_menubar): Handle
	XIDeviceEvents.
	(xg_is_menu_window): New function.
	(xg_event_is_for_scrollbar): Handle XIDeviceEvents.
	* etc/NEWS: Document changes.

	* lisp/mwheel.el (mouse-wheel-down-alternate-event)
	(mouse-wheel-up-alternate-event)
	(mouse-wheel-left-alternate-event)
	(mouse-wheel-right-alternate-event): New user options.

	(mouse-wheel-text-scale)
	(mwheel-scroll): Test for alternate events.
	(mouse-wheel--setup-bindings): Set up bindings for alternate
	buttons.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Allow terminating page loading operations in webkit xwidgets

	* doc/lispref/display.texi (Xwidgets): Document new function.
	* etc/NEWS: Announce `xwidget-webkit-stop-loading'.
	* src/xwidget.c (Fxwidget_webkit_stop_loading): New function.
	(syms_of_xwidget): Define new subr.

2021-11-20  Gregory Heytings  <gregory@heytings.org>

	Implement the buttonForeground resource

	* lwlib/xlwmenu.c (draw_shadow_rectangle, draw_shadow_rhombus):
	Use the buttonForeground resource color (bug#51988).

2021-11-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix another narrow-to-defun problem in js-mode

	* lisp/progmodes/js.el (js--function-prologue-beginning): Fix typo
	in looking-back form (bug#51926).

2021-11-20  Michael Albinus  <michael.albinus@gmx.de>

	Continue adaptions of emba files

	* test/infra/default-gitlab-ci.yml: New file, derived from
	gitlab-ci.yml.

	* test/infra/gitlab-ci.yml (top, test-jobs-pipeline):
	Include default-gitlab-ci.yml.
	(stages): Remove normal.

	* test/infra/test-jobs-generator.sh: Generate also stages entry.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Make xwidget-events special and document xwidget callbacks

	Users have always been supposed to use callbacks for handling
	xwidget events, but for some reason this has not been
	documented until now.

	* doc/lispref/commands.texi (Xwidget Events): Document xwidget
	callbacks and the special status of `xwidget-event's.

	* doc/lispref/display.texi (Xwidgets): Add xwidget property
	list functions to the concept index.

	* lisp/xwidget.el: Make xwidget events special.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Use `xwidget-live-p' inside `xwidget-at'.

	It should no longer be possible for Lisp code to abuse internal
	xwidget state, or cause crashes with killed xwidgets and such,
	so the pedantic checking done in this function is no longer
	necessary.  (In fact, it is even wrong, as it won't catch
	killed xwidgets.)

	* lisp/xwidget.el (xwidget-at): Use `xwidget-live-p'.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Remove nonsensical command in xwidget-webkit-mode-map

	* lisp/xwidget.el (xwidget-webkit-mode-map): Remove nonsensical
	command binding.

2021-11-20  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	c1eea85be1 * test/lisp/net/tramp-tests.el (tramp-get-remote-gid): Rem...

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Fix option type of `xwidget-webkit-cookie-file' again

	* lisp/xwidget.el (xwidget-webkit-cookie-file): Revert changes
	caused by rebase.

2021-11-20  Po Lu  <luangruo@yahoo.com>

	Clarify doc string in xwidget-webkit

	* lisp/xwidget.el (xwidget-webkit-buffer-name-format): Update
	doc string.

2021-11-19  Glenn Morris  <rgm@gnu.org>

	* lisp/xwidget.el (xwidget-webkit-cookie-file): Fix type.

2021-11-19  Po Lu  <luangruo@yahoo.com>

	Make xwidget-webkit default to not storing cookies

	* etc/NEWS: Update to reflect change.
	* lisp/xwidget.el (xwidget-webkit-cookie-file): Set default
	value to nil.

2021-11-19  Michael Albinus  <michael.albinus@gmx.de>

	Fix Tramp test

	* test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name):
	Skip Ange FTP test.

2021-11-19  Michael Albinus  <michael.albinus@gmx.de>

	Fix stage in gitlab-ci.yml

2021-11-19  Michael Albinus  <michael.albinus@gmx.de>

	Add more test jobs for emba

	* test/Makefile.in (SUBDIRS): Suppress "*auto-save-list".
	(SUBDIR_TARGETS): New variable.
	(subdir_template): Set it.
	(subdir-targets): New target.

	* test/infra/gitlab-ci.yml (variables): Add CI_DEBUG_TRACE.
	(build-image-inotify): Remove timeout.
	(generator, test-jobs-pipeline): New jobs.
	(test-lisp-inotify, test-lisp-net-inotify): Comment.

	* test/infra/test-jobs-generator.sh: New script.

2021-11-19  Eli Zaretskii  <eliz@gnu.org>

	Fix doc strings in ucs-normalize.el

	* lisp/international/ucs-normalize.el (ucs-normalize-NFD-region)
	(ucs-normalize-NFD-string, string-glyph-compose)
	(string-glyph-decompose, ucs-normalize-NFC-string)
	(ucs-normalize-NFKD-region, ucs-normalize-NFKD-string)
	(ucs-normalize-NFKC-region, ucs-normalize-NFKC-string)
	(ucs-normalize-HFS-NFD-region, ucs-normalize-HFS-NFC-region): Fix
	wording and typos.

2021-11-19  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation of last commit

	* lisp/xwidget.el (xwidget-webkit-cookie-file): Don't use "path"
	for file names in the doc string.  Improve wording and markup of
	the doc string.

	* src/xwidget.c (Fxwidget_webkit_set_cookie_storage_file):
	* doc/lispref/display.texi (Xwidgets): Don't use "path" for file
	names.

	* etc/NEWS: Improve the wording of the entry about
	'xwidget-webkit-cookie-file'.

2021-11-19  Po Lu  <luangruo@yahoo.com>

	Allow controlling where xwidget-webkit stores cookies

	* doc/lispref/display.texi (Xwidgets): Document new function.
	* etc/NEWS: Announce `xwidget-webkit-cookie-file' and
	`xwidget-webkit-set-cookie-storage-file'.

	* lisp/xwidget.el (xwidget-webkit-cookie-file): New user
	option.
	(xwidget-webkit-new-session): Set cookie storage file.

	* src/xwidget.c (Fmake_xwidget): Create new context for
	each unrelated widget.
	(Fxwidget_webkit_set_cookie_storage_file): New function.
	(syms_of_xwidget): Define new subr.

2021-11-19  Po Lu  <luangruo@yahoo.com>

	Use CHECK_LIVE_XWIDGET in xwidget-webkit-estimated-load-progress

	* src/xwidget.c (Fxwidget_webkit_estimated_load_progress): Check
	for live xwidgets instead.

2021-11-19  Po Lu  <luangruo@yahoo.com>

	Display page loading progress in xwidget webkit

	* lisp/xwidget.el (xwidget-webkit--title): Remove internal
	variable.
	(xwidget-webkit--loading-p)
	(xwidget-webkit--progress-update-timer): New variables.
	(xwidget-webkit--update-progress-timer-function): New function.
	(xwidget-webkit-callback): Set up progress update timer during
	page loads.
	(xwidget-webkit-mode): Add page load progress to header line
	format.

2021-11-19  Stefan Kangas  <stefankangas@gmail.com>

	Improve doc-view-mode menus

	* lisp/doc-view.el (doc-view-menu): Extend menu.
	(doc-view-minor-mode-menu): New menu.

2021-11-19  Po Lu  <luangruo@yahoo.com>

	Add `xwidget-webkit-estimated-load-progress'

	* doc/lispref/display.texi (Xwidgets): Document new function.
	* etc/NEWS: Announce new function.

	* src/xwidget.c (Fxwidget_webkit_estimated_load_progress): New
	function.
	(syms_of_xwidget): Define new subr.

2021-11-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make puny-encode-string normalize first

	* lisp/net/puny.el (puny-encode-string): Normalize before encoding
	(bug#51954).

2021-11-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Regenerate ldefs-boot

2021-11-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make UCS compose/decompose functions more understandable

	* lisp/international/ucs-normalize.el ()
	(ucs-normalize-NFD-region, ucs-normalize-NFD-string)
	(ucs-normalize-NFC-region, ucs-normalize-NFC-string)
	(ucs-normalize-NFKD-region, ucs-normalize-NFKD-string)
	(ucs-normalize-NFKC-region, ucs-normalize-NFKC-string): Make the
	doc strings say what they actually do.

2021-11-19  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	02853edba7 Fix sorting of menus in `context-menu-local' (bug#50067).
	14271d050a Fix flyspell-correct-word selected from context menu opene...
	bf824843f4 * lisp/repeat.el (describe-repeat-maps): Print all bound k...
	6fc94fb99e * lisp/tab-bar.el: Use 'mouse-1' for history buttons like ...
	5eeaf85767 Improve documentation of window hooks
	7404f4b4e0 Improve doc string of 'highlight-nonselected-windows'

2021-11-18  Po Lu  <luangruo@yahoo.com>

	Fix documentation on xwidgets

	* doc/lispref/display.texi (Xwidgets): Refer to correct
	function.

2021-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/files.el (file-has-changed-p): Index the cache with absolute file names

	* lisp/net/mailcap.el (mailcap-parse-mailcaps): Fix $MAILCAPS case

2021-11-18  Mattias Engdegård  <mattiase@acm.org>

	Turn mistaken functions into tests (bug#51941)

	* test/lisp/calendar/icalendar-tests.el
	(icalendar-tests--decode-isodatetime):
	* test/src/eval-tests.el
	(eval-tests-19790-backquote-comma-dot-substitution):
	Change `defun` into `ert-deftest` where this seems to have been the
	original intention.

2021-11-18  Mattias Engdegård  <mattiase@acm.org>

	String backslash corrections

	* lisp/net/shr.el (shr-tag-video): Remove ineffective backslash.
	* test/lisp/emacs-lisp/package-tests.el
	(package-test-macro-compilation-gz): Make dot literal as intended.

2021-11-18  Michael Albinus  <michael.albinus@gmx.de>

	Do not exclude emacs-module-tests.el on emba

	* test/infra/gitlab-ci.yml (test-native-comp-speed0)
	(test-all-inotify): Do not exclude emacs-module-tests.el.

	* test/src/emacs-module-tests.el
	(module--test-assertions--load-non-live-object)
	(module--test-assertions--load-non-live-object-with-global-copy)
	(module--test-assertions--call-emacs-from-gc)
	(module--test-assertions--globref-invalid-free): Tag them as
	:unstable on emba.  (Bug#50902)

2021-11-18  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Optimize data usage for nil tab-bar-history-mode.

	* lisp/tab-bar.el (tab-bar--tab): Add wc-history-back and
	wc-history-forward only when tab-bar-history-mode is non-nil.
	(tab-bar-select-tab): Use wc-history-back and
	wc-history-forward only when tab-bar-history-mode is non-nil.
	(tab-bar-new-tab-to): Reset tab-bar-history-back and
	tab-bar-history-forward to nil.

2021-11-18  Juri Linkov  <juri@linkov.net>

	* lisp/tab-bar.el: Avoid micro-steps in tab-bar-history-back/forward.

	* lisp/tab-bar.el (tab-bar-history-pre-command)
	(tab-bar-history-done-command): New variables.
	(tab-bar--history-pre-change): Set 'tab-bar-history-omit' and
	'tab-bar-history-pre-command'.
	(tab-bar--history-change): Use 'tab-bar-history-done-command' and
	'tab-bar-history-pre-command' (bug#51370).

2021-11-18  Juri Linkov  <juri@linkov.net>

	* lisp/vc/diff-mode.el (diff-minor-mode-prefix): Fix typo from 44faf54659

2021-11-18  Protesilaos Stavrou  <info@protesilaos.com>

	Update modus-themes to version 1.7.0

	* doc/misc/modus-themes.org (File): Use new version and add release
	date.
	(How do the themes look like, Learn about the latest changes): Update
	link to new URL.
	(Enable and load): Update text of internal reference.
	(Sample configuration for use-package): Add sample configuration
	without the 'use-package' infrastructure.
	(Differences between loading and enabling): Minor rewordings.
	(Customization Options): Update sample code to cover latest changes.

	(Option for inhibiting theme reload)
	(Option for color-coding success state (deuteranopia))
	(Option for more bold constructs)
	(Option for more italic constructs)
	(Option for syntax highlighting)
	(Option for links)
	(Option for command prompt styles)
	(Option for mode line presentation)
	(Option for accented background in tab interfaces)
	(Option for completion framework aesthetics)
	(Option for mail citations)
	(Option for fringe visibility)
	(Option for language checkers)
	(Option for line highlighting (hl-line-mode))
	(Option for line numbers (display-line-numbers-mode))
	(Option for parenthesis matching (show-paren-mode))
	(Option for active region)
	(Option for diff buffer looks)
	(Option for org-mode block styles)
	(Option for Org agenda constructs)
	(Option for scaled headings)
	(Control the scale of headings)
	(Option for variable-pitch font in UI elements)
	(Option for variable-pitch font in headings): Write brief description,
	document the type of the user option, and make any other relevant
	adjustments.

	(Option for font mixing): Document new 'modus-themes-mixed-fonts' user
	option, which supersedes the old 'modus-themes-no-mixed-fonts'.
	(Option for mode line padding): Document new user option
	'modus-themes-mode-line-padding'.
	(Option for language checkers): Include new available property for the
	user option 'modus-themes-lang-checkers'.  Reword the rest of the
	entry.
	(Option for intense markup in Org and others): Describe new boolean
	option 'modus-themes-intense-markup'.
	(Option for Org agenda constructs): Include new available property for
	the 'event' key in the alist 'modus-themes-org-agenda'.
	(Option for the headings' overall style): Describe the new style of
	explicitly specifying an optional font weight other than the implied
	bold.

	(Font configurations for Org and others (DIY))
	(Configure bold and italic faces (DIY)): Reword and clarify some
	statements.
	(Decrease mode line height (DIY)): Add new Do-It-Yourself section on
	tweaking the mode line's :box attribute.
	(Full support for packages or face groups): Include new packages.
	(Acknowledgements): Update list of contributors to code, user
	feedback, etc.  Does not affect the status of copyright assignment.
	(Meta): Update URLs to protesilaos.com (my website).

	* etc/themes/modus-themes.el (modus-themes-variable-pitch)
	(modus-themes-fixed-pitch, modus-themes-no-mixed-fonts): Reference the
	new 'modus-themes-mixed-fonts' user option.
	(modus-themes--headings-choice): Include new font weight styles.
	(modus-themes-headings): Document the new feature of accepting an
	explicit font weight.
	(modus-themes-org-agenda): Document the refinements to the 'event' key
	of the alist and the new 'varied' property it accepts.
	(modus-themes-lang-checkers): Describe the new 'faint' property.
	(modus-themes-mode-line-padding): Include new user option.
	(modus-themes-intense-hl-line): Remove old-deprecated user option.
	(modus-themes-intense-markup): Add new option.
	(modus-themes-success-deuteranopia): Update doc string.
	(modus-themes--fixed-pitch): Work with 'modus-themes-mixed-fonts'.
	(modus-themes--lang-check): Update internal function to add the
	'faint' property of 'modus-themes-lang-checkers'.
	(modus-themes--markup): Add helper function.
	(modus-themes--heading-weights): Private variable with available font
	weights.
	(modus-themes--heading-weight): New helper function to pick the
	desired font weight.
	(modus-themes--heading): Update helper function to implement the
	aforementioned change to 'modus-themes-headings'.
	(modus-themes--agenda-event): Update helper function to apply the new
	styles of 'modus-themes-org-agenda'.
	(modus-themes--mode-line-padding): Add helper function for
	'modus-themes-mode-line-padding'.
	(modus-themes--mode-line-attrs): Minor refinements.
	(modus-themes-load-operandi, modus-themes-load-vivendi): Make these
	functions interactive.
	(modus-themes-faces): Update faces.

	* etc/themes/modus-operandi-theme.el: Bump version number.
	* etc/themes/modus-vivendi-theme.el: Same.

	* * *

	A detailed change log entry is available here:
	<https://protesilaos.com/codelog/2021-11-18-modus-themes-1-7-0/>.

2021-11-18  Michael Albinus  <michael.albinus@gmx.de>

	Extend abbreviate-file-name for further Tramp methods.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
	Add 'abbreviate-file-name'.
	(tramp-gvfs-handle-expand-file-name):
	* lisp/net/tramp.el (tramp-handle-expand-file-name): Handle case
	that tilde cannot be expanded.

	* test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name):
	Extend test.

2021-11-18  Filipp Gunbin  <fgunbin@fastmail.fm>

	Fixup for bug#51037

	* lisp/emacs-lisp/ert.el (ert-batch-backtrace-line-length): Fix
	docstring.
	(ert-run-tests-batch): Remove redundant let-binding.
	(ert-run-tests-interactively): Fix interactive spec.

2021-11-18  Mattias Engdegård  <mattiase@acm.org>

	Eliminate ERT test name clashes (bug#51941)

	* test/lisp/electric-tests.el (js-mode-braces-with-layout-and-indent):
	* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-fifth):
	* test/lisp/thingatpt-tests.el (test-symbol-thing-2):
	Remove duplicated tests.
	* test/lisp/emacs-lisp/generator-tests.el (cps-loop):
	* test/lisp/emacs-lisp/ring-tests.el (ring-tests-insert):
	* test/lisp/help-tests.el (help-tests-substitute-command-keys/no-change):
	* test/lisp/net/netrc-tests.el (test-netrc-credentials):
	* test/lisp/progmodes/elisp-mode-tests.el
	(elisp-completes-functions-after-let-bindings):
	* test/lisp/thingatpt-tests.el (test-symbol-thing-3):
	* test/src/buffer-tests.el (deftest-overlayp-1, buffer-tests--*):
	* test/src/buffer-tests.el (test-buffer-swap-text-1):
	* test/src/data-tests.el (binding-test-set-constant-nil)
	(data-tests-logcount):
	Rename clashing tests.

2021-11-18  Mattias Engdegård  <mattiase@acm.org>

	Signal an error for duplicated ERT tests (bug#51941)

	Make `ert-deftest` fail with an error (in batch mode only) if an
	existing test is redefined, because that is an easy mistake to make
	and which leads to a test being discarded silently.

	lisp/emacs-lisp/ert.el (ert-set-test, ert-deftest): Add check.
	etc/NEWS: Announce.

2021-11-18  Mattias Engdegård  <mattiase@acm.org>

	Avoid adding duplicates to Xref history

	* lisp/progmodes/xref.el (xref--push-backward, xref--push-forward):
	New functions.
	(xref-push-marker-stack, xref-go-back, xref-go-forward): Use them.

2021-11-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert VC-related prefix user options to previous values

	* lisp/vc/smerge-mode.el (smerge-command-prefix):
	* lisp/vc/pcvs.el (cvs-minor-mode-prefix):
	* lisp/vc/diff-mode.el (diff-minor-mode-prefix): Revert to
	previous values, as external packages rely on those values.

2021-11-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix `narrow-to-defun' in "async function" in js-mode

	* lisp/progmodes/js.el (js--plain-method-re):
	(js--function-prologue-beginning):
	(js--ensure-cache): Allow "async" before "function" (bug#51926).
	This makes `narrow-to-defun' work as expected.

2021-11-18  Greg Minshall  <minshall@umich.edu>

	Fix eldoc usage of newly introduced variable

	* lisp/emacs-lisp/eldoc.el
	(eldoc-display-message-no-interference-p): Make this function work
	in older Emacs versions again (bug#51939).

2021-11-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the optional describe-map-tree parameters optional

	* lisp/help.el (describe-map-tree): Make the optional parameters
	optional.  This makes testing easier.

2021-11-18  Miha Rihtaršič  <miha@kamnitnik.top>

	Don't ignore restriction in indent-region-line-by-line

	* lisp/indent.el (indent-according-to-mode): Don't widen if the new
	optional argument is non-nil.
	(indent-region): Explicitly widen before calling
	indent-region-line-by-line.
	(indent-region-line-by-line): Don't widen (bug#51892).

	Emacs convention is that low-level functions should respect restriction
	so that their callers can set restriction according to their needs. For
	example, 'c-indent-region' is a lower-level function which respects the
	current restriction and 'indent-region' is a higher-level user command
	which sets the restriction for lower-level functions, it calls
	"(widen)".

	'indent-region-line-by-line' is a low-level function on a similar level
	as 'c-indent-region'. This patch makes it respect the current
	restriction instead of having it call "(widen)".

2021-11-17  Mike Kupfer  <mkupfer@alum.berkeley.edu>

	Fix two failing tests in mh-utils-tests

	* test/lisp/mh-e/mh-utils-tests.el
	(mh-test-utils-mock-call-process): Add mock for root folders.
	(mh-folder-completion-function-08-plus-slash)
	(mh-folder-completion-function-09-plus-slash-tmp): Skip these tests
	with Mailutils, which doesn't handle root folders.  (Bug#51902)

2021-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Revert "* lisp/image-dired.el: Remove unnecessary 'declare-function'."

	This reverts commit e0261d4a0cf2a23d32b51b84870a3a75f8273c7c.

	This commit gives warnings on builds --without-x.
	Problem pointed out by Glenn Morris <rgm@gnu.org> in:
	https://lists.gnu.org/r/emacs-devel/2021-11/msg01278.html

2021-11-17  Eli Zaretskii  <eliz@gnu.org>

	Fix recent changes related to USABLE_SIGIO

	* src/process.c (wait_reading_process_output) [WINDOWSNT]:
	* src/keyboard.c (handle_async_input) [DOS_NT]: Ifdef away the
	code that is not needed on MS-Windows.  (Bug#50403) (Bug#51820)

2021-11-17  Ken Brown  <kbrown@cornell.edu>

	Make process_pending_signals useful on systems without SIGIO

	* src/keyboard.c (handle_async_input): Call gobble_input
	unconditionally, not just if USABLE_SIGIO is defined.  This makes
	process_pending_signals do something useful on systems that have
	to poll for input.  (Bug#51820)

2021-11-17  Ken Brown  <kbrown@cornell.edu>

	Avoid delays waiting for input on systems without SIGIO

	* src/process.c (wait_reading_process_output) [!USABLE_SIGIO]: If
	we're waiting for input, don't use a timeout of more than 25 msec
	in the call to select.  (Bug#50043)

2021-11-17  Po Lu  <luangruo@yahoo.com>

	Prevent subprocess hangs in xwidget

	* src/xwidget.c (Fmake_xwidget, Fxwidget_webkit_goto_url): Use
	`catch_child_signal' instead of trying to preserve the previous
	signal handler.

2021-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Use substitute-command-keys in some messages

	* lisp/dired.el (dired-get-file-for-visit):
	* lisp/doc-view.el (doc-view-buffer-message):
	* lisp/help.el (help-window-setup):
	* lisp/ibuf-ext.el (ibuffer-do-kill-lines):
	* lisp/vc/ediff.el (ediff-documentation): Use 'substitute-command-keys'.

2021-11-17  Po Lu  <luangruo@yahoo.com>

	Don't draw xwidgets that have just been resized

	This serves to eliminate the huge black bar displayed when the
	offscreen widget has been resized (and as such the damage event
	signal is sent), but the X window hasn't.

	* src/xwidget.c (xv_do_draw): Don't draw xwidgets that have
	just been resized.
	(x_draw_xwidget_glyph_string)
	(xwidget_init_view): Clear just_resized.

	(Fxwidget_resize): Set just_resized first, then queue allocate.

2021-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Ignore some externally maintained files in AUTHORS

	* admin/authors.el (authors-ignored-files): Ignore externally
	maintained files.

2021-11-17  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/image-dired.el: Remove unnecessary 'declare-function'.

2021-11-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Change the call signature to keymap-substitute

	* lisp/keymap.el (keymap-substitute): Make the keymap the first
	parameter for symmetry with the other functions.
	* lisp/emacs-lisp/shortdoc.el (keymaps):
	* lisp/emacs-lisp/bytecomp.el (lambda): Adjust.

2021-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	fa0b34b716 * admin/authors.el (authors-ignored-files): Ignore some NE...
	c25be3e7bb * lisp/tab-bar.el (tab-bar-select-tab): Add check for wc-f...
	38d905abf9 * lisp/tab-bar.el: Doc fixes for commands bound to modifie...

2021-11-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Make bookmark-set prompt less confusing

	* lisp/bookmark.el (bookmark-set): Make the prompt less confusing
	(bug#51876).

2021-11-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix mh-mime build problem

	* lisp/mh-e/mh-mime.el (mh-acros): Require to get mh-dlet*.

2021-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Temporarily mark two failing tests as unstable

	* test/lisp/mh-e/mh-utils-tests.el
	(mh-folder-completion-function-08-plus-slash)
	(mh-folder-completion-function-09-plus-slash-tmp): Temporarily
	mark two failing tests as unstable.

2021-11-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix bookmark-bmenu-mode-map syntax

	* lisp/bookmark.el (bookmark-bmenu-mode-map): Fix syntax in defvar-keymap.

2021-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Remove some references to XEmacs

	* lisp/emulation/viper-cmd.el (viper-start-R-mode):
	* lisp/emulation/viper-init.el (viper-window-display-p):
	* lisp/emulation/viper-mous.el (viper-surrounding-word):
	* lisp/mail/footnote.el (footnote-mode):
	* lisp/textmodes/reftex-index.el: Remove some comments referring to
	XEmacs.

2021-11-17  Stefan Kangas  <stefankangas@gmail.com>

	Make mh-funcall-if-exists obsolete

	* lisp/mh-e/mh-acros.el (mh-funcall-if-exists): Make obsolete.
	* lisp/mh-e/mh-alias.el (mh-read-address):
	* lisp/mh-e/mh-folder.el (mh-folder-mode):
	* lisp/mh-e/mh-mime.el (mh-mm-display-part):
	* lisp/mh-e/mh-show.el (mh-defun-show-buffer):
	* lisp/mh-e/mh-speed.el (mh-speedbar-change-expand-button-char):
	* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define):
	* lisp/mh-e/mh-utils.el (mh-logo-display):
	* lisp/mh-e/mh-xface.el (mh-face-display-function): Don't use
	above obsolete macro.

2021-11-16  Stefan Kangas  <stefankangas@gmail.com>

	Convert keymaps in bookmark.el to defvar-keymap

	* lisp/bookmark.el (bookmark-map)
	(bookmark-minibuffer-read-name-map)
	(bookmark-edit-annotation-mode-map, bookmark-bmenu-mode-map):
	Convert to defvar-keymap.

2021-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/rot13.el (rot13-translate-table): Make it a `translation-table`

	(rot13-display-table): Use `dotimes`.

2021-11-16  Stefan Kangas  <stefankangas@gmail.com>

	* admin/gitmerge.el (gitmerge-mode-map): Convert to defvar-keymap.

2021-11-16  Po Lu  <luangruo@yahoo.com>

	Update xwidget webkit history buffer more eagerly

	* lisp/xwidget.el (xwidget-webkit-callback): Update history
	buffer on each load-changed event.

2021-11-16  Alan Third  <alan@idiocy.org>

	Only set LANG if the ID is valid

	* src/nsterm.m (ns_init_locale): Check the provided locale identifier
	is available before trying to use it.

2021-11-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Make keymap-unset work

	* lisp/keymap.el (keymap-unset): Fix key syntax (bug#51897).

2021-11-16  Eli Zaretskii  <eliz@gnu.org>

	Put back documentation of legacy keymap functions

	* doc/lispref/keymaps.texi (Low-Level Key Binding): Reinstate
	documentation of legacy commands and functions.

2021-11-16  Yuuki Harano  <masm+github@masm11.me>

	Support xterm-mouse-mode mouse-4/5

	When I opened both pgtk frame and terminal frame using daemon
	mode, I get mouse-4 on terminal frame and wheel-up on pgtk frame.
	I support both events as mwheel events at the same time. (Bug#50321)

	* lisp/mwheel.el (mouse-wheel-down-event): It is both mouse-4 and wheel-up.
	(mouse-wheel-up-event): mouse-5 and wheel-down.
	(mouse-wheel-left-event): mouse-6 and wheel-left.
	(mouse-wheel-right-event): mouse-7 and wheel-right.
	(mouse-wheel--button-eq): New function to test a button is included in
	a list.
	(mouse-wheel--button-flatten): New function to make flatten list of
	events.
	(mwheel-scroll): Use mouse-wheel--button-eq instead of eq.
	(mouse-wheel-text-scale): Use mouse-wheel--button-eq instead of eq.
	(mouse-wheel--setup-bindings): Make it flatten.

2021-11-16  Yuuki Harano  <masm+github@masm11.me>

	Remove garbage #ifndef

	Maybe it was left by git merge miss.
	It prevented feature/pgtk from successful X-build with xwidget.

	* src/xwidget.c (Fxwidget_resize):

2021-11-16  Eli Zaretskii  <eliz@gnu.org>

	Minor copyedits of recent documentation changes

	* doc/lispref/keymaps.texi (Low-Level Key Binding): Minor changes
	in wording and markup.

2021-11-16  Michael Albinus  <michael.albinus@gmx.de>

	Some minor Tramp updates

	* lisp/net/tramp-crypt.el (tramp-crypt-add-directory): Add comment.

	* lisp/net/tramp.el (tramp-debug-buffer-command-completion-p)
	(tramp-setup-debug-buffer): New defuns.
	(tramp-get-debug-buffer): Call `tramp-setup-debug-buffer.

	* test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name):
	Extend test.

2021-11-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix compilation error in previous keymap.c change

	* src/keymap.c (initial_define_lispy_key, define_as_prefix): Fix
	--enable-checking error.

2021-11-16  Po Lu  <luangruo@yahoo.com>

	Lower xwidget views owned by parent when lowering frame

	* src/xterm.c (x_lower_frame): Lower parent frame's xwidget
	views as well.

	* src/xwidget.h (lower_frame_xwidget_views):
	* src/xwidget.c (lower_frame_xwidget_views): New function.

2021-11-16  Po Lu  <luangruo@yahoo.com>

	Add command to browse xwidget history

	* doc/emacs/misc.texi (Embedded WebKit Widgets)
	* etc/NEWS: Document `xwidget-webkit-browse-history'.

	* lisp/xwidget.el (xwidget-webkit-mode-map): Bind "H" to
	xwidget-webkit-browse-history.
	(xwidget-webkit-import-widget): Set last session buffer correctly.
	(xwidget-webkit-browse-history): New command.
	(xwidget-webkit-history--session): New variable.

	(xwidget-webkit-history--insert-item)
	(xwidget-webkit-history-select-item)
	(xwidget-webkit-history-reload): New functions.

	(xwidget-webkit-history-mode): New major mode.

2021-11-16  Stephen Leake  <stephen_leake@stephe-leake.org>

	Merge pull request from stephe-ada-guru/master

	Fix issues https://github.com/joaotavora/eglot/issues/755, https://github.com/joaotavora/eglot/issues/401; severity not set in textDocument/publishDiagnostics

	GitHub-reference: https://github.com/joaotavora/eglot/issues/759

2021-11-16  Gregory Heytings  <gregory@heytings.org>

	New X resource to control the border thickness of menus

	* lwlib/xlwmenu.h (XtNborderThickness, XtCBorderThickness): New X
	resource name.
	* lwlib/xlwmenuP.h (XlwMenuPart): New border_thickness field.
	* lwlib/xlwmenu.c (xlwMenuResources): Access the new resource.
	(draw_shadow_rectangle): Use the new resource value.
	* doc/emacs/xresources.texi (Lucid Resources): Document the new
	resource (bug#51867).

2021-11-16  Michael Herstine  <sp1ff@pobox.com>

	Make results details in ert-run-tests-batch configurable

	* lisp/emacs-lisp/ert.el (ert-batch-print-length)
	(ert-batch-print-level,.ert-batch-backtrace-line-length)
	(ert-batch-test, ert-run-tests-interactively): Added the three
	variables, bound them to these settings when formatting batch
	test results including backtraces. Removed the optional
	parameters output-buffer & message-fn from
	ert-run-tests-interactively.
	* test/lisp/emacs-lisp/ert-tests.el
	(ert-test-run-tests-interactively, ert-test-run-tests-batch): use
	cl-letf to capture output, new tests resp.
	* test/lisp/ert-x-tests.el (ert-test-run-tests-interactively-2):
	Changed to use cl-letf to capture output instead of using
	message-fn.
	* lisp/emacs-lisp/backtrace.el (backtrace--line-length-or-nil)
	(backtrace--print-func-and-args): Fixed a bug when setting
	backtrace-line-length to nil by adding a new function to check
	for that case & having backtrace--print-func-and-args use it.
	* doc/misc/ert.texi: document the new variables & their usage
	(bug#51037).

2021-11-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Start adjusting the manuals to talk about the keymap-* functions

	* lisp/dired.el (dired--make-directory-clickable):
	* doc/lispref/keymaps.texi (Keymaps):
	(Key Sequences):
	(Prefix Keys):
	(Active Keymaps):
	(Key Lookup):
	(Functions for Key Lookup):
	(Changing Key Bindings):
	(Key Binding Commands):
	(Tool Bar):
	* doc/lispref/commands.texi (Interactive Codes):
	(Event Examples):
	(Event Mod):
	* doc/emacs/kmacro.texi (Save Keyboard Macro):
	* doc/emacs/custom.texi (Keymaps):
	(Keymaps):
	(Minibuffer Maps):
	(Rebinding):
	(Init Rebinding):
	(Modifier Keys):
	(Mouse Buttons):
	(Init Examples):
	(Init Non-ASCII): Adjust the documentation to remove description
	of the old syntaxes, and use the new keymap-* functions.

	* doc/lispref/keymaps.texi (Low-Level Key Binding): New node that
	describes `define-key' and the old key syntaxes.

2021-11-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust `defvar-keymap' and `define-keymap' to the new syntax

	* lisp/vc/smerge-mode.el (smerge-basic-map):
	* lisp/vc/pcvs.el (cvs-mode-map):
	(cvs-minor-mode-prefix):
	* lisp/vc/log-view.el (log-view-mode-map):
	* lisp/vc/log-edit.el (log-edit-mode-map):
	* lisp/vc/diff-mode.el (diff-mode-shared-map):
	(diff-minor-mode-prefix):
	* lisp/vc/cvs-status.el (cvs-status-mode-map):
	* lisp/simple.el (special-mode-map):
	* lisp/outline.el (outline--insert-open-button):
	(outline--insert-close-button):
	* lisp/net/shr.el (shr-map):
	* lisp/net/eww.el (eww-link-keymap):
	(eww-mode-map):
	(eww-submit-map):
	(eww-bookmark-mode-map):
	(eww-history-mode-map):
	(eww-buffers-mode-map):
	* lisp/mh-e/mh-speed.el (:keymap):
	* lisp/mh-e/mh-show.el (:keymap):
	* lisp/mh-e/mh-search.el (:keymap):
	* lisp/mh-e/mh-letter.el (:keymap):
	* lisp/mh-e/mh-folder.el (:keymap):
	* lisp/international/emoji.el (emoji-list-mode-map):
	* lisp/gnus/spam.el (:keymap):
	* lisp/gnus/mml.el (mml-mode-map):
	* lisp/gnus/message.el (message-mode-map):
	* lisp/gnus/gnus-undo.el (gnus-undo-mode-map):
	* lisp/gnus/gnus-topic.el (gnus-topic-mode-map):
	* lisp/gnus/gnus-sum.el (:keymap):
	* lisp/gnus/gnus-srvr.el (gnus-server-mode-map):
	(gnus-browse-mode-map):
	* lisp/gnus/gnus-salt.el (gnus-pick-mode-map):
	(gnus-tree-mode-map):
	* lisp/gnus/gnus-msg.el (:prefix):
	* lisp/gnus/gnus-ml.el (gnus-mailing-list-mode-map):
	* lisp/gnus/gnus-kill.el (gnus-kill-file-mode-map):
	* lisp/gnus/gnus-html.el (gnus-html-displayed-image-map):
	* lisp/gnus/gnus-group.el (:keymap):
	* lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map):
	* lisp/gnus/gnus-draft.el (gnus-draft-mode-map):
	* lisp/gnus/gnus-dired.el (gnus-dired-mode-map):
	* lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map):
	* lisp/gnus/gnus-art.el (:keymap):
	(gnus-article-edit-mode-map):
	* lisp/gnus/gnus-agent.el (gnus-agent-group-mode-map):
	(gnus-agent-summary-mode-map):
	(gnus-agent-server-mode-map):
	(gnus-category-mode-map): Adjust `defvar-keymap' and
	`define-keymap' to the new syntax.

2021-11-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new 'keymap-*' functions

	* lisp/keymap.el: New file with all the new keymap-* functions.

	* lisp/loadup.el ("keymap"): Load.

	* lisp/subr.el (kbd): Refactor out all the code to key-parse.
	(define-key-after, keyboard-translate, global-set-key)
	(local-set-key, global-unset-key, local-unset-key)
	(local-key-binding, global-key-binding)
	(substitute-key-definition): Note in doc strings that these are
	legacy functions.
	(define-keymap--define): Use keymap-set.

	* lisp/emacs-lisp/byte-opt.el: Remove the optimizations for
	defvar-keymap and define-keymap since the macros now only
	understand the kbd syntax.
	* lisp/emacs-lisp/bytecomp.el (byte-compile-define-keymap)
	(byte-compile-define-keymap--define): Warn about invalid key
	definitions in all keymap-* functions.

	* lisp/emacs-lisp/shortdoc.el (keymaps): Add shortdocs form
	keymap* functions.

	* src/keymap.c (possibly_translate_key_sequence): Adjust callers
	to key-valid-p and key-parse.
	(syms_of_keymap): Adjust defs.

2021-11-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow removing keymap definitions

	* src/keymap.c (initial_define_lispy_key): Adjust caller.
	(store_in_keymap): Allow removing definitions in addition to
	setting them to nil.
	(Fdefine_key): Ditto.
	(define_as_prefix): Adjust caller.

	* src/term.c (term_get_fkeys_1): Adjust caller.

2021-11-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Make erc-mode noninteractive

	* lisp/erc/erc.el (erc-mode): Mark it as noninteractive, because
	using it from `M-x' will only lead to problems (bug#51841).

2021-11-16  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	e852822f3d Fix removal of fringe marks of deleted bookmarks
	b418aad85a * lisp/repeat.el (repeat-echo-message): Bind message-log-m...
	fe2ac7cb7c * lisp/repeat.el (describe-repeat-maps): Use help-fns--ana...
	c840bfe7e1 * lisp/repeat.el: Detect changes in the minibuffer state (...
	5044151486 Avoid segfaults due to freed face cache
	199e2468d3 Doc fix; change recommended file name of custom-file

2021-11-16  Mike Kupfer  <mkupfer@alum.berkeley.edu>

	Fix handling of folder "+/" in MH-E

	* lisp/mh-e/mh-utils.el (mh-sub-folders): Fix handling of "+/".
	* test/lisp/mh-e/mh-utils-tests.el
	(mh-folder-completion-function-08-plus-slash)
	(mh-folder-completion-function-09-plus-slash-tmp):
	Fix errors made importing tests from mh-unit.el; remove declaration
	that these tests are expected to fail.

2021-11-16  Mike Kupfer  <mkupfer@alum.berkeley.edu>

	Fix checkdoc complaints in MH-E

	* lisp/mh-e/mh-compat.el (mh-flet): Rewrite most of the docstring.
	(mh-write-file-functions): Remove trailing space.
	* lisp/mh-e-mh-scan.el (mh-scan-cmd-note-width): Break up a
	line that was too long.

2021-11-15  Stefan Kangas  <stefankangas@gmail.com>

	Fix recently changed wdired test on MS-Windows

	* test/lisp/wdired-tests.el (wdired-test-bug34915): Don't try to
	create a local socket on MS-Windows, as it is not supported on that
	platform.  Problem reported by Robert Pluim <rpluim@gmail.com>.

2021-11-15  Po Lu  <luangruo@yahoo.com>

	Prevent xwidget windows from obscuring child frames

	* src/xwidget.c (x_draw_xwidget_glyph_string): Lower view window
	when creating it.

2021-11-15  Po Lu  <luangruo@yahoo.com>

	Fix xwidget isearch for queries that look like format strings

	* lisp/xwidget.el (xwidget-webkit-isearch--update): Give special
	treatment to messages.

2021-11-15  Po Lu  <luangruo@yahoo.com>

	Fix documentation string

	* src/xwidget.c (Vxwidget_list, Vxwidget_views_list): Fix
	horrid doc string.

2021-11-15  Michael Albinus  <michael.albinus@gmx.de>

	Fix minor problems resulting from Tramp regression tests

	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	Add comment.

	* lisp/net/tramp-cache.el (tramp-flush-file-upper-properties):
	FILE can be "~".

	* lisp/net/tramp.el ('tramp-ensure-dissected-file-name):
	Add `tramp-suppress-trace' property.
	(tramp-get-debug-buffer): Add local key for debugging.
	(tramp-handle-abbreviate-file-name): Adapt implementation.

	* test/lisp/net/tramp-tests.el
	(tramp-test07-abbreviate-file-name):
	Adapt test.
	(tramp-test17-insert-directory-one-file)
	(tramp--test-check-files): Use proper `no-dir' argument for
	`dired-get-filename'.

2021-11-15  Yuuki Harano  <masm+github@masm11.me>

	Avoid handle terminal frames in pgtk_mouse_position.

	Just above, f1 can become a selected frame, which may be a terminal
	frame.  We can't call gtk_widget_get_window() for a terminal frame.

	* src/pgtkterm.c (pgtk_mouse_position): Return if it is not a pgtk frame.

2021-11-15  Jim Porter  <jporterbugs@gmail.com>

	Add another 'abbreviate-file-name' test

	* test/lisp/files-tests.el
	(files-tests-file-name-non-special-abbreviate-file-name): New test.

2021-11-15  Jim Porter  <jporterbugs@gmail.com>

	Support abbreviating home directory of Tramp filenames

	* doc/lispref/files.texi (Magic File Names): Mention
	'abbreviate-file-name' in the list of magic file name handlers.

	* etc/NEWS: Announce the change.

	* lisp/files.el (file-name-non-special):
	* lisp/net/tramp.el (tramp-file-name-for-operation):
	* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	Add 'abbreviate-file-name'.

	* lisp/files.el (directory-abbrev-make-regexp):
	(directory-abbrev-apply): New functions.
	(abbreviate-file-name): Check for file name handler.

	* test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name):
	New test.

2021-11-15  Yuuki Harano  <masm+github@masm11.me>

	Fix coding style

	* src/gtkutil.c (xg_set_no_accept_focus):
	* src/pgtkterm.c (pgtk_focus_frame):
	(button_event):

2021-11-15  Jeff Walsh  <fejfighter@gmail.com>

	pgtk: Handle (child) frame focusing better

	child frames on pgtk are gtk widgets inside the parent surface, rather
	than subsurfaces (in wayland ters), and the edit widget is handled
	separately from the parent window, so we need to handle signals more
	correctly, rather than squinting and assuming an event for the window
	is just an event for the edit widget.

	* src/gtkutil.c (xg_set_no_accept_focus): set
	focus on widget rather than request it on window
	* src/pgtkterm.c (pgtk_focus_frame): focus frame on edit_widget
	instead
	(button_event): Implement focus calls to replace dead X calls

2021-11-15  Stefan Kangas  <stefankangas@gmail.com>

	Fix hanging wdired test

	* test/lisp/wdired-tests.el (wdired-test-bug34915): Fix hanging
	test.  Don't start the Emacs Server just to create a socket; just
	create the socket manually.

2021-11-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix outline-cycle-buffer issue in `C-h b' buffers

	* lisp/outline.el (outline--fix-up-all-buttons): Fix issue when
	called after collapsing a buffer (bug#51855).

2021-11-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow mm-external-terminal-program to be a list of strings

	* doc/misc/emacs-mime.texi (Display Customization): Document it.

	* lisp/gnus/mm-decode.el (mm-external-terminal-program): Allow
	being a list.

2021-11-15  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix handling of changed prefix keys in tutorial

	* lisp/tutorial.el (tutorial--find-changed-keys): Use keymapp to
	detect prefix definitions rather than hard-coding them.  A notable
	omission from the hard-coded list was mode-specific-command-prefix,
	whose subcommands are often rebound (bug#40725).

2021-11-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	044dd1e210 * rcirc.el (rcirc-define-command): Fix interactive-spec ge...

2021-11-15  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	85ac0efe7c Fix semantic-symref-perform-search doc string

2021-11-15  Po Lu  <luangruo@yahoo.com>

	Fix xwidget-webkit-back-forward-list

	* src/xwidget.c (Fxwidget_webkit_back_forward_list): Use correct
	list variable in loop.

2021-11-14  Po Lu  <luangruo@yahoo.com>

	Stop assuming xwidget views will only be displayed in TEXT_AREA

	* src/xterm.c (x_scroll_run): Use view->area when calculating
	xwidget view clipping.

	* src/xwidget.c (x_draw_xwidget_glyph_string): Set view->area
	to s->area and use that instead.

	* src/xwidget.h (struct xwidget_view): Add glyph row area field.

2021-11-14  Ken Brown  <kbrown@cornell.edu>

	Prefer POSIX timers to timerfd timers

	* src/atimer.c (set_alarm): Try to start a POSIX timer before
	starting a timerfd timer.  On Cygwin, return if the POSIX timer is
	started successfully. (Bug#51734)

2021-11-14  Juri Linkov  <juri@linkov.net>

	* lisp/tab-line.el (tab-line-mode): Preserve existing value of tab-line-format

	Keep the old value of tab-line-format when enabling tab-line-mode
	and don't overwrite it with nil when disabling tab-line-mode (bug#51830).

2021-11-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	* src/lread.c (read_escape): Fix handling of ?\C-<char> for chars 128-255

2021-11-14  Eli Zaretskii  <eliz@gnu.org>

	Fix recent documentation updates

	* doc/lispref/text.texi (Special Properties): Improve wording.
	Add cross-reference and index entry.
	(Sticky Properties): Add indexing.

2021-11-14  Yuuki Harano  <masm+github@masm11.me>

	Add WAYLAND_DISPLAY description to cmdargs.texi

	* doc/emacs/cmdargs.texi (Misc Variables): Add WAYLAND_DISPLAY
	description.

2021-11-14  Michael Albinus  <michael.albinus@gmx.de>

	Improve Tramp error handling

	* doc/misc/tramp.texi (Frequently Asked Questions): Add another
	`remote-file-error'.

	* lisp/net/tramp.el (tramp-find-foreign-file-name-handler):
	Improve error handling.

2021-11-14  Jeff Walsh  <fejfighter@gmail.com>

	pgtk: Set correct face color for stretched glyphs

	* src/pgtkterm.c (x_draw_stretch_glyph_string): s/foreground/background
	  (Bug#50579)

2021-11-14  Jeff Walsh  <fejfighter@gmail.com>

	configure.ac (PGTK_LIBS): remove pgtk dl dependency (Bug#50494)

2021-11-14  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	5dbad52 gnus-summary-line-format doc string clarification
	d4536ff Fix follow-scroll-down in a small buffer which starts slightly...

2021-11-14  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	a56dd60 Improve style and comments in font-related sources

2021-11-14  Yuuki Harano  <masm+github@masm11.me>

	Fix coding style

	Especially, insert a space between function name and paren.

	* src/alloc.c (garbage_collect):
	* src/font.h:
	* src/frame.h:
	* src/fringe.c:
	* src/gtkutil.c (xg_set_screen):
	(xg_create_frame_widgets):
	(xg_create_frame_outer_widgets):
	(xg_get_file_name):
	(xg_get_font):
	(xg_update_scrollbar_pos):
	* src/image.c (image_create_bitmap_from_file):
	(xpm_load_image):
	* src/pgtkfns.c (pgtk_get_monitor_scale_factor):
	(is_wayland_display):
	(pgtk_display_info_for_name):
	(INSTALL_CURSOR):
	(Fx_create_frame):
	(Fx_display_mm_height):
	(Fx_display_mm_width):
	(Fx_display_pixel_width):
	(Fx_display_pixel_height):
	* src/pgtkselect.c (pgtk_selection_usable):
	(Fpgtk_own_selection_internal):
	(Fpgtk_get_selection_internal):
	* src/pgtkterm.c:
	(x_set_parent_frame):
	(pgtk_draw_fringe_bitmap):
	(pgtk_handle_draw):
	(scroll_event):
	(pgtk_text_scaling_factor):
	(pgtk_term_init):
	* src/pgtkterm.h:
	* src/window.h:
	* src/xdisp.c (redisplay_internal):
	(draw_glyphs_debug):
	(draw_glyphs):
	(note_mouse_highlight):

2021-11-14  Po Lu  <luangruo@yahoo.com>

	Expose xwidget navigation history to Lisp code

	* doc/lispref/display.texi (Xwidgets): Document changes.
	* etc/NEWS: Announce new function.
	* src/xwidget.c (Fxwidget_webkit_back_forward_list): New
	function.
	(syms_of_xwidget): Define new subr.

2021-11-14  Po Lu  <luangruo@yahoo.com>

	Add `kill-xwidget'

	* doc/lispref/display.texi (Xwidgets): Document 'kill-xwidget'.
	* src/xwidget.c (kill_xwidget, Fkill_xwidget): New function.
	(syms_of_xwidget): Define new subr.
	(kill_buffer_xwidgets): Use `kill_xwidget' instead.

2021-11-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix previous -responsible-p change

	* lisp/vc/vc-sccs.el (vc-sccs-responsible-p):
	* lisp/vc/vc-rcs.el (vc-rcs-responsible-p):
	* lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Make the previous
	change work with relative file names, too.

2021-11-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Explain in the manual how to make `cursor-intangible' work

	* doc/lispref/text.texi (Special Properties): Explain how to make
	`cursor-intangible' work (bug#51095).

2021-11-13  Po Lu  <luangruo@yahoo.com>

	Fix crash in xwidget_end_redisplay

	* src/xwidget.c (xwidget_end_redisplay): Always test if xv is
	NULL.

2021-11-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix `C-h k' in gnus-article-mode

	* lisp/gnus/gnus-art.el (gnus-article-describe-key):
	(gnus-article-describe-key-briefly): Fix `describe-key' calling
	convention (bug#51796).

2021-11-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Make all vc-*-responsible-p functions return a string

	* lisp/vc/vc-sccs.el (vc-sccs-responsible-p):
	* lisp/vc/vc-rcs.el (vc-rcs-responsible-p):
	* lisp/vc/vc-dav.el (vc-dav-responsible-p):
	* lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Return a file name
	instead of t when we get a match (which is what
	vc-backend-for-registration expects) (bug#51800).

2021-11-13  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Fix customization group of python-forward-sexp-function

	* lisp/progmodes/python.el (python-forward-sexp-function): Move from
	the "Flymake integration" subsection to the "Navigation" subsection,
	so that the option is sorted into the 'python' group rather than the
	'python-flymake' group (bug#51807).

2021-11-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix Gnus gcc header tokenization

	* lisp/gnus/gnus-msg.el (gnus-summary-resend-message-insert-gcc)
	(gnus-inews-do-gcc): Fix tokenization of the gcc header.

2021-11-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Adjust build-dep-zips.py download link

	* admin/nt/dist-build/build-dep-zips.py (download_source): Adjust
	the download link (bug#40628).

2021-11-13  Manuel Giraud  <manuel@ledu-giraud.fr>

	Find most specific backend for `vc-backend-for-registration'.

	* lisp/vc/vc.el (vc-backend-for-registration): Count file name
	components instead of the length of the file name string (bug#50572).

2021-11-13  Stephen Gildea  <stepheng+emacs@gildea.com>

	MH-E threads code: use mh-scan variables correctly

	* lisp/mh-e/mh-thread.el (mh-thread-current-indentation-level)
	(mh-thread-find-children): Fix off-by-one error by using
	'mh-scan-field-from-start-offset' directly, as
	'mh-thread-parse-scan-line' does.  Previously, these functions would
	incorrectly consider the "date note" column as part of the thread
	indenting.  Since that column is almost always a Space character, that
	almost always worked.
	(mh-thread-ancestor): Update caller.
	* test/lisp/mh-e/mh-thread-tests.el: New unit tests for affected code.
	* lisp/mh-e/mh-scan.el (mh-msg-num-width-to-column): Fix doc string typo.

2021-11-13  Michael Albinus  <michael.albinus@gmx.de>

	Revert accidental commit in icomplete.el

2021-11-13  Michael Albinus  <michael.albinus@gmx.de>

	Remove Tramp's `dired-compress-file' handler, not needed anymore

	* lisp/dired-aux.el (dired-check-process, dired-shell-command):
	Call `dired-uncache'.
	(dired-compress-file): Use `file-local-name'.

	* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
	* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
	* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
	Remove superfluous comment.

	* lisp/net/tramp-sh.el (dired-compress-file): Declare.
	(tramp-sh-handle-dired-compress-file): Call real handler for
	Emacs >= 29.

	* lisp/net/tramp.el (tramp-file-name-for-operation): Reorder list.

	* test/lisp/net/tramp-tests.el (tramp-test45-dired-compress-file)
	(tramp-test45-dired-compress-dir): Adapt comment.

2021-11-13  Po Lu  <luangruo@yahoo.com>

	Fix scroll event test in handle_one_xevent

	* src/xterm.c (handle_one_xevent): Test for scroll wheel button
	correctly in xwidget code.

2021-11-13  Eli Zaretskii  <eliz@gnu.org>

	Fix font selection via :family on MS-Windows

	* src/font.c (font_delete_unmatched) [HAVE_NTGUI]: Allow non-exact
	matches of :weight when looking for a suitable font.  (Bug#51768)

2021-11-13  Alan Mackenzie  <acm@muc.de>

	Correct patch from 2021-11-12 on src/fileio.c

	* src/fileio.c (restore_window_points): Reverse commit
	974192413f8a81171b8fd28dfd5c081ce06d3dec and instead replace a < by a <=.
	This ensures that if w->mpoint is at the top of the middle region being
	replaced, it gets adjusted and stays at the top after the reinsertion.

2021-11-13  Po Lu  <luangruo@yahoo.com>

	Don't emit SELECT_WINDOW_EVENT when an xwidget is scrolled

	* src/xterm.c (handle_one_event): Don't select xwidget window
	on button event if the button pressed actually represents the
	scroll wheel.

2021-11-13  Alan Mackenzie  <acm@muc.de>

	C++ Mode: Fix incoorect background fontification of <

	Where c-record-found-types gets "bound" to itself, we postpone the calling of
	c-fontify-new-type on possible new found types until these are confirmed by
	the return from the function tentatively finding these types, for example
	c-forward-<>-arglist.  We check this "binding" by testing the value of
	c-record-found-types.

	Correct the background fontification algorithm.

	* lisp/progmodes/cc-engine.el (c-record-found-types): Move the definition to
	earlier in the file.
	(c-add-type-1): Check additionally c-record-found-types is nil before calling
	c-fontify-new-found-type.
	(c-forward-<>-arglist, c-forward-type): On return from a function which
	collects found types in c-record-found-types, call c-fontify-new-found-types
	for each such type.

	* lisp/progmodes/c-fonts.el (c-force-redisplay): Actually fontify the new
	found type.
	(c-fontify-new-found-type): Test for font-lock-mode being enabled.  Remove the
	spurious condition on the `fontified' text property being nil before causing
	c-force-redisplay to get called.

2021-11-13  Stephen Leake  <stephen_leake@stephe-leake.org>

	Fix issues; severity not set in textdocument/publishdiagnostics

	* eglot.el (eglot-handle-notification): Handle severity not set.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/755
	GitHub-reference: https://github.com/joaotavora/eglot/issues/401

2021-11-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't create links to undefined commands in help--describe-command

	* lisp/help.el (help--describe-command): Don't create links to
	commands that aren't defined.

2021-11-13  Yuuki Harano  <masm+github@masm11.me>

	Revert #if changes

	I changed some "#ifdef"s to "#if defined"s by mistake, so I reverted them.

	* src/alloc.c: Reverted.
	(garbage_collect): Reverted.
	* src/emacs.c (main): Reverted.
	* src/image.c (xpm_load_image): Reverted.
	(image_disable_image): Reverted.
	(image_build_heuristic_mask): Reverted.

2021-11-13  Po Lu  <luangruo@yahoo.com>

	Use GTK native file choosers in xwidget callback

	* src/xwidget.c (run_file_chooser_cb): Use GtkFileChooserNative
	instead.

2021-11-13  Yuuki Harano  <masm+github@masm11.me>

	Revert atimer changes

	They seem to be not needed any more.

	* src/atimer.c (set_alarm): Revert
	(turn_on_atimers):  Revert
	(have_buggy_timerfd):  Revert

2021-11-13  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	42d4e24ff3 ; Fix typos
	0d0125daae Improve documentation of 'decode-coding-region'

2021-11-13  Po Lu  <luangruo@yahoo.com>

	Prevent NULL-pointer dereference on xwidget callback error

	* src/xwidget.c (webkit_javascript_finished_cb): Check if
	`error' is NULL before freeing it.

2021-11-12  Po Lu  <luangruo@yahoo.com>

	Fix file chooser hangs inside xwidget-webkit

	* src/xwidget.c (run_file_chooser_cb): New function that runs
	a nested event loop instead of acting asynchronously.
	(Fmake_xwidget): Attach file chooser signal.

2021-11-12  Po Lu  <luangruo@yahoo.com>

	Remove unused xwidget code in EmacsFixed GTK widget class

	This is no longer required, as we rely on X to position
	xwidgets now.  It also makes resizing Emacs frames slightly
	slower.

	* src/emacsgtkfixed.c (EMACS_FIXED_GET_CLASS)
	(struct GtkFixedPrivateL)
	(emacs_fixed_gtk_widget_size_allocate)
	(emacs_fixed_class_init) [HAVE_XWIDGETS]: Remove unused code.

2021-11-12  Po Lu  <luangruo@yahoo.com>

	Prevent xwidget webkit isearch messages from entering log buffer

	* lisp/xwidget.el (xwidget-webkit-isearch--update): Prevent
	logging when displaying search contents message.

2021-11-12  Ken Brown  <kbrown@cornell.edu>

	Don't start both timerfd and alarms on Cygwin

	* src/atimer.c (set_alarm) [CYGWIN]: Don't start both timerfd and
	alarms; this causes a slowdown.  (Bug#51734)

2021-11-12  Alan Mackenzie  <acm@muc.de>

	In insert_file_contents, always set windows' point markers.

	This fixes bug #51776.

	* src/fileio.c (restore_window_points): Restore a w->mpoint even when that
	marker originally pointed into the unchanged area near BOB or EOB.  This
	prevents that window's point being moved a long way from its starting place
	due to the removal of the central part of the buffer by insert_file_contents.

2021-11-12  Michael Albinus  <michael.albinus@gmx.de>

	Remove Emacs 25 compatibility from Tramp

	* doc/misc/tramp.texi (Remote programs, Remote processes)
	(Frequently Asked Questions): Adapt Emacs versions.

	* doc/misc/trampver.texi:
	* lisp/net/trampver.el: Change version to "2.6.0-pre".

	* lisp/net/tramp-adb.el (top): Don't use `tramp-compat-funcall' for
	connection-local functions.

	* lisp/net/tramp-compat.el (tramp-unload-file-name-handlers)
	(tramp-handle-temporary-file-directory)
	(tramp-compat-temporary-file-directory-function)
	(tramp-compat-file-attribute-type)
	(tramp-compat-file-attribute-link-number)
	(tramp-compat-file-attribute-user-id)
	(tramp-compat-file-attribute-group-id)
	(tramp-compat-file-attribute-access-time)
	(tramp-compat-file-attribute-modification-time)
	(tramp-compat-file-attribute-status-change-time)
	(tramp-compat-file-attribute-size)
	(tramp-compat-file-attribute-modes, tramp-file-missing)
	(tramp-compat-file-missing, tramp-compat-file-local-name): Remove.
	(tramp-compat-file-name-quoted-p, tramp-compat-file-name-quote)
	(tramp-compat-file-name-unquote)
	(tramp-compat-progress-reporter-update)
	(tramp-compat-file-modes, tramp-compat-set-file-modes)
	(tramp-compat-set-file-times, tramp-compat-directory-files)
	(tramp-compat-directory-files-and-attributes): Adapt implementation.

	* lisp/net/tramp.el:
	* lisp/net/tramp-adb.el:
	* lisp/net/tramp-archive.el:
	* lisp/net/tramp-crypt.el:
	* lisp/net/tramp-fuse.el:
	* lisp/net/tramp-gvfs.el:
	* lisp/net/tramp-rclone.el:
	* lisp/net/tramp-sh.el:
	* lisp/net/tramp-smb.el:
	* lisp/net/tramp-sudoedit.el: Adapt callees.

	* lisp/net/tramp-crypt.el (tramp-crypt-config-file-name):
	Expand file name.

	* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-readable-p): Remove.

	* lisp/net/tramp-gvfs.el (tramp-gvfs-enabled): Don't check Emacs version.
	(tramp-gvfs-handler-mounted-unmounted): Use `make-tramp-file-name'.

	* lisp/net/tramp-integration.el (rfn-eshadow-overlay):
	Remove declaration.
	(top): Don't use `tramp-compat-funcall' for connection-local functions.

	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
	Use `tramp-rclone-handle-file-readable-p'.
	(tramp-rclone-handle-file-readable-p): New defun.

	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
	Use `tramp-handle-file-readable-p'.

	* lisp/net/tramp.el (tramp-temp-name-prefix, tramp-lookup-syntax):
	Adapt docstring.
	(tramp-set-connection-local-variables)
	(tramp-set-connection-local-variables-for-buffer): Don't use
	`tramp-compat-funcall' for connection-local functions.
	(tramp-file-name-for-operation): Reorder list.
	(tramp-handle-make-symbolic-link): Don't handle TARGET and
	OK-IF-ALREADY-EXISTS.
	(tramp-read-passwd): Don't use `read-passwd' any longer.
	(top): Don't check for `interrupt-process-functions'.

	* test/lisp/net/tramp-archive-tests.el (tramp-archive--test-emacs26-p):
	Remove.
	(tramp-archive-test02-file-name-dissect): Use `make-tramp-file-name'.
	(all): Replace Emacs 26 compatibility functions with their
	original name.
	(tramp-archive-test46-auto-load)
	(tramp-archive-test46-delay-load): Rename.

	* test/lisp/net/tramp-tests.el (dired-aux, seq): Require them.
	(dired-compress, connection-local-criteria-alist)
	(connection-local-profile-alist, async-shell-command-width):
	Don't declare.
	(all): Replace Emacs 26 compatibility functions with their
	original name.
	(tramp-test04-substitute-in-file-name)
	(tramp-test10-write-region, tramp-test11-copy-file)
	(tramp-test12-rename-file, tramp-test15-copy-directory)
	(tramp-test17-insert-directory)
	(tramp-test17-dired-with-wildcards, tramp-test21-file-links)
	(tramp-test31-interrupt-process)
	(tramp-test34-connection-local-variables)
	(tramp-test34-explicit-shell-file-name)
	(tramp-test40-make-nearby-temp-file)
	(tramp-test41-special-characters, tramp-test42-utf8)
	(tramp-test46-delay-load, tramp-test46-remote-load-path)
	(tramp-test47-unload): Don't check for Emacs 26 special features.
	(tramp--test-emacs26-p): Remove.
	(tramp--test-emacs29-p): New defun.
	(tramp-test45-dired-compress-file)
	(tramp-test45-dired-compress-dir): Use it.
	(tramp-test44-asynchronous-requests): Use `seq-random-elt'.

2021-11-12  Po Lu  <luangruo@yahoo.com>

	Fix typos in etc/PROBLEMS

	* etc/PROBLEMS (Internationalization problems): Fix typos.

2021-11-12  Po Lu  <luangruo@yahoo.com>

	Document problem with fcitx and xwidgets

	* etc/PROBLEMS (Internationalization problems): Document buggy fcitx
	with xwidgets.

2021-11-12  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/emacs-lisp/checkdoc.el (checkdoc-dired): Autoload.

2021-11-12  Po Lu  <luangruo@yahoo.com>

	Add support for input methods to xwidget-webkit-edit-mode

	* lisp/xwidget.el (xwidget-webkit--input-method-events): New
	variable.
	(xwidget-webkit-pass-command-event-with-input-method): New
	function.
	(xwidget-webkit-pass-command-event): Consult input method about
	key events if input method is enabled.

2021-11-12  Noam Postavsky  <npostavs@gmail.com>

	Optimize admin/nt dependency computation

	admin/nt/dist-build/build-dep-zips.py (immediate_deps)
	(extract_deps): Gather package dependency info in batches, rather than
	one at a time.  This reduces the number of invocations of 'pacman -Si
	...' to the depth of the dependency tree, rather than the number of
	dependent packages.
	(top-level): Don't call 'extract_deps' when given the '-l' option (bug#40628).

2021-11-12  Rasmus  <rasmus@gmx.us>

	lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/"

	* lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/"
	(bug#43925).

2021-11-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Delete .tar.gz temp file after tramp test

	* test/lisp/net/tramp-tests.el ()
	(tramp-test45-dired-compress-dir): Delete the temp file (bug#51690).

2021-11-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove unused xlfd_ enums

	* src/xfaces.c: Remove xlfd_weight, xlfd_swidth and xlfd_slant
	enums.  These seem to be unused in the Emacs sources.

2021-11-12  Po Lu  <luangruo@yahoo.com>

	Remove obsolete comment

	The comment probably dated back to when xwidgets supported
	many other GTK+ widgets with other data.  In the current
	implementation of xwidgets, everything that should be freed
	is already freed in `kill_buffer_xwidgets'.

	* src/xwidget.c (kill_buffer_xwidgets): Remove outdated TODO.

2021-11-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow choosing regular-weighted fonts when medium-weighted exist

	* src/ftfont.c (ftfont_pattern_entity): Allow using both regular
	and medium-weighted fonts.

2021-11-12  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	a6905e90cc Fix problem with temp buffer killing in package-install-file
	144ad77fda Fix Lisp Intro markup error
	24b86cb4f7 Fix ACL errors with WebDAV volumes on MS-Windows

2021-11-12  Po Lu  <luangruo@yahoo.com>

	Fix doc string for xwidget-webkit-load-html

	* src/xwidget.c (Fxwidget_webkit_load_html): Fix doc string.

2021-11-12  Po Lu  <luangruo@yahoo.com>

	Add input method support for xwidget webkit isearch

	* lisp/xwidget.el (xwidget-webkit-isearch--read-string-buffer):
	New variable.
	(xwidget-webkit-isearch-printing-char-with-input-method)
	(xwidget-webkit-isearch-with-input-method): New function.

	(xwidget-webkit-isearch-printing-char): Add support for Emacs
	input methods.  (bug#51781)

2021-11-11  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Quote function symbols as such

	* lisp/image-dired.el (image-dired-thumbnail-mode-line-up-map)
	(image-dired-thumbnail-mode-tag-map)
	(image-dired-thumbnail-mode-map, image-dired-minor-mode-map):
	Quote function symbols as such.

2021-11-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Move Info-goto-node-web to "G"

	* lisp/info.el (Info-mode-map): Change the Info-goto-node-web
	binding to "G" for symmetry with "Info-goto-node".

2021-11-11  Stefan Kangas  <stefankangas@gmail.com>

	Make image-dired-thumbnail-mode non-interactive

	* lisp/image-dired.el (image-dired-thumbnail-mode): No longer
	interactive, as it only makes sense in a specially prepared buffer.

2021-11-11  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Revamp slideshow functionality

	* lisp/image-dired.el
	(image-dired-slideshow-delay): New defcustom.
	(image-dired--slideshow-initial): New defvar.
	(image-dired-slideshow-start): Don't show any prompts when starting a
	slideshow, unless user gave a negative prefix argument.  Use the value
	of the above new defcustom as the default delay.
	(image-dired-slideshow-stop): Don't count number of images.  Instead,
	continue the slideshow until the next command.
	(image-dired-slideshow-step): Use the correct buffer.
	(image-dired-slideshow-count, image-dired-slideshow-times): Make
	obsolete.
	(image-dired--slideshow-timer): Rename from
	'image-dired-slideshow-timer'.  Make the old name into an obsolete
	variable alias.
	(image-dired-display-image-mode-map)
	(image-dired-thumbnail-mode-map): Bind 'image-dired-slideshow-start'
	to "S".
	(image-dired-thumbnail-mode-menu): Add 'image-dired-slideshow-start'.

2021-11-11  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Improve thumbnail mode menu

	* lisp/image-dired.el (image-dired-thumbnail-mode-menu): Improve menu
	with more logical ordering and better naming.

2021-11-11  Bryan C. Mills  <bcmills@google.com>  (tiny change)

	Make "emacs --script /dev/stdin work again when that's a pipe

	* src/lread.c (Fload): Adjust callers.

	* src/lread.c (safe_to_load_version): Check lseek errors
	(Bug#48940).

2021-11-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow using /dev/stdin as a --script parameter again

	* lisp/startup.el (command-line-1): Fix breakage with
	(file-truename "/dev/stdin") => "/proc/227795/fd/pipe:[1381505]"
	when using /dev/stdin as a --script parameter.

2021-11-11  Po Lu  <luangruo@yahoo.com>

	Fix potential NULL dereference in xwidget-webkit-uri

	* src/xwidget.c (Fxwidget_webkit_uri): Don't assume
	webkit_web_view_get_uri will always return a valid string.

2021-11-11  Po Lu  <luangruo@yahoo.com>

	Check for WebKit xwidgets inside all xwidget-webkit functions

	This is done in preparation for the introduction of other
	xwidgets, such as media xwidgets, even though there are
	only WebKit widgets at present.

	* src/xwidget.c (CHECK_WEBKIT_XWIDGET): New macro.
	(WEBKIT_FN_INIT): Use CHECK_WEBKIT_XWIDGET.

	(Fxwidget_webkit_search, Fxwidget_webkit_next_result)
	(Fxwidget_webkit_previous_result)
	(Fxwidget_webkit_finish_search)
	(Fxwidget_webkit_load_html): Check that xwidget is a WebKit
	widget.

2021-11-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix image-animate declaration

	* lisp/net/shr.el (image-animate): Fix declaration.

2021-11-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Make gnus-article-stop-animations obsolete

	* lisp/gnus/gnus-art.el (gnus-article-stop-animations): Make
	obsolete now that animated images stop themselves automatically.
	(gnus-article-setup-buffer):
	* lisp/gnus/gnus-sum.el (gnus-summary-exit)
	(gnus-summary-exit-no-update, gnus-summary-show-article): Remove
	callers.

2021-11-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow stopping animations automatically when the image disappears

	* lisp/image.el (image-animate): Allow the animation to be stopped
	automatically when the image is removed from the buffer.
	(image-animate-timeout): Stop the animation if the image is
	removed (and that has been requested).

	* lisp/net/shr.el (shr-put-image): Stop animations if the image is
	removed.

2021-11-11  Po Lu  <luangruo@yahoo.com>

	Prevent crashes from Lisp code modifying xwidget-list

	* src/xwidget.c (internal_xwidget_view_list)
	(internal_xwidget_list): New variable.

	(find_xwidget_for_offscreen_window)
	(define_cursors, offscreen_damage_event)
	(webkit_ready_to_show, xwidget_init_view)
	(Fxwidget_resize, Fdelete_xwidget_view)
	(Fxwidget_view_lookup, xwidget_spec_value)
	(lookup_xwidget, xwidget_end_redisplay)
	(kill_frame_xwidget_views, kill_buffer_xwidgets)
	(Fmake_xwidget, Fget_buffer_xwidgets): Use internal list.

	(syms_of_xwidget): Initialize internal xwidget lists.

2021-11-11  Po Lu  <luangruo@yahoo.com>

	Prevent crashes in xwidgets whose buffers have been killed

	* doc/lispref/display.texi (Xwidgets): Explain meaning of killed
	xwidgets.
	* src/xwidget.c (Fxwidget_live_p): New function.
	(Fxwidget_perform_lispy_event, WEBKIT_FN_INIT)
	(Fxwidget_resize, Fxwidget_size_request)
	(Fxwidget_info, Fxwidget_plist)
	(Fset_xwidget_buffer, Fset_xwidget_plist)
	(Fset_xwidget_query_on_exit_flag)
	(Fxwidget_query_on_exit_flag)
	(Fxwidget_webkit_search)
	(Fxwidget_webkit_next_result)
	(Fxwidget_webkit_previous_result)
	(Fxwidget_webkit_finish_search)
	(Fxwidget_webkit_load_html): Check for live xwidgets instead of
	just xwidgets.

	(xwidget_button, xwidget_motion_or_crossing)
	(xv_do_draw, x_draw_xwidget_glyph_string)
	(Fdelete_xwidget_view): Ignore killed xwidgets.

	(syms_of_xwidget): Define new symbols and subrs and define
	appropriate weakness of id_to_xwidget map.
	(kill_buffer_xwidgets): Check live xwidgets instead of
	killed xwidgets, set xwidget buffer to nil, and rely on GC to
	free the hash table for us instead.

	* src/xwidget.h (XWIDGET_LIVE_P, CHECK_LIVE_XWIDGET): New
	macros.

2021-11-11  Eli Zaretskii  <eliz@gnu.org>

	Fix compilation on MS-Windows

	* src/callproc.c (emacs_spawn) <fork_done>: Define the label only
	if USABLE_POSIX_SPAWN is defined, to avoid a compiler warning.

2021-11-11  Philipp Stephani  <phst@google.com>

	Use posix_spawn if possible.

	posix_spawn is less error-prone than vfork + execve, and can make
	better use of system-specific enhancements like 'clone' on Linux.  Use
	it if we don't need to configure a pseudoterminal.

	* configure.ac (HAVE_SPAWN_H, HAVE_POSIX_SPAWN)
	(HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR)
	(HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP)
	(HAVE_POSIX_SPAWNATTR_SETFLAGS, HAVE_DECL_POSIX_SPAWN_SETSID): New
	configuration variables.
	* src/callproc.c (USABLE_POSIX_SPAWN): New configuration macro.
	(emacs_posix_spawn_init_actions)
	(emacs_posix_spawn_init_attributes, emacs_posix_spawn_init): New
	helper functions.
	(emacs_spawn): Use posix_spawn if possible.

2021-11-11  Jim Porter  <jporterbugs@gmail.com>

	Improve performance of 'file-name-case-insensitive-p' for Tramp files

	Previously, each function in 'tramp-foreign-file-name-handler-alist'
	would call 'tramp-dissect-file-name', resulting in it being called
	several times whenever 'tramp-find-foreign-file-name-handler' was
	called.  Now, functions take the dissected file name to avoid this
	duplicated effort.  (Bug#51699)

	* etc/NEWS: Announce this change.

	* lisp/net/tramp-adb.el (tramp-adb-file-name-p):
	* lisp/net/tramp-ftp.el (tramp-ftp-file-name-p):
	* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-p):
	* lisp/net/tramp-rclone.el (tramp-rclone-file-name-p):
	* lisp/net/tramp-smb.el (tramp-smb-file-name-p):
	* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-p):
	* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-p):
	Accept dissected file names.

	* lisp/net/tramp.el (tramp-ensure-dissected-file-name): New function.
	(tramp-find-foreign-file-name-handler): Pass dissected file name to
	functions.
	(tramp-connectable-p): Use 'tramp-ensure-dissected-file-name'.

2021-11-11  Stefan Kangas  <stefankangas@gmail.com>

	erc: Don't announce broken functionality in /query docstring

	* lisp/erc/erc.el (erc-cmd-QUERY): Be less enthusiastic about
	announcing missing/broken functionality.  The comment "except this is
	broken right now" has been there since 2008, and it's not obvious to
	me that we should ever re-add it.

2021-11-11  Filipp Gunbin  <fgunbin@fastmail.fm>

	* lisp/subr.el (add-hook): Fix adding into hook--depth-alist (bug#51620).

2021-11-11  Eli Zaretskii  <eliz@gnu.org>

	Fix 8-color PuTTY -nw sessions broken by a recent commit

	* src/term.c (init_tty): Fix the change which introduced support
	for the terminfo Tc flag.  The code as installed broke colors in
	PuTTY -nw sessions, because 'tigetflag' returned -1, which is
	non-zero, so it was treated as the sign that true color is
	supported.  But if the value returned by 'tigetflag' is -1, it means
	the capability is not a boolean one, so that's not to be used as a
	valid support for 24-bit color.  (Bug#44950)

2021-11-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix problem with non-absolute names

	* lisp/files.el (file-name-split): Fix problem with non-absolute
	names.

2021-11-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a command to go the gnu.org version of the info page

	* lisp/info.el (Info-url-for-node):
	(Info-goto-node-web): New function (bug#44895).

	Based on code from Drew Adams <drew.adams@oracle.com>.

2021-11-11  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-28

	6dae01ad6d Fix tramp-compat-file-name-concat (Bug#51754)

2021-11-11  Po Lu  <luangruo@yahoo.com>

	Add URI as a valid spec for xwidget-webkit-buffer-name-format

	* lisp/xwidget.el (xwidget-webkit-buffer-name-format): Update
	doc string.
	(xwidget-webkit-callback): Add a format spec %U, which stands
	for the current URI of the widget.

2021-11-11  Feng Shu  <tumashu@163.com>

	xwidget: Add xwidget-webkit-buffer-name-format.

	* lisp/xwidget.el (xwidget-webkit-buffer-name-prefix):
	Remove variable.
	(xwidget-webkit-buffer-name-format): New variable.
	(xwidget-webkit-callback): Use
	xwidget-webkit-buffer-name-format instead.
	(format-spec): required.

	* etc/NEWS: Note xwidget-webkit-buffer-name-format.

2021-11-11  Eli Zaretskii  <eliz@gnu.org>

	Fix files-tests on MS-Windows

	* lisp/ls-lisp.el (ls-lisp--insert-directory): Fix free disk space
	calculation.  (Bug#50630)

	* test/lisp/files-tests.el (files-tests-revert-buffer)
	(files-tests-revert-buffer-with-fine-grain): Disable locking
	files.

2021-11-11  Po Lu  <luangruo@yahoo.com>

	Fix documentation in xwidget.el

	* src/xwidget.el (xwidget-webkit-isearch-mode): Reword
	documentation.

2021-11-11  Po Lu  <luangruo@yahoo.com>

	Switch to xwidget webkit buffer even if a session already exists

	* lisp/xwidget.el (xwidget-webkit-goto-url): Make behavior
	when there is an existing session consistent.

2021-11-11  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	2963de6540 * lisp/vc/vc-git.el (vc-git-mergebase): More meaningful er...
	a9148cdee5 ; Fix heading in etc/NEWS
	9623342216 ; * etc/NEWS: Move a bookmark related item further down.

	# Conflicts:
	#	etc/NEWS

2021-11-11  Tim Ruffing  <crypto@timruffing.de>  (tiny change)

	Support Tc terminfo flag for 24-bit color support in terminal

	* src/term.c (init_tty): Use the Tc flag (bug#44950).

2021-11-11  Gregory Heytings  <gregory@heytings.org>

	Options to automatically stop the Emacs server

	* doc/emacs/misc.texi (Emacs Server): Document the new function.
	Also mention that an Emacs server can be started with emacsclient.

	* etc/NEWS: Describe the new function (bug#51377).
	* lisp/server.el (server-stop-automatically): New function.
	(server-stop-automatically): New auxiliary variable.
	(server-stop-automatically--maybe-kill-emacs)
	(server-stop-automatically--handle-delete-frame): New auxiliary
	functions.
	(server-save-buffers-kill-terminal): Call the new auxiliary
	function when necessary.

2021-11-11  Miha Rihtaršič  <miha@kamnitnik.top>

	Set `minibuffer-completion-*` variables locally in more places

	* lisp/calc/calc-store.el (calc-read-var-name):
	* lisp/emacs-lisp/crm.el (completing-read-multiple):
	* lisp/progmodes/cc-styles.el (c-read-offset):
	* lisp/window.el (read-buffer-to-switch):
	Set `minibuffer-completion-*` variables buffer-locally instead of
	using a global let-binding (bug#48925).

	Follow-up to commit
	2021-05-01 "* lisp/minibuffer.el (completing-read-default): Fix bug#45474"

2021-11-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Re-fix charset issues when yanking non-plain-text elements

	* lisp/select.el (gui-get-selection): Make (gui-get-selection
	'CLIPBOARD 'text/html) get decoded correctly (bug#31149), but still
	avoid the logic on Windows.

2021-11-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't save places in literally-visited files

	* lisp/saveplace.el (save-places-to-alist): Don't save places in
	literally-visited files (bug#51740).

2021-11-10  John Cummings  <john@rootabega.net>

	Add tests for 'insert-directory'

	* test/lisp/files-tests.el: Add 'insert-directory' tests.
	* test/lisp/files-resources/insert-directory/: Create directories and files to
	use for testing 'insert-directory'.

	Add tests for 'insert-directory' base functionality and regression tests for
	the issue where free space was reported for the current directory instead of
	the target of 'list-directory' (Bug#50630).

2021-11-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Note that loaddefs.el is copied to ldefs-boot.el

	* lisp/emacs-lisp/autoload.el (autoload-rubric): Add a comment to
	the file noting what'll happen to it.

2021-11-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Re-generated to get autoloads additions in emoji.el

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Add `xwidget-webkit-load-html'

	* doc/lispref/display.texi (Xwidgets): Document new function.
	* etc/NEWS: Announce new function.
	* src/xwidget.c (Fxwidget_webkit_load_html): New function.
	(syms_of_xwidget): Define new subr.

2021-11-10  Juri Linkov  <juri@linkov.net>

	* etc/NEWS.28: Add changes omitted while merging from emacs-28 NEWS.

	* etc/NEWS: Remove old news accidentally merged from emacs-28.

2021-11-10  Eli Zaretskii  <eliz@gnu.org>

	Fix font weights on MS-Windows

	* src/w32font.c (w32_decode_weight, w32_encode_weight)
	(w32_to_fc_weight): Adjust weight translations to match those in
	font.c and gtkutil.c:xg_weight_to_symbol.  (Bug#51704)

2021-11-10  Robert Pluim  <rpluim@gmail.com>

	Improve 'ensure-empty-lines' docstring

	* lisp/emacs-lisp/subr-x.el (ensure-empty-lines): Fix typo and improve
	wording.

2021-11-10  Stefan Kangas  <stefankangas@gmail.com>

	* admin/update_autogen: Remove unused variables.

2021-11-10  Stefan Kangas  <stefankangas@gmail.com>

	Use "grep -E" instead of deprecated "egrep"

	* admin/emake:
	* test/lisp/so-long-tests/so-long-tests.el: Use "grep -E" instead of
	deprecated "egrep".

2021-11-10  Stefan Kangas  <stefankangas@gmail.com>

	Avoid another byte-compiler warning in package-quickstart.el

	* lisp/emacs-lisp/package.el (package-quickstart-refresh): Avoid
	byte-compiler warning "assignment to free variable" in
	package-quickstart.el.

2021-11-10  Stefan Kangas  <stefankangas@gmail.com>

	Avoid spurious byte-compiler warnings in package-quickstart.el

	* lisp/emacs-lisp/package.el (package-quickstart-refresh): Disable the
	"`make-variable-buffer-local' not called at toplevel" byte-compiler
	warnings.  Given that we wrap it all in a let-form, these are mostly
	false positives and not helpful.

2021-11-10  Stefan Kangas  <stefankangas@gmail.com>

	* admin/automerge: Fix quoting of some variables.

	* admin/automerge: Use mktemp if it exists.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Prevent GDK warning about missing event devices in most cases

	* src/xwidget.c (synthesize_focus_in_event): Set event device to
	selected frame's pointer if it's an X frame.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Add `xwidget-webkit-isearch-yank-kill'

	* lisp/xwidget.el: Bind C-y to xwidget-webkit-yank-kill in incremental
	search.
	(xwidget-webkit-isearch-mode): Update doc string.
	(xwidget-webkit-yank-kill): New function.

2021-11-10  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	8d81ab374d time-stamp: %F is "file name" not "pathname" + other doc
	beaa7e14f3 ; Fix typos in CONTRIBUTE, ELisp manual, ediff
	747a1ae4ac * doc/misc/eww.texi (Advanced): Fix missed variable name e...
	52fe2340b8 * doc/emacs/windows.texi (Window Convenience): Use @code f...
	7d3a654e2a * doc/emacs/maintaining.texi (Basic VC Editing): Mention D...
	aeb19af4b5 ; * doc/emacs/building.texi (Lisp Libraries): Fix a typo. ...

	# Conflicts:
	#	etc/NEWS

2021-11-10  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	2782bc113e Revert "Fix localized display of date and time in the NS p...

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Prevent skipping results while changing search direction

	* lisp/xwidget.el (xwidget-webkit-isearch-forward)
	(xwidget-webkit-isearch-backward): Avoid moving to the next result one
	too many times.

2021-11-10  Benj  <Benjamin.Schwerdtner@gmail.com>  (tiny change)

	Make the python missing-readline warning more helpful

	* lisp/progmodes/python.el
	(python-shell-completion-native-turn-on-maybe): Mention the "readline"
	package (bug#48998).

2021-11-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-c C-c' in erts-mode work with Point-Char elems

	* lisp/progmodes/erts-mode.el (erts-mode--preceding-spec):
	Factor out into own function (bug#51680).
	(erts-run-test): Respect Point-Char settings.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Remove obsolete limitation

	* src/xwidget.c (Fxwidget_webkit_goto_history): Accept any fixnum as
	REL-POS, to be consistent with docstring.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Fix incorrect offset calculation for clipped xwidget views

	* src/xwidget.c (from_embedder, to_embedder): Remove incorrect
	adjustment of position by view clipping.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Fix invisible content in WebKit dialogs

	* src/xwidget.c (webkit_script_dialog_cb): Use custom label instead of
	dialog box title to display message.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Set embedder correctly to fix menus appearing in the wrong location

	* src/xwidget.c (record_osr_embedder, from_embedder, to_embedder): New
	functions.
	(Fmake_xwidget): Attach from-embedder and to-embedder signals.
	(find_widget_for_offscreen_window): New function.
	(xwidget_button, xwidget_motion_or_crossing): Set embedder on event.
	(Fdelete_xwidget_view): Remove embedder status if applicable.

	* src/xwidget.h (struct xwidget): New fields `embedder' and
	`embedder-view'.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Revert "Fix mouse face in NS port"

	This reverts commit 278e4fc9c6353068334dd39d45334b1df82a6cee.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Revert "*** empty log message ***"

	This reverts commit 68a2a3307d1703ac8abe4b54c8e1ef9dda677c12.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Revert "Add support for event processing via XInput 2"

	This reverts commit 346cfc81247e6bf8e727a27b42f44f2389bd1269.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Revert "Fix erasing cursor on top of raised boxes in NS port"

	This reverts commit 2b5a2ab50b7817f84ae38f84b4ea36ea38cd5a3b.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Revert "Revert "Fix erasing cursor on top of raised boxes in NS port""

	This reverts commit 7117bbc7aa905ae785fa564cb24c3fc75ef1d543.

2021-11-10  Po Lu  <luangruo@yahoo.com>

	Revert "Support opening the toolkit menu bar on NS"

	This reverts commit ff9cf991c1608cd2578a66cba41e654a2b5d9144.

2021-11-10  oldosfan  <luangruo@yahoo.com>

	Support opening the toolkit menu bar on NS

	* src/nsmenu.m (ns_activate_menubar, Fns_open_menubar): New functions.
	* src/nsterm.m (ns_create_terminal): Add activate_menubar_hook.
	* lisp/menu-bar.el (menu-bar-open): Use ns-menu-bar-open on Nextstep.

2021-11-10  oldosfan  <luangruo@yahoo.com>

	Revert "Fix erasing cursor on top of raised boxes in NS port"

	This reverts commit 960f0eb9ab657af85c532574b937d8851049b178.

2021-11-10  oldosfan  <luangruo@yahoo.com>

	Fix erasing cursor on top of raised boxes in NS port

	* src/nsterm.m (ns_draw_relief): Clear top and bottom line areas
	first, if required.

2021-11-10  oldosfan  <luangruo@yahoo.com>

	Add support for event processing via XInput 2

	* configure.ac: Add an option to use XInput 2 if available
	* src/Makefile.in (XINPUT_LIBS, XINPUT_CFLAGS): New variables
	(EMACS_CFLAGS): Add Xinput CFLAGS
	(LIBES): Add XInput libs
	* src/xmenu.c (popup_activated_flag): Expose flag if XInput 2 is
	available
	* src/xfns.c (x_window): Set XInput 2 event mask
	* src/xterm.c (x_detect_focus_change): Handle XInput 2 GenericEvents
	(handle_one_xevent): Handle XInput 2 events
	(x_term_init): Ask the server for XInput 2 support and set xkb_desc if
	available
	(x_delete_terminal): Free XKB kb desc if it exists, and free XI2
	devices if they exist
	(x_free_xi_devices, x_init_master_valuators): New functions
	(x_get_scroll_valuator_delta): New function
	(init_xterm): Don't tell GTK to only use Core Input when built with
	XInput 2 support
	* src/xterm.h (struct x_display_info): Add fields for XKB and XI2
	support
	* src/gtkutil.c (xg_event_is_for_menubar): Handle XIDeviceEvents
	(xg_is_menu_window): New function
	(xg_event_is_for_scrollbar): Handle XIDeviceEvents

2021-11-10  oldosfan  <luangruo@yahoo.com>

	*** empty log message ***

2021-11-10  oldosfan  <luangruo@yahoo.com>

	Fix mouse face in NS port

	* src/nsterm.m (ns_draw_glyph_string): Set s->face to the mouse face.

2021-11-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix package-tests failure on native-comp

	* test/lisp/emacs-lisp/package-tests.el
	(package-test-macro-compilation-gz): Fix test failure on native-comp.

2021-11-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix the look of the <video> elements in shr

	* lisp/net/shr.el (shr-tag-video): Tweak the look of the video element.

2021-11-09  Lars Ingebrigtsen  <larsi@emkay.local>

	Try to fix intermittent build problem on Macos

	* src/Makefile.in (@): Also sign the bootstrap-emacs executable

2021-11-09  Tom Levy  <tomlevy93@gmail.com>  (tiny change)

	Remove spurious %S from 'define-error' messages


	* lisp/emacs/lisp/cl-generic.el (cl--generic-cyclic-definition):
	Remove spurious %S from error message.
	* lisp/emacs-lisp/gv.el (gv-invalid-place): Remove spurious %S from
	error message (and rephrase) (bug#51718).

2021-11-09  Tom Levy  <tomlevy93@gmail.com>  (tiny change)

	Allow 'undo-redo' to be called from Lisp without repeat count

	* lisp/simple.el (undo-redo): Default arg to 1 to avoid error when
	called from Lisp without args (bug#51718).

2021-11-09  Po Lu  <luangruo@yahoo.com>

	Prevent BadValue errors when creating tiny xwidget views

	* src/xwidget.c (x_draw_glph_string): Avoid resizing xwidget views
	to an invalid size (bug#51707).

2021-11-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function 'file-name-split'

	* doc/lispref/files.texi (File Name Components): Document it.
	* lisp/files.el (file-name-split): New function (bug#50572).

	* lisp/emacs-lisp/shortdoc.el (file-name): Mention it.

2021-11-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `dired-split' obsolete

	* lisp/dired-aux.el (dired-tree-lessp): Adjust caller.
	(dired-split): Make obsolete (bug#50572).

	* lisp/ffap.el (ffap-list-env): Adjust comment.

2021-11-09  Michael Albinus  <michael.albinus@gmx.de>

	* lisp/net/tramp-cache.el (tramp-persistency-file-name):

	Skip superfluous `expand-file-name'.

2021-11-09  Jim Porter  <jporterbugs@gmail.com>

	Improve performance when checking case-sensitivity of Tramp file names

	* lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name):
	Dissect file name before testing for connectability to reduce
	duplicated work.

	* lisp/net/tramp.el (tramp-handle-file-name-case-insensitive-p):
	Use `tramp-connectable-p' to test for connection.

2021-11-09  Stefan Kangas  <stefankangas@gmail.com>

	Add back/forward mouse button bindings in eww

	* lisp/net/eww.el (eww-mode-map): Add mouse back/forward button
	bindings.  These bindings are the same as in Firefox and other
	graphical browsers.

2021-11-09  Juri Linkov  <juri@linkov.net>

	* lisp/progmodes/prog-mode.el (prog-context-menu): Add "Go Forward".

	The menu item "Go Forward" is bound to xref-go-forward.
	Also use "Go Back" for xref-go-back (bug#38797).

2021-11-09  Juri Linkov  <juri@linkov.net>

	* lisp/vc/diff-mode.el (diff-setup-buffer-type): Move to diff-setup-whitespace

	* lisp/vc/vc.el: Add declare-function for diff-setup-buffer-type (bug#51016).

2021-11-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Expand the etc/NEWS section about the `medium' font changes

	* etc/NEWS: Expand upon the addition of the `medium' weight
	(bug#51704).

2021-11-09  Po Lu  <luangruo@yahoo.com>

	Fix compiler warning building net/shr.el without xwidget support

	* lisp/net/shr.el (xwidget-webkit-execute-script): New function
	declaration (bug#51705).

2021-11-09  Po Lu  <luangruo@yahoo.com>

	Fix default target of motion events

	* src/xwidget.c (xwidget_motion_or_crossing): Default to widget_osr
	instead of its window (bug#51703).

2021-11-09  Stefan Kangas  <stefankangas@gmail.com>

	Prefer locate-user-emacs-file

	* lisp/cmuscheme.el (scheme-start-file):
	* lisp/erc/erc.el (erc-startup-file-list):
	* lisp/net/nsm.el (nsm-settings-file):
	* lisp/net/tramp-crypt.el (tramp-crypt-config-file-name):
	* lisp/org/org-clock.el (org-clock-persist-file):
	* lisp/org/org-id.el (org-id-locations-file)
	* lisp/shell.el (shell): Prefer 'locate-user-emacs-file' to fiddling
	with 'user-emacs-directory' directly.

2021-11-09  Po Lu  <luangruo@yahoo.com>

	Always set xwidget title if the event was "load-finished"

	* lisp/xwidget.el (xwidget-webkit-callback): Always set title upon
	load completion.  This prevents loading pages such as "about:blank"
	from not setting the buffer name (bug#51702).

2021-11-09  Po Lu  <luangruo@yahoo.com>

	Make `kill_frame_xwidget_views' safe

	* src/xwidget.c (kill_frame_xwidget_views): Check XWIDGET_VIEW_P
	(bug#51701).

2021-11-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't create temporary files for <video>

	* lisp/net/shr.el (shr-tag-audio): Don't create a temporary file;
	just update the DOM directly.

2021-11-09  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	307d164c9c * lisp/mouse.el (mouse-buffer-menu-mode-groups): Tighten "...
	818211ed89 * doc/emacs/search.texi (Isearch Yank): Add isearch-forwar...

	# Conflicts:
	#	etc/NEWS

2021-11-09  Po Lu  <luangruo@yahoo.com>

	Make xwidget-tests pass again

	* lisp/xwidget.el (xwidget-webkit-buffer-name-prefix): Remove extra
	space.
	(xwidget-webkit-callback): Add trailing "*" to buffer name.
	(xwidget-webkit-new-session, xwidget-webkit-import-widget): Always use
	existing buffer name (bug#51700).

2021-11-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in last shr change

	* lisp/net/shr.el (shr-tag-video): Require xwidgets, because it's
	used from callbacks.

2021-11-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix shr-tag-video startup issue

	* lisp/net/shr.el (shr-tag-video): Require xwidgets, because it's
	used from callbacks.

2021-11-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Optionally use use xwidgets to display <video> elements in shr

	* doc/misc/eww.texi (Advanced): Document it.
	* lisp/net/shr.el (shr-use-xwidgets-for-media): New user option.
	(shr-tag-video): Use xwidgets to display <video> elements.

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Make image-compute-scaling-factor argument optional

	* lisp/image.el (image-compute-scaling-factor): Make the argument
	optional.

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	ARGUMENTS in Fmake_xwidget is optional

	* src/xwidget.c (Fmake_xwidget): The ARGUMENTS argument isn't
	mandatory.

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Make xwidget-event-handler more resilient

	* lisp/xwidget.el (xwidget-event-handler): Don't try to call the
	callback if it hasn't been defined.

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Delete temp directory after bytecomp test

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--not-writable-directory): Allow deletion of
	directory (bug#51690).

	* test/lisp/emacs-lisp/bytecomp-tests.el
	(bytecomp-tests--dest-mountpoint): Ditto.

2021-11-08  Po Lu  <luangruo@yahoo.com>

	Fix flicker when setting hscroll of xwidget

	* src/xterm.c (x_scroll_run): Use original height of xwidget instead
	of window height and set cairo surface size (bug#51697).

2021-11-08  Po Lu  <luangruo@yahoo.com>

	Raise an error if creating an unknown xwidget type

	* src/xwidget.c (Fmake_xwidget): Error if TYPE is invalid (bug#51682).

2021-11-08  Po Lu  <luangruo@yahoo.com>

	Really fix xwidget scroll optimization and clip

	* src/xterm.c (x_scroll_run): Improve clip detection.
	* src/xwidget.c (xv_do_draw): Use cairo_translate.
	(xwidget_motion_or_crossing): Use correct fields (bug#51681).

2021-11-08  Feng Shu  <tumashu@163.com>

	xwidget.el: limit buffer-name flicker in mode-line

	* lisp/xwidget.el (xwidget-webkit): New customization group.
	(xwidget-webkit-buffer-name-prefix): New user option.
	(xwidget-webkit-callback): with-current-buffer only after get title,
	which can limit buffer-name change in mode-line.
	(xwidget-webkit-new-session, xwidget-webkit-import-widget): Use
	current buffer to generate a temp xwidget-webkit buffer.

2021-11-08  Matthias Meulien  <orontee@gmail.com>

	Fix local variables overwritten when diff-mode is set

	* lisp/vc/diff-mode.el (diff-mode):
	(diff-setup-buffer-type): Defun to initialize `diff-buffer-type'

	* lisp/vc/vc.el (vc-diff-finish): Set `diff-buffer-type' after content
	inserted
	(vc-diff-internal): Restore `diff-mode' being set before local
	variables (bug#51016).

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow yank-media-types to also show the unsupported data types

	* lisp/yank-media.el (yank-media-types): Make the prefix include
	data types not supported by the backend, too.

2021-11-08  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Don't have nntp-report signal an error

	* lisp/gnus/nntp.el (nntp-report): This should behave as much as
	possible like nnheader-report, which only logs the error and returns
	nil.

2021-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/xdg.el (xdg--dir-home): Make it a function

2021-11-08  Campbell Barton  <ideasman42@gmail.com>

	* lisp/subr.el (with-undo-amalgamate): New macro

	This allows commands to be made without adding undo-barriers, e.g.
	kmacro-exec-ring-item.

2021-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-generic.el: Add reference to inspiration

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Switch yank-media--get-selection back to the backend function

	* lisp/yank-media.el (yank-media--get-selection): Switch back to
	gui-backend-get-selection until gui-get-selection is re-fixed.

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Fix charset issues when yanking non-plain-text elements"

	This reverts commit 5e66c75e0b6b91b6f5d9aa46c824e8209ade8f2a.

	This apparently led to problems on Windows.  The issues have to
	be examined first before attempting a new fix.

2021-11-08  Stefan Kangas  <stefankangas@gmail.com>

	* admin/automerge: Die if changing directory fails.

2021-11-08  Stefan Kangas  <stefankangas@gmail.com>

	Merge from origin/emacs-28

	fe91f4438c ; * etc/PROBLEMS: Move librsvg-related item to better loca...

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove code what would always maximize xwidgets on Macos

	* src/xwidget.c (x_draw_xwidget_glyph_string): Remove code that
	would always maximize the widget on Macos (bug#51674).  This code
	was probably added to work around a resizing bug that has since
	been fixed.

2021-11-08  akater  <nuclearspace@gmail.com>

	lisp/emacs-lisp/lisp-mode.el: Fix parser state corruption.

	* lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): Preserve
	the point.
	* test/lisp/progmodes/elisp-mode-resources/flet.erts: Add corresponding
	test example (bug#9622).

2021-11-08  Po Lu  <luangruo@yahoo.com>

	Fix resize of xwidgets on GTK

	* src/xwidget.c (Fxwidget_resize): Queue widget for re-allocation
	after setting its size request (bug#51679).

2021-11-08  Po Lu  <luangruo@yahoo.com>

	Fix hang when displaying xwidget script dialog

	* src/xwidget.c (webkit_script_dialog_cb): New function.
	(Fmake_xwidget): Attach script callback signal (bug#51674).

2021-11-08  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Set window-resize-pixelwise to t

	* lisp/image-dired.el (image-dired-thumbnail-mode): Set
	'window-resize-pixelwise' to t.

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention yank-media-types in the manual

	* doc/lispref/frames.texi (Yanking Media): Mention yank-media-types.

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Make html-mode--html-yank-handler more resilient

	* lisp/textmodes/sgml-mode.el (html-mode--html-yank-handler): The
	HTML may not be valid, so suppress errors.

2021-11-08  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix yank-media--get-selection thinko in previous change

	* lisp/yank-media.el (yank-media--get-selection): Fix thinko after
	previous change.

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up the yank-media data massaging

	* lisp/yank-media.el (yank-media--get-selection): Put the
	nul-massaging code...
	(yank-media-types--format): ... here instead, and decode utf-16
	better.

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new debugging/exploration command `yank-media-types'

	* lisp/yank-media.el (yank-media-types): New command.
	(yank-media-types--format): Helper command.

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix charset issues when yanking non-plain-text elements

	* lisp/select.el (gui-get-selection): Make (gui-get-selection
	'CLIPBOARD 'text/html) get decoded correctly (bug#31149).

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename 'register-yank-media-handler'

	* lisp/textmodes/sgml-mode.el (html-mode):
	* lisp/gnus/message.el (message-mode):
	* doc/lispref/frames.texi (Yanking Media): Adjust.
	* lisp/yank-media.el (yank-media): Adjust doc string.
	(yank-media-handler): Rename from `register-' because that may
	cause confusion with register.el functions.

2021-11-07  Stefan Kangas  <stefankangas@gmail.com>

	Prefer ert-with-temp-(directory|file) in most remaining tests

	* test/lisp/auth-source-tests.el (auth-source-test-searches):
	* test/lisp/autorevert-tests.el (auto-revert-test00-auto-revert-mode)
	(auto-revert-test01-auto-revert-several-files)
	(auto-revert-test02-auto-revert-deleted-file)
	(auto-revert-test03-auto-revert-tail-mode)
	(auto-revert-test04-auto-revert-mode-dired)
	(auto-revert-test05-global-notify)
	(auto-revert-test06-write-file)
	(auto-revert-test07-auto-revert-several-buffers):
	* test/lisp/calendar/icalendar-tests.el (icalendar-tests--do-test-cycle):
	* test/lisp/custom-tests.el (custom-theme--load-path):
	* test/lisp/dired-aux-tests.el (dired-test-bug27496)
	(with-dired-bug28834-test):
	* test/lisp/emacs-lisp/bytecomp-tests.el (test-byte-comp-compile-and-load)
	(bytecomp-tests--dest-mountpoint)
	(bytecomp-tests--target-file-no-directory):
	* test/lisp/emacs-lisp/gv-tests.el (gv-tests--in-temp-dir):
	* test/lisp/eshell/eshell-tests.el (with-temp-eshell)
	(eshell-test-command-result):
	* test/lisp/info-xref-tests.el (info-xref-test-makeinfo):
	* test/lisp/vc/vc-tests.el (vc-test--create-repo)
	(vc-test--register, vc-test--state, vc-test--working-revision)
	(vc-test--checkout-model, vc-test--rename-file)
	(vc-test--version-diff):
	* test/src/buffer-tests.el (test-kill-buffer-auto-save-delete):
	* test/src/comp-tests.el (comp-tests-bootstrap):
	* test/src/process-tests.el (process-test-quoted-batfile): Prefer
	'ert-with-temp-(directory|file)' to using 'make-temp-file' directly.

2021-11-07  Po Lu  <luangruo@yahoo.com>

	Set clipping when dumping stretch glyphs in some cases

	* src/nsterm.m (ns_draw_glyph_string): Always focus even when dumping
	stretch glyphs in s->next (bug#51653).

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix charset issues in text/html yanking

	* lisp/yank-media.el (yank-media--get-selection): Use
	gui-backend-get-selection instead of the higher-level function
	which guesses wrong on the charset on many types.
	(yank-media): Fix the case where there's only one match.

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Suppress a compilation warning about vc-switch-backend

	* lisp/vc/vc-hooks.el (vc-prefix-map): Suppress a warning about an
	obsolete command.

2021-11-07  Miha Rihtaršič  <miha@kamnitnik.top>

	Improve undoing of RET in comint and eshell

	* lisp/comint.el (comint-send-input):
	(comint-accumulate):
	* lisp/eshell/esh-mode.el (eshell-send-input): Before sending input to
	the process, delete it and reinsert it again.  Undoing this
	insertion with 'C-/' will delete the region, moving the process mark
	back to its original position (bug#49484).

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow 'C-x n d' to work in texinfo-mode

	* lisp/textmodes/texinfo.el (texinfo-mode): Set
	beginning/end-of-defun functions to allow narrowing to the current
	node.
	(texinfo--beginning-of-defun, texinfo--end-of-defun): New functions.

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make paragraph/filling functions in texinfo-mode work better

	* lisp/textmodes/texinfo.el (texinfo-mode): Make paragraph
	definitions more traditional.  This makes (forward-paragraph 1)
	behave better.
	(texinfo-mode): Set a new filling function.
	(texinfo--fill-paragraph): New filling function.
	(texinfo-fillable-commands): New variable (bug#49558).

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make debugging ert--erts-specifications easier

	* lisp/emacs-lisp/ert.el (ert--erts-specifications): Strip text
	properties from specs to make debugging easier.

2021-11-07  Alan Mackenzie  <acm@muc.de>

	Merge from origin/emacs-28

	0c51db6bb1 Amend Follow Mode to handle header lines and tab lines cor...
	261367781b * lisp/files.el (user-emacs-directory-warning): Clarify do...
	8d9b55330d * doc/emacs/frames.texi (Tab Bars): Add text about mouse a...
	d9b0b730e8 * doc/emacs/frames.texi (Tab Bars): Describe tab-last.

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Match password prompts from new OpenSSH

	* lisp/comint.el (comint-password-prompt-regexp): Add support for
	the openssh-8.6p1 "(user@host) Password:" format (bug#51666).

2021-11-07  Jim Porter  <jporterbugs@gmail.com>

	Fix intermittent electric test failures

	* test/lisp/electric-tests.el
	(whitespace-chomping-dont-cross-comments): Move
	'c-toggle-comment-style' to here.: (bug#51665).

2021-11-07  Juri Linkov  <juri@linkov.net>

	Simplify c8acc5fd92ad9979fc5870623014290cad998337

	* lisp/isearch.el (isearch-filter-visible): Add check if there are
	no properties 'inhibit-isearch' in the search range,
	instead of code of c8acc5fd92ad9979fc5870623014290cad998337.

2021-11-07  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-28

	7fdb2ae412 Add some unit tests for 'abbreviate-file-name'
	21de5e7b2e Fix compilation MinGW warnings
	54b726c815 ; * etc/PROBLEMS: More specific recipe for WebKit-related ...
	d85cf33e49 Escape '%' in filenames to fix flymake warnings
	6243a43ac2 Fix search string generation in nnimap-make-thread-query
	f05b8a939b Update to Org 9.5-68-g77e2ec

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-x 8 e e' work better in the terminal

	* lisp/international/emoji.el (emoji--adjust-displayable-1): Make
	something rudimentary work on non-graphical Emacsen for `C-x 8 e e'.

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make emoji-describe really describe only the glyph under point

	* lisp/international/emoji.el (emoji-describe): Only look at the
	compositions under point (bug#51659).

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't inhibit compilation of emoji.elc

	* lisp/international/emoji.el (emoji--generate-file): Further
	obfuscate to not inhibit byte compilation.

2021-11-07  Eli Zaretskii  <eliz@gnu.org>

	'yank-media' is not universally supported

	* doc/emacs/killing.texi (Clipboard):
	* etc/NEWS: Say that 'yank-media' is not universally supported.

2021-11-07  Po Lu  <luangruo@yahoo.com>

	Free find text in correct procedure

	* src/xwidget.c (Fxwidget_webkit_previous_result): Don't free find
	text.
	(Fxwidget_webkit_finish_search): Free find text here instead.

2021-11-07  Po Lu  <luangruo@yahoo.com>

	Fix C-r inside xwidget isearch

	* lisp/xwidget.el (xwidget-webkit-isearch-backward): Ask for previous
	result.

2021-11-07  Po Lu  <luangruo@yahoo.com>

	Fix xwidget-webkit-goto-history

	* src/xwidget.c (xwidget-webkit-goto-history): Use
	WebKitBackForwardList and XFIXNUM instead of XFIXNAT (bug#51651).

2021-11-07  Po Lu  <luangruo@yahoo.com>

	Handle WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION appropriately

	* src/xwidget.c (webkit_decide_policy_cb): Send an xwidget display
	event when a webpage asks to create a new window.

2021-11-07  Po Lu  <luangruo@yahoo.com>

	Document the xwidget type

	* doc/lispref/elisp.texi: Add Xwidget Type to the menu.
	* doc/lispref/objects.texi (Editing Types): Add Xwidget Type to the
	menu.
	(Xwidget Type): New node.

2021-11-07  Eli Zaretskii  <eliz@gnu.org>

	Improve detection of suspiciously reordered text segments

	* src/bidi.c (bidi_find_first_overridden): Detect reordered weak
	and neutral characters as well.

	* lisp/international/mule-cmds.el
	(highlight-confusing-reorderings): Count and announce how many
	instances were found.

	* test/src/xdisp-tests.el
	(xdisp-tests--find-directional-overrides-case-3): New test.
	(xdisp-tests--find-directional-overrides-case-2): Adjust expected
	result.

2021-11-07  Cristian  <crstml@libero.it>  (tiny change)

	Another addition to latin-2 input methods

	* lisp/leim/quail/latin-pre.el ("latin-2-prefix"):
	* lisp/leim/quail/latin-post.el ("latin-2-postfix"): Add variants
	of "`t" and "t," for Romanian.  (Bug#51638)

2021-11-07  Eli Zaretskii  <eliz@gnu.org>

	Fix documentation and coding style in recent xwidget commits

	* src/xwidget.c (Fmake_xwidget, find_widget)
	(xwidget_motion_or_crossing, xwidget_button_1, xwidget_button):
	Fix style in comments.
	(Fxwidget_perform_lispy_event): Doc fix.
	* src/xwidget.c (set_widget_if_text_view, kill_frame_xwidget_views):
	* src/keyboard.c (make_lispy_event): Fix style of braces.

	* lisp/xwidget.el (xwidget-webkit-isearch-mode): Fix keys in doc
	string.

	* doc/lispref/commands.texi (Xwidget Events): Fix markup and
	wording.
	* doc/lispref/display.texi (Xwidgets): Fix wording and markup.
	* doc/emacs/misc.texi (Embedded WebKit Widgets): Fix wording.

	* etc/NEWS: Fix wording and punctuation.

2021-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/lispref/tips.texi (Coding Conventions): Mention GNU "path" convention

	Suggested by Ihor Radchenko <yantar92@gmail.com>.

2021-11-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Ensure that the x_show_hourglass is seen

	* src/xterm.c (x_show_hourglass): Ensure that the hourglass is
	seen (bug#51649).

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Actually start the alarms in atimer

	* src/atimer.c (set_alarm): Actually start both timerfd and
	alarms (attempted in 4107549a).

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Fix backspace in xwidget webkit isearch

	* lisp/xwidget.el: Set backspace to
	xwidget-webkit-isearch-erasing-char (bug#51647).

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove too aggressive window refresh in the hourglass code

	* src/xterm.c (x_show_hourglass): Don't force a spurious refresh
	(bug#51649).

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Fix build on nextstep

	* src/xwidget.h: Make some prototypes conditional to X-Windows.
	(struct xwidget): Move find_text field out of GTK conditional.

	* src/xwidget.c (Fmake_xwidget): Move find_text out of GTK
	conditional.
	* src/print.c (print_vectorlike): Print correct pointer on macOS.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Improve xwidget isearch visuals

	* lisp/xwidget.el (xwidget-webkit-isearch--update): New argument
	ONLY-MESSAGE.
	(xwidget-webkit-isearch-forward)
	(xwidget-webkit-isearch-backward): Always refresh message.
	(xwidget-webkit-isearch-mode): Update message when enabling.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Fix web inspector

	* src/xwidget.c (Fmake_xwidget): Move developer extra initialization.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Default to creating new related sessions

	* doc/lispref/display.texi:
	* etc/NEWS: Document changes.

	* lisp/xwidget.el (xwidget-insert): Accept an extra RELATED argument.
	(xwidget-webkit-new-session): Pass current session as RELATED if
	present.

	* src/xwidget.c (Fmake_xwidget): Make RELATED argument public.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Rationalize creation decisions

	* src/xwidget.c (webkit_create_cb): Only create a new widget if type
	is OTHER.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Make "open in new window" from an xwidget's context menu work

	* doc/lispref/commands.texi (Xwidget Events): Document new event type.
	* doc/lisprefdisplay.texi (Xwidgets): Document new argument to
	make-xwidget, and new function.
	* etc/NEWS: Document changes.
	* lisp/xwidget.el: Bind xwidget-display-event to
	xwidget-webkit-display-event.

	(xwidget-webkit-import-widget): New function.
	(xwidget-webkit-display-event): New command.
	* src/keyboard.c (kbd_buffer_get_event): New event type.
	(make_lispy_event): Handle XWIDGET_DISPLAY_EVENTs.
	(syms_f_keyboard): Define new symbol.
	* src/termhooks.h (enum event_kind): New enum XWIDGET_DISPLAY_EVENT.

	* src/xwidget.c (webkit_create_cb)
	(store_xwidget_display_event)
	(webkit_ready_to_show)
	(webkit_create_cb_1, webkit_create_cb)
	(Fset_xwidget_buffer): New functions.

	(Fmake_xwidget): Add internal argument RELATED and connect create
	signal.
	(syms_of_xwidget): Define now subrs.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Add xwidget-webkit-isearch to the menu bar and tool bar

	* lisp/xwidget.el: Add isearch to tool bar and menu bar.

	(xwidget-webkit-mode-map)
	(xwidget-webkit-isearch-mode-map): Reorder key definitions so the
	equivalent key shows up as `C-s' in the menu bar.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Add xwidget-webkit-isearch-mode

	* etc/NEWS:
	* doc/emacs/misc.texi: Document changes

	* lisp/xwidget.el (xwidget-webkit-mode-map): Bind C-s and C-r to
	webkit isearch.
	(xwidget-webkit-isearch--string, xwidget-webkit-isearch--is-reverse):
	New buffer-local variables.
	(xwidget-webkit-isearch--update, xwidget-webkit-isearch-erasing-char)
	(xwidget-webkit-isearch-printing-char, xwidget-webkit-isearch-forward)
	(xwidget-webkit-isearch-backward, xwidget-webkit-isearch-exit):
	New functions.
	(xwidget-webkit-isearch-mode-map): New keymap.
	(xwidget-webkit-isearch-mode): New minor mode.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Add functions for performing searches on xwidgets

	* etc/NEWS:
	* doc/lispref/display.texi: Document changes.

	* src/xwidget.c (Fxwidget_webkit_search)
	(Fxwidget_webkit_next_result)
	(Fxwidget_webkit_previous_result)
	(Fxwidget_wenkit_finish_search): New functions.

	(syms_of_xwidget): Define new built-ins.
	(kill_buffer_xwidgets): Free search query if present.
	* src/xwidget.h (struct xwidget): Add field for search query.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Make it safe to have non-xwidget views in xwidget-view-list

	* src/xwidget.c (define_cursors, offscreen_damage_event): Check
	XWIDGET_VIEW_P before XXWIDGET_VIEW.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Make xwidgets print nicer

	* src/print.c (print_vectorlike): Print xwidgets with ID and widget
	pointer, and print xwidget views separately.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Fix cursor for new widget views

	* src/xwidget.c (Fmake_xwidget): Clear hit result.
	(cursor_for_hit): Use integer hit result.
	(define_cursors): Set hit result appropriately.
	(widget_init_view): Set cursor to the existing hit result.

	* src/xwidget.h (struct xwidget): Add hit result field.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Add support for cursors in xwidget views

	* src/xwidget.c (mouse_target_changed): New function.
	(Fmake_xwidget): Attach mouse target changed signal.
	(cursor_for_hit, define_cursors, mouse_target_changed): New functions.
	(xwidget_init_view): Set default cursor to nontext cursor.
	(x_draw_xwidget_glyph_string): Define cursor.

	* src/xwidget.h (struct xwidget_view): Add cursor field.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Display page titles in xwidget webkit header line

	* lisp/xwidget.el (xwidget-webkit--title): New variable.
	(xwidget-webkit-callback, xwidget-webkit-mode): Set header line format
	and associated variables.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Improve detail of load-changed xwidget events

	* src/xwidget.c (webkit_view_load_changed_cb): Improve event detail.
	* etc/NEWS: Document changes.
	* doc/lispref/commands.texi: Document Xwidget events.
	* doc/lispref/display.texi (Xwidgets): Add reference to Xwidget events.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Make the WebKit inspector available

	* etc/NEWS: Document changes.
	* src/xwidget.c (find_widget_at_pos)
	(find_widget)
	(find_widget_cb): New functions.
	(struct widget_search_data): New structure.
	(Fmake_xwidget): Enable web inspector for WebKit widgets.
	(Fxwidget_perform_lispy_event): Use current focus instead of
	hard-coded widget.
	(xwidget_button_1, xwidget_button, xwidget_motion_or_crossing):
	Use window at event position instead of the default widget.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Add xwidget-webkit-copy-selection-as-kill to the menu bar

	* lisp/xwidget.el: New menu item
	`xwidget-webkit-copy-selection-as-kill'.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Add new tool-bar items to xwidget-webkit

	* etc/images/README: Update copyright information for new images.
	* etc/images/connect-to-url.pbm:
	* etc/images/connect-to-url.xpm: Import new images from GNOME.
	* lisp/xwidget.el (xwidget-webkit-tool-bar-map): New keymap variable.
	(xwidget-webkit-mode): Set tool-bar-map to the appropriate map.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Add a menu to xwidget-webkit

	* lisp/xwidget.el: Add a menu to xwidget-webkit-mode-map.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Redisplay xwidget view windows instead of just setting their size

	* src/xwidget.c (Fxwidget_resize): Mark windows as needing redisplay
	and redisplay instead.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Select window when clicking on an xwidget view

	* src/xterm.c (handle_one_xevent): Select window when clicking on an
	xwidget view.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Fix xwidget scrolling

	* src/xterm.c (x_scroll_run): Use from_y and height.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Allow enabling xwidget-webkit-edit-mode via a binding

	* doc/emacs/misc.texi: Document changes.
	* lisp/xwidget.el (xwidget-webkit-mode-map): Add shortcut for
	xwidget-webkit-edit-mode.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Add xwidget-webkit-edit-mode to make using the WebKit browser easier

	* doc/emacs/misc.texi: Document changes.
	* etc/NEWS: Document recent changes.
	* lisp/xwidget.el (xwidget-webkit-pass-command-event): New variable.
	* lisp/xwidget.el (xwidget-perform-lispy-event): New function
	declaration.
	* lisp/xwidget.el (xwidget-webkit-edit-mode): New minor mode.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Fix special events in xwidgets

	* src/xwidget.c (set_widget_if_text_view): New function.
	(Fxwidget_perform_lispy_event): Fix for webkit widgets.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Fix drag on xwidget motion events

	* src/xwidget.c (xwidget_motion_or_crossing): Set state.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Handle crossing events on xwidget windows correctly

	* src/xterm.c (handle_one_xevent): Clear help and mouse face
	when handling xwidget entry events.
	* src/xwidget.c (xwidget_motion_or_crossing): Add device to crossing
	events.
	(x_draw_xwidget_glyph_string): Add EnterWindowMask and
	LeaveWindowMask.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Draw offscreen surface

	* src/xwidget.c (xv_do_draw): Draw offscreen surface.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Implement function for sending events to widgets

	* doc/lispref/display.texi (Xwidgets): Document changes.
	* src/keyboard.c (lispy_function_keys): Make non-static on X.
	* src/keyboard.h (lispy_function_keys): Expose lispy_function_keys on
	X.
	* src/xterm.c (x_emacs_to_x_modifiers): Export function.
	* src/xterm.h (x_emacs_to_x_modifiers): Likewise.
	* src/xwidget.c (Fxwidget_perform_lispy_event)
	(find_suitable_keyboard): New functions.
	(syms_of_xwidget): Define new subr.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Use gtk_widget_queue_draw instead of xv_do_draw

	* src/xwidget.c (x_draw_xwidget_glyph_string): Call
	gtk_widget_queue_draw.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Prefer XMoveResizeWindow to XMoveWindow for resizing xwidgets

	* src/xwidget.c (x_draw_xwidget_glyph_string): Prefer
	XMoveResizeWindow to avoid extra expose events.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Allow xwidgets to accept motion and button events

	* src/xterm.c (handle_one_xevent): Pass through some events to
	xwidgets.

	* src/xwidget.c (synthesize_focus_in_event)
	(find_suitable_pointer, xwidget_button_1)
	(xwidget_button, xwidget_motion_or_crossing): New functions.
	(xwidget_view_from_window): Draw offscreen window instead of the
	widget.
	(x_draw_xwidget_glyph_string): Set appropriate event masks.

	* src/xwidget.h (xwidget_button, xwidget_motion_or_crossing): New
	functions.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Destroy xwidgets when destroying frames

	* src/xterm.c (x_free_frame_resources): Make sure to kill xwidget views.
	* src/xwidget.c (Fmake_xwidget): Attach damage event signal.
	(offscreen_damage_event): Operate on xwidgets and not individual
	views.
	(xwidget_init_view): Don't attach damage event signal here.
	(Fdelete_xwidget_view): Destroy window correctly and stop removing
	damage event signal.
	(kill_frame_xwidget_views): New function.
	* src/xwidget.c (kill_frame_xwidget_views): New function.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Enable scrolling optimization for xwidgets

	* src/dispextern.h (struct glyph): Store xwidget ID instead of a
	reference.
	* src/dispnew.c (scrolling_window): Enable scrolling optimization on
	xwidget builds.
	* src/xdisp.c (fill_xwidget_glyph_string, produce_xwidget_glyph):
	Obtain xwidget from ID.
	* src/xterm.c (x_scroll_run): Scroll xwidget windows.
	* src/xwidget.c (id_to_xwidget_map, xwidget_counter): New xwidget
	variables.
	(Fmake_xwidget): Assign each xwidget a unique ID, and keep track of
	that ID.
	(xwidget_from_id): New function.
	(syms_of_xwidget): Initialize id_to_xwidget_map.
	(xwidget_end_redisplay): Lookup xwidgets via ID.
	* src/xwidget.h (struct xwidget): Add ID field.
	(xwidget_from_id): New function.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Use an X window to display xwidgets on X11

	Since Emacs draws using X11 primitives, Emacs drawing operations can
	erase the GtkDrawingArea used to draw the offscreen widget, which
	leads to unpleasant flickering effects, all of which can be prevented
	by creating a native X window and drawing to that instead.

	* src/xterm.c (x_window_to_frame): Return xwidget window if
	appropriate.
	(handle_one_xevent): Handle xwidget expose events.

	* src/xwidget.c (x_window_to_xvw_map): New variable.
	(xwidget_view_from_window): New function.

	(xwidget_show_view, xwidget_hide_view)
	(offscreen_damage_event): Move to drawing xwidgets with X windows.

	(xv_do_draw)
	(xwidget_expose): New function.

	(xwidget_osr_draw_cb, xwidget_osr_event_forward)
	(xwidget_osr_event_set_embedder): Removed.

	(xwidget_init_view): Replace use of GtkDrawingArea with that of an X
	window.

	(x_draw_xwidget_glyph_string): Prevent xwidget views from constantly
	generating expose events, and use an X window instead of a
	GtkDrawingArea.

	(syms_of_xwidget): Initialize x_window_to_xwv_map.

	src/xwidget.h (struct xwidget_view): Replace GTK widgets with
	X-related fields.

	(xwidget_view_from_window, xwidget_expose): New functions.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix pp-emacs-lisp-code for `when' and related

	* lisp/emacs-lisp/pp.el (pp--format-definition): Skip edebug specs
	we don't understand at all.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix html-mode--image-yank-handler prompting

	* lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler): Fix
	two format statements and rearrange images.

2021-11-06  Stefan Kangas  <stefankangas@gmail.com>

	Ensure return value of ert-with-temp-directory

	* lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Ensure return
	value when :directory is t is the directory name.
	* test/lisp/emacs-lisp/ert-x-tests.el
	(ert-x-tests-with-temp-directory): Extend test for the above.

2021-11-06  Stefan Kangas  <stefankangas@gmail.com>

	Prefer ert-with-temp-(directory|file)

	* test/lisp/abbrev-tests.el (read-write-abbrev-file-test)
	(read-write-abbrev-file-test-with-props)
	(abbrev-edit-save-to-file-test):
	* test/lisp/auth-source-tests.el (auth-source-test-netrc-create-secret)
	(auth-source-delete):
	* test/lisp/autoinsert-tests.el (autoinsert-tests-auto-insert-file):
	* test/lisp/bookmark-tests.el (with-bookmark-test-save-load):
	* test/lisp/buff-menu-tests.el (buff-menu-24962):
	* test/lisp/calendar/icalendar-tests.el (icalendar-tests--do-test-export):
	* test/lisp/calendar/todo-mode-tests.el (with-todo-test):
	* test/lisp/dired-tests.el
	(dired-test-bug27243-01, dired-test-bug27243-02)
	(dired-test-bug27243-03, dired-test-bug27631)
	(dired-test-bug27968, dired-test-with-temp-dirs):
	* test/lisp/dired-x-tests.el (dired-test-bug25942):
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--with-temp-file):
	* test/lisp/emacs-lisp/check-declare-tests.el (check-declare-tests-scan)
	(check-declare-tests-verify-mismatch):
	* test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-with-normal-env):
	* test/lisp/emacs-lisp/package-tests.el (with-package-test)
	(package-test-signed):
	* test/lisp/emacs-lisp/testcover-tests.el (testcover-tests-markup-region)
	(testcover-tests-run-test-case):
	* test/lisp/emulation/viper-tests.el (viper-test-undo-kmacro):
	* test/lisp/epg-tests.el (with-epg-tests):
	* test/lisp/eshell/em-hist-tests.el (eshell-write-readonly-history):
	* test/lisp/eshell/em-ls-tests.el (em-ls-test-bug27631):
	* test/lisp/ffap-tests.el (ffap-tests-25243):
	* test/lisp/files-tests.el (files-tests-bug-18141)
	(files-tests-read-file-in-~, files-tests-make-directory)
	(files-tests-copy-directory, files-tests-executable-find)
	(files-tests-dont-rewrite-precious-files)
	(files-tests--save-some-buffers):
	* test/lisp/ls-lisp-tests.el (ls-lisp-test-bug27631):
	* test/lisp/mail/uudecode-tests.el (uudecode-tests-decode-region-internal)
	(uudecode-tests-decode-region-external):
	* test/lisp/net/browse-url-tests.el (browse-url-tests-delete-temp-file):
	* test/lisp/progmodes/elisp-mode-tests.el (xref--case-insensitive):
	* test/lisp/progmodes/etags-tests.el (etags-buffer-local-tags-table-list):
	* test/lisp/progmodes/flymake-tests.el (ruby-backend):
	* test/lisp/progmodes/python-tests.el (python-tests-with-temp-file):
	* test/lisp/progmodes/sql-tests.el (with-sql-test-connect-harness):
	* test/lisp/saveplace-tests.el (saveplace-test-save-place-to-alist/file)
	(saveplace-test-forget-unreadable-files)
	(saveplace-test-place-alist-to-file):
	* test/lisp/so-long-tests/spelling-tests.el:
	* test/lisp/textmodes/reftex-tests.el (reftex-locate-bibliography-files)
	(reftex-parse-from-file-test):
	* test/lisp/thumbs-tests.el (thumbs-tests-thumbsdir/create-if-missing):
	* test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-bug9726)
	(vc-bzr-test-bug9781, vc-bzr-test-faulty-bzr-autoloads):
	* test/lisp/vc/diff-mode-tests.el (diff-mode-test-ignore-trailing-dashes):
	* test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
	* test/lisp/wdired-tests.el (wdired-test-bug32173-01)
	(wdired-test-bug32173-02, wdired-test-symlink-name)
	(wdired-test-unfinished-edit-01, wdired-test-bug34915)
	(wdired-test-bug39280):
	* test/src/buffer-tests.el (test-kill-buffer-auto-save-default):
	* test/src/filelock-tests.el (filelock-tests--fixture):
	* test/src/inotify-tests.el (inotify-file-watch-simple):
	* test/src/undo-tests.el (undo-test-file-modified): Prefer
	'ert-with-temp-(directory|file)' to using 'make-temp-file' directly.
	In some cases, this is just cleanup, but in several cases this fixes
	bugs where an error would have lead to us not cleaning up.

2021-11-06  Stefan Kangas  <stefankangas@gmail.com>

	Add generated suffix to test temp file names

	* lisp/emacs-lisp/ert-x.el
	(ert-with-temp-file): Add temp file name suffix based on file name of
	caller.  Reflow docstring.
	(ert--with-temp-file-generate-suffix): New defun.
	* test/lisp/emacs-lisp/ert-x-tests.el
	(ert-x-tests--with-temp-file-generate-suffix): New test.

2021-11-06  dickmao  <none>

	Fix byte compilation of package built-ins

	* lisp/emacs-lisp/package.el
	(package--activate-autoloads-and-load-path):
	(package--load-files-for-activation): Remove.
	(package--library-stem): New function, because
	file-name-sans-extension is insufficient.
	(package--reload-previously-loaded): New function.
	(package-activate-1): Reload directly.
	(package--files-load-history):
	(package--list-of-conflicts):
	(package--list-loaded-files): Remove
	(package-unpack): Adjust call.

	* test/lisp/emacs-lisp/package-tests.el (macro-builtin-func): Test.
	(macro-builtin-10-and-90): Test.
	(package-test-macro-compilation): Test.
	(package-test-macro-compilation-gz): Test (bug#49708).

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option eww-url-transformers

	* doc/misc/eww.texi (Advanced): Document it.
	* lisp/net/eww.el (eww-url-transformers): New user option.
	(eww-remove-tracking): New default function.
	(eww--transform-url): Helper function.
	(eww-follow-link): Use it.
	(eww): Ditto.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Expand register-yank-media-handler doc string

	* lisp/yank-media.el (register-yank-media-handler): Expand doc string.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix yank-media logic when there's several handlers

	* lisp/yank-media.el (yank-media): Fix logic when there's several
	different handler functions.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow yanking images to html-mode

	* lisp/net/mailcap.el (mailcap-mime-type-to-extension): Autoload.
	* lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler): New
	function.
	(html-mode): Accept image/*.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix "Yanking Media" sectioning

	* doc/lispref/frames.texi (Yanking Media): Fix sectioning.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Support yank-media in html-mode

	* lisp/textmodes/sgml-mode.el (html-mode--html-yank-handler): New
	function.
	(html-mode): Handle text/html.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in previous yank-media--get-selection change

	* lisp/yank-media.el (yank-media--get-selection): Fix typo in
	previous change.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix nul-terminated text/* strings from some programs

	* lisp/yank-media.el (yank-media--get-selection): Some programs
	nul-terminate text/* strings.  Fix that.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make the lambda/closure buttons in `C-h b' say what they do

	* lisp/button.el (buttonize): Add a help-echo property.

	* lisp/help.el (help--describe-command): Say what the
	lambda/closure buttons do.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add mouse-face to buttonize

	* lisp/button.el (buttonize): Add the highlight mouse-face.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a framework for yanking media into Emacs

	* doc/emacs/killing.texi (Clipboard): Refer to it.
	* doc/lispref/frames.texi (Yanking Media): Document the mechanism.

	* lisp/yank-media.el: New file.

	* lisp/gnus/message.el (message-mode): Register a yank handler for
	images.
	(message-insert-screenshot): Factor out image code from here...
	(message--yank-media-image-handler): ... to here.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function mailcap-mime-type-to-extension

	* lisp/net/mailcap.el (mailcap-mime-type-to-extension): Add a new
	helper function to do the reverse of `mailcap-file-name-to-mime-type'.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a pcase-let example to the manual

	* doc/lispref/control.texi (Destructuring with pcase Patterns):
	Add a pcase-let example.

2021-11-06  Stefan Kangas  <stefankangas@gmail.com>

	New user option image-auto-resize-max-scale-percent

	* lisp/image-mode.el (image-auto-resize-max-scale-percent): New
	user option to limit how much 'fit-window' will scale up an image.
	(image--scale-within-limits-p): New function.
	(image-toggle-display-image): Respect above new user option.

2021-11-06  Stefan Kangas  <stefankangas@gmail.com>

	New command image-transform-fit-to-window

	* lisp/image-mode.el (image-auto-resize, image-transform-resize):
	Add new value 'fit-window', meaning to scale the image up or down
	to fit the window.  (Bug#)
	(image-transform-fit-to-window): New command.
	(image-transform-fit-to-height, image-transform-fit-to-width):
	Make obsolete in favor of above new command.
	(image-mode-map): Bind "s w" to 'image-transform-fit-to-window'.
	Move binding for obsolete command 'image-transform-fit-to-width'
	to "s i".
	(image-mode-map): Add menu entry for
	'image-transform-fit-to-window'.  Remove menu entries for above
	obsolete commands.
	* doc/emacs/files.texi (Image Mode): Update documentation.
	(image-transform-fit-both): Doc fix.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add outline-minor-mode-use-buttons doc string caveat

	* lisp/outline.el (outline-minor-mode-use-buttons): Note that the
	feature is for special mode buffers only (bug#51629).

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `outline-hide-body' work in `C-h b' buffers

	* lisp/outline.el (outline-flag-region): Update buttons on most
	outline toggling commands (bug#51629).
	(outline--fix-up-all-buttons): Take a region as parameter.
	(outline-cycle-buffer): Adjust call.

2021-11-06  Stefan Kangas  <stefankangas@gmail.com>

	Make substitute-command-keys regexp tests more strict

	* test/lisp/help-tests.el (with-substitute-command-keys-test): Make
	regexp tests more strict.

2021-11-06  Stefan Kangas  <stefankangas@gmail.com>

	Replace some macros with ert-with-temp-(file|directory)

	* test/lisp/custom-tests.el (custom-tests--with-temp-dir):
	* test/lisp/files-tests.el (files-tests--with-temp-file):
	* test/lisp/progmodes/project-tests.el
	(project-tests--with-temporary-directory):
	* test/src/emacs-module-tests.el (module--with-temp-directory):
	* test/src/emacs-tests.el (emacs-tests--with-temp-file):
	* test/src/lread-tests.el (lread-tests--with-temp-file):
	* test/src/process-tests.el (process-tests--with-temp-directory):
	Replace macros with 'ert-with-temp-(file|directory)'.  Update callers.

2021-11-06  Stefan Kangas  <stefankangas@gmail.com>

	New convenience macros ert-with-temp-(file|directory)

	* lisp/emacs-lisp/ert-x.el
	(ert-with-temp-file)
	(ert-with-temp-directory): New macros.
	* test/lisp/emacs-lisp/ert-x-tests.el
	(ert-x-tests-with-temp-directory)
	ert-x-tests-with-temp-directory/text-signals-error
	(ert-x-tests-with-temp-file)
	(ert-x-tests-with-temp-file/handle-error)
	(ert-x-tests-with-temp-file/prefix-and-suffix-kwarg)
	(ert-x-tests-with-temp-file/text-kwarg)
	(ert-x-tests-with-temp-file/unknown-kwargs-signals-error): New tests.

2021-11-06  F. Jason Park  <jp@neverwas.me>

	Don't send empty lines for unknown commands in ERC

	* lisp/erc/erc.el (erc-cmd-default): prevent excess trailing newlines
	from being sent.

	* test/lisp/erc/erc-tests.el: Update `erc-process-input-line' test to
	check for excess line feeds with unknown commands.

2021-11-06  F. Jason Park  <jp@neverwas.me>

	Deprecate instead of redefine erc-server-reconnecting

	* lisp/erc/erc-backend.el (erc-server-reconnecting,
	erc--server-reconnecting): obsolete and replace the former with new
	internal variant, which carries a simplified meaning.

	(erc-server-reconnect-p, erc--server-reconnect-p): Obsolete and
	replace the former with an internal function, and change behavior to
	disregard `erc-server-reconnecting' when rendering verdict.

	(erc-process-sentinel-2): ensure local var `erc--server-reconnecting'
	is t when timers are scheduled or firing, and nil otherwise, including
	after retries exhausted.  This agrees with the straightforward way
	`erc-server-reconnecting' has always been used by `erc-cmd-RECONNECT'.

	(erc-server-connect): set `erc--server-reconnecting'.

	* lisp/erc/erc.el (erc-cmd-RECONNECT): use `erc--server-reconnecting'
	instead of `erc-server-reconnecting'.

2021-11-06  Eli Zaretskii  <eliz@gnu.org>

	Fix Emoji-related documentation

	* etc/NEWS: Fix wording and spelling.

	* doc/emacs/mule.texi (Input Methods): Add index entries and fix
	wording.

	* admin/notes/unicode: Update instructions for updating Emacs for
	the latest Unicode Standard.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Include make Errors in admin/emake

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add an example to the display-supports-face-attributes-p doc string

	* src/xfaces.c (Fdisplay_supports_face_attributes_p): Add an example.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Partially revert previous make-separator-line change

	* lisp/simple.el (make-separator-line): Use dashes on displays
	that don't support underlines (bug#32950).

2021-11-06  Eli Zaretskii  <eliz@gnu.org>

	Fix the build broken by recent commits

	* admin/unidata/Makefile.in (${unifiles})
	(${unidir}/emoji-labels.el): Fix typos in last commits.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up emoji-labels.el generation incantation

	* admin/unidata/Makefile.in (${unidir}/emoji-labels.el): Make
	generation more silent.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make describe-char include emoji combination descriptions

	* lisp/descr-text.el (describe-char): Output emoji descriptions.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add emoji insertion support to Emacs

	* .gitignore: Ignore the generated emoji-labels.el file.
	* admin/unidata/Makefile.in (${unidir}/emoji-labels.el): Generate
	the emoji-labels.el file.
	(gen-clean): Delete it.

	* admin/unidata/README (https): Note the source for the Unicode
	file that has emoji categorizations.

	* admin/unidata/emoji-test.txt: Import another Unicode file.

	* doc/emacs/mule.texi (Input Methods): Document the new key bindings.

	* lisp/international/emoji.el: New file.

	* lisp/international/mule-cmds.el (ctl-x-map): Bind the emoji
	commands.

2021-11-06  Eli Zaretskii  <eliz@gnu.org>

	Improve latin-2-postfix and latin-2prefix input methods

	* lisp/leim/quail/latin-pre.el ("latin-2-prefix"):
	* lisp/leim/quail/latin-post.el ("latin-2-postfix"): Add variants
	of "`s" and "s," for Romanian.  Add key bindings for moving
	between variants, when there are more than one.  (Bug#51638)

2021-11-06  Eli Zaretskii  <eliz@gnu.org>

	Fix an error in 'highlight-confusing-reorderings'

	* lisp/international/mule-cmds.el
	(highlight-confusing-reorderings): Don't signal an error when
	a confusingly-reordered sequence ends at EOB.

2021-11-06  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-28

	5e9b4e70ab Fix dbus-test04-register-method on CentOS (Bug#51369)
	d96de23510 * lisp/transient.el: Update to package version v0.3.7-11-g...
	7343b0d0e4 ; * etc/NEWS: Native compilation is more picky about missi...
	0d6b2b0b9d ; * etc/PROBLEMS: Move entry about LLVM plugin to the right...

	# Conflicts:
	#	etc/NEWS

2021-11-06  Po Lu  <luangruo@yahoo.com>

	General improvements to NS port

	* src/dispextern.h: Remove some !HAVE_NS conditionals around grab
	related code.
	* src/frame.c (gui_mouse_grabbed, gui_redo_mouse_highlight): Remove
	!HAVE_NS conditionals around code.

	* src/nsmenu.m (ns_update_menubar): Prevent recursive calls and enable
	shallow updates on GNUstep.
	(menuNeedsUpdate): Prevent recursive calls.
	(ns_menu_show): Fix mysterious GC-related bug.
	(update_frame_tool_bar_1): Work around mysterious toolbar sizing bug
	on GNUstep.

	* src/nsterm.h (struct ns_output): New field for tracking toolbar
	visibility changes.

	* src/nsterm.m (frame_set_mouse_pixel_position): Implement for
	GNUstep.
	(ns_redraw_scroll_bars): Enable for GNUstep.
	(ns_clear_frame): Redraw scrollbars on GNUstep.
	(ns_update_window_end): New function.
	(ns_redisplay_interface): Add ns_update_window_end on GNUstep.
	(- keyDown): Remove debug code that doesn't work on GNUstep.
	(- mouseDown): Enable grab tracking on NS port.
	(- resizeWithOldSuperviewSize): Fix build with NSTRACE.

	* src/xdisp.c (note_tab_bar_highlight): Enable some code for NS port.

2021-11-06  Po Lu  <luangruo@yahoo.com>

	Improve font display on NS port

	* src/nsfns.m (Fx_create_frame): Use "fixed" for the default font on
	GNUstep.

	* src/nsfont.m (LCD_SMOOTHING_MARGIN, ns_escape_name)
	(ns_unescape_name, ns_attribute_fvalue)
	(STYLE_REF): Remove unused defines and functions.

	(struct ns_glyph_layout, enum lgstring_direction).
	(enum gs_font_slant, enum gs_font_weight, enum gs_font_width)
	(enum gs_specified, struct gs_font_data): New enumerators and
	structures.

	(ns_font_descs_match_p)
	(ns_done_font_data, ns_get_font_data): New functions.
	(ns_glyph_metrics): Stop escaping names.

	(ns_spec_to_descriptor): Fix font descriptor creation for symbolic
	font spec entries.
	(ns_descriptor_to_entity): Create entries with the correct symbolic
	styles.

	(ns_fallback_entity): Fix fallback entity selection.
	(ns_findfonts): Use our own font matcher instead of the broken GNUstep
	matcher.

	(ns_list_family): Remove obsolete comment.
	(nsfont_open): Remove obsolete code, comments, and synthItal logic
	which doesn't work on GNUstep.

	(nsfont_encode_char): Use a type that can fit NSGlyph
	(nsfont_draw): Chose correct font, remove obsolete mouse face logic,
	obsolete comments, and switch to using glyph-based drawing instead of
	character-based drawing.

	(ns_font_shape, nsfont_shape): New functions.

	(ns_uni_to_glyphs_1): New function.
	(ns_uni_to_glyphs): Return glyphs instead of unicode codepoints.

	(ns_glyph_metrics): Use NSGlyphs instead of unicode codepoints and fix
	left bearing, right bearing, ascent and descent computation.

	(struct nsfont_driver): Add shaping capability.

	* src/nsterm.h (struct nsfont_info): Use unsigned int for glyph cache.

	* src/nsterm.c (ns_focus): Set DPS clipping on GNUstep.

	(ns_compute_glyph_string_overhangs): Fix overhang computation by using
	xterm code.
	(ns_draw_window_cursor): Simplify cursor drawing.
	(ns_maybe_dumpglyphs_background): Test for cursor HL and remove
	obsolete mouse face logic.
	(ns_dumpglyphs_image)
	(ns_dumpglyphs_box_or_relief): Rectify for new cursor logic.
	(ns_dumpglyphs_stretch): Rectify for new cursor logic and rely on
	ns_draw_glyph_string to set focus.
	(ns_draw_glyph_string_foreground): Remove mouse face logic.
	(ns_draw_glyph_strings): Implement overhangs, remove obsolete
	comment, and always focus before dumping glyphs.
	(ns_draw_text_decoration): Add condition for DRAW_CURSOR and simplify
	color selection.
	(ns_define_frame_cursor): Remove nonsensical code (define_frame_cursor
	has nothing to do with the text cursor, aka caret).

	* src/xdisp.c (draw_glyphs): Enable code for NS port to fix mouse face
	cursor display.

	* src/macfont.m (get_cgcolor_from_nscolor): New function.
	(macfont_draw): Remove obsolete mouse-face code and enable cursor
	display.

2021-11-06  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>

	Fix display of BW images on MS-Windows

	* src/image.c (convert_mono_to_color_image) [HAVE_NTGUI]: Swap the
	fore- and the back-ground colors back to their normal conventions.
	(Bug#6918)

2021-11-06  Eli Zaretskii  <eliz@gnu.org>

	Improve detection of suspicious reordering in source code

	* src/bidi.c (bidi_find_first_overridden): Detect suspiciously
	reordered EN types as well.

	* test/src/xdisp-tests.el
	(xdisp-tests--find-directional-overrides-case-1): Rename from
	'xdisp-tests--find-directional-overrides'.
	(xdisp-tests--find-directional-overrides-case-2): New test.

2021-11-06  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	9bdb1d0 ; * etc/PROBLEMS: Describe a crash in xwidgets due to Bubblew...
	550887c ; * etc/PROBLEMS: Rearrange and update the section about cras...
	c2e3cd6 Clarify "text area of a window" in the documentation
	4e7e78d Improve docstring of kmacro-set-format

2021-11-06  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	# Conflicts:
	#	etc/NEWS

2021-11-06  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	b5ccad3 * doc/emacs/building.texi (Compilation Mode): Add next-error-...

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Inhibit isearching over message-insert-screenshot data

	* lisp/gnus/message.el (message-insert-screenshot): Inhibit
	isearch over the image data.

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Update help-tests after separator line changes

2021-11-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow 'insert-image' to inhibit isearches or not

	* doc/lispref/display.texi (Showing Images): Mention it.
	* lisp/image.el (insert-image): Take an optional parameter to
	inhibit isearch of the STRING argument.

2021-11-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Introduce a new 'inhibit-isearch' text property

	* doc/lispref/text.texi (Special Properties): Mention it.

	* lisp/image.el (insert-image): Make `C-s' skip over the image data.
	* lisp/isearch.el (isearch--search-skip-inhibited): New function.
	(isearch-search-string): Use it.
	(isearch--invisible-p): New function.
	(isearch-range-invisible): Use it.

2021-11-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Re-rename the minibuffer heading

	* lisp/minibuffer.el: There's more here than completion functions
	(bug#49844).

2021-11-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Correct minibuffer.el heading

	* lisp/minibuffer.el: There's more here than completion functions
	(bug#49844).

2021-11-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Use underline on non-graphical terminals in make-separator-line

	* lisp/simple.el (separator-line):
	(make-separator-line): Use an underline on terminals (bug#32950).

2021-11-05  F. Jason Park  <jp@neverwas.me>

	Normalize usage of variable erc-server-reconnecting

	* lisp/erc/erc-backend.el (erc-server-reconnecting-p):
	Don't consider erc-server-reconnecting when rendering verdict.
	(erc-process-sentinel-2): ensure local variable
	erc-server-reconnecting is t when timers are scheduled or running and
	trying to reconnect, and nil otherwise, including after no retries
	remain. Previously, its use and meaning in erc-backend were convoluted
	and conflicted with its use in erc-cmd-RECONNECT (bug#50007).

2021-11-05  F. Jason Park  <jp@neverwas.me>

	Don't send empty lines for implicit targets in ERC

	* erc.el (erc-send-input-line): Previously, any line typed into a
	query or channel buffer without an explicit user-command
	handler (meaning most lines), would be sent twice because a trailing
	newline (linefeed) would be appended. This has been verified by
	checking IRCd server logs. IRCds won't return an error upon receiving
	an empty message, but they also won't forward them to channel
	subscribers and DM pals.

	* erc-tests.el: Add test for erc-process-input-line, which also
	indirectly tests erc-send-input-line. It also tests the command
	lookup and dispatch facility (bug#50008).

2021-11-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove messaging in pp-display-expression.

	* lisp/emacs-lisp/pp.el (pp-display-expression): Remove confusing
	message -- we don't usually say that we've popped up a new buffer when
	we do so.

2021-11-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow getting verbose results on erts 'C-u C-c C-c'

	* lisp/progmodes/erts-mode.el (erts-run-test): Allow getting a
	diff buffer of the differences with `C-u C-c C-c'.

2021-11-05  Jim Porter  <jporterbugs@gmail.com>

	Improve behavior of 'electric-pair-mode' in 'cc-mode'

	* lisp/progmodes/cc-mode.el (c-electric-pair-inhibit-predicate):
	Inhibit insertion of paired quote in fewer cases.
	* test/lisp/electric-tests.el (define-electric-pair-test):
	Add 'c-mode' to list of modes to test by default (bug#50538).

	This ensures that quotes are paired correctly within comments, allows for
	insertion of quote pairs immediately before another quote, and allows
	inserting quote pairs within a string (thus splitting the string in two).

2021-11-05  Manuel Giraud  <manuel@ledu-giraud.fr>

	Make 'C-x v v' on an unregistered file use the most specific backend

	* lisp/vc/vc.el (vc-next-action): Mention this.

	* lisp/vc/vc.el (vc-backend-for-registration): Choose the most
	specific backend (bug#50572).

2021-11-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak `eww' new-buffer parameters

	* lisp/net/eww.el (eww): Don't require that the function be called
	with 4 to open a new buffer (bug#51613).

2021-11-05  Daniel Martín  <mardani29@yahoo.es>

	Fix GNUstep build (ns_compute_glyph_string_overhangs)

	* src/nsterm.m (ns_compute_glyph_string_overhangs): Declare the font
	variable so that it's in scope for the GNUstep code.

2021-11-05  Stefan Kangas  <stefankangas@gmail.com>

	Add "N.B." abbreviation to checkdoc

	* lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Add
	abbreviation "N.B.".

2021-11-05  Stefan Kangas  <stefankangas@gmail.com>

	Don't hardcode "Commentary" section in checkdoc

	* lisp/emacs-lisp/checkdoc.el
	(checkdoc-commentary-header-string): New defvar.
	(checkdoc-file-comments-engine): Insert value of above new
	variable instead of hardcoding what is inserted for the
	"Commentary" section.

2021-11-05  Eli Zaretskii  <eliz@gnu.org>

	Use correct compiler options for building with libwebp

	* src/Makefile.in (WEBP_CFLAGS): Define.
	(EMACS_CFLAGS): Use it.  (Bug#51611)

2021-11-05  Michael Albinus  <michael.albinus@gmx.de>

	Improve `file-has-changed-p'

	* doc/lispref/files.texi (File Attributes): Be precise when
	filename does not exist in `file-has-changed-p'.

	* lisp/files.el (file-has-changed-p): Suppress remote file caches.
	Handle the case FILE does not exists.

2021-11-05  Paul Eggert  <eggert@cs.ucla.edu>

	rsvg_handle_get_dimensions is deprecated in 2.52.0

	In Bug#44655#32 (2020-11-19) it was reported that
	rsvg_handle_get_dimensions was not deprecated.  However, it became
	deprecated in librsvg 2.52.0 (2021-09-15), and because of this Emacs
	builds with --enable-gcc-warnings fail in Fedora 35 (2025-11-02)
	with the diagnostic “‘rsvg_handle_get_dimensions’ is deprecated:
	Use 'rsvg_handle_get_intrinsic_size_in_pixels' instead
	[-Werror=deprecated-declarations]”.
	* src/image.c (rsvg_handle_get_dimensions): Define as a DLL
	function only if < librsvg 2.46.0, since it’s not used
	in 2.46.0 or later.
	(svg_load_image): Use rsvg_handle_get_dimensions only if librsvg <
	2.46.0, since it isn’t needed if >= 2.46.0.

2021-11-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow 'pp' to limit the line widths

	* lisp/emacs-lisp/pp.el (pp-max-width, pp-use-max-width): New user
	options (bug#11934).
	(pp-to-string): Use it.
	(pp--insert-lisp): Tweak whether to use standard-output or not.
	(pp--max-width): New function.

2021-11-05  Eli Zaretskii  <eliz@gnu.org>

	Enhance 'highlight-confusing-reorderings'

	* lisp/international/mule-cmds.el (confusingly-reordered): Make
	sure the face looks distinct on displays that don't support the
	"wavy" underline attribute.
	(highlight-confusing-reorderings): Add a tooltip explaining why
	the text was highlighted.  Allow to remove the highlighting by
	invoking the command with a prefix argument.

2021-11-05  Carlos Pita  <carlosjosepita@gmail.com>

	Match dummy output even with non-default rl config

	* lisp/progmodes/python.el
	(python-shell-completion-native-get-completions): Match dummy output
	even when readline is configured in non-default ways.  (Bug#51010)

2021-11-04  Tino Calancha  <tino.calancha@gmail.com>

	Fix (un)compressing directories in Tramp

	* lisp/net/tramp-sh.el (tramp-sh-handle-dired-compress-file):
	Check whether the file is a directory (bug#50581).

2021-11-04  Matthias Meulien  <orontee@gmail.com>

	Fix 'diff-font-lock-prettify' breaking display of outline headers

	* lisp/vc/diff-mode.el (diff-outline-level): Make hunk headers be
	at level 2.
	(diff-mode): Use prettified line as outline header.
	(diff--outline-level): New function (bug#51016).

	* lisp/vc/vc.el (vc-diff-internal): Fix diff mode being set before
	content inserted (bug#51016).

2021-11-04  Daniel Martín  <mardani29@yahoo.es>

	Fix buffer overflow in ns_compute_glyph_string_overhangs

	* src/nsterm.m (ns_compute_glyph_string_overhangs): When the first
	glyph of a glyph string is a composite glyph, `s->nchars' is 0, so
	"s->char2b + s->nchars - 1" dereferenced a position before buffer
	`s->char2b'.  Instead, rewrite part of the function to distinguish
	between character glyphs and composite glyphs.  For character glyphs,
	calculate the font metrics using the `text_extents' function, passing
	it the entire glyph string; for composite glyphs, call
	`composition_gstring_width'. (Bug#51105)

2021-11-04  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Delete commented out code

	* lisp/image-dired.el: Delete broken and commented out speedbar code;
	it is not clear what, if anything, it is supposed to do.  If anyone
	wants to work on this, they are better off starting from scratch.

2021-11-04  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: New defgroup and section for gallery support

	* lisp/image-dired.el: Add new section header "Gallery support" to
	improve file organization.  Move relevant TODO:s there.

	(image-dired-gallery): New defgroup.
	(image-dired-gallery-dir, image-dired-gallery-image-root-url)
	(image-dired-gallery-thumb-image-root-url)
	(image-dired-gallery-hidden-tags): Add options to above new defgroup.

	(image-dired-add-to-file-comment-list)
	(image-dired-create-gallery-lists)
	(image-dired-add-to-tag-file-lists, image-dired-hidden-p): Rename to...
	(image-dired--add-to-file-comment-list)
	(image-dired--create-gallery-lists)
	(image-dired--add-to-tag-file-lists, image-dired--hidden-p):
	...this, to make it more clear that these functions are internal.
	Make the old names obsolete function aliases.
	(image-dired-add-to-tag-file-list): Make unused function obsolete.

2021-11-04  Gregory Heytings  <gregory@heytings.org>

	New emacsclient option to either create or reuse an existing frame.

	* doc/emacs/misc.texi (emacsclient Options): Document the new option.

	* doc/man/emacsclient.1: Mention the new option (bug#51374).
	* etc/NEWS: Mention the new option.

	* lib-src/emacsclient.c (reuse_frame): New variable.
	(longopts): New option.
	(decode_options): Decode the new option.
	(print_help_and_exit): Document the new option.
	(main): Use the new option.

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Try harder to keep lines short in pp-emacs-lisp-code

	* lisp/emacs-lisp/pp.el (pp--insert): Try harder to keep lines short.

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak multi-line expressions in pp--format-function

	* lisp/emacs-lisp/pp.el (pp--format-function): Fix up multi-line
	expressions.

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up some list folding in pp-emacs-lisp-code

	* lisp/emacs-lisp/pp.el (pp--insert-lisp, pp--format-list)
	(pp--insert): Touch up list folding.

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Indent lambdas/closures better

	* lisp/emacs-lisp/pp.el (pp--format-function): Indent lambdas and
	closures better.

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Make lambda/closure help buttons format as Emacs Lisp

	* lisp/help.el (help--describe-command): Format lambda/closures as
	Emacs Lisp.

	* lisp/emacs-lisp/pp.el (pp-display-expression): Allow formatting
	as Emacs Lisp.

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new basic Emacs Lisp code formatting function

	* lisp/emacs-lisp/pp.el (pp-emacs-lisp-code): New interface function.
	(pp): Mention it.
	(pp--insert-lisp, pp--format-vector, pp--format-list)
	(pp--format-function, pp--format-definition, pp--insert-binding)
	(pp--insert, pp--indent-buffer): New helper functions.

2021-11-04  Stephen Berman  <stephen.berman@gmx.net>

	Fix allout point movement problem

	* lisp/allout.el (allout-next-visible-heading): Ensure that we
	move to the next physical line (bug#51530).

2021-11-04  Eli Zaretskii  <eliz@gnu.org>

	Better detection of potentially malicious bidi text

	* src/bidi.c (bidi_find_first_overridden): Extend to detect more
	subtle effects of directional formatting controls, to include
	embeddings and isolates.
	* src/xdisp.c (Fbidi_find_overridden_directionality): Accept an
	additional argument BASE-DIR to specify the base direction of the
	paragraphs.

	* lisp/international/mule-cmds.el (confusingly-reordered): New
	face.
	(reorder-starters, reorder-enders): New variables.
	(highlight-confusing-reorderings): New command to detect and
	highlight suspiciously reordered text.

	* test/src/xdisp-tests.el
	(xdisp-tests--find-directional-overrides): New test.

	* etc/NEWS: Announce the new and improved features.
	* etc/tutorials/TUTORIAL.he: Fix embeddings with incorrect
	directions.

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	font-lock-type-face doc string improvement

	* lisp/font-lock.el (font-lock-type-face): Fix grammar in doc
	string (bug#51574).

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Improve defface error message

	* lisp/cus-face.el (custom-declare-face): Improve the error
	message when there's a missing doc string (bug#51576).

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't have `M-x term' call `term-mode' twice

	* lisp/term.el (term): Don't call `term-mode' twice (bug#51589).

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Document that `unspecified' isn't valid in defface

	* doc/lispref/display.texi (Face Attributes): Mention that
	unspecified isn't valid in defface (bug#51595).

2021-11-04  Gregory Heytings  <gregory@heytings.org>

	Reset mailcap entries only when mailcap files are read again

	* lisp/net/mailcap.el (mailcap-parse-mailcaps): Move the clear and
	load defaults operations at their appropriate place.  Fixes bug#51600.

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix return value of python-nav-end-of-defun

	* lisp/progmodes/python.el (python-nav-end-of-defun): Return
	non-nil if in a def/class, as the doc string implies (bug#51601).

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Rename button-buttonize to buttonize

	* lisp/help.el (help--describe-command):
	* lisp/emacs-lisp/memory-report.el (memory-report--buffers):
	* lisp/button.el (button-buttonize):
	* doc/lispref/display.texi (Making Buttons): Rename
	button-buttonize to just buttonize and adjust callers.

2021-11-04  Mattias Engdegård  <mattiase@acm.org>

	Revert "* lisp/progmodes/xref.el (xref-pop-marker-stack): Don't obsolete."

	This reverts commit f56408a6f0152cd46d1ea8a0985fbfeeb839ea06.

	As commented by Dmitry Gutov in [1], obsoleting `xref-pop-marker-stack`
	makes sense.

	[1] https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg01870.html

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a Gnus command to emojize symbols

	* doc/misc/gnus.texi (Article Display): Document it.

	* lisp/gnus/gnus-art.el (gnus-treat-emojize-symbols): New user option.
	(gnus-treatment-function-alist): Map.
	(article-emojize-symbols): New command and keystroke.

2021-11-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option mml-attach-file-at-the-end

	* lisp/gnus/mml.el (mml-attach-file-at-the-end): New user option.
	(mml-attach-file): Use it.

2021-11-04  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Set default-directory in thumbnail buffer

	* lisp/image-dired.el (image-dired-show-all-from-dir): Set
	default-directory.  This fixes e.g. 'dired-jump'.

2021-11-03  Stefan Kangas  <stefankangas@gmail.com>

	Make image-dired-display-image-mode inherit from image-mode

	* lisp/image-dired.el (image-dired-display-image-mode):
	Inherit from 'image-mode'.  (Bug#10758)
	(image-dired-display-image): Don't generate a temporary image, which
	is no longer needed with the above change.
	(image-dired-display-thumbnail-original-image)
	(image-dired-dired-display-image)
	(image-dired-mouse-display-image): Simplify.

	(image-dired-temp-image-file)
	(image-dired-cmd-create-temp-image-program)
	(image-dired-cmd-create-temp-image-options)
	(image-dired-display-window-width-correction)
	(image-dired-display-window-height-correction)
	(image-dired-display-window-width)
	(image-dired-display-window-height)
	(image-dired-display-current-image-full)
	(image-dired-display-current-image-sized)
	(image-dired-window-height-pixels): Make obsolete.
	(image-dired-create-display-image-buffer): Make into obsolete
	function alias for 'ignore'.
	(image-dired-display-image-mode-map): Simplify by removing things
	duplicated from `image-mode-map'.  Disable some commands from
	`image-mode-map' that doesn't make sense for Image-Dired.
	(image-dired-display-image-mode-menu): Remove menu, as it no longer
	contains anything useful.
	(image-dired-minor-mode):
	* doc/emacs/dired.texi (Image-Dired): Update documentation for the
	above change.

2021-11-03  Stefan Kangas  <stefankangas@gmail.com>

	Improve theming of image-dired-thumb-mark

	* etc/themes/adwaita-theme.el (adwaita):
	* etc/themes/deeper-blue-theme.el (deeper-blue):
	* etc/themes/dichromacy-theme.el (dichromacy):
	* etc/themes/leuven-theme.el (leuven):
	* etc/themes/manoj-dark-theme.el (manoj-dark):
	* etc/themes/whiteboard-theme.el (whiteboard): Add definitions for
	the 'image-dired-thumb-flagged' face.

2021-11-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Add face for flagged files

	* lisp/image-dired.el (image-dired-thumb-mark): New defface.
	(image-dired-thumb-update-marks): Mark flagged file with above new defface.
	(image-dired-dired-file-marked-p)
	(image-dired-thumb-file-marked-p): Add optional argument to be
	used by 'image-dired-*-flagged-p' functions below.
	(image-dired-dired-file-flagged-p)
	(image-dired-thumb-file-flagged-p): New defuns.
	(image-dired-thumb-mark): Improve definition with color classes.
	(image-dired-thumb-visible-marks): Doc fix.

2021-11-03  Philipp Stephani  <phst@google.com>

	Fix declaration syntax of 'image-dired--on-file-in-dired-buffer'.

	* lisp/image-dired.el (image-dired--on-file-in-dired-buffer): Fix
	declaration syntax.

2021-11-03  Eli Zaretskii  <eliz@gnu.org>

	Fix encoding issues in gitmerge.el, make it work on MS-Windows

	* admin/gitmerge.el (gitmerge-emacs-version, gitmerge-show-log)
	(gitmerge-show-diff, gitmerge-show-files, gitmerge-missing)
	(gitmerge-setup-log-buffer, gitmerge-resolve)
	(gitmerge-commit-message, gitmerge-apply)
	(gitmerge-resolve-unmerged, gitmerge-repo-clean)
	(gitmerge-commit): Bind coding-system-for-read/write to the
	appropriate vc-git values.
	(gitmerge-apply) [windows-nt]: Pass long merge log messages via a
	temporary file.
	(gitmerge): Clarify the description of the "R" flag.

2021-11-03  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	3e4eb54 ; * etc/PROBLEMS: Minor copyedits of the last change.  (Bug#5...
	35bc211 Document a macOS error message when opening Emacs
	4df9998 Fix header-line and tab-line when mode-line-compact is set
	81915a9 Add manual section about how to avoid regexp problems
	a16e66c Clarify build environment
	6ab6b2f Clarify build directory structure
	9d61620 * src/pdumper.c (dump_do_dump_relocation): Add sanity check.

2021-11-03  Eli Zaretskii  <eliz@gnu.org>

	Fix widgets in Outline mode on TTY frames

	* lisp/outline.el (outline--valid-emoji-p): Don't try to probe
	support for display of Emoji characters on TTY frames.  (Bug#51578)

2021-11-03  Eli Zaretskii  <eliz@gnu.org>

	A better fix for bug#51583

	* src/w32.c (w32_get_resource): Move from here...
	* src/w32fns.c (w32_get_resource): ...to here.
	(w32_applytheme): No longer a no-op for Cygwin w32 builds.
	(globals_of_w32fns): Do attempt to load dwmapi.dll and uxtheme.dll
	in the Cygwin w32 build.

2021-11-03  Eli Zaretskii  <eliz@gnu.org>

	Fix the Cygwin w32 build broken by adding the dark theme support

	* src/w32fns.c (w32_applytheme): Make a no-op for Cygwin w32
	builds.
	(globals_of_w32fns): Don't attempt to load dwmapi.dll and
	uxtheme.dll in the Cygwin w32 build.  (Bug#51583)

2021-11-03  Stefan Kangas  <stefankangas@gmail.com>

	Improve theming of image-dired-thumb-mark

	* etc/themes/adwaita-theme.el (adwaita):
	* etc/themes/deeper-blue-theme.el (deeper-blue):
	* etc/themes/dichromacy-theme.el (dichromacy):
	* etc/themes/leuven-theme.el (leuven):
	* etc/themes/manoj-dark-theme.el (manoj-dark):
	* etc/themes/whiteboard-theme.el (whiteboard): Add definitions for
	the 'image-dired-thumb-mark' face.

2021-11-03  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* src/image.c: Fix building with giflib 4.

2021-11-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Improve marking behavior

	* lisp/image-dired.el (image-dired-thumb-mark): Use DarkOrange as
	background to better match the 'dired-marked' face.
	(image-dired-show-all-from-dir): Disable all marks when entering a
	full directory.
	(image-dired-unmark-all-marks): Add mode tag.
	(image-dired-thumbnail-mode-map): Bind 'image-dired-unmark-all-marks'
	to "U".

2021-11-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Cleanup of four commands

	* lisp/image-dired.el
	(image-dired--on-file-in-dired-buffer): New macro.
	(image-dired-mark-thumb-original-file)
	(image-dired-unmark-thumb-original-file)
	(image-dired-flag-thumb-original-file)
	(image-dired-toggle-mark-thumb-original-file): Rewrite using
	above new macro.
	(image-dired-modify-mark-on-thumb-original-file): Make obsolete in
	favor of above new macro.

2021-11-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Support wrap-around in display-next-thumbnail-original

	* lisp/image-dired.el (image-dired-forward-image): Support negative
	prefix argument.  Optionally wrap-around, which means to continue from
	first image after reaching the last one and vice versa.
	(image-dired-backward-image): Reimplement in terms of
	'image-dired-forward-image'.
	(image-dired-display-next-thumbnail-original)
	(image-dired-display-previous-thumbnail-original): Wrap around; when
	reaching the last image, continue from the first one.  Add optional
	prefix argument to move more than one image at a time.

2021-11-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Improve menus

	* lisp/image-dired.el (image-dired-toggle-append-browsing)
	(image-dired-toggle-movement-tracking): Improve messages.
	(image-dired-thumbnail-mode-menu, image-dired-minor-mode-menu):
	Make toggle entries into checkboxes.  Add separators.  Remove
	obsoleted commands accidentally added back in merge.

2021-11-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Signal error if file is missing on display

	* lisp/image-dired.el (image-dired-display-image): Signal error if
	file is missing.

2021-11-03  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Move menu definitions to top level

	* lisp/image-dired.el (image-dired-thumbnail-mode-map)
	(image-dired-display-image-mode-map, image-dired-minor-mode-map):
	Move menu definitions from here...
	(image-dired-thumbnail-mode-menu)
	(image-dired-display-image-mode-menu)
	(image-dired-minor-mode-menu): ...to these new top level
	definitions.

2021-11-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/epg.el (epg-key): Use explicit copier with proper prefix

	(epg--filter-revoked-keys): Adjust sole use.

2021-11-02  Stefan Kangas  <stefankangas@gmail.com>

	* etc/PROBLEMS: Move some entries to the legacy section.

2021-11-02  Stefan Kangas  <stefankangas@gmail.com>

	Remove info for Emacs 20 users from etc/PROBLEMS

	* etc/PROBLEMS: Remove information for users upgrading from Emacs
	20 or older.

2021-11-02  Mattias Engdegård  <mattiase@acm.org>

	Optimize (cond) => nil at source level

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-cond):
	Optimize clause-free `cond`, which can arise from earlier
	transformations.  This enables further optimizations.
	* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
	Add test cases.

2021-11-02  Stefan Kangas  <stefankangas@gmail.com>

	Use current face foreground for SVG icons in customize

	* etc/images/down.svg:
	* etc/images/left.svg:
	* etc/images/right.svg:
	* etc/images/up.svg: Don't define foreground; this means they will use
	the foreground of the currently defined face instead.  (Bug#51556)

2021-11-02  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	bc58bea * lisp/progmodes/prog-mode.el (prog-context-menu): Use text-m...

2021-11-02  Stefan Kangas  <stefankangas@gmail.com>

	Support inserting images in tabulated-list-mode columns

	* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-col):
	Support using an image descriptor to insert an image in a column.
	(tabulated-list-entries):
	* doc/lispref/modes.texi (Tabulated List Mode): Update documentation
	to reflect above change.

2021-11-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert overlay-related changes in `C-h b'

	* lisp/help.el (describe-bindings): Revert overlay-related changes
	-- these are already output (normally) by `describe-buffer-bindings'.

2021-11-02  Lars Ingebrigtsen  <larsi@gnus.org>

	Make lambdas/closures/byte code in `C-h b' clickable

	* lisp/help.el (help--describe-command): Add links for
	lambdas/closures/byte code (bug#24235).

	* lisp/emacs-lisp/pp.el (pp-display-expression): Autoload.

2021-11-02  Gregory Heytings  <gregory@heytings.org>

	Improve file-has-changed-p

	* doc/lispref/files.texi: Update the documentation.

	* lisp/net/mailcap.el: Add a second argument to the call to
	file-has-changed-p (bug#51523).

2021-11-02  dickmao  <dick.r.chiang@gmail.com>

	Update keymap-tests after recent changes

	* test/src/keymap-tests.el
	(help--describe-vector/bug-9293-one-shadowed-in-range): Update tests
	for d530f3f9ff.
	(help--describe-vector/bug-9293-same-command-does-not-shadow): Update
	(bug#51567).

2021-11-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/outline.el: Fix compilation of `outline--make-button`

2021-11-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix mouse-1 on `C-h b' buttons

	* lisp/outline.el (outline--make-button-overlay): Make mouse-1
	work on the buttons.

2021-11-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-h b' also describe overlay keymaps

	* lisp/help.el (describe-bindings): Also describe overlay key
	bindings.

2021-11-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a better test for emojis

	* lisp/outline.el (outline--valid-char-p)
	(outline--valid-emoji-p): New predicates.
	(outline--make-button, outline-minor-mode-buttons): Use them.

2021-11-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-h b' indentation more regular (and avoid continuation lines)

	* lisp/help.el (help--describe-command): Don't do any indentation.
	(describe-map): Store data about each section.
	(describe-map--align-section): New function to do indentation on a
	per-block basis.
	(describe-map--fill-columns): Helper function.

2021-11-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix rendering of key translations

	* lisp/help.el (help--describe-translation): Make obsolete.
	(help--describe-command): Take an optional parameter to output key
	translations.
	(describe-map): Make optional parameters optional.

2021-11-01  Eli Zaretskii  <eliz@gnu.org>

	Improve documentation of 'file-has-changed-p'

	* etc/NEWS:
	* doc/lispref/files.texi (File Attributes): Improve wording of the
	documentation of 'file-has-changed-p'.

2021-11-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't output prefix keys in `C-h b', and output more data on objects

	* lisp/help.el (help--describe-command): Output
	[closure/lambda/byte-code] for those types of objects.
	(describe-map): Don't output prefix keys.

2021-11-01  Michael Albinus  <michael.albinus@gmx.de>

	Exclude emacs-module-tests.el on emba

	* test/infra/gitlab-ci.yml (test-native-comp-speed0):
	Exclude emacs-module-tests.el.

2021-11-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add buttons to definition in help--describe-command

	* lisp/help-mode.el (help-make-xrefs): Don't add buttons to
	keymaps, because they're pre-buttonized.
	* lisp/help.el (help--describe-command): Make buttons out of the
	definitions.

2021-11-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Tag up last NEWS change

2021-11-01  Gregory Heytings  <gregory@heytings.org>

	Read mailcaps again only when necessary

	* doc/lispref/files.texi (File Attributes): Document it.

	* lisp/files.el (file-has-changed-p): New function.
	(file-has-changed-p--hash-table): Internal variable used by the
	new function (bug#51523).
	* lisp/emacs-lisp/shortdoc.el (file): Mention it.

	* lisp/net/mailcap.el (mailcap-parse-mailcaps): Read mailcaps again
	only when at least one of the mailcap files has changed.  Fixes
	bug#51523.

2021-11-01  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-28

	84cd95e04c Fix bug#51369

2021-11-01  Michael Albinus  <michael.albinus@gmx.de>

	Merge from origin/emacs-28

	ba4daf2214 Adapt arguments of `tramp-make-tramp-file-name'
	a34466731b Fix typo in describe-map-tree doc string

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Further xref fix-ups after keymap help changes

	* lisp/help-mode.el (help-make-xrefs): Get continuation lines right.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix infloop in help-make-xrefs in certain keymaps

	* lisp/help-mode.el (help-make-xrefs): Adjust xref symbol finding
	after changes to how keymaps are output.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Make xref symbol marking work again after describe-keymap changes

	* lisp/help-mode.el (help-make-xrefs): Adjust xref symbol finding
	after changes to how keymaps are output.

2021-10-31  Aaron Jensen  <aaronjensen@gmail.com>

	* lisp/icomplete.el (icomplete-exhibit): Remove workaround

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix failing help-fns tests after layout changes in `C-h b'

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Say "Key/Binding" instead of "key/binding" in `C-h b'

	* lisp/help.el (describe-map-tree): Capitalize the heading.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't print empty keymaps in `C-h b'

	* lisp/help.el (describe-map-tree): Don't print the heading if the
	keymap is empty (bug#22334).  Tweak the look to compress it more
	vertically.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Include the major mode name in the `C-h b' output

	* lisp/calc/calc-help.el (calc-describe-bindings): Don't add the
	name since it's there now.

	* src/keymap.c (Fdescribe_buffer_bindings): Include the major mode
	name for symmetry with the minor modes (and because it's easy to
	forget).

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't make key binding face wider than the norm

	* lisp/faces.el (help-key-binding): Don't make the chars wider
	than normally, because that makes `C-h b' lining-up logic fail.

2021-10-31  Ken Brown  <kbrown@cornell.edu>

	Merge from origin/emacs-28

	6ba4e3b78c Drop support for native compilation on 32-bit Cygwin
	7e15ee5bc9 ; * doc/emacs/help.texi (Help Mode): Improve indexing.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Re-fix the new mouse event logic in outline

	* lisp/outline.el (outline-show-subtree, outline-hide-subtree):
	Really fix the mouse logic.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Make TAB work on the outline buttons

	* lisp/outline.el (outline--insert-close-button)
	(outline--insert-open-button): Make TAB work to toggle on the
	buttons, too.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Clarify describe-bindings code slightly

	* lisp/help.el (describe-bindings): Clarify code slightly.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix new mouse handling in outline

	* lisp/outline.el (outline-show-subtree, outline-hide-subtree):
	Don't set point if we have no event.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Add buttons to outlining and tweak `C-h b' buffer

	* lisp/help.el (describe-bindings-outline): Change default to t.
	(describe-bindings): Tweak the look and remove the explanation.

	* lisp/outline.el (outline-minor-mode-use-buttons):
	(outline-minor-mode-buttons): New user options.
	(outline-hide-subtree): Update buttons.
	(outline--make-button, outline--make-button-overlay)
	(outline--insert-open-button, outline--insert-close-button)
	(outline--fix-up-all-buttons): New functions.

2021-10-31  Eli Zaretskii  <eliz@gnu.org>

	Improve the "Help Mode" section of the Emacs manual

	* doc/emacs/help.texi (Help Mode): Reorganize and improve wording
	of the recent change.  Add index entries.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Add mode tagging to previously added help commands

	* lisp/help-mode.el (help-goto-previous-page): New command and key
	binding.
	(help-goto-previous-page): Ditto.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Add 'n'/'p' key bindings in *Help* buffers

	* lisp/help-mode.el (help-goto-previous-page): New command and key
	binding.
	(help-goto-previous-page): Ditto.

2021-10-31  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	f1c9286 ; * doc/misc/org.org: fix capture context example
	af67ce6 Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/emacs...
	610680a Fix rendering of title-less <abbr> tags in shr
	2ba4ccf ; * lisp/files.el (make-nearby-temp-file): Doc fix.

2021-10-31  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	5e05be5 Fix localized display of date and time in the NS port

2021-10-31  Michael Albinus  <michael.albinus@gmx.de>

	Adapt emba control files

	* test/infra/Dockerfile.emba: Do not generate debug info.

	* test/infra/gitlab-ci.yml (variables, default): Revert timeout
	back to three hours.
	(.job-template): Comment test prints.
	(test-all-inotify): Exclude emacs-module-tests.el.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Add highlighting of the F2008 keyword "impure"

	* lisp/progmodes/f90.el (f90-keywords-re): Highlight F2008 keyword
	"impure" (bug#51529).

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function 'font-has-char-p'

	* src/font.c (Ffont_has_char_p): New function.
	(Ffont_get_glyphs): Link to the new function from the doc string.

2021-10-31  Stefan Kangas  <stefankangas@gmail.com>

	Add test for Bug#51527

	* test/src/keymap-tests.el (keymap-lookup-key/menu-non-symbol):
	New test.

2021-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>

	eieio-core.el: Make slot-value work on defstructs

	Adjust the values in EIEIO's index-tables so they are compatible with those
	of defstructs.

	* lisp/emacs-lisp/eieio-core.el (eieio--slot-name-index): Don't add the
	`eieio--object-num-slots` offset.
	(eieio-defclass-internal): Add the `eieio--object-num-slots` offset
	here instead.
	(eieio-oref): Allow its use on `cl-structure-object`.

	* lisp/emacs-lisp/eieio.el (eieio-pcase-slot-index-from-index-table):
	Don't need to add the `eieio--object-num-slots` offset.

	* doc/misc/eieio.texi (Accessing Slots, Accessing Slots):
	Mention the use on structs.

	* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
	(eieio-test-defstruct-slot-value): New test.

2021-10-31  Lars Ingebrigtsen  <larsi@gnus.org>

	Expand the kbd-valid-p doc string

	* lisp/subr.el (kbd-valid-p): Expand the doc string.

2021-10-31  Eli Zaretskii  <eliz@gnu.org>

	Avoid signaling errors in lookup-key

	* src/keymap.c (Flookup_key): Handle KEY vectors where not all
	components are symbols.  (Bug#51527

2021-10-31  Alan Third  <alan@idiocy.org>

	Ensure help echoes only occur once on NS

	* src/nsterm.m ([EmacsView windowDidResignKey:]): Reset
	any_help_event_p as it is never reset otherwise.

2021-10-31  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	335a660b4b Fix display glitches with side-by-side windows on TTY frames
	4a96f32def Avoid replacing common prefix with ellipsis

2021-10-30  Stefan Kangas  <stefankangas@gmail.com>

	Remove workaround for fixed Bug#6581 from ert

	* lisp/emacs-lisp/ert.el (ert-equal-including-properties): Make
	into obsolete function alias for 'equal-including-properties'.
	* test/src/editfns-tests.el (format-properties):
	* test/lisp/emacs-lisp/ert-x-tests.el (ert-propertized-string)
	(ert-test-run-tests-interactively-2): Don't use above obsolete
	name.

	(ert--explain-equal-including-properties-rec): New function.
	(ert--explain-equal-including-properties): Use as an explainer for
	'equal-including-properties' now that Bug#6581 is fixed.

	* test/lisp/emacs-lisp/ert-tests.el
	(ert-test-explain-equal-string-properties): Expand test.
	(ert-test-equal-including-properties): Merge test into above
	expanded test.

2021-10-30  Stefan Kangas  <stefankangas@gmail.com>

	Fix bug with string values in equal-including-properties

	* src/intervals.c (intervals_equal_1): Factor out from
	intervals_equal.  Optionally use Fequal for comparison of string
	values in property lists.
	(intervals_equal): Update for the above.
	(compare_string_intervals): Use the above optional Fequal comparison
	to fix a bug where 'equal-including-properties' compared strings with
	eq, instead of equal.  (Bug#6581)
	* test/src/fns-tests.el (fns-tests-equal-including-properties)
	(fns-tests-equal-including-properties/string-prop-vals): New tests.

	* test/lisp/emacs-lisp/ert-tests.el
	(ert-test-equal-including-properties): Remove parts testing
	'equal-including-properties'.
	* lisp/emacs-lisp/ert.el (ert-equal-including-properties): Add
	FIXME that this should be removed.

2021-10-30  Stefan Kangas  <stefankangas@gmail.com>

	Use primes for hash table bucket sizes

	* src/dispextern.h (IMAGE_CACHE_BUCKETS_SIZE):
	* src/image.c (XPM_COLOR_CACHE_BUCKETS): Use primes for hash table
	bucket sizes.

2021-10-30  Eli Zaretskii  <eliz@gnu.org>

	Move the documentation of 'string-glyph-split' to proper place

	* doc/lispref/strings.texi (Creating Strings): Move the
	description of 'string-glyph-split' from here...
	* doc/lispref/display.texi (Size of Displayed Text): ...to here.

2021-10-30  Jim Porter  <jporterbugs@gmail.com>

	Expand connection-local variables example in doc/emacs/custom.texi

	* doc/emacs/custom.texi (Per-Connection Local Variables): Expand the
	example to include setting 'system-uses-terminfo'.

2021-10-30  dalanicolai  <dalanicolai@gmail.com>

	Make list-colors-display sort list passed as argument

	* lisp/facemenu.el (list-colors-display): Don't skip sorting list of
	colors if it was passed as an argument.  (Bug#51371)

2021-10-30  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function string-glyph-split

	* doc/lispref/strings.texi (Creating Strings): Document it.
	* lisp/emacs-lisp/shortdoc.el (string): Mention it.

	* lisp/emacs-lisp/subr-x.el (string-glyph-split): New function.

2021-10-30  Kévin Le Gouguec  <kevin.legouguec@gmail.com>

	Avoid fonts with incomplete coverage of MATHEMATICAL chars

	* lisp/international/fontset.el (setup-default-fontset): Include both
	ends of each sub-range in 'script-representative-chars' (bug#51495).

	Some fonts include glyphs for MATHEMATICAL SCRIPT CAPITAL codepoints
	(#x1D49C-#x1D4B5) but not for MATHEMATICAL SCRIPT SMALL codepoints
	(#x1D4B6-#x1D4CF), see e.g. KpMath[1].

	'script-representative-chars' must thus include both CAPITAL and SMALL
	codepoints to ensure that we filter those fonts out.

	Bug#51495; discussed in help-gnu-emacs[2].

	[1] https://mirrors.ctan.org/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf

	[2] <878s02u5m6.fsf@gmail.com>
	    https://lists.gnu.org/archive/html/help-gnu-emacs/2021-09/msg00150.html

2021-10-30  Eli Zaretskii  <eliz@gnu.org>

	Minor fixes for previous change

	* src/w32fns.c (DWMWA_USE_IMMERSIVE_DARK_MODE_OLD): Define only if
	undefined.
	(w32_applytheme, w32_createwindow, globals_of_w32fns): Minor
	stylistic copyedits.

	* etc/NEWS: Reword the entry about using dark mode on MS-Windows.

	* doc/emacs/msdos.texi (Windows Misc): Fix wording and markup in
	the last change.

2021-10-30  Vince Salvino  <salvino@coderedcorp.com>

	Support system dark mode on Windows 10 version 1809 and higher

	* src/w32fns.c (DARK_MODE_APP_NAME)
	(DWMWA_USE_IMMERSIVE_DARK_MODE_OLD)
	(DWMWA_USE_IMMERSIVE_DARK_MODE): Define.
	(w32_applytheme): New function.
	(w32_createvscrollbar, w32_createhscrollbar, w32_createwindow):
	Call 'w32_applytheme'.
	(globals_of_w32fns): Load 'DwmSetWindowAttribute' and
	'SetWindowTheme' from their DLLs, and initialize 'w32_darkmode'.
	* src/w32.c (w32_get_resource): Accept an additional argument
	instead of hard-coding REG_ROOT; callers changed.  (Bug#51404)

	* etc/NEWS:
	* doc/emacs/msdos.texi (Windows Misc): Document the new feature.

2021-10-30  Eli Zaretskii  <eliz@gnu.org>

	Merge from origin/emacs-28

	20ebd91a73 Improve documentation of string truncation APIs
	3f998a3fc8 * lisp/textmodes/css-mode.el: Fix typo.  (Bug#51488)

2021-10-29  Stefan Kangas  <stefankangas@gmail.com>

	* src/image.c: Fix building with giflib on MS-Windows.

2021-10-29  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	52e7049b58 * lisp/loadup.el: Unbreak build.
	91e7df281e Move lisp/shorthands.el to lisp/emacs-lisp/shorthands.el
	00103154e0 Some Tramp changes, mainly in tramp-tests.el

2021-10-29  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	08de838531 ; Improve commentary in the last change
	3da9fa875b Make hieroglyphs display correctly with existing fonts
	928e05f2d6 Clarify "default face attributes" in the ELisp manual
	5dbb04e0eb Make `C-u RET' work again
	d72fefdeab Fix typos in the manual and in a comment

2021-10-29  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	f52fa1c150 image-dired: Unreverse accidentally reversed menus

	# Conflicts:
	#	lisp/image-dired.el

2021-10-29  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	7e2b973d60 * lisp/textmodes/text-mode.el (text-mode-context-menu): Re...
	da6d889e90 ; * etc/NEWS: Use active voice for 'repeat-mode', etc.
	e3171e7e86 Allow automatic use of color fonts for emoji on macOS

	# Conflicts:
	#	etc/NEWS

2021-10-29  Stefan Kangas  <stefankangas@gmail.com>

	Prefer giflib 5 macros to magic numbers

	* src/image.c (DISPOSAL_UNSPECIFIED, DISPOSE_DO_NOT)
	(DISPOSE_BACKGROUND, DISPOSE_PREVIOUS, NO_TRANSPARENT_COLOR)
	[GIFLIB_MAJOR < 5]: Macro defined (for old versions of giflib).
	(gif_load): Replace magic numbers with giflib 5 macros for disposal
	and transparency_color_index.

2021-10-29  Stefan Kangas  <stefankangas@gmail.com>

	Don't parse GCB block by hand with giflib 5 or later

	* src/image.c (gif_load): If GIFLIB_MAJOR > 5, use
	DGifSavedExtensionToGCB instead of parsing the Graphic Control
	Extension block by hand.

2021-10-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Make message/rfc822 on buttons work again in Gnus

	* lisp/gnus/gnus-art.el (gnus-article-mode): Set
	mm-inline-message-prepare-function buffer-locally so that it works
	both when inlining rfc822 and hitting the MIME button (bug#51388).
	(gnus-mime--inline-message): Factor out into own function.
	(gnus-mime-display-single): From here.

2021-10-29  Morgan J. Smith  <Morgan.J.Smith@outlook.com>

	Add some gnus-short-group-name tests

	* test/lisp/gnus/gnus-group-tests.el (gnus-short-group-name): Add
	some gnus-short-group-name tests (bug#51450).

2021-10-29  Lars Ingebrigtsen  <larsi@gnus.org>

	Shorten Gnus groups with [foo] in the name better

	* lisp/gnus/gnus.el (gnus-short-group-name): Shorten groups with
	[] in the names better (bug#51450).

2021-10-29  Stefan Kangas  <stefankangas@gmail.com>

	* src/image.c (gif_load): Minor simplification.

2021-10-29  Eli Zaretskii  <eliz@gnu.org>

	Fix bootstrapping broken by a recent change

	* src/keymap.c (Flookup_key): Avoid crashes during bootstrap when
	uni-lowercase.el is not available yet.

2021-10-28  akater  <nuclearspace@gmail.com>

	Indent cl-flet-like forms correctly in incomplete expressions

	* lisp/emacs-lisp/lisp-mode.el
	(lisp--local-defform-body-p): Support incomplete sexps

	* test/lisp/progmodes/elisp-mode-resources/flet.erts:
	Add tests for incomplete sexps (bug#9622).

2021-10-28  Stefan Kangas  <stefankangas@gmail.com>

	Be more allowing when looking for menu-bar items

	* src/keymap.c (lookup_key_1): Factor out function from
	Flookup_key.
	(Flookup_key): Be case insensitive, and treat spaces as dashes,
	when looking for Qmenu_bar items.  (Bug#50752)

	* test/src/keymap-tests.el
	(keymap-lookup-key/mixed-case)
	(keymap-lookup-key/mixed-case-multibyte)
	(keymap-lookup-keymap/with-spaces)
	(keymap-lookup-keymap/with-spaces-multibyte)
	(keymap-lookup-keymap/with-spaces-multibyte-lang-env): New tests.

2021-10-28  Alan Mackenzie  <acm@muc.de>

	Put missing c-keep-region-active's into the source code

	* lisp/progmodes/cc-cmds.el (c-beginning-of-defun): Insert
	c-keep-region-active when (< arg 0).
	(c-forward-conditional): Insert c-keep-region-active.

2021-10-28  Jim Porter  <jporterbugs@gmail.com>

	Make comint-term-environment connection-aware (bug#51426)

	* lisp/comint.el (comint-term-environment): Make it connection-aware.

	* doc/emacs/misc.texi (Shell Options): Document the above change, and
	explain how this interacts with 'system-uses-terminfo'.

	* etc/NEWS: Announce the above change.

2021-10-28  Eli Zaretskii  <eliz@gnu.org>

	Ignore more events in input-pending-p

	* src/keyboard.c (readable_events)
	(kbd_buffer_store_buffered_event): Use 'is_ignored_event' to
	decide whether the input event is to be ignored.
	(is_ignored_event): New function.
	(syms_of_keyboard) <input-pending-p-filter-events>: New variable.
	Patch from Aaron Jensen <aaronjensen@gmail.com>.

2021-10-27  Stefan Kangas  <stefankangas@gmail.com>

	Do interactive mode tagging in image-dired.el

	* lisp/image-dired.el (image-dired-restore-window-configuration)
	(image-dired-next-line, image-dired-previous-line)
	(image-dired-mark-thumb-original-file)
	(image-dired-unmark-thumb-original-file)
	(image-dired-flag-thumb-original-file)
	(image-dired-toggle-mark-thumb-original-file)
	(image-dired-jump-original-dired-buffer)
	(image-dired-delete-char, image-dired-refresh-thumb)
	(image-dired-display-next-thumbnail-original)
	(image-dired-display-previous-thumbnail-original): Do interactive
	tagging; these will only work in 'image-dired-thumbnail-mode'.

2021-10-27  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Make thumbnail rotation commands obsolete

	* lisp/image-dired.el (image-dired-cmd-rotate-thumbnail-program)
	(image-dired-cmd-rotate-thumbnail-options)
	(image-dired-rotate-thumbnail)
	(image-dired-rotate-thumbnail-left)
	(image-dired-rotate-thumbnail-right): Make obsolete in favor of
	'image-dired-refresh-thumb' and 'image-rotate'.  It makes no sense to
	have destructive thumbnail rotation commands now that Emacs can rotate
	thumbnails in memory, and it is very fast to just generate a new one
	reflecting the rotation of the original.
	(image-dired-thumbnail-mode-map): Remove menu entries and key bindings
	for above obsolete commands.  The rotate right keybinding had already
	been made ineffective by the local keymap added by 'insert-image'.

2021-10-27  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Don't show thumbnails if there are no image files

	* lisp/image-dired.el (image-dired-show-all-from-dir): Don't show
	thumbnail buffer if there are no image files.

2021-10-27  Stefan Kangas  <stefankangas@gmail.com>

	Increase image-dired-show-all-from-dir-max-files to 500

	* lisp/image-dired.el (image-dired-show-all-from-dir-max-files):
	Increase default to 500 to ask for confirmation much less frequently.
	The old value was added before we had asynchronous generation of
	thumbnails, when a large number of files would lock up Emacs.  Asking
	for confirmation could probably be disabled completely these days, but
	let's be conservative and set it to some large number of files for
	which some users might want to see a prompt.  It can't hurt.
	(image-dired-show-all-from-dir): Never warn if above variable is nil.
	(image-dired-bookmark-jump): Let-bind above variable to nil instead of
	'most-positive-fixnum'.
	* doc/emacs/dired.texi (Image-Dired): Don't mention the above
	variable, as it is no longer important enough to deserve the space.
	* etc/NEWS: Announce the above change.

2021-10-27  Stefan Monnier  <monnier@iro.umontreal.ca>

	(string-pixel-width): Rewrite to avoid side effects

	* src/xdisp.c (Fwindow_text_pixel_size): Allow `window` to be a buffer.
	* lisp/emacs-lisp/subr-x.el (string-pixel-width): Simplify accordingly.

2021-10-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Revert "Add tentative key bindings for the three emoji commands"

	This reverts commit e678067cb5c4a642ef3fab1cc5046a34a4ae35d1.

	Applied to the wrong branch.

2021-10-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Add tentative key bindings for the three emoji commands

2021-10-27  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	2bdd5732aa (origin/emacs-28) ; * etc/NEWS: Fix last change.
	492b927909 Fix help commands for menu-bar menus
	9589be772d ; * etc/NEWS: Fix typos.
	d353fc4a00 ; Explain why "kinds of atom" isn't a typo
	47a3750162 ; * etc/NEWS: Improve wording of the Emoji entry.
	b814712796 ; Checkdoc fixes in image-dired.el
	e45b3fc521 Improve function documentation with text from XDG BDS spec
	284c77eeb6 * lisp/transient.el: Update to package version 0.3.7.
	40400e6977 ; Revert parts of "Use string-replace instead of replace-r...
	214c2e268c ; Revert parts of "Use string-search instead of string-mat...

	# Conflicts:
	#	etc/NEWS

2021-10-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Simplify string-pixel-width

	* lisp/emacs-lisp/subr-x.el (string-pixel-width): Simplify --
	save-window-excursion saves dedication status (and the code was
	buggy).

2021-10-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix parsing of erts files

	* lisp/emacs-lisp/ert.el (ert-test-erts-file): Fix progress
	through a test file (bug#51409).

2021-10-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Harden ert-resource-directory against errors

	* lisp/emacs-lisp/ert-x.el (ert-resource-directory): Be more
	resilient -- don't bug out if called from a file that's not
	visiting a directory.

2021-10-27  Jim Porter  <jporterbugs@gmail.com>

	Be more efficient when checking for a matching client in server.el

	lisp/server.el (server-handle-delete-frame): Use 'seq-some' to
	determine if another frame for the current client exists.
	(server-kill-emacs-query-function): Use 'seq-some' to determine if
	another live client exists (bug#51420).

2021-10-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function 'string-pixel-width'

	* doc/lispref/display.texi (Size of Displayed Text): Mention it.
	* lisp/emacs-lisp/shortdoc.el (string): Mention it.

	* lisp/emacs-lisp/subr-x.el (string-pixel-width): New function.

2021-10-27  Miha Rihtaršič  <miha@kamnitnik.top>

	Allow matching non-.git gitlab and gitea URLs in bug-reference

	* lisp/progmodes/bug-reference.el
	(bug-reference--build-forge-setup-entry): Allow matching non-.git
	gitlab and gitea URLs, with and without slashes (bug#51316).

2021-10-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Always start the SIGALRM atimers

	* src/atimer.c (init_atimer): Always start the SIGALRM alarms,
	even if we're using timerfd (bug#19776).  See long, long
	discussion in the bug report for why this is necessary.

2021-10-27  Lars Ingebrigtsen  <larsi@gnus.org>

	Redisplay after changing to the hourglass mouse pointer

	* src/xterm.c (x_show_hourglass): Do a redisplay after changing to
	the hourglass pointer -- otherwise it won't be displayed until a
	keyboard/mouse event arrives (bug#19776).

2021-10-27  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Set line-spacing to match horizontal space

	* lisp/image-dired.el (image-dired-thumbnail-mode): Set value of
	'line-spacing' to approximately match horizontal space.  This makes
	the thumbnail view look better.

2021-10-27  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Add support for bookmark.el

	* lisp/image-dired.el (image-dired-thumbnail-mode): Add bookmark.el support.
	(bookmark-make-record-default, bookmark-prop-get): Declare.
	(image-dired-bookmark-name, image-dired-bookmark-make-record)
	(image-dired-bookmark-jump): New defuns.

2021-10-27  Stefan Kangas  <stefankangas@gmail.com>

	Add test for file-name-base

	* test/lisp/files-tests.el (files-tests-file-name-base): New test.

2021-10-26  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Improve mouse behavior

	* lisp/image-dired.el (image-dired-thumbnail-mode-map): Improve mouse
	behavior: ignore dragging, as it currently doesn't do anything
	useful, and make all clicks just select the thumbnail.
	(image-dired-mouse-display-image)
	(image-dired-mouse-select-thumbnail): Move point to closest image
	after clicking in buffer.

2021-10-26  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Don't ding at beginning or end of buffer

	* lisp/image-dired.el
	(image-dired--display-thumb-properties-fun): New defun.
	(image-dired-forward-image, image-dired-backward-image): Don't ding
	when moving past first or last image; instead show a message, wait a
	second and then show image properties.

2021-10-26  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Add new commands for beginning/end of buffer

	* lisp/image-dired.el (image-dired-beginning-of-buffer)
	(image-dired-end-of-buffer): New commands.
	(image-dired-thumbnail-mode-map): Bind new beginning of buffer command
	to '<' and 'M-<', and end of buffer command to '>' and 'M->'.

2021-10-26  Stefan Kangas  <stefankangas@gmail.com>

	Add new function image-at-point-p

	* lisp/image.el (image-at-point-p): New defun.
	* doc/lispref/display.texi (Showing Images): Document above new defun.

2021-10-26  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Use an evenly spaced grid for thumbnails

	* lisp/image-dired.el (image-dired-line-up): Use an evenly spaced
	grid for thumbnails, even if image sizes differ.

2021-10-26  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Use example.org in examples

	* lisp/image-dired.el (image-dired-gallery-image-root-url)
	(image-dired-gallery-thumb-image-root-url): Use example.org to be
	RFC 2606 compliant.

2021-10-26  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Increase number of asynch thumbnail generation jobs

	* lisp/image-dired.el (image-dired-queue-active-limit): Increase the
	number of asynchronous thumbnail generation jobs to a maximum of 4 or
	processor count divided by 2.  This makes thumbnail generation around
	30 % faster when benchmarking this on my machine (8 cores/4 jobs).

	(image-dired-debug): New defvar.
	(image-dired-debug-message): New defun.

	(image-dired--generate-thumbs-start): New defvar.
	(image-dired-create-thumb-1, image-dired-display-thumbs): Display time
	spent on thumbnail generation if 'image-dired-debug' is non-nil.

2021-10-26  Alan Mackenzie  <acm@muc.de>

	CC Mode: minor amendments more accurately to handle virtual semicolons, etc.

	* lisp/progmodes/cc-engine.el (c-laomib-loop): Check for a virtual semicolon
	as well as a ;.
	(c-guess-basic-syntax): CASE 5D - Use c-crosses-statement-barrier-p to check
	whether we've gone back past a virtual semicolon.

2021-10-26  Alan Mackenzie  <acm@muc.de>

	* lisp/progmodes/cc-engine.el (c-fontify-new-found-type): Declare near BO File

2021-10-26  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/gitlab-ci.yml (build-image-inotify): Increase timeout.

	(test-native-comp-speed0): Adapt make_params.

2021-10-26  Mattias Engdegård  <mattiase@acm.org>

	* lisp/progmodes/xref.el (xref-pop-marker-stack): Don't obsolete.

2021-10-25  Mattias Engdegård  <mattiase@acm.org>

	Rename `xref-pop-marker-stack` to `xref-go-back` (bug#38797)

	It is the natural name after the addition of `xref-go-forward`.
	The old name is retained as an alias.

	* lisp/progmodes/xref.el (xref-pop-marker-stack): Rename.
	(xref-go-forward, xref-quit-and-pop-marker-stack)
	(xref-find-definitions):
	* lisp/menu-bar.el (menu-bar-goto-menu):
	* lisp/progmodes/etags.el (find-tag-marker-ring, pop-tag-mark):
	* lisp/progmodes/prog-mode.el (prog-context-menu):
	* doc/emacs/maintaining.texi (Looking Up Identifiers):
	* etc/NEWS:
	Use the new name.

2021-10-25  Eric Abrahamsen  <eric@ericabrahamsen.net>

	IMAP search should only use charset utf-8 with multibyte strings

	Background: Exchange servers cannot accept "charset utf-8" search
	strings. The code originally set that charset for any server with
	literal+ capability, borking all searches on an Exchange server. This
	code only sets utf-8 for multibyte search strings in particular, which
	would be broken for Exchange anyway.

	* lisp/gnus/gnus-search.el (gnus-search-imap-search-command): Ensure
	we're only doing the literal+ dance for multibyte strings (multibyte
	strings will have had newlines inserted in an earlier step).

2021-10-25  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	a2c17e115e (origin/emacs-28) Merge branch 'emacs-28' of git.savannah....
	fde56eeb76 Revert "Fix a typo in emacs-lisp-intro.texi"
	4779d3ba19 * doc/lispref/functions.texi (Mapping Functions): Use #' w...
	85ea3f7f47 Fix issue with interpreting ANSI codes in eshell
	50f9436146 image-dired: Doc fix to better explain thumbnail generation
	bb475e10b9 Clarify two image-dired docstrings
	f5b4bb4a6f Fix flymake example backend conditions in the manual
	0771d8939a * etc/PROBLEMS: Mention problems with regexp matcher.  (Bu...
	ee579033b9 * test/lisp/repeat-tests.el: New file.
	7385a7667f * lisp/tab-bar.el (tab-bar-move-repeat-map): Fix alias bin...
	56caf1c9b8 Use restrictive umask when creating image-dired data
	3b5de7f991 ; lisp/transient.el: Revert some misguided stylistic fixes.

2021-10-25  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	817c929eda Doc fix for concat
	3eca2ad2a1 * lisp/image-dired.el (image-dired-external-viewer): Suppo...

2021-10-25  Glenn Morris  <rgm@gnu.org>

	* doc/misc/cc-mode.texi (Font Locking): Fix menu.

2021-10-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Add the "always" zsh builtin to zsh mode

	* lisp/progmodes/sh-script.el (sh-builtins): Add the "always" zsh
	keyword (bug#51387).

2021-10-25  Mattias Engdegård  <mattiase@acm.org>

	Add xref forward history (bug#38797)

	Make it possible to go forward as well as back in the Xref history.
	The new `xref-go-forward` is bound to `C-M-,`.

	* lisp/progmodes/etags.el (find-tag-marker-ring-length): Update.
	(tags-location-ring-length): New.
	(find-tag-marker-ring): Keep as dummy.
	(tags-location-ring, tags-reset-tags-tables):
	Use `tags-location-ring-length` instead of `xref-marker-ring-length`.
	* lisp/progmodes/xref.el (xref-marker-ring-length, xref-marker-ring)
	(xref-set-marker-ring-length):
	Make obsolete.
	(xref--history, xref-go-forward, xref-forward-history-empty-p): New.
	(xref-push-marker-stack, xref-pop-marker-stack)
	(xref-clear-marker-stack, xref-marker-stack-empty-p):
	Use `xref--history`.
	* lisp/menu-bar.el (menu-bar-goto-menu): Add Forward entry.
	* doc/emacs/maintaining.texi (Looking Up Identifiers): Document.
	* etc/NEWS: Announce.

2021-10-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow viewing .heic images via image-convert

	* lisp/files.el (auto-mode-alist): Support the Apple .heic/HEIF
	image format (bug#51381).

2021-10-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Change the with-delayed-message syntax to allow future extensibility

	* doc/lispref/display.texi (Progress): Document it.
	* lisp/subr.el (with-delayed-message): Change the syntax to allow
	future extensibility.

	* lisp/net/eww.el (eww-display-html): Use it.

2021-10-25  Lars Ingebrigtsen  <larsi@gnus.org>

	Heed the EMACS_IGNORE_TIMERFD environment variable

	* src/emacs.c (main): Call init_atimer after setting up the
	environment so that the EMACS_IGNORE_TIMERFD environment variable
	is actually heeded.

2021-10-25  Martin Rudalics  <rudalics@gmx.at>

	Allow 'display-buffer' to set up body size of chosen window (Bug#17065)

	* doc/lispref/windows.texi (Buffer Display Action Alists):
	Describe new possible values for 'window-height', 'window-width'
	and 'window-size' action alist entries.
	* lisp/window.el (window--display-buffer): Handle new values for
	'window-height', 'window-width' and 'window-size' ALIST entries.
	(display-buffer): Update doc-string for new values of some
	action alist entries.
	* etc/NEWS: Mention new values of some action alist entries.

2021-10-25  Stefan Kangas  <stefankangas@gmail.com>

	New function xdg-state-home

	* lisp/xdg.el (xdg-state-home): New function.  This returns
	$XDG_STATE_HOME according to the XDG Base Directory Specification
	version 0.8 (08th May 2021).

2021-10-25  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Improve XDG compliance

	* lisp/image-dired.el (xdg): Require.
	(image-dired-main-image-directory): Prefer XDG_PICTURES_HOME.
	(image-dired-thumb-name): Simplify by using 'xdg-cache-home'.

2021-10-25  Stefan Kangas  <stefankangas@gmail.com>

	Double value of image-dired-show-all-from-dir-max-files

	* lisp/image-dired.el (image-dired-show-all-from-dir-max-files):
	Double the amount of files in directory before prompting.  This could
	be even higher, as the thumbnails are generated asynchronously and are
	small by default.

2021-10-24  Stefan Kangas  <stefankangas@gmail.com>

	image-dired: Add support for GraphicsMagick

	* lisp/image-dired.el (image-dired-cmd-create-thumbnail-program)
	(image-dired-cmd-create-thumbnail-options)
	(image-dired-cmd-create-temp-image-program)
	(image-dired-cmd-create-temp-image-options)
	(image-dired-cmd-rotate-thumbnail-program)
	(image-dired-cmd-rotate-thumbnail-options): Add support for the
	GraphicsMagick command line tool ("gm convert", "gm mogrify").

2021-10-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix issues with type casting in delayed message functions

	* src/eval.c (with_delayed_message_display)
	(with_delayed_message_cancel, Ffuncall_with_delayed_message): Fix
	some type confusion.

2021-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Support new Thumbnail Managing Standard sizes in image-dired

	* lisp/image-dired.el
	(image-dired--thumbnail-managing-standard-sizes): New defconst.
	(image-dired-thumbnail-storage)
	(image-dired-thumb-name, image-dired-insert-thumbnail)
	(image-dired-thumb-size, image-dired-create-thumb-1): Support larger
	thumbnail sizes mandated by new version of the Thumbnail Managing
	Standard (December 2020, Version 0.9.0).

2021-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Use SHA1 when creating thumbnail file name

	* lisp/image-dired.el (image-dired-thumb-name): Improve docstring.
	Use SHA1 for hashing when creating file name.  SHA1 is slightly faster
	than MD5, and has a few more bits.

2021-10-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove debugging in with_delayed_message_display

	* src/eval.c (with_delayed_message_display): Remove debugging.

2021-10-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Display a message if HTML rendering takes a long time

	* lisp/net/eww.el (eww-display-html): Display a message if HTML
	rendering takes a long time (bug#19776).

2021-10-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new macro `with-delayed-message'

	* doc/lispref/display.texi (Progress): Document it.
	* lisp/subr.el (with-delayed-message): New macro.

	* src/eval.c (with_delayed_message_display)
	(with_delayed_message_cancel): Helper functions.
	(Ffuncall_with_delayed_message): New function (bug#19776).

2021-10-24  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fontify "found types" which are recognized after being first scanned

	This aims to fix the scenario where on jit-lock's first scan of a type, it is
	not recognized as such, and only later does this happen.  The fontification of
	such found types is now done by background scanning in short time slices
	immediately after initializing the mode.

	* lisp/progmodes/cc-engine.el (c-add-type-1): New function.
	(c-add-type): Extract c-add-type-1 from it, and reformulate the mechanism for
	protecting c-found-types from excessive partial identifiers.

	* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Remove the
	code which cleared c-found-types on fontification at BOB.
	(c-find-types-background): New function, based on c-font-lock-declarations).
	(c-type-finder-timer-func): New function.
	(c-re-redisplay-timer): New variable.
	(c-force-redisplay, c-fontify-new-found-type): New functions.

	* lisp/progmodes/cc-mode.el (c-type-finder-timer, c-inhibit-type-finder): New
	variables.
	(c-leave-cc-mode-mode): Nullify c-post-command-hook, c-post-gc-hook, and
	c-type-finder-timer when the last CC Mode buffer of a session is killed.
	(c-type-finder-pos): New variable.
	(c-basic-common-init): Initialize/Install c-post-command, c-c-type-finder-pos,
	c-type-finder-timer, and c-post-gc-hook.
	(c-new-id-start, c-new-id-end, c-new-id-is-type): New variables.
	(c-update-new-id): New function.
	(c-post-command): New post command hook function, used for checking moving
	away from partially typed identifiers, and making them full identifiers.
	(c-post-gc-hook): New hook to prevent CC Mode activity immediately following
	GC, thus allowing keyboard/mouse input to be registered.
	(c-before-change): Add code to clear c-found-types on a buffer change at BOB.
	(c-after-change): Call c-update-new-id to keep track of partially typed
	identifiers.

	* doc/misc/cc-mode.texi (Found Types): New @section in the @Chapter Font
	Locking.

	* lisp/progmodes/cc-vars.el (c-type-finder-time-slot)
	(c-type-finder-repeat-time, c-type-finder-chunk-size): New customizable
	options.

2021-10-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix mouse buttons in dired--make-directory-clickable

	* lisp/dired.el (dired--make-directory-clickable): Adjust mouse
	clicks to conform to our standards.

2021-10-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Don't unhide first thread if entering without selecting article

	* lisp/gnus/gnus-sum.el (gnus-summary-first-unread-subject)
	(gnus-summary-first-unseen-subject)
	(gnus-summary-first-unseen-or-unread-subject): Use it.
	(gnus-summary--goto-and-possibly-unhide): New function -- don't
	unhide the first thread unless necessary (bug#51344).

2021-10-24  Sharaf Zaman  <shzam@sdf.org>  (tiny change)

	Fix a memory leak in pgtk_draw_fringe_bitmap

	* src/pgtkterm.c (pgtk_draw_fringe_bitmap): we had an unbalanced
	cairo_save/restore.

2021-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Improve documentation of image-dired thumbnails

	* lisp/image-dired.el: Fix documentation on thumbnail file format to
	correctly say that it can be either PNG or JPEG; not just JPEG.  Also
	fix inconsistent formatting in comments.
	* lisp/image-dired.el (image-dired-thumbnail-storage): Improve
	docstring.

2021-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Add support for pngquant to image-dired

	* lisp/image-dired.el (image-dired-cmd-pngnq-program)
	(image-dired-cmd-pngnq-options): Add support for pngquant.
	Prefer, in this order: pngquant, pngnq-s9, pngnq-s for reasons of
	speed and how actively maintained the projects seem to be.

2021-10-24  Eli Zaretskii  <eliz@gnu.org>

	Fix compilation errors with MinGW64 GCC 11

	* lib-src/ntlib.c (IS_DIRECTORY_SEP): Remove redundant macro.

	* lib-src/ntlib.c (DEFER_MS_W32_H):
	* nt/addpm.c (DEFER_MS_W32_H):
	* nt/cmdproxy.c (DEFER_MS_W32_H):
	* nt/ddeclient.c (DEFER_MS_W32_H):
	* nt/preprep.c (DEFER_MS_W32_H):
	* nt/runemacs.c (DEFER_MS_W32_H): Fix a typo.
	* nt/Makefile.in (BASE_CFLAGS): Add -I switches to pick up
	config.h and lib/attribute.h.

2021-10-24  Paul Eggert  <eggert@cs.ucla.edu>

	Include <config.h> first in MS-Windows source

2021-10-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix define-erc-response-handler indentation

	* lisp/erc/erc-backend.el (define-erc-response-handler): Add
	proper indentation.

2021-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Add new option help-link-key-to-documentation

	* lisp/help.el (help-link-key-to-documentation): New user option.
	(substitute-command-keys): Add a link from keys to the command they
	are bound to, if the above new option is non-nil.  (Bug#8951)
	* etc/NEWS: Announce the new option.

2021-10-24  William Xu  <william.xwl@gmail.com>

	Make dired directory components clickable

	* lisp/dired.el (dired-readin): Use it.

	* lisp/dired.el (dired-make-directory-clickable): New user option.

	* lisp/dired.el (dired--make-directory-clickable): New function
	(bug#21973).

2021-10-24  Mattias Engdegård  <mattiase@acm.org>

	Don't use obsolete variable `find-tag-marker-ring`

	* lisp/progmodes/js.el (js-find-symbol):
	* lisp/progmodes/octave.el (octave-find-definition):
	Call `xref-push-marker-stack` instead of manipulating the obsolete
	variable `find-tag-marker-ring`.

2021-10-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak bug-reference-tests

	* test/lisp/progmodes/bug-reference-tests.el: Tweak tests a bit.

2021-10-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Clean up duplicated setting in scheme-mode-variables

	* lisp/progmodes/scheme.el (scheme-mode-variables): Remove
	repeated setting.

2021-10-24  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow matching non-.git URLs in bug-reference

	* lisp/progmodes/bug-reference.el
	(bug-reference--build-forge-setup-entry): Allow matching non-.git
	URLs, with and without slashes (bug#51316).

2021-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Don't hard-code image-dired thumbnail type

	* lisp/image-dired.el (image-dired-insert-thumbnail): Detect thumbnail
	image type instead of hard-coding it.

2021-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Expand tests for image-type-from-file-header

	* test/lisp/image-tests.el (image-tests--files): New defconst.
	(image-tests--type-from-file-header): New defun.
	(image-type-from-file-header-test/jpeg)
	(image-type-from-file-header-test/pbm)
	(image-type-from-file-header-test/png)
	(image-type-from-file-header-test/svg)
	(image-type-from-file-header-test/tiff)
	(image-type-from-file-header-test/webp)
	(image-type-from-file-header-test/xbm)
	(image-type-from-file-header-test/xpm): New tests.
	(image-type-from-file-header-test): Delete test.

2021-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Add tests for gif to src/image-tests.el

	* test/src/image-tests.el (image-tests--images): Rename from
	image-tests-files.  Add gif.
	(image-tests-image-size/gif)
	(image-tests-image-mask-p/gif)
	(image-tests-image-metadata/gif): New tests.
	* test/data/image/black.gif: New file.

2021-10-24  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	c7f53824a8 (origin/emacs-28) Update publicsuffix.txt from upstream
	9a50f760e9 ; * doc/lispref/modes.texi (Hooks): Clarify wording.  (Bug...
	e154fd9119 Refer to the info node on keymaps in map-keymap docstring
	4fd5c8df67 Clarify abnormal hook documentation
	6fa5206770 Update to Org 9.5-59-g52e6f1
	39413a45bf ; * doc/lispref/functions.texi (Calling Functions): Fix la...
	43914ab01f Improve documentation of cl-reduce
	ef37a86cac Improve documentation of apply-partially
	1e8be48738 Fix typos
	8c5fbd712b Revert commit 225ca617b7, and apply another fix
	cdbd03345d Fix documentation of posn-at-x-y
	598732c899 ; * src/vm-limit.c (get_lim_data): Fix a typo.  (Bug#18238)
	efdffd86c5 ; * etc/refcards/README: Prefer HTTPS in link.

	# Conflicts:
	#	etc/NEWS

2021-10-24  Stefan Kangas  <stefankangas@gmail.com>

	Make dired-x-guess-file-name-at-point obsolete

	* lisp/dired-x.el (dired-x-guess-file-name-at-point): Make
	obsolete in favor of 'thing-at-point'.
	(dired-x-read-filename-at-point): Use 'thing-at-point' instead of
	above obsolete function.

2021-10-23  Michael Albinus  <michael.albinus@gmx.de>

	Check for image library in image-dired-tests.el

	* test/lisp/image-dired-tests.el
	(image-dired-tests-get-exif-file-name): Check for jpeg library.

2021-10-23  Dmitry Gutov  <dgutov@yandex.ru>

	Support :company-deprecated completion property

	* lisp/progmodes/elisp-mode.el (elisp--company-deprecated):
	New function.
	(elisp-completion-at-point): Use it.

2021-10-23  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/gitlab-ci.yml (variables, default): Increase timeout to 4 hours.

2021-10-23  Alan Mackenzie  <acm@muc.de>

	Revert "CC Mode: Fontify "found types" which are recognized after being ..."

	This reverts commit 51719617eb19833056618ebac403cdcaf711551a.  The commit
	caused a hang at start-up with a big desktop.

2021-10-23  Stefan Kangas  <stefankangas@gmail.com>

	Partially remove exiftool dependency from image-dired.el

	* lisp/image-dired.el (exif): Require.
	(image-dired-cmd-read-exif-data-program)
	(image-dired-cmd-read-exif-data-options)
	(image-dired-get-exif-data): Make obsolete in favor of using
	exif.el.  This removes a dependency on external exiftool for some
	operations.
	(image-dired-get-exif-file-name)
	(image-dired-thumbnail-set-image-description): Use exif.el
	functions instead of exiftool.
	* lisp/image/exif.el (exif-tag-alist): Add description and
	copyright fields.
	* test/lisp/image-dired-tests.el: New file.

2021-10-23  Stefan Kangas  <stefankangas@gmail.com>

	Add new function exif-field

	* test/lisp/image/exif-tests.el (exif-elem): Move function from here...
	* lisp/image/exif.el (exif-field): ...to here, and rename.
	(exif-orientation):
	* test/lisp/image/exif-tests.el (test-exif-parse)
	(test-exif-parse-short): Use above new function.

2021-10-22  Stefan Kangas  <stefankangas@gmail.com>

	Add links to commentary reached with finder-list-keywords

	* lisp/finder.el (finder-goto-xref): Move from here...
	* lisp/emacs-lisp/package.el (package--finder-goto-xref): ...to
	here.  Make the old name into an obsolete function alias.
	(package--finder-xref): New button type.
	(package--describe-add-library-links): Factor out new function...
	* lisp/finder.el (finder-commentary): ...from here.
	(describe-package-1): Call above new function.  This fixes an
	issue where commentaries reached via 'finder-list-keywords' did
	not have links.  (Bug#10814)

2021-10-22  Stefan Kangas  <stefankangas@gmail.com>

	* src/image.c (webp_load): Fix thinkos.

2021-10-22  Alan Mackenzie  <acm@muc.de>

	CC Mode: Fontify "found types" which are recognized after being first scanned

	This aims to fix the scenario where on jit-lock's first scan of a type, it is
	not recognized as such, and only later does this happen.  The fontification of
	such found types is now done by background scanning in short time slices
	immediately after initializing the mode.

	* lisp/progmodes/cc-engine.el (c-add-type-1): New function.
	(c-add-type): Extract c-add-type-1 from it, and reformulate the mechanism for
	protecting c-found-types from excessive partial identifiers.

	* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Remove the
	code which cleared c-found-types on fontification at BOB.
	(c-find-types-background): New function, based on c-font-lock-declarations).
	(c-types-finder-timer-func): New function.
	(c-re-redisplay-timer): New variable.
	(c-force-redisplay, c-fontify-new-found-type): New functions.

	* lisp/progmodes/cc-mode.el (c-type-finder-timer): New variable.
	(c-leave-cc-mode-mode): Nullify c-post-command-hook and c-type-finder-timer
	when the last CC Mode buffer of a session is killed.
	(c-type-finder-pos): New variable.
	(c-basic-common-init): Initialize c-type-finder-pos and c-type-finder-timer.
	(c-new-id-start, c-new-id-end, c-new-id-is-type): New variables.
	(c-update-new-id): New function.
	(c-post-command): New post command hook function, used for checking moving
	away from partially typed identifiers, and making them full identifiers.
	(c-before-change): Add code to clear c-found-types on a buffer change at BOB.
	(c-after-change): Call c-update-new-id to keep track of partially typed
	identifiers.

	* doc/misc/cc-mode.texi (Found Types): New @section in the @Chapter Font
	Locking.

	* lisp/progmodes/cc-vars.el (c-type-finder-time-slot)
	(c-type-finder-repeat-time, c-type-finder-chunk-size): New customizable
	options.

2021-10-22  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	b0d64be0bc (origin/emacs-28) Improve some NEWS entries
	7fde84e881 Improve documentation of syntax-ppss-context slightly
	5ecbed01b2 ; * test/lisp/mh-e/mh-utils-tests.el: Update macro declara...
	168665da59 Move some xwidget entries
	efde024361 time-stamp-tests: improvements to test macros
	06c944cff1 Fix rfc6068-parse-mailto-url autoload
	9b6b5e37ef Regexp-quote github domains in bug-reference
	1f6cdeb12c Ensure valid end/beginning lines in message-mark-inserted-...
	9b46150ab0 * etc/NEWS: Improve 'repeat-mode' entry.
	9c37b812da ; * lisp/repeat.el (repeat-mode): Fix docstring typo.
	caf87d80fa * lisp/repeat.el (repeat-keep-prefix): Expand description.
	24083c8d13 * lisp/net/eww.el (eww-retrieve-command): Add :tag.
	cf7d8fb1d7 Add description of cards to etc/refcards/README
	d2849cc645 Fix 'calculate-lisp-indent' when "[" starts containing sex...
	2a0a368ddc Fix typo in doc/emacs/anti.texi
	9529e1d2fb Update doc of Edebug specification for macros
	5bc522b4f4 ; * lisp/simple.el (kill-region): A better fix for bug#51320.
	ee6bdd6eef Fix non-interactive behavior of 'kill-region'
	2b7655ca0e ; More accurate doc string for 'tab-bar-format'
	2841e26744 * test/lisp/dabbrev-tests.el: Use 'kbd' for readable keys.
	1cdb4d2077 * lisp/menu-bar.el (menu-bar-keymap): Add optional arg KEY...

	# Conflicts:
	#	etc/NEWS
	#	lisp/progmodes/bug-reference.el

2021-10-22  Michael Albinus  <michael.albinus@gmx.de>

	Adapt some emba parameters

	* test/infra/Dockerfile.emba (emacs-inotify): Reduce debug options.

	* test/infra/gitlab-ci.yml (test-native-comp-speed0): Adapt make_params.

2021-10-22  Eli Zaretskii  <eliz@gnu.org>

	Fix WebP support on MS-Windows

	* src/image.c (WebPDecodeRGBA, WebPDecodeRGB, WebPFree): Use
	correct names and argument lists in DEF_DLL_FN; fix typos.
	(WebPGetFeaturesInternal): Load this instead of WebPGetFeatures,
	which is a static inline function in webp/decode.h.
	(WebPGetFeatures): Redirect to call WebPGetFeaturesInternal.

	* lisp/term/w32-win.el (dynamic-library-alist): Fix the name of
	the WebP symbol.

	* configure.ac (HAVE_WEBP): Fix detection of libwebp on MinGW.

	* nt/INSTALL.W64:
	* nt/INSTALL: Update information about libwebp availability.

2021-10-22  Stefan Kangas  <stefankangas@gmail.com>

	Add WebP image format support (Bug#51296)

	* configure.ac (--with-webp): New option.
	(HAVE_WEBP): New variable.
	(emacs_config_features): Add webp.
	* src/image.c (enum webp_keyword_index) [HAVE_WEBP]: New enum.
	(webp_format) [HAVE_WEBP]: New variable.
	(webp_image_p, init_webp_functions, webp_load) [HAVE_WEBP]: New
	functions for WebP support.
	(image_types) [HAVE_WEBP]: Define WebP format.
	(syms_of_image) <Qwebp> [HAVE_WEBP]: New DEFSYM.  Add image type Qwebp.
	* src/Makefile.in (LIBIMAGE): Add WEBP_LIBS.

	* lisp/files.el (auto-mode-alist):
	* lisp/image-file.el (image-file-name-extensions):
	* lisp/image.el (image-type-header-regexps)
	(image-type-file-name-regexps, image-type-auto-detectable): Add WebP
	support.
	* lisp/term/w32-win.el (dynamic-library-alist): Add the libwebp DLL.

	* INSTALL:
	* admin/CPP-DEFINES:
	* doc/lispref/display.texi (Image Formats, Other Image Types):
	* nt/INSTALL: Document WebP support.

	* test/lisp/image-tests.el (image-find-image)
	(image-type-from-file-name): Expand tests.
	* test/src/image-tests.el (image-tests--files): Add WebP.
	(image-tests-image-size/webp, image-tests-image-mask-p/webp)
	(image-tests-image-metadata/webp): New tests.
	* test/data/image/black.webp: New file.

2021-10-22  Martin Rudalics  <rudalics@gmx.at>

	In 'window-text-pixel-size' use actual mode line heights if wanted (Bug#38181)

	* src/xdisp.c (Fwindow_text_pixel_size): Run display_mode_line
	when MODE_LINES wants it to take actual mode line heights into
	account (Bug#38181).

2021-10-21  Stefan Kangas  <stefankangas@gmail.com>

	Remove redundant #' before lambda

	* admin/unidata/unidata-gen.el (unidata-gen-table)
	(unidata-gen-table-symbol, unidata-gen-table-integer)
	(unidata-gen-table-numeric, unidata-gen-table-word-list)
	(unidata-describe-decomposition):
	* lisp/apropos.el (apropos-user-option):
	* lisp/bookmark.el (bookmark-bmenu-search):
	* lisp/composite.el (unicode-category-table):
	* lisp/elec-pair.el (electric-pair--balance-info):
	* lisp/electric.el (electric-quote-chars):
	* lisp/emulation/cua-base.el (cua-rectangle-mark-key):
	* lisp/epa-hook.el (epa-file-encrypt-to):
	* lisp/faces.el (face-font-selection-order)
	(face-font-family-alternatives, face-font-registry-alternatives)
	(face-valid-attribute-values, tty-run-terminal-initialization):
	* lisp/files.el (recover-file, file-expand-wildcards):
	* lisp/frame.el (frames-on-display-list):
	* lisp/help-at-pt.el (help-at-pt-display-when-idle):
	* lisp/help-fns.el (help-fns--face-attributes):
	* lisp/ido.el (ido-mode, ido-unc-hosts):
	* lisp/isearch.el (isearch-highlight-regexp)
	(isearch-highlight-lines-matching-regexp):
	* lisp/language/indian.el (script-regexp-alist):
	* lisp/language/lao.el:
	* lisp/leim/quail/ipa.el (ipa-x-sampa-prepend-to-keymap-entry):
	* lisp/mh-e/mh-folder.el (mh-process-commands):
	* lisp/mh-e/mh-mime.el (mh-display-with-external-viewer):
	* lisp/ps-mule.el (ps-mule-end-job):
	* lisp/ps-print.el (ps-color-scale, ps-background-pages)
	(ps-background-text, ps-background-image, ps-background)
	(ps-begin-job, ps-print-translation-table):
	* lisp/recentf.el (recentf-sort-ascending)
	(recentf-sort-descending, recentf-sort-basenames-ascending)
	(recentf-sort-basenames-descending)
	(recentf-sort-directories-ascending)
	(recentf-sort-directories-descending):
	* lisp/replace.el (occur-engine-add-prefix):
	* lisp/select.el (xselect--encode-string):
	* lisp/server.el (server-use-tcp):
	* lisp/ses.el (ses-sort-column):
	* lisp/sort.el (sort-columns):
	* lisp/term/ns-win.el (window-system-initialization):
	* lisp/tree-widget.el (tree-widget-image-formats):
	* lisp/whitespace.el (whitespace-report-region): Remove redundant #'
	before lambda.

2021-10-21  Stefan Kangas  <stefankangas@gmail.com>

	Add comment on reworking a section in emacs-lisp-intro.texi

	* doc/lispintro/emacs-lisp-intro.texi (Body of mark-whole-buffer):
	Add comment about how one could rework this section.

2021-10-21  Michael Albinus  <michael.albinus@gmx.de>

	Configure Emacs on emba with debug options

	* test/infra/Dockerfile.emba (emacs-base): Install gdb.
	(emacs-inotify): Configure debug options.

2021-10-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Actually fix the Pango build problem

	* src/gtkutil.c (xg_weight_to_symbol): Don't break the build on
	older systems.

2021-10-21  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	0545c70c16 (origin/emacs-28) ; * src/keyboard.c (readable_events): Ad...
	805ed8d318 Fix todo-mode AOT test failures (bug#51308)
	8f42ff31f6 Fix hi-lock AOT test failures (bug#51308)
	8002fcd4b9 Fix socks test
	4540130312 ; Fix typo
	59df93e2dd * lisp/help.el (help--analyze-key): Add new arg BUFFER (bu...
	cb8b12b56d Improve docstrings and NEWS item of 'repeat-mode'
	06fe499614 * lisp/tab-bar.el (tab-bar-menu-bar): New command (bug#512...
	8358da9c4c Display a tab bar item as sunken when appropriate
	29fdc65860 Fix tab bar item highlight when a mouse click is dropped
	7236592668 Refer to mouse-highlight from make-pointer-invisible docst...
	cf4394a397 * etc/PROBLEMS: Add hex codepoint for NO-BREAK SPACE
	2d647e88fa Describe how to debug fontconfig issues
	c916040921 Adapt Tramp tests
	1bb14f93f1 Convert ANSI color definitions in themes to use faces (e.g...
	8e7cd29712 Revert "Revert back to using ESC as viper-ESC-key again"
	91d71b38a3 Fix inset rectangle corners when sides aren't drawn (bug#5...
	5c1a575ef4 Don't use color escape sequences in vc-git-expanded-log-entry
	d7f595cc89 Code cleanup in tramp-tests.el
	548a5db611 ; etc/NEWS fix wording

	# Conflicts:
	#	etc/NEWS

2021-10-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix build on systems with older Pango versions

	* src/gtkutil.c (xg_weight_to_symbol): Don't break the build on
	older systems.

2021-10-21  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix bold/black in w32_to_fc_weight

	* src/w32font.c (w32_to_fc_weight): Use symbols.

2021-10-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a comment to the Turkish casefiddle test

2021-10-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Support the "medium" font weight

	* lisp/faces.el (set-face-attribute): Mention new font weights in
	doc string.
	* src/font.c (struct table_entry): Allow more synonyms.
	(weight_table): Expand to support separating medium and normal
	weights.  Also add heavy/ultra-heavy and some other variants.
	(font_parse_fcname): Support more names.

	* src/gtkutil.c (xg_weight_to_symbol): Support all the Pango weights.
	(xg_style_to_symbol): Make into functions.
	(xg_get_font): Adjust.

	* src/w32font.c (w32_to_fc_weight): Use symbols.

	* src/xfaces.c (syms_of_xfaces): Add the new symbols.

2021-10-20  Stefan Kangas  <stefankangas@gmail.com>

	Add some tests for floatfns.c

	* test/src/floatfns-tests.el (floatfns-tests-cos)
	(floatfns-tests-sin, floatfns-tests-tan, floatfns-tests-isnan)
	(floatfns-tests-exp, floatfns-tests-expt, floatfns-tests-log)
	(floatfns-tests-sqrt, floatfns-tests-abs, floatfns-tests-logb)
	(floatfns-tests-ceiling, floatfns-tests-floor)
	(floatfns-tests-round, floatfns-tests-truncate)
	(floatfns-tests-fceiling, floatfns-tests-ffloor)
	(floatfns-tests-fround, floatfns-tests-ftruncate)
	(divide-extreme-sign): New tests.

2021-10-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix typo in previous smerge-mode-map change

	* lisp/vc/smerge-mode.el (smerge-mode-map): Fix typo (bug#51303).

2021-10-20  Miha Rihtaršič  <miha@kamnitnik.top>

	Avoid excessive specbinding in all-completions

	* src/minibuf.c (match_regexps):
	(Ftry_completion):
	(Fall_completions):
	(Ftest_completion): Use fast_string_match_internal to match against
	regexps in completion-regexp-list without having to bind
	case-fold-search.

2021-10-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Further fixes for Turkish case changes in unibyte strings

	* src/casefiddle.c (struct casing_context): Add new slot to keep
	track of what the previous operation was.
	(case_character_impl): Set it.
	(do_casify_unibyte_string): Use it to handle Turkish correctly.

2021-10-20  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new macro with-locale-environment

	* lisp/international/mule-cmds.el (with-locale-environment): New macro.
	(current-locale-environment): New variable.

2021-10-19  Stefan Kangas  <stefankangas@gmail.com>

	Add some tests for fns.c

	* test/src/fns-tests.el (fns-tests-identity, fns-tests-random)
	(fns-tests-length, fns-tests-safe-length)
	(fns-tests-string-bytes): New tests.

2021-10-19  Stefan Kangas  <stefankangas@gmail.com>

	Remove some XEmacs compat code from custom.el

	* lisp/custom.el (deftheme, custom-declare-theme): Remove XEmacs
	compat code.

2021-10-19  Dmitry Gutov  <dgutov@yandex.ru>

	xref.el: Better compatibility with outdated Emacs 28 builds

	* lisp/progmodes/xref.el:
	Ensure better compatibility with outdated Emacs 28 builds as well
	(like the pgtk branch).  Bump the version.

2021-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* doc/lispref/files.texi (File Name Components): Mention GNU "path" convention

2021-10-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make image-tests work in a no-x build

	* test/src/image-tests.el: Make the tests work in a no-x build
	(bug#51291).

2021-10-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak how 'align' and 'align-regexp' align text

	* lisp/align.el (align-rules-list): Change to work without `C-u'.
	(align): Doc clarification.
	(align-regexp): Ditto, and change default `C-u' regexp from
	"\\(\\s-*\\)" to "\\(\\s-*\\)" so that it'll make things columnar
	if the user just hits RET through all the defaults.

2021-10-19  Mattias Engdegård  <mattiase@acm.org>

	Improve TCO test coverage

	* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
	Exercise `cond` in tail position in two different ways.

2021-10-19  Lars Ingebrigtsen  <larsi@gnus.org>

	Make downcasing unibyte strings in Turkish less wrong

	* src/casefiddle.c (ascii_casify_character): New function.
	(do_casify_unibyte_string): Use it to make downcasing tr_TR.UTF-8
	"I" less wrong.
	(Fdowncase): Mention caveats.
	(Fupcase):
	(Fcapitalize):
	(Fupcase_initials): Refer to details in `downcase'.
	(syms_of_casefiddle): Define more symbols.

2021-10-19  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	d742cc3c20 (origin/emacs-28) ; etc/NEWS: Fix typos
	28db29590f * admin/notes/unicode: Refer to Unicode's emoji-style.txt
	9bd2f59db6 Handle VS-16 correctly for non-emoji codepoints
	e55e2d4a11 ; * etc/NEWS: Minor copyedit about 'repeat-mode'.
	380981ddb5 Adjust bug-reference-bug-regexp default values to match on...
	c1cf95a0e1 ; * doc/emacs/windows.texi: Doc fix.
	98eb6d783a Fix a typo in emacs-lisp-intro.texi
	f5b8f626e3 Fix some Tramp problems
	fc988a7113 Adapt Tramp manual
	0c241043a8 Further fixes to Elisp manual
	8e8a920246 * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): ...
	5a3242301d Rename tab-bar-drag-maybe to tab-bar--dragging-in-progress
	bb4209a5a5 Fix xref elisp identifier namespace mistake

	# Conflicts:
	#	etc/NEWS

2021-10-19  Dmitry Gutov  <dgutov@yandex.ru>

	* lisp/progmodes/xref.el: Bump version.

2021-10-19  Dmitry Gutov  <dgutov@yandex.ru>

	Fix Emacs 26 support in xref.el

	* lisp/progmodes/xref.el (xref--defstruct): New macro.
	(xref-item, xref-match-item): Use it in definitions.

2021-10-19  Michael Albinus  <michael.albinus@gmx.de>

	* etc/NEWS: Move sql entry up.  Fix typos.

2021-10-19  Michael R. Mauger  <michael@mauger.com>

	SQL mode supports sending passwords in process

2021-10-18  Michael R. Mauger  <michael@mauger.com>

	Added sql-add-connection

	* lisp/progmodes/sql.el (sql-add-connection): Added.

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `lookup-key' understand the new key sequence syntax

	* src/keymap.c (possibly_translate_key_sequence): Factored out
	into own function.
	(Fdefine_key):
	(Flookup_key): Use it.

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Error out on invalid `define-keymap' keywords

	* lisp/subr.el (define-keymap--define): Error out on invalid
	keywords (bug#51268).

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-define-keymap): Check
	keywords at compile time.
	* lisp/vc/cvs-status.el (cvs-status-mode-map): Fix keyword.

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix diff-mode-shared-map

	* lisp/vc/diff-mode.el (diff-mode-shared-map): Fix syntax error in
	`defvar-keymap' change.

2021-10-18  Stefan Kangas  <stefankangas@gmail.com>

	Add tests for image.c

	* test/src/image-tests.el: New file.

2021-10-18  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	c163fd9260 (origin/emacs-28) Minor fixes for recent changes in ELisp ...
	fefada4816 Fix example in calc manual
	e74e17c1f0 Rewrites of Elisp manual including tab-bar and tab-line ch...
	3b138917b7 ; * INSTALL: Fix typo.
	ce71446585 * lisp/tab-bar.el: Improve docstrings (bug#51247)
	ace4ce16a3 * lisp/tab-bar.el (tab-bar-mouse-move-tab): Don't drag tab...
	04716ca48f Add tab-bar-drag-maybe for indication of tab dragging (bug...
	81e3697600 * lisp/tab-bar.el: Add a new tab on [mouse-1] instead of [...
	a191d3c725 Add new and fix existing docstrings in tab-bar.el and tab-...
	77dbaedadc Add tab bar support to the nextstep port
	7b6fb486c2 Fix potential buffer overflow (bug#50767)
	ed9f5546aa Improve doc strings in tab-line.el
	686a03ee22 More documentation fixes in tab-bar.el
	35920791df Improve doc strings of tab-bar commands
	2d15db6e89 Fix a semantic test on some macOS machines
	ac6ac76e3a Update to Org 9.5-57-g9bc3a2

2021-10-18  Miha Rihtaršič  <miha@kamnitnik.top>

	*-watch-for-password-prompt: Use run-at-time to read password

	* lisp/comint.el (comint-watch-for-password-prompt):
	* lisp/eshell/esh-mode.el (eshell-watch-for-password-prompt):
	* lisp/term.el (term-watch-for-password-prompt):
	Use run-at-time to read a password (bug#51263).

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Add some defvar indent tests

	Mention that we now install the pdmp file with a fingerprinted name

	Add indentation rules for DEFUN's def* functions

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Update elp-not-profilable

	* lisp/emacs-lisp/elp.el (elp-not-profilable): Update list of
	denied functions (bug#40335).

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove the "def" indentation heuristic

	* lisp/emacs-lisp/lisp-mode.el (lisp-indent-function): Don't
	indent function calls with names that that start with "def"
	specially (bug#43329).

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Fontify :doc keywords as documentation

	* lisp/emacs-lisp/lisp-mode.el (lisp-string-after-doc-keyword-p):
	Extend to :doc, too (bug#51230).

2021-10-18  Daniel Martín  <mardani29@yahoo.es>

	New option show-paren-context-when-offscreen

	* lisp/simple.el (blink-paren-open-paren-line-string): Extract
	functionality that shows the open paren line in the echo area into its
	own function, to reuse it from paren.el.
	(blink-matching-open): Use blink-paren-open-paren-line-string.
	* lisp/paren.el (show-paren-context-when-offscreen): New option
	show-paren-context-when-offscreen.
	(show-paren-function): Implement it using
	blink-paren-open-paren-line-string.
	* lisp/emacs-lisp/eldoc.el (eldoc-display-message-no-interference-p):
	Make sure the feature works well with eldoc.
	* test/lisp/paren-tests.el (paren-tests-open-paren-line): Test
	blink-paren-open-paren-line-string.
	* doc/emacs/programs.texi (Matching): Update the documentation.
	* etc/NEWS: And announce the new feature.

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix possible build issue in pcvs.el and diff-mode.el

	* lisp/vc/pcvs.el (easy-mmode):
	* lisp/vc/diff-mode.el (easy-mmode): Require.

2021-10-18  Protesilaos Stavrou  <info@protesilaos.com>
	    Abhiseck Paira  <abhiseckpaira@disroot.org>
	    Protesilaos Stavrou  <info@protesilaos.com>

	Add sample user function in eww-auto-rename-buffer

	* eww.el (eww-auto-rename-buffer): Update doc string.

	Fix bug#51176.

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix build issue with smerge-mode

	* lisp/vc/smerge-mode.el (easy-mmode): Require.

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow :filter t in make-process to work as with set-process-filter

	* src/process.c (create_process):
	(create_pty):
	(Fmake_pipe_process):
	(Fmake_serial_process): Don't add the read_fd if the filter is t
	(which means that we don't accept output from the filter).

2021-10-18  Lars Ingebrigtsen  <larsi@gnus.org>

	Do kbd-valid-p prefix comparisons case-sensitively

	* lisp/subr.el (kbd-valid-p): Compare case-sensitively.

2021-10-17  Stefan Kangas  <stefankangas@gmail.com>

	Recommend against using uce.el

	* lisp/mail/uce.el (uce-reply-to-uce): Recommend against its use on
	the first invocation.  (Bug#46472)

2021-10-17  Stefan Kangas  <stefankangas@gmail.com>

	* lisp/erc/erc-compat.el (format-spec): Remove redundant require.

2021-10-17  Stefan Kangas  <stefankangas@gmail.com>

	Prefer defvar-local in MH-E

	* lisp/mh-e/mh-comp.el (mh-insert-auto-fields-done-local):
	* lisp/mh-e/mh-e.el (mh-thread-scan-line-map)
	(mh-thread-scan-line-map-stack):
	* lisp/mh-e/mh-identity.el (mh-identity-pgg-default-user-id)
	(mh-identity-local):
	* lisp/mh-e/mh-scan.el (mh-cmd-note):
	* lisp/mh-e/mh-seq.el (mh-non-seq-mode-line-annotation):
	* lisp/mh-e/mh-thread.el (mh-thread-id-hash)
	(mh-thread-subject-hash, mh-thread-id-table)
	(mh-thread-index-id-map, mh-thread-id-index-map)
	(mh-thread-subject-container-hash, mh-thread-duplicates)
	(mh-thread-history): Prefer defvar-local.

2021-10-17  Stefan Kangas  <stefankangas@gmail.com>

	Make thumbs-image-type obsolete

	* lisp/thumbs.el (thumbs-image-type): Make into obsolete function
	alias for 'image-type-from-file-name'.  Update callers.

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Use define-keymap in pcvs and pcvs-defs.el

	* lisp/vc/pcvs-defs.el (cvs-mode-diff-map):
	* lisp/vc/pcvs.el (pcvs-defs):
	(cvs-mode-diff-map): Move maps to pcvs (because the commands are
	defined in pcvs.el and #' gives us checking) and transform from
	easy-mmode-defmap to define-keymap.

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Convert diff-mode.el from easy-mmode-defmap to define-keymap

	* lisp/vc/diff-mode.el (diff-mode-shared-map, diff-mode-map)
	(diff-minor-mode-map): Convert from easy-mmode-defmap to
	defvar-keymap.

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Convert smerge-mode.el from easy-mmode-defmap to define-keymap

	* lisp/vc/smerge-mode.el (smerge-basic-map, smerge-mode-map):
	Convert form easy-mmode-defmap to define-keymap.

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Add kbd examples to the doc string

	* lisp/subr.el (kbd): Add some examples to the doc string.

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Reverse the edmacro-parse-keys/kbd vector/string logic

	* lisp/edmacro.el (edmacro-parse-keys): Convert to a vector if
	needed.
	* lisp/subr.el (kbd): Remove the NEED-VECTOR parameter.

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow <mouse-1> in kbd-valid-p

	* lisp/subr.el (kbd-valid-p): Allow (kbd-valid-p "<mouse-1>").

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Reinstate defvar-keymap expansion

	* lisp/emacs-lisp/byte-opt.el
	(byte-optimize-define-keymap--define): Make more robust.

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Back out `define-keymap' optimization -- it leads to a build error

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Convert cvs-status-mode-map to new syntax

	* lisp/vc/cvs-status.el (cvs-status-mode-map): Convert a small
	keymap to the new ["..."] syntax.

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Support a new ["..."] key binding syntax

	* doc/lispref/keymaps.texi (Key Sequences):
	(Changing Key Bindings): Document the various key syntaxes.

	* lisp/emacs-lisp/byte-opt.el (byte-optimize-define-key)
	(byte-optimize-define-keymap)
	(byte-optimize-define-keymap--define): New functions to check and
	expand ["..."] syntax at compile time.

	* src/keymap.c (Fdefine_key): Understand the ["..."] syntax.
	(syms_of_keymap): Define `kbd' symbols.

2021-10-17  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -Wsuggest-attribute=malloc

	Problem found with gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0 x86-64.
	* src/sysstdio.h (emacs_fopen): Mark with ATTRIBUTE_MALLOC.

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Rewrite kbd-valid-p to not use seq

	* lisp/subr.el (kbd-valid-p): Rewrite to not use seq.

2021-10-17  Stefan Kangas  <stefankangas@gmail.com>

	* src/image.c: Fix comment.

2021-10-17  Eli Zaretskii  <eliz@gnu.org>

	Minor stylistic changes in last commit

	* src/xdisp.c (adjust_glyph_width_for_mouse_face): Renamed from
	'get_glyph_pixel_width_delta_for_mouse_face'; all callers
	changed.

2021-10-17  Po Lu  <luangruo@yahoo.com>

	Fix minor issues with text display when cursor is in mouse face

	 * src/xdisp.c (get_cursor_offset_for_mouse_face): Don't calculate
	offsets for the glyph the cursor is on, and move some logic to
	get_glyph_pixel_width_delta_for_mouse_face.
	(fill_composite_glyph_string)
	(fill_gstring_glyph_string)
	(fill_glyphless_glyph_string)
	(fill_glyph_string)
	(fill_image_glyph_string)
	(fill_xwidget_glyph_string)
	(fill_stretch_glyph_string): Set s->face to mouse face whenever
	appropriate.
	(get_glyph_pixel_width_delta_for_mouse_face): New function.
	(set_glyph_string_background_width): Update background width and
	s->width to take into account differing :box properties of the mouse
	face, when producing strings for the cursor.
	(erase_phys_cursor): Redraw mouse face when erasing a cursor on top of
	the mouse face.
	 * src/xterm.c (x_set_mouse_face_gc): Stop setting s->face when under
	mouse face because redisplay now does that for us.
	 * src/w32term.c (w32_set_mouse_face_gc): Likewise.

2021-10-17  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up recent kbd simplification

	* lisp/subr.el (kbd): Fix breakage with X-<foo> from previous change.

2021-10-17  Michael Albinus  <michael.albinus@gmx.de>

	Warn about `file-notify-rm-all-watches' side effects

	* doc/lispref/os.texi (File Notifications): Warn about
	`file-notify-rm-all-watches' side effects.

2021-10-16  Stefan Kangas  <stefankangas@gmail.com>

	Simplify condition in kbd

	* lisp/subr.el (kbd): Simplify condition.  This was discussed in:
	https://lists.gnu.org/r/emacs-devel/2021-10/msg01136.html

2021-10-16  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	e8488808df Avoid aborts when a thread is signaled while "waiting for ...
	21397cce51 Improve documentation string for 'compilation-error-regexp...
	2971a6890f * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix t...
	e842d7f29a Fix removal of fringe indication of bookmarks
	b5a0eda978 Prefer "graphical displays" to "X terminals" in documentation
	4ad0fc0dd0 Precise documentation of file-notify-add-watch
	f5b8df14c6 Fixes to account for windows' tab lines
	ced72b6e4c * Fix `native-compile-target-directory' effectiveness on t...
	502788bc3d Add missing single quotes in the Emacs manual
	1af45ad04e ; * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix...
	12654b7423 * lisp/menu-bar.el (yank-menu-length): Fix docstring (bug#...

	# Conflicts:
	#	lisp/gnus/gnus-undo.el
	#	lisp/menu-bar.el

2021-10-16  Michael Albinus  <michael.albinus@gmx.de>

	Set EMACS_TEST_TIMEOUT for emba

	* test/Makefile.in: Support EMACS_TEST_TIMEOUT environment variable.

	* test/README: Mention EMACS_TEST_TIMEOUT environment variable.

	* test/infra/gitlab-ci.yml (variables): Set default value of
	EMACS_TEST_TIMEOUT.
	(.job-template): Propagate EMACS_TEST_TIMEOUT and EMACS_TEST_VERBOSE.
	(test-all-inotify): Set specific EMACS_TEST_TIMEOUT.

2021-10-16  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new function 'kbd-valid-p'

	* doc/lispref/keymaps.texi (Key Sequences): New function
	'kbd-valid-p'.

	* lisp/subr.el (kbd-valid-p): Document it.

2021-10-16  Michael Albinus  <michael.albinus@gmx.de>

	Fix :version of new faces in term.el

	* lisp/term.el (term-faint, term-italic, term-slow-blink)
	(term-fast-blink): Set proper :version.

2021-10-16  Stefan Kangas  <stefankangas@gmail.com>

	Remove duplicate code in edmacro-parse-keys

	* lisp/subr.el (kbd): Add argument NEED-VECTOR and make it suitable
	for calling from 'edmacro-parse-keys'.
	* lisp/edmacro.el (edmacro-parse-keys): Replace definition with a
	call to 'kbd'.

	This change was discussed in:
	https://lists.gnu.org/r/emacs-devel/2021-10/msg00909.html

2021-10-16  Stefan Kangas  <stefankangas@gmail.com>

	Make kbd usable during bootstrap

	* lisp/subr.el (kbd): Make 'kbd' usable during bootstrap by copying
	the definition of 'read-kbd-macro' into it, and adjusting it to no
	longer use CL-Lib functions.

	This change was discussed in:
	https://lists.gnu.org/r/emacs-devel/2021-10/msg00909.html

2021-10-16  Michael Albinus  <michael.albinus@gmx.de>

	Add command `file-notify-rm-all-watches'

	* doc/lispref/os.texi (File Notifications):
	Add `file-notify-rm-all-watches'.

	* etc/NEWS: Mention 'file-notify-rm-all-watches'.  Fix typos.

	* lisp/filenotify.el (file-notify-rm-all-watches): New defun.

	* test/lisp/filenotify-tests.el (file-notify--test-cleanup):
	Use `file-notify-rm-all-watches'.
	(file-notify-test02-rm-watch): Test also `file-notify-rm-all-watches'.

2021-10-16  Andreas Schwab  <schwab@linux-m68k.org>

	* src/emacs.c (standard_args): Sort --fingerprint second.
	(bug#51238)

2021-10-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/menu-bar.el (menu-bar-edit-menu): Expose lambdas to the compiler

2021-10-15  Amin Bandali  <bandali@gnu.org>

	Release ERC 5.4.1

	* doc/misc/erc.texi (ERCVER): Bump to 5.4.1.
	* etc/ERC-NEWS: Add entry for 5.4.1 with explanations.
	* lisp/erc/erc.el (Version, erc-version): Bump to 5.4.1.
	(customize-package-emacs-version-alist): Add entry for 5.4.1.

2021-10-15  Lars Ingebrigtsen  <larsi@gnus.org>

	Convert two `easy-mmode-defmap' usages to `defvar-keymap'

	* lisp/vc/log-edit.el (log-edit-mode-map):
	* lisp/vc/cvs-status.el (cvs-status-mode-map): Convert
	`easy-mmode-defmap' to `defvar-keymap'.

2021-10-15  Protesilaos Stavrou  <info@protesilaos.com>
	    Abhiseck Paira  <abhiseckpaira@disroot.org>
	    Protesilaos Stavrou  <info@protesilaos.com>

	Add new option to rename eww buffers

	* etc/NEWS: Document the new user options.

	* lisp/net/eww.el (eww-auto-rename-buffer, eww-buffer-name-length):
	Add new user options.
	(eww--rename-buffer): Introduce new function that performs the
	renaming of buffers.
	(eww--after-page-change): Add new wrapper function which calls
	'eww-update-header-line-format' and 'eww--rename-buffer'.
	(eww, eww-render, eww-tag-title, eww-readable, eww-restore-history):
	Include eww--after-page-change.

	Fix bug#51176.

2021-10-15  Dmitry Gutov  <dgutov@yandex.ru>

	Special-case the "Permission denied" messages

	* lisp/progmodes/project.el (project--files-in-directory):
	Special-case the "Permission denied" messages, to make sure the
	user sees the unreadable directory's name
	(https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg01015.html).

2021-10-15  Mattias Engdegård  <mattiase@acm.org>

	Calc: mend math-nth-root-float (bug#51209)

	Reported by Iñaki Cornejo.

	* lisp/calc/calc-math.el (math-nth-root-float):
	Fix old refactoring mistake.
	* test/lisp/calc/calc-tests.el (calc-nth-root): New test.

2021-10-15  Michael Albinus  <michael.albinus@gmx.de>

	Further gitlab-ci.yml changes

	* test/infra/gitlab-ci.yml (.job-template): Add --timeout.
	(.test-template): Adapt artifact paths.

2021-10-15  Martin Rudalics  <rudalics@gmx.at>

	Simplify functions dealing with preserving the size of windows

	* lisp/window.el (window--preservable-size): Remove function.
	(window-preserve-size, window-preserved-size)
	(window--preserve-size): Simplify.  Use 'window-body-height'
	etc. instead of 'window--preservable-size'.

2021-10-14  Amin Bandali  <bandali@gnu.org>

	* doc/misc/erc.texi: Add 'ERCVER' and 'ERCDIST'.

	To mention the ERC version in the manual, and to allow for more easily
	overriding the distribution description when building for GNU ELPA.

2021-10-14  Lars Ingebrigtsen  <larsi@gnus.org>

	Use `define-keymap' in log-view.el

	* lisp/vc/log-view.el (log-view-mode-map): Convert a
	`easy-mmode-defmap' to `define-keymap'.

2021-10-14  Lars Ingebrigtsen  <larsi@gnus.org>

	define-key doc string improvement

	* src/keymap.c (Fdefine_key): Explain what the STRING is used for.

	(local-set-key "\C-c\C-c"
		       (define-keymap
			 :name "Zot"
			 "a" '("foo" . ignore)
			 "b" '("gazonk" . ignore)))

2021-10-14  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	9ff6999a06 (origin/emacs-28) Accept process-filter t in Tramp
	cf95962092 ; * doc/lispref/processes.texi (Filter Functions): Fix las...
	1ad4ad0c11 Document the t value for set-process-filter in the manual
	b014efa1e5 * doc/misc/tramp.texi (Frequently Asked Questions): Add re...
	b9b78b2631 Fix Help functions for clicks on tool bar and tab bar
	74deafe921 ; * etc/DEBUG: Add a section about debugging native-compil...
	8153f70b9c In make_lispy_position fix Bug#50993 in rudimentary fashion
	0aa52e94f3 Mark vc-switch-backend as obsolete
	568e479c59 Add missing parentheses in the Emacs manual
	44ce50b0df Improve tooltip of mode-line-position again
	9b1adf8b4f Use browse-url-button-regexp for rcirc-url-regexp
	9ed53b022d * lisp/help.el (help--analyze-key): Avoid mouse-set-point ...

	# Conflicts:
	#	etc/NEWS

2021-10-14  Eli Zaretskii  <eliz@gnu.org>

	Fix display of cursor in mouse-highlighted face with ':box'

	* src/xdisp.c (erase_phys_cursor, show_mouse_face): Adjust
	phys_cursor.x as needed if the cursor is inside mouse-highlight.
	(get_cursor_offset_for_mouse_face): New function.
	* src/dispnew.c (gui_update_window_end): Set
	'mouse_face_overwritten_p' if the cursor is in mouse-face, to
	trigger more thorough redisplay of the cursor.
	(Bug#50660)

2021-10-14  Martin Rudalics  <rudalics@gmx.at>

	In 'window--display-buffer' handle nil size values as intended (Bug#51062)

	* lisp/window.el (window--display-buffer): Make sure
	that (window-height . nil), (window-width . nil)
	and (window-size . nil) action alist entries are processed
	as intended.

2021-10-14  Michael Albinus  <michael.albinus@gmx.de>

	Adapt gitlab-ci.yml paths

	* test/infra/gitlab-ci.yml (.job-template): Increase timeout.
	(.job-template, .build-template, .test-template)
	(.gnustep-template, .filenotify-gio-template)
	(.native-comp-template): Adapt paths.

2021-10-13  Dmitry Gutov  <dgutov@yandex.ru>

	Add new argument INCLUDE-ALL to project-find-file

	* lisp/progmodes/project.el (project-find-file):
	Add new argument INCLUDE-ALL.  Have 'C-u' make it non-nil.
	(project-or-external-find-file): Ditto.
	(project-find-file-in): Add new argument INCLUDE-ALL.
	(https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg00209.html)

2021-10-13  Stefan Kangas  <stefankangas@gmail.com>

	Double the default value of kill-ring-max

	* lisp/simple.el (kill-ring-max): Double the default to 120.
	* lisp/menu-bar.el (yank-menu-length): Doc fix.
	(yank-menu-max-items): New variable.
	(menu-bar-update-yank-menu): Don't display more than
	'yank-menu-max-items' in the yank menu.

	* doc/emacs/custom.texi (Changing a Variable):
	* doc/emacs/killing.texi (Kill Ring):
	* doc/lispintro/emacs-lisp-intro.texi (kill-new function):
	* doc/lispref/text.texi (Internals of Kill Ring): Doc fix to use
	the new value.

2021-10-13  Stefan Kangas  <stefankangas@gmail.com>

	New tests for kbd and edmacro-parse-keys

	* test/lisp/edmacro-tests.el: New file.
	* test/lisp/subr-tests.el (subr-test-kbd): Expand test.

2021-10-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Mark def* macros for indentation

	* lisp/widget.el (define-widget-keywords):
	* lisp/vc/pcvs.el (defun-cvs-mode):
	* lisp/subr.el (defvar-local):
	(defvar-keymap):
	* lisp/skeleton.el (define-skeleton):
	* lisp/simple.el (define-alternatives):
	* lisp/progmodes/gud.el (gdb-script-mode):
	* lisp/progmodes/gdb-mi.el (def-gdb-preempt-display-buffer):
	(def-gdb-auto-update-trigger):
	(def-gdb-auto-update-handler):
	(def-gdb-trigger-and-handler):
	(def-gdb-thread-buffer-command):
	(def-gdb-thread-buffer-simple-command):
	(def-gdb-thread-buffer-gud-command):
	(def-gdb-set-positive-number):
	(def-gdb-memory-format):
	(def-gdb-memory-unit):
	(def-gdb-memory-show-page):
	* lisp/progmodes/compile.el (define-compilation-mode):
	* lisp/progmodes/cc-vars.el (defcustom-c-stylevar):
	* lisp/obsolete/cl.el (define-setf-expander):
	(defsetf):
	(define-modify-macro):
	* lisp/obsolete/cl-compat.el (defkeyword):
	* lisp/net/hmac-def.el (define-hmac-function):
	* lisp/international/mule-conf.el (define-iso-single-byte-charset):
	* lisp/international/ccl.el (define-ccl-program):
	* lisp/image.el (defimage):
	* lisp/gnus/gmm-utils.el (defun-gmm):
	* lisp/ezimage.el (defezimage):
	* lisp/erc/erc.el (define-erc-module):
	* lisp/emacs-lisp/shortdoc.el (define-short-documentation-group):
	* lisp/emacs-lisp/eieio.el (defclass):
	* lisp/emacs-lisp/eieio-compat.el (defgeneric):
	(defmethod):
	* lisp/emacs-lisp/easy-mmode.el (define-minor-mode):
	(define-globalized-minor-mode):
	* lisp/emacs-lisp/derived.el (define-derived-mode):
	* lisp/emacs-lisp/byte-run.el (defsubst):
	(define-obsolete-function-alias):
	(define-obsolete-variable-alias):
	* lisp/custom.el (defcustom):
	(defface):
	(defgroup):
	(deftheme):
	* lisp/cedet/semantic/wisent.el (define-wisent-lexer):
	* lisp/cedet/semantic/lex.el (define-lex):
	(define-lex-analyzer):
	(define-lex-regex-analyzer):
	(define-lex-simple-regex-analyzer):
	(define-lex-block-analyzer):
	(define-lex-keyword-type-analyzer):
	(define-lex-sexp-type-analyzer):
	(define-lex-regex-type-analyzer):
	(define-lex-string-type-analyzer):
	(define-lex-block-type-analyzer):
	* lisp/cedet/semantic/lex-spp.el
	(define-lex-spp-macro-declaration-analyzer):
	(define-lex-spp-macro-undeclaration-analyzer):
	(define-lex-spp-include-analyzer):
	* lisp/cedet/semantic/dep.el
	(defcustom-mode-local-semantic-dependency-system-include-path):
	* lisp/cedet/semantic/decorate/mode.el
	(define-semantic-decoration-style):
	* lisp/cedet/mode-local.el (define-child-mode):
	(define-overloadable-function):
	(define-mode-local-override):
	* lisp/calc/calc.el (defcalcmodevar):
	(defmath): Explicitly mark all macros that have names that start
	with "def" that should indent defunly-like (bug#43329).

2021-10-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Mark all def* functions that should indent as `defun'

	* lisp/abbrev.el (define-abbrev):
	(define-abbrev-table): Mark all functions that have names that
	start with "def" that should indent according to the current
	heuristics (bug#43329).
	* lisp/autoinsert.el (define-auto-insert):

	* lisp/button.el (define-button-type):

	* lisp/subr.el (define-key-after):
	(define-mail-user-agent):
	(define-keymap):

	* lisp/widget.el (define-widget):

	* lisp/emacs-lisp/package.el (define-package):

	* lisp/international/mule-cmds.el (define-char-code-property):

	* lisp/international/mule.el (define-charset):
	(define-coding-system):
	(define-translation-table):
	(define-translation-hash-table):

2021-10-13  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify gcc -Warray-parameter

	* src/pdumper.h: Declare array parameter with the same signature
	that the function definition uses.

2021-10-13  Paul Eggert  <eggert@cs.ucla.edu>

	Pacify GCC -Wanalyzer-possible-null-dereference

	This fixes the only remaining GCC diagnostics when emacs-28 is
	configured with --enable-gcc-warnings.  It does so by adding
	ATTRIBUTE_RETURNS_NONNULL so that GCC knows certain functions
	return nonnull.  It also arranges for three of those functions to
	always return nonnull; I thought these functions already were
	doing so, but apparently not, and it is conceivable (though I
	haven’t checked this) that changing these functions to always
	return nonnull even on non-GNU platforms may fix unlikely
	portability bugs elsewhere in Emacs.  I used GCC 11.2.1 20210728
	(Red Hat 11.2.1-1) on x86-64 when checking the diagnostics.
	* configure.ac: Invoke gl_EEMALLOC before gl_INIT, in case
	the regex code doesn't invoke gl_EEMALLOC; needed for src/alloc.c’s
	use of MALLOC_0_IS_NONNULL.
	* src/alloc.c (xmalloc, xzalloc, xrealloc): Don’t worry about the
	special case where SIZE == 0, since lmalloc and lrealloc now
	return null only on allocation failure.
	(lmalloc, lrealloc): Return null only on allocation failure,
	instead of having special cases that treat malloc (0) and
	realloc (X, 0) as successes even when they return null.
	* src/lisp.h: Add ATTRIBUTE_RETURNS_NONNULL to a few functions
	that always return nonnull pointers, so that gcc -fanalyzer
	does not issue diagnostics like “alloc.c: In function
	‘allocate_vector_block’: alloc.c:2985:15: warning: dereference of
	possibly-NULL ‘block’ [CWE-690] [-Wanalyzer-possible-null-dereference]”
	as per <https://cwe.mitre.org/data/definitions/690.html>.

2021-10-13  Paul Eggert  <eggert@cs.ucla.edu>

	Merge from origin/emacs-28

	efb1cd7fa9 ; * etc/charsets/README: Update the format documentation.
	cc796b7409 Tramp doc cleanup
	a338d46060 Make emacs-lisp-byte-compile-and-load load the .elc file a...
	3eac7dc780 Fix point movement in image-dired
	4e9452a399 Improve shortdoc for vector
	f223ac6ef9 Fix test bug when calloc returns null
	ebeaa54f19 Pacify GCC 11 -fanalyzer on x86-64
	56d1f42f30 Improve handling of non-character events in input methods
	3fbe6fd367 ; Fix mistakes in last doc rewording about shorthands

2021-10-13  Paul Eggert  <eggert@cs.ucla.edu>

	Change release branch to emacs-28

	* admin/notes/git-workflow:
	* Makefile.in (PREFERRED_BRANCH): emacs-27 → emacs-28

2021-10-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Update Emacs requirement after removing compat code

2021-10-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow inhibiting `not-unused' warnings

	* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types): Allow
	inhibiting the `not-unused' warning (bug#31641).  (There has been
	some discussion about removing the `not-unused' warning, but it's
	still in there, so making it possible to inhibit it seems like the
	right thing to do.)
	* lisp/emacs-lisp/cconv.el (cconv--analyze-use): Don't warn about
	`not-unused'.

2021-10-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix problem with multiline fontification in interactive Python

	* lisp/progmodes/python.el
	(python-shell-font-lock-post-command-hook): When doing multi-line
	(`C-c SPC') inputs, remove all the preceding lines when doing
	fontification (bug#47657).

2021-10-13  Michael Albinus  <michael.albinus@gmx.de>

	Continue to work on emba integration

	* test/infra/Dockerfile.emba: Remove instrumentation.

	* test/infra/gitlab-ci.yml (.job-template): Specify timeout signal.
	(.job-template, .test-template): Improve wildcard.

2021-10-13  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove some compat code from python.el

	* lisp/progmodes/python.el
	(python-shell-font-lock-post-command-hook): Remove Emacs 24.3 and
	earlier compat code.

2021-10-13  Andreas Schwab  <schwab@linux-m68k.org>

	* src/pdumper.h: Include <stdio.h>.

2021-10-13  Martin Rudalics  <rudalics@gmx.at>

	Improve 'display-buffer' 'temp-buffer-resize-mode' cohabitation (Bug#51062)

	* doc/lispref/display.texi (Temporary Displays): Explain how
	to override the effect of 'temp-buffer-resize-mode' with a
	suitable 'display-buffer' action alist entry.
	* doc/lispref/windows.texi (Buffer Display Action Alists):
	Mention that an 'inhibit-switch-frame' entry might not work
	with every WM.  Describe the 'window-size' entry.  Describe
	how automatic window resizing can be overridden.
	* lisp/help.el (resize-temp-buffer-window-inhibit): New variable.
	(resize-temp-buffer-window): Handle case where user overrides
	automatic resizing.
	* lisp/window.el (temp-buffer-window-show): Bind
	'resize-temp-buffer-window-inhibit' to nil around
	'display-buffer'.  Do not raise frame automatically to avoid
	defeating 'inhibit-switch-frame'.
	(window--display-buffer): Set 'resize-temp-buffer-window-inhibit'
	to t when the action alist contains a 'window-height',
	'window-width' or 'window-size' entry.  Use
	'modify-frame-parameters' instead of 'set-frame-height' and
	'set-frame-width' to avoid that the latter step on each others
	toes.
	(display-buffer): Fix 'inhibit-switch-frame' part in and add
	'window-size' part to doc-string.

2021-10-12  Stephen Gildea  <stepheng+emacs@gildea.com>

	MH-E: restore message about obsolete key binding

	* lisp/mh-e/mh-show.el:
	* lisp/mh-e/mh-folder.el: Restore "obsolete key" message for "J w" that
	was lost in the conversion from gnus-define-keys to define-keymap.

2021-10-12  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix byte-compilation warnings in nox builds

	For discussion, see bug#51139.

	* lisp/edmacro.el (edmacro-fix-menu-commands): Load mwheel to pacify
	free variable warnings in without-x builds.

	* lisp/mh-e/mh-compat.el: Declare image.el functions that are not
	preloaded in without-x builds.
	* lisp/mh-e/mh-utils.el (mh--with-image-load-path): New macro.
	(mh-logo-display):
	* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-folder-buttons-init)
	(mh-tool-bar-letter-buttons-init): Use it to pacify byte-compilation
	warnings about image.el definitions not preloaded without-x.

2021-10-12  Eric Abrahamsen  <eric@ericabrahamsen.net>

	Clean up nnimap buffers with dead processes

	* lisp/gnus/nnimap.el (nnimap-keepalive): If the keepalive "NOOP"
	fails, remove the buffer with the dead process from
	`nnimap-process-buffers' and `nnimap-connection-alist'.
	(nnimap-find-connection): Do the same here, when the connection can't
	be found.
	(nnimap-close-server): Remove process buffer from lists when closing
	server.

2021-10-12  Lars Ingebrigtsen  <larsi@gnus.org>

	decoded-time-add doc string addition

	* lisp/calendar/time-date.el (decoded-time-add): Add a usage example.

2021-10-12  Michael Albinus  <michael.albinus@gmx.de>

	Adapt emba control files

	* test/infra/Dockerfile.emba: Print core pattern.

	* test/infra/gitlab-ci.yml (.job-template, .test-template):
	Improve wildcard.
	(.job-template): Add timeout.

2021-10-12  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	66b8dfd060 (origin/emacs-28) ; Fix last change related to shorthands
	3832b983cf In Fdelete_other_windows_internal fix new total window siz...
	5deb0ec14f * lisp/mh-e/mh-show.el (mh-junk-whitelist): Custom obsoles...
	cf1409db71 Don't apply shorthands to punctuation-only symbols (bug#51...
	b3d0f53b29 * lisp/progmodes/python.el: Bump package version to 0.28.

2021-10-12  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	47e09d1855 Copy parent face attributes to tab-line-tab-current instead...
	d96f8b22c0 Another fix for 'ibuffer-shrink-to-fit' (Bug#7218, Bug#51029)

2021-10-12  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	0d374b1b83 Work around GCC bug 102671

2021-10-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix more Gnus group key bindings recently changed

	* lisp/gnus/gnus-group.el (:keymap): Fix some prefix keys that
	ended up in the wrong place during the keymap rewrite (bug#51136).

2021-10-12  Stefan Kangas  <stefankangas@gmail.com>

	Remove more MH-E compat code

	* lisp/mh-e/mh-e.el (mh-strip-package-version, defgroup-mh)
	(defcustom-mh, defface-mh): Make Emacs 21 compat aliases obsolete.
	Update callers.

	* lisp/mh-e/mh-e.el:
	(mh-exchange-point-and-mark-preserving-active-mark)
	* lisp/mh-e/mh-folder.el (desktop-buffer-mode-handlers):
	* lisp/mh-e/mh-mime.el (mh-mm-inline-media-tests)
	(mh-have-file-command, mh-mime-security-button-map):
	* lisp/mh-e/mh-show.el (mh-summary-height):
	* lisp/mh-e/mh-speed.el (mh-process-kill-without-query):
	* lisp/mh-e/mh-xface.el (mh-uncompface-executable)
	(mh-face-to-png, mh-uncompface, mh-picon-file-contents): Remove
	XEmacs and Emacs 21 and older compat code.

2021-10-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Make dbus work in a dumped Emacs

	* lisp/net/dbus.el (dbus--init): Make into a defun.
	(after-pdump-load-hook): Put it onto the new pdump hook so that
	it's run after startup (bug#37331).

2021-10-12  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new after-pdump-load-hook variable

	* doc/lispref/internals.texi (Building Emacs): Document it.

	* lisp/subr.el (after-pdump-load-hook): New variable.
	* src/emacs.c (main): Run the new hook.

	* src/pdumper.c (syms_of_pdumper): Define a symbol.

2021-10-12  Stefan Kangas  <stefankangas@gmail.com>

	Make mh-do-in-gnu-emacs obsolete

	* lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs): Make obsolete.
	* lisp/mh-e/mh-tool-bar.el: Don't use above obsolete macro.
	(mh-acros): Require to avoid warnings.
	Thanks to Lars Ingebrigtsen <larsi@gnus.org>.

2021-10-12  Andreas Schwab  <schwab@linux-m68k.org>

	Change --fingerprint to output to stdout

	* src/pdumper.c (dump_fingerprint): Add argument OUTPUT, use it
	instead of stderr, update all uses.  Don't print colon if LABEL is
	empty.
	* src/pdumper.h (dump_fingerprint): Adjust.
	* src/emacs.c (main): Print fingerprint to stdout, without label.
	* Makefile.in (EMACS_PDMP): Adjust.

2021-10-12  Martin Rudalics  <rudalics@gmx.at>

	Have 'while-no-input-ignore-events' handle idle timers too (Bug#49997)

	* src/keyboard.c (read_char): Use Vwhile_no_input_ignore_events to
	check which idle timers should be resumed (Bug#49997).
	(init_while_no_input_ignore_events): New function to
	initialize Vwhile_no_input_ignore_events.
	(Vwhile_no_input_ignore_events): Say in doc-string that events in
	this list do not stop idle timers.
	* lisp/subr.el (while-no-input): Remove initialization of
	'while-no-input-ignore-events'; do that in keyboard.c now.

2021-10-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	lisp/erc/erc-{replace,imenu,dcc}: Tweak copyright format

	* lisp/erc/erc-replace.el:
	* lisp/erc/erc-imenu.el:
	* lisp/erc/erc-dcc.el: Massage copyright so elpa-admin.el recognizes it

2021-10-11  Stefan Kangas  <stefankangas@gmail.com>

	Remove last XEmacs compat code from ERC

	* lisp/erc/erc-dcc.el (erc-dcc-member): Remove XEmacs compat code.
	* lisp/erc/erc-goodies.el (erc-move-to-prompt-setup): Doc fix;
	remove spurious reference to XEmacs; this is needed also for
	Emacs.

2021-10-11  Stefan Kangas  <stefankangas@gmail.com>

	Prefer setq-local in lisp/mh-e/*.el

	* lisp/mh-e/mh-utils.el (mh-make-local-vars): Make obsolete.
	* lisp/mh-e/mh-comp.el (mh-forward):
	* lisp/mh-e/mh-folder.el (mh-folder-mode):
	* lisp/mh-e/mh-identity.el (mh-identity-handler-signature)
	(mh-identity-insert-attribution-verb):
	* lisp/mh-e/mh-letter.el (mh-letter-mode):
	* lisp/mh-e/mh-search.el (mh-search-folder):
	* lisp/mh-e/mh-seq.el (mh-narrow-to-seq, mh-widen):
	* lisp/mh-e/mh-show.el (mh-show-mode):
	* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define):
	* lisp/mh-e/mh-xface.el (mh-x-image-url-display)
	(mh-x-image-url-fetch-image): Prefer setq-local.

2021-10-11  Stefan Kangas  <stefankangas@gmail.com>

	Remove some more MH-E compat code

	* lisp/mh-e/mh-acros.el (defun-mh, defmacro-mh): Make obsolete.

	* lisp/mh-e/mh-gnus.el (mh-gnus-local-map-property): Make obsolete.
	* lisp/mh-e/mh-mime.el (mh-insert-mime-security-button)
	(mh-insert-mime-button): Don't use above obsolete function.

	* lisp/mh-e/mh-gnus.el (mh-mm-text-html-renderer): Make obsolete.
	* lisp/mh-e/mh-mime.el (mh-mm-inline-media-tests)
	(mh-signature-highlight): Remove references to removed Gnus
	variable 'mm-inline-text-html-renderer'.

	* lisp/mh-e/mh-letter.el (mh-letter-complete): Make into obsolete
	function alias for 'completion-at-point'.  Update callers.

	* lisp/mh-e/mh-e.el (mh-inc-spool-list, mh-show-use-xface-flag):
	* lisp/mh-e/mh-comp.el (mh-ascii-buffer-p):
	* lisp/mh-e/mh-show.el:
	* lisp/mh-e/mh-utils.el: Remove some references to XEmacs.

	* lisp/mh-e/mh-comp.el (mh-send-letter): Remove XEmacs and Emacs
	compat code.

	* lisp/mh-e/mh-compat.el (mh-display-completion-list): Remove
	compat code for Emacs 22 and earlier.

	* lisp/mh-e/mh-e.el (mh-inherit-face-flag)
	(mh-min-colors-defined-flag): Make XEmacs and Emacs 21 compat
	variables obsolete.
	(mh-face-data): Adjust to assume above variables are always t.

	* lisp/mh-e/mh-mime.el (mh-mime-button-map): Remove XEmacs and
	Emacs 20 compat code.

	* lisp/mh-e/mh-utils.el (mh-mapc): Make Emacs 20 compat function
	into obsolete function alias for mapc.  Update callers.

	* lisp/mh-e/mh-xface.el (mh-show-xface-function, mh-show-xface):
	Remove Emacs 20 compat code.

2021-10-11  Stefan Kangas  <stefankangas@gmail.com>

	Remove redundant calls to 'mh-do-in-gnu-emacs'

	* lisp/mh-e/mh-compat.el (mh-require):
	* lisp/mh-e/mh-folder.el (mh-folder-mode):
	* lisp/mh-e/mh-letter.el (mh-letter-mode):
	* lisp/mh-e/mh-mime.el (mh-mime-button-map)
	(mh-mime-security-button-map, mh-small-image-p)
	(mh-signature-highlight):
	* lisp/mh-e/mh-show.el (mh-show-mode):
	* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define):
	* lisp/mh-e/mh-utils.el (mh-logo-display)
	(mh-hidden-header-keymap):
	* lisp/mh-e/mh-xface.el (mh-face-display-function)
	(mh-picon-image-types, mh-x-image-display): Remove redundant calls
	to 'mh-do-in-gnu-emacs'.
	* lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs):
	* lisp/mh-e/mh-tool-bar.el: Add comment explaining an issue that
	stops us from making 'mh-do-in-gnu-emacs' obsolete.

2021-10-11  Glenn Morris  <rgm@gnu.org>

	Fix merge error for elisp-mode-tests.el

	* test/lisp/progmodes/elisp-mode-tests.el (test-cl-flet-indentation):
	Delete test mistakenly restored by merge conflict.
	It seems this was deleted 2021-10-01 with incomplete log message
	"Add more indentation tests".

2021-10-11  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	ac06608878 (origin/emacs-28) Release ERC 5.4
	a1a589d07b * etc/ERC-NEWS: Announce ERC's addition to GNU ELPA.
	6c7947f0a1 * etc/ERC-NEWS: Fix outline level for the recent additions.
	c480b68644 Add ERC entries for 'customize-package-emacs-version-alist'
	4afff515c8 Expand the full file name
	36a485a1af Obsolete XEmacs compat convention in 'erc-button-press-but...

2021-10-11  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	1a1b206a8b Adapt the recent 'num_processors' change to MS-Windows
	7cb4637923 Minor fix to clarify a sentence in emacs-lisp-intro
	ab60144ea3 ; Pacify recent shorthand unused lexarg warnings.
	e9df86004f Make tty-run-terminal-initialization load the .elc file (i...
	07edc28bdb Fix ert errors when there's a test that binds `debug-on-er...
	96278de8ac New function num-processors
	575e626105 Add symbol property 'save-some-buffers-function' (bug#46374)
	a3e10af95c Keep reading when typed RET in read-char-from-minibuffer a...
	013e3be832 * lisp/userlock.el (ask-user-about-supersession-threat): A...
	ae61d7a57d Fix point positioning on mouse clicks with non-zero line-h...
	4c7e74c386 Complete shorthands to longhands for symbol-completing tables
	c2513c5d0d Add new failing test for bug#51089
	1d1e96377c ; * lisp/emacs-lisp/shortdoc.el: Fix typo.
	6bf29072e9 Avoid mapping file names through 'substring'
	bcce93f04c Update to Org 9.5-46-gb71474
	5d408f1a24 Expanded testing of MH-E with multiple MH variants
	b497add971 Fix Seccomp filter for newer GNU/Linux systems (Bug#51073).
	75d9fbec88 Tramp code cleanup

	# Conflicts:
	#	etc/NEWS
	#	test/lisp/progmodes/elisp-mode-tests.el

2021-10-11  Amin Bandali  <bandali@gnu.org>

	Revert "Obsolete XEmacs compat convention in erc-button-press-button"

	This reverts commit f146325bd1556d1acafe26f6c263b83a92d3cd20.

	This should be done in 'emacs-28', which will be merged into 'master'.

2021-10-11  Stefan Kangas  <stefankangas@gmail.com>

	Fontify "print" and "exec" as functions in python-mode

	* lisp/progmodes/python.el (python-font-lock-keywords-level-2):
	Fontify "print" and "exec" as functions, which is the case in
	Python 3.  (Bug#43298)

2021-10-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Mention --fingerprint in NEWS

2021-10-11  Glenn Morris  <rgm@gnu.org>

	Make the installed pmdp file use a fingerprint

	* Makefile.in (EMACS_PDMP): Use --fingerprint.

	* doc/emacs/cmdargs.texi (Action Arguments): Document --fingerprint.

	* src/emacs.c (load_pdump): Load the fingerprinted version of the
	pdmp file (bug#42790).
	(main): Support --fingerprint.

	* src/pdumper.c (dump_fingerprint): Make non-static.

	* src/pdumper.h: Declare dump_fingerprint.

2021-10-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix menu display of keys when cua-mode is active

	* lisp/menu-bar.el (menu-bar-edit-menu): Make the menus display
	the correct keys for editing when cua-mode is active (bug#28930).

2021-10-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Change how cua-mode defined `C-x' and `C-c'

	* lisp/emulation/cua-base.el (cua-cut-handler):
	(cua-copy-handler): New aliases (bug#28930).
	(cua--init-keymaps): Use them for `C-x' and `C-c' to be able to
	distinguish the commands when looking them up in reverse.

2021-10-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow :keys in menus to be computed dynamically

	* doc/lispref/keymaps.texi (Extended Menu Items): Document it
	(bug#28930).

	* src/keyboard.c (parse_menu_item): Allow :keys to be a function.

2021-10-11  Lars Ingebrigtsen  <larsi@gnus.org>

	Tweak how auto-fill fills after a period

	* lisp/textmodes/fill.el (fill-nobreak-p): Don't break immediately
	after a space after a period (bug#17321).

2021-10-11  Michael Albinus  <michael.albinus@gmx.de>

	* doc/misc/tramp.texi (Bug Reports): Describe, how to activate ELPA Tramp.

2021-10-10  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix mairix-el.texi menu

2021-10-09  Ingo Lohmar  <ingo.lohmar@posteo.net>

	Fix workspace/configuration handling when given scopeuri directory

	The path returned by eglot--uri-to-path is mostly used for file paths,
	and therefore does not end with a slash.  Such a no-trailing-slash path
	violates what default-directory demands (per its docstring), which
	causes hack-dir-local-variables-non-file-buffer to not find the
	appropriate dir-local vars.

2021-10-09  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	394209c1a0 (origin/emacs-28) ; Fix indentation in etc/NEWS
	81f20e8b89 Fix thinko in ls-lisp--insert-directory
	ec9f25bd35 Mention that RET means "yes" in y-or-n-p
	00eb21c897 ; * src/dispextern.h (struct glyph_string): Comment on NCH...
	20eb3644ba Rewrite Antinews for Emacs 28
	3a9b881603 ; * etc/NEWS: Rearrange the "incompatible changes" sections.
	ebb7e26013 ; * etc/NEWS: Fix a typo.
	315fe20086 ; * src/Makefile.in (../native-lisp): Add comment.
	47cbd103f5 * lisp/bindings.el (mode-line-position): Improve tooltip.
	35a752863a * lisp/progmodes/xref.el: Bump the version.
	bbcd8cc1a9 Slight simplification
	e139dd1b1e Fix doc strings of 2 categories
	59782839cb (xref--collect-matches-1): Remove some intermediate alloca...
	1c7d056f4d ; Fix two typos where em dash was written as en dash

	# Conflicts:
	#	etc/NEWS

2021-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/progmodes/bug-reference.el: Use new `eql` specializer syntax

2021-10-09  F. Jason Park  <jp@neverwas.me>

	Add ERC version to protocol log

	* lisp/erc/erc.el (erc-toggle-debug-irc-protocol): Include the erc
	version in the debug logs (bug#51107).

2021-10-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove mistaken dired-x entry from previous info-look patch.

2021-10-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `C-h S' work on symbols from most of the manuals in Emacs

	* lisp/info-look.el (lambda): Add `C-h S' lookup for all the
	"misc" manuals in Emacs (bug#42753).

2021-10-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Add indices to mairix-el

	* doc/misc/mairix-el.texi (Function Index): Add indices.

2021-10-09  Lars Ingebrigtsen  <larsi@gnus.org>

	Simplify `clean-mode'

	* lisp/simple.el (clean-mode): Simplify the property exclusion.

2021-10-09  Stefan Kangas  <stefankangas@gmail.com>

	Remove duplicate definition of x-display-color-p

	* lisp/emulation/viper-init.el (x-display-color-p): Remove duplicate
	definition.  This would just overwrite the alias defined in faces.el.

2021-10-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove some unnecessary calls to mh-funcall-if-exists

	* lisp/mh-e/mh-acros.el (mh-do-at-event-location):
	* lisp/mh-e/mh-mime.el (mh-mime-cleanup, mh-display-smileys)
	(mh-insert-mime-security-button, mh-insert-mime-button):
	* lisp/mh-e/mh-show.el (mh-defun-show-buffer):
	* lisp/mh-e/mh-xface.el (mh-x-image-url-fetch-image)
	(mh-x-image-display, mh-picon-image-types): Remove unnecessary calls
	to mh-funcall-if-exists; these functions always exist as they are
	autoloaded.

2021-10-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove old Gnus compat code from MH-E

	* lisp/mh-e/mh-gnus.el (mh-mm-merge-handles)
	(mh-mm-set-handle-multipart-parameter, mh-mm-inline-text-vcard)
	(mh-mm-possibly-verify-or-decrypt)
	(mh-mm-handle-multipart-ctl-parameter, mh-mm-readable-p)
	(mh-mm-long-lines-p, mh-mm-keep-viewer-alive-p)
	(mh-mm-destroy-parts, mh-mm-uu-dissect-text-parts)
	(mh-mml-minibuffer-read-disposition): Make into obsolete aliases
	for functions without the 'mh-' prefix.  Update callers.
	(mh-gnus-local-map-property): Remove Emacs 20 compat code.

2021-10-08  Stefan Monnier  <monnier@iro.umontreal.ca>

	test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el: Lexbind

	Add the usual lexical-binding cookie.

2021-10-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove XEmacs compat code from lisp/obsolete/*.el

	* lisp/obsolete/crisp.el (crisp-kill-region)
	(crisp-region-active):
	* lisp/obsolete/eudcb-ph.el (eudc-ph-open-session):
	* lisp/obsolete/fast-lock.el (fast-lock-save-faces):
	* lisp/obsolete/iswitchb.el (iswitchb-completion-help)
	(iswitchb-case):
	* lisp/obsolete/otodo-mode.el (todo-mode):
	* lisp/obsolete/pgg-parse.el (pgg-parse-armor):
	* lisp/obsolete/pgg.el (pgg-verify-region):
	* lisp/obsolete/tpu-edt.el (activate-mark-hook, tpu-mark)
	(tpu-set-mark, tpu-load-xkeys):
	* lisp/obsolete/tpu-mapper.el (tpu-map-key, tpu-mapper): Remove XEmacs
	compat code.

2021-10-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove XEmacs compat code from sql.el

	* lisp/progmodes/sql.el (sql-interactive-mode-map, sql-mode)
	(sql-interactive-mode): Remove XEmacs compat code.  (Bug#51096)

2021-10-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove Emacs 20 compat code from sql.el

	* lisp/progmodes/sql.el (sql-input-ring-separator)
	(sql-product-font-lock): Remove Emacs 20 compat code.

2021-10-08  Stefan Kangas  <stefankangas@gmail.com>

	Remove some additional XEmacs compat code from viper

	* lisp/emulation/viper-util.el (viper-memq-char): Make into
	obsolete function alias for 'memq'.  Update callers.
	(viper-char-equal): Make into obsolete function alias for 'eq'.
	Update callers.
	(viper-color-display-p): Make into obsolete function alias for
	'x-display-color-p'.  Update callers.

2021-10-08  Stefan Kangas  <stefankangas@gmail.com>

	Obsolete XEmacs compat convention in erc-button-press-button

	* lisp/erc/erc-button.el (erc-button-press-button): Advertise new
	calling convention without XEmacs compatibility.

2021-10-08  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	af01b674ce (origin/emacs-28) ; Fix spacing in previous commit
	915e044d60 Use the correct label in the warning
	6e83a4100a ; * admin/make-tarball.txt: Should configure --with-native...
	525602d682 ; * etc/TODO (display): Add entry about Default_Ignorables.
	65de510c16 ; Fix 'restore-buffer-modified-p' doc string typo
	9d8202b45e Add Emacs 27 compatibility hack
	89d64fca75 Pacify GCC 10.3 -Wmaybe-uninitialized
	bb8ef1aa30 * lisp/tab-bar.el (tab-detach, tab-window-detach): New ali...
	7ae70054aa ; * src/composite.h (LGSTRING_FONT): Add comment about its...
	1af00e67d6 Include the refcards in the release tarball
	3c29fb705c ; * src/Makefile.in (../native-lisp): Make the long recipe...

2021-10-07  Stefan Kangas  <stefankangas@gmail.com>

	Make mh-* XEmacs compat aliases obsolete

	* lisp/mh-e/mh-acros.el (mh-make-local-hook): Make XEmacs and Emacs 20
	macro obsolete.  Update all callers
	* lisp/mh-e/mh-compat.el (mh-require): Make XEmacs compat alias
	obsolete.  Update all callers
	(mh-write-file-functions): Make XEmacs compat macro obsolete.  Update
	all callers
	(mh-assoc-string, mh-display-color-cells, mh-face-foreground)
	(mh-face-foreground, mh-face-background)
	(mh-font-lock-add-keywords, mh-image-load-path-for-library)
	(mh-image-search-load-path, mh-line-beginning-position)
	(mh-line-end-position, mh-mail-abbrev-make-syntax-table)
	(mh-define-obsolete-variable-alias, mh-make-obsolete-variable)
	(mh-match-string-no-properties, mh-replace-regexp-in-string)
	(mh-test-completion, mh-url-hexify-string, mh-view-mode-enter)
	(mh-window-full-height-p): Make XEmacs compat definitions into
	obsolete function aliases for the same names but without the "mh-"
	prefix.  Update all callers.

2021-10-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Update inhibit-changing-match-data obsoletion data

	* lisp/subr.el (inhibit-changing-match-data): Link to
	`save-match-data'.

2021-10-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Update Fstring_match calls in comp.c

	* src/comp.c (Fcomp_el_to_eln_rel_filename, file_in_eln_sys_dir):
	Update Fstring_match calls.

2021-10-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make 'inhibit-changing-match-data' obsolete and adjust callers

	* doc/lispref/searching.texi (Regexp Search):
	(POSIX Regexps): Document this.
	* lisp/subr.el (inhibit-changing-match-data): Make obsolete.
	(looking-at-p): Adjust call.

	* lisp/vc/vc-hg.el (vc-hg--raw-dirstate-search):
	(vc-hg--ignore-patterns-ignored-p):
	(vc-hg--cached-dirstate-search): Don't use
	`inhibit-changing-match-data'.

	* src/minibuf.c (Ftry_completion):
	(Fall_completions):
	(Ftest_completion): Adjust Fstring_match calls.

	* src/search.c (looking_at_1): Pass in modify_data.
	(Flooking_at): Add optional inhibit-modify parameter.
	(string_match_1): Pass in modify_data.
	(Fstring_match):
	(Fposix_looking_at, Fposix_string_match): Add optional
	inhibit-modify parameter.

2021-10-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Make gnus-define-keys obsolete

	* lisp/gnus/gnus-util.el (gnus-define-keys):
	(gnus-define-keys-1): Make obsolete.

2021-10-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Convert mh-e to use define-keymap instead of gnus-define-keys

	* lisp/mh-e/mh-speed.el (mh-folder-speedbar-key-map):
	* lisp/mh-e/mh-show.el (mh-show-mode-map):
	* lisp/mh-e/mh-search.el (mh-letter):
	(mh-search-mode-map):
	* lisp/mh-e/mh-letter.el (mh-letter-mode-map):
	* lisp/mh-e/mh-folder.el (mh-folder-mode-map): Convert to use
	`define-keymap' instead of `gnus-define-keys'.

2021-10-07  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	7cb98ba057 (origin/emacs-28) ; * src/keyboard.c (make_lispy_position)...

2021-10-07  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	160e62a23c Improve documentation and customization of 'blink-matching...
	1100fffcd3 * lisp/erc/erc.el: Don't error if 'erc-loaddefs' does not ...
	8865fc02ab Add 'erc-bug' command for reporting ERC bugs
	5afa07919e Add 'erc-version' and use it to display ERC version consis...
	bc941846d9 Small tweaks and improvements to etc/ERC-NEWS
	30b5e0a514 Add NEWS items for changes to ERC since 5.3 to etc/ERC-NEWS
	f7e6c199bf Clone the frame window configuration in 'clone-frame'
	5f626488d8 * lisp/tool-bar.el (tool-bar-position): Doc fix.

	# Conflicts:
	#	etc/NEWS

2021-10-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix mh-e compilation warning

	* lisp/mh-e/mh-comp.el (mh-compose-and-send-mail): Adjust doc string.

	* lisp/mh-e/mh-identity.el (mh-identity-make-menu): Don't call the
	obsolete `mh-identity-add-menu' function (that now does nothing).

2021-10-07  Stefan Kangas  <stefankangas@gmail.com>

	Revert "Declare compat macro mh-do-in-gnu-emacs obsolete"

	This reverts commit 148b136651413d8eca0f805c786fb04b9c5878b8.

	This commit led to some build failures that I don't yet understand, so
	I'm reverting it for now so as not to leave master in a broken state.

2021-10-07  Stefan Kangas  <stefankangas@gmail.com>

	Delete some XEmacs compat code from mh-e/*.el

	* lisp/mh-e/mh-acros.el (mh-mark-active-p):
	* lisp/mh-e/mh-comp.el (mh-insert-x-mailer):
	* lisp/mh-e/mh-compat.el (mh-define-obsolete-variable-alias)
	(mh-make-obsolete-variable):
	* lisp/mh-e/mh-folder.el (mh-folder-mode-map)
	(mh-remove-xemacs-horizontal-scrollbar, mh-folder-mode):
	* lisp/mh-e/mh-gnus.el (mh-gnus-local-map-property):
	* lisp/mh-e/mh-show.el (mh-show-mode):
	* lisp/mh-e/mh-utils.el (mh-colors-available-p):
	* lisp/mh-e/mh-xface.el (mh-show-xface-function): Delete some
	XEmacs compat code.

2021-10-07  Stefan Kangas  <stefankangas@gmail.com>

	Declare compat macro mh-do-in-gnu-emacs obsolete

	* lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs): Declare compat macro
	obsolete.
	* lisp/mh-e/mh-compat.el (mh-require):
	* lisp/mh-e/mh-folder.el (mh-folder-mode):
	* lisp/mh-e/mh-letter.el (mh-letter-mode):
	* lisp/mh-e/mh-mime.el (mh-mime-button-map)
	(mh-mime-security-button-map, mh-small-image-p)
	(mh-signature-highlight):
	* lisp/mh-e/mh-show.el (mh-show-mode):
	* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define):
	* lisp/mh-e/mh-utils.el (mh-logo-display)
	(mh-hidden-header-keymap):
	* lisp/mh-e/mh-xface.el (mh-face-display-function)
	(mh-picon-image-types, mh-x-image-display): Don't wrap code in
	compat macro 'mh-do-in-gnu-emacs'.

2021-10-07  Stefan Kangas  <stefankangas@gmail.com>

	Declare compat macro mh-do-in-xemacs obsolete

	* lisp/mh-e/mh-identity.el (mh-identity-add-menu):
	* lisp/mh-e/mh-acros.el (mh-do-in-xemacs): Declare obsolete.
	* lisp/mh-e/mh-compat.el:
	* lisp/mh-e/mh-e.el (mh-xemacs-use-tool-bar-flag):
	* lisp/mh-e/mh-folder.el (mh-folder-mode):
	* lisp/mh-e/mh-letter.el (mh-letter-mode):
	* lisp/mh-e/mh-mime.el (mh-mime-button-map)
	(mh-mime-security-button-map, mh-small-image-p)
	(mh-signature-highlight):
	* lisp/mh-e/mh-search.el (mh-search-mode):
	* lisp/mh-e/mh-seq.el:
	* lisp/mh-e/mh-show.el (mh-show-mode):
	* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define):
		* lisp/mh-e/mh-utils.el (mh-logo-display)
	(mh-hidden-header-keymap):
	* lisp/mh-e/mh-xface.el (mh-face-display-function)
	(mh-picon-image-types, mh-x-image-display): Delete calls to
	'mh-do-in-xemacs'.

2021-10-07  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix syntax error in previous gnus-registry-install-shortcuts change

	* lisp/gnus/gnus-registry.el (gnus-registry-install-shortcuts):
	Fix syntax error in previous change.

2021-10-06  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-handler): Scope

	Fix the scoping of `tramp-archive-enabled`.

2021-10-06  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	1ccd3eb721 (origin/emacs-28) ; Fix typo in etc/NEWS
	0f28ee94ac * NEWS: Mention rcirc connects to #emacs by default
	aacafbe267 Refactor mh-utils-tests macro 'with-mh-test-env'
	ead5c5cc51 Avoid using variable before it has been initialized
	b2c50d7cf3 Clarify docstring of blink-matching-paren
	d2a34cabcf ; Very minor touch-up to a recent change
	36a7ce4393 ; * doc/emacs/trouble.texi (After a Crash): Fix typo.
	1cd1b2835b * doc/misc/gnus.texi (Loose Threads): Use regexp-opt in ex...
	9f041cdfac Bump project.el version
	ad2287e659 Retain compatibility with older project.el projects
	d86b2e59c7 native-comp-available-p is the definitive test
	1b383ac424 Minor fix of a recently installed documentation change
	4d76765b6c Fix md5 issue in recent Gnulib merge
	18308b739a Tweak recent 'configure' fix

	# Conflicts:
	#	etc/NEWS

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Reparent `gnus-article-mode-map' again

	* lisp/gnus/gnus-art.el (:keymap): Make `button-buffer-map' the
	parent of `gnus-article-mode-map' again.

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new major mode 'clean-mode'

	* doc/lispref/modes.texi (Major Modes): Document it.

	* lisp/simple.el (clean-mode): New major mode.

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Add an optional parameter to kill-all-local-variables

	* doc/lispref/variables.texi (Creating Buffer-Local): Document it
	(bug#30204).

	* src/buffer.c (Fkill_all_local_variables): Allow killing
	permanent local variables, too.

	* src/print.c (temp_output_buffer_setup):
	* src/minibuf.c (set_minibuffer_mode): Adjust callers.

2021-10-06  Michael Albinus  <michael.albinus@gmx.de>

	* admin/notes/emba (Emacs jobset): Update.

	* test/infra/gitlab-ci.yml (.test-template): Uncomment
	'allow_failure', it isn't needed anymore.

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make unused macro gnus-local-set-keys obsolete

	* lisp/gnus/gnus-util.el (gnus-local-set-keys): Make obsolete.

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make unused gnus-define-keys-safe macro obsolete

	* lisp/gnus/gnus-util.el (gnus-define-keys-safe): Make obsolete.

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Use `define-keymap' in gnus-registry-install-shortcuts

	* lisp/gnus/gnus-registry.el (gnus-registry-install-shortcuts):
	Use `define-keymap'.

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `gnus-define-keymap' obsolete and adjust caller

	* lisp/gnus/gnus-kill.el (gnus-kill-file-mode-map): Use
	`define-keymap'.

	* lisp/gnus/gnus-util.el (gnus-define-keymap): Make obsolete.

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix gnus-start.el compilation warning

	* lisp/gnus/gnus-start.el (gnus-save-newsrc-file-last-timestamp):
	Move to avoid a compilation warning.

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Finish conversion of Gnus from `gnus-define-keys'

	* lisp/gnus/gnus-undo.el (gnus-undo-mode-map):
	* lisp/gnus/gnus-salt.el (gnus-pick-mode-map):
	(gnus-binary-mode-map):
	(gnus-tree-mode-map):
	* lisp/gnus/gnus-msg.el (gnus-summary-send-map):
	* lisp/gnus/gnus-ml.el (gnus-mailing-list-mode-map):
	* lisp/gnus/gnus-icalendar.el (gnus-icalendar-setup):
	* lisp/gnus/gnus-art.el (gnus-article-mode-map):
	(gnus-article-edit-mode-map): Use `define-keymap' instead of
	* `gnus-define-keys'.

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Clear gnus-save-newsrc-file-last-timestamp on start and exit

	* lisp/gnus/gnus-start.el (gnus-clear-system): Clear
	`gnus-save-newsrc-file-last-timestamp' on start and exit (bug#51053).

2021-10-06  Arash Esbati  <arash@gnu.org>

	Improve finding external documents in reftext

	* lisp/textmodes/reftex-parse.el (reftex-parse-from-file): Extend
	regexp in order to support \externalcitedocument macro and a
	second optional argument provided by LaTeX package xr-hyper
	(bug#51054).

2021-10-06  Miha Rihtaršič  <miha@kamnitnik.top>

	Add tests for incomplete escape sequences in ansi-color-tests

	* test/lisp/ansi-color-tests.el
	(ansi-color-tests-equal-props): New function.
	(ansi-color-incomplete-sequences-test): New ert test (bug#50806).

2021-10-06  Miha Rihtaršič  <miha@kamnitnik.top>

	Documentation fixes for recent ansi-color additions

	* lisp/ansi-color.el (ansi-color-context-region): Improve formatting.
	* lisp/term.el
	(term-ansi-face-already-done):
	(term-handle-colors-array):
	Fix obsoleting version (bug#50806).

2021-10-06  Yuri D'Elia  <wavexx@thregr.org>

	Document the improved scroll-margin behavior

	* etc/NEWS: document the improved `scroll-margin' behavior.

2021-10-06  Yuri D'Elia  <wavexx@thregr.org>

	Perform cleanup on errors in mouse-drag-track

	* lisp/mouse.el (mouse-drag-track): Disable both scroll-margin and
	auto-hscroll-mode in mouse-drag-region and do not re-enable them until
	dragging is over, making selections work as expected when inside the
	margins.
	* lisp/mouse.el (mouse-drag-track): Correctly reset original values
	changed during execution if errors occur.

2021-10-06  Yuri D'Elia  <wavexx@thregr.org>

	Improve interaction between mouse-drag-region and scroll-margin

	* lisp/mouse.el (mouse-drag-track): Disable both scroll-margin and
	auto-hscroll-mode in mouse-drag-region and do not re-enable them until
	dragging is over, making selections work as expected when inside the
	margins.

2021-10-06  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix up gnus-summary-mode-map after previous change

	* lisp/gnus/gnus-sum.el (:keymap): Fix two sub-maps that were
	moved to the wrong place.

2021-10-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Convert more parts of Gnus from `gnus-define-keys' to `define-keymap'

	* lisp/gnus/spam.el (gnus-summary-mode-map):
	* lisp/gnus/gnus-topic.el (gnus-topic-mode-map):
	* lisp/gnus/gnus-sum.el (gnus-summary-mode-map):
	* lisp/gnus/gnus-srvr.el (gnus-server-mode-map):
	(gnus-server-mode-map):
	(gnus-browse-mode-map):
	* lisp/gnus/gnus-score.el (gnus-summary-score-map):
	* lisp/gnus/gnus-draft.el (gnus-draft-mode-map):
	* lisp/gnus/gnus-agent.el (gnus-agent-group-mode-map):
	(gnus-agent-summary-mode-map):
	(gnus-agent-server-mode-map):
	(gnus-category-mode-map): Convert from `gnus-define-keys' to
	`define-keymap'.

	* lisp/gnus/gnus.el: Define more commands.

2021-10-05  Stefan Kangas  <stefankangas@gmail.com>

	Do interactive mode tagging for proced.el

2021-10-05  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	63abe976ce (origin/emacs-28) Document minibuffer-default-prompt-forma...
	b5afbedc90 Backward compatibility option for 'nobreak-char-display'
	ea1b728a06 ; * lisp/dired.el: Fix typo.
	984eafeb98 Unbreak the build after Gnulib update
	5946370cd1 Check, whether an FUSE mount has been broken in Tramp
	90575a6c0c Disable 'nobreak-char-display' in Eldoc buffers
	570e2c9a17 Fix small error in comint-send-input
	fd7bb31412 Update documentation of search-whitespace-regexp
	1f4ced47a1 Fix cc-compat.el syntax error
	b431f54c1b Mention `seq-uniq' in `delete-dups' documentation
	0a7bab689c ; Minor stylistic fixes found by checkdoc
	e2861e2d08 ; * etc/NEWS: Fix typo.
	1a65d49931 Port recent Gnulib changes to MS-Windows
	68a256c892 Update from Gnulib
	63cb65dcce * Fix mh tests for native comp builds (bug#50975)
	e606cc6f40 * Fix `batch-native-compile' not to spawn a subprocess
	894dfe70da Fix native-compilation build from tarball on Cygwin
	2ce5e08058 Remove U+FE0F from script-representative-chars

	# Conflicts:
	#	etc/NEWS

2021-10-05  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	13f459b3ac ; Describe PROBLEMS with Unicode display on some TTYs
	7a98a62079 * test/README: Mention :nativecomp tag.

2021-10-05  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix recent "erts files" additions in ERT manual

	* doc/misc/ert.texi (erts files): Indent examples with spaces rather
	than tabs, since Texinfo treats tab characters as a single space;
	see (info "(texinfo) @example").  Fix typos/thinkos.

2021-10-05  Stefan Kangas  <stefankangas@gmail.com>

	Make 'mapconcat' argument 'separator' optional

	* src/fns.c (Fmapconcat): Make third 'separator' argument
	optional.  (Bug#50965)
	* doc/lispref/functions.texi (Mapping Functions): Update
	documentation for above change.
	* test/src/fns-tests.el (fns-tests-mapconcat): New test.

	* doc/misc/cl.texi (Obsolete Setf Customization): Don't use third
	mapconcat argument in example.
	* lisp/emacs-lisp/subr-x.el (string-join): Doc fix.

2021-10-05  Stefan Kangas  <stefankangas@gmail.com>

	Make two old function aliases obsolete

	* lisp/textmodes/bibtex.el (bibtex-find-crossref)
	(bibtex-find-entry): Make function aliases obsolete.  These were left
	behind when renaming functions, but never declared obsolete.

2021-10-05  Stefan Kangas  <stefankangas@gmail.com>

	Set advertised calling convention on make-face-* functions

	* lisp/faces.el (make-face-bold, make-face-unbold)
	(make-face-italic, make-face-unitalic, make-face-bold-italic):
	Use `advertised-calling-convention` to avoid promoting the third
	_noerror argument; it has been ignored since 1999.

2021-10-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Change the call convention for `defvar-keymap'

	* doc/lispref/keymaps.texi (Changing Key Bindings): Adjust
	documentation.

	* lisp/simple.el (special-mode-map):
	* lisp/net/shr.el (shr-map):
	* lisp/net/eww.el (eww-link-keymap):
	(eww-mode-map):
	(eww-submit-map):
	(eww-textarea-map):
	(eww-bookmark-mode-map):
	(eww-history-mode-map):
	(eww-buffers-mode-map):
	* lisp/gnus/message.el (message-mode-map):
	* lisp/gnus/gnus-html.el (gnus-html-image-map):
	* lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map):
	* lisp/gnus/gnus-dired.el (gnus-dired-mode-map):
	* lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map):
	Adjust usage of `defvar-keymap'.

	* lisp/subr.el (define-keymap, define-keymap--define): Change how
	these functions call each other.
	(defvar-keymap): Change interface to be more like `define-keymap'.

	* lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): Remove.
	(lisp-indent-function): Don't use it.

2021-10-05  Daniel Martín  <mardani29@yahoo.es>

	Update documentation about how M-x completes obsolete commands

	* doc/emacs/m-x.texi (M-x): Mention that Emacs offers completion for
	commands marked obsolete in the current version of Emacs (bug#51017).

2021-10-05  Miha Rihtaršič  <miha@kamnitnik.top>

	In term-mode, handle ANSI codes, specifying italic and other modes

	* etc/e/eterm-color.ti: Add new capabilities
	* lisp/term.el: New faces and variables to support new ANSI modes.
	(term-termcap-format): Add new capabilities
	(term-emulate-terminal): When saving cursor, additionally save the new
	variables.
	(term--handle-colors-list): Handle ANSI codes, specifying italic other
	modes.
	* test/lisp/term-tests.el (ansi-test-strings): Adjust tests.

2021-10-05  Miha Rihtaršič  <miha@kamnitnik.top>

	Add support for 256-color and 24bit ANSI colors in term-mode

	(term-ansi-face-already-done): Make obsolete
	(term--maybe-brighten-color): Remove
	(term--color-as-hex): New function
	(term-handle-colors-array): Make obsolete in favor of the new
	function 'term--handle-colors-list'.
	(term--handle-colors-list): New function, that can also handle ANSI
	codes 38 and 48.
	(term-handle-ansi-escape): Use it

	* test/lisp/term-tests.el (ansi-test-strings): Add tests for 256-color
	and 24bit ANSI colors

2021-10-05  Miha Rihtaršič  <miha@kamnitnik.top>

	Add support for 256-color and 24bit ANSI colors in ansi-color

	* lisp/ansi-color.el (ansi-color--code-as-hex): New function to
	convert from 256-color and 24-bit ANSI codes.
	(ansi-color--face-vec-face): Add support for ANSI color codes greater
	than 16
	(ansi-color--update-face-vec): Add support for ANSI codes 38 and 48
	which can specify 256-color and 24bit ANSI colors.

	* test/lisp/ansi-color-tests.el (ansi-color-tests--strings): Add tests
	for ANSI codes 38 and 34

2021-10-05  Miha Rihtaršič  <miha@kamnitnik.top>

	Optimize ansi-color.el

	(ansi-color-context-region):
	(ansi-color-context): Adjust doc string to the new format of
	ansi-color context.

	(ansi-color--find-face): Rename to ansi-color--face-vec-face
	(ansi-color--face-vec-face): Adjust to the new format ansi-color
	context.

	(ansi-color-filter-apply):
	(ansi-color-apply):
	(ansi-color-filter-region):
	(ansi-color-apply-on-region): Adjust to the new format of ansi-color
	context in order to speed these functions up.

	(ansi-color-apply-sequence): Make it obsolete.
	(ansi-color--update-face-vec): New function to handle the new format
	of ansi-color context.

	(ansi-color-get-face-1): Make obsolete as this function isn't used any
	more (bug#50806).

2021-10-05  Lars Ingebrigtsen  <larsi@gnus.org>

	Make `memory-report-object-size' work standalone

	* lisp/emacs-lisp/memory-report.el (memory-report--type-size):
	Default to nil so that the test in `memory-report-object-size' works.
	(memory-report--set-size): Initialize
	memory-report-object-size.

2021-10-04  Stefan Kangas  <stefankangas@gmail.com>

	Use format-prompt for many more prompts

	* lisp/bookmark.el (bookmark-completing-read):
	* lisp/calc/calc-prog.el (calc-user-define-formula):
	* lisp/calc/calc-store.el (calc-permanent-variable):
	* lisp/calc/calc-units.el (calc-convert-units)
	(calc-convert-exact-units, calc-convert-temperature):
	* lisp/cedet/semantic/complete.el
	(semantic-complete-read-tag-engine):
	* lisp/cus-edit.el (customize-read-group):
	* lisp/dired-aux.el (dired-do-chxxx):
	* lisp/dired-x.el (dired-mark-unmarked-files):
	* lisp/emacs-lisp/debug.el (cancel-debug-on-entry)
	(cancel-debug-on-variable-change):
	* lisp/emacs-lisp/edebug.el (edebug-cancel-on-entry)
	(edebug-remove-instrumentation):
	* lisp/epa.el (epa-read-file-name, epa-export-keys):
	* lisp/faces.el (read-face-name):
	* lisp/format.el (format-decode-buffer, format-decode-region):
	* lisp/gnus/gnus-art.el (gnus-read-save-file-name):
	* lisp/gnus/gnus-util.el (gnus-completing-read):
	* lisp/gnus/message.el (message-check-news-header-syntax):
	* lisp/info.el (Info-follow-reference):
	* lisp/international/mule-diag.el (describe-font)
	(describe-fontset):
	* lisp/international/quail.el (quail-show-keyboard-layout):
	* lisp/language/cyril-util.el
	(standard-display-cyrillic-translit):
	* lisp/mail/rmailkwd.el (rmail-read-label):
	* lisp/mail/rmailmm.el (rmail-mime-save):
	* lisp/mail/rmailout.el (rmail-output-read-file-name):
	* lisp/man.el (Man-goto-section, Man-follow-manual-reference):
	* lisp/menu-bar.el (emacs-index--prompt):
	* lisp/net/ange-ftp.el (ange-ftp-get-passwd):
	* lisp/proced.el (proced-send-signal):
	* lisp/progmodes/cpp.el (cpp-choose-face):
	* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
	* lisp/progmodes/etags.el (visit-tags-table)
	(visit-tags-table-buffer):
	* lisp/progmodes/grep.el (grep-read-files):
	* lisp/progmodes/hideif.el (hide-ifdef-define):
	* lisp/progmodes/pascal.el (pascal-goto-defun):
	* lisp/progmodes/prolog.el (prolog-read-predicate):
	* lisp/progmodes/sql.el (sql-get-login-ext):
	* lisp/ses.el (ses-define-local-printer):
	* lisp/textmodes/artist.el (artist-figlet-choose-font):
	* lisp/textmodes/tex-mode.el (tex-compile):
	* lisp/vc/diff.el (diff):
	* lisp/vc/ediff-ptch.el (ediff-prompt-for-patch-file):
	* lisp/vc/ediff-util.el (ediff-read-file-name):
	* lisp/vc/pcvs.el (cvs-mode-mark-on-state):
	* lisp/vc/vc.el (vc-diff-build-argument-list-internal)
	(vc-revision-other-window, vc-retrieve-tag):
	* lisp/wid-edit.el: Prefer format-prompt unconditionally.

	* lisp/org/org-capture.el (org-capture-fill-template):
	* lisp/org/org-refile.el (org-refile-get-location):
	* lisp/progmodes/python.el (python-eldoc-at-point):
	* lisp/progmodes/verilog-mode.el (verilog-surelint-off)
	(verilog-goto-defun):
	* lisp/progmodes/xref.el (xref--read-identifier): Prefer format-prompt
	when it is fboundp.

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix syntax error in define-keymap doc string

	* lisp/subr.el (define-keymap): Fix syntax error in (fn.

2021-10-04  Robert Pluim  <rpluim@gmail.com>

	Fix problem with 'vertical-motion' and emoji

	* src/font.c (font_range): Pass correct position to
	font_for_char (Bug#51012).

2021-10-04  Mattias Engdegård  <mattiase@acm.org>

	Run ERT tests with `lexical-binding` bound to `t`

	* lisp/emacs-lisp/ert.el (ert-deftest, ert--run-test-internal):
	Use t rather than the ambient file value for `lexical-binding` to
	avoid bad lexbind coverage by mistake.

2021-10-04  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	95a0227ff7 (origin/emacs-28) Avoid exiting when outputting error mess...
	b7ae0232be ; * src/Makefile.in (../native-lisp): More tweaks of the r...
	6e79f8a444 Remove implemented emoji items
	00bcba5125 project.el NEWS tagging
	704a39f508 thing-at-mouse NEWS tagging
	3a9d5f04fb Mention ffap-file-name-with-spaces in the ffap doc strin

	# Conflicts:
	#	etc/NEWS

2021-10-04  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	3b8dda6c90 Add safety check in x_menu_show
	e1fb731393 Tweak x_connection_closed when I/O error
	595e506c82 * lisp/erc/erc.el (erc-user-mode): Set "+i" by default.
	d00f3d4c05 Port unused decls to C2x
	317eb2d5b5 Improve structure of TODO
	c0793cd9de Don't use some obsolete names in documentation
	87153cc915 Tweak x_hide_tip for consistency
	7e871dcd27 Remove encode_terminal_code UNINITs
	2a00634880 Port pdumper.c maybe_unused to C2x
	6d9b3c0eaa Port systhreads.h to C2x
	fd274d7d24 Pacify -Wanalyzer-null-argument in lisp_malloc
	cc3fc94f09 Pacify gcc 11.2.1 -Wanalyzer-null-argument
	d3a832a61a Simplify hack-read-symbol-shorthands again (bug#50946)
	4831426158 Fix recipe for 'native-lisp' directory
	0bb42ef803 ; * lisp/time-stamp.el (time-stamp-format): Doc string.
	732c70a0d9 Simplify socket symlink-attack checking
	fc32a3bd95 ; * doc/lispref/files.texi (Reading from Files): Fix wording.
	3cc77aa976 Clarify (elisp) insert-file-contents with BEG or END not o...
	5deeb0947d * src/Makefile.in: Simplify conditionals.
	121a5abeae Move context-menu selection items Defun/List/Symbol to pro...
	0c341e6e84 * lisp/tab-bar.el (tab-bar-detach-tab): Handle frame selec...
	931a7276c0 * lisp/tab-line.el (tab-line-format): Add face-modified to...
	3863919a00 Fix unmounting in Tramp
	7a6d34cd1f * etc/themes/light-blue-theme.el: Add "Maintainer: emacs-d...
	c1b1e1f545 Define HAVE_NATIVE_COMP in src/Makefile.in
	137fa2d716 Rename elisp-shorthands to read-symbol-shorthands
	e6fbc45b7b Font-lock shorthands in elisp-mode for quick visual recogn...
	17e6f3bee5 ; Fix last change in tramp-sshfs.el
	3dae1e33d1 Suppress superfluous error messages in Tramp
	b228ec9fab Fix reading the tail of a file in shorthands.el
	7fb2789509 Fix substitution of pretty quotes in code in easy-mmode
	b47d7ce1b8 Fix agent directory deletion
	b1a8a66fb0 ; * etc/TODO: Fix previous commit; delete the right thing.
	6c01a21365 Clarify the purpose of internal--format-docstring-line
	55dadbc57e * lisp/net/dictionary.el (context-menu-dictionary): Move m...
	bb209cd5ab Update to Org 9.5-30-g10dc9d
	4341e79a5f Remove bogus ":safe t" custom properties
	b6f6b593c6 Fix 'apropos-compact-layout'
	62d6cecfcd Remove bogus ":safe nil" custom properties
	f9111d8784 The safe-local-variable property is a function (bug#50944)
	3dc094abee ; Some minor tweaks to TODO
	a5b4356d37 Revert "; * etc/TODO: Move elpa.gnu.org items to the end."
	7bc0cee115 Revert "* etc/TODO: Rearrange to start with "Simple tasks"."
	3489471417 Fix selection of fonts for Arabic on Posix platforms
	13e5943386 ; Fix a typo in a doc string
	bd60fca2fa Fix ox-koma-letter compilation warnings
	340e527bed Preload paren.el
	a9052248da Improve documentation of 'shift-select-mode'
	d505971894 ; Standardize some license headers
	9307889d68 Simplify shorthand injection (bug#50946)
	5c77cc9584 ; * admin/release-branch.txt: Tweak previous.

	# Conflicts:
	#	etc/NEWS
	#	test/lisp/subr-tests.el

2021-10-04  Eli Zaretskii  <eliz@gnu.org>

	Revert "Fix problem with outputting error messages while dumping Emacs"

	This reverts commit 1428962590e216163f079ff838f39667383aec56.
	A better fix was committed to the emacs-28 branch and will be
	merged to master.

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove :copy from define-keymap

	* doc/lispref/keymaps.texi (Changing Key Bindings): Update
	documentation.

	* lisp/subr.el (define-keymap):
	(define-keymap--define): Remove :copy from the signature.

	* lisp/net/eww.el (eww-link-keymap): Use :parent.

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix gnus-group-mode-map breakage from previous patch

	* lisp/gnus/gnus-group.el (:keymap): Restore gnus-group-list-map
	key strokes to the correct location.

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Document with-memoization

	* doc/misc/cl.texi (Modify Macros): Document with-memoization.

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new command 'ensure-empty-lines'.

	* doc/lispref/text.texi (Commands for Insertion): Document it.

	* lisp/emacs-lisp/subr-x.el (ensure-empty-lines): New command.

2021-10-04  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/gitlab-ci.yml (test-native-comp-speed0): Fix thinko.

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new user option 'translate-upper-case-key-bindings'

	* doc/lispref/commands.texi (Key Sequence Input): Document it.

	* lisp/cus-start.el (standard): defcustom it.

	* src/keyboard.c (read_key_sequence): Use it.
	(syms_of_keyboard): New variable 'translate-upper-case-key-bindings'.

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Remove MozRepl stuff from js.el

	* lisp/progmodes/js.el: Remove all the mozrepl stuff from js.el
	(bug#40771).

2021-10-04  Carlos Pita  <carlosjosepita@gmail.com>

	Avoid a warning in python-eldoc-setup-code

	* lisp/progmodes/python.el (python-eldoc-setup-code): Avoid a
	deprecation warning about formatargspec (bug#50996).

2021-10-04  Gregory Heytings  <gregory@heytings.org>

	Fix problem with outputting error messages while dumping Emacs

	* src/print.c (print_error_message): Don't call
	substitute-command-keys while bootstrapping.

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow computing :doc-spec info-look elements at run time

	* lisp/info-look.el (info-lookup--expand-info): New function.
	(:mode, info-lookup-add-help): Adjust doc string.
	(info-lookup-add-help*): Allow adding a dynamic expansion.
	(info-lookup): Expand.
	(:mode): Use a dynamic expansion for Python to postpone the lookup.
	(info-complete): Expand.

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Update NEWS for 'define-keymap'

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Convert some keymaps to defvar-keymap

	* lisp/simple.el (special-mode-map):
	* lisp/net/shr.el (shr-map):
	* lisp/net/eww.el (eww-link-keymap):
	(eww-mode-map):
	(eww-submit-map):
	(eww-bookmark-mode-map):
	(eww-history-mode-map):
	(eww-buffers-mode-map):
	* lisp/gnus/message.el (message-mode-map): Use defvar-keymap.

	* lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map):
	* lisp/gnus/gnus-dired.el (gnus-dired-mode-map):
	* lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map): Use
	defvar-keymap.

	* lisp/gnus/gnus-group.el (gnus-group-mode-map): Use define-keymap.

	* lisp/gnus/gnus-html.el (gnus-html-image-map): Use defvar-keymap.

	* lisp/gnus/gnus.el: Autoload gnus-score-edit-all-score.

2021-10-04  Lars Ingebrigtsen  <larsi@gnus.org>

	Add 'define-keymap' and 'defvar-keymap'

	* doc/lispref/keymaps.texi (Changing Key Bindings): Document
	define-keymap and defvar-keymap.

	* lisp/subr.el (define-keymap): New function.
	(define-keymap--define): New function.
	(defvar-keymap): New macro.

	* lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): New
	function.
	(lisp-indent-function): Use it to indent defvar-keymap.

2021-10-03  Michael Albinus  <michael.albinus@gmx.de>

	* test/infra/gitlab-ci.yml (.native-comp-template): Revert change.

2021-10-03  Michael Albinus  <michael.albinus@gmx.de>

	Improve native compilation on emba

	* test/infra/Dockerfile.emba (emacs-native-comp)
	(emacs-native-comp-speed1, emacs-native-comp-speed2): New stages.
	(emacs-native-comp-speed0): Adapt.

	* test/infra/gitlab-ci.yml (.build-template): Add 'needs: []'.
	(.native-comp-template): Use 'only:' instead of 'rules:'.
	(build-native-comp-speed0): Rename from 'build-native-bootstrap-speed0'.
	(build-native-comp-speed1, build-native-comp-speed2)
	(test-native-comp-speed0): New jobs.

2021-10-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Obsolete the light-blue theme

	* etc/themes/light-blue-theme.el (light-blue): Make theme obsolete
	since it's not maintained and seems to serve no particular use
	case (bug#47047).

2021-10-03  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow obsoleting themes

	* lisp/cus-theme.el (customize-themes): Don't list obsolete themes.

	* lisp/custom.el (load-theme): Issue a warning if the theme is
	obsolete (bug#47047).

2021-10-02  Stefan Kangas  <stefankangas@gmail.com>

	Expand internal--format-docstring-line test

	* test/lisp/subr-tests.el (subr-test-internal--format-docstring-line):
	Check for error on newline.

2021-10-02  Stefan Kangas  <stefankangas@gmail.com>

	Support 'strong-italic' facemenu face in html-mode

	* lisp/textmodes/sgml-mode.el (sgml-face-tag-alist)
	(sgml-mode-facemenu-add-face-function, html-face-tag-alist):
	Support 'strong-italic' facemenu face.

2021-10-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnus-icalendar: Missing attendees are not REQ-PARTICIPANT

	* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--get-attendee-names)
	(gnus-icalendar-event-from-ical): Do not default to REQ-PARTICIPANT
	if the user was not found as an attendee.
	* test/lisp/gnus/gnus-icalendar-tests.el
	(gnus-icalendary-weekly-byday): Remove the ROLE property to test
	that it correctly defaults to REQ-PARTICIPANT.  The case where the
	user is not listed is covered by gnus-icalendar-parse already
	(bug#50749).

2021-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-generic.el: Fix test/lisp/loadhist-tests

	Revert 2fcd34f202 which was redundant anyway since e165bf3d4
	had fixed it in a better way anyway (a way which doesn't litter the
	`load-history`).

2021-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher): Fix regression

2021-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp/emacs-lisp/subr-x.el (with-memoization): New macro

	Extracted from `cl-generic.el`.

	* lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher)
	(cl--generic-build-combined-method, cl-generic-generalizers): Use it.
	(cl--generic-with-memoization): Delete.

2021-10-01  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	626696c3c8 (origin/emacs-28) * doc/lispref/control.texi (pcase Macro)...
	2895cb8d49 ; * lisp/time-stamp.el: Fix wording in some documentation ...
	1e79c9e9c0 ; * admin/release-branch.txt: Small edits.
	f1f57a541e Fix some custom types

2021-10-01  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	5ee5a90213 (origin/emacs-28) ; Fix oddities in etc/NEWS

	# Conflicts:
	#	etc/NEWS

2021-10-01  Glenn Morris  <rgm@gnu.org>

	Merge from origin/emacs-28

	ad0798a395 * etc/TODO: Add interactive mode tagging.
	879ef5b19a * etc/TODO: Rearrange to start with "Simple tasks".
	d73f0e96a7 ; * etc/TODO: Move elpa.gnu.org items to the end.
	7cf1229706 ; * etc/TODO: Mention a relevant bug report.
	f733b909ff * etc/TODO: Remove outdated item.  (Bug#50904)
	94c247d659 ; Oops, fix up last commit
	88378acbfc Rename arguments of ERC's '/whois' and simplify doc string
	205eb7f801 ; s/class/type
	86da812afb Migrate Xref off EIEIO
	5c73dfcbcb * admin/release-branch.txt: New file.
	f060d1c9a4 * lisp/dired.el (dired-omit-mode): Declare, to avoid compi...

	# Conflicts:
	#	etc/NEWS

2021-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix one-clause movement in erts-mode--goto-start-of-test

	* lisp/progmodes/erts-mode.el (erts-mode--goto-start-of-test): Fix
	so this works in one-clause tests.

2021-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Fix text in erts-run-test message

	* lisp/progmodes/erts-mode.el (erts-run-test): New command and
	keystroke.

2021-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new command erts-run-test

	* lisp/progmodes/erts-mode.el (erts-run-test): New command and
	keystroke.

2021-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Refactor out ert-test--erts-test

	* lisp/emacs-lisp/ert.el (ert-test--erts-test): Refactor out the
	bulk of the function for easier reuse.

2021-10-01  Peter Münster  <pm@a16n.net>

	New command for unmarking all images in image-dired

	* lisp/image-dired.el (image-dired-unmark-all-marks): Remove marks from
	Dired buffer and update the view of the thumbnails (bug#50920).

2021-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	default role for attendees is REQ-PARTICIPANT

	* lisp/gnus/gnus-icalendar.el
	(gnus-icalendar-event--get-attendee-names,
	gnus-icalendar-event-from-ical): When the ROLE property
	is missing from an ATTENDEE line, follow RFC5546 and default
	to REQ-PARTICIPANT.

2021-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	allow party crashers to respond to ical events

	If an ical invitation is sent to a mailing list, the recipients
	are probably not listed as attendees.  However there are
	legitimate situations where these unlisted (or indirectly listed)
	recipients are still expected to respond.  RFC5546 allows that,
	calling those respondents "party crashers".

	* lisp/gnus/gnus-icalendar.el
	(gnus-icalendar-event:inline-reply-buttons): Display the response
	buttons even if the user was not found in the list of attendees,
	but change the labels of those buttons to make clear they are
	not explicitly invited.
	(gnus-icalendar-event--build-reply-event-body): Add an attendee
	line for the user in case one was not found.

2021-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	reply to the organizer of an ical event

	RFC5546 specifies that participant status (accepted, tentative,
	declined) should be sent to the organizer of the event.  That
	organizer is not necessarily the sender of the invitation; for
	instance Google Calendar uses custom email addresses to receive these
	notifications.

	* lisp/gnus/gnus-icalendar.el (gnus-icalendar-send-buffer-by-mail):
	Replace the default recipient of the reply by the organizer of the
	event.
	(gnus-icalendar-reply) Pass that organizer to the previous function.

2021-10-01  akater  <nuclearspace@gmail.com>

	Restore the flet indentation fixes

	* lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): New
	function.
	(lisp-indent-function): Use it to fix cl-flet indentation.

2021-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add a new command to mark a region as a test in erts-mode

	* lisp/progmodes/erts-mode.el (erts-mode--in-test-p): Fix test.
	(erts-tag-region): New command and keystroke.

2021-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Allow skipping erts tests

	* doc/misc/ert.texi (erts files): Document it.

	* lisp/emacs-lisp/ert.el (ert-test-erts-file): Allow skipping tests.

2021-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add more indentation tests for Emacs Lisp mode

2021-10-01  Lars Ingebrigtsen  <larsi@gnus.org>

	Add new functionality to write buffer-based tests

	* doc/misc/ert.texi (erts files): New node.

	* lisp/files.el (auto-mode-alist): Map .erts to erts-mode.

	* lisp/emacs-lisp/ert.el (ert-test-erts-file): New function.

	* lisp/emacs-lisp/ert.el (ert--erts-specifications)
	(ert--erts-unquote): Helper functions.

	* lisp/progmodes/erts-mode.el: New mode and file.

2021-10-01  Ihor Radchenko  <yantar92@gmail.com>

	Save position in mark ring before jumping to definition

	* lisp/help-mode.el (help-function-def--button-function): Current
	point is saved in the mark ring before jumping to definition.

2021-09-30  Eli Zaretskii  <eliz@gnu.org>

	Update emacs-module sources for Emacs 29

	* configure.ac (module_env_snippet_29): New.

	* src/module-env-28.h: Remove the comment with instructions for
	the next release.
	* src/module-env-29.h: New file.

2021-09-30  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version to 29.0.50

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp:
	* src/msdos.c (internal_terminal_init):
	* etc/refcards/ru-refcard.tex:
	* etc/NEWS: Bump Emacs version to 29.0.50.
	* etc/NEWS.28: New file.

	* lisp/cus-edit.el (customize-changed-options-previous-release):
	Update the reference version of Emacs.

2021-09-05  João Távora  <joaotavora@gmail.com>

	Fixup last commit

	Per https://github.com/joaotavora/eglot/issues/726.

	I'm still not entirely convinced using all-completion here is a good
	idea.  As usual the completion list we get from the server is
	pre-filtered to whatever the server wishes.  Letting the completion
	style do its own filtering (most completion styles use
	completion-regexp-list and all-completions themselves) is completely
	useless here.

	Let's hope it's not harmful.

	* eglot.el (eglot-completion-at-point): Fix all-completions call

2021-09-05  João Távora  <joaotavora@gmail.com>

	Respect completion-regexp-alist in eglot's completion table

	See GitHub discussion https://github.com/joaotavora/eglot/issues/726

	Suggested-by: Felicián Németh <felician.nemeth@gmail.com>
	Suggested-by: JD Smith

	* eglot.el (eglot-completion-at-point): use all-completions.

2021-09-01  João Távora  <joaotavora@gmail.com>

	Fix typo in user-visible eglot-ignored-server-capabilities

	The name with the typo, eglot-ignored-server-capabilites, is still
	supported.

	Per https://github.com/joaotavora/eglot/issues/724.

	* NEWS.md: Mention change

	* eglot.el (eglot-ignored-server-capabilities): New defcustom.

2021-08-17  João Távora  <joaotavora@gmail.com>

	Fall back to prompting user if eglot-alternatives fails

	* eglot.el (eglot-alternatives): Don't error in interactive case.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/719

2021-08-17  João Távora  <joaotavora@gmail.com>

	Let eglot-flymake-backend be in flymake-d-functions even if eglot off

	This is useful when using  eglot-stay-out-of and a pattern like:

	   (defun my/js-mode-hook ()
	     (add-hook 'flymake-diagnostic-functions 'some-eslint-backend nil t))
	     (setq-local eglot-stay-out-of '(flymake))
	     (add-hook 'flymake-diagnostic-functions 'eglot-flymake-backend nil t))

	   (add-hook 'js-mode-hook 'my/js-mode-hook)

	Then, _both_ backends will run unconditionally, but Eglot backend only
	actually reports diagnostics if Eglot is on.

	* eglot.el (eglot-flymake-backend): If buffer isn't being managed
	by Eglot, behave as a noop.

2021-08-16  Yuuki Harano  <masm+github@masm11.me>

	Make PGTK's additions conditioinal

	* src/.gdbinit: Make them enclosed in condition.
	* src/alloc.c: Define defined_HAVE_PGTK and make it externally visible.

2021-08-16  Yuuki Harano  <masm+github@masm11.me>

	* lisp/term/pgtk-win.el (pgtk-preedit-text): Write doc string

	* lisp/term/pgtk-win.el (pgtk-face-at-pos): Remove unused function

2021-08-15  Yuuki Harano  <masm+github@masm11.me>

	* lisp/term/pgtk-win.el: Remove some font stuff

	pgtk-popup-font-panel does not exist.
	pgtk-respond-to-change-font is not used.

2021-08-15  Yuuki Harano  <masm+github@masm11.me>

	* lisp/term/pgtk-win.el (pgtk-pop-up-frames): Remove since it is not used

	* configure.ac: Add a notice to --with-pgtk

2021-08-15  Yuuki Harano  <masm+github@masm11.me>

	* configure.ac: Remove imagemagick special support code for pgtk

	When emacs did not support imagemagick 7 and I had imagemagick both 6 and 7,
	I wanted to use imagemagick 6.
	The code is not needed any more.

2021-07-21  Brian Leung  <bkleung89@gmail.com>
	    João Távora  <joaotavora@gmail.com

	Add support for locationlink

	Fix https://github.com/joaotavora/eglot/issues/711.

	LocationLink was added in version 3.14 of the protocol and is
	sometimes used in lieu of Location for definition- and
	reference-related requests.

	* eglot.el (eglot--lsp-interface-alist): Update with LocationLink.
	(eglot-client-capabilities): Advertise
	textDocument.{definition,declaration,implementation,typeDefinition}.linkSupport.
	(eglot--lsp-xrefs-for-method): Accept LocationLinks.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/712

2021-06-18  Yuuki Harano  <masm+github@masm11.me>

	Fix a frame created without scroll/menu/toolbar is empty

	* src/pgtkterm.c (size_allocate): Get frame pointer through user_data.
	(pgtk_set_event_handler): Pass it.

2021-06-18  Yuuki Harano  <masm+github@masm11.me>

	Revert "Revert "* src/pgtkfns.c: Do not show an empty frame prematurely""

	This reverts commit b0d688673b0be774c3735eef304f69568bd59bcf.

	The commit 83c35b8 causes the empty frame bug, so I reverted.
	Now, I debugged so re-apply the commit.

2021-06-13  João Távora  <joaotavora@gmail.com>

	Transpose order of "pylsp" and "pyls" alternatives

	When operating remotely, searching for an executable that don't exist
	takes longer than usual.  Better to put the most likely server first
	in the list to minimize the slowdown.

	* eglot.el (eglot-server-programs): Transpose python mode alternatives

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/703

2021-06-13  João Távora  <joaotavora@gmail.com>

	Don't call eglot--executable-find more than needed

	* eglot.el (eglot-alternatives): Complexify.
	(eglot--guess-contact): No need to 'executable-find' if path
	absolute.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/703

2021-06-13  Yuuki Harano  <masm+github@masm11.me>

	Revert "* src/pgtkfns.c: Do not show an empty frame prematurely"

	This reverts commit 83c35b86da233870231e30d114ffa4640eb10081.

2021-06-13  Yuuki Harano  <masm+github@masm11.me>

	Revert "; * src/pgtkfns.c (Fx_create_frame): Fix coding style"

	This reverts commit 4b91168c657e3476b8a0a3f539ee6bcb1b71e3d5.

2021-06-13  Jindřich Makovička  <makovick@gmail.com>

	* src/pgtkfns.c: Do not show an empty frame prematurely

	Set only the child widgets visible, leave the outer window
	to pgtk_make_frame_visible .

2021-06-11  Liu Hui  <ilupin@users.noreply.github.com>  (tiny change)

	Consider tramp in eglot-alternatives

	* eglot.el (eglot-alternatives): Use eglot--executable-find.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/702

2021-06-08  Jindřich Makovička  <makovick@gmail.com>

	* src/pgtkselect.c: Avoid Glib assertion warnings

	Do not call g_object_get_qdata, when the clipboard has no owner,
	and obj is NULL. Just return Qnil immediately.

2021-06-05  Yuuki Harano  <masm+github@masm11.me>

	Support frame-scale-factor on pgtk frames

	* src/pgtkfns.c (pgtk_frame_scale_factor): New function to get frame
	scale factor.
	* src/frame.h: Call it when a pgtk frame.
	* src/pgtkterm.h: Add the declaration.

2021-05-30  Jindřich Makovička  <makovick@gmail.com>

	* src/pgtkterm.c: Honor system DPI settings

2021-05-29  Yuuki Harano  <masm+github@masm11.me>

	Disable hyper key when super and hyper conflict

	* src/pgtkterm.c (x_find_modifier_meanings): If super_mod_mask and
	hyper_mod_mask are equal, then disable hyper.

2021-05-26  João Távora  <joaotavora@gmail.com>

	Use project-files to know which directory watchers to skip

	The directory-finding logic is probably a bit slower than using
	eglot--directories-recursively, but since it honors `.gitignores` and
	ignores more directories it's much faster overall.  And guaranteed to
	create less watchers.

	Thanks to Dmitry Gutov <dgutov@yandex.ru> for the idea.

	* eglot.el (eglot--directories-recursively): Remove.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/697

2021-05-26  João Távora  <joaotavora@gmail.com>

	Hard code an exception to "node_modules" directories

	* eglot.el (eglot--directories-recursively): Fix.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/697
	GitHub-reference: per https://github.com/joaotavora/eglot/issues/645

2021-05-26  João Távora  <joaotavora@gmail.com>

	Again speed up directory watching

	Previously, given a number of globs, Eglot would try to place system
	watchers only in those subdirectories that could potentially be
	matched by a glob.  This meant traversing the whole tree, which could
	be impractical.  Just place watchers in every subdirectory of the
	project (you may run out of watchers).

	* eglot.el (eglot-register-capability): Simplify.
	(eglot--files-recursively): Delete.
	(eglot--directories-recursively): Fix.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/697
	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/645

2021-05-22  João Távora  <joaotavora@gmail.com>

	Support multiple servers out-of-box for same mode

	Also per https://github.com/joaotavora/eglot/issues/537.

	* eglot.el (eglot-alternatives): new helper.
	(eglot-server-programs): Use it.  Use clangd and pylsp.

	* NEWS.md: Mention feature.

	* README.md (Connecting to a server): Mention pylsp and clangd.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/688

2021-05-22  Augusto Stoffel  <arstoffel@gmail.com>

	Allow staying out of flymake-mode, eldoc-mode

	* eglot.el (eglot--managed-mode): don't enable flymake or eldoc when
	those symbols belong to eglot-stay-out-of.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/671

2021-05-22  Colin Woodbury  <colin@fosskers.ca>

	* src/frame.c (Fframep): Update framep docstring

2021-05-19  Yuuki Harano  <masm+github@masm11.me>

	Fix compile error when PGTK_DEBUG is enabled

	* src/pgtkterm.c (pgtk_set_window_size): Remove "pixelwise" arg,
	which is already non-existent.

2021-05-19  Yuuki Harano  <masm+github@masm11.me>

	* src/image.c: Fix compile error related xpm in image.c

	Use the same code as NS.

2021-05-17  Troy Hinckley  <t.macman@gmail.com>

	Fix tests and documentation for hook

	Auto detect mode suffix in hook keyword

2021-05-16  Michael Livshin  <mlivshin@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Manage cross-referenced files outside project in same server

	Close https://github.com/joaotavora/eglot/issues/686, Close https://github.com/joaotavora/eglot/issues/695.


	* eglot.el (eglot-extend-to-xref): new defcustom, default to
	nil.
	(eglot--servers-by-xrefed-file): new hash table, mapping file names
	to servers.
	(eglot--managed-mode): use eglot-current-server, instead of
	eglot--cached-server directly.
	(eglot--current-server-or-lose): ditto.
	(eglot--maybe-activate-editing-mode): ditto.
	(eglot-current-server): move all cached-server update logic here -- if
	eglot--cached-server is nil, try to find it using current project or
	(optionally) xref location.
	(eglot--xref-make-match): record the xref location.

	* README.md (Customization): Mention new defcustom.

	* NEWS.md: Mention new feature

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/76

2021-05-15  Yuuki Harano  <masm+github@masm11.me>

	Revert "Update texts while busy"

	This reverts commit 8a649cba44cc637b5326cee9fe3febc55c653719.
	Because the position of the initial frame is not desired, unless
	initial-frame-alist is set.

2021-05-15  Yuuki Harano  <masm+github@masm11.me>

	Update texts while busy

	Pgtk didn't update text and C-g didn't take effect while it is busy.
	By timer interrupts, we can call pgtk_read_socket, and update texts
	and handle C-g.

	* src/pgtkterm.c (start_timer): New function to start timer.
	(pgtk_show_hourglass): Remove code to start timer.
	(pgtk_hide_hourglass): Remove code to stop timer.
	(pgtk_term_init): Call start_timer().

2021-05-14  Yuuki Harano  <masm+github@masm11.me>

	Create a variable to enable selection on multi display

	* src/pgtkselect.c (pgtk_selection_usable): If it is true, always
	returns true.
	(syms_of_pgtkselect): New bool variable.

2021-05-13  Yuuki Harano  <masm+github@masm11.me>

	Treat all the wayland connection as the same display

	On Wayland,
	even if without WAYLAND_DISPLAY, --display DISPLAY works, but
	gdk_display_get_name() always return "wayland-0", which may be
	different from DISPLAY.
	If with WAYLAND_DISPLAY, then it always returns WAYLAND_DISPLAY.
	So pgtk emacs is confused and enter multi display environment.
	To workaround this situation, treat all the wayland-* as the same
	display.

	* src/pgtkfns.c (is_wayland_display): New function to decide it is a
	wayland connection.
	(pgtk_display_info_for_name): If both are wayland connection, then
	they are the same display.

2021-05-13  Jim Porter  <itsjimporter@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Correct path/uri when using tramp from ms windows


	* eglot.el (eglot--connect): Ensure drive letter doesn't sneak into
	rootPath.  (eglot--path-to-uri): Only add a leading "/" for local MS
	Windows paths. (eglot--uri-to-path): Only remove leading "/" from
	local MS Windows paths.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/679

2021-05-13  João Távora  <joaotavora@gmail.com>

	Provide context for finer project-find-functions

	* eglot.el (eglot--guess-contact): Use eglot--current-project.
	(eglot): Adjust docstring.
	(eglot-lsp-context): New variable.
	(eglot--current-project): New helper.
	(eglot--maybe-activate-editing-mode, eglot--eclipse-jdt-contact):
	Use eglot--current-project.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/687

2021-05-12  Jeff Walsh  <fejfighter@gmail.com>

	* src/pgtkterm.c remove duplicated code

	* src/pgtkterm.c (pgtk_update_window_begin):
	(pgtk_update_window_end):
	(pgtk_redisplay_interface): Remove duplicate code and default to the
	generic gui_update_window_begin/end implementations

2021-05-10  Yuuki Harano  <masm+github@masm11.me>

	Fix frame size shrinking when turning fringe/scrollbars on/off

	In 66a36f1, I keeped passing text size by mistake.

	* src/pgtkterm.c (pgtk_set_window_size): Don't use
	FRAME_PIXEL_TO_TEXT_WIDTH/HEIGHT to pass pixel size.

2021-05-09  Yuuki Harano  <masm+github@masm11.me>

	Fix pgtk_make_frame_visible doesn't work

	* src/pgtkterm.c (pgtk_wait_for_map_event): New function to wait for
	map events. The content is moved from pgtk_make_frame_visible.
	(pgtk_make_frame_visible): Call pgtk_wait_for_map_event, instead of
	process here directly.
	(pgtk_make_frame_invisible): Call pgtk_wait_for_map_event to wait
	for multiple map events.

2021-05-08  Yuuki Harano  <masm+github@masm11.me>

	* src/pgtkmenu.c (show_help_event): Let emacs not show menu tooltips

2021-05-08  Yuuki Harano  <masm+github@masm11.me>

	Entrust Gtk with handling tooltips

	Previously, tooltips for menu items are below the menu.
	To solve it, set tooltip text on menu items in advance, and entrust
	gtk with handling tooltips.

	* src/gtkutil.c (xg_show_tooltip): New function for pgtk to set
	tooltip text on the widget.
	(xg_hide_tooltip): New function for pgtk to clear tooltip text on the
	widget.
	(xg_create_frame_widgets): Don't set initial tooltips text, and don't
	use qttip_cb.
	(xg_create_frame_outer_widgets): Ditto.
	(make_menu_item): Set tooltip text on the menu item.
	* src/gtkutil.h: New declaration of xg_show_tooltip for pgtk.
	* src/pgtkfns.c (Fx_show_tip): Calls xg_show_tooltip, and always ok.

2021-04-30  Steve Purcell  <steve@sanityinc.com>
	    João Távora  <joaotavora@gmail.com>

	Fix emacs 28 warning by avoiding positional args in define-minor-mode

	* eglot.el (eglot--managed-mode): Avoid positional args.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/685

2021-04-29  Steve Purcell  <steve@sanityinc.com>
	    João Távora  <joaotavora@gmail.com>

	Allow lsp languageid to be overridden via eglot-server-programs

	Close https://github.com/joaotavora/eglot/issues/678. Per https://github.com/joaotavora/eglot/issues/677

	* eglot-tests.el (eglot--guessing-contact): Add
	GUESSED-LANG-ID-SYM param.
	(eglot-server-programs-guess-lang): New test.

	* eglot.el (eglot-server-programs): Augment entries for caml-mode
	and tuareg-mode. Enhance docstring.
	(eglot--lookup-mode): New helper.
	(eglot--guess-contact): Call eglot--lookup-mode.
	(eglot, eglot-reconnect): Pass language-id to eglot--connect
	(eglot--connect): Receive LANGUAGE-ID
	(eglot--TextDocumentItem): Simplify.  Use
	`eglot--current-server-or-lose'

	* README.md (Handling quirky servers): Mention new feature.

2021-04-28  Augusto Stoffel  <arstoffel@gmail.com>

	Add a completion-category-defaults entry

	Setting completion-styles buffer-locally is harder to customize and
	can break some completion UIs.

	Emacs bughttps://github.com/joaotavora/eglot/issues/48073

	* eglot.el: Add a completion-category-defaults entry, if applicable.
	(eglot--managed-mode): Don't set `completion-styles'
	(eglot-completion-at-point): Add style metadata to
	completion table.

2021-04-25  Steve Purcell  <steve@sanityinc.com>

	Switch default langserver for ocaml to ocamllsp

	The repo for ocaml-language-server has been archived and inactive
	for quite some time:

	   https://github.com/ocaml-lsp/ocaml-language-server

	Meanwhile, ocaml-lsp is the generally-preferred option, and is actively
	maintained in the ocaml org itself:

	   https://github.com/ocaml/ocaml-lsp/

	* eglot.el (eglot-server-programs): switch caml-mode  entry.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/677

2021-04-23  João Távora  <joaotavora@gmail.com>

	Declare eglot--cached-server before use

	Per https://github.com/joaotavora/eglot/issues/670.

	Otherwise the dynamic binding of it in in eglot--connect won't work.

	* eglot.el (eglot--cached-server): Move up.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/673

2021-04-20  João Távora  <joaotavora@gmail.com>

	Make eglot-current-server work in notification handlers

	* eglot.el (eglot--connect): Ensure `eglot--cached-server` bound
	when calling notification/request methods.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/670

2021-04-17  Daniel Perez Alvarez  <danielpza@protonmail.com>  (tiny change)

	feat: add update custom packages command

2021-04-13  Yuuki Harano  <masm+github@masm11.me>

	Workaround touchscreen events are ignored on sway

	On sway, gdk_device_get_window_at_position() in
	xg_event_is_for_scrollbar always returns NULL, and all the touchscreen
	press events are mishandled as on scrollbar.
	We don't need to call xg_event_is_for_scrollbar, so removed the call.

	* src/pgtkterm.c (button_event): Don't call xg_event_is_for_scrollbar.

2021-04-12  João Távora  <joaotavora@gmail.com>

	Add a passing test demonstrating clangd + tramp works

	... It works at least within the minimal, well-controlled reproducible
	settings of this test.  Maybe if we knew something more about the
	setup of the user who submitted this report we would be able to
	concoct a failing test, but we don't.

	* eglot-tests.el (subr-x): Require it
	(eglot--make-file-or-dir): Return expanded file name.
	(eglot-tests--lsp-abiding-column-1): New helper.
	(eglot-lsp-abiding-column): Use it.
	(eglot--tramp-test): Fix `skip-unless` condition.
	(eglot--tramp-test-2): New test.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/667

2021-04-12  Dmitry Gutov  <dgutov@yandex.ru>

	Merge pull request from mohkale/company-kind

	(feature): Add :company-kind to eglot-completion-at-point

	GitHub-reference: https://github.com/joaotavora/eglot/issues/656

2021-04-12  Mohsin Kaleem  <mohkale@kisara.moe>

	Add :company-kind to eglot-completion-at-point

	* eglot.el (eglot-completion-at-point): Add a :company-kind field to the
	completion-at-point function so that company can associate completion
	candidates with lsp types.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/652

2021-04-10  Mohsin Kaleem  <mohkale@kisara.moe>

	Highlight relevant part of xref hits using xref-match face

	Also close https://github.com/joaotavora/eglot/issues/657.

	(eglot--xref-make-match): Use face 'xref-match instead of 'highlight.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/650

2021-04-10  João Távora  <joaotavora@gmail.com>

	Attempt to speed up initial directory/glob correspondence

	In https://github.com/joaotavora/eglot/issues/602, not only a new glob processing system was implemented, but
	also a new, more correct, way to look for directories that might hold
	files matched by one of these globs.

	Answering this question is important because the file watchers for
	'workspace/didChangeWatchedFiles' are placed on a per-directory basis.
	Previously, a glob such as /foo/**/bar/*.el would fail to produce
	practical file-watching effects because /foo/**/bar/ isn't really a
	directory.

	However, answering this question is also expensive, as the globs sent
	by the LSP server are meant to match files, not directories.  The only
	way is to list all files under the project's root directory and test
	each glob on each one.  If it matches at least one file, that file's
	directory is meant to be watched.

	We suspect that in https://github.com/joaotavora/eglot/issues/645 and https://github.com/joaotavora/eglot/issues/633 we are falling victim to LSP server
	who serve a tremendous unoptimized number of globs, one for each file.
	So instead of sending just '/foo/**/bar/*.el' they send
	'/foo/**/bar/quux.el', '/foo/**/bar/quuz.el', etc...  which would
	tremendeously slow down the process.  But this is only a suspicion.

	This commit tries some simple optimizations: if a directory is known
	to be watch-worthy because one of its files matched a single glob, no
	more files under that directory are tried.  This should help somewhat.

	Also fixed a bug in 'eglot--files-recursively', though I suspect that
	doesn't make that much of a difference.

	* eglot.el (eglot--directories-matched-by-globs): New helper.
	(eglot--files-recursively): Fix bug.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/645

2021-04-03  João Távora  <joaotavora@gmail.com>

	Generalize eglot-flymake-backend

	Loosen coupling between eglot-flymake-backend and flymake-mode.  The
	flymake-mode check in 'eglot-handle-notification publishDiagnostics'
	was a hack (and it wasn't even functioning correctly on M-x
	eglot-shutdown/eglot-reconnect).

	This should also allow eglot-flymake-backend to be driven by
	diagnostic-annotating frontends other than Flymake, such as the
	popular Flycheck package.

	* eglot.el (eglot--managed-mode): Use eglot--report-to-flymake.
	(eglot-handle-notification textDocument/publishDiagnostics): Use
	eglot--report-to-flymake.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/596

2021-03-26  rvs314  <71688932+rvs314@users.noreply.github.com>  (tiny change)

	Offer better control over "languageid" value sent to lsp

	Handles the issue of languages whose major mode has a
	different name than the name that the LSP server expects for
	the language.  One can now:

	(put 'favourite-major-mode 'eglot-language-id "foobarbaz")

	And "foobarbaz" will be used as the LSP "languageId" value.

	* eglot.el (eglot--TextDocumentItem): Consult 'eglot-language-id.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/525

2021-03-19  Johnathan C. Maudlin  <13183098+jcmdln@users.noreply.github.com>  (tiny change)

	Add support for zls, the zig language server

	* eglot.el (eglot-server-programs): Add zig-mode entry.

	* README.md (Connecting to a server): Mention zls.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/646

2021-03-15  bc²  <odanoburu@users.noreply.github.com>  (tiny change)
	    João Távora  <joaotavora@gmail.com>

	Add new command eglot-shutdown-all

	Also closes https://github.com/joaotavora/eglot/issues/644

	* NEWS.md: mention new command

	* README.md (Commands and keybindings): mention new command.  Tweak
	documentation for eglot-shutdown and eglot-reconnect.

	* eglot.el (eglot-shutdown): Tweak docstring.
	(eglot-shutdown-all): New command.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/643

2021-03-13  Jimmy Yuen Ho Wong  <wyuenho@gmail.com>

	Properly sort use-package-statistics-report

2021-03-11  Yuuki Harano  <masm+github@masm11.me>

	Fix some leaks

	* src/pgtkterm.c (x_free_frame_resources): Free cursors.
	(pgtk_delete_terminal): Free cursors and events.

2021-03-07  Jimmy Yuen Ho Wong  <wyuenho@gmail.com>

	Fix void-variable use-package-enable-imenu-support

2021-03-06  João Távora  <joaotavora@gmail.com>

	Autoload eglot-workspace-configuration's safe-l-v spec

	This is useful for those who edit files in a certain source tree where
	this directory-local variable is set, but without having yet loaded
	eglot.el.  Those users would be bothered by the usual
	risky-local-variable prompt.

	* eglot.el (eglot-workspace-configuration): Add autoload cookie.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/555

2021-03-06  Brian Leung  <bkleung89@gmail.com>

	Indicate support for activeparameter

	* eglot.el (eglot-client-capabilities): Indicate :activeParameterSupport.

	Fixup of commit bdf57d5d4e888a6a7b4066b87497da8a8d9e36de.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/605

2021-03-06  João Távora  <joaotavora@gmail.com>

	Simplify eglot--apply-workspace-edit

	Suggested by Brian Leung.

	* eglot.el (eglot--apply-workspace-edit): simplify

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/620

2021-03-06  Augusto Stoffel  <arstoffel@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Remove highlight overlays immediately when symbol edited

	* eglot.el (eglot--highlight-piggyback): Add modification-hooks
	property to the created overlays.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/626

2021-03-06  Theodor Thornhill  <theo@thornhill.no>
	    João Távora

	Convert colon to hex in uri

	On windows, in the path portion of the URI, ':' must be hexified to
	'%3A'.  In the URL scheme, the ':' stays.

	* eglot.el (eglot--uri-path-allowed-chars): define what characters are
	allowed in path portion of URI.

	* eglot.el (eglot--path-to-uri): ensure colon in 'file://' stays, but
	and others are hexified.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/638

2021-03-06  Brian Cully  <bjc@kublai.com>
	    João Távora  <joaotavora@gmail.com>

	Add tramp support

	Also close https://github.com/joaotavora/eglot/issues/463, close https://github.com/joaotavora/eglot/issues/84.

	Thanks to Brian Cully for the original simple idea.  The basic
	technique is to pass :file-handler t to make-process, then tweak
	eglot--uri-to-path and eglot--path-to-uri, along with some other
	functions, to be aware of "trampy" paths".

	Crucially, a "stty hack" was needed.  It has been encapsulated in a
	new a new eglot--cmd helper, which contains a comment explaining the
	hack.


	* eglot.el (eglot--executable-find): Shim two-arg executable-find
	function only available on Emacs 27.
	(eglot--guess-contact): Use eglot--executable-find.
	(eglot--cmd): New helper.
	(eglot--connect): Use eglot--cmd.  Use :file-handler arg to
	make-process.
	(eglot--connect, eglot--path-to-uri): Be aware of trampy file
	names.

	* eglot-tests.el (eglot-tests--auto-detect-running-server-1): New helper.
	(eglot--guessing-contact): Better mock for executable-find.
	(eglot--tramp-test): New test.

	* NEWS.md: mention TRAMP support.

	* README.md: mention TRAMP support.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/637

2021-03-03  Theodor Thornhill  <theo@thornhill.no>

	Correctly protect against zero-length completion items

	Close https://github.com/joaotavora/eglot/issues/636.

	* eglot.el (eglot-completion-at-point): check for zero length string in proxy
	rather than the item.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/635

2021-03-02  Yuuki Harano  <masm+github@masm11.me>

	Fix unicode strings can't be pasted correctly

	* lisp/select.el (x-select-request-type): Use text/plain;charset=utf-8
	instead.
	(gui--selection-value-internal): same.
	(gui-get-selection): Treat text/plain;charset=utf-8 as utf-8.
	* src/pgtkselect.c (Fpgtk_get_selection_internal): Support
	text/plain;charset=utf-8 as foreign-selection.
	(syms_of_pgtkselect): Add new symbol.

2021-03-02  Yuuki Harano  <masm+github@masm11.me>

	Support selection type text/plain on wayland

	Apps on XWayland need this.

	* lisp/select.el (x-select-request-type): Add choice `text/plain'.
	(gui--selection-value-internal): Add text/plain to the default list.

2021-02-27  Theodor Thornhill  <theo@thornhill.no>
	    João Távora  <joaotavora@gmail.com>

	Protect against empty uris on windows

	Per https://github.com/joaotavora/eglot/issues/630.

	* eglot.el (eglot--uri-to-path): Check string length

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/610

2021-02-26  João Távora  <joaotavora@gmail.com>

	Urify better

	See also
	https://microsoft.github.io/language-server-protocol/specifications/specification-current/#uri.

	* eglot.el (eglot--path-to-uri): use directory-file-name.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/627

2021-02-26  João Távora  <joaotavora@gmail.com>

	Fixup last commit to fix

	* eglot.el (eglot-handle-request): Fixup.  Use let*

	GitHub-reference: https://github.com/joaotavora/eglot/issues/627

2021-02-26  João Távora  <joaotavora@gmail.com>

	Handle empty actions array in window/showmessagerequest

	* eglot.el (eglot-handle-request window/showMessageRequest):
	Handle empty actions.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/627

2021-02-24  Philipp Stephani  <phst@google.com>

	Remove uses of deprecated ‘flet’ macro

	Instead, use the non-deprecated ‘cl-flet’ and ‘cl-letf’ macros from the
	‘cl-lib’ package.

	This also allows us to remove the ‘plist-delete’ helper function, which was
	only used to effectively un-deprecate ‘flet’.

2021-02-24  João Távora  <joaotavora@gmail.com>

	Handle null reply for textdocument/definition

	* eglot.el (eglot--lsp-xrefs-for-method): Handle null response
	from textDocument/definition & friends.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/625

2021-02-23  Yuuki Harano  <masm+github@masm11.me>

	Make scrollbars ignore scroll-bar-fore/background.

	* src/pgtkfns.c (pgtk_set_scroll_bar_foreground): Handle frame
	parameters but actually ignore it.
	(pgtk_set_scroll_bar_background): The same.

2021-02-22  Naoya Yamashita  <conao3@gmail.com>

	add testcase

2021-02-22  Naoya Yamashita  <conao3@gmail.com>

	add autoload keyword

	:autoload is similar to :command but this generate autoload
	statement as *no-interactive* function.

2021-02-21  Jonathan del Strother  <me@delstrother.com>  (tiny change)
	    João Távora  <joaotavora@gmail.com>

	Silence messages while formatting markup

	Also fix https://github.com/joaotavora/eglot/issues/501.

	Prior to this, activating gfm-view-mode could echo messages
	like "markdown-mode math support enabled" to the minibuffer.

	Message are both silenced from from the minibuffer and the
	*Messaages* log.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/502

2021-02-20  Yuuki Harano  <masm+github@masm11.me>

	Work around I can't copy and paste unicode string to wayland chromium

	* src/pgtkselect.c (Fpgtk_own_selection_internal):
	Remove text/plain, since unicode strings are not correctly
	encoded/decoded between Gtk and chromium(wayland) with it.

2021-02-16  Yuuki Harano  <masm+github@masm11.me>

	Fix I can't paste international text from clipboard

	* lisp/select.el (gui--selection-value-internal):
	Try UTF8_STRING when pgtk as well as x.

2021-02-16  Yurii Kholodkov  <urist.mckorobochka@gmail.com>  (tiny change)

	fix docstring. was: invalid function name

2021-02-14  Basil L. Contovounesios  <contovob@tcd.ie>

	Fix unused macro build warning in image.c

	* src/image.c
	[HAVE_PGTK] (DONT_CREATE_TRANSFORMED_IMAGEMAGICK_IMAGE): Define only
	if HAVE_IMAGEMAGICK is also defined, as it is otherwise
	unused (bug#46491).
	(image_set_transform): Reduce nesting of preprocessor conditionals.

2021-02-11  Robert Pluim  <rpluim@gmail.com>

	Don't crash if we can't find a monitor model name

	This can happen when running emacs over a forwarded X11 connection.

	* src/pgtkfns.c (pgtk_get_monitor_scale_factor): Return 0 if we're
	passed a NULL model name.

2021-02-11  Yuuki Harano  <masm+github@masm11.me>

	Support getting a image from clipboard

	* src/pgtkselect.c (Fpgtk_get_selection_internal): Reimplement
	referring selection_data_to_lisp_data in xselect.c
	(syms_of_pgtkselect): Add symbols.

2021-02-10  John Wiegley  <johnw@newartisans.com>

	Merge pull request from minad/improved-unbind

	GitHub-reference: https://github.com/jwiegley/use-package/issues/910

2021-02-10  Daniel Mendler  <mail@daniel-mendler.de>

	unbind-key: Ensure that keys are removed from the keymap

	* The removal from the keymap is performed by bind-key--remove
	* Use the same argument normalization as bind-key

2021-02-10  Daniel Mendler  <mail@daniel-mendler.de>

	bind-key: Use new symbols for kmapvar

2021-02-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tzz/tzz/use-package-use-theme

	Add use-package-use-theme and avoid missing theme errors
	GitHub-reference: https://github.com/jwiegley/use-package/issues/907

2021-02-06  Ted Zlatanov  <tzz@lifelogs.com>

	Add use-package-use-theme and avoid missing theme errors

2021-02-06  Yuuki Harano  <masm+github@masm11.me>

	Remove unused arg as xmenu.c

	* src/pgtkmenu.c (Fx_menu_bar_open_internal): Remove unused arg.
	(pgtk_activate_menubar): Remove unused arg.
	(set_frame_menubar): Remove unused arg.
	(initialize_frame_menubar): Remove unused arg.

2021-02-06  Misha Gusarov  <dottedmag@dottedmag.net>  (tiny change)

	Make reading GNOME settings optional.

	* src/pgtkterm.c (pgtk_term_init): Make reading GNOME settings optional.
	(pgtk_text_scaling_factor): New function to read text scaling factor.

2021-02-06  Ted Zlatanov  <tzz@lifelogs.com>

	Merge pull request from kljohann/custom-use-single-let

	Use a single let binding when expanding consecutive :custom forms
	GitHub-reference: https://github.com/jwiegley/use-package/issues/906

2021-02-03  Johann Klähn  <johann@jklaehn.de>  (tiny change)

	Use a single let binding when expanding consecutive :custom forms

2021-02-03  João Távora  <joaotavora@gmail.com>

	Simplify dir-watching strategy of w/didchangewatchedfiles

	Instead of massaging the globPattern to match directories instead of
	files, which is fragile, gather the list of directories to watch by
	matching the globPattern against every file recursively (except hidden
	files and dirs).

	This is still not 100% correct, but should do the right thing is most
	cases.  Notably, if the correct dirs are being watched, the glob
	pattern is matched against all existing and new files in those
	directories, which does include hidden files.

	* eglot.el (eglot-register-capability): match file globs against
	files only.
	(eglot--files-recursively): Rename from eglot--directories-recursively.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/602

2021-02-02  João Távora  <joaotavora@gmail.com>

	Tweak glob-parsing grammar

	Alternative groups {} don't bork on forward slash.

	* eglot.el (eglot--glob-parse): Tweak {} grammar.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/602

2021-02-01  Philip Kaludercic  <philipk@posteo.net>
	    João Távora  <joaotavora@gmail.com>

	Make eglot-ignored-server-capabilites defcustom a set


	* eglot.el (eglot-ignored-server-capabilites): Now a set.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/467

2021-02-01  João Távora  <joaotavora@gmail.com>

	Speed up glob matching 2x

	with-temp-buffer was taking a lot of time, presumably because it kills
	the buffer.  Since emacs is single-threaded, we can safely reuse a
	single buffer.

	* eglot.el (eglot--glob-parse): Simplify grammar.
	(eglot--glob-compile): Don't with-temp-buffer.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/602

2021-02-01  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tzz/tzz/remove-use-package-from-custom-enabled-themes

	Remove use-package theme from global list of custom-enabled-themes
	GitHub-reference: https://github.com/jwiegley/use-package/issues/899

2021-02-01  Felicián Németh  <felician.nemeth@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Support phps-mode

	phps-mode is available from ELPA, php-mode isn't.

	* eglot.el (eglot-server-programs): Recognize phps-mode as a PHP mode.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/418

2021-02-01  Brian Leung  <bkleung89@gmail.com>  (tiny change)

	Remove duplicate entry for "registration" lsp type

	* eglot.el (eglot--lsp-interface-alist): Remove extra Registration entry.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/612

2021-02-01  João Távora  <joaotavora@gmail.com>

	Prefer typescript-language-server for js&ts

	* README.md (Connecting to a server): Prefer
	typescript-language-server.

	* eglot.el (eglot-server-programs): Use
	typescript-language-server.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/566

2021-02-01  João Távora  <joaotavora@gmail.com>

	Also override global flymake-diagnostic-functions

	The global value of the flymake-diagnostic-functions is likely to be
	of little use in Eglot-managed buffers, so don't run it.  Likely the
	value flymake-proc-legacy-flymake is there which is not only likely of
	little uses but also causes trouble in some situations.

	The user can easily avert this by leveraging the variable
	eglot-stay-out-of.

	* eglot.el (eglot--managed-mode): Don't run global
	flymake-diagnostic-functions.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/616

2021-02-01  Brian Leung  <bkleung89@gmail.com>

	Explicitly require seq.el

	`seq-empty-p' is not autoloaded in Emacs >= 26.3, so it must be
	explicitly required.

	* eglot.el: Require seq.el.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/613

2021-02-01  Brian Leung  <bkleung89@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Support activeparameter property for signatureinformation

	SignatureInformation.activeParameter is new in version 3.16.0 of the
	protocol.  When non-nil, it is used in place of
	SignatureHelp.activeParameter.  The latter was deemed insufficient in
	languages where multiple signatures for the same function may exist
	with arbitrary order of parameters, like Python.


	* eglot.el (eglot--lsp-interface-alist): Add
	SignatureInformation.activeParameter.

	* eglot.el (eglot--sig-info): Prioritize
	SignatureInformation.activeParameter over
	SignatureHelp.activeParameter.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/605

2021-01-31  João Távora  <joaotavora@gmail.com>

	Fully handle lsp glob syntax

	Thanks to Brian Leung and Dan Peterson for testing and helping me spot
	bugs.

	* eglot-tests.el (eglot--glob-match): New test.

	* eglot.el (eglot--wildcard-to-regexp): Delete.
	(eglot-register-capability): Rework.
	(eglot--glob-parse, eglot--glob-compile, eglot--glob-emit-self)
	(eglot--glob-emit-**, eglot--glob-emit-*, eglot--glob-emit-?)
	(eglot--glob-emit-{}, eglot--glob-emit-range)
	(eglot--directories-recursively): New helpers.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/602

2021-01-30  João Távora  <joaotavora@gmail.com>

	Flush pending changes to server before code actions request

	Otherwise the actions returned by the server might be stale when the
	user selects them.

	* eglot.el (eglot-code-actions): Issue jsonrpc-request with deferred=t.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/609

2021-01-30  Yuuki Harano  <masm+github@masm11.me>

	Support child frame border width

	* src/pgtkfns.c (x_set_child_frame_border_width): Port code for X.
	(pgtk_frame_parm_handlers): Add hook.
	(Fx_create_frame): Get default parameter.
	* src/pgtkterm.c (x_draw_stretch_glyph_string): Re-port code for X.
	(pgtk_clear_under_internal_border): Re-port code for X.

2021-01-30  Yichao Yu  <yyc1992@gmail.com>

	Add support for setting cursor location using Gtk IM Context

	The existing XIC implementation doesn't work when using Gtk IM Context.
	Instead, `gtk_im_context_set_cursor_location` should be used
	to update the cursor information for the input method.

	* src/pgtkim.c (pgtk_im_set_cursor_location): New function to tell gtk
	cursor location.
	* src/pgtkterm.c (pgtk_draw_window_cursor): Remove invalid code and
	add new code to call the function.
	* src/pgtkterm.h: Add the function declaration.

2021-01-29  João Távora  <joaotavora@gmail.com>

	#fix 608: fix bug in eglot-code-actions

	Suggested by GitHub user "vconcat".

	* eglot.el (eglot-code-actions): Use a vector for transmitting
	action-kind.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/606

2021-01-28  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot): tweak docstring grammar.

2021-01-28  Andrii Kolomoiets  <andreyk.mad@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Offer shortcut commands to commonly invoked code actions

	See also https://github.com/joaotavora/eglot/issues/598.

	Make eglot-code-actions accept a new action-kind argument.  If there
	is only one action of that kind, apply it.  This allows us to create
	actions shortcuts like eglot-code-action-organize-imports, etc.

	* eglot.el (eglot-code-actions): Accept new argument action-kind.
	(eglot--code-action): New function-defining helper macro.
	(eglot-code-action-organize-imports)
	(eglot-code-action-extract)
	(eglot-code-action-inline)
	(eglot-code-action-rewrite)
	(eglot-code-action-quickfix): New commands.

	* README.md: Mention new feature.

	* NEWS.md: Mention new feature.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/411

2021-01-28  ssnnoo  <43703153+ssnnoo@users.noreply.github.com>  (tiny change)

	Add fortls for fotran (f90-mode)

	* eglot.el (eglot-server-programs): Add fortls

	* README.md: mention fortls

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/603

2021-01-27  Brian Leung  <bkleung89@gmail.com>  (tiny change)

	Add rnix-lsp server for nix-mode, community suggestion

	* eglot.el (eglot-server-programs): Add rnix-lsp

	* README.md: mention rnix-lsp

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/599

2021-01-23  Yuuki Harano  <masm+github@masm11.me>

	Add scale factor in display-monitor-attributes-list.

	* lisp/frame.el (display-monitor-attributes-list): Add the comment.
	* src/frame.c (make_monitor_attribute_list): Include the scale factor value.
	(syms_of_frame): Declare intern'ed scale-factor.
	* src/frame.h (struct MonitorInfo): Add scale_factor member.
	* src/pgtkfns.c (Fpgtk_display_monitor_attributes_list): Set the value.

2021-01-20  Yuuki Harano  <masm+github@masm11.me>

	Make imagemagick images less blurry.

	* src/image.c: New macro to specify non-scaled mode.
	(image_set_transform): Don't skip even if imagemagick.
	(imagemagick_load_image): Don't calculate desired size.

2021-01-16  Felicián Németh  <felician.nemeth@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Fix eglot-completion-at-point for multiple matches

	The test-completion case shouldn't return t when there are multiple
	matches.  Similarly, the try-completion should return t only if the
	match is exact.  See (info "(elisp)Programmed Completion").

	* eglot.el (eglot-completion-at-point): Instead of testing
	memberships, use test-completion and try-completion suggested
	by (info "(elisp)Programmed Completion").

	* eglot-tests.el (non-unique-completions): Add new test.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/365

2021-01-16  Andrii Kolomoiets  <andreyk.mad@gmail.com>

	Run exit-function only for finished completion

	Per https://github.com/joaotavora/eglot/issues/594.

	* eglot.el (eglot-completion-at-point): Respect 'status' argument in
	completion's exit function.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/592

2021-01-13  Augusto Stoffel  <arstoffel@gmail.com>

	Use `path-separator', not ":",  in eclipse/jdt custom code

	This is needed on Windows.

	* eglot.el (eglot--eclipse-jdt-contact): Replace literal ":" by `path-separator'.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/513

2021-01-13  Augusto Stoffel  <arstoffel@gmail.com>

	Define a face for symbol highlight

	Also per https://github.com/joaotavora/eglot/issues/583.

	* eglot.el (eglot-highlight-symbol-face): New face.
	(eglot--highlight-piggyback): Use it.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/584

2021-01-13  João Távora  <joaotavora@gmail.com>

	Unbreak interactivee eglot--connect for complex contact specs

	The previous commit for https://github.com/joaotavora/eglot/issues/526 was completely botched.  One has to check
	current-prefix-arg for the presence of C-u, not eglot--guess-contact
	INTERACTIVE arg.

	* eglot.el (eglot--guess-contact): Be more careful when
	processing guess.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/593

2021-01-11  Yuuki Harano  <masm+github@masm11.me>

	Fix visual-bell on X

	* src/pgtkterm.c (pgtk_flash): Change size source.

	On X, surface_orig is not an image surface but xlib surface, so I
	cannot get its size with cairo_image_surface_get_{width,height}.

2021-01-11  Yuuki Harano  <masm+github@masm11.me>

	Free unneeded context

	* src/pgtkterm.c (pgtk_flash): Free unneeded cairo_t.

2021-01-10  João Távora  <joaotavora@gmail.com>

	C-u m-x eglot discards class guessed by eglot--guess-contact

	This will prevent C-u M-x eglot RET rust-analyzer from bringing into
	play the eglot-rls server class, which is only valid for the default
	RLS server.

	Found when testing for https://github.com/joaotavora/eglot/issues/526, though this bug might not necessarily be
	the problem being reported there.

	* eglot.el (eglot--guess-contact): Don't assume guessed class if
	INTERACTIVE.

2021-01-10  Ted Zlatanov  <tzz@lifelogs.com>

	Remove use-package theme from global list of custom-enabled-themes

	* eval-when-compile for cases where use-package is only required at
	  compile time

	* remove the 'use-package theme from custom-enabled-themes so e.g.
	  (mapc #'disable-theme custom-enabled-themes)
	  won't kill user settings.

2021-01-10  Yuuki Harano  <masm+github@masm11.me>

	Fix gtk icon theme does not reflect

	* lisp/term/pgtk-win.el (x-gtk-stock-map): Port from X.
	(icon-map-list): Port from X.
	(x-gtk-stock-cache): Port from X.
	(x-gtk-map-stock): Port from X.
	* src/pgtkterm.c (syms_of_pgtkterm): Remove duplicated definition.

2021-01-06  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tzz/tzz/set-comment-and-synthetic-theme

	GitHub-reference: https://github.com/jwiegley/use-package/issues/881

2021-01-05  Jürgen Hötzel  <juergen@hoetzel.info>  (tiny change)

	Flex completion style is not available on emacs < 27

	* eglot.el (eglot--managed-mode): check if flex style available

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/582

2021-01-03  Yuuki Harano  <masm+github@masm11.me>

	Add a function to set monitor scale factor manually

	* src/pgtkfns.c (pgtk_get_monitor_scale_factor): New function to get
	manual scale factor from alist.
	(Fpgtk_set_monitor_scale_factor): New function to set manual scale
	factor into alist.
	(Fx_display_pixel_width): Use manual scale factor first, if not set,
	use gdk's one.
	(Fx_display_pixel_height): Use manual scale factor first, if not set,
	use gdk's one.
	(Fpgtk_display_monitor_attributes_list): Use manual scale factor
	first, if not set, use gdk's one.
	(syms_of_pgtkfns): initialize alist.

2021-01-03  Yuuki Harano  <masm+github@masm11.me>

	Fix display-pixel-width/height to return physical pixel size.

	* src/pgtkfns.c (Fx_display_pixel_width):
	(Fx_display_pixel_height): Return bottom/right-most of all the monitors.

2021-01-03  Yuuki Harano  <masm+github@masm11.me>

	Make display-mm-width/height consider multi-monitor.

	* src/pgtkfns.c (Fx_display_mm_height):
	(Fx_display_mm_width): Calculate width/height mm assuming monitor
	other than origin does not overlap.

2021-01-03  Yuuki Harano  <masm+github@masm11.me>

	Fix pgtk-display-monitor-attributes-list to return physical pixel sizes.

	* src/pgtkfns.c (Fpgtk_display_monitor_attributes_list): Re-port it.

2020-12-26  Yuuki Harano  <masm+github@masm11.me>

	Follow get-buffer-create change

	* src/pgtkfns.c (Fx_show_tip): Pass nil to get-buffer-create.

2020-12-22  João Távora  <joaotavora@gmail.com>

	Don't block in eglot-imenu if performing non-essential task

	eglot-imenu is used by imenu which in turn is used by which-func-mode
	called from an idle timer.  We don't want it to block in that
	situation.  Latest which-func mode now sets "non-essential" when
	performing its duties, so we leverage that in eglot-imenu.

	* eglot.el (eglot-imenu): Use non-essential.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/212

2020-12-22  João Távora  <joaotavora@gmail.com>

	Use flex completion if available by default

	* eglot.el (eglot--managed-mode): Set completion-styles.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/575

2020-12-16  João Távora  <joaotavora@gmail.com>

	Bump eglot version to 1.7

	* eglot.el (Version): Bump to 1.7.
	(Package-Requires): Bump dependency versions.

2020-12-16  João Távora  <joaotavora@gmail.com>

	Allow eglot to stay out of xref configuration

	* eglot.el (eglot-stay-out-of): Rework docstring.
	(eglot--managed-mode): Can now stay out of xref.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/569

2020-12-16  João Távora  <joaotavora@gmail.com>

	Cosmetic whitespace fix (indentation, long lines, tabs->spaces)

	* eglot.el (eglot-server-programs, for, eglot--after-change)
	(eglot-code-actions, eglot-register-capability)
	(eglot-register-capability): Fix whitespace.

2020-12-16  TANIGUCHI Kohei  <a.d.xvii.kal.mai@gmail.com>  (tiny change)

	Use haskell-language-server in eglot-server-programs

	Use haskell-language-server instead of deprecated Haskell IDE Engine

	https://github.com/haskell/haskell-language-server
	https://github.com/haskell/haskell-ide-engine#deprecated

	* README.md: Replace Haskell IDE Engine with haskell-language-server

	* eglot.el (eglot-server-programs): Replace hie-wrapper with
	  haskell-language-server-wrapper

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/572

2020-12-15  João Távora  <joaotavora@gmail.com>

	Robustify previous fix of onchange breakage

	From the in-code comments:

	;; githubhttps://github.com/joaotavora/eglot/issues/259 and githubhttps://github.com/joaotavora/eglot/issues/367: With `capitalize-word' or somesuch,
	;; `before-change-functions' always records the whole word's `b-beg'
	;; and `b-end'.  Similarly, when coalescing two lines into one,
	;; `fill-paragraph' they mark the end of the first line up to the end
	;; of the second line.  In both situations, args received here
	;; contradict that information: `beg' and `end' will differ by 1 and
	;; will likely only encompass the letter that was capitalized or, in
	;; the sentence-joining situation, the replacement of the newline with
	;; a space.  That's we keep markers _and_ positions so we're able to
	;; detect and correct this.  We ignore `beg', `len' and
	;; `pre-change-len' and send "fuller" information about the region
	;; from the markers.  I've also experimented with doing this
	;; unconditionally but it seems to break when newlines are added.

	* eglot.el (eglot--after-change): Robustify fix.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/367

2020-12-14  João Távora  <joaotavora@gmail.com>

	Don't let m-x fill-paragraph break didchange

	M-x fill-paragraph represents some paragraph-fillling changes very
	summarily.  Filling

	    1 // foo
	    2 bar

	Into

	    1 // foo bar

	Only makes two changes: a deletion of the "// " and a replacement of a
	newline with a space character.  The second change fooled Eglot's fix
	for https://github.com/joaotavora/eglot/issues/259, by making a change similar to the one it is made to detect
	and correct.  That fix should target things that happen on the same
	line, this not being one of those things.

	* eglot.el (eglot--after-change): Only apply fix to https://github.com/joaotavora/eglot/issues/259 if
	case-fiddling happens on same line.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/367

2020-12-13  Yuuki Harano  <masm+github@masm11.me>

	* src/pgtkterm.c (map_event): Remove record_asynch_buffer_change call.

2020-12-08  Yuuki Harano  <masm+github@masm11.me>

	Fix DEL key behavior

	* lisp/simple.el (normal-erase-is-backspace-setup-frame): Include pgtk
	in window-system group.

2020-11-29  Ted Zlatanov  <tzz@lifelogs.com>

	Create new "use-package" themse and use it for :custom with custom-theme-set-variables

	set property theme-value to avoid saving variable

2020-11-29  Ted Zlatanov  <tzz@lifelogs.com>

	Revert "use-package-core.el: use the Emacs set-default function to avoid saving :custom vars twice"

	This reverts commit 8c31c57106e2938d627bf4107627c003620d2dd5.

2020-11-29  Ted Zlatanov  <tzz@lifelogs.com>

	set saved-variable-comment from :custom

	GitHub-reference: https://github.com/jwiegley/use-package/issues/861

2020-11-28  Yuuki Harano  <masm+github@masm11.me>

	Merge branch 'master' into feature/pgtk

	* src/pgtkterm.c (scroll_event): Shut up warnings

2020-11-28  Yuuki Harano  <masm+github@masm11.me>

	Improve smooth scroll

	* src/pgtkterm.c (scroll_event): Accumulate deltas and calculate
	the number of lines.
	(pgtk_term_init): Set smooth scroll parameters.
	* src/pgtkterm.h (scroll): New members to store parameters.

2020-11-27  Yuuki Harano  <masm+github@masm11.me>

	Enable harfbuzz

	* src/pgtkfns.c (Fx_create_frame): Register ftcrhb font driver if enabled.

2020-11-26  Yuuki Harano  <masm+github@masm11.me>

	Add support for hyper modifier key

	* src/pgtkterm.c (x_find_modifier_meanings): Autodetect key mask.
	(pgtk_gtk_to_emacs_modifiers): Use autodetected mask instead of GDK's.
	(pgtk_emacs_to_gtk_modifiers): Use autodetected mask instead of GDK's.
	(key_press_event): Ignore hyper as well as super.
	* src/pgtkterm.h (struct pgtk_display_info): New member for hyper.

2020-11-25  Yuuki Harano  <masm+github@masm11.me>

	Fix compilation issue when --enable-checking=glyphs

	* src/pgtkfns.c (Fx_create_frame): Remove code surrounded by GLYPH_DEBUG.
	(x_create_tip_frame): Remove code surrounded by GLYPH_DEBUG.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix crash when .schema.xml is not installed

	* src/pgtkfns.c (parse_resource_key): Check return value.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Add copyright line

	* etc/org.gnu.emacs.defaults.gschema.xml: Add copyright line.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Work around gtk_im_context_filter_keypress() issue with super key

	* src/pgtkterm.c (x_find_modifier_meanings): Convert virtual super
	to non-virtual one.
	(pgtk_gtk_to_emacs_modifiers): Use non-virtual one.
	(pgtk_emacs_to_gtk_modifiers): Use non-virtual one.
	(key_press_event): Don't call pgtk_im_context_filter_keypress while
	super is pressed.
	* src/pgtkterm.h (struct pgtk_display_info): New member.

2020-11-23  Jeff Walsh  <jeff.walsh@drtusers-MacBook-Pro.local>

	lisp/term/pgtk-win.el: Add copyright file header

2020-11-23  Jeff Walsh  <jeff.walsh@drtusers-MacBook-Pro.local>

	Update copyright dates for PGTK files

	* src/pgtkfns.c:
	* src/pgtkgui.h:
	* src/pgtkim.c:
	* src/pgtkmenu.c:
	* src/pgtkselect.c:
	* src/pgtkselect.h:
	* src/pgtkterm.c:
	* src/pgtkterm.h: Update copyright dates - No Functional Changes

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix startup failure on svg-unsupported environments

	* src/pgtkterm.c (pgtk_bitmap_icon): Re-port X-code.
	(pgtk_term_init): Add member initialization.
	* src/pgtkterm.h (struct pgtk_display_info): Add member.
	(struct pgtk_output): Add member.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Avoid weird behavior when resizing with top-left corner

	* src/frame.c (syms_of_frame): Defaults frame_resize_pixelwise to true.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Don't use gtk_window_resize to resize offscreen window

	* src/xwidget.c (Fmake_xwidget): Use gtk_container_check_resize instead.
	(Fxwidget_resize): Use gtk_container_check_resize instead.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Avoid gtk warnings on X

	* src/xwidget.c (xwidget_osr_draw_cb): Call it to avoid alloc_needes.

2020-11-23  Kira Bruneau  <kira.bruneau@gmail.com>

	Avoid mutating invocation-name (tiny change)

	* lisp/term/pgtk-win.el (window-system-initialization): copy invocation-name.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix Gtk warnings

	* src/gtkutil.c (xg_frame_set_char_size): Call appropriate function
	(xg_set_undecorated): Do nothing if child frame.
	(xg_set_no_focus_on_map): Do nothing if child frame.
	(xg_set_no_accept_focus): Do nothing if child frame.
	(xg_set_frame_icon): Do nothing if child frame.
	(xg_get_file_name): Do nothing if child frame.
	(xg_get_font):
	* src/pgtkterm.c (pgtk_focus_frame): Do nothing if child frames.
	(x_set_frame_alpha): Select correct widget.
	(x_new_focus_frame): Focus only when non-child frames.
	(pgtk_set_event_handler): Don't set for child frames.
	* src/pgtkfns.c (xg_set_icon): Do nothing if child frames.
	(xg_set_icon_from_xpm_data): Do nothing if child frames.
	(pgtk_set_sticky): Do nothing if child frames.
	(Fx_show_tip): Do nothing if child frames.
	(Fpgtk_set_mouse_absolute_pixel_position): Select correct widget.
	(Fpgtk_mouse_absolute_pixel_position): Select correct widget.
	* src/pgtkmenu.c (pgtk_menu_show):
	(pgtk_dialog_show):

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix crash on drag and drop

	* src/pgtkterm.c (pgtk_select): Move dispatch before
	g_main_context_query.
	(drag_drop): Remove drag_drop.
	(drag_data_received): Rename arg.
	(pgtk_set_event_handler): Remove drag-drop callback.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix mouse cursor doesn't appear on motion events on xwidgets

	* src/xwidget.c (xwidget_osr_event_forward): Propagate motion notify.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix tooltips don't hide on events

	* src/pgtkterm.c: New variable to indicate whether any event occurs.
	(configure_event): Clear help string on a event.
	(leave_notify_event): Clear help string on a event.
	(motion_notify_event): Use gen_help_event.
	(pgtk_set_event_handler): Hook configure-event for outer widgets.
	(pgtk_term_init): Clear the flag.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix crash on creating child frames.

	* src/pgtkfns.c (frame_geometry): Returns nil when no widget.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix crash when child frame updates toolbar

	* src/gtkutil.c (update_frame_tool_bar): Do nothing when child frame.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Exclude Xlib's modifier keys

	* src/pgtkterm.c (IsModifierKey): New macro.
	(key_press_event): Exclude Xlib's modifier keys.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Re-implement childframe with emacsgtkfixed

	* src/emacsgtkfixed.c (G_DEFINE_TYPE): Make emacs_fixed_get_type public.
	* src/emacsgtkfixed.h (EMACS_TYPE_FIXED): Make emacs_fixed_get_type public.
	* src/gtkutil.c (xg_frame_set_char_size): Call appropriate functions
	by whether the frame is a child frame or not.
	(xg_create_frame_widgets): Use GTK_WINDOW_TOPLEVEL when creating child frame.
	(xg_create_frame_outer_widgets): New function.
	(xg_set_skip_taskbar): Call only when top-level frame.
	(xg_set_no_accept_focus): See appropriate widget.
	* src/gtkutil.h: New declaration.
	* src/pgtkfns.c (pgtk_set_name_internal): Do only when top-level frame.
	(Fx_create_frame): Reparent the frame.
	(frame_geometry): Call appropriate functions
	(syms_of_pgtkfns): Port from X code.
	* src/pgtkterm.c (x_free_frame_resources): Destroy appropriate widget.
	(x_calc_absolute_position): Port from X code.
	(x_set_offset): Re-port from X code.
	(pgtk_set_window_size): Use appropriate widget.
	(pgtk_make_frame_visible): Use appropriate widget.
	(pgtk_make_frame_invisible): Use appropriate widget.
	(x_set_parent_frame): Reparent the frame.
	(x_set_z_group): Process only when top-level frame.
	(pgtk_text_icon): Process only when top-level frame.
	(set_fullscreen_state): Process only when top-level frame.
	(frame_highlight): Hold ref.
	(frame_unhighlight): Hold ref.
	(pgtk_window_is_of_frame_recursive): Prune child frames.
	(pgtk_window_is_of_frame): Prune child frames.
	(print_widget_tree_recursive): Don't call this when not debugging.
	(pgtk_handle_draw): Don't call this when not debugging.
	(pgtk_set_event_handler): expect map-event for edit_widget not outer widget.
	* src/pgtkterm.h (FRAME_WIDGET): New macro.

2020-11-23  Jeff Walsh  <fejfighter@gmail.com>

	Add support for x-support-frames

	* src/pgtkfns.c (Fx_export_frames):
	(syms_of_pgtkfns): port from X11 version
	* src/pgtkterm.c (pgtk_cr_accumulate_data):
	(pgtk_cr_destroy):
	(pgtk_cr_export_frames): port from X11
	* src/pgtkterm.h: add defs

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Enable GtkIMContext by default

	* lisp/term/pgtk-win.el: Call pgtk-use-im-context after init.

	* src/pgtkim.c (pgtk_im_use_context): New function.
	(pgtk_im_init): Call pgtk_im_use_context.
	(Fpgtk_use_im_context): Call pgtk_im_use_context.
	(syms_of_pgtkim): New variable Vpgtk_use_im_context_on_new_connection.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Remove duplicated syms_of_xwidget call

	* src/emacs.c (main): Remove duplicated syms_of_xwidget() call.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Self-implement tooltip

	* src/gtkutil.c (xg_create_frame_widgets): Use popup for tooltip.
	* src/pgtkfns.c (unwind_create_tip_frame): Port X code.
	(x_create_tip_frame): Re-port X code.
	(x_hide_tip): Re-port X code.
	(Fx_show_tip): Re-port X code.
	(frame_geometry): Get left_pos and top_pos here.
	(syms_of_pgtkfns): Add variables for tooltip.
	* src/pgtkterm.c (pgtk_set_event_handler): Set event handler for tooltip.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Add PGTK to system-configuration-features

	* configure.ac: Set HAVE_PGTK when configuring for PGTK, and
	add PGTK for iteration.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Re-port image drawing code from X

	* src/pgtkterm.c (x_cr_draw_image): Re-port X code.
	(x_draw_image_foreground): Re-port X code.
	(x_draw_image_glyph_string): Re-port X code.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Make pointer visible when motion notify event

	* src/pgtkterm.c (motion_notify_event): set pending_signals to true.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix non-English layout does not work

	* src/pgtkterm.c (key_press_event): Use Vlocale_coding_system.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix font lock is not applied on continued lines

	* src/pgtkterm.c (pgtk_parse_color): Remove alpha bits.

2020-11-23  Jeff Walsh  <fejfighter@gmail.com>

	Restore support for terminal only emacs in PGTK (add --with-pgtk)

	* configure.ac: add "--with-pgtk" switch for building pgtk terminal
	support.
	Adjust X11 window system tests to no clobber pgtk preferences

2020-11-23  Jeff Walsh  <fejfighter@gmail.com>

	Add font chooser functionality

	* src/pgtkfns.c (Fpgtk_popup_font_panel): repurpose X/gtk font chooser code
	(syms_of_pgtkfns): add new symbol

2020-11-23  Jeff Walsh  <fejfighter@gmail.com>

	Fix migrating Child frames

	* src/pgtkterm.c:
	(x_calc_absolute_position): Remove Function that has no effect
	(x_set_offset): titlebar off should not be stored as an offset, only
	used to calculate final move locations

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	* src/keyboard.c (make_lispy_event): Fix coding style

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Change coding style

	* src/gtkutil.c (xg_display_open):
	(xg_get_image_for_pixmap):
	(xg_frame_resized):
	(xg_create_frame_widgets):
	(x_wm_set_size_hint):
	(xg_frame_restack):
	(xg_finish_scroll_bar_creation):
	(xg_update_scrollbar_pos):
	(xg_update_horizontal_scrollbar_pos):
	(xg_set_toolkit_scroll_bar_thumb):
	(xg_event_is_for_scrollbar):

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Fix coding style

	* src/emacs.c (main): Fix coding style

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Change coding style

	* src/image.c (image_create_pattern_from_pixbuf): Change coding style
	(image_create_bitmap_from_data): Change coding style
	(image_create_bitmap_from_file): Change coding style

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	* src/pgtkselect.h: Change coding style

	* src/pgtkim.c: Change coding style

	* src/pgtkterm.h: Change coding style

	* src/pgtkterm.h: Remove unused code

	* src/pgtkgui.h: change coding style

	* src/pgtkmenu.c: change coding style

	* src/pgtkselect.c: change coding style

	* src/pgtkfns.c: change coding style

	* src/pgtkterm.c: change coding style

	* src/pgtkmenu.c (set_frame_menubar): Suppress gcc warning

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	* src/pgtkterm.c (pgtk_defined_color): support gtk special colors

	Color functions take the frame

	* src/gtkutil.c (xg_check_special_colors): pass frame as argument.
	* src/pgtkfns.c (x_set_foreground_color, x_set_background_color,
	x_set_cursor_color, pgtk_set_scroll_bar_foreground,
	pgtk_set_scroll_bar_background, Fxw_color_defined_p,
	Fxw_color_values): pass frame as argument.
	* src/pgtkterm.c (pgtk_parse_color): take frame as argument.
	(pgtk_lisp_to_color): take frame as argument, and pass it.

	Remove pgtk_lisp_to_color

	* src/pgtkfns.c (x_set_foreground_color, x_set_background_color,
	x_set_cursor_color): use x_decode_color instead of pgtk_lisp_to_color.
	(Fxw_color_defined_p, Fxw_color_values):
	use pgtk_defined_color instead of pgtk_lisp_to_color.
	* src/pgtkterm.c (pgtk_lisp_to_color): remove.

	* src/gtkutil.c (xg_check_special_colors): change color format

	* src/pgtkterm.h: remove pgtk_lisp_to_color declaration

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	* pgtkmenu.c (set_frame_menubar): fix empty menu.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	Make icons and titles work like on X

	* pgtk-win.el (frame-title-format, icon-title-format): remove.
	* pgtkfns.c (pgtk_set_name_as_filename):  remove.
	* pgtkfns.c (pgtk_set_name_internal): remove gtk_window_set_icon_name call.
	* pgtkfns.c (pgtk_set_name): change value of update_mode_lines.
	* pgtkfns.c (pgtk_explicitly_set_name):
	prefer the symbol to an immediate value.
	* pgtkfns.c (pgtk_implicitly_set_name): remove pgtk_set_name_as_filename call.
	* pgtkfns.c (x_set_icon_type, x_set_icon_name): re-port from X code.
	* pgtkfns.c (xg_set_icon, xg_set_icon_from_xpm_data): port from X code.
	* pgtkterm.c (pgtk_bitmap_icon, pgtk_text_icon, pgtk_create_terminal):
	port from X code.
	* pgtkterm.h: add function declarations.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	* pgtk-win.el: fix compile-time warnings.

	* src/pgtkterm.c: Remove incorrect mark_object call.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	follow x_set_internal_border_width change.

		* ../src/pgtkfns.c (x_set_internal_border_width):

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	restore frame_rehighlight_hook.

	* src/frame.c (gui_set_border_width):

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	use pgtk_menu_set_in_use.

		* ../src/pgtkfns.c:
		(Fx_file_dialog, clean_up_dialog):

		* src/pgtkmenu.c (pgtk_menu_wait_for_event):

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	implement popup/context menu

		* ../src/pgtkterm.c (x_draw_glyph_string_background)
		(x_draw_glyph_string_foreground)
		(x_draw_composite_glyph_string_foreground)
		(x_draw_glyphless_glyph_string_foreground, x_draw_relief_rect)
		(x_draw_box_rect, x_draw_glyph_string_box, x_draw_image_relief)
		(x_draw_image_foreground, x_draw_image_glyph_string)
		(button_event):

		* src/pgtkterm.h (struct pgtk_display_info):

		* src/pgtkmenu.c (pgtk_menu_set_in_use)
		(pgtk_menu_wait_for_event, Fx_menu_bar_open_internal)
		(popup_widget_loop, pgtk_activate_menubar)
		(popup_deactivate_callback, show_help_event): new functions
		(menu_highlight_callback): remove
		(update_frame_menubar, popup_selection_callback, pop_down_menu)
		(create_and_show_popup_menu, cleanup_widget_value_tree)
		(pgtk_menu_show, dialog_selection_callback): new
		(create_and_show_dialog, pgtk_dialog_show, pgtk_popup_dialog)
		(popup_activated, Fmenu_or_popup_active_p, syms_of_pgtkmenu):

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	minimize gtkutil.c differences.

	* src/pgtkterm.h: remove compile time ifdefs

	* src/gtkutil.h: block out unused decl

	* src/gtkutil.c:
	(xg_get_pixbuf_from_pix_and_mask, xg_height_or_width_changed)
	(xg_create_frame_widgets, x_wm_set_size_hint)
	(xg_event_is_for_menubar, update_frame_tool_bar):

	resolve argument type mismatch.
	fix compatibility.

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	improve code readability.

	* src/gtkutil.c (xg_create_frame_widgets):

2020-11-23  Jeff Walsh  <jewalsh@redhat.com>

	Set screen/display dpi res to make broadway work as expected

	* src/pgtkterm.c (pgtk_initialize_display_info)
	(window_state_event, pgtk_term_init):

	* src/gtkutil.c (xg_create_frame_widgets):

	* src/pgtkterm.c (pgtk_initialize_display_info)
	(window_state_event, pgtk_term_init):

	* src/ftcrfont.c (ftcrfont_open):

2020-11-23  Jeff Walsh  <jawalsh@localhost.localdomain>

	Some work toward posframe on wayland

	* src/pgtkterm.c (flip_cr_context, x_set_offset): update for new functionality
	(pgtk_set_window_size): remove dead code
	(x_set_parent_frame): cleanup trace code
	(pgtk_cr_update_surface_desired_size): add comment

	* src/pgtkmenu.c (Fmenu_or_popup_active_p):

	* src/pgtkfns.c (pgtk_frame_parm_handlers, Fx_create_frame):

	* src/gtkutil.c (xg_create_frame_widgets, x_wm_set_size_hint):

	* src/gtkutil.c (xg_create_frame_widgets):

	hacky GTK offsets that will need better calculations

	Get parent frame's editor widget allocation for the offset

	Fix child-frame offsets for negative values

	Add some function comments around the new double context handling

2020-11-23  Jeff Walsh  <jawalsh@localhost.localdomain>

	End Resize flickering by copying surface rather than just clearing

	* src/pgtkterm.h (FRAME_NATIVE_WINDOW):

	* src/pgtkterm.c (pgtk_set_window_size): cleanup traces
	(x_draw_bar_cursor, pgtk_handle_draw, syms_of_pgtkterm):

2020-11-23  Jeff Walsh  <jawalsh@localhost.localdomain>

	Bring pgtk more inline with X11-cairo builds

	* src/pgtkterm.h (struct pgtk_output):

	* src/pgtkterm.c (FRAME_CR_ACTIVE_CONTEXT, flip_cr_context)
	(x_draw_bar_cursor, pgtk_scroll_run, pgtk_update_end)
	(pgtk_cr_draw_image, pgtk_flash, pgtk_handle_draw)
	(pgtk_cr_update_surface_desired_size, pgtk_begin_cr_clip)
	(pgtk_cr_destroy_frame_context):

	* src/image.c (image_create_pattern_from_pixbuf):

	- Don't create a context each time, just hold a reference

	- Pull in a few cairo image changes from master

	- Remove redundant code in pgtk_update_begin()

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	update redisplay_interface.

	* src/pgtkfns.c (Fx_create_frame, pgtk_default_font_parameter):

	* src/pgtkterm.c (pgtk_redisplay_interface):

	* src/pgtkterm.h:

2020-11-23  Yuuki Harano  <masm+github@masm11.me>

	emacsclient should use both of DISPLAY and WAYLAND_DISPLAY.

	* lisp/server.el (server-create-window-system-frame): error out when
	not on a supported window

	* lib-src/emacsclient.c (decode_options): handle WALAND_DISPLAY on PGTK

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Before sleep, dispatch draw events.

	* src/pgtkterm.c (pgtk_select): remove sigio signal
	  (pgtk_term_init): dispatch draw

2020-11-21  Jeff Walsh  <jawalsh@localhost.localdomain>

	End Resize flickering by copying surface rather than just clearing

	* src/pgtkterm.h (struct pgtk_output): store desired sizes

	* src/pgtkterm.c (FRAME_CR_SURFACE_DESIRED_HEIGHT)
	(FRAME_CR_SURFACE_DESIRED_WIDTH, size_allocate, configure_event)
	(pgtk_cr_update_surface_desired_size): add "desired" size for handling
	surface change

	* src/gtkutil.c (xg_frame_resized, xg_create_frame_widgets): remove
	surface destroy, turn off double buffer call

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Add support for Jpeglib

	configure.ac: enable jpeglib support for pgtk

	jpeglib を使えるようにした。

	imagemagick がうまく機能してるので気付かなかった…

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Let gtk handle scaling.

	* src/gtkutil.c (xg_get_scale):

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	implement pre-edit input method

	* src/termhooks.h (enum event_kind): new pgtk value

	* src/pgtkterm.h (struct pgtk_display_info):

	* src/pgtkterm.c (x_free_frame_resources, pgtk_delete_terminal)
	(pgtk_enqueue_string, pgtk_enqueue_preedit, key_press_event)
	(focus_in_event, focus_out_event, pgtk_term_init): call pgtkim

	* src/pgtkim.c: new file
	(im_context_commit_cb, im_context_retrieve_surrounding_cb)
	(make_color_string, im_context_preedit_changed_cb)
	(im_context_preedit_end_cb, im_context_preedit_start_cb)
	(pgtk_im_focus_in, pgtk_im_focus_out, pgtk_im_filter_keypress)
	(pgtk_im_finish, Fpgtk_use_im_context, syms_of_pgtkim):

	* src/pgtkfns.c (check_pgtk_display_info):

	* src/keyboard.c (kbd_buffer_get_event, make_lispy_event)
	(keys_of_keyboard):

	* src/emacs.c (main): add syms_of_pgtkim

	* lisp/term/pgtk-win.el (pgtk-preedit-text): new defun

	* configure.ac (XWIDGETS_OBJ): add pgtkim.o

	input method 対応

	preedit を overlay で表示するようにした。

	preedit 表示後すぐに反映されなかったのを修正

	この機能を ON/OFF できるようにした。

	default off.

	確定と同時に次の preedit が始まった場合に表示位置がおかしかったのを修正。

	sample.

	preedit をテキストで渡すようにした

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Support focus on click event

	* src/pgtkterm.c (enter_notify_event, leave_notify_event)
	(focus_in_event, focus_out_event): support focus on click

	focus-on-click な環境に対応。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	experimental support of tab-bar.

	* src/window.h: compile conditional

	* src/pgtkterm.h: function decls

	* src/pgtkterm.c (x_draw_image_relief, pgtk_create_terminal)
	(motion_notify_event, button_event): tabbar support

	* src/pgtkfns.c (x_set_tab_bar_lines, x_change_tab_bar_height)
	(pgtk_frame_parm_handlers, Fx_create_frame, frame_geometry): tabbar support

	余計なイベントが生成されていたのを修正。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Make multipdisplay work by limiting selection while enabled

	* src/pgtkterm.c (pgtk_mouse_position):

	* src/pgtkselect.c (pgtk_selection_usable): new function
	(Fpgtk_own_selection_internal, Fpgtk_disown_selection_internal)
	(Fpgtk_selection_exists_p, Fpgtk_selection_owner_p)
	(Fpgtk_get_selection_internal): check usable selection

	multi-display で落ちる理由を一つ潰した。

	まだまだありそう。

	multi-display 時は selection を使えないようにした。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Improve drawing efficiency by refactoring code

		* ../src/pgtkterm.c (fill_background, fill_background_by_face)
		(x_draw_glyph_string_background, x_draw_glyph_string_bg_rect)
		(x_draw_image_glyph_string, x_draw_stretch_glyph_string)
		(pgtk_clear_under_internal_border): Refator duplicate code

	更に効率化。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	improve some efficiency - simplify draws

	* src/pgtkterm.h (struct pgtk_bitmap_record):

	* src/pgtkterm.c (create_background_surface_by_face):

	* src/image.c (image_create_pattern_from_pixbuf)
	(image_create_bitmap_from_data, image_create_bitmap_from_file):

	少し効率化。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	implement restacking and cleanup frame z order

	src/pgtkfns.c:
		(pgtk_frame_restack,  Fpgtk_frame_restack, syms_of_pgtkfns):

	pgtk-frame-restack を実装だけ。

	ついでに、pgtk-frame-list-z-order は無意味なので削除した。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	implement pgtk-frame-list-z-order same as frame-list.

	* src/pgtkfns.c (Fpgtk_frame_list_z_order): return frame list as it's
	the same

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Implement scroll-bar-foreground and scroll-bar-background

	* src/pgtkterm.h (struct pgtk_output):

	* src/pgtkterm.c (x_free_frame_resources):

	* src/pgtkfns.c (pgtk_set_scroll_bar_foreground)
	(pgtk_set_scroll_bar_background, pgtk_frame_parm_handlers)
	(Fx_create_frame):

	* src/gtkutil.c (xg_finish_scroll_bar_creation):handle scrollbar css values

	* etc/org.gnu.emacs.defaults.gschema.xml: add scroll bar fields

	scroll-bar-foreground, scroll-bar-background 実装。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	implement set-tool-bar-position and set-sticky

	* ../src/pgtkfns.c (pgtk_set_tool_bar_position)
	(pgtk_frame_parm_handlers):

	tool-bar-position 実装。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	TIMERFD support for PGTK, prevent calling when timerfd<0

		* ../src/atimer.c (set_alarm):

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Add PGTK support for fullscreen

	* src/gtkutil.c (x_wm_set_size_hint): Fullscreen support for PGTK

	fullscreen にできるようにした。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Use gsettings instead of X resource database

	* src/pgtkfns.c (pgtk_is_lower_char, pgtk_is_upper_char)
	(pgtk_is_numeric_char, parse_resource_key)
	(pgtk_get_defaults_value, pgtk_set_defaults_value)
	(Fpgtk_set_resource, pgtk_get_string_resource): handle gsettings scheme

	* m4/gsettings.m4: new file

	* etc/org.gnu.emacs.defaults.gschema.xml: new file

	* configure.ac (GLIB_DISABLE_DEPRECATION_WARNINGS)
	(gsettingsschemadir):

	* Makefile.in (gsettingsschemadir, GLIB_COMPILE_SCHEMAS)
	(install, uninstall, clean):

	* .gitignore: add gschema

	*.gschema.valid は生成ファイルなので無視。

	schema の置き場所を変更。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Implement Meta key detection

		* ../src/pgtkterm.c (x_find_modifier_meanings, )
		(key_press_event, construct_mouse_click, scroll_event)
		(pgtk_term_init):

		* src/pgtkterm.h (struct pgtk_display_info):

		* ../src/gtkutil.c (xg_tool_bar_callback):

	meta キーの検出を実装。

	X11 で alt キーを meta キーとして使えなくなっていたのを修正。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Implement invisible-pointer to create blinking effect

	* src/pgtkterm.h (struct pgtk_display_info): add cursor and callback

	* src/pgtkterm.c (x_setup_pointer_blanking)
		(XTtoggle_invisible_pointer, x_toggle_visible_pointer): new functions
		(pgtk_create_terminal, pgtk_term_init): use gdkcursor

	* src/pgtkgui.h: define Emacs_cursor as a GdkCursor

	invisible pointer 実装。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	init border_pixel.

	* ../src/pgtkfns.c (Fx_create_frame): remove if preprocessor

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	border_color/pixel width

	* src/pgtkterm.h (struct pgtk_output):

	* src/pgtkterm.c (x_free_frame_resources, frame_highlight)
	(frame_unhighlight, pgtk_frame_rehighlight): use css information

	* src/pgtkfns.c (x_set_border_color, pgtk_frame_parm_handlers)
	(Fx_create_frame): new functions connected

	* src/frame.c (gui_set_border_width): ifdef for PGTK

	border_color/pixel 対応。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Add support for handing the internal border

	src/pgtkterm.c (pgtk_clear_under_internal_border): remove #if 0
	src/pgtkfns.c (x_set_internal_border_width): add clear and fill support

	internal-border 対応。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Addframe highlighting support

		* ../src/pgtkterm.c:
		(pgtk_focus_frame, set_opacity_recursively, x_set_frame_alpha)
		(frame_highlight, frame_unhighlight, pgtk_frame_rehighlight)
		(XTframe_rehighlight, x_new_focus_frame, pgtk_create_terminal):

	frame の highlight に対応。

	とりあえず opacity のみ対応。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Add Stipple support for PGTK

	* ../src/pgtkterm.c (create_background_surface_by_face)
	(create_background_surface, x_draw_glyph_string_background)
	(x_draw_glyph_string_bg_rect, x_draw_image_glyph_string)
	(x_draw_stretch_glyph_string, pgtk_draw_fringe_bitmap): handle stipple

	* ../src/image.c (image_create_bitmap_from_file, )
	(syms_of_image): Add pgtk support

	* ../lisp/faces.el (face-valid-attribute-values): add pgtk support

	stipple 対応。

	stipple がまともに動いてなかったので修正。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Add support for make-frame-(in)visible

	* ../src/pgtkterm.c (pgtk_make_frame_visible_wait_for_map_event_cb)
		(pgtk_make_frame_visible_wait_for_map_event_timeout)
		(x_make_frame_visible, x_new_font)
		(pgtk_make_frame_visible_invisible, pgtk_make_frame_visible)
		(pgtk_redisplay_interface, pgtk_create_terminal, map_event)
		(syms_of_pgtkterm):

	make-frame-visible/invisible 実装。

2020-11-21  Jeff Walsh  <fejfighter@gmail.com>

	Early toolbar improvements

	* src/xdisp.c (redisplay_tool_bar):

	* src/pgtkterm.h:

	* src/pgtkterm.c:
	(pgtk_make_frame_visible, pgtk_make_frame_invisible)
	(pgtk_update_begin, pgtk_parse_color, pgtk_query_colors)
	(syms_of_pgtkterm):

	* src/pgtkfns.c: cleanup function

	* src/image.c (image_create_bitmap_from_file):

	* src/gtkutil.c (xg_get_pixbuf_from_pix_and_mask):

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Add Preferred geometry settings

	* ../src/pgtkterm.h (struct pgtk_output):

	* ../src/pgtkterm.c (pgtk_set_window_size):

	* ../src/gtkutil.c (x_wm_set_size_hint):

	* ../src/emacsgtkfixed.c (emacs_fixed_get_preferred_width)
	(emacs_fixed_get_preferred_height):

	Fixup toolbar handling

	toolbar, menubar の ON/OFF でサイズが変化していっていたのを修正。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Migrate to Emacs_GC

	* ../src/xfaces.c (x_create_gc, x_free_gc):

	* ../src/pgtkterm.h (struct pgtk_output, struct pgtk_output):

	* ../src/pgtkterm.c (x_set_cursor_gc, x_set_mouse_face_gc)
	(x_setup_relief_color, x_draw_image_foreground_1)
	(x_draw_image_foreground)
	(pgtk_cr_draw_image, pgtk_draw_fringe_bitmap)
	(pgtk_begin_cr_clip, pgtk_set_cr_source_with_gc_foreground)
	(pgtk_set_cr_source_with_gc_background):

	* ../src/pgtkgui.h:

	* ../src/dispextern.h (struct glyph_string): clean up XGCValues  emulation

	XGCValues, GC 廃止。

	Emacs_GC に統一。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Add pgtk-read-file-name function

	* ../src/pgtkfns.c (read_file_name_closed_cb)
		(Fpgtk_read_file_name, syms_of_pgtkfns): add function

	pgtk-read-file-name を作成。

	toolbar からよく呼ばれるので…

2020-11-21  Jeff Walsh  <fejfighter@gmail.com>

	Implement menubar for pgtk emacs

		* src/xdisp.c (display_menu_bar): add pgtk case

		* ../src/pgtkterm.c (pgtk_create_terminal): update hooks
		(pgtk_menu_show): delete

		* src/pgtkterm.h: add decls

		* src/pgtkmenu.c: new file

		* ../src/pgtkfns.c (x_set_menu_bar_lines)
		(x_change_tool_bar_height, x_set_tool_bar_lines)
		(Fx_create_frame):

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Cleanup x_* to gui_ to match upstream work

	* ../src/pgtkterm.h (struct pgtk_display_info):

	* ../src/pgtkterm.c (mark_pgtkterm, x_free_frame_resources)
	(pgtk_update_window_end, pgtk_mouse_position)
	(pgtk_redisplay_interface, pgtk_query_frame_background_color)
	(pgtk_delete_terminal, pgtk_create_terminal)
	(pgtk_query_frame_background_color, frame_highlight)
	(motion_notify_event, button_event, scroll_event):

	* ../src/pgtkfns.c (x_set_cursor_color, x_icon)
	(pgtk_frame_parm_handlers, x_default_font_parameter)
	(Fx_create_frame):

	"for the time being, commit" -- rename x->gui, frame_X_X(f) macros

	ひとまず commit。

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Simplify compilation condition

		* ../src/menu.c (single_menu_item):

	change condition.

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	replace listn with list.

		* ../src/pgtkfns.c (frame_geometry):

	replace listn with list.

2020-11-21  Yuuki Harano  <masm+github@masm11.me>

	Fix xdg-open handling

	* ../src/pgtkterm.c (pgtk_term_init, NUM_ARGV, pgtk_term_init):

	* ../lisp/net/browse-url.el (browse-url):

	xdg-open できなかったのを修正。

2020-11-21  Yuuki Harano  <masm@masm11.ddo.jp>

	Add support for cursor_foreground_colors

		* ../src/pgtkterm.c (x_set_cursor_gc):

		* ../src/pgtkfns.c (x_set_cursor_color, Fx_create_frame)
		(syms_of_pgtkfns):

		* src/pgtkterm.h (struct pgtk_output):

	cursor_foreground_color 対応。

	あんまり意味なかった感じ。

2020-11-21  Yuuki Harano  <masm@masm11.ddo.jp>

	Don't mark name_list_element as it's not required

	* ../src/pgtkterm.c (mark_pgtkterm):

	これは余分。

2020-11-21  Yuuki Harano  <masm@masm11.ddo.jp>

	Add set_skip_taskbar frame parm

	* src/pgtkfns.c (x_set_skip_taskbar, pgtk_frame_parm_handlers):
	  Add set_skip_taskbar

2020-11-21  Yuuki Harano  <masm@masm11.ddo.jp>

	Add set_undecorated frame parameter

	* src/pgtkfns.c (x_set_undecorated, pgtk_frame_parm_handlers): Add
	undecorated frame parameter handle

2020-11-21  Yuuki Harano  <masm@masm11.ddo.jp>

	Introduce Pure GTK3 port

	* src/xsettings.h:

	* src/xsettings.c:
	(dpyinfo_valid, store_tool_bar_style_changed)
	(XSETTINGS_FONT_NAME, get_prop_window, read_settings)
	(apply_xft_settings, read_and_apply_settings)
	(xft_settings_event, init_xsettings, xsettings_initialize):

	* src/xfaces.c:
	(x_create_gc, x_free_gc):

	* src/xdisp.c (redisplay_tool_bar, redisplay_internal)
	(draw_glyphs_debug, draw_glyphs, mouse_face_from_buffer_pos)
	(note_mouse_highlight):

	* src/terminal.c (Fterminal_live_p):

	* src/termhooks.h (enum output_method, GCALIGNED_STRUCT)
	(TERMINAL_FONT_CACHE):

	* src/process.c (wait_reading_process_output):

	* src/pgtkterm.h:

	* src/pgtkterm.c:

	* src/pgtkselect.h:

	* src/pgtkselect.c:

	* src/pgtkgui.h:

	* src/pgtkfns.c:

	* src/image.c:
	(XGetPixel, XPutPixel, image_create_bitmap_from_data)
	(image_create_bitmap_from_file, free_bitmap_record)
	(image_destroy_x_image, gui_put_x_image, image_get_x_image)
	(Create_Pixmap_From_Bitmap_Data, xbm_load_image, )
	(xpm_load_image, lookup_rgb_color, image_disable_image)
	(image_build_heuristic_mask, imagemagick_load_image):

	* src/gtkutil.h:

	* src/gtkutil.c (PGTK_TRACE, xg_set_screen, xg_display_open)
	(xg_display_close, xg_create_default_cursor)
	(xg_get_pixbuf_from_pix_and_mask, xg_check_special_colors)
	(qttip_cb, hierarchy_ch_cb, xg_prepare_tooltip, )
	(xg_show_tooltip, xg_hide_tooltip, xg_frame_resized)
	(xg_frame_set_char_size, xg_height_or_width_changed)
	(xg_set_widget_bg, style_changed_cb, xg_create_frame_widgets)
	(xg_free_frame_widgets, x_wm_set_size_hint, xg_frame_restack)
	(xg_mark_data, xg_update_frame_menubar, free_frame_menubar)
	(xg_update_submenu, xg_finish_scroll_bar_creation)
	(xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos)
	(xg_set_toolkit_scroll_bar_thumb, xg_event_is_for_scrollbar)
	(draw_page, xg_pack_tool_bar, xg_create_tool_bar)
	(xg_update_tool_bar_sizes, update_frame_tool_bar)
	(free_frame_tool_bar, xg_change_toolbar_position):

	* src/ftcrfont.c:
	(ftcrfont_draw):

	* src/fringe.c:
	(init_fringe_bitmap):

	* src/frame.h (GCALIGNED_STRUCT, FRAME_WINDOW_P):

	* src/frame.c (Fframep):

	* src/font.h:

	* src/font.c (syms_of_font):

	* src/emacsgtkfixed.c:
	(emacs_fixed_get_preferred_width)
	(emacs_fixed_get_preferred_height, XSetWMSizeHints):

	* src/emacs.c (main):

	* src/dispnew.c (init_display_interactive):

	* src/dispextern.h:

	* src/alloc.c:
	(garbage_collect):

	* src/Makefile.in (PGTK_OBJ, PGTK_LIBS, base_obj, LIBES):

	* src/.gdbinit:

	* lisp/url/url-privacy.el (url-setup-privacy-info):

	* lisp/term/pgtk-win.el (featurep):

	* lisp/startup.el (command-line, fancy-splash-frame):

	* lisp/net/eww.el (eww-form-submit, eww-form-file)
	(eww-form-checkbox, eww-form-select):

	* lisp/mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event):

	* lisp/loadup.el (featurep):

	* lisp/international/mule-cmds.el (set-coding-system-map):

	* lisp/frame.el (pgtk-frame-geometry, frame-geometry)
	(w32-frame-edges, frame-edges)
	(pgtk-mouse-absolute-pixel-position)
	(mouse-absolute-pixel-position)
	(pgtk-set-mouse-absolute-pixel-position)
	(pgtk-frame-list-z-order, frame-list-z-order)
	(pgtk-frame-restack, frame-restack, display-mouse-p)
	(display-graphic-p, display-symbol-keys-p, )
	(display-pixel-height, display-mm-height, display-mm-width)
	(display-backing-store, display-save-under, display-color-cells)
	(display-planes, display-visual-class)
	(pgtk-display-monitor-attributes-list)
	(display-monitor-attributes-list):

	* lisp/faces.el (face-spec-set-match-display, tool-bar):

	* lisp/cus-edit.el (custom-button, custom-button-mouse)
	(custom-button-pressed, custom-display):

	* configure.ac (AUTO_DEPEND, XARGS_LIMIT, XWIDGETS_OBJ):

2020-11-10  John Wiegley  <johnw@newartisans.com>

	Update version to 2.4.1

2020-11-03  João Távora  <joaotavora@gmail.com>

	Don't force eglot-strict-mode completely in eglot--dcase

	Doing so was by design, since there's much ambiguity between the
	CodeAction and Command objects.  But 'disallow-non-standard-keys is
	not necessary to disambiguate, and proved harmful in this bug.

	* eglot.el (eglot--dcase): Don't disallow
	(eglot--check-dspec): Fix docstring.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/558

2020-11-01  Damien Merenne  <damien@bloom-life.com>
	    João Távora  <joaotavora@gmail.com>

	Handle lsp 3.15's ispreferred code action property

	* eglot.el (eglot--lsp-interface-alist): Add :isPreferred to CodeAction.
	(eglot-client-capabilities):  Announce :isPreferredSupport.
	(eglot-code-actions): Consider preferred CodeAction item.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/558

2020-10-24  João Távora  <joaotavora@gmail.com>

	Don't send json null (elisp nil) down the wire

	* eglot.el (eglot-initialization-options)
	(eglot-client-capabilities): Use eglot--{}, not nil.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/300

2020-08-30  R Primus  <rprimus@users.noreply.github.com>  (tiny change)

	Unbreak haskell's hie-wrapper built-in incantation

	* eglot.el (eglot-server-programs): Add required argument for hie-wrapper

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/528

2020-08-21  Paul M. Rodriguez  <paulmrodriguez@gmail.com>  (tiny change)

	Provide suitable default to m-x eglot-rename


	* eglot.el (eglot-rename): Provide a default value.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/524

2020-08-21  Naoya Yamashita  <conao3@gmail.com>

	add multiple and eval :custom-face usage

	This commit follows suggestion at https://github.com/jwiegley/use-package/issues/696, https://github.com/jwiegley/use-package/issues/821

2020-08-16  João Távora  <joaotavora@gmail.com>

	Correct paren mismatch blunder introduced by earlier commit

	Per https://github.com/joaotavora/eglot/issues/512.

	* eglot.el (eglot-server-programs): properly close parenthesis.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/521

2020-08-16  Steven vanZyl  <rushsteve1@rushsteve1.us>  (tiny change)
	    João Távora  <joaotavora@gmail.com>

	Add built-int support for godot engine


	* README.md: mention Godot

	* eglot.el (eglot-server-programs): Add godot engine via port

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/511

2020-08-11  Kaleb Elwert  <belak@coded.io>  (tiny change)

	Remove use-package-font-lock-keywords

2020-08-05  John Wiegley  <johnw@newartisans.com>

	Merge pull request from wyuenho/patch-1

	GitHub-reference: https://github.com/jwiegley/use-package/issues/846

2020-08-03  Philipp Stephani  <phst@google.com>

	Migrate remaining files to lexical binding

2020-07-27  Andrew Schwartzmeyer  <andrew@schwartzmeyer.com>  (tiny change)
	    João Távora  <joaotavora@gmail.com>

	Ensure completion terminates in correct buffer

	To design a completion-in-region-function replacement that leverages
	the elements in completion-at-point-functions, we must ensure that
	their :exit-function parts execute in the correct buffer.  That is the
	buffer where the text to be completed lives, not necessarily the
	buffer being used for user interaction.

	Later on, this guarantee should be provided by Emacs itself, perhaps
	by putting the correct with-current-buffer call in completion--done.


	* eglot.el (eglot-completion-at-point): Ensure :exit-function's
	buffer is where the source is.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/505

2020-07-21  Jimmy Yuen Ho Wong  <wyuenho@gmail.com>

	Merge branch 'master' into patch-1

2020-07-21  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tzz/custom-set-default

	GitHub-reference: https://github.com/jwiegley/use-package/issues/855

2020-07-13  João Távora  <joaotavora@gmail.com>

	Use a hash-table for storing resolved completions

	* eglot.el (eglot-completion-at-point): use a hash-table for
	storing resolved completions.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/510

2020-07-13  João Távora  <joaotavora@gmail.com>

	Reload eldoc if needed on emacs < 28

	ElDoc is preloaded in Emacs, so `require`-ing won't guarantee we are
	using the latest version from GNU Elpa when we load eglot.el.  Use an
	heuristic to see if we need to `load` it in Emacs < 28.

	* eglot.el (Package-Requires): Require eldoc 1.5.0
	(top): Sometimes load eldoc

2020-07-12  Ted Zlatanov  <tzz@lifelogs.com>

	Update the documentation for :custom as per

	GitHub-reference: https://github.com/jwiegley/use-package/issues/850

2020-07-12  Jimmy Yuen Ho Wong  <wyuenho@gmail.com>

	Fix broken test due to

	GitHub-reference: https://github.com/jwiegley/use-package/issues/850

2020-07-11  João Távora  <joaotavora@gmail.com>

	Fix sorting of completion items

	This fixes a problem pointed out by Yuwei Tian <ibluefocus@gmail.com>.

	* eglot.el (eglot-completion-at-point): Fix getting :sortText content
	of the completion item.

	GitHub-reference: closes https://github.com/joaotavora/eglot/issues/509

2020-07-09  João Távora  <joaotavora@gmail.com>

	* eglot.el (package-requires): require flymake 1.0.9 and eldoc 1.2.0

2020-07-09  João Távora  <joaotavora@gmail.com>

	Delegate "hover" and "signature" doc synchronization efforts to eldoc

	Uses Eldoc's eldoc-documentation-functions variable.  In Eldoc v1.0.0
	that variable was already available as a way of handling/composing
	multiple docstrings from different sources, but it didn't work
	practically with multiple concurrent async sources.  This was fixed in
	1.1.0, which Eglot now requires.

	This fixes the synchronization problems reported in https://github.com/joaotavora/eglot/issues/494 and also
	issue https://github.com/joaotavora/eglot/issues/439.  It is likely that some of the exact doc-composing
	functionality in Eglot, (developed during those issues) was lost, and
	has to be remade, quite likely in Eldoc itself.

	Flymake is now also an Eldoc producer, and therefore the problems of
	github issues https://github.com/joaotavora/eglot/issues/481 and https://github.com/joaotavora/eglot/issues/454 will also soon be fixed as soon as Eglot
	starts using the upcoming Flymake 1.0.9.

	* NEWS.md: New entry.

	* README.md (eglot-put-doc-in-help-buffer)
	(eglot-auto-display-help-buffer):  Remove mention to these options.

	* eglot.el
	(Package-Requires:) Require eldoc.el 1.1.0.
	(eglot--when-live-buffer): Rename from eglot--with-live-buffer.
	(eglot--when-buffer-window): New macro.
	(eglot--after-change, eglot--on-shutdown, eglot-ensure): Use eglot--when-live-buffer.
	(eglot--managed-mode): Use eglot-documentation-functions and eldoc-documentation-strategy.
	(eglot--highlights): Move down.
	(eglot-signature-eldoc-function, eglot-hover-eldoc-function)
	(eglot--highlight-piggyback):  New eldoc functions.
	(eglot--help-buffer, eglot--update-doc)
	(eglot-auto-display-help-buffer, eglot-put-doc-in-help-buffer)
	(eglot--truncate-string, eglot-doc-too-large-for-echo-area)
	(eglot-help-at-point): Remove all of this.
	(eglot--apply-workspace-edit): Call eldoc manually after an edit.
	(eglot-mode-map): Remap display-local-help to eldoc-doc-buffer

2020-07-07  Jimmy Yuen Ho Wong  <wyuenho@gmail.com>

	better tests

2020-07-07  Jimmy Yuen Ho Wong  <wyuenho@gmail.com>

	add test for

	GitHub-reference: https://github.com/jwiegley/use-package/issues/845

2020-07-07  Jimmy Yuen Ho Wong  <wyuenho@gmail.com>

	Support keymap symbol in bind-key

	GitHub-reference: fix https://github.com/jwiegley/use-package/issues/845

2020-06-29  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tzz/custom-set-default

	use-package-core.el: use the Emacs set-default function to avoid saving :custom vars twice
	GitHub-reference: https://github.com/jwiegley/use-package/issues/850

2020-06-22  Ted Zlatanov  <tzz@lifelogs.com>

	use-package-core.el: use the Emacs set-default function to avoid saving :custom vars twice

2020-06-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jjlee/call-hooks-even-if-no-config

	GitHub-reference: https://github.com/jwiegley/use-package/issues/840

2020-06-18  John Wiegley  <johnw@newartisans.com>

	Merge branch 'master' into call-hooks-even-if-no-config

2020-05-31  João Távora  <joaotavora@gmail.com>

	Fix small problems around eglot's help buffer

	Specifically:

	- correctly format the message shown to the user about doc being truncated
	- don't show message if the buffer is showing in some frame's window
	- correctly name the help buffer switched to with `C-h .'.

	This is still not ideal:

	- When the `C-h .' suggestion is shown to the user, typing that keybinding
	  shouldn't result in a new LSP request to fetch probably the same info;
	- All this functionality belongs in eldoc.el.

	* eglot.el (eglot-help-at-point): Fix buffer name.
	(eglot--update-doc): Provide more help.

2020-05-30  Andrii Kolomoiets  <andreyk.mad@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Simplify eglot-code-actions

	If no region is active, ask for code actions at point, even if there
	are no diagnostics at point.


	* eglot.el (eglot-code-actions): Simplify.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/473

2020-05-26  Andrii Kolomoiets  <andreyk.mad@gmail.com>

	Use filter-buffer-substring to get buffer text

	This way modes used to represent hover info text, such as
	gfm-view-mode can e.g. filter out invisible text by providing own
	`filter-buffer-substring-function'.

	* eglot.el (eglot--format-markup): Use `filter-buffer-substring'.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/482

2020-05-26  João Távora  <joaotavora@gmail.com>

	Replace uses of project-roots with project-root

	* eglot.el (Package-Requires): Require project 0.3.0.
	(eglot--connect, eglot-handle-request)
	(eglot-initialization-options, eglot--eclipse-jdt-contact): Use
	project-root.

2020-05-26  Gary Oberbrunner  <garyo@oberbrunner.com>  (tiny change)

	Also consider label of a completionitem for snippets


	* eglot.el (eglot-completion-at-point): Consider label when
	expanding snippets.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/480

2020-05-25  Andrii Kolomoiets  <andreyk.mad@gmail.com>
	    Andreii Kolomoiets  <andreyk.mad@gmail.com>

	Rework computation of string given to eldoc (again)


	Also do some refactoring to join similar logic in
	eglot-doc-too-large-for-echo-area and eglot--truncate-string.

	* eglot.el (eglot-doc-too-large-for-echo-area): Now returns the
	number of lines available.
	(eglot--truncate-string): New helper.
	(eglot--first-line-of-doc, eglot--top-lines-of-doc): Remove.
	(eglot--update-doc): Use new helpers.

	* eglot-tests.el (hover-multiline-doc-locus): New test

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/459

2020-05-25  Philipp Stephani  <p.stephani2@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Fix type error in eglot--xref-make-match

	Its first argument is passed to xref-make-match, which expects a string
	as its SUMMARY argument, but symbol-at-point returns a symbol.


	* eglot.el (eglot--lsp-xrefs-for-method): use symbol-name.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/488

2020-05-21  Rudolf Schlatte  <rudi@constantly.at>

	Add support for erlang_ls

	* README.md: Mention erlang_ls

	* eglot.el (eglot-server-programs): Add erlang_ls

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/471

2020-05-20  John Wiegley  <johnw@newartisans.com>

	Merge pull request from nahuel/patch-1

	GitHub-reference: https://github.com/jwiegley/use-package/issues/843

2020-05-20  Nahuel Greco  <ngreco@gmail.com>

	typo, should be a vector, not a bytecode object

	Solves https://github.com/jwiegley/use-package/issues/842

2020-05-18  João Távora  <joaotavora@gmail.com>

	Correctly place diagnostics in narrowed buffers

	* eglot.el (eglot--lsp-position-to-point)
	(eglot-handle-notification): save-restriction and widen

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/479

2020-05-16  João Távora  <joaotavora@gmail.com>

	Require xref, project and eldoc from gnu elpa

	* Makefile (ELPADEPS): Install Xref, Project and Eldoc.

	* eglot.el (Package-Requires): Require Xref, Project and Eldoc
	from GNU ELPA.

2020-05-14  Dan Davison  <dandavison7@gmail.com>

	Prompt for executable if supplied name does not exist

	* eglot.el (eglot--guess-contact): Interpret a list containing a
	  single string as an executable when forming the interactive prompt.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/474
	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/478

2020-05-12  Dan Davison  <dandavison7@gmail.com>  (tiny change)

	Don't call flymake report function if flymake is disabled

	Also fix https://github.com/joaotavora/eglot/issues/472.


	* eglot.el (eglot-handle-notification): Check that flymake-mode is
	  active before calling flymake report function.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/468

2020-05-09  John Lee  <jjl@pobox.com>  (tiny change)

	Add special value back again, in case needed for backwards compat

	I don't know why this special value exists, but perhaps old client code uses it.

	The additional `t' in the macro expansion is accidental but not harmful I guess.

2020-05-09  John Lee  <jjl@pobox.com>  (tiny change)

	Even when there's no :config, run any pre/post config hooks

	i.e., following the existing docs for use-package-inject-hooks, these hooks are
	run:

	use-package--foo--pre-config-hook
	use-package--foo--post-config-hook

	This should make config customizations more predictable (for example, spacemacs
	uses these hooks extensively to allow 'layers' to be customized).

	I got rid of the "special" default value for :config, because it doesn't seem to
	be treated any differently than nil.

	Fixes https://github.com/jwiegley/use-package/issues/785

2020-05-07  Tobias Rittweiler  <trittweiler@gmail.com>

	Fix "free variable" warning

	* eglot.el (eglot-events-buffer): Use `eglot-current-server' instead
	  of `eglot--cached-server' because the latter is declared later in
	  the file.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/460

2020-05-06  Andrii Kolomoiets  <andreyk.mad@gmail.com>

	Remove trailing whitespaces

	* eglot.el (defvar company-backends, eglot-code-actions):
	Remove trailing whitespace

2020-05-03  João Távora  <joaotavora@gmail.com>

	Simplify bug-reporting instructions

	We assume the user has a recent enough jsonrpc.el that consolidates
	events and stderr int the same transcript.

	* README.md (Reporting bugs): Simplify instructions.

	* eglot.el (eglot-events-buffer): Can work with no server.

2020-05-03  João Távora  <joaotavora@gmail.com>

	Survive hover responses with empty markdown strings

	* eglot.el (eglot-help-at-point): Protect against null eglot--hover-info

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/433

2020-05-03  João Távora  <joaotavora@gmail.com>

	Remap display-local-help (c-h .) to eglot-help-at-point

	* eglot.el (eglot-help-at-point): Fallback to display-local-help if no
	hover doc
	(eglot-mode-map): Remap display-local-help to eglot-help-at-point..

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/437

2020-05-03  Theodor Thornhill  <theo@thornhill.no>
	    João Távora  <joaotavora@gmail.com>

	Tweak handling of eldoc-echo-area-use-multiline-p

	Also close https://github.com/joaotavora/eglot/issues/453


	* eglot.el (eglot--first-line-of-doc): New helper.
	(eglot--update-doc): Tweak docstring.  Simplify.
	(eglot-put-doc-in-help-buffer): Tweak docstring

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/443

2020-05-02  João Távora  <joaotavora@gmail.com>

	Fontify markdown source code blocks by default

	* eglot.el (eglot--format-markup): Set
	markdown-fontify-code-blocks-natively to t locally.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/408

2020-05-02  Felicián Németh  <felician.nemeth@gmail.com>

	Declare markdown support iff gfm-view-mode installed

	* eglot.el (eglot-client-capabilities): Support markdown only when
	gfm-view-mode is installed.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/408

2020-05-02  Theodor Thornhill  <theo@thornhill.no>
	    João Távora  <joaotavora@gmail.com>

	Always string-trim markup


	* eglot.el: (eglot--format-markup): Factor string trim out
	so we string-trim for all cases

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/450

2020-05-02  João Távora  <joaotavora@gmail.com>

	Kind of honor eldoc-echo-area-use-multiline-p

	A reworking of an idea and original implementation by Andrii
	Kolomoiets <andreyk.mad@gmail.com>.  It doesn't honor it completely
	because the semantics for a non-t, non-nil value are tricky.  And we
	don't always exactly know what the symbol prefix reliably.

	* eglot.el (eglot--update-doc): Kind of honor
	eldoc-echo-area-use-multiline-p.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/443

2020-05-02  Dan Davison  <dandavison7@gmail.com>

	Unbreak eglot--guess-contact for host-and-port case

	* eglot.el (eglot--guess-contact): Fix bug in (host port) connection
	case.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/446

2020-05-02  Dan Davison  <dandavison7@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Tweak docstring of eglot-server-programs


	* eglot.el (eglot-server-programs): Fix typos and phrasing.

2020-05-02  Ingo Lohmar  <ingo.lohmar@posteo.net>

	Support hierarchical documentsymbol in eglot-imenu

	A reworking of an original implementation by Ingo Lohmar
	<ingo.lohmar@github.com>

	* eglot.el (eglot-client-capabilities, defvar): Add
	DocumentSymbol.
	(eglot-client-capabilities): Add
	:hierarchicalDocumentSymbolSupport.
	(eglot--parse-DocumentSymbol): Remove.
	(eglot-imenu): Rewrite.

	* NEWS.md (1.7): Mention new feature

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/303

2020-05-02  João Távora  <joaotavora@gmail.com>

	Also check types when destructuring lsp objects

	The problem in this issue is that the disambiguation between Command
	and CodeAction objects can only be performed by checking the types of
	the keys involved.  So we added that to the spec and check it at
	runtime.

	* eglot.el (eglot--lsp-interface-alist): Add types to
	Command. Tweak docstring.
	(eglot--check-object): Renamed from eglot--call-with-interface.
	(eglot--ensure-type): New helper.
	(eglot--interface): New helper.
	(eglot--check-dspec): Renamed from eglot--check-interface.
	(eglot--dbind): Simplify.
	(eglot-code-actions): Adjust indentation.

	* eglot-tests.el (eglot-dcase-issue-452): New test.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/452

2020-04-27  Andrii Kolomoiets  <andreyk.mad@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Hide eldoc-message on empty hover info


	* eglot.el (eglot-eldoc-function): Pass nil to eglot--update-doc
	on empty hover info.
	(eglot--update-doc): Skip update eglot help buffer if string
	is nil.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/439

2020-04-27  Tobias Rittweiler  <trittweiler@gmail.com>

	Tests: print contents of *eglot ...* buffers in batch mode.

	Useful for the CI on github. To be able to see more of the context of
	a failure.

	* eglot.el (eglot-server-initialized-hook): Changed semantics. Now
	called when an instance of `eglot-lsp-server' is created as part of
	the "connect to server" flow. Previously, there was no difference
	between this hook and `eglot-connect-hook' which continues to be run
	once a connection was successfully established. The
	`eglot-server-initialized-hook' will now capture ALL server instances
	including those that failed to be started. This change was necessary
	to make the test suite be able to dump the output of processes that
	fail to start when running the test suite in batch mode ("make check"
	and the CI.) In PR https://github.com/joaotavora/eglot/issues/448 it was decided that it is ok to change the
	semantics of this hook rather than introducing a new hook.
	(eglot--connect): Change place of where the hook is run.
	(eglot-connect-hook): Initialized now with
	`eglot-signal-didChangeConfiguration' which was kept in
	`eglot-server-initialized-hook' before.

	* eglot-tests.el (eglot--call-with-fixture): Use
	`eglot-server-initialized-hook' rather than `eglot-connect-hook'. And
	dump the contents of the *EGLOT ...* buffers when run in
	`noninteractive' (i.e. batch) mode.
	(eglot--cleanup-after-test): New auxiliary function. Extracted
	verbatim out of `eglot--call-with-fixture` in order to lower the
	latter's LOC.

2020-04-24  Trevor Murphy  <trevormurphy@google.com>

	Create match xrefs when possible

	"Match xrefs" are created with `xref-make-match' instead of
	`xref-make'.  Match xrefs support `xref-query-replace-in-results' from
	the results buffer.

	* eglot.el (eglot--xref-make-match): Calculate xref match length from
	  the eglot range.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/435

2020-04-24  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot-put-doc-in-help-buffer): tiny docstring fix.

2020-04-24  João Távora  <joaotavora@gmail.com>

	Don't reupdate help buffer if already rendered

	* eglot.el (eglot--update-doc): Don't reupdate if doc buffer
	already exists.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/445

2020-04-23  Andrii Kolomoiets  <andreyk.mad@gmail.com>

	Use text-mode for plaintext markup

	* eglot.el (eglot--format-markup): Use text-mode for
	plaintext markup.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/444

2020-04-16  Felicián Németh  <felician.nemeth@gmail.com>

	Update dependencies and copyright years

	* eglot.el: Update dependencies and copyright years.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/413

2020-04-16  Theodor Thornhill  <theo@thornhill.no>
	    João Távora  <joaotavora@gmail.com>

	Simplify a bit of code


	* eglot.el (eglot-move-to-lsp-abiding-column): use
	already existing function to refer to lsp-abiding-column

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/397

2020-04-16  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 1.6

	* NEWS.md: Bump to 1.6

2020-04-16  Felicián Németh  <felician.nemeth@gmail.com>
	    João Távora  <joaotavora@gmail.com>

	Abide by lsp when reporting and moving to columns

	* eglot.el (eglot-current-column-function): Set to
	eglot-lsp-abiding-column.
	(eglot-move-to-column-function): Set to
	eglot-move-to-lsp-abiding-column.

	* NEWS.md: Log the change here as well.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/361

2020-04-16  João Távora  <joaotavora@gmail.com>

	Fix eglot-move-to-lsp-abiding-column ()

	Ensure conformance with the this part of the specification: "if the
	character value is greater than the line length it defaults back to
	the line length."

	* eglot.el: (eglot-move-to-lsp-abiding-column): Don't move beyond
	line-end.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/361

2020-04-16  Felicián Németh  <felician.nemeth@gmail.com>

	Send shutdown and exit messages without arguments

	Fix regression introduced in 70e6157b (https://github.com/joaotavora/eglot/issues/315).  According to the
	LSP specification the exit notification and the shutdown request
	shouldn't have arguments ("params: void").  Note that jsonrpc.el
	send nil as null on the wire.

	* eglot.el (eglot-shutdown): Change back the arguments of
	:shutdown and :exit to nil.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/430

2020-03-22  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jwiegley/johnw/clarify

	Clarify the documentation for :after
	GitHub-reference: https://github.com/jwiegley/use-package/issues/820

2020-03-20  Felicián Németh  <felician.nemeth@gmail.com>

	Ignore empty hover info

	This just mimics a similar check in `eglot-help-at-point'.

	* eglot.el (eglot-eldoc-function): Check emptiness of `contents' more
	carefully.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/425

2020-03-04  John Wiegley  <johnw@newartisans.com>

	Clarify the documentation for :after

2020-01-13  Felicián Németh  <felician.nemeth@gmail.com>

	Make a public reader for project-nickname

	Close https://github.com/joaotavora/eglot/issues/399.

	* eglot.el (eglot-lsp-server): Add a public reader for
	project-nickname as eglot-project-nickname.
	(eglot--connect, eglot--read-server, eglot--mode-line-format): Use
	the public variant.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/354

2020-01-13  Felicián Németh  <felician.nemeth@gmail.com>

	Add public hook eglot-managed-mode-hook

	Per https://github.com/joaotavora/eglot/issues/354.

	* eglot.el (eglot-managed-p): New function.
	(eglot--managed-mode-hook): Obsolete it.
	(eglot-managed-mode-hook): New hook variable.
	(eglot--managed-mode): Run the new hook.

	* README.md (Customization): Mention the new hook.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/182

2020-01-13  Vladimir Panteleev  <git@thecybershadow.net>  (tiny change)

	Introduce and use eglot--{}, the empty json object

	* eglot.el (Constants): Add eglot--{}.
	(eglot-shutdown, eglot--connect): Use it.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/315

2020-01-13  Vladimir Panteleev  <git@thecybershadow.net>  (tiny change)

	Call shutdown/exit methods with params:{}, not null

	"null" is not a valid JSON value for "params" according to the
	JSON-RPC specification.

	* eglot.el (eglot-shutdown): Do the same thing as for "initialized",
	and use an empty hash table to be serialized to {}.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/315

2020-01-09  Felicián Németh  <felician.nemeth@gmail.com>

	Support bug-reference-prog-mode

	* eglot.el (Local Variables): Add bug-reference-bug-regexp and
	bug-reference-url-format.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/405

2020-01-08  Felicián Németh  <felician.nemeth@gmail.com>

	Revert the last change about column calculation

2020-01-08  Felicián Németh  <felician.nemeth@gmail.com>

	Document the changes in column calculation

	* eglot.el (eglot-current-column-function)
	(eglot-move-to-column-function): Document the change of the
	default value.

	* NEWS.md: Log the change here as well.

2020-01-08  João Távora  <joaotavora@gmail.com>

	Abide by lsp when reporting and moving to columns

	* eglot.el (eglot-current-column-function): Set to
	eglot-lsp-abiding-column.
	(eglot-move-to-column-function): Set to
	eglot-move-to-lsp-abiding-column.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/361

2020-01-05  Felicián Németh  <felician.nemeth@gmail.com>

	Merge pull request from joaotavora/scratch/fix-277-exit-notification

	Fix https://github.com/joaotavora/eglot/issues/277: Send exit as a notification

	GitHub-reference: https://github.com/joaotavora/eglot/issues/400

2020-01-05  Felicián Németh  <felician.nemeth@gmail.com>

	Send exit as a notification

	This is what the specification requires.  @PerMildner, thanks for
	reporting and analyzing the issue.

	* eglot.el (eglot-shutdown): Use `notify' instead of `request' for the
	`exit' LSP method.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/277

2020-01-02  João Távora  <joaotavora@gmail.com>

	Avoid double shutdowns and simplify shutdown logic

	* eglot.el (eglot-shutdown): Don't turn off eglot--managed-mode here.
	(eglot--on-shutdown): Rather here, but without autoshutdown.
	(eglot--managed-mode): Don't check eglot--shutdown-requested.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/389

2020-01-02  Theodor Thornhill  <theo@thornhill.no>  (tiny change)
	    João Távora  <joaotavora@gmail.com>

	Use completing-read in eglot-code-actions

	See also https://github.com/joaotavora/eglot/issues/386.

	* eglot.el (eglot-code-actions): Replace tmm with completing-read

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/393

2019-12-30  Evgeni Kolev  <evgenysw@gmail.com>

	* eglot.el (eglot-eldoc-function): fix outdated docstring.

	Fix https://github.com/joaotavora/eglot/issues/387

2019-12-28  Steve Purcell  <steve@sanityinc.com>
	    João Távora  <joaotavora@gmail.com>

	Add elm-language-server as the language server for elm

	* README.md (Connecting to a server): Add elm-language-server

	* eglot.el (eglot-server-programs): Add elm-language-server

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/383

2019-12-26  Theodor Thornhill  <theo@thornhill.no>  (tiny change)
	    João Távora  <joaotavora@gmail.com>

	New eglot-confirm-server-initiated-edits defcustom

	* eglot.el (eglot-confirm-server-initiated-edits): New defcustom.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/382

2019-12-18  Augusto Stoffel  <arstoffel@gmail.com>  (tiny change)

	Add built-in support for tex and friends

	plain-tex-mode and latex-mode are derived from tex-mode.  Some other
	TeX-related modes are not, so they require an explicit mention in
	eglot-server-programs.

	* README.md (Connecting to a server): Add Digestif to the list

	* eglot.el (eglot-server-programs): Add Digestif for TeX-related modes

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/379

2019-12-17  Antoine Kalmbach  <ane@iki.fi>  (tiny change)

	Add metals as the language server for scala

	* README.md (Connecting to a server): Add metals to the list

	* eglot.el (eglot-server-programs): Add metals for scala-mode

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/376

2019-12-08  João Távora  <joaotavora@gmail.com>

	Allow non-standard keys in textdocument/publishdiagnostics.

	* eglot.el (eglot-handle-notification): Allow other keys for
	textDocument/publishDiagnostics.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/357

2019-11-30  João Távora  <joaotavora@gmail.com>

	Unbreak window/showmessagerequest

	* eglot.el (eglot-handle-request): Answer with a proper
	MessageActionItem.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/362

2019-11-26  John Wiegley  <johnw@newartisans.com>

	Merge pull request from DamienCassou/typos

	Fix typos
	GitHub-reference: https://github.com/jwiegley/use-package/issues/808

2019-11-26  Damien Cassou  <damien.cassou@gmail.com>

	Fix typos

	Typos found with codespell.

2019-11-20  João Távora  <joaotavora@gmail.com>

	Resolve compilation warnings

	* eglot.el (company-tooltip-align-annotations): Forward declare.
	(eglot--cached-server): Renamed from eglot--cached-current-server.
	(eglot--managed-mode, eglot-current-server)
	(eglot--current-server-or-lose)
	(eglot--maybe-activate-editing-mode): use it.
	(eglot-completion-at-point): Don't use insertTextFormat.

2019-11-20  João Távora  <joaotavora@gmail.com>

	Locally tweak imenu-create-index-function

	* eglot.el (eglot--managed-mode): locally tweak
	imenu-create-index-function.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/351

2019-11-18  Felicián Németh  <felician.nemeth@gmail.com>

	Fail when eglot-find-* finds no references

	* eglot.el (eglot--lsp-xref-helper): Display message when no
	references have been found instead of calling xref-find-references.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/339

2019-11-17  Xu Chunyang  <4550353+xuchunyang@users.noreply.github.com>  (tiny change)

	Waste less space in completion annotations

	* eglot.el (eglot-completion-at-point): don't add "(snippet)"

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/349

2019-11-17  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot-completion-at-point): remove spurious unrelated change.

2019-11-15  João Távora  <joaotavora@gmail.com>

	Ensure process starts in project's root

	Also fix https://github.com/joaotavora/eglot/issues/347.

	* eglot.el (eglot--connect): Bind default-directory around make
	process.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/330

2019-11-15  João Távora  <joaotavora@gmail.com>

	Let other imenu functions work if lsp server's doesn't

	* eglot.el (eglot--stay-out-of-p): New helper.
	(eglot--setq-saving): Use it.
	(eglot--managed-mode): Use add-function :before-until for
	imenu-create-index-function.
	(eglot-imenu): Don't error.  Fix indentation.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/343

2019-11-13  Felicián Németh  <felician.nemeth@gmail.com>

	Support serverinfo of lsp 3.15.0

	Add support for serverInfo from the upcoming specification.  This
	changeset just stores the info sent by the server and slightly changes
	a greeting message.  But it opens up the possibility to identify
	servers even when eglot uses a TCP connection and therefore makes
	possible to implement server specific features (in eglot-x).

	Old message:
	```
	Connected! Server `EGLOT (test-ccls/c++-mode)' now managing `c++-mode' buffers in project `test-ccls'.
	```

	New message:
	```
	Connected! Server `ccls' now managing `c++-mode' buffers in project `test-ccls'.
	```

	* eglot.el (eglot--lsp-interface-alist):  Extend it with serverInfo.
	(eglot-lsp-server): Add member variable server-info.
	(eglot--connect): Store server-info and display server's name
	when connected.

2019-11-12  r-zip  <rzpilgrim@gmail.com>  (tiny change)

	Set nobreak-char-display to nil in *eglot-help*

	* eglot.el (eglot-help-at-point): set nobreak-char-display

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/345

2019-11-10  João Távora  <joaotavora@gmail.com>

	Protect against empty-string inserttext in completions

	* eglot.el (eglot-completion-at-point): Don't use insertText as a
	proxy.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/341

2019-11-10  João Távora  <joaotavora@gmail.com>

	Provide stable eglot-current-server helper

	It's better if eglot--current-server is removed, since it was being
	abused by other packages, and has side effects.  The only place where
	it was really needed was eglot--maybe-activate-editing-mode, so the
	find-and-cache logic has been moved there.  All other places that can
	handle a nil server now use eglot-current-server, the external
	version.

	* eglot.el (eglot-shutdown, eglot, eglot--read-server)
	(eglot--mode-line-format): Use eglot-current-server.
	(eglot--connect): Update comment.
	(eglot--current-server): Remove.
	(eglot-current-server): New helper.
	(eglot--maybe-activate-editing-mode): find and cache the server here.

	* eglot-tests.el (auto-detect-running-server)
	(auto-shutdown, auto-reconnect, eglot-ensure)
	(slow-async-connection): Use eglot-current-server.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/342

2019-11-09  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsiiformes/typos

	Fix typos
	GitHub-reference: https://github.com/jwiegley/use-package/issues/804

2019-11-09  João Távora  <joaotavora@gmail.com>

	Don't choke on workspace/configuration with no scopeuri

	* eglot.el (eglot-handle-request): Don't choke on nil scopeUri.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/340

2019-11-06  Jonas Bernoulli  <jonas@bernoul.li>

	Fix typos

2019-11-05  Ingo Lohmar  <ingo.lohmar@posteo.net>

	Only set eglot--cached-current-server by (more aggressive) caching

	* eglot.el (eglot--current-server): Always set cache value.
	(eglot--maybe-activate-editing-mode): No need to set cached server.

2019-11-05  Ingo Lohmar  <ingo.lohmar@posteo.net>

	Simplify "maybe"-activation, dump "server" arg

	* eglot.el (eglot--maybe-activate-editing-mode): Remove `server' arg.

2019-11-01  Ingo Lohmar  <ingo.lohmar@posteo.net>

	Merge -onoff proxy code into minor mode function

	This simplifies bookkeeping and keeping the state of locally cached
	servers, their managed buffers, and the buffer-local mode consistent.

	The "on" case of the -onoff code now expects that
	`eglot--cached-current-server' has been set already, the "off" case uses
	the same value.

	* eglot.el (eglot--managed-mode-onoff): Remove.
	(eglot--managed-mode): Adopt code.
	(eglot--managed-mode-off): New minimal wrapper.

2019-10-30  João Távora  <joaotavora@gmail.com>

	Use  completionitem/resolve more abundantly

	It was already used to resolve documentation bits of completions, but
	it can also be useful to resolve snippet templates and such.

	To resolve a completion, you need some part of a completion to start
	with.  If it has a :data field exists and the server supports
	:resolveProvider, fetch the new object, otherwise use whatever we had
	already.

	* eglot.el (eglot-completion-at-point): Add another local
	function for resolving completions.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/50

2019-10-28  Xu Chunyang  <4550353+xuchunyang@users.noreply.github.com>  (tiny change)

	Support markdown for textdocument/hover ()

	* eglot.el (eglot-client-capabilities): announce markdown support for hover.
	(eglot--format-markup): Format hover info with Markdown.

	Fixes: https://github.com/joaotavora/eglot/issues/328

	GitHub-reference: https://github.com/joaotavora/eglot/issues/329

2019-10-27  Xu Chunyang  <4550353+xuchunyang@users.noreply.github.com>  (tiny change)

	Don't run mode hooks in eglot--format-markup

	* eglot.el (eglot--format-markup): Use delay-mode-hooks.

2019-10-26  João Távora  <joaotavora@gmail.com>

	Support workspace/configuration

	This helps users configure servers such as Gopls, which doesn't
	support didChangeConfiguration signals.

	* README.md (Per-project server configuration): New section.

	* eglot.el (eglot-workspace-configuration): Fix docstring.
	(eglot-signal-didChangeConfiguration): Rename a variable.
	(eglot-handle-request workspace/configuration): New request
	handler.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/326

2019-10-24  João Távora  <joaotavora@gmail.com>

	Expand readme.md section on handling quirky servers

	Also remove explicit cquery support (cquery seems to be dead anyway).

	* README.md (Handling quirky servers): New section.

	* eglot.el (eglot-initialization-options eglot-cquery): Remove.

2019-10-22  João Távora  <joaotavora@gmail.com>

	Unbreak imenu

	* eglot.el (eglot-imenu): Unbreak.

2019-10-21  João Távora  <joaotavora@gmail.com>

	Force company to align completion annotations in eglot sessions

	* eglot.el (eglot--managed-mode): force
	company-tooltip-align-annotations to t.

2019-10-21  João Távora  <joaotavora@gmail.com>

	Fix race condition when company-completing quickly

	For some reason, probably related to the way that Eglot tries to
	maintain the responsiveness of Company completion tooltips (see
	below), the user's explicit input will sometimes be surprisingly
	deleted by Company, leading to a horrible completion experience.

	This is sometimes hard to reproduce, but appears to match this
	description perfectly:
	https://github.com/joaotavora/eglot/issues/319#issuecomment-542955432

	Fortunately, Company has a good fix for this, which is to pass
	`:company-require-match 'never` in the completion-at-point function.
	This is the fix applied in this commit.

	However, this line shouldn't be required since the default value for
	`company-require-match` is `company-explicit-action-p`, presumably
	meaning that the auto-deletion should never take place for characters
	typed by the user.

	This points to a bug in Company, or at least something which may have
	been exacerbated by the way that Eglot aggressively fetches
	completions from the server by passing :cancel-on-input to
	`jsonrpc-request`, discarding out-of-date replies.  Perhaps that
	discarding step bears with it some side-effects that make the
	`company-explicit-action-p` test return `nil` instead of the correct
	`t`.  Company interprets this as carte blanche to delete the last
	inserted character.

	* eglot.el (eglot-completion-at-point): Use :company-require-match
	'never.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/319

2019-10-21  João Távora  <joaotavora@gmail.com>

	Unbreak m-x vc-revert, which reverts preserving modes

	Unlike the normal revert-buffer command, vc-revert, doesn't re-apply
	the major mode, meaning it was missing a didOpen to pair with the
	didClose that is unconditionally sent on both commands.

	Needed to use the dynamic variable revert-buffer-preserve-modes, and,
	curiously, also forward-declare it to appease the byte compiler.

	* eglot.el (eglot--managed-mode): Use after-revert-hook.
	(revert-buffer-preserve-modes): Forward declare.
	(eglot--after-revert-hook): Signal didOpen when preserving-modes.
	(eglot--maybe-activate-editing-mode): Tweak comment.

2019-10-21  João Távora  <joaotavora@gmail.com>

	(again): fix issue with replace-buffer-contents

	Manually calling the before/after change hooks for Emacs 26.1's buggy
	replace-buffer-contents must be done with absolute positions, not
	markers.

	* eglot.el (eglot--apply-text-edits): Call change hooks with
	buffer positions, not markers.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/259

2019-10-20  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 1.5

	* NEWS.md: update.

2019-10-19  João Távora  <joaotavora@gmail.com>

	Let user keep control of some variables during eglot sessions

	* NEWS.md: Mention new variable eglot-stay-out-of

	* eglot.el (eglot-stay-out-of): New variable.
	(eglot--setq-saving): Use it.
	(eglot--managed-mode): Use eglot--setq-saving for imenu.  No need
	to remove 'eglot-flymake-backend from diagnostic functions.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/324

2019-10-19  João Távora  <joaotavora@gmail.com>

	Don't immediately request completions in eglot-completion-at-point

	Yet another adjustment to this function.  According to the
	documentation of completion-at-point-functions, we should strive to
	make functions like eglot-completion-at-point "cheap to run".
	Requesting completion from the server immediately after calling the
	function goes against that.  The reason we were doing it is that it
	might have helped compute more accurate "bounds" for the return value
	(START and END) from possible TextEdit completion items.  But I've
	decided it's not worth the effort, at least for now.

	* eglot.el (eglot-completion-at-point): Request completions
	asynchronously.

2019-10-16  João Távora  <joaotavora@gmail.com>

	Protect against zero-length completions

	Apparently the Vue Language Server sends such things (see https://github.com/joaotavora/eglot/issues/319).

	* eglot.el (eglot-completion-at-point): Protect against
	zero-length completions.

2019-10-16  João Távora  <joaotavora@gmail.com>

	Don't choke on single-location reply to td/definition

	* eglot.el (eglot--lsp-xrefs-for-method): Accept non-vector
	Location.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/321

2019-10-16  João Távora  <joaotavora@gmail.com>

	Unbreak eglot--setq-saving if symbol is unbound

	* eglot.el (eglot--setq-saving): check if symbol is bound

2019-10-16  João Távora  <joaotavora@gmail.com>

	Use of company-capf backend in eglot-managed buffers

	* eglot.el (company-backends): forward-declare
	(eglot--managed-mode): Force company-backends to company-capf

2019-10-16  João Távora  <joaotavora@gmail.com>

	Play along with lsp's filtertext hacks

	Reworked important parts of eglot-completion-at-point.

	One of the tasks was to cleanup the nomenclature so it's easier to
	spot how LSP and Emacs's views of completion techniques differ.  When
	reading this rather long function, remember an "item" is a plist
	representing the LSP completionItem object, and "proxy" is a
	propertized string that Emacs's frontends will use to represent that
	completion.  When the completion is close to done, the :exit-function
	is called, to potentially rework the inserted text so that the final
	result might be quite different from the proxy (it might be a snippet,
	or even a surprising text edit).

	The most important change in this commit reworks the way the
	completion "bounds" are calculated in the buffer.  This is the region
	that Emacs needs to know that is being targeted for the completion.  A
	server can specify this region by using textEdit-based completions all
	consistently pointing to the same range.  If it does so, Emacs will
	use that region instead of its own understanding of symbol
	boundaries (provided by thingatpt.el and syntax tables).

	To implement server-side completion filtering, the server can also
	provide a filterText "cookie" in each completion, which, when
	prefix-matched to the intended region, selects or rejects the
	completion.  Given the feedback in
	https://github.com/microsoft/language-server-protocol/issues/651, we
	have no choice but to play along with that inneficient and grotesque
	strategy to implement flex-style matching.  Like ever in LSP, we do so
	while being backward-compatible to all previously supported behavior.

	* eglot.el (eglot-completion-at-point): rework.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/235

2019-10-16  João Távora  <joaotavora@gmail.com>

	Always filter completions client-side by prefix

	Prefix completion is all we get in LSP because there are some servers
	that send *all* completions every time.  This is horrible, but it's the
	currently defined behavior.  See
	https://github.com/microsoft/language-server-protocol/issues/651.

	* eglot.el (eglot-completion-at-point): Use all-completions.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/319

2019-10-15  João Távora  <joaotavora@gmail.com>

	Fix bug in workspace/didchangewatchedfiles

	* eglot.el (eglot-register-capability): Fix a bug and a couple of
	warnings.

2019-10-15  Tom Tromey  <tom@tromey.com>

	Add support for the ada language server

	* eglot.el (eglot-server-programs): Add ada-mode entry.

	* README.md (Connecting to a server): Add Ada entry.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/316

2019-10-14  João Távora  <joaotavora@gmail.com>

	Fix eglot-completion-at-point to work with bare completion-at-point

	Fixes https://github.com/joaotavora/eglot/issues/313, fixes https://github.com/joaotavora/eglot/issues/311, fixes https://github.com/joaotavora/eglot/issues/279

	As is well known, LSP's and Emacs's completion mechanics don't fit
	very well together, mostly because Emacs expects completion to be a
	something of a pure function of a string argument and LSP treats as a
	function of a concrete buffer position.

	A further complication arises because some completion frontends like
	"bare" completion-at-point make Emacs modify the buffer's contents
	during the completion process, while other (notably company-mode)
	don't do that.  Thus, 'eglot-completion-at-point' must take extra care
	to answer to the questions listed in the "(elisp)Programmed
	Completion" info node based on its (quite hacky) "completions" local
	var and _not_ based on the intermediate buffer contents.  That var is
	also used to cache the last LSP response and allow the :exit-function
	callback to retrieve much more than just the completion text in

	In yet another related problem, :exit-function won't be called at all
	with completion-at-point if the completion table doesn't answer
	properly to test-completion.  A previous use of
	completion-table-dynamic was found to be unsuitable here: we must
	answer all the requests separately.

	* eglot.el (eglot-completion-at-point): Rework.

2019-10-13  João Távora  <joaotavora@gmail.com>

	Unbreak xref-find-definitions

	* eglot-tests.el (basic-xref): New test.

	* eglot.el (eglot--collecting-xrefs): Add an edebug spec.
	(eglot--lsp-xrefs-for-method): Actually collect xref.
	(xref-backend-apropos): Fix indentation slightly.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/318

2019-10-11  João Távora  <joaotavora@gmail.com>

	Misc improvements to the xref glue code

	* eglot.el (eglot-xref-backend): Don't check capability here.
	(eglot--collecting-xrefs): Reworked from  eglot--handling-xrefs.
	(eglot--handling-xrefs): Remove.
	(xref-backend-apropos, eglot--lsp-xrefs-for-method): Use eglot--collecting-xrefs.

2019-10-11  João Távora  <joaotavora@gmail.com>

	Rework and correct major part of xref glue code

	See comments of https://github.com/joaotavora/eglot/pull/314.  Up to
	now, xref-backend-identifier-completion-table was a gross hack that
	only worked sometimes.  It relied on some fugly gymnastics to cache a
	response from :textDocument/documentSymbol and somehow used that
	information to build a completion table.  But it doesn't work well.

	Summarily, LSP doesn't lend itself well to the xref interface of
	prompting for an arbitrary identifier and then go look for whichever
	type of references of that identifier.  All the LSP
	:textDocument/{definition,references,implementation,...} methods
	expect to know the exact context of the search the user is about to
	perform, in the form of a document location.  That conflicts with the
	xref "arbitrary string" requirement.

	Therefore, the slightly limited, but much more correct way, for Eglot
	to function is to override the user's preference of
	xref-prompt-for-identifier, temporarily setting it to nil in
	eglot--managed-mode (ideally, though, xref-prompt-for-identifier
	should be a function of the backend.)

	Later on, a possibly better behaved identifier completion table can be
	built on top of the :workspace/symbol LSP method.

	* eglot.el (xref-backend-identifier-at-point): Rewrite.
	(eglot--lsp-xrefs-for-method): New helper.
	(eglot--lsp-xref-helper): Use eglot--lsp-xrefs-for-method.
	(eglot--xref-definitions-method): Delete.
	(eglot--lsp-xref-refs): New variable.
	(xref-backend-references, xref-backend-definitions): Use
	eglot--lsp-xrefs-for-method.
	(eglot--managed-mode): Set xref-prompt-for-identifier
	to nil.
	(eglot--xref-reset-known-symbols, eglot--xref-known-symbols): Delete
	(xref-backend-identifier-completion-table): Nullify.
	(eglot-find-declaration, eglot-find-implementation)
	(eglot-find-typeDefinition): Use eglot--lsp-xref-helper.

2019-10-11  Felicián Németh  <felician.nemeth@gmail.com>

	Support goto-{declaration, implementation, typedefinition}

	Closes https://github.com/joaotavora/eglot/issues/302.

	* eglot.el (eglot--xref-definitions-method): New variable.
	(xref-backend-definitions): Use it.
	(eglot-find-declaration, eglot-find-implementation,
	eglot-find-typeDefinition): New functions.

	* README.md (Language features): Add new capabilities.

	* eglot.el (eglot-client-capabilities): Add new capabilities.
	(eglot-ignored-server-capabilites): Add new capability.

2019-10-05  ambihelical  <ambihelical@users.noreply.github.com>  (tiny change)
	    João Távora  <joaotavora@gmail.com>

	Allow user to set idle time to wait before processing changes

	* eglot.el (eglot-send-changes-idle-time): New defcustom.
	(eglot--after-change): Use it.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/258

2019-10-05  João Távora  <joaotavora@gmail.com>

	Much less noisy mode line

	* eglot.el (eglot--mode-line-format): Simplify.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/236

2019-10-05  João Távora  <joaotavora@gmail.com>

	Unbreak elm language server which does use :triggercharacters

	Only query completionProvider -> triggerCharacter information if the
	server has provided it.  Elm's, and probably other's, do not provide
	it, which doesn't mean they don't support completion.

	* eglot.el (eglot-completion-at-point): Check that completion
	capability is a list before treating it like one.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/285

2019-10-05  João Távora  <joaotavora@gmail.com>

	Revert "treat null/nil server capabilities as false"

	This reverts commit 645bcfc6e57181c39dae1f238758e76c1759a765.

	A capability of "null" is downright invalid, and must NOT be mistaken
	for a value of "{}" (which indicates the presence of the capability)
	or "False" (which indicates its asence).  See
	https://github.com/microsoft/language-server-protocol/issues/830#issuecomment-537849292
	for a clarification from the LSP maintainer.

2019-10-05  Vladimir Panteleev  <git@thecybershadow.net>  (tiny change)

	Don't send dummy json object in "initialized" notification ()

	Eglot uses a JSON object { __dummy__ : true } as a placeholder instead
	of the empty object {}.  It does this out of necessity, since encoding
	an empty object can't currently be easily using the current jsonrpc.el
	library.  However, this also causes the parameter to be actually sent
	to the server.

	Since the JSON-RPC specification states "The names MUST match exactly,
	including case, to the method's expected parameters" this is
	non-conforming to the protocol.

	The LSP specification does not seem to indicate how servers should
	handle method calls with parameters they do not support.  As such,
	ignoring the parameter, or reporting an error, or crashing all seem to
	be "valid" behaviors as far as the specification is concerned.

	We can avoid this by using an empty hash table instead of a dummy
	parameter.  Currently, an empty hash table is the only Emacs Lisp
	object which jsonrpc.el serializes to an empty JSON object in
	jsonrpc--json-encode.

	* eglot.el (eglot--connect): Use make-hash-table instead of dummy
	  object.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/312

2019-10-05  Ingo Lohmar  <ingo.lohmar@posteo.net>
	    João Távora  <joaotavora@gmail.com>

	Optionally shutdown after killing last buffer of managed project ()

	This should close issue https://github.com/joaotavora/eglot/issues/217, also cf. https://github.com/joaotavora/eglot/issues/270.

	* eglot.el (eglot-autoshutdown): New defcustom.
	(eglot--managed-mode-onoff): Shutdown if so configured and
	no managed buffers left.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/309

2019-10-05  Ingo Lohmar  <ingo.lohmar@posteo.net>
	    João Távora  <joaotavora@gmail.com>

	On buffer kill, first send didclose then teardown local structures

	It used to be the reverse way around, which doesn't make sense.

	* eglot.el (eglot-managed-mode): Fix order in `kill-buffer-hook'

2019-09-26  galeo  <galeo@users.noreply.github.com>  (tiny change)

	Also use signature label offsets for parameter info

	According to the LSP specification, a parameter of a callable-signature
	has a label and a optional doc-commet. The label of a parameter
	information is either a string or an inclusive start and exclusive end
	offsets within its containing signature label.

	Previously, this was only taken in account for highlighting the
	parameter in the definition signature.

	* eglot.el (eglot--sig-info): Handle signature label offsets
	  when printing the signature parameter information.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/272

2019-09-24  Felicián Németh  <felician.nemeth@gmail.com>

	Merge pull request from jorams/nil-capabilities-as-false

	Treat null/nil server capabilities as false

	GitHub-reference: https://github.com/joaotavora/eglot/issues/298

2019-09-23  Ingo Lohmar  <ingo.lohmar@posteo.net>

	Use gopls server as the default for go ()

	Developers recommend it: see
	https://github.com/sourcegraph/go-langserver/blob/master/README.md

	* eglot.el (eglot-server-programs): Use gopls.

	* README.md: mention gopls instead of go-langserver.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/304

2019-09-20  Joram Schrijver  <i@joram.io>  (tiny change)

	Treat null/nil server capabilities as false

	Some language servers may specify null for some capabilities in the list
	of server capabilities. This does not conform to the specification, but
	treating it as false is more reasonable than treating it as true.

	A current example is the PHP language server. which specifies null for
	every capability it does not handle, like documentHighlightProvider.
	This would cause Eglot to send constant textDocument/documentHighlight
	requests, which all timed out.

	* eglot.el (eglot--server-capable): Change the handling of null values
	  for capabilities to treat them as false instead of true.

2019-09-10  Felicián Németh  <felician.nemeth@gmail.com>

	Change the default of eglot-move-to-column-function

	Previous default (move-to-column) works on visual columns, the LSP
	specification and the new default (eglot-move-to-column) use "real"
	columns.  Fixes https://github.com/joaotavora/eglot/issues/293 and https://github.com/joaotavora/eglot/issues/297.

	* eglot.el (eglot-move-to-column): New function.
	(eglot-move-to-column-function): Use it as default.

2019-08-18  David Florness  <edwargix@gmail.com>  (tiny change)

	Require array package to use current-line ()

	The jsonrpc package (one of eglot's dependencies) recently
	updated and removed the line requiring the array package. Since
	current-line is provided by array and is used by eglot, require
	array explicitly.

	Here's jsonrpc's guilty commit:

	https://git.savannah.gnu.org/cgit/emacs.git/commit/lisp/jsonrpc.el?id=c676444a43e4634c1f98ec286b5bd9e46b23216b


	* eglot.el (array): Require it.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/294

2019-08-12  Jürgen Hötzel  <juergen@archlinux.org>

	Expand directory watcher globs containing ** ()

	Previously, if the server requested a glob pattern like foo/**/*
	to be watched, we would just error.  Now we watch foo/bar/ and
	foo/baz/ as if the server had requested those two watchers
	instead of just the one with the **.

	As a limitation, the implementation of file-expand-wildcards
	doesn't fully handle ** globstars (** matches at most one path
	segment).

	* eglot.el (eglot-register-capability workspace/didChangeWatchedFiles):
	Use file-expand-wildcards to make a ** glob into multiple **-less
	globs.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/293

2019-07-18  Jürgen Hötzel  <juergen@hoetzel.info>  (tiny change)

	Fix invalid guess for php language server ()

	* eglot.el (eglot-server-programs): Change the position of the php
	language server, otherwise it will always be hidden by the c-mode
	server (php-mode is derived from c-mode).

	GitHub-reference: https://github.com/joaotavora/eglot/issues/288

2019-07-16  John Wiegley  <johnw@newartisans.com>

	Use `require', not `load', when byte-compiling ()

	Use `require', not `load', when byte-compiling
	GitHub-reference: https://github.com/jwiegley/use-package/issues/783

2019-07-16  Radon Rosborough  <radon.neon@gmail.com>

	Update tests

	Switch from `require' to `load' + `featurep'

2019-07-12  Radon Rosborough  <radon.neon@gmail.com>

	Use `require', not `load', when byte-compiling

2019-07-02  haqle314  <16577773+haqle314@users.noreply.github.com>  (tiny change)

	Fix a typo

	* eglot.el (eglot--lsp-position-to-point): fix eglot--warn
	call

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/273

2019-06-27  Ingo Lohmar  <ingo.lohmar@posteo.net>

	Simplify eldoc usage ()

	* eglot-tests.el (hover-after-completions): Protect test.  Rewrite
	docstring.

	* eglot.el (eglot--managed-mode): Don't mess with eldoc-message-function.
	(eglot--eldoc-hint): Remove.
	(eglot--update-doc): Rename and rewrite from eglot--eldoc-message.
	(eglot-eldoc-function): Don't set eglot--eldoc-hint.
	Call eglot--update-doc.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/269

2019-06-27  João Távora  <joaotavora@gmail.com>

	Leniently handle invalid positions sent by some servers

	* eglot.el (eglot--lsp-position-to-point): Leniently squash
	invalid character positions to 0.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/273

2019-06-20  Justin Talbott  <justin@waymondo.com>

	update bind-chords to use of eval-after-load when maps declared

	also improve :chord keyword syntax processing to more closely mimic bind-keys since the same binding
	normalizer is used.

	also add tests for use-package-chords to cover these test cases

2019-06-14  Justin Talbott  <justin@waymondo.com>

	rename function

	extract use-package-hook-handler-flatten-mode-symbols function

2019-06-14  Justin Talbott  <justin@waymondo.com>

	use `use-package-as-one` for normalizing `:ensure-system-package`

	This makes the preferred syntax consistent with other `use-package`
	keywords. All of these are now valid:

	```
	(use-package format-all
	  :ensure-system-package
	  (prettier . "npm i -g prettier")
	  (rufo . "gem install rufo"))

	(use-package format-all
	  :ensure-system-package
	  ((prettier . "npm i -g prettier")
	   (rufo . "gem install rufo")))

	(use-package format-all
	  :ensure-system-package
	  (prettier . "npm i -g prettier"))
	```

2019-05-29  John Wiegley  <johnw@newartisans.com>

	Make custom-face evaluate elisp. ()

	Make custom-face evaluate elisp.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/773

2019-05-29  Vincent Zhang  <seagle0128@gmail.com>  (tiny change)

	Make custom-face evaluate elisp

	Fix https://github.com/jwiegley/use-package/issues/696.

2019-05-12  Akash Hiremath  <akashh246@gmail.com>  (tiny change)

	Add built-in support for elixir's elixir-ls ()

	* README.md: add elixir-ls.

	* eglot.el (eglot-server-programs): add elixir-ls.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/264

2019-05-10  João Távora  <joaotavora@gmail.com>

	Work around a bug in emacs's change detection

	When using capitalize-word, or any case-fiddling function,
	before-change-functions will record e.g. the whole word's start and
	end, even though only the first character has changed.  Not only is
	this longer than needed but also conflicts with what we get in
	after-change-functions, which records just the one-char-long change.

	Also, if the word didn't need any fiddling at all then
	before-change-function will run but after-change-functions won't: an
	"orphan" before-change will erroneously be sent to the server.

	* eglot.el (eglot--after-change): Detect problematic case and fix
	change description.
	(eglot--before-change): Store markers of changed region.
	(eglot--signal-textDocument/didChange): Weed out orphan changes.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/259

2019-05-09  João Távora  <joaotavora@gmail.com>

	Fix case when eglot-put-doc-in-help-buffer is nil

	* eglot.el (eglot--eldoc-message): Check eglot-put-doc-in-help-buffer.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/263

2019-05-08  Michal Krzywkowski  <k.michal@zoho.com>

	Only consider eglot's own diagnostics in eglot-code-actions

	* eglot.el (eglot-code-actions): Filter out non-eglot diagnostics
	  before sending a request to the server.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/260

2019-04-30  vjoki  <vjoki@users.noreply.github.com>  (tiny change)

	Fix local function call in directory watcher ()


	* eglot.el (eglot-register-capability
	workspace/didChangeWatchFiles): fix call to handle-event.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/255

2019-04-14  Naoya Yamashita  <conao3@gmail.com>

	* use-package-core.el (use-package): fix declare style

	use-package specified lisp-indent-function to indent like defun.

	Currently, use-package main macro specify indent as (declare (indent 1)),
	then change indent mode like defun.

	(declare (indent defun)) is same effect.
	And it is useful when redefining use-package.

2019-04-05  John Wiegley  <johnw@newartisans.com>

	Merge pull request from stribb/master

	Add a line of documentation for (use-package ... :hook).
	GitHub-reference: https://github.com/jwiegley/use-package/issues/759

2019-04-04  Andrew Stribblehill  <stribb@gmail.com>  (tiny change)

	Add a line of documentation for (use-package ... :hook)

2019-02-13  João Távora  <joaotavora@gmail.com>

	Unbreak build

	Messed up the name of eglot-xref-lessp-function.

	* eglot.el (eglot--handling-xrefs): Use eglot-xref-lessp-function

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/220

2019-02-11  João Távora  <joaotavora@gmail.com>

	* eglot.el (xref-backend-references): don't use return-from.

2019-02-11  João Távora  <joaotavora@gmail.com>

	Don't sort xref's by default

	But use a eglot-xref-lessp-function in case someone wants to tweak
	this.

	* eglot.el (eglot-xref-lessp-function): New variable.
	(eglot--handling-xrefs): Use it.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/220

2019-02-11  João Távora  <joaotavora@gmail.com>

	Use a less buggy flymake

	* eglot.el (Package-Requires) Require flymake 1.0.5

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/223

2019-02-05  João Távora  <joaotavora@gmail.com>

	Don't teardown company if started via trigger chars

	Reported by zhanghj in https://github.com/company-mode/company-mode/issues/866

	* eglot.el (eglot-completion-at-point): More carefully calculate
	:company-prefix-length

2019-01-14  João Távora  <joaotavora@gmail.com>

	Consider mode derivation when guessing servers

	* eglot.el (eglot-server-programs): Remove js2-mode and rjsx-mode.
	(eglot--guess-contact): Use provided-mode-derived-p

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/177

2019-01-14  João Távora  <joaotavora@gmail.com>

	Protect against null messages from eldoc

	* eglot.el (eglot--eldoc-message): Protect against nil FORMAT.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/209

2019-01-10  Sergey Kostyaev  <s-kostyaev@users.noreply.github.com>

	Fix bug introduced by commit fixing this issue

	* eglot.el (eglot--sig-info): Protect against invalid label.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/121

2019-01-09  Brady Trainor  <mail@bradyt.com>  (tiny change)

	Add built-in support for dart's dart_language_server

	Closes https://github.com/joaotavora/eglot/issues/194.


	* README.md (Connecting to a server): Add dart_language_server.

	* eglot.el (eglot-server-programs): Add dart_language_server.

2019-01-09  João Távora  <joaotavora@gmail.com>

	Handle label offsets in parameterinformation

	At least ccls uses this.

	* eglot.el (eglot-client-capabilities): Declare support for
	:labelOffsetSupport.
	(eglot--sig-info): Handle label offsets in ParameterInformation

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/201

2019-01-07  João Távora  <joaotavora@gmail.com>

	Display truncated docstring if too large for echo area

	* eglot.el (eglot--eldoc-message): Display first line doc.

2019-01-06  João Távora  <joaotavora@gmail.com>

	Rename new defcustoms with friendlier names

	* eglot.el (eglot-doc-too-large-for-echo-area): Rename from
	eglot-eldoc-extra-buffer-if-too-large.
	(eglot-put-doc-in-help-buffer): Rename from
	eglot-eldoc-extra-buffer.
	(eglot-auto-display-help-buffer): Rename from
	eglot-auto-display-eldoc-extra-buffer.
	(eglot--eldoc-message): Use new variable names.

2019-01-06  João Távora  <joaotavora@gmail.com>

	Fix test failure introduced by previous commit

	Remove the hack of unsetting eldoc-last-message in
	eglot--eldoc-message.  This allows any subsequent eglot-eldoc-function
	calls (prompted by simple cursor movement) to return it immediately,
	thus refreshing the help buffer with the same contents.  For this to
	work, we also have to set eglot--eldoc-hint globally in
	eglot-eldoc-function.

	An alternative to making the test pass would be to keep the hack of
	unsetting eldoc-last-message only in the case that we actually get to
	display the help buffer.  This would actually be more efficient, but
	potentially more hacky.

	The bottom line here is that eldoc doesn't have a good API to deal
	with asynchronous docstring fetching.  See this thread:

	https://lists.gnu.org/archive/html/emacs-devel/2018-05/msg00151.html

	* eglot.el (eglot--eldoc-message): Don't unset eldoc-last-message.
	(eglot-eldoc-function): Set eglot--eldoc-hint for synchronous
	operation too.

2019-01-05  João Távora  <joaotavora@gmail.com>

	Show large docs in help buffer instead of echo are by default

	* eglot.el (eglot--managed-mode): Add and remove from eglot--eldoc-message
	(eglot--eldoc-hint, eglot--help-buffer): New helpers.
	(eglot-eldoc-extra-buffer)
	(eglot-auto-display-eldoc-extra-buffer): New defcustoms.
	(eglot--eldoc-message): New helper.
	(eglot-eldoc-function): Set eglot--eldoc-hint.
	(eglot-help-at-point): Use new helpers.
	(eglot-eldoc-extra-buffer-if-too-large): New predicate.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/198

2019-01-05  João Távora  <joaotavora@gmail.com>

	Prevent eldoc flicker when moving around

	* eglot.el (eglot-eldoc-function): Return eldoc-last-message
	immediately.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/198

2019-01-05  João Távora  <joaotavora@gmail.com>

	Handle (un)registercapability requests via generic functions

	* eglot.el (Version): Bump to 1.4
	(eglot-register-capability, eglot-unregister-capability): New
	generic functions.
	(eglot--register-unregister): Call eglot-register-capability,
	eglot-unregister-capability.
	(eglot-register-capability s (eql
	workspace/didChangeWatchedFiles)): Rename from
	eglot--register-workspace/didChangeWatchedFiles.
	(eglot-unregister-capability s (eql
	workspace/didChangeWatchedFiles)): Rename from
	eglot--unregister-workspace/didChangeWatchedFiles.

2019-01-05  João Távora  <joaotavora@gmail.com>

	Appease checkdoc

	* eglot.el (eglot--post-self-insert-hook)
	(eglot--pre-command-hook, eglot--before-change)
	(eglot--eclipse-jdt-contact): Fix docstrings.

2019-01-02  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot-workspace-configuration): safe when listp.

2019-01-02  João Távora  <joaotavora@gmail.com>

	Run connection hooks with proper dir-locals

	eglot-connect-hook and eglot-server-initialized-hook must run in a
	buffer with properly setup directory-local variables for the project.

	This is crucial for things like eglot-signal-didChangeConfiguration,
	which needs a properly setup value of eglot-workspace-configuration to
	succeed.

	I could have chosen any of the buffers where Eglot is activating
	itself, but the approach using
	hack-dir-local-variables-non-file-buffer seems more correct, despite
	the name.

	* eglot.el (eglot--connect): Run connection hooks with proper
	dir-locals.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/196

2019-01-01  João Távora  <joaotavora@gmail.com>

	Allow read-only modes for markup rendering

	gfm-mode is read-only, so it must be set after the string has been
	inserted in the temporary buffer.

	* eglot.el (eglot--format-markup): Insert string before setting
	mode.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/197

2018-12-27  João Távora  <joaotavora@gmail.com>

	Remove a hard dependency on flymake-mode

	* eglot.el (eglot-handle-notification): Don't specifically check for
	flymake-mode before reporting diagnostics.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/195

2018-12-23  João Távora  <joaotavora@gmail.com>

	Slightly simplify eglot-completion-at-point

	* eglot.el (eglot-completion-at-point): Don't propertize
	completion string with all LSP properties.

2018-12-23  João Távora  <joaotavora@gmail.com>

	Actually make completion sorting work

	* eglot.el (eglot-completion-at-point): Complicate severely.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/190

2018-12-22  João Távora  <joaotavora@gmail.com>

	Fix previous commit where workaround had been removed

	Do remove the workaround, but not more than that.

	* eglot.el (eglot-completion-at-point): set local var strings.

2018-12-22  João Távora  <joaotavora@gmail.com>

	Use gfm-view-mode

	* eglot.el (eglot--format-markup): Use gfm-view-mode instead of gfm-mode.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/188

2018-12-22  João Távora  <joaotavora@gmail.com>

	Remove workaround for company bug that has been fixed

	See https://github.com/company-mode/company-mode/pull/845.

	* eglot.el (eglot-completion-at-point): Remove workaround for
	company-mode bug.

2018-12-19  João Távora  <joaotavora@gmail.com>

	* eglot.el (package-requires): require jsonrpc 1.0.7.

2018-12-16  João Távora  <joaotavora@gmail.com>

	Take over flymake and eldoc completely while managing buffers

	Take a pragmatic approach and override all other Flymake and Eglot
	backends while Eglot is enabled.  Restore previous values after
	eglot-shutdown.

	Certainly cases might arise where using more than one datasource
	besides LSP while Eglot is managing the buffer is useful.  But
	currently contrary, it confuses users enabling Eglot in buffers that
	already have flymake/eldoc backends configured.

	The reasons are slightly different for Eldoc and Flymake:

	- For Eldoc the :before-until strategy only makes sense for
	  synchronous backends, which Eglot isn't.  This conflicts with
	  python.el default python-eldoc-function, which is also asynchronous.

	- For Flymake, the default backends in Emacs (python-mode, c-mode, and
	  a few others) are mainly repetitions of what LSP does.  The global
	  value is still run though (in case you want to put, say, a
	  spell-checking backend there).

	* eglot.el (eglot--saved-bindings, eglot--setq-saving): New
	helpers.
	(eglot--managed-mode): Use them.

2018-12-16  João Távora  <joaotavora@gmail.com>

	Be more careful when making xref summaries

	* eglot.el (eglot--xref-make): Only highlight to end-of-line at
	most.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/187

2018-12-16  João Távora  <joaotavora@gmail.com>

	Don't make bogus responses to client/(un)registercapability

	* eglot.el (eglot--register-unregister): Response is void.

2018-12-16  João Távora  <joaotavora@gmail.com>

	Add edebug specs to destructuring macros

	* eglot.el (eglot--dbind, eglot--lambda, eglot--dcase): Add edebug
	specs.

2018-12-16  João Távora  <joaotavora@gmail.com>

	Rewrite eglot--sig-info a bit for readability

	* eglot.el (eglot--sig-info): Rewrite a bit.

2018-12-16  Fredrik Bergroth  <fbergroth@gmail.com>  (tiny change)

	Adjust active param highlighting in first line of signature (3/3)

	Highlight only first active parameter match (even if there are many)


	* eglot.el (eglot--sig-info): Simplify.

2018-12-16  Fredrik Bergroth  <fbergroth@gmail.com>  (tiny change)

	Adjust active param highlighting in first line of signature (2/3)

	Use regex with word boundaries when scanning for active param, to
	avoid matching substrings.


	* eglot.el (eglot--sig-info): Use `re-search-forward`.

2018-12-16  Fredrik Bergroth  <fbergroth@gmail.com>  (tiny change)

	Adjust active param highlighting in first line of signature (1/3)

	JT@2018/12/16: Previously, the whole first line of the rendered
	documentation was searched for, potentially highlighting params
	in the wrong place.


	* eglot.el (eglot--sig-info): Search for active parameter within
	`params-start` and `params-end`.

2018-12-16  Fredrik Bergroth  <fbergroth@gmail.com>  (tiny change)

	Apply eglot--format-markup to signature documentation


	* eglot.el (eglot--sig-info): Call eglot--format-markup on signature
	  documentation.

2018-12-09  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 1.3

2018-12-07  João Távora  <joaotavora@gmail.com>

	Be lenient by default to unknown methods or notifications

	* eglot.el (eglot-strict-mode): Describe meaning of
	disallow-non-standard-keys.
	(eglot-handle-notification, eglot-handle-request): Check
	eglot-strict-mode.

2018-12-07  João Távora  <joaotavora@gmail.com>

	Handle array params to server notification or requests

	* eglot.el (eglot-handle-notification): Remove extraneous id
	(eglot--connect): If params is an array, make it a list.

2018-12-07  João Távora  <joaotavora@gmail.com>

	Scratch/use elpa flymake ()

	Use GNU ELPA's Flymake

	* eglot.el (Package-Requires): require Flymake 1.0.2.
	(version< emacs-version "27.0"): Remove horrible hack

	* Makefile (ELPADEPS): Renamed from JSONRPC.
	(%.elc): Use it.
	(eglot-check): Use it.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/178

2018-12-06  João Távora  <joaotavora@gmail.com>

	Warn about suspicious interface usage at compile-time

	For fun, set eglot-strict-mode to '(disallow-non-standard-keys
	enforce-required-keys enforce-optional-keys) when compiling, or just
	use flymake-mode in eglot.el.

	* eglot.el (eglot--lsp-interface-alist): Use in compile-time.
	Order alphabetically.  Fix a few bugs.
	(eglot-strict-mode): Disallow non-standard-keys when compiling.
	Update docstring.
	(eglot--keywordize-vars, eglot--check-interface): New
	compile-time-helpers.
	(eglot--dbind, eglot--dcase): Use new helpers.

2018-12-06  João Távora  <joaotavora@gmail.com>

	Use eglot--dbind and eglot--lambda throughout

	The default behavior of these macros is to be lenient towards servers
	sending unknown keys, which should fix the issue.

	* eglot.el (eglot--lsp-interface-alist): Add a bunch of new interfaces.
	(eglot--connect, eglot-handle-notification)
	(xref-backend-identifier-completion-table)
	(xref-backend-definitions, xref-backend-apropos)
	(xref-backend-references, eglot-completion-at-point)
	(eglot--sig-info, eglot-help-at-point, eglot-eldoc-function)
	(eglot-imenu, eglot--apply-text-edits)
	(eglot--apply-workspace-edit)
	(eglot--register-workspace/didChangeWatchedFiles): Use
	eglot--dbind and eglot--lambda to destructure LSP objects.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/144

2018-12-04  João Távora  <joaotavora@gmail.com>

	Adjust previous fix

	* eglot.el (eglot--before-change): Don't reset
	eglot--last-inserted-char here.
	(eglot--pre-command-hook): Do it here.
	(eglot--managed-mode): Add/remove eglot--pre-command-hook to/from
	pre-command-hook.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/173

2018-12-04  João Távora  <joaotavora@gmail.com>

	Fix bug introduced by previous fix

	* eglot.el (eglot--CompletionParams): Don't use last-input-event.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/173

2018-12-03  João Távora  <joaotavora@gmail.com>

	Handle codeaction/command polymorphism with eglot--dcase

	* eglot-tests.el (eglot-dcase): Augment test.

	* eglot.el (eglot--lsp-interface-alist): Add Command interface.
	(eglot--dcase): Fix indentation.  When given interface, always
	assume strict mode.
	(eglot-code-actions): Use eglot--dcase.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/164

2018-12-03  João Távora  <joaotavora@gmail.com>

	Robustify previous fix against non-standard insertion bindings

	* eglot.el (eglot--managed-mode): Manage post-self-insert-hook.
	(eglot--last-inserted-char): New variable.
	(eglot--post-self-insert-hook): Set it.
	(eglot--before-change): Reset it.
	(eglot--CompletionParams): Use it.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/173

2018-12-03  Michal Krzywkowski  <k.michal@zoho.com>

	Properly clear old diagnostics when making new ones

	* eglot.el (eglot-handle-notification
	  textDocument/publishDiagnostics): Call flymake report function with
	  :region.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/159

2018-12-02  Mario Rodas  <marsam@users.noreply.github.com>  (tiny change)

	Use javascript-typescript-langserver for typescript-mode ()


	* eglot.el (eglot-server-programs): add typescript-mode to
	  javascript-typescript-langserver's contact

	GitHub-reference: https://github.com/joaotavora/eglot/issues/174

2018-12-02  João Távora  <joaotavora@gmail.com>

	Support completioncontext to help servers like ccls

	* eglot.el (eglot-client-capabilities): Announce
	textDocument/completion/contextSupport.
	(eglot--CompletionParams): New helper.
	(eglot-completion-at-point): Use it.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/173

2018-12-01  João Távora  <joaotavora@gmail.com>

	Don't break in indirect buffers

	Indirect buffers, such as the ones created by ediff-regions-wordwise,
	have eglot enabled but not buffer-file-name.  Resort to the finding
	the file-name of the original buffer for these.

	* eglot.el (eglot--TextDocumentIdentifier): Work in indirect
	buffers.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/116
	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/150

2018-12-01  Michal Krzywkowski  <k.michal@zoho.com>

	Use eglot--dbind for destructuring

	* eglot.el (eglot--lsp-interface-alist): Add CodeAction,
	  FileSystemWatcher, Registration, TextDocumentEdit, WorkspaceEdit.
	(eglot-handle-notification): Use eglot--dbind.
	(eglot--apply-workspace-edit): Use eglot--dbind and eglot--lambda.
	(eglot-code-actions): Use eglot--lambda.
	(eglot--register-workspace/didChangeWatchedFiles): Use eglot--lambda.

2018-11-30  João Távora  <joaotavora@gmail.com>

	Introduce eglot--dcase

	* eglot.el (eglot--dcase): New macro.

	* eglot-tests.el (eglot-dcase-with-interface)
	(eglot-dcase-no-interface): New tests.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/171
	GitHub-reference: per https://github.com/joaotavora/eglot/issues/156

2018-11-30  João Távora  <joaotavora@gmail.com>

	Simplify interface of eglot--dbind macro

	* eglot.el (eglot--dbind): Use new interface.
	(eglot--lambda): Use new eglot--dbind interface.
	(eglot--lsp-interface-alist): Fix docstring.
	(eglot--call-with-interface): Simplify.
	(eglot--plist-keys): New helper.

	* eglot-tests.el (eglot-strict-interfaces):
	Add a new test clause.

2018-11-28  Michal Krzywkowski  <k.michal@zoho.com>

	Touch up last commit

	* eglot.el (eglot-current-column): Rename from eglot--current-column.
	(eglot-current-column-function): Use it as value and mention in docstring.
	(eglot--xref-make): Use eglot-current-column.

2018-11-27  Michal Krzywkowski  <k.michal@zoho.com>

	* eglot.el (eglot--current-column): new helper.

	(eglot-current-column-function): Set to eglot--current-column.
	(eglot--pos-to-lsp-position): Don't bind tab-width anymore.
	(eglot--xref-make): Use eglot--current-column.

2018-11-27  João Távora  <joaotavora@gmail.com>

	Improve performance of xref summary line collection

	* eglot.el (eglot--temp-location-buffers): New variable.
	(eglot--handling-xrefs): New macro.
	(eglot--xref-make): Use eglot--temp-location-buffers.
	(xref-backend-definitions, xref-backend-references)
	(xref-backend-apropos): Use eglot--handling-xrefs.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/52
	GitHub-reference: per https://github.com/joaotavora/eglot/issues/127

2018-11-27  João Távora  <joaotavora@gmail.com>

	Use entire line as xref summary when available

	After an original implementation by Michael Livshin.  Also close https://github.com/joaotavora/eglot/issues/127.

	* eglot.el (eglot--xref-make): Rework.
	(xref-backend-definitions, xref-backend-references)
	(xref-backend-apropos): Simplify call to `eglot--xref-make'.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/52

2018-11-23  João Távora  <joaotavora@gmail.com>

	Revert "codeaction command can be a command object ()"

	This reverts commit 1e7f94d75a30628be56ad00de8c6245f5f3e9fdf.

	The spec doesn't define Command as implemented in the commit.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/164
	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/165

2018-11-23  Michal Krzywkowski  <k.michal@zoho.com>

	Codeaction command can be a command object ()

	* eglot.el (eglot-code-actions): Handle case when the :command field
	  is not a string.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/164
	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/165

2018-11-23  João Távora  <joaotavora@gmail.com>

	Control strictness towards incoming lsp messages

	A new variable, eglot-strict-mode controls whether Eglot is strict or
	lax with regard to incoming LSP messages.

	1. Bug reports should be tested with eglot-strict-mode set to
	   '(disallow-non-standard-keys enforce-required-keys)

	2. Users struggling to get non-standard servers working set this
	   variable to '(), nil.  For now, by popular demand, this is the
	   default value.

	Note that this commit in particular introduces a new infrastructure,
	but does not yet alter any code in Eglot to use it.  Neither is the
	variable eglot--lsp-interface-alist populated.

	* eglot-tests.el (eglot-strict-interfaces): New test.

	* eglot.el (eglot--lsp-interface-alist): New variable.
	(eglot-strict-mode): New variable.
	(eglot--call-with-interface): New helper.
	(eglot--dbind): New macro.
	(eglot--lambda): New macro.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/144
	GitHub-reference: per https://github.com/joaotavora/eglot/issues/156

2018-11-22  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 1.2

	* eglot.el (eglot-completion-at-point): less chatter.

2018-11-22  João Távora  <joaotavora@gmail.com>

	Correctly insert textedit-less snippets

	Fixes a slight regression from https://github.com/joaotavora/eglot/issues/160.

	* eglot.el (eglot-completion-at-point): When there is plain
	`insertText' snippet, delete the full completion text.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/167

2018-11-22  João Távora  <joaotavora@gmail.com>

	Fix potential security issue fontifying lsp doc

	Previously, a server could mistakenly or maliciously call *-mode
	functions by in the response to a completion or hover request,
	specifically in the :documentation field of the response.

	Although there are plenty of similar avenues of attack in Emacs, it's
	probably a good idea not to let LSP servers decide which functions to
	call in an Emacs session running Eglot.

	* eglot.el (eglot--format-markup): Call major-mode to fontify
	buffer, not some dynamically constructed function name.
	(eglot-completion-at-point): Ensure eglot--format-markup runs in
	source buffer.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/154

2018-11-22  Alex Branham  <alex.branham@gmail.com>  (tiny change)

	Add support for r's languageserver ()


	* eglot.el (eglot-server-programs): Add R language server.
	* README.md (Installation and usage): Mention it.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/161

2018-11-21  Michal Krzywkowski  <k.michal@zoho.com>

	Properly delete inserted text after completion

	* eglot.el (eglot-completion-at-point): In :exit-function, delete only
	  the region of buffer that was inserted by completion.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/160

2018-11-19  John Wiegley  <johnw@newartisans.com>

	Merge pull request from conao3/fix_default_value

	fix gethash default value for use-package-statistics-time
	GitHub-reference: https://github.com/jwiegley/use-package/issues/681

2018-11-19  Michal Krzywkowski  <k.michal@zoho.com>

	Treat tab characters as 1 column wide in position conversion functions

	Fixes https://github.com/joaotavora/eglot/issues/158.

	* eglot.el (eglot--pos-to-lsp-position): Call
	  eglot-current-column-function with tab-width bound to 1.
	(eglot--lsp-position-to-point): Call eglot-move-to-column-function
	with tab-width bound to 1.

2018-11-17  Michal Krzywkowski  <k.michal@zoho.com>

	Format documentation of signature parameters

	* eglot.el (eglot--sig-info): Call `eglot--format-markup` on parameter
	  :documentation.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/144

2018-11-13  João Távora  <joaotavora@gmail.com>

	Add ability to report lsp-compliant columns

	* eglot.el (eglot-current-column-function): New variable.
	(eglot-lsp-abiding-column): New helper.
	(eglot--pos-to-lsp-position): Use eglot-current-column-function.
	(eglot-move-to-column-function): Tweak docstring.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/125

2018-11-13  Michal Krzywkowski  <k.michal@zoho.com>

	Add support for textedits in completion

	* eglot.el (eglot-completion-at-point): Apply the CompletionItem's
	  :textEdit and :additionalTextEdits when they're present.

2018-11-13  João Távora  <joaotavora@gmail.com>

	Tweak solution to with a hint from fangrui song

	* eglot.el (eglot-move-to-lsp-abiding-column): Simplify slightly.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/125

2018-11-12  João Távora  <joaotavora@gmail.com>

	Complex completions work when chosen from *completions*

	* eglot.el (eglot-completion-at-point): Make exit-function work
	even if its arguments was stripped of its properties.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/148

2018-11-12  João Távora  <joaotavora@gmail.com>

	Add ability to move to lsp-precise columns

	Also close https://github.com/joaotavora/eglot/issues/125.

	Idea and much of design contributed by Michał Krzywkowski
	<k.michal@zoho.com>

	This introduces the variable eglot-move-to-column-function.

	According to the standard, LSP column/character offsets are based
	on a count of UTF-16 code units, not actual visual columns.  So
	when LSP says position 3 of a line containing just \"aXbc\",
	where X is a multi-byte character, it actually means `b', not
	`c'.  This is what the function
	`eglot-move-to-lsp-abiding-column' does.

	However, many servers don't follow the spec this closely, and
	thus this variable should be set to `move-to-column' in buffers
	managed by those servers.

	* eglot.el (eglot-move-to-column-function): New variable.
	(eglot-move-to-lsp-abiding-column): New function.
	(eglot--lsp-position-to-point): Use eglot-move-to-column-function.

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/124

2018-11-10  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsiiformes/silencio

	Silence byte-compiler on Emacs 25
	GitHub-reference: https://github.com/jwiegley/use-package/issues/733

2018-11-10  Jonas Bernoulli  <jonas@bernoul.li>

	Silence byte-compiler on Emacs 25

	Emacs 25 defined a global variable `features', which triggers a
	warning "Lexical argument shadows the dynamic variable features".
	That's not `use-package's fault, but we should suppress the warning
	anyway, so that there is no additional noise that would cause us to
	potentially overlook warnings that absolutely have to be addressed.

2018-11-08  João Távora  <joaotavora@gmail.com>

	Fix a bug introduced by previous bugfix

	This commit fixes a bug but introduced another when completing a
	symbol in xref-find-definitions.

	commit ee58d92a7de1c8b1914c77177a7d5e755f1de827
	Author: Michał Krzywkowski <k.michal@zoho.com>
	Date:   Sun Nov 4 16:59:05 2018 +0100

	* eglot.el (xref-backend-identifier-completion-table): Use vector.

2018-11-07  João Távora  <joaotavora@gmail.com>

	Move constants to top instead of forward-declaring

	* eglot.el (eglot--symbol-kind-names, eglot--kind-names): Move to
	top of file.

2018-11-07  Mario Rodas  <marsam@users.noreply.github.com>  (tiny change)

	Support ocaml-language-server out of the box ()


	* eglot.el (eglot-server-programs): Add ocaml-language-server.

	* README.md (Installation and usage): Mention ocaml-language-server

	GitHub-reference: https://github.com/joaotavora/eglot/issues/149

2018-11-07  Michal Krzywkowski  <k.michal@zoho.com>

	* eglot.el (eglot-client-capabilities): mention supported symbolkinds.

2018-11-07  Michal Krzywkowski  <k.michal@zoho.com>

	Make imenu hierarchical

	* eglot.el (eglot-imenu): Use :containerName to build a nested imenu
	  index alist.

2018-11-04  Michal Krzywkowski  <k.michal@zoho.com>

	Fix a bug when response to definitions request is a single location

	It's valid to return just a single Location for a definitions request.

	* eglot.el (xref-backend-definitions): Coerce response to a vector.

2018-11-04  João Távora  <joaotavora@gmail.com>

	Simplify eglot-code-action. fix compilation warning

	* eglot.el (eglot-code-actions): Simplify.
	(eglot-client-capabilities): Mention supported codeActionKind's
	directly.
	(eglot--code-action-kinds): Remove.

2018-11-04  Michal Krzywkowski  <k.michal@zoho.com>

	Add support for code action literals

	Code action literals allow the server to simply return a WorkspaceEdit
	for a code action, so the client does not have to execute a command.

	* eglot.el (eglot-client-capabilities): Add :codeActionLiteralSupport.
	(eglot--code-action-kinds): New variable.
	(eglot-code-actions): Apply provided WorkspaceEdit.

2018-11-04  Michal Krzywkowski  <k.michal@zoho.com>

	Use the container name of a symbol in imenu

	* eglot.el (eglot-imenu): Prepend :containerName to each symbol, when
	  provided.

2018-10-31  Michal Krzywkowski  <k.michal@zoho.com>

	Don't ignore unknown symbolkinds in imenu

	Some servers provide custom SymbolKinds.  For example, ccls says that
	symbols defined with #define are of kind 255.

	* eglot.el (eglot-imenu): Don't delete elements with unknown symbol
	  kind from the return list, instead put them in `(Unknown)` group.

2018-10-31  Michal Krzywkowski  <k.michal@zoho.com>

	Remove duplicates from imenu

	* eglot.el (eglot-imenu): Don't append the result list to itself,
	  which causes duplicates.

2018-10-30  Alex Branham  <alex.branham@gmail.com>

	Require subr-x at compile time ()

	if-let and when-let are macros that the byte compiler can expand
	at compile time. No need to require subr-x at run time.

	* eglot.el (subr-x): Require only when compiling.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/139

2018-10-30  João Távora  <joaotavora@gmail.com>

	Accept deprecated field in symbolinformation

	* eglot.el (xref-backend-identifier-completion-table)
	(eglot-imenu): Accept and ignore "deprecated"

	GitHub-reference: fix https://github.com/joaotavora/eglot/issues/138

2018-10-24  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jwiegley/use-package-chords-suppress-compiler-message

	prefix argument with _ to suppress Unused lexical argument warning
	GitHub-reference: https://github.com/jwiegley/use-package/issues/713

2018-10-24  Dale Sedivec  <dale@codefu.org>  (tiny change)

	Fix misspelling of "outstanding" ()


	* eglot.el (eglot--mode-line-format): Fix a typo.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/74

2018-10-18  Michal Krzywkowski  <k.michal@zoho.com>

	Handle case when project was not found in eclipse.jdt.ls contact

2018-10-18  Michal Krzywkowski  <k.michal@zoho.com>

	Override eglot-execute-command for eclipse.jdt.ls server

	* eglot.el (eglot-execute-command eglot-eclipse-jdt): New defmethod.

2018-10-18  Michal Krzywkowski  <k.michal@zoho.com>

	Add support for eclipse.jdt.ls server

	* eglot.el (eglot-server-programs): Add java-mode entry.
	(eglot-eclipse-jdt): New class.
	(eglot-initialization-options): Override for eglot-eclipse-jdt.
	(eglot--eclipse-jdt-contact): New function.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/63

2018-10-18  Michal Krzywkowski  <k.michal@zoho.com>

	Allow function contacts to be interactive

	* eglot.el (eglot-server-programs): Mention that the function must
	  accept one argument.
	(eglot--guess-contact): Pass to functional contacts the interactive
	value.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/63

2018-10-15  Michal Krzywkowski  <k.michal@zoho.com>

	Improve signature help

	* eglot.el (eglot--sig-info): Don't lose existing information.
	  Attempt to highlight the active parameter by searching for it's
	  :label in signature's :label.  Append to the result first sentence
	  of signature's :documentation, if present.

2018-10-15  Michal Krzywkowski  <k.michal@zoho.com>

	Sort references and definitions by line number

	* eglot.el (eglot--sort-xrefs): New function.
	(xref-backend-definitions):
	(xref-backend-references):
	(xref-backend-apropos): Use it.

2018-10-15  Michal Krzywkowski  <k.michal@zoho.com>

	Merge pull request from mkcms/fix-diagnostics-wrong-type-argument

	Handle case when diagnostic :character is out of range

	GitHub-reference: https://github.com/joaotavora/eglot/issues/104

2018-10-15  Michal Krzywkowski  <k.michal@zoho.com>

	Handle case when diagnostic :character is out of range

	* eglot.el (eglot-handle-notification): Don't error out when
	  flymake-diag-region returns nil.

2018-10-15  Michal Krzywkowski  <k.michal@zoho.com>

	Eglot-ignored-server-capabilites: prefer all choices over "other"

	Previously the "Other" choice matched every value, so it was always
	shown in the customize buffer.

	* eglot.el (eglot-ignored-server-capabilites): Make the "Other" choice
	  the last possible option.

2018-10-03  Michal Krzywkowski  <k.michal@zoho.com>

	Make eglot-ignored-server-capabilites more user-friendly ()

	* eglot.el (eglot-ignored-server-capabilites): Add list of possible
	  choices to :type, along with a user-friendly description.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/126

2018-09-24  Michal Krzywkowski  <k.michal@zoho.com>

	Correctly map documentsymbol's :kind to its name ()

	Previously we were mapping :kind in DocumentSymbol with
	names from the CompletionItemKind enum, whereas we should
	have used the SymbolKind enum.

	* eglot.el (eglot--symbol-kind-names): New variable.
	(eglot-imenu): Use it instead of eglot--kind-names.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/121

2018-09-24  whatacold  <whatacold@gmail.com>  (tiny change)

	Autoload eglot-ensure ()


	* eglot.el (eglot-ensure): Add autoload cookie

	GitHub-reference: https://github.com/joaotavora/eglot/issues/120

2018-09-17  João Távora  <joaotavora@gmail.com>

	Don't block kill-buffer-hook if server somehow hangs

	* eglot.el (eglot--signal-textDocument/didClose): Use
	with-demoted-errors.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/115

2018-09-13  Justin Talbott  <justin@waymondo.com>

	Merge pull request from lrochfort/ensure-system-package_use-sudo

	[Fix https://github.com/jwiegley/use-package/issues/720] Install system packages using system-packages-install
	GitHub-reference: https://github.com/jwiegley/use-package/issues/721

2018-09-12  Laurence Rochfort  <laurence.rochfort@gmail.com>  (tiny change)

	[] Install system packages using system-packages-install

	:ensure-system-package was installing packages by running
	system-packages-get-command via async-shell-command. This meant that
	system-packages-use-sudo wasn't being honored.

	This patch makes :ensure-system-package use system-packages-install
	for all cases, except where a custom install command is supplied, in
	which case async-shell-command is used.

	This issue was introduced in 9f034a0bcfdd8c4 [https://github.com/jwiegley/use-package/issues/673], as a fix for
	[https://github.com/jwiegley/use-package/issues/661]. Prior to that commit, system-packages-use-sudo was being
	honored.

	This patch also fixes a bug where a cons containing a lone symbol in a
	list of conses causes nil to used as the package to install.
	GitHub-reference: fix https://github.com/jwiegley/use-package/issues/720

2018-09-08  Aleksey Kladov  <aleksey.kladov@gmail.com>  (tiny change)

	Don't send other notifications before initialized


	* eglot.el (eglot--connect): send initialized before
	activating minor mode.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/100

2018-09-07  João Távora  <joaotavora@gmail.com>

	Prefer ccls over cquery for c/c++

	* README.md (Installation and usage): Prefer ccls to cquery. Mention clangd.

	* eglot.el (eglot-server-programs): Suggest ccls for c/c++ by default.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/94

2018-09-07  João Távora  <joaotavora@gmail.com>

	Fix serious breakage introduced by

	string-prefix-p doesn't work on symbols

	* eglot.el (eglot-handle-notification): Coerce method name to string.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/93

2018-09-07  Fangrui Song  <i@maskray.me>

	Don't warn on implementation-specific notifications ()

	Only warn when method name doesn't start with '$'. Per the spec:

	  "if a server or client receives notifications or requests
	  starting with ‘$/’ it is free to ignore them if they are unknown."

	* eglot.el (eglot-handle-notification t t): Check method name for $.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/93

2018-08-27  Evgeni Kolev  <evgenysw@gmail.com>  (tiny change)

	When exiting emacs, don't ask the user to confirm killing processes ()


	* eglot.el (eglot--connect, eglot--inferior-bootstrap): pass noquery t to
	make-process.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/83

2018-08-25  João Távora  <joaotavora@gmail.com>

	Handle case when :textdocumentsync isn't a number

	Also closes https://github.com/joaotavora/eglot/issues/87.

	* eglot.el (eglot--signal-textDocument/didChange): Grab :change
	from :textDocumentSync server capability.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/86

2018-08-20  João Távora  <joaotavora@gmail.com>

	Correctly delete text before expanding snippet completions

	Suggested by Amol Mandhane.

	* eglot.el (eglot-completion-at-point): Use length of obj in
	:exit-function

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/82

2018-08-20  Phillip Dixon  <phillip.dixon@gmail.com>  (tiny change)

	Ignore extra keys in textdocument/publishdiagnostics ()

	According to the "discussion" in https://reviews.llvm.org/D50571, it
	was deemed sufficient that VSCode is fine with the non-standard
	extension -- jt


	* eglot.el (eglot-handle-notification): Add &allow-other-keys

	GitHub-reference: https://github.com/joaotavora/eglot/issues/81

2018-08-19  João Távora  <joaotavora@gmail.com>

	Consider :triggercharacters in company completion

	* eglot.el (eglot-completion-at-point): Take advantage of
	:company-prefix-length.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/80

2018-08-18  João Távora  <joaotavora@gmail.com>

	Improve snippet support

	* eglot.el (eglot-client-capabilities): Don't always declare
	snippet support.
	(eglot--snippet-expansion-fn): New helper.
	(eglot-completion-at-point): Better annotations when snippets
	are supported.

2018-08-18  Evgeni Kolev  <evgenysw@gmail.com>  (tiny change)

	Add go-langserver ()


	* README.md (Installation and usage): Add go-langserver.
	* eglot.el (eglot-server-programs): Add go-langserver.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/74

2018-08-18  João Távora  <joaotavora@gmail.com>

	Don't error if server replies with empty hover message

	* eglot.el (eglot-eldoc-function): Check non-nil contents.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/74

2018-08-17  Michal Krzywkowski  <k.michal@zoho.com>

	Fix textdocument/hover responses where markedstring is a plist ()

	* eglot.el (eglot--hover-info): Forward all non-vector content to
	eglot--format-markup.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/72

2018-08-17  João Távora  <joaotavora@gmail.com>

	Support snippet completions

	* eglot.el (eglot-client-capabilities): Declare support for
	snippet-based completions.
	(eglot-completion-at-point): Expand snippet completions with
	YASnippet if that is found.
	(eglot-note, eglot-warning, eglot-error): Diagnostic
	overlay priorities have to be slightly lower than yasnippet's,
	which must be reasonably high.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/50

2018-08-17  João Távora  <joaotavora@gmail.com>

	Fix eglot-capabilities when querying for multiple features

	* eglot-tests.el (eglot-capabilities): New test.

	* eglot.el (eglot--server-capable): Fix problems with queries for
	multiple capabilities.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/74

2018-08-13  Justin Talbott  <justin@waymondo.com>

	prefix argument with _ to suppress Unused lexical argument warning

	per @tarsius’s comment
	https://github.com/jwiegley/use-package/commit/5d9c854a6cf12fff2326ee5653e87e2d3d550a8d#commitcomment-29996666

2018-08-13  João Távora  <joaotavora@gmail.com>

	Prompt for server in interactive eglot-shutdown

	* eglot.el (eglot--read-server): New helper.
	(eglot-shutdown): Use it.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/73

2018-08-12  James Nguyen  <james@jojojames.com>

	Add kotlin-language-server ()

	https://github.com/fwcd/KotlinLanguageServer

	copyright-paperwork-exempt: yes

	* README.md (Installation and Usage): declare Kotlin support.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/70

2018-08-12  João Távora  <joaotavora@gmail.com>

	Handle edits to same position in the correct order

	In eglot--apply-text-edits, the markers returned by
	eglot--lsp-position-to-point are of the "stay" type, i.e. have an
	insertion-type of nil.  This causes multiple insertion edits to the
	same location to happen in the reverse order in which they appear in
	the LSP message, which is a violation of the spec and a bug.

	There are more ways to solve this (see related discuttion in
	https://github.com/joaotavora/eglot/pull/64), but the easiest way is
	to revert the order in which the edits are processed.  This is because
	the spec tells us that the order is only relevant in precisely this
	"same position" case.  So if we reverse the order we fix this bug and
	don't break anything else.

	* eglot.el (eglot--apply-text-edits): Apply edits in reverse..

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/64

2018-08-12  João Távora  <joaotavora@gmail.com>

	Control the size of the events buffer

	* eglot.el (eglot-events-buffer-size): New defcustom.
	(eglot--connect): Use it.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/41

2018-08-12  João Távora  <joaotavora@gmail.com>

	Implement asynchronous server connection

	A new defcustom eglot-sync-connect controls this feature.  If it is t,
	eglot should behave like previously, waiting synchronously for a
	connection to be established, with the exception that there is now a
	non-nil timeout set to eglot-connect-timeout, which defaults to 30
	seconds.

	eglot-connect is now considerably more complicated as it replicates
	most of the work that jsonrpc-request does vis-a-vis handling errors,
	timeouts and user quits..

	* eglot-tests.el
	(eglot--call-with-dirs-and-files): Simplify cleanup logic.
	(slow-sync-connection-wait)
	(slow-sync-connection-intime, slow-async-connection)
	(slow-sync-error): New tests.

	* eglot.el (eglot-sync-connect): New defcustom.
	(eglot-ensure, eglot): Simplify.
	(eglot--connect): Honor eglot-sync-connect.  Complicate
	considerably.
	(eglot-connect-timeout): New defcustom.
	(Package-requires): Require jsonrpc 1.0.6

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/68

2018-08-11  Michal Krzywkowski  <k.michal@zoho.com>

	Kill server's output and events buffers from eglot-shutdown ()

	* eglot.el
	(Package-Requires): Require jsonrpc 1.0.5
	(eglot-shutdown): Kill events and stderr buffers of the
	server, unless new PRESERVE-BUFFERS argument is non-nil.
	eglot-reconnect): Preserve buffers on shutdown.

	* eglot-tests.el (eglot--call-with-dirs-and-files): Call
	eglot-shutdown with non-nil PRESERVE-BUFFERS arg.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/66

2018-08-11  João Távora  <joaotavora@gmail.com>

	Improve eglot-execute-command api to ease overriding by servers

	* eglot.el (eglot-execute-command): COMMAND can be a symbol.
	(eglot-code-actions): Pass symbols to eglot-command.

2018-08-11  Michal Krzywkowski  <k.michal@zoho.com>

	Add a generic eglot-execute-command api

	* eglot.el (eglot-execute-command): New defgeneric and method.  Use it
	  to request :workspace/executeCommand.
	(eglot-code-actions): Use it.

2018-08-11  Michal Krzywkowski  <k.michal@zoho.com>

	* eglot.el (eglot-cquery): capitalize docstring.

2018-08-09  João Távora  <joaotavora@gmail.com>

	* eglot.el (advice-add jsonrpc-request): add &allow-other-keys

2018-08-09  João Távora  <joaotavora@gmail.com>

	Require jsonrpc.el 1.0.2 (gnu elpa didn't build 1.0.1)

	* eglot.el (Package-Requires): Require jsonrpc 1.0.2

2018-08-09  João Távora  <joaotavora@gmail.com>

	Snappier completions that don't hinder typing

	This should improve company-capf's performance.

	* eglot.el (Package-Requires): Require jsonrpc 1.0,1
	(eglot-completion-at-point): Use completion-table-dynamic.  Pass
	CANCEL-ON-INPUT to jsonrpc-request.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/61

2018-08-09  Michal Krzywkowski  <k.michal@zoho.com>

	Notify server of recent changes before save notification

	* eglot.el (eglot--signal-textDocument/didSave): Call
	  eglot--signal-textDocument/didChange.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/60

2018-08-07  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot-initialization-options): fix spurious typo.

2018-08-07  João Távora  <joaotavora@gmail.com>

	Accept functions as entries in eglot-server-programs

	CONTACT in the (MAJOR-MODE . CONTACT) association in
	eglot-server-programs can now be a function of no arguments producing
	any value previously valid for contact.  The function is called at
	time of `M-x eglot` or `eglot-ensure`.  This is useful for servers
	requiring command-line invocations that depend on the specific
	momentary environment.

	* eglot.el (eglot-server-programs): CONTACT can be a function of no
	arguments.
	(eglot--guess-contact, eglot--connect): Accept function
	CONTACTs.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/63

2018-08-05  João Távora  <joaotavora@gmail.com>

	Eglot-workspace-configuration's keys needn't be keywords

	* eglot.el (eglot-signal-didChangeConfiguration): Convert
	alist keys into a json-compatible plist.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/59

2018-08-03  João Távora  <joaotavora@gmail.com>

	Default eglot-handle-notifictiona|request must &allow-other-keys

	* eglot.el (eglot-handle-notification, eglot-handle-request): Add
	&allow-other-keys

2018-08-03  Michal Krzywkowski  <k.michal@zoho.com>

	Fix placement of diagnostics with same start and end positions

	Some servers such as cquery and clangd publish diagnostic with
	identical start and end positions.

	* eglot.el (eglot-handle-notification
	  :textDocument/publishDiagnostics): Add 1 to :line since LSP lines
	  are 0-based.  Don't subtract 1 from :character, since both emacs and
	  LSP have 0-based columns.

2018-08-02  João Távora  <joaotavora@gmail.com>

	Erase company-doc buffer in between doc requests

	* eglot.el (eglot-completion-at-point): Erase temporary
	"*eglot-doc*" buffer for company's doc.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/58

2018-07-30  Michal Krzywkowski  <k.michal@zoho.com>

	* eglot.el (eglot-client-capabilities): fix a typo.

2018-07-28  Michal Krzywkowski  <k.michal@zoho.com>

	Implement textdocument/rangeformatting

	* eglot.el (eglot-format): New command.
	(eglot-format-buffer): Use it as implementation.
	(eglot-client-capabilities): Add :rangeFormatting.
	* eglot-tests.el (formatting): Also test range formatting.
	* README.md (Commands and keybindings): Mention eglot-format.
	(Language features): Tick textDocument/rangeFormatting.

2018-07-28  Michal Krzywkowski  <k.michal@zoho.com>

	Correctly make lsp positions in narrowed buffers

	* eglot.el (eglot--pos-to-lsp-position): Fix return value when
	  narrowing is in effect.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/54

2018-07-28  Väinö Järvelä  <vaino.jarvela@gmail.com>  (tiny change)

	Fix typo in willsavewaituntil rpc request ()


	* eglot.el (eglot--signal-textDocument/willSave): Fix typo.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/51

2018-07-28  Michal Krzywkowski  <k.michal@zoho.com>

	Work around emacs bugs 32237, 32278 ()

	See:
	https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32237
	https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32278

	* eglot.el (eglot--apply-text-edits): Inhibit modification hooks and
	  call them manually for the changed region.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/53

2018-07-27  João Távora  <joaotavora@gmail.com>

	Be less verbose when using eglot-ensure

	* eglot.el (eglot-ensure): Don't message when a buffer is already
	managed.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/48

2018-07-26  Alan Zimmerman  <alan.zimm@gmail.com>

	Add entry for haskell-ide-engine in eglot-server-programs ()

	* eglot.el (eglot-server-programs): Add entry for haskell-mode

	GitHub-reference: https://github.com/joaotavora/eglot/issues/49

2018-07-25  João Távora  <joaotavora@gmail.com>

	Fix messages of eglot-ensure

	* eglot.el (eglot-ensure): fix messages.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/48

2018-07-22  João Távora  <joaotavora@gmail.com>

	Don't turn on flymake-mode any more than is needed

	If flymake-mode is in eglot--managed-mode-hook, it will be called even
	if eglot--managed-mode is being turned off, which could be problematic
	because it triggers a check if flymake-start-on-flymake-mode is t.

	* eglot.el (eglot--managed-mode): Turn on flymake-mode and
	eldoc-mode here.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/44

2018-07-20  João Távora  <joaotavora@gmail.com>

	Robustify in the face of manual mode changes

	When manually changing the major-mode of a managed buffer, this sends
	a didClose and tears down Eglot-related stuff like if were killing the
	buffer.  After changing the mode, we have to recheck that we are now
	not managed by another server (or by the same server, in case we
	changed the mode to be the same mode).

	* eglot.el (eglot-shutdown): Use eglot--with-live-buffer
	(eglot--on-shutdown): Use eglot--with-live-buffer
	(eglot--managed-mode): Use change-major-mode-hook.
	(eglot--managed-mode-onoff): Change protocol. Turn off when called
	with no arguments.
	(eglot--maybe-activate-editing-mode): Don't do anything if mode is
	already active.  Suitable for calling from
	after-change-major-mode-hook.
	(after-change-major-mode-hook): Add
	eglot--maybe-activate-editing-mode.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/44

2018-07-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from justbur/autoload-keymap

	Correct prefix keys after use-package-autoload-keymap
	GitHub-reference: https://github.com/jwiegley/use-package/issues/686

2018-07-11  João Távora  <joaotavora@gmail.com>

	Implement workspace/didchangeconfiguration ()

	* README.md (Supported Protocol Features, Commands and
	keybindings): mention workspace/didChangeConfiguration.

	* eglot.el (eglot-server-initialized-hook): New hook.
	(eglot--connect): Run it.
	(eglot-workspace-configuration): New variable.
	(eglot-signal-didChangeConfiguration): New command.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/29
	GitHub-reference: close https://github.com/joaotavora/eglot/issues/40

2018-07-11  João Távora  <joaotavora@gmail.com>

	Handle experimental/unknown server methods gracefully

	* eglot.el (eglot-handle-notification t t, eglot-handle-request t
	t): Add default handlers for unknown methods.
	(eglot-handle-notification $cquery/progress)
	(eglot-handle-notification $cquery/setInactiveRegions)
	(eglot-handle-notification $cquery/publishSemanticHighlighting):
	Remove these no-ops.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/39

2018-07-10  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jwiegley/ensure-system-package-filepath

	allow :ensure-system-package to check the presence of files at path
	GitHub-reference: https://github.com/jwiegley/use-package/issues/703

2018-07-09  Justin Talbott  <justin@waymondo.com>

	allow :ensure-system-package to check the presence of files at path

	closes https://github.com/jwiegley/use-package/issues/660

2018-07-09  João Távora  <joaotavora@gmail.com>

	Jsonrpc.el is now a gnu elpa dependency

	* Makefile (ELFILES): Don't include jsonrpc.
	(jsonrpc-check): Remove target.
	(check): Don't run jsonrpc-check

	* README.md (either): Mention "packaged in a single file" again

	* eglot.el (Package-Requires): Require jsonrpc 1.0.0
	(Version): Bump to 1.1

	* jsonrpc.el: Remove

	* jsonrpc-tests.el: Remove

2018-07-08  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot-completion-at-point): fix broken indentation

2018-07-08  Ricardo Martins  <ricardo@scarybox.net>  (tiny change)

	Format documentation in completion annotations

	Fixes an issue with the latest RLS, where the server returns a plist
	instead of a plain string as documentation for completion candidates,
	which broke the `annotation-function`. This change was introduced by
	https://github.com/rust-lang-nursery/rls/commit/206a9fb41e837333d0e67187a6a9fe24868b77a4


	* eglot.el (eglot-completion-at-point): Use eglot--format-markup

2018-07-06  João Távora  <joaotavora@gmail.com>

	Unbreak completion when no possible annotation

	* eglot.el (eglot-completion-at-point): Handle case where no doc,
	detail or kind.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/37

2018-07-03  John Wiegley  <johnw@newartisans.com>

	Merge pull request from killdash9/patch-1

	Place :chords at beginning of use-package-keywords
	GitHub-reference: https://github.com/jwiegley/use-package/issues/697

2018-07-02  João Távora  <joaotavora@gmail.com>

	Handle outrageously large and buggy line numbers

	* eglot.el (eglot--lsp-position-to-point): Truncate line number to
	most-positive-fixnum.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/34

2018-07-01  João Távora  <joaotavora@gmail.com>

	Inhibit auto-reconnect until connection is established

	Otherwise, a server that crashes on startup is enough to throw Eglot
	into a reconnection infloop.

	* eglot.el (eglot-lsp-server): Initialize "inhibit-autoreconnect"
	slot to t.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/36

2018-06-29  João Távora  <joaotavora@gmail.com>

	Bind default-directory when launching servers

	Apparently, not doing so trips some servers, like Scala's.

	* eglot.el (eglot--connect): Bind default-directory.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/33

2018-06-28  Russell Black  <black.russell@gmail.com>

	Place :chords at beginning of use-package-keywords

	When it is at the end, the keys don't get bound until after the package has been loaded, which is bad.  Placing it at the beginning allows the key bindings to be mapped to auto-loaded functions before the package is loaded, so that a key chord press triggers the package load.

2018-06-25  John Wiegley  <johnw@newartisans.com>

	Merge pull request from killdash9/patch-1

	New style of auto-deferral for chords
	GitHub-reference: https://github.com/jwiegley/use-package/issues/658

2018-06-25  John Wiegley  <johnw@newartisans.com>

	Merge branch 'master' into patch-1

2018-06-25  João Távora  <joaotavora@gmail.com>

	Cache buffer's managing server

	* eglot.el (eglot--cached-current-server): New variable.
	(eglot--managed-mode-onoff): Set it.
	(eglot--current-server): Read it.
	(eglot--maybe-activate-editing-mode): Add assertion.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/32

2018-06-25  João Távora  <joaotavora@gmail.com>

	Unbreak imenu for cquery servers (and probably more)

	* eglot.el (eglot-imenu): Don't try to make a group for symbols
	without kind.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/31

2018-06-25  João Távora  <joaotavora@gmail.com>

	Unbreak basic imenu functionality

	* eglot.el (eglot--managed-mode): Add missing quote to
	imenu-create-index-function.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/31

2018-06-25  Ricardo Martins  <1706+meqif@users.noreply.github.com>  (tiny change)

	Fix typo in the solargraph server program


	* eglot.el (eglot-server-programs): Fix typo.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/30

2018-06-23  João Távora  <joaotavora@gmail.com>

	Fix some rather silly bugs in some interactive specs

	* eglot.el (eglot-events-buffer, eglot-stderr-buffer)
	(eglot-forget-pending-continuations): Fix interactive specs.

2018-06-23  João Távora  <joaotavora@gmail.com>

	Implement tcp autostart/autoconnect (and support ruby's solargraph)

	* README.md (Installation and usage): Mention support for
	Solargraph
	(Connecting via TCP): New section
	(Connecting automatically): New section

	* eglot.el (eglot-server-programs): Add ruby-mode.
	Overhaul docstring.
	(eglot-lsp-server): Add inferior-process slot.
	(eglot--on-shutdown): Kill any autostarted inferior-process
	(eglot--guess-contact): Allow prompting with :autoport parameter.
	(eglot--connect): Consider :autoport case.
	(eglot--inferior-bootstrap): New helper.

2018-06-22  João Távora  <joaotavora@gmail.com>

	Merge branch 'jsonrpc-refactor', bump version to 1.0

	* eglot.el (Version): Bump to 1.0

2018-06-22  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 0.11

	Merge master into jsonrpc-refactor (using imerge)

2018-06-21  João Távora  <joaotavora@gmail.com>

	Empty ranges are valid in lsp

	The previous hack in eglot--range-region, designed to appease cquery's
	occasional practice of publishing diagnostics with empty regions, was
	moved to the proper notification handler.

	Reported by mkcms <k.michal@zoho.com>.

	* eglot.el (eglot--range-region): Allow empty ranges, which are
	allowed in LSP.
	(eglot-handle-notification :textDocument/publishDiagnostics): Maybe
	fallback to flymake-diag-region here.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/27

2018-06-21  João Távora  <joaotavora@gmail.com>

	Apply text edits as a single undoable edit

	As suggested by mkcms <k.michal@zoho.com>, but do it in
	eglot--apply-text-edits, where it benefits all its users.

	Also, just using undo-boundary is not enough, one needs
	undo-amalgamate-change-group to mess with the boundaries already in
	buffer-undo-list.

	* eglot.el (eglot--apply-text-edits): Use
	  undo-amalgamate-change-group.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/22

2018-06-21  João Távora  <joaotavora@gmail.com>

	Report progress when applying edits

	Use make-progress-reporter in eglot--apply-text-edits

	As suggested by mkcms <k.michal@zoho.com>, but do it in
	eglot--apply-text-edits, where it benefits all its users.

	* eglot.el (eglot--apply-text-edits): Use a progress reporter.
	Fix marker point recovery.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/23

2018-06-21  João Távora  <joaotavora@gmail.com>

	Apply text edits atomically

	As suggested by mkcms <k.michal@zoho.com>, but do it in
	eglot--apply-text-edits, where it benefits all its users.

	* eglot.el (eglot--apply-text-edits): Use atomic-change-group.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/22

2018-06-21  João Távora  <joaotavora@gmail.com>

	Defer textdocument/formatting requests

	* eglot.el (eglot-format-buffer): Pass DEFERRED to eglot--request.

2018-06-21  João Távora  <joaotavora@gmail.com>

	Simplify eglot-format-buffer

	Use replace-buffer-contents, as suggested by mkcms
	<k.michal@zoho.com>, but do it in eglot--apply-text-edits, where it
	benefits all its users.

	* README.md (Commands and keybindings): Mention
	eglot-format-buffer.

	* eglot.el (eglot-format-buffer): Don't try to heuristically
	preserve point here.
	(eglot--apply-text-edits): Use replace-buffer-contents.

	* eglot-tests.el (formatting): adjust test to strictly check for point
	position.

	GitHub-reference: per https://github.com/joaotavora/eglot/issues/22

2018-06-20  João Távora  <joaotavora@gmail.com>

	Guess server for js2-mode and rjsx-mode

	* eglot.el (eglot-server-programs): Add entries for js2-mode and
	rjsx-mode.  Coalesce entries for c++ and c-mode.  Improve
	docstring.
	(eglot--guess-contact): Allow lists are keys in
	eglot-server-programs.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/26

2018-06-20  João Távora  <joaotavora@gmail.com>

	Improve eglot-ensure and mention it in readme.md

	* README.md (Installation and Usage): Mention eglot-ensure.

	* eglot.el (eglot-ensure): No-op for non-file buffers.
	(eglot--connect): Don't fallback to 'eglot-lsp-server here.
	(eglot--guess-contact): Error if something can't be guessed.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/25

2018-06-16  Rami Chowdhury  <460769+necaris@users.noreply.github.com>  (tiny change)

	Use gfm-mode for formatted strings ()

	* eglot.el (eglot--format-markup): Use gfm-mode instead of
	markdown-mode.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/20

2018-06-15  João Távora  <joaotavora@gmail.com>

	Minor cleanup to new textdocument/formatting feature

	* README.md (Language feature): Tick textDocument/formatting

	* eglot.el (eglot-client-capabilities): Add formatting capability.
	Also move codeAction capability to the correct section.

	(eglot-format-buffer): Remove unused lexical variable before-point.

2018-06-15  Michal Krzywkowski  <k.michal@zoho.com>

	Implement formatting ()

	Implement textDocument/formatting

	* eglot.el (eglot-format-buffer): New command to format
	current buffer.

	* eglot-tests.el (formatting): New test.

	GitHub-reference: https://github.com/joaotavora/eglot/issues/19

2018-06-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jabranham/enable-lexical-binding

	Enable lexical binding
	GitHub-reference: https://github.com/jwiegley/use-package/issues/657

2018-06-13  Alex Branham  <alex.branham@gmail.com>

	Fix use-package-normalize-function

	Fix use-package-normalize-function tests

2018-06-13  Alex Branham  <alex.branham@gmail.com>

	Enable lexical binding

	This supersedes https://github.com/jwiegley/use-package/issues/617 and closes https://github.com/jwiegley/use-package/issues/648

2018-06-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from taingra/master

	Added an Introduction taken from the README
	GitHub-reference: https://github.com/jwiegley/use-package/issues/692

2018-06-13  John Wiegley  <johnw@newartisans.com>

	Update use-package.texi

2018-06-13  Thomas Ingram  <taingram@mtu.edu>  (tiny change)

	Added an Introduction taken from the README

2018-06-13  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 0.10

2018-06-13  João Távora  <joaotavora@gmail.com>

	Fix a bug when eglot--request times out

	* eglot.el (eglot--request): Better timeout
	message.
	(eglot--async-request): Must return the timer.

2018-06-13  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot-shutdown): accept timeout param.

2018-06-13  João Távora  <joaotavora@gmail.com>

	Fix bug in querying server capabilities

	This lead to javascript-typescript-stdio being sent an incremental
	didChange notif, which it doesn't support.

	* eglot.el (eglot--server-capable): Fix bug.

2018-06-10  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 0.9

	Merge branch 'master' into jsonrpc-refactor

2018-06-10  João Távora  <joaotavora@gmail.com>

	New  eglot-ensure to put in a major-mode's hook

	* eglot.el (Commentary): Mention eglo-ensure.
	(eglot--connect): Rearrange args.
	(eglot--guess-contact): Rename from eglot--interactive.
	(eglot): Use eglot--guess-contact.
	(eglot, eglot-reconnect): Rearrange call to eglot--connect.
	(eglot-ensure): New command to put in mode hook.

	* eglot-tests.el (eglot--tests-connect): New helper.
	(auto-detect-running-server, auto-reconnect, rls-watches-files)
	(rls-basic-diagnostics, rls-hover-after-edit, rls-rename)
	(basic-completions, hover-after-completions): Use it.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/17

2018-06-10  João Távora  <joaotavora@gmail.com>

	Remove connection grabbing antics from jsonrpc.el

	* eglot.el (eglot--managed-mode): Don't touch
	jsonrpc-find-connection-functions.
	(eglot--current-server-or-lose, eglot--current-server): New
	functions (resuscitate).
	(eglot-shutdown, eglot, eglot-reconnect)
	(eglot--server-capable, eglot--maybe-activate-editing-mode)
	(eglot-clear-status, eglot--mode-line-format)
	(eglot--signal-textDocument/didChange)
	(eglot--signal-textDocument/didOpen)
	(eglot--signal-textDocument/didSave)
	(xref-backend-identifier-completion-table)
	(xref-backend-definitions, xref-backend-references)
	(xref-backend-apropos, eglot-completion-at-point)
	(eglot-help-at-point, eglot-eldoc-function, eglot-imenu)
	(eglot-rename, eglot-code-actions): Use eglot--current-server and
	eglot--current-server-or-lose.
	(eglot-events-buffer, eglot-stderr-buffer)
	(eglot-forget-pending-continuations): New commands.
	(eglot--mode-line-format): Use eglot-stderr-buffer.

	* jsonrpc.el (jsonrpc-find-connection-functions)
	(jsonrpc-current-connection, jsonrpc-current-connection-or-lose):
	Remove.
	(jsonrpc-stderr-buffer, jsonrpc-events-buffer): Simplify.
	(jsonrpc-forget-pending-continuations): No longer interactive.

	* eglot-tests.el (auto-detect-running-server, auto-reconnect): Use
	eglot--current-server.

2018-06-10  João Távora  <joaotavora@gmail.com>

	Simplify jsonrpc status setting

	* eglot.el (eglot--connect): Don't set jsonrpc-status.
	(eglot-clear-status): New interactive command.
	(eglot--mode-line-format): Simplify.

	* jsonrpc.el (jsonrpc--async-request-1): Simplify.
	(jsonrpc-connection): Replace status with last-error.
	(jsonrpc-clear-status): Delete.
	(jsonrpc--connection-receive): Set last-error.

2018-06-09  João Távora  <joaotavora@gmail.com>

	Request dispatcher's return value determines response

	No more jsonrpc-reply.

	* eglot.el (eglot-handle-request window/showMessageRequest):
	Simplify.
	(eglot--register-unregister): Simplify.
	(eglot-handle-request workspace/applyEdit): Simplify.
	(eglot--apply-text-edits): Signal a jsonrpc-error.
	(eglot--apply-workspace-edit): Simplify.

	* jsonrpc-tests.el (jsonrpc--with-emacsrpc-fixture): Don't
	jsonrpc--reply.

	* jsonrpc.el (jsonrpc-error, jsonrpc-connection, jsonrpc-request):
	Improve docstring.
	(jsonrpc-error): Polymorphic args.
	(jsonrpc--unanswered-request-id): Remove.
	(jsonrpc--connection-receive): Rework and simplify.
	(jsonrpc-reply): Simplify.

2018-06-09  João Távora  <joaotavora@gmail.com>

	Merge branch 'master' into jsonrpc-refactor

2018-06-09  João Távora  <joaotavora@gmail.com>

	Fix indentation f@#$%^ by previous commit

	Courtesy of aggressive-indent-mode... Aggressive it is...

2018-06-09  João Távora  <joaotavora@gmail.com>

	Attempt to handle rls sophisticated globs for didchangewwatchedfiles

	* eglot.el (eglot--wildcard-to-regexp): New helper.
	(eglot--register-workspace/didChangeWatchedFiles): Use it.

2018-06-08  João Távora  <joaotavora@gmail.com>

	Check flymake-mode before calling report-fn

	* eglot.el (eglot-handle-notification): Check flymake-mode.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/16

2018-06-08  João Távora  <joaotavora@gmail.com>

	Merge master into jsonrpc-refactor

2018-06-08  João Távora  <joaotavora@gmail.com>

	Simplify jsonrpc connection shutdown

	* eglot.el (eglot--process): Delete.
	(eglot-shutdown): Use jsonrpc-shutdown.
	(eglot--on-shutdown): Simplify.
	(eglot-reconnect): Simplify.
	(eglot--connect): Simplify.

	* jsonrpc-tests.el (jsonrpc--with-emacsrpc-fixture): Simplify.

	* jsonrpc.el (jsonrpc-process-type, jsonrpc-running-p)
	(jsonrpc-shutdown): New methods.

	* eglot-tests.el (auto-reconnect): Use jsonrpc--process.
	(eglot--call-with-dirs-and-files): Use jsonrpc-running-p.

2018-06-08  João Távora  <joaotavora@gmail.com>

	Support json.c.  api purely based on classes

	No more jsonrpc-connect.

	This is a big commit because of a data loss problem. It should be at
	least two separate commits (json.c-support and new API)

	* eglot.el (eglot-server-programs): Rework docstring.
	(eglot-handle-request): Don't take ID param
	(eglot-lsp-server): No more initargs.
	(eglot--interactive): Return 5 args.
	(eglot): Take 5 args.
	(eglot-reconnect): Pass 6 args to eglot--connect.
	(eglot--dispatch): Remove.
	(eglot--connect): Take 6 args. Rework.
	(eglot-handle-notification): Change all specializations
	to use a non-keyword symbol spec.
	(eglot-handle-request): Remove ID param from all
	specializations.  Don't pass ID to jsonrpc-reply.
	(eglot--register-unregister): Don't take JSONRPC-ID arg.
	Don't pass ID to jsonrpc-reply.

	* jsonrpc-tests.el (returns-3, signals-an--32603-JSONRPC-error)
	(times-out, stretching-it-but-works)
	(json-el-cant-serialize-this, jsonrpc-connection-ready-p)
	(deferred-action-intime, deferred-action-toolate)
	(deferred-action-timeout): Pass JSON objects compatible with
	json.c
	(jsonrpc--test-client, jsonrpc--test-endpoint): New classes
	(jsonrpc--with-emacsrpc-fixture): Don't use jsonrpc-connect.
	(jsonrpc-connection-ready-p): Update signature.

	* jsonrpc.el: Rewrite commentary.
	(jsonrpc-connection): Rework class.
	(jsonrpc-process-connection): Rework class.
	(initialize-instance): New methods..
	(jsonrpc--json-read, jsonrpc--json-encode): Reindent.
	(jsonrpc-connect): Delete.
	(jsonrpc--json-read, jsonrpc--json-encode):
	New functions for working with json.c
	(jsonrpc--process-filter): Call them.
	(jsonrpc--unanswered-request-id): New variable.
	(jsonrpc--connection-receive): Use jsonrpc--unanswered-request-id
	(jsonrpc-connection-send): Take keyword params to build message
	instead of message.
	(jsonrpc-notify, jsonrpc--async-request-1): Use new
	jsonrpc-connection-send.
	(jsonrpc-reply): Simplify.

	* eglot-tests.el (rls-watches-files, rls-basic-diagnostics)
	(rls-hover-after-edit): Correctly compare using string= and
	non-keyword symbols.

2018-06-06  João Távora  <joaotavora@gmail.com>

	Slightly polish the flymake integration

	For backends, like RLS, that don't textDocument/publishDiagnostics
	right away, assume that the file is clean.  Since Flymake allows
	multiple reportings, it should be OK.

	* eglot.el (eglot--unreported-diagnostics): Move variable up here.
	(eglot--maybe-activate-editing-mode): Assume no diagnostics on
	open.

2018-06-06  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot--make-process): use 'utf-8-emacs-unix

	Attempt to improve the situation reported in https://github.com/joaotavora/eglot/issues/14.

2018-06-05  João Távora  <joaotavora@gmail.com>

	Merge master into jsonrpc-refactor (using imerge)

2018-06-05  João Távora  <joaotavora@gmail.com>

	Shoosh compiler

	* eglot.el (eglot-server-ready-p): Use cl-defmethod

2018-06-05  João Távora  <joaotavora@gmail.com>

	Cleanup the flymake 26.1 hack slightly

	* eglot.el (eglot-handle-notification): Use proper flymake
	diagnostic types.
	(eglot-code-actions): Use eglot--diag-data.
	(eglot--make-diag, eglot--diag-data): New aliases to
	`flymake-diagnostic-data' and `flymake-make-diagnostic'.
	(eglot-error eglot-warning eglot-note)
	(dolist eglot-error eglot-warning eglot-note): put
	flymake-overlay-control in these.
	(eglot-error eglot-warning eglot-note): put corresponding
	flymake-category.
	(horrible hack at the end): Move the Flymake 26.1 hack here.

2018-06-04  João Távora  <joaotavora@gmail.com>

	Support purposely ignoring a server capability

	* eglot.el (eglot-ignored-server-capabilites): New defcustom.
	(eglot--server-capable): Use it.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/12

2018-06-04  brotzeit  <brotzeitmacher@gmail.com>

	Fix typos

	Close https://github.com/joaotavora/eglot/issues/13.

	* eglot.el (eglot--all-major-modes)
	(eglot--notify, eglot--xref-reset-known-symbols): Fix typos.

2018-06-03  Justin Burkett  <justin@burkett.cc>

	Correct prefix keys after use-package-autoload-keymap

	By adding events of the form (cons t event) to unread-command-events, Emacs
	correctly updates this-command-keys for the subsequent use of the prefix.

	Before this change, packages like my which-key were not getting the correct
	prefix after use-package-autoload-keymap loaded the relevant package.

	See https://github.com/justbur/emacs-which-key/issues/192

2018-06-01  João Távora  <joaotavora@gmail.com>

	Fix another merge-related bug in eglot-eldoc-function

	* eglot.el (eglot-eldoc-function): Correctly destructure
	eglot--range-region.

2018-06-01  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot-eldoc-function): remove spurious log message

	* eglot.el (version): bump to 0.8

2018-06-01  João Távora  <joaotavora@gmail.com>

	Fix completionitem/resolve

	Should fix interoperation with company-quickhelp.

	* eglot.el (eglot-completion-at-point): Correctly pass properties
	to completionItem/resolve.

2018-06-01  João Távora  <joaotavora@gmail.com>

	Explicitly trigger eldoc after workspace edits

	It's usually a nice thing to do.

	* eglot.el (eglot--apply-workspace-edit): Call
	eglot-eldoc-function.

2018-06-01  João Távora  <joaotavora@gmail.com>

	New command m-x eglot-code-actions

	Also available when left-clicking diagnostics.

	* README.md: Mention eglot-code-actions. Slightly rewrite
	differences to lsp-mode.

	* eglot.el (eglot-code-actions): New command.
	(eglot-handle-notification :textDocument/publishDiagnostics): Use
	eglot--make-diag and eglot--overlay-diag-props.
	(eglot--mode-line-props): Use eglot--mouse-call.
	(eglot--mouse-call): Renamed from eglot--mode-line-call.
	(eglot-client-capabilities): List :executeCommand and :codeAction
	as capabilities.
	(eglot--diag, advice-add flymake--highlight-line): Horrible hack.
	(eglot--overlay-diag-props): Horrible hack.

2018-06-01  João Távora  <joaotavora@gmail.com>

	Revert an unfinished feature that made it to the last commit

	commit ee6ab89666704232f744d6262040979b0142c44b
	   Author: João Távora <joaotavora@gmail.com>
	   Date:   Fri Jun 1 14:43:30 2018 +0100

	   Add MELPA badge

2018-06-01  João Távora  <joaotavora@gmail.com>

	Add melpa badge

	* README.mdown: Now in MELPA too

2018-06-01  João Távora  <joaotavora@gmail.com>

	Prevent possible cquery choke on :initializationoptions

	Hopefully help debug https://github.com/joaotavora/eglot/issues/10.

	* eglot.el (eglot-initialization-options): Use `list'

2018-05-30  João Távora  <joaotavora@gmail.com>

	Merge master into jsonrpc-refactor (using imerge)

2018-05-29  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 0.7

2018-05-28  João Távora  <joaotavora@gmail.com>

	More yak shaving

	* eglot.el (eglot--with-live-buffer, eglot--widening): New macros.
	(eglot--lambda): Move up here.
	(eglot--process-filter): Simplify with eglot--with-live-buffer.
	(eglot--async-request): Simplify with eglot--with-live-buffer.
	(eglot--TextDocumentItem): Simplify with eglot--widening.
	(eglot--signal-textDocument/didChange, eglot--apply-text-edits):
	Simplify with eglot--widening.

2018-05-28  João Távora  <joaotavora@gmail.com>

	New m-x eglot-stderr-buffer useful for debugging

	* eglot.el (eglot--make-process): Save stderr buffer in process.
	(eglot-stderr-buffer): New interactive command.
	(eglot--mode-line-format): Bind C-mouse-1 to new
	eglot-stderr-buffer.

2018-05-27  João Távora  <joaotavora@gmail.com>

	On reconnection, ignore errors of shutting down hung server

	* eglot.el
	(eglot, eglot-reconnect): Ignore any errors on shutdown.

2018-05-27  João Távora  <joaotavora@gmail.com>

	Be more criterious before running the idle timer

	* eglot.el (eglot--change-idle-timer): make a defvar-local
	(eglot--after-change): Only run timer if the buffer is live.

2018-05-27  João Távora  <joaotavora@gmail.com>

	Make eglot--recent-changes a simpler list

	* eglot.el (eglot-server-ready-p): Don't add default method here.
	(eglot-server-ready-p): Do it here.
	(eglot--outstanding-edits-p): Remove.
	(eglot--before-change, eglot--after-change)
	(eglot--signal-textDocument/didChange): Use eglot--recent-changes
	as a list. Simplify.
	(eglot--signal-textDocument/didOpen): Use eglot--recent-changes as
	a list.

2018-05-27  João Távora  <joaotavora@gmail.com>

	Set eglot--versioned-identifier to 0 on didopen

	Else cquery will rightfully complain about this.

	* eglot.el (eglot--signal-textDocument/didOpen): Also set
	eglot--versioned-identifier to 0.

2018-05-27  João Távora  <joaotavora@gmail.com>

	Correctly apply workspace edits in documentchanges form

	This was breaking M-x eglot-rename for cquery

	* eglot.el (eglot--apply-workspace-edit): Fix and simplify.

2018-05-27  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 0.6

2018-05-27  João Távora  <joaotavora@gmail.com>

	Hopefully fix the flymake bootstrap problem

	Immediately after M-x eglot, eglot's use of flymake was having trouble
	detecting the first diagnostics sent from the server, resulting in an
	annoying "Wait" in the mode-line.

	* eglot.el (eglot--current-flymake-report-fn): Move up here.
	(eglot--managed-mode): Set eglot--current-flymake-report-fn to nil
	on teardown.
	(eglot--maybe-activate-editing-mode): Simplify.
	(eglot-handle-notification textDocument/publishDiagnostics): Set unreported-diagnostics to a cons.
	(eglot-handle-notification eglot-rls window/progress): Simplify.

	* eglot-tests.el (rls-basic-diagnostics): Simplify test.

2018-05-27  João Távora  <joaotavora@gmail.com>

	Set spinner in textdocument/didchange as it matters to rls

	Otherwise, the asynch eldoc action will immediately send the
	textDocument/documentHighlight requests, without understanding that
	they need to be deferred a bit more.

	* eglot.el (eglot--signal-textDocument/didChange): Set the spinner
	here.

2018-05-27  João Távora  <joaotavora@gmail.com>

	Fix assorted cquery-related bugs

	Some versions of cquery send a :role key as part of the response to
	textDocument/documentHighlight. Ignore it for now.

	Also cquery sometimes send 0-length ranges upon which we now fallback
	to flymake-diag-region.

	Finally, in eglot-eldoc-function, the previous hack of calling the
	eglot--hover-info outside of the when-buffer-window macrolet contained
	a bug. It must be called in the correct buffer. Revert the hack and do
	it by querying from eglot.el if ert is running tests.

	* eglot.el (eglot--range-region): Return a cons and fallback to
	flymake-diag-region if server returned a useless range.
	(eglot-handle-notification, eglot--hover-info): Update call to
	eglot--range-region.
	(eglot-help-at-point): Ensure `eglot--hover-info` runs in right
	buffer.
	(eglot-eldoc-function): Don't abuse eldoc-last-message like this.
	Also update call to eglot--range-region. Consider ert-running-test
	(eglot--apply-text-edits): Use pcase-lambda.
	(ert): require it.

2018-05-26  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 0.5

2018-05-26  João Távora  <joaotavora@gmail.com>

	Merge branch 'cquery-support' into master

	The conflicts in eglot.el where fixed by calling the new eglot--debug
	helper coming from 'cquery-support'. This helper was converted to
	allow a non-string format passed directly to eglot--log-event.

	Also fixed some compilation warnings.

	* eglot.el (eglot--debug): Allow non-string FORMAT to be a JSON
	object.  (eglot-handle-notification :$cquery/progress)
	(eglot-handle-notification :$cquery/setInactiveRegions)
	(eglot-handle-notification :$cquery/publishSemanticHighlighting):
	Solve compilation warnings.

2018-05-26  João Távora  <joaotavora@gmail.com>

	Really ensure eglot--shutdown deletes a process completely

	* eglot.el (eglot-lsp-server): rename slot "moribund" to
	"shutdown-requested"
	(eglot--connect): Don't check if shutdown was requested here.
	(eglot--process-sentinel): Set shutdown-requested to
	:sentinel-done here.
	(eglot-shutdown): use eglot--shutdown-requested.  Improve check
	for process liveness.

2018-05-26  João Távora  <joaotavora@gmail.com>

	Get rid of eglot--obj, an uninteresting abstraction

	* eglot.el (eglot--obj): Get rid of this. It wasn't widely used
	anyway.
	(eglot-client-capabilities)
	(eglot--connect, eglot--async-request, eglot--notify)
	(eglot--reply, eglot--pos-to-lsp-position, eglot-handle-request)
	(eglot--register-unregister, eglot-handle-request)
	(eglot--TextDocumentIdentifier)
	(eglot--VersionedTextDocumentIdentifier)
	(eglot--TextDocumentItem, eglot--TextDocumentPositionParams)
	(eglot--signal-textDocument/didChange)
	(eglot--signal-textDocument/didSave)
	(xref-backend-identifier-completion-table)
	(xref-backend-references, xref-backend-apropos, eglot-imenu)
	(eglot-rename): Use list instead of eglot--obj.

2018-05-26  João Távora  <joaotavora@gmail.com>

	Cleanup deferred request mechanism with a readable log

	* eglot.el (eglot-lsp-server): Rework doc of deferred-actions
	slot.
	(defvar eglot--next-request-id): Move down, now buffer local.
	(defun eglot--next-request-id): Remove.
	(eglot--call-deferred): Be more informative.
	(eglot--async-request): Simplify.

2018-05-26  João Távora  <joaotavora@gmail.com>

	Simplify eglot--server-receive

	* eglot.el (eglot--obj): Cleanup whitespace.
	(eglot--server-receive): Simplify.

2018-05-26  João Távora  <joaotavora@gmail.com>

	Don't rely on flymake's idle timer for textdocument/didchange

	* eglot.el (eglot--after-change): Set idle timer here.
	(eglot--change-idle-timer): New var.
	(eglot--signal-textDocument/didChange): No seed to set spinner here.
	(eglot-flymake-backend) Don't send didChange here.

2018-05-25  João Távora  <joaotavora@gmail.com>

	Document current api breaches a bit

	* eglot-tests.el (eglot--call-with-dirs-and-files)
	(auto-reconnect): use eglot--process

	* eglot.el (eglot-shutdown, eglot, eglot-reconnect)
	(eglot--connect): Use eglot--process
	(eglot--process): Alias to concentrate the hack here.
	(eglot--signal-textDocument/didChange): Tweak comment.

2018-05-25  João Távora  <joaotavora@gmail.com>

	Merge branch use-eieio-server-defclass into jsonrpc-refactor

2018-05-24  Josh Elsasser  <jelsasser@appneta.com>

	Log debug messages through eglot--debug

	* eglot.el (eglot--async-request, eglot--process-sentinel):
	(eglot--call-deferred): Use eglot--debug to log messages to
	the server events buffer.
	(eglot--server-receive): Demote "Notification unimplemented"
	message on missing handlers to a pure debug message.

2018-05-24  Josh Elsasser  <jelsasser@appneta.com>

	Demote unvisited diagnostics logging to debug level

	The PublishDiagnostic spec (LSP Specification, 3.0) does not
	strictly forbid the server from publishing diagnostics before
	a file has been visited.

	* eglot.el (eglot--server-textDocument/publishDiagnostics): Log
	the "received diagnostics for unvisited file" warning as debug
	to avoid spamming users of compliant language servers.

2018-05-24  Josh Elsasser  <jelsasser@appneta.com>

	Introduce eglot--debug for unimportant messages

	* eglot.el (eglot--debug): New function to log noisy or trivial
	messages to the eglot events buffer.

2018-05-24  Josh Elsasser  <jelsasser@appneta.com>

	Add cquery support for c/c++ projects

	Implements minimal support for the core cquery language
	server. None of its extensions are implemented yet.

	* eglot.el (eglot-server-programs): Add cquery to list
	of guessed programs for c-mode and c++-mode.
	(eglot-initialization-options eglot-cquery): Specialize init
	options to pass cquery a cache directory and disable a flood
	of $cquery/progress messages.
	(eglot-handle-notification $cquery/publishSemanticHighlighting):
	(eglot-handle-notification $cquery/setInactiveRegions):
	(eglot-handle-notification $cquery/progress): New no-op functions
	to avoid filling logs with "unknown message" warnings.
	(eglot-cquery): New eglot-lsp-server subclass.

	* README.md: Mention cquery in the README.

2018-05-22  João Távora  <joaotavora@gmail.com>

	Fix indentation broken by the defclass monster commit

	* eglot.el (for, eglot-handle-notification publishDiagnostics)
	(eglot-handle-request registerCapability, eglot-handle-request
	unregisterCapability, eglot-handle-request applyEdit): fix
	indentation.

2018-05-22  João Távora  <joaotavora@gmail.com>

	Introduce new api methods for experimental clients to use

	Should help Josh Elsasser implement pull request https://github.com/joaotavora/eglot/issues/6.

	* eglot.el (eglot--obj): Move upwards in file.
	(eglot-server-ready-p): Tweak comment.
	(eglot-initialization-options): New API defgeneric..
	(eglot-client-capabilities): New API defgeneric.
	(eglot--client-capabilities): Remove.
	(eglot--connect): Call new API methods here.

2018-05-22  João Távora  <joaotavora@gmail.com>

	Do rust's rls hack properly with new class-based api

	* eglot.el (eglot-server-ready-p): New API method.
	(eglot-handle-request, eglot-handle-notification): New
	defgeneric's.
	(eglot--ready-predicates, eglot--server-ready-p): Remove.
	(eglot--async-request): Call eglot-server-ready-p.
	(eglot--request): Tweak comment.
	(eglot--rls-probably-ready-for-p): Remove.
	(eglot-server-ready-p eglot-rls): Adapts earlier
	eglot--rls-probably-ready-for-p.
	(eglot-handle-notification eglot-rls): Specialize to eglot-rls.
	(eglot-rls): New eglot-lsp-server subclass.

	* eglot-tests.el (auto-detect-running-server)
	(auto-reconnect, basic-completions)
	(hover-after-completions): Use eglot--interactive

2018-05-22  João Távora  <joaotavora@gmail.com>

	Use an eieio class to represent a server.

	Allow clients of eglot.el to use specific server classes to represent
	experimental servers.

	Wherever you used to read "proc" you now probably read "server",
	unless it's really the process properties that are sought after.

	Should help Josh Elsasser implement pull request https://github.com/joaotavora/eglot/issues/6.

	* eglot-tests.el (eglot--call-with-dirs-and-files)
	(auto-detect-running-server, auto-reconnect, basic-completions)
	(hover-after-completions): Adapt to server defclass instead of
	proc.

	* eglot.el
	(eglot-server-programs): Add docstring.
	(eglot--processes-by-project): Removed.
	(eglot--servers-by-project): New variable.
	(eglot--current-process): Removed.
	(eglot--current-server): New function.
	(eglot-server): New class.
	(cl-print-object eglot-server): New method.
	(eglot--current-process-or-lose): Removed.
	(eglot--current-server-or-lose): New function.
	(eglot--define-process-var): Remove.
	(eglot--make-process): Rework.
	(eglot--project-short-name): Remove.
	(eglot--connect): Rework.
	(eglot--interactive): Rework to allow custom classes.
	(eglot, eglot-reconnect, eglot--process-sentinel)
	(eglot--process-filter, eglot-events-buffer, eglot--log-event):
	Rework.
	(eglot--process-receive): Removed.
	(eglot--server-receive): New function.
	(eglot--send): Renamed from eglot--process-send.
	(eglot--process-send): Removed.
	(eglot-forget-pending-continuations)
	(eglot-clear-status, eglot--call-deferred)
	(eglot--server-ready-p, eglot--async-request, eglot--request)
	(eglot--notify, eglot--reply, eglot--managed-mode-onoff)
	(eglot--maybe-activate-editing-mode, eglot--mode-line-format):
	Rework.
	(eglot-shutdown): Rework.
	(eglot-handle-notification *, eglot-handle-request *)
	(eglot--register-unregister)
	(eglot--signal-textDocument/didOpen)
	(eglot--signal-textDocument/didClose)
	(eglot--signal-textDocument/willSave)
	(eglot--signal-textDocument/didSave)
	(xref-backend-identifier-completion-table)
	(xref-backend-definitions, xref-backend-references)
	(xref-backend-apropos, eglot-completion-at-point)
	(eglot-help-at-point, eglot-eldoc-function, eglot-imenu)
	(eglot-rename)
	(eglot--register-workspace/didChangeWatchedFiles)
	(eglot--unregister-workspace/didChangeWatchedFiles)
	(eglot--rls-probably-ready-for-p, eglot-handle-notification):
	Rework (proc->server)

	fixup

	* eglot-tests.el (eglot--call-with-dirs-and-files)
	(auto-detect-running-server, auto-reconnect, basic-completions)
	(hover-after-completions):

	* eglot.el (eglot--processes-by-project): Removed.
	(eglot--servers-by-project): New variable.
	(eglot--current-process): Removed.
	(eglot--current-server): New function.

2018-05-21  João Távora  <joaotavora@gmail.com>

	Introduce eglot-handle-request and eglot-handle-notification as api

	* eglot.el (eglot--process-receive): Call eglot-handle-request and
	eglot-handle-notification.
	(eglot-handle-notification, eglot-handle-request): New generic
	functions.
	(eglot--server-window/showMessage)
	(eglot--server-window/progress)
	(eglot--server-telemetry/event, eglot--server-window/logMessage):
	Convert to eglot-handle-notification.
	(eglot-handle-request, eglot--server-client/registerCapability)
	(eglot--server-client/unregisterCapability)
	(eglot-handle-request): Convert to eglot-handle-request.

2018-05-20  João Távora  <joaotavora@gmail.com>

	Get rid of jsonrpc.el customization group and timeout

	* eglot.el (eglot-shutdown, eglot--signal-textDocument/willSave):
	Pass :timeout to jsonrpc-request.
	(defadvice jsonrpc-request): Add :timeout kwarg

	* jsonrpc.el (defgroup jsonrpc, jsonrpc-request-timeout): Remove.
	(jrpc-default-request-timeout): New constant.
	(jsonrpc-async-request): Use it.
	(jsonrpc-request): Accept timeout kwarg and pass it on.

2018-05-20  João Távora  <joaotavora@gmail.com>

	Heroically merge master into jsonrpc-refactor (using imerge)

2018-05-20  João Távora  <joaotavora@gmail.com>

	Rename jrpc.el to jsonrpc.el

	* eglot.el [everywhere]: jrpc -> jsonrpc everywhere.
	Reindent.

	* eglot-tests.el [everywhere]: jrpc -> jsonrpc everywhere.

	* jsonrpc.el: New file.

	* Makefile: jrpc.el -> jsonrpc.el

2018-05-19  João Távora  <joaotavora@gmail.com>

	Fix a bug introduced in the previous commit

	* eglot.el (eglot--format-markup): Ignore errors when calling
	possibly unknown functions.
	(eglot-completion-at-point): Use eglot--format-markup
	(eglot--hover-info): Yak shaving

2018-05-19  João Távora  <joaotavora@gmail.com>

	Rewrite a couple of defs and shave a yak

	* eglot.el (eglot--define-process-var): Simplify.
	(eglot--format-markup): Rewrite.
	(eglot--warn, eglot--pos-to-lsp-position)
	(eglot--lsp-position-to-point, eglot--server-capable)
	(eglot--maybe-activate-editing-mode)
	(eglot--server-textDocument/publishDiagnostics)
	(eglot--server-workspace/applyEdit, eglot--hover-info): Yak
	shaving.

2018-05-19  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 0.4

2018-05-19  John Wiegley  <johnw@newartisans.com>

	Merge pull request from akhramov/fix/ensure-system-package-cleanup

	ensure-system-package cleanup
	GitHub-reference: https://github.com/jwiegley/use-package/issues/683

2018-05-19  Artyom Khramov  <futu.fata@gmail.com>  (tiny change)

	Ensure system package cleanup

	The function introduced in https://github.com/jwiegley/use-package/issues/673 wasn't declared at compile time, and
	it made byte compiler unhappy. Moreover, it was forgotten to remove
	redundant compile time variables. Thanks @tarsius for pointing that
	out.

	This change
	* Removes redundant variable declarations
	* Adds `system-packages-get-command` function declaration.

2018-05-19  João Távora  <joaotavora@gmail.com>

	Add some completion tests for pyls

	* eglot-tests.el (edebug): Require it.
	(eglot--call-with-dirs-and-files): Simplify.
	(eglot--call-with-test-timeout): Don't timeout if edebug.
	(auto-detect-running-server, auto-reconnect): Skip unless rls is
	found.
	(basic-completions): New test.
	(hover-after-completions): New failing test.

	* eglot.el (eglot-eldoc-function): Force write
	eldoc-last-message, for tests sake.

2018-05-19  João Távora  <joaotavora@gmail.com>

	Handle managed buffers in own process var

	This should save some trouble when testing noninteractively.  Because
	eglot--shutdown didn't turn off the minor mode, test code running
	immediately after it could still make didClose requests, for example.
	The sentinel was the previous responsible for turning off the minor
	mode and didn't get a chance to run in that case. Now eglot--shutdown
	is also responsible for turning off the minor mode.

	All this should be hidden behind eglot--managed-mode-onoff.

	* eglot.el (eglot--managed-buffers): New process-local variable.
	(eglot--process-sentinel): Turn off managed mode.
	(eglot--managed-mode-onoff): New function.
	(eglot--managed-mode): Don't offer to kill server here.
	(eglot--buffer-managed-p): Remove.
	(eglot--maybe-activate-editing-mode): Activate mode here.
	(eglot-shutdown): Turn off minor mode here.
	(eglot--server-window/progress): Simplify slightly.

2018-05-19  João Távora  <joaotavora@gmail.com>

	Robustness fixes for the request mechanism

	* eglot.el (eglot--async-request): Pass actual id to eglot--log-event
	(eglot--request): Also cancel any continuations.

2018-05-19  João Távora  <joaotavora@gmail.com>

	Check capabilities before sending :completionitem/resolve

	* eglot.el (eglot--server-capable): Rewrite.
	(eglot-completion-at-point): Check caps before sending
	:completionItem/resolve

2018-05-19  João Távora  <joaotavora@gmail.com>

	Better decide what text exactly to present as completions

	For inserting, :insertText takes precedence over :label.
	For annotating, first sentence of :documentation, then :detail,
	then :kind name.

	Also remember to send didChange in the :exit-function

	* eglot.el (eglot-completion-function): Rework main function and
	:annotation-function, and :exit-function

2018-05-19  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot-clear-status): remember to update modeline

2018-05-19  João Távora  <joaotavora@gmail.com>

	Collect regions to change as markers, then edit

	* eglot.el (eglot--lsp-position-to-point): Accept MARKER optional
	arg.
	(eglot--range-region): Accept MARKERS optional arg. Return a list.
	(eglot--server-textDocument/publishDiagnostics)
	(eglot--hover-info, eglot-eldoc-function): eglot--range-region
	returns a list, not a cons.
	(eglot--apply-text-edits): First collect regions as markers, then
	edit.

	GitHub-reference: close https://github.com/joaotavora/eglot/issues/4

2018-05-19  João Távora  <joaotavora@gmail.com>

	If we're going to send rootpath, better send an absolute one

	javascript-typescript-langserver complained.

	* eglot.el (eglot--connect): Use expand-file-name.

2018-05-19  João Távora  <joaotavora@gmail.com>

	Robustify timer handling for eglot--async-request

	This basically cherry-picks an earlier commit for the jsonrpc-refactor
	branch:
	  a2aa1ed..: João Távora 2018-05-18 Robustify timer handling for jrpc-async-request

	* jrpc.el (jrpc--async-request): Improve timeout handling. Return a list (ID TIMER)
	(jrpc--request): Protect against user-quits, canceling timer

2018-05-19  João Távora  <joaotavora@gmail.com>

	Simplify some infrastructure functions

	* eglot.el (eglot--contact): Simplify docstring.
	(eglot--make-process): Simplify.
	(eglot--connect): Simplify.
	(eglot--interactive): Simplify and correct odd bug.
	(eglot--process-sentinel): Correct messages. Delete before
	attempting reconnection.
	(eglot-shutdown): Simplify.

2018-05-19  Naoya Yamashita  <conao3@gmail.com>

	fix gethash default value for use-package-statistics-time

	float-time expect list like (HIGH LOW USEC PSEC)
	> HIGH has the most significant bits of the seconds, while LOW has the
	> least significant 16 bits.  USEC and PSEC are the microsecond and
	> picosecond counts.
	by `current-time` in editfns.c

2018-05-18  João Távora  <joaotavora@gmail.com>

	Jrpc.el should know nothing of mode-line updates

	* eglot.el (eglot--dispatch): METHOD can be a symbol.
	Call force-mode-line-update here.

2018-05-18  João Távora  <joaotavora@gmail.com>

	Improve jrpc.el's doc (and change jrpc-request's protocol a tiny bit)

	* jrpc.el (jrpc-async-request)
	(jrpc-request,jrpc-notify,jrpc-reply): Improve docstring.
	(jrpc-connect): Improve docstring and add autoload cookie
	(jrpc-request): DEFERRED param is now &key
	(defgroup jrpc): Fix description.

	* eglot.el (advice-add jrpc-request): Use &key deferred.
	(eglot-completion-at-point): Pass :deferred to jrpc-request

2018-05-18  João Távora  <joaotavora@gmail.com>

	Merge branch 'master' into jsonrpc-refactor (using good ol' git merge)

2018-05-17  João Távora  <joaotavora@gmail.com>

	* eglot.el (version): bump to 0.3

2018-05-17  João Távora  <joaotavora@gmail.com>

	Make it work on windows

	Apparently passing :coding 'no-conversion to make-process on windows
	is essential to receive any text at all in the process filter.

	Also needed to tweak uri-to-path and path-to-uri.

	Thanks to lsp-mode.el for these hints

	* eglot.el (eglot--make-process): Pass :coding 'no-conversion to
	make-process.
	(eglot--path-to-uri): Add a forward slash if windows-nt.
	(eglot--uri-to-path): Remove a forward slash if windows-nt.
	(eglot--server-textDocument/publishDiagnostics): Simplify and use
	eglot--uri-to-path.

2018-05-17  João Távora  <joaotavora@gmail.com>

	Fix eglot--error and eglot--message helpers

	* eglot.el (eglot--error, eglot--message):
	Safely interpret %s.

2018-05-17  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot--lambda): add missing indent spec.

2018-05-16  João Távora  <joaotavora@gmail.com>

	Simplify some function calling infrastructure

	eglot--mapply is a confusing abstraction. Hide some of that confusion
	behind eglot--lambda. More stably dispatch server notifications and
	requests without introspecting their contents.

	* eglot.el (eglot--process-receive): Simplify.
	(eglot--async-request): Improve doc.
	(eglot--request): Simplify.
	(eglot--mapply): Remove.
	(xref-backend-identifier-completion-table)
	(xref-backend-definitions, xref-backend-references)
	(xref-backend-apropos, eglot-completion-at-point)
	(eglot-eldoc-function, eglot-imenu, eglot--apply-text-edits):
	Don't use eglot--mapply, use normal mapcar/mapc.

2018-05-16  João Távora  <joaotavora@gmail.com>

	Replace eglot--with-lsp-range with a function and pcase-let

	* eglot.el (eglot--with-lsp-range): Remove.
	(eglot--range-region): New function.
	(eglot--server-textDocument/publishDiagnostics)
	(eglot--hover-info, eglot-eldoc-function)
	(eglot--apply-text-edits): Use it.

2018-05-16  João Távora  <joaotavora@gmail.com>

	Simpler callback protocol for jsonrpc parameters and results

	Instead of introspecting the :params or :result object to discover if
	an object is present, and changing the Elisp function call type
	(funcall vs apply) accordingly, always funcall. It's up to the
	application to destructure if it wishes. jrpc-lambda can help with
	that and keep the application code simple.

	* eglot.el (eglot--on-shutdown): Fix indentation.
	(eglot--dispatch): Simplify.
	(xref-backend-identifier-completion-table)
	(xref-backend-definitions, xref-backend-references)
	(xref-backend-apropos, eglot-completion-at-point)
	(eglot-eldoc-function, eglot-imenu, eglot--apply-text-edits):
	Don't use jrpc-mapply.

	* jrpc.el (jrpc--process-receive): Allow only keys defined in
	JSONRPC2.0
	(jrpc--process-receive): Don't overload function call type based
	on remote response.
	(jrpc-lambda): Return a unary lambda.
	(jrpc-request): Simplify.
	(jrpc-mapply): Remove.

2018-05-16  João Távora  <joaotavora@gmail.com>

	More flexible jrpc.el and improve eglot.el's doc

	Generalize and rework CONTACT arg to jrpc-connect

	* eglot.el (eglot--command-history): Tweak docstring.
	(eglot--interactive): Rework.
	(eglot): Rework docstring. COMMAND is now CONTACT.
	(eglot--connect): Use new jrpc-connect protocol.
	(eglot-server-programs): Reword doc.

	* jrpc.el (jrpc--make-process): Use new form of CONTACT.
	(jrpc-connect): Explain new semantics of CONTACT.

2018-05-15  João Távora  <joaotavora@gmail.com>

	Merge master into jsonrpc-refactor (using imerge)

2018-05-15  João Távora  <joaotavora@gmail.com>

	Add php's php-language-server to built-in guessed servers

	Closes https://github.com/joaotavora/eglot/issues/1. The problem in that issue is that php-language-server has a
	bug when it's not passed it the deprecated ":rootPath" field. The bug
	doesn't happen if the ":processId" field is also absent. Eglot was
	triggering the bug, because it didn't pass ":rootPath", but there's
	nothing wrong in doing so.

	* README.md: Add php-language-server to the built-in list.

	* eglot.el (eglot-server-programs): Add php-language-server.
	(eglot--connect): Also pass (deprecated) rootPath.

2018-05-15  João Távora  <joaotavora@gmail.com>

	Bump version and slightly improve doc

	* eglot.el: Bump version. Add nicer Commentary header.
	(eglot): Improve docstring.

	* README.md: Update

2018-05-14  João Távora  <joaotavora@gmail.com>

	More quietly report request timeouts as events

	* eglot.el (eglot--sync-request): Use eglot--log-event

2018-05-14  João Távora  <joaotavora@gmail.com>

	Shutdown server if connection initialization fails

	Also tweak autoreconnection logic

	* eglot.el (eglot--connect): Immediately `eglot-shutdown` if
	connection initialization failed. Don't treat interactive calls
	specially.
	(eglot--process-sentinel): Tweak messages.

2018-05-14  João Távora  <joaotavora@gmail.com>

	Fix a ridiculous bug when generating transient projects

	* eglot.el (eglot--find-current-process, eglot--interactive): Fix
	horrible bug.

2018-05-14  João Távora  <joaotavora@gmail.com>

	Fix a ridiculous bug when generating transient projects

	* eglot.el (eglot--find-current-process, eglot--interactive): Fix
	horrible bug.

2018-05-14  João Távora  <joaotavora@gmail.com>

	Jrpc-connect is now passed a generic dispatching function

	* eglot.el (eglot--dispatch): New helper.
	(eglot--connect): Use it.

	* jrpc.el (jrpc--dispatcher, jrpc--request-continuations)
	(jrpc--server-request-ids): New process-local var.
	(jrpc--pending-continuations, jrpc--method-prefix): Remove.
	(jrpc-connect): Take DISPATCHER instead of PREFIX.
	(jrpc--process-receive): Use proc's dispatcher.
	(jrpc--process-send): Make private.
	(jrpc-forget-pending-continuations, jrpc-async-request)
	(jrpc-reply, jrpc-notify): Use new function names.

2018-05-14  João Távora  <joaotavora@gmail.com>

	Merge master into jsonrpc-refactor (using imerge)

2018-05-14  João Távora  <joaotavora@gmail.com>

	Proper server shutdown when jrpc.el is used

	The shutdown hook can't be a buffer-local thing, it has
	to be a server property. Also, on shutdown in eglot.el,
	remember to first unmanage buffers and only then affect
	eglot--processes-by-project.

	* eglot.el (eglot--on-shutdown): reverse order of first
	two sexps.
	(eglot--connect): Pass a shutdown function to jrpc-connect
	(eglot--managed-mode): Don't use jrpc-server-moribund-hook
	(eglot--buffer-managed-p): Simplify. Use eglot--find-current-process.

2018-05-14  João Távora  <joaotavora@gmail.com>

	Support didchangewatchedfiles with dynamic registration

	RLS uses this, presumaly for knowing about Cargo.toml changes and stuff.

	* README.md: Update protocol compliance.

	* eglot.el (filenotify): Require it.
	(eglot--file-watches): New process-local var.
	(eglot--process-sentinel): Kill all watches
	(eglot--register-unregister): New helper.
	(eglot--server-client/registerCapability): Simplify.
	(eglot--server-client/unregisterCapability): New method.
	(eglot--register-workspace/didChangeWatchedFiles)
	(eglot--unregister-workspace/didChangeWatchedFiles): New
	capability.
	(eglot--client-capabilities): Update.

2018-05-14  João Távora  <joaotavora@gmail.com>

	Remove an unused variable

	* eglot.el (eglot--expect-carriage-return): Get rid of this.

2018-05-14  João Távora  <joaotavora@gmail.com>

	Now send willsavewaituntil

	* eglot.el (eglot--client-capabilities): Report willSaveWaitUntil.
	(eglot--server-workspace/applyEdit): Fix docstring.
	(eglot--signal-textDocument/willSave): Send willSaveWaitUntil
	(eglot--signal-textDocument/didOpen)
	(eglot--signal-textDocument/didClose): Don't eglot--obj.
	(eglot--apply-text-edits): Simplify. Use current buffer.
	(eglot--apply-workspace-edit): Use new eglot--apply-text-edits.

2018-05-14  João Távora  <joaotavora@gmail.com>

	Don't define a menu if nothing to show there for now

	* eglot.el (eglot-menu): Remove it.
	(eglot--mode-line-format): Don't define a menu.

2018-05-13  João Távora  <joaotavora@gmail.com>

	Use rls in travis ci and add actual tests

	Also run a hook when connected

	* eglot-tests.el (eglot--with-dirs-and-files)
	(eglot--make-file-or-dirs, eglot--call-with-dirs-and-files)
	(eglot--find-file-noselect): New helpers.
	(auto-detect-running-server, auto-reconnect): New actual tests.

	* eglot.el (eglot-connect): Run hook when connected
	(eglot-connect-hook): New variable

	* .travis.yml: Use rust stable and install rls

	* README.md: Update mention of automated tests

2018-05-13  João Távora  <joaotavora@gmail.com>

	Fix automatic project creation

	* eglot.el (eglot): Take PROJECT arg. Return process.
	(eglot--interactive): Returns a project.

2018-05-13  João Távora  <joaotavora@gmail.com>

	Work with any old directory, no formal project needed

	Actually, uses a "transient project" which project-current returns if
	desperate.

	* README.md: Update

	* eglot.el (eglot--current-process)
	(eglot--current-process-or-lose): Simplify.
	(eglot): Maybe prompt user for project.

2018-05-13  João Távora  <joaotavora@gmail.com>

	Ask server for textdocument/signaturehelp if it supports it

	* eglot.el (eglot--client-capabilities): Capable of signature Help.
	(eglot--sig-info): Helper for eglot-eldoc-function.
	(eglot-eldoc-function): Send textDocument/signatureHelp

	* README.md: Update to mention textDocument/signatureHelp

2018-05-13  João Távora  <joaotavora@gmail.com>

	Fix copyright header. obviously not since 2003

2018-05-13  Justin Talbott  <justin@waymondo.com>

	Merge pull request from andschwa/remap-command

	Document that remapping commands is supported with bind-key
	GitHub-reference: https://github.com/jwiegley/use-package/issues/674

2018-05-12  João Távora  <joaotavora@gmail.com>

	Refactor json-rpc lib jrpc.el from eglot.el

	* eglot.el [too many to mention]: Move lower level functions to
	jrpc.el. Hook onto jrpc's external interfaces.

	* jrpc.el: New file

2018-05-12  João Távora  <joaotavora@gmail.com>

	Reinstate the catch/loop/throw idiom in eglot-request

	This reverts parts of commit fabee14ed5b32c30c6ac5cb1ce88f387522a6a1e.

	Unfortunately, this may cause problems when calling the error
	callbacks directly as in the process sentinel. In that particular
	scenario the accept-process-output won't have return, because no
	output has is being handled. Consequently, if we're unlucky, we have
	another 30 seconds to way before the flag is tested and the loop
	exits.

	* eglot.el (eglot-request): Use catch/loop/throw again

2018-05-12  João Távora  <joaotavora@gmail.com>

	Fix copyright header. obviously not since 2003

2018-05-12  João Távora  <joaotavora@gmail.com>

	New command eglot-help-at-point and a readme update

	* README.md (Commands and keybindings): New section.

	* eglot.el (eglot-eldoc-function): Use eglot--hover-info.
	Don't care about kind in highlightSymbol
	(eglot--hover-info): New helper.
	(eglot-help-at-point): New command.

2018-05-11  João Távora  <joaotavora@gmail.com>

	Get rid of catch/loop/throw idiom (suggested by thien-thi nguyen)

	* eglot.el (eglot--process-filter)
	(eglot--request): Replace catch/loop/throw idiom with let/test/loop/set

2018-05-11  João Távora  <joaotavora@gmail.com>

	Rework autoreconnection logic

	Can't be a global var, has to be a per process thing.

	* eglot.el (eglot-autoreconnect): New defcustom
	(eglot--inhibit-autoreconnect): Renamed from eglot--inhibit-autoreconnect
	(eglot--connect): Run autoreconnect timer here.
	(eglot--inhibit-auto-reconnect): Removed.
	(eglot--process-sentinel): Don't run timer here. Rework.
	(eglot, eglot-reconnect): Pass INTERACTIVE to eglot--connect.

2018-05-10  João Távora  <joaotavora@gmail.com>

	Duh, json.el is in emacs, and json-mode.el is useless here

	* eglot.el (Package-Requires): Don't require json-mode

2018-05-10  João Távora  <joaotavora@gmail.com>

	Prepare to submit to gnu elpa

	* eglot.el: Update headers.

2018-05-10  João Távora  <joaotavora@gmail.com>

	(eglot--xref-make): fix use of cl-destructuring-bind.

2018-05-10  João Távora  <joaotavora@gmail.com>

	Misc little adjustments for readability

	* eglot.el (eglot--log-event, eglot--process-receive)
	(eglot--xref-make, xref-backend-apropos): Use cl-destructuring-bind.
	(eglot--server-window/showMessageRequest): Compact.

2018-05-10  João Távora  <joaotavora@gmail.com>

	Support :completionitem/resolve

	This is quite handy with company and company-quickhelp

	* eglot.el (eglot-completion-at-point): Send
	:completionItem/resolve

	* README.md: Mention completionItem/resolve

2018-05-10  João Távora  <joaotavora@gmail.com>

	Rename functions. eglot--request is now the synchronous one

	* eglot.el (eglot--connect, eglot-shutdown)
	(xref-backend-identifier-completion-table)
	(xref-backend-definitions, xref-backend-references)
	(xref-backend-apropos, eglot-completion-at-point, eglot-rename):
	Call eglot--request.
	(eglot--async-request): Renamed from eglot--request.
	(eglot--request): Renamed from eglot--sync-request.
	(eglot--TextDocumentIdentifier)
	(eglot--VersionedTextDocumentIdentifier)
	(eglot--TextDocumentPositionParams, eglot--TextDocumentItem):
	Renamed from the more verbose eglot--current-buffer-* variant.
	(eglot-rename, eglot-imenu, eglot-eldoc-function)
	(eglot-completion-at-point, xref-backend-definitions)
	(xref-backend-identifier-at-point)
	(eglot--signal-textDocument/didSave)
	(xref-backend-identifier-completion-table)
	(eglot--signal-textDocument/didClose)
	(eglot--signal-textDocument/didOpen)
	(eglot--signal-textDocument/didChange): Use new function names.

2018-05-10  João Távora  <joaotavora@gmail.com>

	Friendlier m-x eglot

	* eglot.el (eglot-server-programs): Renamed from eglot-executables
	(eglot--interactive): Redesign
	(eglot): Docstring.
	(eglot--connect): Now a synchronous gig.
	(eglot--interactive): Friendlier.
	(eglot): Improve docstring, rework a bit.
	(eglot-reconnect): Rework a bit.
	(eglot--process-sentinel): Insert "byebye" ruler here.

	* README.md: Update

2018-05-10  João Távora  <joaotavora@gmail.com>

	Improve eglot-eldoc-function

	Use the :range key if the server provided it. Also simplify code with
	a new eglot--with-lsp-range macro.

	* eglot.el (eglot--format-markup): Tweak comment.
	(eglot--with-lsp-range): New helper macro.
	(eglot--server-textDocument/publishDiagnostics)
	(eglot--apply-text-edits): Use it.
	(eglot-eldoc-function): Use range if server provides it.

2018-05-10  João Távora  <joaotavora@gmail.com>

	Reduce log chatter

	* eglot.el (eglot--process-sentinel, eglot--request): Use
	eglot--log-event.
	(eglot--log-event): Print "message" if type unknown.
	(eglot--debug, eglot--log): Remove.
	(eglot--server-window/logMessage, eglot--server-telemetry/event):
	Make noops.
	(eglot--call-deferred): Also reduce chatter here.

2018-05-10  João Távora  <joaotavora@gmail.com>

	Only call deferred actions after a full message has been received

	Otherwise it can be quite wasteful.

	* eglot.el (eglot--process-filter): Don't eglot--call-deferred here.
	(eglot--process-receive): Do it here.

2018-05-10  João Távora  <joaotavora@gmail.com>

	Resist server failure during synchronous requests

	Calling the error handler unprotected could lead to the rest of the
	sentinel not running at all. This defeated the auto-reconnection in
	Rust, for example.

	* eglot.el (eglot--process-sentinel): Rework.

2018-05-10  João Távora  <joaotavora@gmail.com>

	Simplify mode-line updating logic

	* eglot.el (eglot--define-process-var): Simplify.
	(eglot--short-name, eglot--spinner, eglot--status): Don't
	auto-update mode-line.
	(eglot--process-receive): Update it here.

2018-05-10  João Távora  <joaotavora@gmail.com>

	More rls-specifics: update flymake diags when indexing done

	RLS could/should report diagnostics for every opened file, even if
	there aren't any problems. Because it doesn't, loop for every buffer
	managed by the process and call eglot--current-flymake-report-fn

	* eglot.el
	(eglot--server-window/progress): Call eglot--current-flymake-report-fn

2018-05-10  João Távora  <joaotavora@gmail.com>

	Adjust flymake integration

	When opening a new file (signaling textDocument/didOpen) it makes
	sense to call the flymake callback (if it exists) with no diagnostics,
	just to get rid of that "Wait", since we don't know if later in this
	callback cycle the server will ever report new diagnostics.

	* eglot.el (eglot--managed-mode): Don't call flymake-mode or eldoc-mode
	(eglot--managed-mode-hook): Add them here.
	(eglot--maybe-activate-editing-mode): Call flymake callback.
	(eglot--server-textDocument/publishDiagnostics): Set unreported
	diagnostics to nil if invoking callback.

2018-05-10  João Távora  <joaotavora@gmail.com>

	Shorten summary line to appease package-lint.el

2018-05-10  João Távora  <joaotavora@gmail.com>

	More correctly setup rust-mode-related autoloads

	By autoloading the add-hook form and the eglot--setup-rls-idiosyncrasies
	definition, a user can start rust-mode without loading eglot.el along
	with it.

	* eglot.el (rust-mode-hook)
	(eglot--setup-rls-idiosyncrasies): Wrap in autoloaded progn.

2018-05-09  João Távora  <joaotavora@gmail.com>

	Add minimal headers, commentary and autoloads

2018-05-09  João Távora  <joaotavora@gmail.com>

	Fancier rls spinner

	* eglot.el (eglot--mode-line-format): Use (nth 3) of
	eglot--spinner.
	(eglot--server-window/progress): Save detail message in spinner.

2018-05-09  João Távora  <joaotavora@gmail.com>

	New "deferred requests" that wait until server is ready

	Calling textDocument/hover or textDocument/documentHighlight before
	the server has had a chance to process a textDocument/didChange is
	normally useless. The matter is worse for servers like RLS which only
	become ready much later and send a special notif for it (see
	https://github.com/rust-lang-nursery/rls/issues/725).

	So, keeping the same coding style add a DEFERRED arg to eglot--request
	that makes it maybe not run the function immediately. Add a bunch of
	logic for probing readiness of servers.

	* README.md: Update

	* eglot.el (eglot--deferred-actions): New process-local var.
	(eglot--process-filter): Call deferred actions.
	(eglot--request): Rewrite.
	(eglot--sync-request): Rewrite.
	(eglot--call-deferred, eglot--ready-predicates)
	(eglot--server-ready-p): New helpers.
	(eglot--signal-textDocument/didChange): Set spinner and call
	deferred actions.
	(eglot-completion-at-point): Pass DEFERRED to eglot-sync-request.
	(eglot-eldoc-function): Pass DEFERRED to eglot-request
	(eglot--rls-probably-ready-for-p): New helper.
	(rust-mode-hook): Add eglot--setup-rls-idiosyncrasies
	(eglot--setup-rls-idiosyncrasies): New helper.

2018-05-09  João Távora  <joaotavora@gmail.com>

	Call eglot-eldoc-function after completion finishes

	* eglot.el (eglot-completion-at-point): Call
	eglot-eldoc-function after completion finishes.

2018-05-09  João Távora  <joaotavora@gmail.com>

	Simplify `eglot-shutdown`

	* eglot.el (eglot, eglot-reconnect)
	(eglot--managed-mode): Call new eglot-shutdown.
	(eglot-shutdown): Simplify.
	(eglot--process-sentinel): Also call error functions.
	(eglot--process-filter): Reindent.

2018-05-09  João Távora  <joaotavora@gmail.com>

	Get rid of eglot-mode

	* eglot.el (eglot--managed-mode): Don't call eglot-mode. When
	shutting down, offer to kill server.
	(mode-line-misc-info): Update to use eglot--managed-mode

2018-05-09  João Távora  <joaotavora@gmail.com>

	Simplify eglot--signal-textdocument/didchange

	* eglot.el (eglot--recent-before-changes)
	(eglot--recent-after-changes): Delete.
	(eglot--recent-changes): New var.
	(eglot--outstanding-edits-p, eglot--before-change)
	(eglot--after-change): Rewrite.
	(eglot--signal-textDocument/didChange): Rewrite.
	(eglot--signal-textDocument/didOpen): Initialize
	buffer-local eglot--recent-changes here.

2018-05-09  João Távora  <joaotavora@gmail.com>

	Fix odd bugs and tweak stuff

	* eglot.el (eglot--log-event): Insert before markers.
	(eglot--process-receive): Shave lines.
	(xref-backend-references): Use cl-return-from.
	(eglot--log-event): Simplify
	(eglot-completion-at-point): Saner annotation

2018-05-08  João Távora  <joaotavora@gmail.com>

	Support workspace/applyedit

	* eglot.el (eglot--reply): Don't send result or error if not
	provided.
	(eglot--server-workspace/applyEdit): New server method.
	(eglot--apply-text-edits): Rework.
	(eglot--apply-workspace-edit): New helper.
	(eglot-rename): Simplify.

2018-05-08  João Távora  <joaotavora@gmail.com>

	Support textdocument/rename

	* README.md: Mention rename support.

	* eglot.el (eglot--uri-to-path): Handle uri hidden in keywords.
	(eglot--apply-text-edits): New helper.
	(eglot-rename): New interactive command.
	(eglot--client-capabilities): Add rename capability.

2018-05-08  João Távora  <joaotavora@gmail.com>

	Reasonable textdocument/documenthighlight support

	* README.md: Update.

	* eglot.el (eglot--current-buffer-TextDocumentPositionParams): New
	helper.
	(xref-backend-identifier-completion-table): Refactor a bit.
	(xref-backend-identifier-at-point): Use when-let and
	eglot--current-buffer-TextDocumentPositionParams
	(xref-backend-definitions, xref-backend-references): Refactor a
	bit.
	(eglot-completion-at-point): Use
	eglot--current-buffer-TextDocumentPositionParams
	(eglot-eldoc-function): Rewrite to handle
	textDocument/documentHighlight.
	(eglot--highlights): New variable.
	(eglot--client-capabilities): Update with support for documentHighlight.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Fix odd bugs

	* eglot.el (eglot--process-receive, eglot--request): Set status to
	actual error message.
	(eglot--managed-mode): Manage imenu-create-index-function
	correctly.
	(eglot--mode-line-format): Print error status.

2018-05-07  João Távora  <joaotavora@gmail.com>

	When killing server, always wait 3 seconds

	* eglot.el (eglot--request): Accept TIMEOUT param.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Try to fix some textdocument/completion bugs

	* eglot.el (eglot-completion-at-point): Rework slightly.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Half-decent imenu support via textdocument/documentsymbol

	* README.md: Update capability

	* eglot.el (eglot--lsp-position-to-point): New function.
	(eglot--managed-mode): Handle imenu-create-index-function.
	(eglot--server-textDocument/publishDiagnostics): Use
	eglot--lsp-position-to-point.
	(eglot-imenu): New function.
	(eglot--client-capabilities): Capable of documentSymbol.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Only request stuff that server says it's capable of

	* eglot.el (eglot--server-capable): New helper.
	(eglot-xref-backend)
	(xref-backend-identifier-completion-table)
	(xref-backend-references, xref-backend-apropos)
	(eglot-completion-at-point, eglot-eldoc-function): Use it.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Simplify mode-line code with a helper.

	* eglot.el (eglot--mdoe-line-props): New helper.
	(eglot--mode-line-format): Use it.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Get rid of eglot--buffer-open-count

	Hasn't really proved useful yet.

	* eglot.el (eglot--buffer-open-count): Remove.
	(eglot--signal-textDocument/didOpen)
	(eglot--signal-textDocument/didClose): Simplify.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Get rid of eglot--special-buffer-process

	Hasn't really proved useful yet.

	* eglot.el (eglot--special-buffer-process): Delete.
	(eglot--current-process): Simplify.
	(eglot--events-buffer): Simplify.

2018-05-07  João Távora  <joaotavora@gmail.com>

	* eglot.el: reformat to shave off some lines.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Fix bug in hover support

	* eldoc.el (eglot-eldoc-function): Use eglot--format-markup.
	(subr-x): Require it.
	(eglot--format-markup): Pacify byte-compiler.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Clean up client capabilities

	* eglot.el (eglot--client-capabilities): Clean up client
	capabilities.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Half-baked textdocument/hover support

	* eglot.el (eglot--format-markup): New helper.
	(eglot--managed-mode): Handle eldoc-documentation-function.
	(eglot-eldoc-function): New function.

	* README.md: update

2018-05-07  João Távora  <joaotavora@gmail.com>

	Tweak the async request engine.

	* eglot.el (eglot--request): Return the continuation id.
	(eglot--lambda): Move up in the file.
	(eglot--sync-request): Use a catch-tag.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Explain why didopen on after-revert-hook is a bad idea

	The reason is that the global find-file-hook is called again, and that
	already does the didOpen. Too many didOpen's would be bad.

	* eglot.el (eglot--managed-mode): Remove commented lines.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Half-decent completion support

	* README.md: Update.

	* eglot.el (eglot--kind-names): New variable.
	(eglot--managed-mode): Handle completion-at-point-functions.
	(eglot-completion-at-point): New function.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Solve another textdocument/didchange bug

	* eglot.el (eglot--signal-textDocument/didChange): Rework a bit.
	(eglot--after-change): Store the actual after-text in the
	eglot--recent-after-changes.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Support javascript's javascript-typescript-langserver

	* README.md: Improve a bit

	* eglot.el (eglot--make-process): Take MANAGED-MAJOR-MODE arg
	(eglot-executables): Add basic javascript support.
	(eglot--connect): Pass mode to eglot--make-process
	(eglot--interactive): Check that guessed command is a listp.
	(eglot): Minor improvement to message.
	(eglot--current-buffer-TextDocumentItem): Guess language from mode
	symbol.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Increase request timeout length to 10 seconds

	* eglot.el (eglot-request-timeout): New var.
	(eglot--request): Use it.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Workaround two suspected emacs bugs

	* eglot.el (eglot--process-filter): Use a proper unique tag. Use
	unwind-protect.
	(eglot--sync-request): Rework.
	(eglot--server-client/registerCapability): Use a proper done tag.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Etoomanylambdas

	* eglot.el (eglot--sync-request): Remove a lambda.

2018-05-07  João Távora  <joaotavora@gmail.com>

	Fix the odd bug here and there

	* eglot.el (eglot--connect): Activate editing mode where
	applicable here.
	(eglot, eglot-reconnect): Not here or here.
	(eglot--process-sentinel): Catch auto-reconnect errors.
	(eglot--notify): Dont send 'id=null', it messes up js's lsp
	(eglot--reply): Do send id here.
	(eglot--log-event): Simplify protocol. Complexify implementation.
	(eglot--process-receive, eglot--process-send): Simplify
	eglot--log-event call.
	(eglot--request, eglot--notify, eglot--reply): Simplify
	eglot--process-send call
	(eglot--server-client/registerCapability): Fix bug when replying
	with wrong id.
	(eglot--xref-reset-known-symbols): Take DUMMY arg.

2018-05-06  João Távora  <joaotavora@gmail.com>

	Half-decent xref support

	* eglot.el
	(eglot--xref-known-symbols): New hacky var.
	(eglot--xref-reset-known-symbols): New helper.
	(xref-find-definitions, xref-find-references): Advise after to
	call the new helper.
	(xref-backend-identifier-completion-table): Rework.
	(eglot--xref-make): New helper.
	(xref-backend-definitions): Use it.
	(xref-backend-references, xref-backend-apropos): Implement.
	(eglot--obj): Add a debug spec.
	(eglot--lambda): Add debug spec.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Very basic xref support

	* eglot.el (eglot--pos-to-lisp-position): Move up.
	(eglot--mapply, eglot--lambda): New helpers.
	(eglot--uri-to-path): New helper.
	(eglot--managed-mode): Manage xref-backend-functions.
	(eglot-xref-backend): New function.
	(xref-backend-identifier-completion-table)
	(xref-backend-identifier-at-point)
	(xref-backend-definitions): New methods.
	(xref-backend-references)
	(xref-backend-apropos): New methods, still unimplemented.

2018-05-04  João Távora  <joaotavora@gmail.com>

	New helper eglot--sync-request

	This should help with xref definitions

	* eglot.el (eglot--request): Rework a bit. Continuation is always
	cleared on timeout, regardless of user-supplied fn.
	(eglot--sync-request): New function.
	(eglot--process-receive): watch out for vector results.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Cleanup mistake with textdocumentitem and textdocumentidentifier

	Also introduce eglot--path-to-uri

	* eglot.el (eglot--path-to-uri): Rename from eglot--uri and rework.
	(eglot--connect): Use it.
	(eglot--current-buffer-TextDocumentIdentifier): New function.
	(eglot--current-buffer-VersionedTextDocumentIdentifier)
	(eglot--signal-textDocument/didChange)
	(eglot--signal-textDocument/didClose)
	(eglot--signal-textDocument/willSave)
	(eglot--signal-textDocument/didSave): Use it.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Handle dynamic registration in general (but nothing specific yet)

	* eglot.el (eglot--server-client/registerCapability): Implement.
	(eglot--register-workspace/didChangeWatchedFiles): Dummy registrator.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Honor textdocumentsync

	* eglot.el (eglot--signal-textDocument/didChange): Honor textDocumentSync

2018-05-04  João Távora  <joaotavora@gmail.com>

	Be quite explicit about our lack of capabilities right now

	* eglot.el (eglot--client-capabilities): Spread out.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Use rooturi instead of rootpath

	* eglot.el (eglot--connect)
	(eglot--current-buffer-VersionedTextDocumentIdentifier): Use
	eglot--uri.
	(eglot--uri): New function.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Make reported capabilities into its own function

	* eglot.el (eglot--client-capabilities): New function.
	(eglot--connect): Use it.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Include source info in diagnostics

	* eglot.el (eglot--server-textDocument/publishDiagnostics):
	Include source info.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Reply to client/registercapability (don't handle it yet)

	* eglot.el (eglot--server-client/registerCapability): New
	function.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Handle requests from server correctly

	* eglot.el (eglot--process-receive): Redesign.
	(eglot--process-send): Take REPLY arg. Discover if message is error.
	(eglot--reply): new function
	(eglot--log-event): Tweak docstring.
	(eglot--process-receive): Reply with -32601 if unimplemented.
	(eglot--server-window/showMessageRequest)
	(eglot--server-client/registerCapability): Use eglot--reply

2018-05-04  João Távora  <joaotavora@gmail.com>

	Don't auto-reconnect if last attempt lasted less than 3 seconds

	* eglot.el (eglot--inhibit-auto-reconnect): New var.
	(eglot--process-sentinel): Use it.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Workaround rls's regusal to treat nil as empty json object

	* eglot.el (eglot--connect): Use dummy params.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Eglot-editing-mode becomes eglot--managed-mode

	* eglot.el (eglot--sentinel): Use eglot--managed-mode.
	(eglot--managed-mode-map): Renamed from eglot-editing-mode-map.
	(eglot--managed-mode): Renamed from eglot-editing-mode.
	(eglot-mode): Simplify.
	(eglot--buffer-managed-p): New function.
	(eglot--maybe-activate-editing-mode): Simplify.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Make m-x eglot's interactive spec a separate function

	* eglot.el (eglot--interactive): New function.
	(eglot): Rework a little.

2018-05-04  João Távora  <joaotavora@gmail.com>

	When user declines to reconnect, first quit existing server

	* eglot.el (eglot): Rework reconnection logic.

2018-05-04  João Távora  <joaotavora@gmail.com>

	Connect to lsp server via tcp

	* eglot.el (eglot--make-process): Rename from
	eglot-make-local-process.
	(eglot): Fix docstring and rework.
	(eglot--bootstrap-fn): Remove
	(eglot--contact): New process-local var.
	(eglot--connect): Take CONTACT arg.
	(eglot--reconnect): Rework.

2018-05-04  João Távora  <joaotavora@gmail.com>

	More correctly keep track of didopen/didclose per buffer

	* eglot.el (eglot--buffer-open-count): Now a process-local var.
	(eglot--signal-textDocument/didOpen, eglot--signal-textDocument/didClose):
	Use it.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Fix mode-line mouse-clicks from outside selected window

	* eglot.el (eglot--mode-line-call): New helper.
	(eglot--mode-line-format): Use it.

2018-05-03  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot--process-receive): skip null method notifs.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Trim some edges and add a bunch of boring rpc methods

	* eglot.el (eglot--connect): Don't call eglot--protocol-initialize.
	(eglot--process-filter): Break long line.
	(eglot--process-receive): Also pass id to handler if a server request.
	(eglot--log): New helper.
	(eglot-editing-mode): Manage before-revert-hook,
	after-revert-hook, before-save-hook, after-save-hook.
	(eglot--protocol-initialize): Removed.
	(eglot--server-window/showMessage): Simplify.
	(eglot--server-window/showMessageRequest)
	(eglot--server-window/logMessage, eglot--server-telemetry/event):
	New handlers.
	(eglot--signal-textDocument/willSave)
	(eglot--signal-textDocument/didSave): New notifications.
	(eglot--signal-textDocument/didOpen)
	(eglot--signal-textDocument/didClose): Check
	eglot--buffer-open-count.
	(eglot--buffer-open-count): New var.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Fix a couple of rust-related edge cases

	* eglot.el (eglot--server-window/progress): Allow other keys.
	(eglot--server-textDocument/publishDiagnostics): Allow :group in diagnostic
	spec.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Fix textdocument/didchange

	* eglot.el (eglot-editing-mode): Manage before-change-functions.
	(eglot--recent-changes): Deleted.
	(eglot--recent-before-changes): New var.
	(eglot--recent-after-changes): Renamed from eglot--recent-changes.
	(eglot--pos-to-lsp-position, eglot--before-change): New helpers.
	(eglot--after-change): Rework.
	(eglot--signal-textDocument/didChange): Rework.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Rename rpc methods for clarity

	* eglot.el (eglot--process-receive): Search for RPC server methods
	under `eglot--server-'
	(eglot-editing-mode, eglot--maybe-activate-editing-mode): Use new
	signal names.
	(eglot--server-window/showMessage): Rename from
	eglot--window/showMessage.
	(eglot--server-textDocument/publishDiagnostics): Renamed from
	eglot--textDocument/publishDiagnostics.
	(eglot--current-buffer-versioned-identifier): Remove.
	(eglot--current-buffer-VersionedTextDocumentIdentifier): Use
	eglot--versioned-identifier.
	(eglot--signal-textDocument/didChange): Renamed from
	eglot--maybe-signal-didChange.
	(eglot--signal-textDocument/didOpen): Renamed from
	eglot--signalDidOpen.
	(eglot--signal-textDocument/didClose): Rename from
	eglot--signalDidClose.
	(eglot-flymake-backend): Call eglot--signal-textDocument/didChange.
	(eglot--server-window/progress): Rename from
	eglot--window/progress.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Reorganize file

	* eglot.el (eglot-mode-line): Move up.
	(eglot-make-local-process, eglot--all-major-modes, eglot--obj)
	(eglot--project-short-name, eglot--all-major-modes)
	(eglot-reconnect, eglot--maybe-activate-editing-mode)
	(eglot--protocol-initialize)
	(eglot--window/showMessage, eglot--current-flymake-report-fn)
	(eglot--unreported-diagnostics)
	(eglot--textDocument/publishDiagnostics, eglot--signalDidOpen)
	(eglot--signalDidClose): Move around.
	(eglot-quit-server): Renamed to eglot-shutdown.
	(eglot-shutdown): New function

2018-05-03  João Távora  <joaotavora@gmail.com>

	Delete two useless forward declarations

	* eglot.el (eglot-mode, eglot-editing-mode-map): Remove forward decls.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Fix flymake diagnostic positions

	It's better not to use flymake-diag-region here.

	* eglot.el (eglot--textDocument/publishDiagnostics):
	Calculate position by hand.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Must re-announce didopen after reconnect

	* eglot.el (eglot-reconnect): Also call
	eglot--maybe-activate-editing-mode for all buffers.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Fix another flymake sync bug

	* eglot.el (eglot-flymake-backend): Only report unreported sometimes.
	(eglot--maybe-activate-editing-mode): Start flymake explicitly
	when didOpen.
	(eglot--textDocument/publishDiagnostics): No need to set
	unreported-diagnostics to nil.
	(flymake): Require it.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Make m-x eglot the main entry point

	* eglot.el (eglot-new-process): Removed
	(eglot): Rename from eglot-new-process.
	(eglot-editing-mode): Mention M-x eglot

	* README.md: Use M-x eglot

2018-05-03  João Távora  <joaotavora@gmail.com>

	Fix assorted bugs

	* eglot.el (eglot--special-buffer-process): Must be buffer-local.
	(eglot--define-process-var): Fix disaster waiting to happen.
	(eglot--process-receive): Explicitly pass PROC to
	eglot--pending-continuations.
	(eglot--textDocument/publishDiagnostics): Clear unreported diagnostics

2018-05-03  João Távora  <joaotavora@gmail.com>

	Watch for files opened under umbrella of existing process

	* eglot.el (eglot--connect): Call success-fn with a proc.
	(eglot-reconnect): Adapt to new eglot--connect.
	(eglot-new-process): Call eglot--maybe-activate-editing-mode
	(eglot--maybe-activate-editing-mode): New function.
	(find-file-hook): Add it here.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Multiple servers per project are possible

	A server manages a specific major-mode within a project.

	* eglot.el (eglot--processes-by-project): Add docstring.
	(eglot--current-process): Search new eglot--processes-by-project
	format.
	(eglot--major-mode): New variable.
	(eglot--moribund, eglot--project): Update docstring.
	(eglot--project-short-name, eglot--all-major-modes): New helpers.
	(eglot--connect): Rework.
	(eglot-new-process): Rework severely.
	(eglot--command-history): New variable.
	(eglot--process-sentinel): Use new
	eglot--processes-by-project. Update mode line.
	(eglot-editing-mode): Don't start processes, just suggest it.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Appease checkdoc.el

	* eglot.el (eglot--process-send, eglot--next-request-id)
	(eglot--current-buffer-VersionedTextDocumentIdentifier)
	(eglot--current-buffer-TextDocumentItem)
	(eglot--after-change, eglot--signalDidOpen)
	(eglot--signalDidClose, eglot--maybe-signal-didChange):
	Add docstring.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Simplify flymake integration

	And get rid of the ridiculous environment thingy

	* eglot.el (eglot--process-sentinel): Continuations are triplets.
	(eglot--environment-vars, eglot--environment): Remove.
	(eglot--process-receive): Simplify.
	(eglot--unreported-diagnostics): New variable.
	(eglot--textDocument/publishDiagnostics): Simplify.
	(eglot-flymake-backend): Report unreported diagnostics.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Signal textdocument/didclose

	* eglot.el (eglot-editing-mode): Signal didClose.
	(eglot--signalDidClose): New.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Rework connection restarting again

	Quitting a process removes it from the project.

	* eglot.el (eglot-editing-mode,eglot-mode): Forward declare.
	(eglot--project): New process-local var.
	(eglot--connect): Takes a project.
	(eglot-new-process): Rework.
	(eglot--sentinel): Remove proc from eglot--processes-by-project.

2018-05-03  João Távora  <joaotavora@gmail.com>

	Redesign and simplify parser

	Fix horrible bugs. This is the correct way.

	* eglot.el (eglot--process-filter): Redesign.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Auto-reconnect on unexpected connection loss

	* eglot.el (eglot-reconnect): Only quit if indeed not quit
	already.
	(eglot-new-process): Burn the command in the bootstrap fn.
	(eglot--process-sentinel): Automatically reconnect if closed
	unexpectedly.
	(eglot--warn): Also message to *Messages*

2018-05-02  João Távora  <joaotavora@gmail.com>

	Ready to start fixing flymake integration

	* eglot.el (eglot-editing-mode): Turn on flymake-mode.
	(eglot-flymake-backend): Always start by reporting no diagnostics.
	(eglot--textDocument/publishDiagnostics): No annoying message.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Slightly more user friendly start

	* eglot.el (eglot-new-process): signal DidOpen for every file in project.
	(eglot-editing-mode): Offer to start process.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Don't clutter ui with warnings

	* eglot.el (warnings): require it.
	(eglot--warn): set warning-minimum-level

2018-05-02  João Távora  <joaotavora@gmail.com>

	Rework commands for connecting and reconnecting

	* eglot.el (eglot--current-process-or-lose): Add doc.
	(eglot--command): Remove.
	(eglot--bootstrap-fn): New process-local variable.
	(eglot--connect): Redesign.
	(eglot-make-local-process): New function.
	(eglot-reconnect): New interactive command.
	(eglot-new-process): Redesign.
	(eglot--process-sentinel): Add doc.
	(eglot--protocol-initialize): Rework.
	(eglot--mode-line-format): Use eglot-reconnect.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Less obstrusive flymake stuff for now

	* eglot.el (eglot--after-change, eglot-flymake-backend): Fix.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Events buffer uses eglot-mode, source buffers use eglot-editing-mode

	* eglot.el (eglot--special-buffer-process): New var.
	(eglot--current-process): Consider eglot--special-buffer-process.
	(eglot-events-buffer): Use eglot-mode
	(eglot-editing-mode): New minor mode.
	(eglot-mode): Turns on eglot-editing-mode maybe.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Change status to error every time an error is found

	* eglot.el (eglot--process-receive): Also set error status.
	(eglot--request): Fix a compilation warning.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Correctly report what we currently are capable of

	Which is almost nothing.

	* eglot.el (eglot--protocol-initialize): Clean up.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Add eglot-clear-status interactive command

	* eglot.el (eglot-clear-status): New
	(eglot-forget-pending-continuations): Fix bug.
	(eglot--mode-line-format): Add link to eglot-clear-status.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Auto update mode-line after setting some process properties

	* eglot.el (eglot--define-process-var): Rework.
	(eglot--short-name, eglot--spinner, eglot--status): Update mode-line
	after setting it.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Start experimenting with python

	* eglot.el (eglot-executables): Add pyls.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Don't switch to possibly dead buffer in sentinel

	* eglot.el (eglot--process-sentinel): Don't with-current-buffer.

2018-05-02  João Távora  <joaotavora@gmail.com>

	Report server status in the mode-line

	* eglot.el (eglot--status): New var.
	(eglot--log-event): Try to be more useful for other stuff.
	(eglot--protocol-initialize): Set status to nil on
	successful connect.
	(eglot--window/showMessage): Set status to error if needed.
	(eglot--mode-line-format): Display status if serious.

2018-05-01  João Távora  <joaotavora@gmail.com>

	Implement spinners and rls's window/progress

	* eglot.el (eglot--window/progress): New.
	(eglot--mode-line-format): Rework.
	(eglot--snpinner): New var.
	(compile): require it.

2018-05-01  João Távora  <joaotavora@gmail.com>

	Fix parser to accept multiple messages in one chunk

	* eglot.el (eglot--process-filter): Redesign slightly.
	(eglot--message-mark): Remove. don't need this.

2018-05-01  João Távora  <joaotavora@gmail.com>

	Lay groundwork for uniform treatment of network connections

	* eglot.el (eglot--connect): New helper.
	(eglot-new-process): Use it.
	(pcase): Require it.

2018-05-01  João Távora  <joaotavora@gmail.com>

	Doc fixes

	* eglot.el (eglot-mode-map): Move up before minor mode.

2018-05-01  João Távora  <joaotavora@gmail.com>

	* eglot.el (eglot-mode-map): move up before minor mode.

2018-04-30  João Távora  <joaotavora@gmail.com>

	Start working on this again

	* eglot.el (url-util): Require it.
	(eglot--process-sentinel): pending continuations now are quads (added env).
	(eglot--process-filter): Unwind message markers correctly if handling fails.
	(eglot--obj): Simple macro.
	(eglot--log-event): Add some info to logged event.
	(eglot--environment-vars, eglot--environment): Helper vars.
	(eglot--process-receive): Improve.
	(eglot--process-send): Niver log.
	(eglot--request): Use eglot--obj. Add environment.
	(eglot--notify): New helper.
	(eglot--protocol-initialize): RLS must like file://
	(eglot--current-flymake-report-fn): New var.
	(eglot--textDocument/publishDiagnostics): Use flymake from Emacs 26.
	(eglot-mode): Proper minor mode.
	(eglot--recent-changes, eglot--versioned-identifier): New stuff.
	(eglot--current-buffer-versioned-identifier)
	(eglot--current-buffer-VersionedTextDocumentIdentifier)
	(eglot--current-buffer-TextDocumentItem, eglot--after-change)
	(eglot--signalDidOpen, eglot--maybe-signal-didChange): New stuff.
	(eglot-flymake-backend): More or less a flymake backend function.

2018-04-30  João Távora  <joaotavora@gmail.com>

	Fix mode line

	* eglot.el (mode-line-misc-info): conditionalize to eglot-mode

2018-04-30  João Távora  <joaotavora@gmail.com>

	Fix some byte-compilation warnings

2018-04-30  Andrew Schwartzmeyer  <andrew@schwartzmeyer.com>  (tiny change)

	Document that remapping commands is supported with bind-key

2018-04-26  Justin Talbott  <justin@waymondo.com>

	Merge pull request from akhramov/fix/ensure-system-package-noconfirm

	[Fix https://github.com/jwiegley/use-package/issues/661] ensure-system-package: honor system-packages customizations
	GitHub-reference: https://github.com/jwiegley/use-package/issues/673

2018-04-25  Artyom Khramov  <futu.fata@gmail.com>  (tiny change)

	[] ensure-system-package: honor system-packages customizations

	ensure-system-package doesn't honor system-packages
	customizations (https://github.com/jwiegley/use-package/issues/661), because system-packages didn't provide an API
	to retrieve shell command to be executed.

	This change makes use of the new system-packages'
	`system-package-get-command` function and therefore fixes the issue.
	GitHub-reference: fix https://github.com/jwiegley/use-package/issues/661

2018-03-24  Russell Black  <black.russell@gmail.com>

	Update use-package-chords.el

2018-03-23  Russell Black  <black.russell@gmail.com>

	Update use-package-chords.el

	new style of auto-deferral for chords

2018-03-16  Justin Talbott  <justin@waymondo.com>

	Merge pull request from waymondo/master

	:ensure-system-package - allow cdr of cons to be a package name symbol
	GitHub-reference: https://github.com/jwiegley/use-package/issues/654

2018-03-16  Justin Talbott  <justin@waymondo.com>

	:ensure-system-package allow cdr of cons to be a package name symbol

	closes https://github.com/jwiegley/use-package/issues/652

2018-03-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from valignatev/master

	Encourage installation via https instead of http
	GitHub-reference: https://github.com/jwiegley/use-package/issues/651

2018-03-14  Valentin Ignatev  <valentjedi@gmail.com>

	Encourage installation via https instead of http

2018-03-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from DamienCassou/fix-report-again

	Fix report again after revert
	GitHub-reference: https://github.com/jwiegley/use-package/issues/647

2018-03-12  Damien Cassou  <damien.cassou@gmail.com>

	Fix compile-time warnings due to the statistics-reporting code

	The code worked because the file is using dynamic binding.

2018-03-12  Damien Cassou  <damien.cassou@gmail.com>

	Add missing require

	This is used for `hash-table-keys`.

	Fix https://github.com/jwiegley/use-package/issues/644.

2018-03-12  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jwiegley/revert-645-fix-report

	Revert "Fix report"
	GitHub-reference: https://github.com/jwiegley/use-package/issues/646

2018-03-12  John Wiegley  <johnw@newartisans.com>

	Revert "Fix report"

2018-03-12  John Wiegley  <johnw@newartisans.com>

	Merge pull request from DamienCassou/fix-report

	Fix report
	GitHub-reference: https://github.com/jwiegley/use-package/issues/645

2018-03-11  Damien Cassou  <damien.cassou@gmail.com>

	Fix compile-time warnings due to the statistics-reporting code

	The code worked because the file is using dynamic binding.

2018-03-11  Damien Cassou  <damien.cassou@gmail.com>

	Add missing require

	This is used for `hash-table-keys`.

	Fix https://github.com/jwiegley/use-package/issues/644.

2018-03-08  John Wiegley  <johnw@newartisans.com>

	Merge pull request from DamienCassou/tabulated-list

	Use a tabulated-list to display package configuration statistics
	GitHub-reference: https://github.com/jwiegley/use-package/issues/642

2018-03-08  Damien Cassou  <damien.cassou@gmail.com>

	Use a tabulated-list to display package configuration statistics

	Fix https://github.com/jwiegley/use-package/issues/641

2018-03-05  John Wiegley  <johnw@newartisans.com>

	Merge pull request from matthewbauer/patch-1

	Support ":package" in use-package
	GitHub-reference: https://github.com/jwiegley/use-package/issues/633

2018-02-25  Matthew Justin Bauer  <mjbauer95@gmail.com>

	Support ":package" in use-package

	bind-key supports the keyword ":package" but use-package does not know that. Adding this should be helpful. In the future, maybe we could automatically fill in with the use-package package, but that could be a breaking change.

2018-02-06  John Wiegley  <johnw@newartisans.com>

	Merge pull request from justbur/normalize-fix

	Fix usage of plist argument in use-package-normalize-plist
	GitHub-reference: https://github.com/jwiegley/use-package/issues/625

2018-02-06  Justin Burkett  <justin@burkett.cc>

	Fix usage of plist argument in use-package-normalize-plist

	Previously the argument was never used.

2018-02-06  John Wiegley  <johnw@newartisans.com>

	Merge pull request from justbur/ignore-keywords

	Add use-package-ignore-unknown-keywords option
	GitHub-reference: https://github.com/jwiegley/use-package/issues/624

2018-02-06  Justin Burkett  <justin@burkett.cc>

	Add use-package-ignore-unknown-keywords option

	This option allows use-package to skip over keywords it doesn't recognize.

2018-01-27  John Wiegley  <johnw@newartisans.com>

	Revert "Merge pull request from jabranham/lexical-bindings"

	This reverts commit d21787f1d64a740c0e00899835d9200a0e4690df, reversing
	changes made to fd8a3510fd1a555b925f57b2870917e3c4ea0206.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/617

2018-01-27  John Wiegley  <johnw@newartisans.com>

	Revert "Move variable bindings to the bottom of each file"

	This reverts commit c29193bf0724633adf7183dad2d0b6faf7d029ab.

2018-01-27  John Wiegley  <johnw@newartisans.com>

	Move variable bindings to the bottom of each file

2018-01-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jabranham/lexical-bindings

	[WIP] Lexical bindings
	GitHub-reference: https://github.com/jwiegley/use-package/issues/617

2018-01-27  Alex Branham  <alex.branham@gmail.com>

	Don't remove sharp quotes

	Test still requires cl

	Fix byte compiler warnings

	Use lexical bindings and remove cl package

2018-01-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jabranham/system-packages-update

	System packages update
	GitHub-reference: https://github.com/jwiegley/use-package/issues/616

2018-01-26  Alex Branham  <alex.branham@gmail.com>

	lexical binding

	Prefer non-obsolete var names

2018-01-08  John Wiegley  <johnw@newartisans.com>

	Merge pull request from jabranham/fix-byte-compiler

	Prefer org-table-align to orgtbl-ctrl-c-ctrl-c
	GitHub-reference: https://github.com/jwiegley/use-package/issues/611

2018-01-08  Alex Branham  <alex.branham@gmail.com>

	Prefer org-table-align to orgtbl-ctrl-c-ctrl-c

	org-table-align is an autoloaded function so the byte compiler can
	find it. orgtbl-ctrl-c-ctrl-c isn't so we get a warning about
	undefined functions.

2017-12-26  John Wiegley  <johnw@newartisans.com>

	Merge pull request from justbur/elisp-cap

	Handle automatic macro expansion by elisp-completion-at-point
	GitHub-reference: https://github.com/jwiegley/use-package/issues/599

2017-12-26  John Wiegley  <johnw@newartisans.com>

	Merge pull request from nickmccurdy/render-report-table

	Render the use-package-report table using Org
	GitHub-reference: https://github.com/jwiegley/use-package/issues/592

2017-12-20  wouter bolsterlee  <wouter@bolsterl.ee>  (tiny change)

	Fix sanity check for correct :custom-face format

	Instead of testing the length of each form passed to :custom-face,
	the sanity check would test the number of forms passed to :custom-face,
	causing it to fail when more than 2 face customizations are used.

	Fixes https://github.com/jwiegley/use-package/issues/600.

2017-12-19  Justin Burkett  <justin@burkett.cc>

	Handle automatic macro expansion by elisp-completion-at-point

	The function `elisp--local-variables' inserts an unbound variable,
	`elisp--witness--lisp', into macro forms to determine the locally bound
	variables for `elisp-completion-at-point'. It ends up throwing a lot of errors
	since it can occupy the position of a keyword (or look like a second argument to
	a keyword that takes one). Deleting it when it's at the top level should be
	harmless since there should be no locally bound variables to discover here
	anyway.

2017-12-17  John Wiegley  <johnw@newartisans.com>

	Guard a call to display-warning with ignore

	Fixes https://github.com/jwiegley/use-package/issues/589

2017-12-16  Nick McCurdy  <nick@nickmccurdy.com>

	Render the use-package-report table using Org

	I noticed that the "Gathering Statistics" instructions for rendering the Org
	table could be automated for convenience. Now the table is reformatted
	automatically, and you can still manually sort it. I'm not sorting it by default
	to maintain the same order of use-package forms for easier troubleshooting.

2017-12-16  John Wiegley  <johnw@newartisans.com>

	All the second argument in use-package-defaults lists to be a function

	Address the question raised in https://github.com/jwiegley/use-package/issues/591

2017-12-13  John Wiegley  <johnw@newartisans.com>

	Add a test related to

	GitHub-reference: https://github.com/jwiegley/use-package/issues/589

2017-12-13  John Wiegley  <johnw@newartisans.com>

	Add more tests related to issue

	GitHub-reference: https://github.com/jwiegley/use-package/issues/572

2017-12-11  John Wiegley  <johnw@newartisans.com>

	Minor simplification of a function

2017-12-11  John Wiegley  <johnw@newartisans.com>

	bind-keys fixes related to

	GitHub-reference: https://github.com/jwiegley/use-package/issues/482

2017-12-10  John Wiegley  <johnw@newartisans.com>

	Add a clarifying test for

	GitHub-reference: https://github.com/jwiegley/use-package/issues/482

2017-12-09  John Wiegley  <johnw@newartisans.com>

	Fix a scoping issues with multiple occurrences of :bind

	Fixes https://github.com/jwiegley/use-package/issues/585

2017-12-08  John Wiegley  <johnw@newartisans.com>

	Start building a use-package linter in use-package-lint.el

	use-package-normalize/:disabled has the wrong number of arguments

	Remove several unnecessary calls to `ignore'

	Add another :bind test

2017-12-07  John Wiegley  <johnw@newartisans.com>

	Add further note to NEWS.md

	Add tests for two more issues

	Fix the tests

	Clarify a note in NEWS.md

2017-12-07  John Wiegley  <johnw@newartisans.com>

	Changes to the way auto-deferral is indicated

	This change adds a new extension hook `use-package-autoloads/<KEYWORD>` for
	specifying exactly which autoloads a keyword should imply. This is the proper
	way to indicate autoloads, rather than adding to the `:commands` entry as was
	done before.

	Further, autoloading now must occur in order to cause implied deferred
	loading; if :bind is used with only lambda forms, for example, this will not
	cause deferred loading without `:defer t`.

2017-12-07  John Wiegley  <johnw@newartisans.com>

	Introduce new customization variable `use-package-merge-key-alist'

2017-12-07  John Wiegley  <johnw@newartisans.com>

	Use cl-gentemp in another place

	This avoids "Variable unknown" errors if a byte-compiled init.elc happening to
	encounter an error while evaluating an :init or :config block.

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Correctly fix the problem of unreferenced symbols after compilation

	Fixes https://github.com/jwiegley/use-package/issues/571

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Revert "Pre-expand lexical-let, since otherwise it requires cl to be loaded"

	This reverts commit 7cc17cee8f8ae2093d98efebf429cd10e9b0b81c.

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Pre-expand lexical-let, since otherwise it requires cl to be loaded

	Fixes https://github.com/jwiegley/use-package/issues/571

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Add documentation for `use-package-report'

	use-package-defaults predicate must also receive the package name

	Remove Package-Requires for diminish and delight, as these are optional

	Add a comment as to why max-lisp-eval-depth is set in -tests.el

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Add missing autoload cookie, and make lack of a normalizer an error

	Fixes https://github.com/jwiegley/use-package/issues/566

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Don't compute the verbose debug text unless it's requested

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Add :bind test for a single cons cell

	Relates to https://github.com/jwiegley/use-package/issues/566

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Add support for gathering statistics on use-package declarations

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Respect keyword ordering in use-package-deferring-keywords

	Relates to https://github.com/jwiegley/use-package/issues/565

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Clarify :config with setq versus :custom

	Fixes https://github.com/jwiegley/use-package/issues/564

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Update some GPL version references

	Fixes https://github.com/jwiegley/use-package/issues/563

2017-12-06  John Wiegley  <johnw@newartisans.com>

	Allow the expansion of :after (:or foo bar) to be byte-compiled

	Make the expanded text for :after cleaner

2017-12-05  John Wiegley  <johnw@newartisans.com>

	Several changes as suggested by flycheck

2017-12-05  John Wiegley  <johnw@newartisans.com>

	Don't auto-defer if the package itself was given to :load

	Otherwise, we'd be senselessly waiting for the package to load.

2017-12-05  John Wiegley  <johnw@newartisans.com>

	Enable all tests on Travis

	Allow `:load t' to mean the same as :load of the package name

	Whitespace change

	Default running-on-travis to t

	Enable 4 tests that work when not run on Travis

	For now, stub out test that breaks Travis

	Stub some referenced variables, for Travis

	Add note in NEWS.md about :requires vs. :if

2017-12-05  John Wiegley  <johnw@newartisans.com>

	Lower the priority of :if/:when/:unless in use-package-keywords

	Fixes https://github.com/jwiegley/use-package/issues/560

2017-12-05  John Wiegley  <johnw@newartisans.com>

	Enhance fix-expansion to take surrounding let bindings into account

2017-12-05  John Wiegley  <johnw@newartisans.com>

	Rewrite normalization of :bind and :bind*

	Fixes https://github.com/jwiegley/use-package/issues/550

2017-12-05  John Wiegley  <johnw@newartisans.com>

	Normalize errors should be errors, that are then caught by :catch

2017-12-05  John Wiegley  <johnw@newartisans.com>

	Avoid using pcase and many other macros in macro-expanded forms

	This is related to https://github.com/jwiegley/use-package/issues/550

2017-12-05  John Wiegley  <johnw@newartisans.com>

	Fix bad interaction between bind-keys* and the :package keyword

	Fixes https://github.com/jwiegley/use-package/issues/558

2017-12-05  John Wiegley  <johnw@newartisans.com>

	Add missing autoload cookies

	Fixes https://github.com/jwiegley/use-package/issues/555

2017-12-05  Radon Rosborough  <radon.neon@gmail.com>

	Fix function accidentally made interactive

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Use cl-gensym

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Fix the case where :ensure is given no arguments

	Fixes https://github.com/jwiegley/use-package/issues/543

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Some Emacsen don't have gensym

	Fixes https://github.com/jwiegley/use-package/issues/544

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Add note in NEWS.md about :after and autoloaded keybindings

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Add a note to `bind-key` on the usage of the KEYMAP argument

	Fixes https://github.com/jwiegley/use-package/issues/542

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Add a bind-key test

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Support :ensure (pkg :pin archive)

	Fixes https://github.com/jwiegley/use-package/issues/506

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Add several missing comments

	Swap the order of two definitions

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Fix an argument process problem with bind-key

	Fixes https://github.com/jwiegley/use-package/issues/334

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Comment out two tests that break on Travis

	Rename up-* files to use-package-* for consistency

	Merge branch 'split-bind-key'

	Commit .texi file, as it requires several dependencies to generate

	Merge branch 'master' into next

	Add a test-in-progress for issue 506

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Add new customization variables `use-package-hook-name-suffix'

	Fixes https://github.com/jwiegley/use-package/issues/530

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Split key binding functionality out into its own file

	Please the byte-compiler

	Require cl for the use-package tests

	Expand use-package-core as a macro, to avoid load time dependency

2017-12-04  John Wiegley  <johnw@newartisans.com>

	:ensure can be a list; correct handling of multiple :ensure keywords

	Fixes https://github.com/jwiegley/use-package/issues/539

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Ensure that :commands always declare-function at compile time

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Add a new :catch keyword, and move :preface before such handling

	Fixes https://github.com/jwiegley/use-package/issues/534

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Fix duplication in an error message

	Add expand-maximally macro to up-tests.el

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Revert "Reduce some code duplication"

	This reverts commit 1e560c514004747062276ca59ddf425a3edc44cd.

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Move :preface handling within the code

	Add two new tests

	Reduce some code duplication

	Normalize some whitespace and ordering in new code

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Move :init back to happening after all autoloads have occurred

	Fixes https://github.com/jwiegley/use-package/issues/535

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Move :init back to happening after all autoloads have occurred

	Fixes https://github.com/jwiegley/use-package/issues/535

2017-12-04  Justin Talbott  <justin@waymondo.com>

	Add `use-package-chords` and `use-package-ensure-system-package`

	Also update docs on usage

	connect to https://github.com/jwiegley/use-package/issues/516

2017-12-04  John Wiegley  <johnw@newartisans.com>

	Change order of :defines and :functions within `use-package-keywords'

	Add further notes to NEWS.md, in light of recent breakages

	Add new customization variable `use-package-deferring-keywords'

	Minor comment change

	up-ensure's customization variables are now in their own group

	Remove code from up-core.el that is now in up-diminish.el

	Add notes to NEWS.md

	Correction to a macro expansion

	Delete an unneeded blank line

	Reduce some code duplication

	Normalize the code emitted by :mode, :interpreter, :magic, etc

	Add 'errors as another option to `use-package-verbose'

	Only emit the debugging context text once

2017-12-03  John Wiegley  <johnw@newartisans.com>

	Correction to error detection at both :init and :config times

	Report errors during deferred :config as intelligent warnings also

	Drop some unnecessary detail from a warning message

	Minor simplification

	Fix a byte-compiler warning in up-ensure.el

	Move optional jumping functionality to its own module

	Break out ensure/diminish/delight into their own support files

	Move the use-package-keywords defcustom to the top of the file

	Disable a test that is not working on Travis

	Move functions around for better logical grouping

	More variable renaming needed in the tests

	Change most use-package-- prefixes to just use-package-

	Remove a local variable binding

	Always catch errors during configuration

	Separate out all tests, the better to identify which one failed

	Define macroexpand-1 for older Emacsen

2017-12-03  John Wiegley  <johnw@newartisans.com>

	A great deal of internal reorganization and simplification

	All handlers now address their own domain of work; :after has become safer;
	keyword normalization is multi-stage process; setting use-package-verbose to
	`debug' produces useful output in the *use-package* buffer in the case of load
	time errors; use-package errors (even internal) won't stop Emacs from
	starting (though a serious internal bug that errors out every use-package form
	may stop anything from being configured!); and more.

2017-12-02  Radon Rosborough  <radon.neon@gmail.com>

	Fix `use-package-ensure-function' docstring typo

2017-12-01  John Wiegley  <johnw@newartisans.com>

	If use-package-verbose is t, show loading times when :after is used

2017-12-01  John Wiegley  <johnw@newartisans.com>

	Remove the :defer-install keyword

	This may reappear as its own add-on to use-package in the future. See https://github.com/jwiegley/use-package/issues/442.

2017-12-01  John Wiegley  <johnw@newartisans.com>

	:demand should not override an explicit use of :after

	Fixes https://github.com/jwiegley/use-package/issues/529

2017-12-01  John Wiegley  <johnw@newartisans.com>

	Remove some debug code that crept in

	Add tests for the last two keywords

	Add many more tests

	Always wrap the expanded body from use-package in (progn)

2017-12-01  John Wiegley  <johnw@newartisans.com>

	Comment out :no-require test for now

	It works on my machine, but not with what Travis runs.

2017-12-01  John Wiegley  <johnw@newartisans.com>

	Don't factor out a volatile variable

	Possibly fixes https://github.com/jwiegley/use-package/issues/527

2017-12-01  John Wiegley  <johnw@newartisans.com>

	Add many new tests

2017-12-01  John Wiegley  <johnw@newartisans.com>

	Generate :defines and :functions correctly

	So they actually inhibit byte-compilation warnings as they were meant to.

2017-12-01  John Wiegley  <johnw@newartisans.com>

	Correct the ordering of :preface, :load-path, :defines and :functions

	Whitespace fix

	Move :hook before :defer

	Don't macroexpand bind-keys, leave that to the evaluator

	Always use `load' when loading for the sake of compilation

	Sort keywords at the appropriate time

	Change the :config default, if none has been set in vars

	:no-require t should never require

	Code reformatting

2017-11-30  John Wiegley  <johnw@newartisans.com>

	Allow match-expansion to take multiple cases

	Add test for use-package-test-normalize/:ensure

	Add the missing plist-delete

	Remove an unneeded defvar

2017-11-30  John Wiegley  <johnw@newartisans.com>

	A final fix to :ensure + :load-path

	Fixes https://github.com/jwiegley/use-package/issues/190

2017-11-30  John Wiegley  <johnw@newartisans.com>

	Add a test case for :ensure, following up from

	GitHub-reference: https://github.com/jwiegley/use-package/issues/190

2017-11-30  John Wiegley  <johnw@newartisans.com>

	Don't check for an :ensure that use-package-always-ensure may have added

	Fixes https://github.com/jwiegley/use-package/issues/190

2017-11-30  John Wiegley  <johnw@newartisans.com>

	Add a use-package-version variable

	Add two new tests

	Add stubs for future tests of all keywords

2017-11-30  John Wiegley  <johnw@newartisans.com>

	Allow :ensure to take a nil value again

	Fixes https://github.com/jwiegley/use-package/issues/526

2017-11-30  John Wiegley  <johnw@newartisans.com>

	Only add :ensure nil on :load-path if use-package-always-ensure is t

	Restructure some code

2017-11-30  John Wiegley  <johnw@newartisans.com>

	Using :load-path without also using :ensure now implies :ensure nil

	Fixes https://github.com/jwiegley/use-package/issues/190

2017-11-30  John Wiegley  <johnw@newartisans.com>

	Correction to use-package--recognize-function

	Finishes https://github.com/jwiegley/use-package/issues/525

2017-11-30  John Wiegley  <johnw@newartisans.com>

	Allow keys to be bound to nil

	Fixes https://github.com/jwiegley/use-package/issues/525

2017-11-29  John Wiegley  <johnw@newartisans.com>

	Fix a missing `and'

	Use backquote rather than quote

	Correct use-package-normalize-mode

	Whitespace fix

	Update version and copyright

2017-11-29  John Wiegley  <johnw@newartisans.com>

	Allow :bind ("C-c C-c" . (lambda () (ding))) and #'(lambda ...)

	Fixes https://github.com/jwiegley/use-package/issues/333
	Fixes https://github.com/jwiegley/use-package/issues/461

2017-11-29  John Wiegley  <johnw@newartisans.com>

	Reorder some items in NEWS.md

	Add NEWS.md file

2017-11-29  John Wiegley  <johnw@newartisans.com>

	Merge pull request from basil-conto/version

	Require Emacs version >= 24.3
	GitHub-reference: https://github.com/jwiegley/use-package/issues/519

2017-11-29  Basil L. Contovounesios  <contovob@tcd.ie>

	Require Emacs version >= 24.3

	Re: https://github.com/jwiegley/use-package/issues/457

2017-11-29  John Wiegley  <johnw@newartisans.com>

	Merge pull request from basil-conto/520

	Require cl-lib and do not use seq functions
	GitHub-reference: https://github.com/jwiegley/use-package/issues/521

2017-11-29  John Wiegley  <johnw@newartisans.com>

	Merge branch 'master' into 520

	Add a missing (require 'seq)

2017-11-29  Basil L. Contovounesios  <contovob@tcd.ie>

	Require cl-lib and do not use seq functions

	cl-lib is also required for a separate call to cl-mapcan.

	Fixes https://github.com/jwiegley/use-package/issues/520

2017-11-29  John Wiegley  <johnw@newartisans.com>

	When use-package-inject-hooks is non-nil, always fire init/config hooks

	This used to not happen if `:init` or `:config` was missing, or set to nil as
	with `:init nil`.

	Fixes https://github.com/jwiegley/use-package/issues/250

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Print map keys in describe-personal-keybindings

	Fixes https://github.com/jwiegley/use-package/issues/406

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Repeating a bind no longer causes duplicates in personal-keybindings

	Fixes https://github.com/jwiegley/use-package/issues/446

2017-11-28  John Wiegley  <johnw@newartisans.com>

	When byte-compiling, correctly output declare-function directives

	Fixes https://github.com/jwiegley/use-package/issues/474

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Make diminish a soft dependency, as delight already was

	Fixes https://github.com/jwiegley/use-package/issues/493

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Allow :diminish to take no argument, once again

	Fix for single :custom (foo bar)

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Allow :custom (foo1 bar1) (foo2 bar2) etc

	Fixes https://github.com/jwiegley/use-package/issues/518

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Add support for `:hook`

	Fixes https://github.com/jwiegley/use-package/issues/444

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Append to *use-package* when debugging, don't clear it

	Fixes https://github.com/jwiegley/use-package/issues/476

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Make unrecognized keywords a warning

	This could actually be used to store your own metadata in use-package
	declarations, to be (read) later by simply parsing init file contents.

	Fixes https://github.com/jwiegley/use-package/issues/483

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Upgrade license to GPL 3

	Fixes https://github.com/jwiegley/use-package/issues/499

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Don't allow :commands, :bind, etc., to be given an empty list

	This makes the following an error:

	    :commands
	    :commands nil
	    :commands ()

	Fixes https://github.com/jwiegley/use-package/issues/512

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Explicit :defer t should override use-package-always-demand

	Fixes https://github.com/jwiegley/use-package/issues/514

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Merge pull request from drrlvn/patch-1

	Remove duplicate documentation of :mode
	GitHub-reference: https://github.com/jwiegley/use-package/issues/489

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Corrections to the normalization of :custom

2017-11-28  John Wiegley  <johnw@newartisans.com>

	Merge pull request from joewreschnig/implicit-diminish

	Allow `:diminish` with no arguments.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/472

2017-11-21  John Wiegley  <johnw@newartisans.com>

	Merge pull request from waymondo/master

	Allow customized values to be nil
	GitHub-reference: https://github.com/jwiegley/use-package/issues/515

2017-11-20  Justin Talbott  <justin@waymondo.com>

	allow customized values to be nil

2017-11-20  John Wiegley  <johnw@newartisans.com>

	Merge pull request from canatella/add-customization-keywords

	Add customization keywords
	GitHub-reference: https://github.com/jwiegley/use-package/issues/508

2017-11-10  Damien Merenne  <dam@cosinux.org>

	Add support for face customization

	Allows customization of faces using customize-set-faces. This makes it
	easier to manage customization in version control. Instead of having all the
	faces written in a custom.el, the faces can be customized where the rest
	of the package is configured.

2017-11-10  Damien Merenne  <dam@cosinux.org>

	Add support for variable customization

	Allows customization of variable using customize-set-variables. This makes it
	easier to manage customization in version control. Instead of having all the
	variables written in a custom.el, the variable can be customized where the rest
	of the package is configured.

2017-10-30  John Wiegley  <johnw@newartisans.com>

	Merge pull request from carldotac/master

	Fix documentation typos
	GitHub-reference: https://github.com/jwiegley/use-package/issues/513

2017-10-30  Carl Lieberman  <dev@carl.ac>

	Fix typos in docstring

2017-10-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from emacsjanitors/demote-manually

	Don't use with-demoted-errors in use-package-ensure-elpa
	GitHub-reference: https://github.com/jwiegley/use-package/issues/507

2017-10-13  Jonas Bernoulli  <jonas@bernoul.li>

	Cosmetic changes to use-package-ensure-elpa

2017-10-13  Jonas Bernoulli  <jonas@bernoul.li>

	Don't use with-demoted-errors in use-package-ensure-elpa

	It expects a literal string as argument at macro-expansion
	time, but we need to construct the message.

2017-10-09  Andreas Politz  <politza@hochschule-trier.de>

	Remove redundant checks for the empty overlay tree

	* src/alloc.c (mark_buffer): Remove b->overlays check.
	* src/buffer.c (copy_overlays): Also.
	* src/buffer.c (swap_buffer_overlays, overlays_in): Also.
	  (next_overlay_change, previous_overlay_change): Also.
	  (overlay_touches_p, Foverlay_lists): Also.
	  (evaporate_overlays): Also.
	* src/xdisp.c (load_overlay_strings): Also.

2017-10-07  Andreas Politz  <politza@hochschule-trier.de>

	Make boolean struct member use one bit

	* src/itree.h (struct interval_tree): Add bit descriptor.

2017-10-07  Andreas Politz  <politza@hochschule-trier.de>

	Optimize struct layout for space

	* src/itree.h (struct interval_node): Move color member near the end.

2017-10-07  Andreas Politz  <politza@hochschule-trier.de>

	Make boolean struct member use one bit

	* src/itree.h (struct interval_node): Add bit descriptor.

2017-10-07  Andreas Politz  <politza@hochschule-trier.de>

	Expand overlay multibyte tests

	* test/src/buffer-tests.el (test-overlay-multibyte-transition-1):
	  Expand test.
	  (test-overlay-multibyte-transition-2): New test.

2017-10-06  Andreas Politz  <politza@hochschule-trier.de>

	Adapt overlays when multibyteness changes

	* src/buffer.c
	  (set_overlays_multibyte): New function.
	  (set-buffer-multibyte): Use function.

2017-10-06  Andreas Politz  <politza@hochschule-trier.de>

	Add a function collecting all interval nodes

	* src/itree.c (interval_tree_nodes): New function

2017-10-05  Andreas Politz  <politza@hochschule-trier.de>

	Fix assignment of offset to newly inserted nodes.

	* src/itree.c (interval_tree_insert): Fix offset.

2017-10-05  Andreas Politz  <politza@hochschule-trier.de>

	Add offsets when inspecting a node's children's values

	*src/itree.c (interval_tree_insert_gap): Add offset.

2017-10-05  Andreas Politz  <politza@hochschule-trier.de>

	Add test exposing overlay bug

	* test/src/buffer-tests.el (overlay-autogenerated-test-64): New test.

2017-10-05  Andreas Politz  <politza@hochschule-trier.de>

	Add test regarding overlay and buffer encoding

	* test/src/buffer-tests.el (test-overlay-multibyte-transition-1):
	New test exposing a bug regarding overlays when changing the
	multibyteness of a buffer.

2017-10-04  Andreas Politz  <politza@hochschule-trier.de>

	Provide a new tree data-structure for overlays.

	* src/itree.c
	(interval_generator_narrow, interval_generator_next)
	(interval_node_init, interval_node_begin)
	(interval_node_end, interval_node_set_region)
	(interval_tree_create, interval_tree_clear)
	(interval_tree_init, interval_tree_destroy)
	(interval_tree_size, interval_tree_insert)
	(interval_tree_contains, interval_tree_remove)
	(interval_tree_validate, interval_tree_iter_start)
	(interval_tree_iter_finish, interval_tree_iter_next)
	(interval_tree_iter_ensure_space, interval_tree_max_height)
	(interval_tree_insert_gap, interval_tree_delete_gap)
	(interval_generator_create, interval_generator_reset)
	(interval_generator_ensure_space, interval_node_intersects)
	(interval_generator_next, interval_generator_narrow)
	(interval_generator_destroy, interval_stack_create)
	(interval_stack_destroy, interval_stack_clear)
	(interval_stack_ensure_space, interval_stack_push)
	(interval_stack_push_flagged, interval_stack_pop)
	(interval_tree_update_limit, interval_tree_inherit_offset)
	(interval_tree_propagate_limit, interval_tree_rotate_left)
	(interval_tree_rotate_right, interval_tree_insert_fix)
	(interval_tree_remove_fix, interval_tree_transplant)
	(interval_tree_subtree_min): New file and new functions.

	* src/itree.h: New file.

	* configure.ac: Create Makefile for manual overlay tests.

	* src/Makefile.in: Add itree.o target.

	* src/alloc.c (build_overlay, mark_overlay, mark_buffer)
	(sweep_misc, sweep_buffers): Adapt to new tree data-structure.

	* src/buffer.c (overlays_in, overlays_at): Remove unused arguments
	prev_ptr and change_req, adapt to new data-structure and reuse
	code.
	(copy_overlays, drop_overlays, delete_all_overlays)
	(reset_buffer, kill-buffer, buffer-swap-text, next_overlay_change)
	(previous_overlay_change, mouse_face_overlay_overlaps)
	(disable_line_numbers_overlay_at_eob, overlay_touches_p)
	(overlay_strings, adjust_overlays_for_insert)
	(adjust_overlays_for_delete, overlayp, make-overlay, move-overlay)
	(delete-overlay, overlay-start, overlay-end, overlay-buffer)
	(overlay-properties, overlays-at, overlays-in)
	(next-overlay-change, previous-overlay-change, overlay-put)
	(overlay-get, report_overlay_modification, evaporate_overlays)
	(init_buffer_once): Adapt to changes and tree data-structure.
	(overlay-lists, overlay-recenter): Functions are now obsolete, but
	kept anyway.
	(set_buffer_overlays_before, set_buffer_overlays_after)
	(recenter_overlay_lists,fix_start_end_in_overlays,fix_overlays_before)
	(unchain_overlay,): Removed functions of the old list
	data-structure.
	(swap_buffer_overlays, make_sortvec_item): New functions.
	(sort_overlays): Adapt to changes and tree data-structure.
	(sortvec): Moved to buffer.h .
	(make_lispy_interval_node, overlay_tree, overlay-tree)
	[ITREE_DEBUG]: New debugging functions.

	* src/buffer.h (overlays_before, overlays_after): Removed struct
	member of the list data-structure.
	(overlays): Added tree struct member.
	(sortvec): Moved here from buffer.c .
	(GET_OVERLAYS_AT): Adapt to changes.
	(set_buffer_intervals, OVERLAY_START, OVERLAY_END, OVERLAY_PLIST):
	Adapt to tree data-structure.
	(OVERLAY_POSITION): Removed macro of the list data-structure.
	(OVERLAY_REAR_ADVANCE_P, OVERLAY_FRONT_ADVANCE_P): New macros.
	(overlay_start, overlay_end)
	(set_overlay_region, maybe_alloc_buffer_overlays)
	(free_buffer_overlays, add_buffer_overlay)
	(remove_buffer_overlay, buffer_overlay_iter_start)
	(buffer_overlay_iter_next, buffer_overlay_iter_finish)
	(buffer_overlay_iter_narrow): New functions.
	(compare_overlays, make_sortvec_item): Export functions.

	* src/editfns.c (overlays_around): Reuse overlays_in.
	(get-pos-property): Adapt to tree data-structure.
	(transpose-regions): Remove call to deleted function.

	* src/fileio.c: (insert-file-contents): Remove
	references to deleted struct member.

	* src/fns.c (internal_equal): Adapt to tree data-structure.

	* src/indent.c (check_display_width): Adapt to tree
	data-structure.
	(skip_invisible): Remove call to deleted function.

	* src/insdel.c (adjust_markers_for_insert): Remove calls to
	deleted functions.

	* src/intervals.c (adjust_for_invis_intang): Adapt to tree
	data-structure.

	* src/keyboard.c (adjust_point_for_property): Adapt to tree
	data-structure.

	* src/lisp.h (Lisp_Overlay): Modified struct layout.

	* src/print.c (temp_output_buffer_setup, print_object): Adapt to
	tree data-structure.

	* src/textprop.c (get_char_property_and_overlay): Adapt to tree
	data-structure.  Take advantage of the new data-structure.

	* src/window.h (overlay_matches_window): New function.

	* src/xdisp.c (next_overlay_change): Removed function.  Use
	next-overlay-change, which does not use xmalloc anymore.
	(handle_single_display_spec, load_overlay_strings)
	(back_to_previous_visible_line_start, note_mouse_highlight): Adapt
	to tree data-structure.
	(move_it_to, display_line): Remove calls to deleted functions.

	* src/xfaces.c (face_at_buffer_position): Adapt to changes and
	tree data-structure.

	* test/src/buffer-tests.el: Many tests regarding overlays added.

	* test/manual/noverlay/itree-tests.c: New file with tests of the
	tree data-structure on the C level.
	* test/manual/noverlay/Makefile.in: New file.
	* test/manual/noverlay/check-sanitize.sh: New file.
	* test/manual/noverlay/emacs-compat.h: New file.
	* test/manual/noverlay/.gitignore: New file.

	* test/manual/noverlay/overlay-perf.el: New file providing
	performance tests.
	* test/manual/noverlay/many-errors.h: New file.

2017-08-16  João Távora  <joaotavora@gmail.com>

	Overhaul async mechanism safety

2017-08-16  João Távora  <joaotavora@gmail.com>

	Simplify `eglot--protocol-initialize`

	* eglot.el (eglot--protocol-initialize): Simplify

2017-08-16  João Távora  <joaotavora@gmail.com>

	Experimental diagnostic overlays

	Minor cleanup

	Cancel timeouts when process dies unexpectedly

	Organize a bit

	Improve `eglot--current-process'

	Handle notifications

	Introduce and use `eglot--current-process-or-lose'

	Add a mode-line construct and some minor fanciness

	Rename eglot--continuations eglot--pending-continuations

	Remove a couple of comments

2017-08-15  João Távora  <joaotavora@gmail.com>

	Initial commit

2017-08-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from raxod502/feat/fix-install-deferred

	Fix bug in use-package-install-deferred-package
	GitHub-reference: https://github.com/jwiegley/use-package/issues/479

2017-07-30  Dror Levin  <spatz@psybear.com>

	Remove duplicate documentation of :mode

2017-07-10  John Wiegley  <johnw@newartisans.com>

	Merge pull request from joewreschnig/481-delight-docs

	Document :delight in the doc string and README.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/484

2017-07-10  Joe Wreschnig  <joe.wreschnig@gmail.com>

	Document :delight in the doc string and README

2017-07-08  Joe Wreschnig  <joe.wreschnig@gmail.com>

	Allow `:diminish` with no arguments

	When given no arguments, have :diminish assume it should diminish a
	mode named after the current package (the package’s name, with “-mode”
	appended, if it’s not already) to an empty string.

	When given only a string to diminish an implicit package name to, do
	not append “-mode” to the package name if it already ends with
	it.  (This is a backwards-incompatible change if someone was
	diminishing a package named “foo-mode” implementing `foo-mode-mode`.)

	Add test cases for `use-package-normalize-diminish`.

	This addresses some of the redundancy mentioned in issue https://github.com/jwiegley/use-package/issues/288.

2017-07-02  John Wiegley  <johnw@newartisans.com>

	Merge pull request from joewreschnig/477-delight-wrappers

	Allow multiple :delight arguments, or omitting the mode. (https://github.com/jwiegley/use-package/issues/477)
	GitHub-reference: https://github.com/jwiegley/use-package/issues/480

2017-07-02  Joe Wreschnig  <joe.wreschnig@gmail.com>

	Allow :major as the third argument in :delight calls

2017-07-02  Joe Wreschnig  <joe.wreschnig@gmail.com>

	Allow multiple :delight arguments, or omitting the mode. ()

	This allows using forms such as

	    (use-package foo :delight)
	        ;; => (delight 'foo-mode)
	    (use-package foo :delight " f")
	        ;; => (delight 'foo-mode " f")
	    (use-package foo :delight (a-mode) (b-mode " b")
	        ;; => (delight 'a-mode) (delight 'b-mode " b")

	This brings support for `:delight` in line with `:diminish`.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/477

2017-06-30  Radon Rosborough  <radon.neon@gmail.com>

	Fix bug in use-package-install-deferred-package

	Previously, deferred installation didn't work because I didn't convert
	the result of a `completing-read' back from a string to a symbol,
	which meant the hash-table lookup failed.

2017-06-16  John Wiegley  <johnw@newartisans.com>

	Merge pull request from joewreschnig/magic-469

	Add `:magic` and `:magic-fallback` keywords (issue https://github.com/jwiegley/use-package/issues/469).
	GitHub-reference: https://github.com/jwiegley/use-package/issues/473

2017-06-15  Joe Wreschnig  <joe.wreschnig@gmail.com>

	Add `:magic` and `:magic-fallback` keywords (issue)

	These keywords work equivalently to `:mode` or `:interpreter`, but for
	`magic-mode-alist` and `magic-fallback-mode-alist`.

	The handler function implementation is now passed a list to add to,
	and shared by all four of them.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/469

2017-05-22  David Leatherman  <git@david.leatherman.fm>  (tiny change)

	Protect against errors during package install

	If the network is missing and there is a new use-package with :ensure,
	startup would fail part of the way through due package.el being unable
	to reach the package repo.  This will catch that error and report it
	while allowing startup to continue.

2017-05-09  John Wiegley  <johnw@newartisans.com>

	Merge pull request from raxod502/feat/failed-autoload-msg

	Fix quoting error in failed autoload message
	GitHub-reference: https://github.com/jwiegley/use-package/issues/456

2017-05-07  Radon Rosborough  <radon.neon@gmail.com>

	Fix quoting error in failed autoload message

2017-04-05  John Wiegley  <johnw@newartisans.com>

	Merge pull request from raxod502/normalize-nil

	Make use-package-normalize-value handle nil better
	GitHub-reference: https://github.com/jwiegley/use-package/issues/449

2017-04-05  Radon Rosborough  <radon.neon@gmail.com>

	Make use-package-normalize-value handle nil better

	The previous version of `use-package-normalize-value', when passed
	nil, would return the list (symbol-value (quote nil)). This meant that
	keywords which used `use-package-normalize-value' or the higher-level
	normalizer `use-package-normalize-test' would get a non-nil
	argument (i.e. the above list) even when the user specified nil to the
	package.

	This had the concrete impact of making it so that :defer-install nil
	was treated as :defer-install t.

2017-04-03  John Wiegley  <johnw@newartisans.com>

	Merge pull request from raxod502/fix-bind-key-filter

	Don't mutilate keyword arguments in :bind
	GitHub-reference: https://github.com/jwiegley/use-package/issues/447

2017-04-03  Radon Rosborough  <radon.neon@gmail.com>

	Add comment explaining keyword-argument patch

2017-04-03  Radon Rosborough  <radon.neon@gmail.com>

	Don't mutilate keyword arguments in :bind

	The parsing logic in `use-package-normalize-pairs' is not designed to
	deal with keyword arguments. However, `use-package-normalize-pairs' is
	used to process the arguments to :bind, which can include keyword
	arguments. These keyword arguments are supposed to be passed untouched
	to the underlying `bind-keys' function, but there is a clause in
	`use-package-normalize-pairs' that replaces lists with their first
	element. Thus an invocation like:

	(use-package company
	  :bind (:map company-active-map
	         :filter (company-explicit-action-p)
	         ("RET" . company-complete-selection)))

	Generates code like this:

	(bind-keys
	  :map company-active-map
	  :filter company-explicit-action-p
	  ("RET" . company-complete-selection))

	Which generates an error since `company-explicit-action-p' is now
	being referenced as a variable rather than a function.

	The proper solution is to refactor the logic that goes into parsing
	uses of :bind, but this commit adds a temporary patch to eliminate the
	above problem, while trying to be as reverse-compatible as possible.
	In particular it just inhibits the list-to-first-element
	transformation when the previous element processed was a keyword.

2017-03-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from raxod502/fix-after

	Fix :after keyword
	GitHub-reference: https://github.com/jwiegley/use-package/issues/439

2017-03-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from raxod502/always-defer-install

	Add use-package-always-defer-install
	GitHub-reference: https://github.com/jwiegley/use-package/issues/443

2017-03-26  Radon Rosborough  <radon.neon@gmail.com>

	Add use-package-always-defer-install

	See https://github.com/jwiegley/use-package/pull/433#issuecomment-289317875

2017-03-19  Radon Rosborough  <radon.neon@gmail.com>

	Fix :after keyword

	Commit [1] broke the functionality of :after (see [2]) due to an
	extraneous quote being added.

	[1]: bd2afa53c7580d23ed8008267b80e1834b6e6600
	[2]: https://github.com/jwiegley/use-package/pull/433#issuecomment-287606553

2017-03-19  John Wiegley  <johnw@newartisans.com>

	Merge pull request from raxod502/defer-install

	[RFC] Support for deferred installation
	GitHub-reference: https://github.com/jwiegley/use-package/issues/433

2017-03-18  Radon Rosborough  <radon.neon@gmail.com>

	Merge remote-tracking branch 'origin/master' into defer-install

	Resolve merge conflicts.

2017-03-18  Radon Rosborough  <radon.neon@gmail.com>

	Update docstring, installation prompt message

	Various improvements for deferred installation

2017-03-08  Radon Rosborough  <radon.neon@gmail.com>

	Get :defer-install completely working, in theory

	 A quoting error has been fixed in `use-package-handler/:defer'.
	 `use-package-install-deferred-package' has been updated to return t
	 if the package was actually installed, and nil otherwise.
	 The fake autoloads generated during deferred installation are
	 doctored so Emacs does not think they were defined in the user's
	 init-file.
	 The docstrings of the fake autoloads have been improved.
	 Arguments and interactivity are now correctly passed to the
	 autoloaded function.
	 The autoload now skips requiring the feature and calling the
	 original function if the user declines to install the package. This
	 prevents unprofessional errors.

2017-03-08  Radon Rosborough  <radon.neon@gmail.com>

	Improve deferred installation mechanism

	This time around, I've gotten rid of the advice on `require' (that was
	never going to work) and instead made `use-package' try to handle
	loading the package at the appropriate time. In particular, when
	deferred installation is active, all the autoloads generated by
	`use-package' are not regular autoloads, but regular functions that
	will install the relevant package, require the relevant feature, and
	only then call the newly defined (autoloaded) function.

	Some smarter logic has been added to make sure things like `:demand'
	play nicely with the autoloading system; see the extensive comment in
	`use-package-handler/:defer-install' for more information on how that
	works.

	There was a section in `use-package-install-deferred-package' which
	referred to a nonexistent variable `use-package--deferred-features';
	that has been removed.

	There is now, in addition to `use-package-ensure-function', a new
	variable called `use-package-pre-ensure-function'. This is intended
	for use by package managers which, unlike package.el, activate
	autoloads package-by-package instead of all at once. Even if a package
	is marked for deferred installation, the user would likely want its
	autoloads activated immediately *if* it was already installed. The
	logic for doing that can now be put in
	`use-package-pre-ensure-function'.

2017-03-08  Radon Rosborough  <radon.neon@gmail.com>

	Merge branch 'generalized-ensure' into defer-install

2017-03-08  Radon Rosborough  <radon.neon@gmail.com>

	Update docstring for use-package-ensure-function

	Now it properly reflects the API changes recently made.

2017-03-08  Radon Rosborough  <radon.neon@gmail.com>

	First cut at :defer-install keyword

	This new keyword, if provided along with a non-nil value, causes the
	action of :ensure to be deferred until "necessary". Package
	installation can be triggered by the user calling the new interactive
	function `use-package-install-deferred-package', or by the feature
	declared by the `use-package' form being required. This latter
	behavior seems to be the simplest way to make sure that package
	installation actually takes place when it needs to, but it requires
	that an advice be added to `require', which may be considered overly
	intrusive. (Also, it's generally considered bad practice for functions
	in Emacs to put advice on other functions in Emacs.) Thus it may make
	sense to add an option or function to explicitly enable this behavior,
	if there does not turn out to be a better way to accomplish deferred
	installation.

	Documentation has not been updated to reflect :defer-install yet.

2017-03-08  Radon Rosborough  <radon.neon@gmail.com>

	Extend capabilities of use-package-ensure-function

	Modify the expected API of `use-package-ensure-function' so that it is
	passed three arguments: the name of the package declared in the
	`use-package' form; the argument passed to `:ensure'; and the current
	`state' plist created by previous handlers. (Previously, it was only
	given a single argument, which was the argument passed to `:ensure',
	or the name of the package declared in the `use-package' form, if the
	former was `t'.

	This allows for more flexibility in the capabilities of the
	`use-package-ensure-function' implementation. For example, its
	behavior can change depending on the values of other keywords, if
	those keywords modify the `state' plist appropriately.

2017-02-18  John Wiegley  <johnw@newartisans.com>

	Revert "Return `t' after calling `eval-after-load'"

	This reverts commit 87a8ff6d693f3cc79ea423ca8c8e0a60b0bc596c.

2017-02-16  John Wiegley  <johnw@newartisans.com>

	Support multiple symbols passed to :after

	The following expressions are now permitted:

	    foo                         ; load after foo is loaded
	    foo bar                     ; load after both foo and bar are loaded
	    :all foo bar                ; same as previous
	    :any foo bar                ; load after either foo or bar is loaded
	    :any (:all foo bar) baz     ; more complex combinations...
	    :any (:all foo bar) (:all baz wow)
	    :all (:any foo bar) (:any baz wow)

	Fixes https://github.com/jwiegley/use-package/issues/283

2017-02-16  John Wiegley  <johnw@newartisans.com>

	:mode and :interpreter can now accept (rx ...) forms

	Fixes https://github.com/jwiegley/use-package/issues/204

2017-02-16  John Wiegley  <johnw@newartisans.com>

	Return `t' after calling `eval-after-load'

	Fixes https://github.com/jwiegley/use-package/issues/174

2017-02-16  John Wiegley  <johnw@newartisans.com>

	Add autoload cookie for use-package-autoload-keymap

	Fixes https://github.com/jwiegley/use-package/issues/337

2017-02-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from justbur/find-form

	Add function use-package-jump-to-package-form
	GitHub-reference: https://github.com/jwiegley/use-package/issues/359

2017-02-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from justbur/imenu3

	Improve imenu support
	GitHub-reference: https://github.com/jwiegley/use-package/issues/356

2017-02-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from raxod502/fix-use-package-defaults

	Fix use-package-defaults
	GitHub-reference: https://github.com/jwiegley/use-package/issues/430

2017-02-13  Radon Rosborough  <radon.neon@gmail.com>

	Fix use-package-defaults

	This patch should address issues https://github.com/jwiegley/use-package/issues/428 and https://github.com/jwiegley/use-package/issues/429. See https://github.com/jwiegley/use-package/issues/426 for
	discussion. In brief, the issue was that use-package-sort-keywords was
	not applied when the predicates in use-package-defaults did not return
	true, when it should have been applied unconditionally.

2017-02-13  Radon Rosborough  <radon.neon@gmail.com>

	Unrevert "Add use-package-defaults"

	This reverts commit 013425edeb1829f5d21514f77d41763347538b14.

2017-02-13  John Wiegley  <johnw@newartisans.com>

	Revert "Add use-package-defaults"

	This reverts commit 3dec23c0860ad297436b9b71b221491ae3790cce.

2017-02-12  John Wiegley  <johnw@newartisans.com>

	Merge pull request from raxod502/use-package-defaults

	Add use-package-defaults
	GitHub-reference: https://github.com/jwiegley/use-package/issues/426

2017-01-16  Radon Rosborough  <radon.neon@gmail.com>

	Add use-package-defaults

	Previously, the :config, :ensure, and :pin keywords had default
	values (dependent on the values of the use-package-always-ensure and
	use-package-always-pin). This change allows the user to customize the
	default values used for those keywords, and add default values for
	their own keywords in a non-hacky way.

	This functionality would be useful for (as an example) the
	quelpa-use-package package, which needs to use an advice to override
	the functionality of :ensure. The same problem prevents adding a
	use-package-always-quelpa variable in any reasonable way, without a
	way to customize the default values of keywords.

2017-01-16  John Wiegley  <johnw@newartisans.com>

	Merge pull request from raxod502/use-package-ensure-function

	Add use-package-ensure-function
	GitHub-reference: https://github.com/jwiegley/use-package/issues/427

2017-01-15  Radon Rosborough  <radon.neon@gmail.com>

	Add use-package-ensure-function

	This allows the user to customize the :ensure keyword by using a
	different package manager than package.el.

2016-12-22  John Wiegley  <johnw@newartisans.com>

	Add new customization option `use-package-always-demand`

	This is equivalent to adding `:demand t` to all `use-package` declarations,
	and has the same semantics as doing so (meaning it can be overridden locally
	using `:defer t` in a declaration).

	Fixes https://github.com/jwiegley/use-package/issues/423

2016-12-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from basil-conto/preface

	Increase :preface priority
	GitHub-reference: https://github.com/jwiegley/use-package/issues/418

2016-12-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsius/outline

	Support outline-minor-mode
	GitHub-reference: https://github.com/jwiegley/use-package/issues/420

2016-12-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsius/bind-later

	Delay decision whether to use eval-after-load until run-time
	GitHub-reference: https://github.com/jwiegley/use-package/issues/419

2016-12-18  Jonas Bernoulli  <jonas@bernoul.li>

	Delay decision whether to use eval-after-load until run-time

	Just because a keymap variable is bound at macro-expansion-time
	doesn't mean that it must be bound at run-time too.

	Change `bind-keys-form', which is used by `bind-keys' and other
	macros, to return a form which delays the decision on whether to
	wrap the binding forms with `eval-after-load' until run-time.

	Fixes https://github.com/jwiegley/use-package/issues/378.

2016-12-17  Jonas Bernoulli  <jonas@bernoul.li>

	Support outline-minor-mode

	In "use-package.el" prefix headings with ";;;" instead of just
	";;".  In "bind-key.el" add the missing ";;; Code:" heading.
	In both libraries set `outline-regexp' to an appropriate value.

2016-12-16  Basil L. Contovounesios  <contovob@tcd.ie>

	Increase :preface priority

	Reconcile order of `use-package-keywords' with the README
	description of `:preface' as occurring before everything but
	`:disabled'.

2016-10-31  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phst/bug398

	Declare package-read-all-archive-contents
	GitHub-reference: https://github.com/jwiegley/use-package/issues/402

2016-10-31  Philipp Stephani  <phst@google.com>

	Declare package-read-all-archive-contents

	Fixes https://github.com/jwiegley/use-package/issues/398

2016-10-31  Philipp Stephani  <phst@google.com>

	Remove tests, which don’t work

	Fixes https://github.com/jwiegley/use-package/issues/399

2016-10-31  Noam Postavsky  <npostavs@gmail.com>

	Don't allow implicit package name arg for binders

	It's unlikely that

	    (use-package foopkg :bind "<some-key>")

	intends to bind <some-key> to 'foopkg command.

2016-10-31  Noam Postavsky  <npostavs@gmail.com>

	Don't allow nil as a mode function

	This means (use-package foopkg :mode (".foo")) will add (".foo"
	. foopkg) into auto-mode-alist instead of the broken (".foo" . nil),
	this is more consistent with the behavior of (use-package foopkg
	:mode (".foo" ".bar")).

2016-10-31  Noam Postavsky  <npostavs@gmail.com>

	Refactor pair normalizers; add tests for them

	This is not a pure refactoring, it also fixes a bug where
	:bind ([keysym] . "string") would actually bind keysym to nil (i.e.,
	unbind it).  It now binds to "string" as expected.

2016-10-31  Noam Postavsky  <npostavs@gmail.com>

	Remove obsolete mplist tests

	The mplist functions were removed in the 2.0
	refactoring (4ae584f3ff0e9bda05420ec3b8598e59374b0899).

2016-10-17  John Wiegley  <johnw@newartisans.com>

	Bump version to 2.3

2016-08-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from appleby/master

	Ensure package-pinned-packages is bound before referencing it.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/376

2016-08-15  Mike Appleby  <mike@app.leby.org>  (tiny change)

	Ensure package-pinned-packages is bound before referencing it

	Add a bound-and-true-p guard to package-pinned-packages before
	referencing it in use-package-ensure-elpa.

	Package pinning was introduced in Emacs 24.4, and hence
	package-pinned-packages in unbound by default in earlier versions.

	Relevant commits:
		 72452b5 Merge pull request https://github.com/jwiegley/use-package/issues/367 from ketbra/master
		 5053f75 Make pin and ensure compatible

	Fixes https://github.com/jwiegley/use-package/issues/375

2016-07-22  John Wiegley  <johnw@newartisans.com>

	Remove the use of a tab

2016-07-22  John Wiegley  <johnw@newartisans.com>

	Merge pull request from ketbra/master

	Update use-package.el
	GitHub-reference: https://github.com/jwiegley/use-package/issues/367

2016-07-21  Matthew Feinberg  <ketbra@users.noreply.github.com>  (tiny change)

	Make pin and ensure compatible

	`:pin` does not work with `:ensure`, because it doesn't add the package to package-pinned-packages until after reading the package archive contents.  This change causes the package archive contents to be reread if the package is pinned and `:ensure` is being used.

2016-07-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/state-noconst

	Some minor fixes
	GitHub-reference: https://github.com/jwiegley/use-package/issues/342

2016-07-17  Noam Postavsky  <npostavs@gmail.com>

	Fix declare-function call: FILE must be a string

	use-package-as-string: use noerror parameter

2016-07-17  Noam Postavsky  <npostavs@gmail.com>

	Don't pass a constant as the state

	for use-package-process-keywords, because the function may modify the
	list object.  Modifying a quoted constant can lead to unexpected side
	effects (e.g. values from previous use-package forms end up in
	subsequent ones).

2016-07-06  John Wiegley  <johnw@newartisans.com>

	Version 2.2

2016-07-05  John Wiegley  <johnw@newartisans.com>

	Merge pull request from justbur/bump-init

	Move :init forms before :after and :demand
	GitHub-reference: https://github.com/jwiegley/use-package/issues/360

2016-06-23  Justin Burkett  <justin@burkett.cc>

	Move :init forms before :after and :demand

	The docstring of use-package says that :init should run before the
	package is loaded but using :after moves the require statement ahead of
	:init when any package specified in :after is already loaded. In the
	following example, in the first case bar-x might get set before or after
	bar is loaded depending on if foo is already loaded at the time, while
	the second case always sets bar-x first.

	(use-package bar
	  :after (foo)
	  :init (setq bar-x 2)
	  :config (bar-mode))

	(use-package bar
	  :init (setq bar-x 2)
	  :config (bar-mode))

	This commit fixes the issue and makes sure that bar-x is set before bar
	is loaded by use-package. Fixes https://github.com/jwiegley/use-package/issues/352.

2016-06-22  Justin Burkett  <justin@burkett.cc>

	Add function use-package-jump-to-package-form

	This is an attempt at resolving https://github.com/jwiegley/use-package/issues/329. The new interactive function
	use-package-jump-to-package-form will prompt with a completing read of
	all known packages. After selecting a package, use-package-find-require
	searches load-history to see where the package was required and then I
	attempt to find the correct use-package form using
	use-package-form-regexp.

	It will fail if the use-package form you are looking for did not
	actually load the package. For example it could be something that is a
	dependency of a library that was already loaded. In some sense this is a
	feature because it is helpful to know that the library was already
	loaded when your use-package form was encountered. It will also fail if
	your use-package declaration doesn't match the regexp used, but this is
	easily adjusted.

2016-06-15  Justin Burkett  <justin@burkett.cc>

	Improve imenu support

	Instead of using defvar for lisp-mode-symbol-regexp, wait until
	lisp-mode is loaded and check for its existence to avoid making
	use-package the place where this variable is declared.

2016-06-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from justbur/imenu2

	Fix imenu support for older versions
	GitHub-reference: https://github.com/jwiegley/use-package/issues/355

2016-06-13  Justin Burkett  <justin@burkett.cc>

	Fix imenu support for older versions

	lisp-mode-symbol-regexp was not defined in Emacs 24.5.

2016-06-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from justbur/imenu

	Add imenu support for use-package forms
	GitHub-reference: https://github.com/jwiegley/use-package/issues/354

2016-06-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from robario/patch-1

	Fix to ignore load error caused via :after
	GitHub-reference: https://github.com/jwiegley/use-package/issues/350

2016-06-13  Justin Burkett  <justin@burkett.cc>

	Add imenu support for use-package forms

	Also add require forms and group both under menu "Package".

2016-06-05  robario  <webmaster@robario.com>  (tiny change)

	Fix to ignore load error caused via :after

2016-04-03  John Wiegley  <johnw@newartisans.com>

	Merge pull request from xuchunyang/fix-package-install

	Mark package as selected with package-install
	GitHub-reference: https://github.com/jwiegley/use-package/issues/336

2016-03-31  Chunyang Xu  <xuchunyang56@gmail.com>

	Mark package as selected with package-install

	Fixes https://github.com/jwiegley/use-package/issues/327

2016-02-27  John Wiegley  <johnw@newartisans.com>

	:map no longer accepts lists; only eval-after-load if necessary

	Fixes https://github.com/jwiegley/use-package/issues/324

2016-02-26  John Wiegley  <johnw@newartisans.com>

	Normalize some error text

2016-02-26  John Wiegley  <johnw@newartisans.com>

	Only printing debug messages if use-package-verbose is `debug'

	Fixes https://github.com/jwiegley/use-package/issues/271

2016-02-26  John Wiegley  <johnw@newartisans.com>

	Merge pull request from ljos/master

	Quote variable in bind-keys*
	GitHub-reference: https://github.com/jwiegley/use-package/issues/325

2016-02-26  John Wiegley  <johnw@newartisans.com>

	Repair :map handling in bind-key.el

	GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/324

2016-02-26  Bjarte Johansen  <bjarte.johansen@gmail.com>

	Quote variable in `bind-keys*'

	* bind-key.el (bind-keys*): `override-global-map' needs to be quoted so
	  the symbol is passed to `bind-keys-form' and not the value.
	GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/323

2016-02-25  John Wiegley  <johnw@newartisans.com>

	Add configuration variable `use-package-check-before-init'

	Fixes https://github.com/jwiegley/use-package/issues/306

2016-02-25  John Wiegley  <johnw@newartisans.com>

	Use `add-to-list' defensively instead of `push'

	GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/293

2016-02-25  John Wiegley  <johnw@newartisans.com>

	Add variable `use-package-always-defer'

	GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/202

2016-02-25  John Wiegley  <johnw@newartisans.com>

	Restore :bind-keymap, it does something special still

	Remove :bind-keymaps, and only apply :map bindings after load

2016-02-25  John Wiegley  <johnw@newartisans.com>

	Support multiples uses of :map with :bind

	GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/121

2016-02-25  John Wiegley  <johnw@newartisans.com>

	Add some variable settings to use-package-tests.el, thanks tarsius

2016-02-25  John Wiegley  <johnw@newartisans.com>

	Merge pull request from alezost/keymap-doc-fix

	Handle the case when keymap has a broken documentation
	GitHub-reference: https://github.com/jwiegley/use-package/issues/223

2016-02-25  John Wiegley  <johnw@newartisans.com>

	Add another `declare'

2016-02-25  John Wiegley  <johnw@newartisans.com>

	Handle :unless correctly

	GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/197

2016-02-09  John Wiegley  <johnw@newartisans.com>

	Add a comment about a recent change

2016-02-09  John Wiegley  <johnw@newartisans.com>

	Merge pull request from waymondo/master

	Allow string values in cons for :bind keywords
	GitHub-reference: https://github.com/jwiegley/use-package/issues/303

2016-02-06  John Wiegley  <johnw@newartisans.com>

	Merge pull request from dudebout/patch-1

	Upper casing Cs corresponding to Ctrl
	GitHub-reference: https://github.com/jwiegley/use-package/issues/316

2016-02-06  John Wiegley  <johnw@newartisans.com>

	Add an autoload cookie for `use-package'

2016-02-05  Nicolas Dudebout  <nicolas.dudebout@gmail.com>

	Upper casing Cs corresponding to Ctrl

	A number of Cs corresponding to Ctrl have been lower cased in comments in eb6b81dfe.

2016-02-04  John Wiegley  <johnw@newartisans.com>

	Merge pull request from thierryvolpiatto/fix_package_install

	When :ensure is used install package as a selected package.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/314

2016-02-04  Thierry Volpiatto  <thierry.volpiatto@gmail.com>

	Ensure package-install support a second argument

	* use-package.el (use-package-ensure-elpa): Do it.

2016-02-04  Thierry Volpiatto  <thierry.volpiatto@gmail.com>

	When :ensure is used install package as a selected package

	Also shutup bytecompiler about package-archive-contents.

	* use-package.el (use-package-ensure-elpa): Add package to selected package
	by using second arg of package install.

2016-01-25  John Wiegley  <johnw@newartisans.com>

	Merge pull request from kovrik/fix-pin-performance

	Do not package-initialize on each :pin
	GitHub-reference: https://github.com/jwiegley/use-package/issues/308

2016-01-21  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phillord/fix/always-pin-typo

	Fix errant variable name.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/312

2016-01-21  Phillip Lord  <phillip.lord@russet.org.uk>

	Fix errant variable name

2016-01-20  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phillord/feature/always-pin

	Add new option `-always-pin'
	GitHub-reference: https://github.com/jwiegley/use-package/issues/310

2016-01-20  Phillip Lord  <phillip.lord@russet.org.uk>

	Add new option `-always-pin'

	`use-package-always-pin' allows a default archive (or manual) to be
	specified for all use-package statements, unless explicitly overridden.

2016-01-19  Ivan Goncharov  <kovrik0@gmail.com>

	Change condition that checks if package has been initialized

2016-01-17  Ivan Goncharov  <kovrik0@gmail.com>

	Do not package-initialize on each :pin

2016-01-12  John Wiegley  <johnw@newartisans.com>

	Merge pull request from kovrik/issue-299

	Move :pin out of macro expansion phase
	GitHub-reference: https://github.com/jwiegley/use-package/issues/302

2016-01-12  John Wiegley  <johnw@newartisans.com>

	Add a missing comma

	Add a PREDICATE option to bind-key, and :filter to `bind-keys'

2016-01-08  Justin Talbott  <justin@waymondo.com>

	allow string values in cons for :bind keywords

	It is possible with `bind-key` and `define-key` (and also `bind-chord`
	and `key-chord-define`) to define a binding to a string's value, i.e:

	``` elisp
	(bind-key "C-;" "the ")
	(bind-chord "^^" "λ")
	```

	This adds an option for `(use-package-normalize-pairs)` that allows
	string values to be given with the `:bind` (and also `:chord`) keywords
	to expand into these definitions.

2016-01-06  John Wiegley  <johnw@newartisans.com>

	Guard against a case where :load-paths is nil

2016-01-05  Ivan Goncharov  <kovrik0@gmail.com>

	Move :pin out of macro expansion phase fixes

	Move :pin out of macro expansion phase

2015-12-20  John Wiegley  <johnw@newartisans.com>

	Use cl-mapcan rather than apply 'nconc; thanks wasamasa

2015-11-12  John Wiegley  <johnw@newartisans.com>

	Merge pull request from kovrik/byte-compile-ensure-fix

	Install packages when byte-compiling (fix by @npostavs)
	GitHub-reference: https://github.com/jwiegley/use-package/issues/285

2015-11-12  Ivan Goncharov  <kovrik0@gmail.com>

	Install packages when byte-compiling (fix by @npostavs)

2015-11-09  John Wiegley  <johnw@newartisans.com>

	Apply a fix from npostavs relating to

	GitHub-reference: https://github.com/jwiegley/use-package/issues/279

2015-11-09  John Wiegley  <johnw@newartisans.com>

	Merge pull request from kovrik/master

	Move :ensure option execution from macro expansion phase to runtime phase
	GitHub-reference: https://github.com/jwiegley/use-package/issues/273

2015-11-05  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phillord/feature/after

	Support for after keyword.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/276

2015-11-04  Phillip Lord  <phillip.lord@russet.org.uk>

	Support for after keyword

	After provides `eval-after-load' functionality for any number of
	features. This helps to avoid deeply nested `use-package' statements.

	Closes https://github.com/jwiegley/use-package/issues/274

2015-11-02  Ivan Goncharov  <kovrik0@gmail.com>

	Move :ensure option from macro expansion phase to runtime phase

2015-09-26  John Wiegley  <johnw@newartisans.com>

	Bump version to 2.1

2015-09-23  John Wiegley  <johnw@newartisans.com>

	Merge pull request from waymondo/extend-bind-handler

	Pass in symbol of bind macro, for more extensible reuse of same handler
	GitHub-reference: https://github.com/jwiegley/use-package/issues/259

2015-09-23  Justin Talbott  <justin@waymondo.com>

	pass in symbol of bind macro, for more extensible reuse of same handler

	related to https://github.com/jwiegley/use-package/issues/258

2015-09-06  John Wiegley  <johnw@newartisans.com>

	Revert "Merge pull request from edvorg/master"

	This reverts commit 38b213c6c382f87b7f6e60d0c97d37f2951c2482, reversing
	changes made to 7d34df4f5dd26b6d8b0899e6508c9af5dedf2dc4.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/247

2015-08-30  Edward Knyshov  <edvorg@gmail.com>

	error handling for use-package

	GitHub-reference: https://github.com/jwiegley/use-package/issues/246

2015-08-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from matklad/master

	fix quotation error
	GitHub-reference: https://github.com/jwiegley/use-package/issues/245

2015-08-17  Aleksey Kladov  <aleksey.kladov@gmail.com>

	fix quotation error

2015-08-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/string-packages

	Re-add support for string package names
	GitHub-reference: https://github.com/jwiegley/use-package/issues/225

2015-08-14  Noam Postavsky  <npostavs@gmail.com>

	Re-add support for string package names

	e.g. (use-package "isearch") rather than (use-package isearch)

2015-08-01  John Wiegley  <johnw@newartisans.com>

	Merge pull request from nickalcock/master

	Support :bind (:map '(...)).
	GitHub-reference: https://github.com/jwiegley/use-package/issues/235

2015-07-31  Nick Alcock  <nick.alcock@oracle.com>

	Support :bind (:map '(...))

	We transform it into (:map foo (...) (...)) in the normalizer, and
	no longer warn about unknown sorts of arg.

2015-06-22  John Wiegley  <johnw@newartisans.com>

	Merge pull request from thomasf/master

	Refresh package.el archives if package is missing.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/210

2015-06-22  Alex Kost  <alezost@gmail.com>

	Handle the case when keymap has a broken documentation

2015-06-11  John Wiegley  <johnw@newartisans.com>

	Merge pull request from killdash9/keymap

	bind-keymap fixes.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/199

2015-06-10  John Wiegley  <johnw@newartisans.com>

	Merge pull request from syl20bnr/fix_hook_injection

	Fix calls to run-hooks for :init and :config injected hooks
	GitHub-reference: https://github.com/jwiegley/use-package/issues/213

2015-05-19  Sylvain Benner  <sylvain.benner@gmail.com>

	Fix calls to run-hooks for :init and :config injected hooks

2015-05-08  Thomas Frössman  <thomasf@jossystem.se>

	Refresh package.el archives if package is missing

2015-04-11  Russell Black  <black.russell@gmail.com>

	bind-keymap fixes

	Override argument no longer ignored.  Not adding keymap to list of
	commands. `eval' no longer appears to be necessary, using direct
	invocation of bind-key*.

2015-03-25  John Wiegley  <johnw@newartisans.com>

	Keymap bindings must be interactive

2015-03-24  John Wiegley  <johnw@newartisans.com>

	Failed to require a package is just a message

	Minor fix to :diminish

2015-03-23  John Wiegley  <johnw@newartisans.com>

	Fix a bug in the :delight support

2015-03-22  John Wiegley  <johnw@newartisans.com>

	Add :delight support, thanks to darkfeline on GitHub

	Fixes https://github.com/jwiegley/use-package/issues/189

2015-03-21  John Wiegley  <johnw@newartisans.com>

	Add new customization use-package-always-ensure

	Fixes https://github.com/jwiegley/use-package/issues/27

2015-03-21  John Wiegley  <johnw@newartisans.com>

	unbind-key now removes key from personal-keybindings

	Fixes https://github.com/jwiegley/use-package/issues/74

2015-03-21  John Wiegley  <johnw@newartisans.com>

	Fix file headers

2015-03-21  John Wiegley  <johnw@newartisans.com>

	Add autoload stanzas to bind-key

	Fixes https://github.com/jwiegley/use-package/issues/33

2015-03-21  John Wiegley  <johnw@newartisans.com>

	Correction to an eval-after-load expansion

2015-03-21  John Wiegley  <johnw@newartisans.com>

	Change use-package to use bind-keys and bind-keys*

	Fixes https://github.com/jwiegley/use-package/issues/129

2015-03-21  John Wiegley  <johnw@newartisans.com>

	Change bind-key* behavior to mimic bind-keys*

	Fixes https://github.com/jwiegley/use-package/issues/148

2015-03-21  John Wiegley  <johnw@newartisans.com>

	Whitespace cleanups

2015-03-21  John Wiegley  <johnw@newartisans.com>

	Allow :map in bind-keys to accept multiple maps

	Fixes https://github.com/jwiegley/use-package/issues/129

2015-03-21  John Wiegley  <johnw@newartisans.com>

	:pin should return `t'

	Modular support appears to be working

2015-03-19  John Wiegley  <johnw@newartisans.com>

	Began work on modular handling of keywords

2015-03-19  John Wiegley  <johnw@newartisans.com>

	Rename use-package-with-elapsed-timer at an internal name

	See https://github.com/jwiegley/use-package/issues/185

2015-03-19  John Wiegley  <johnw@newartisans.com>

	Remove code I did not intend to commit

2015-03-19  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/macroexp-progn

	use-package-progn: replace with macroexp-progn
	GitHub-reference: https://github.com/jwiegley/use-package/issues/186

2015-03-19  John Wiegley  <johnw@newartisans.com>

	Fix some docstrings

2015-03-19  Noam Postavsky  <npostavs@gmail.com>

	use-package-progn: replace with macroexp-progn

2015-03-19  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/name-keymap

	get-binding-description: return keymap symbol
	GitHub-reference: https://github.com/jwiegley/use-package/issues/184

2015-03-19  Noam Postavsky  <npostavs@gmail.com>

	get-binding-description: return keymap symbol

	instead of "#<keymap>".

2015-03-19  John Wiegley  <johnw@newartisans.com>

	Use push instead of add-to-list

	Remove a hack that is not needed anymore

2015-03-18  John Wiegley  <johnw@newartisans.com>

	macroexpand nested uses of use-package in :init and :config

	Wrap the :preface in an eval-and-compile block

	Remove a use of macroexpand

	Make a warning more specific

	More work to silence the byte-compiler

2015-03-17  John Wiegley  <johnw@newartisans.com>

	Other minor improvements for byte-compiling

	Several minor improvements and fixes

	Change some code for consistency's sake

2015-03-17  John Wiegley  <johnw@newartisans.com>

	Merge pull request from killdash9/keymap

	minor fixes to get bind-keymap working in 2.0
	GitHub-reference: https://github.com/jwiegley/use-package/issues/176

2015-03-17  Russell Black  <black.russell@gmail.com>

	minor fixes to get bind-keymap working in 2.0

2015-03-16  John Wiegley  <johnw@newartisans.com>

	Always return t on a successful init-time load

	Fixes https://github.com/jwiegley/use-package/issues/174

2015-03-16  John Wiegley  <johnw@newartisans.com>

	Add to the load-path before the :preface

	Fixes https://github.com/jwiegley/use-package/issues/172

2015-03-16  John Wiegley  <johnw@newartisans.com>

	More fixes related to byte-compilation

	A few changes for byte-compilation

	:defer now accepts an optional number of seconds

	Permit minimal expansion of macro bodies, and other fixes

	Collapse some whitespace

2015-03-16  John Wiegley  <johnw@newartisans.com>

	Allow vectors to be passed to :bind again

	Fixes https://github.com/jwiegley/use-package/issues/166

2015-03-16  John Wiegley  <johnw@newartisans.com>

	Add code to workaround an inefficiency with eval-after-load

	This is currently disabled, as it leads to strange byte-compilation
	errors that need to be tracked down.

2015-03-16  John Wiegley  <johnw@newartisans.com>

	Output Compiling message only if verbose is enabled

	Allow :pin to accept a symbol

2015-03-15  John Wiegley  <johnw@newartisans.com>

	Relax a path normalization check

	Correct an erroneous symbol reference

	Update docstring for :disabled

2015-03-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/eval-after-name

	use--package: eval-after-load name
	GitHub-reference: https://github.com/jwiegley/use-package/issues/168

2015-03-15  John Wiegley  <johnw@newartisans.com>

	Undo an erroneous change

2015-03-15  John Wiegley  <johnw@newartisans.com>

	Add -hook to the injected hooks

	Fixes https://github.com/jwiegley/use-package/issues/161

2015-03-15  John Wiegley  <johnw@newartisans.com>

	Restore an earlier fix to

	Fixes https://github.com/jwiegley/use-package/issues/167
	GitHub-reference: https://github.com/jwiegley/use-package/issues/53

2015-03-15  John Wiegley  <johnw@newartisans.com>

	BREAKING CHANGE: Remove :idle and :idle-priority

	I am removing this feature for now because it can result in a nasty
	inconsistency.  Consider the following definition:

	  (use-package vkill
	    :commands vkill
	    :idle (some-important-configuration-here)
	    :bind ("C-x L" . vkill-and-helm-occur)
	    :init
	    (defun vkill-and-helm-occur ()
	      (interactive)
	      (vkill)
	      (call-interactively #'helm-occur))

	    :config
	    (setq vkill-show-all-processes t))

	If I load my Emacs and wait until the idle timer fires, then this is the
	sequence of events:

	    :init :idle <load> :config

	But if I load Emacs and immediately type C-x L without waiting for the
	idle timer to fire, this is the sequence of events:

	    :init <load> :config :idle

	It's possible that the user could use `featurep` in their idle to test
	for this case, but that's a subtlety I'd rather avoid.

	What I would consider is this: `:idle [N]` is a keyword that simply
	implies `:defer`, with an option number of N to specify a second count.
	After that many seconds, if the package has not yet been loaded by
	autoloading, it will be loaded via the idle timer.

	This approach has the benefit of complete consistency for both the idle
	and the autoloaded cases.  Although, the fact that it implies `:defer`
	means we don't have to consider what it means to add `:idle` behavior to
	a demand-loaded configuration.

2015-03-15  Noam Postavsky  <npostavs@gmail.com>

	use--package: eval-after-load name

	instead of name-string. This prevents triggering by config file names
	that have the same name as the package.

	Reprise of c6d79d2cb40bd141f62eaca6dca47fb2e8e6943f

2015-03-15  John Wiegley  <johnw@newartisans.com>

	Support optional injection of hooks, for Spacemacs

2015-03-15  John Wiegley  <johnw@newartisans.com>

	Add :preface, occurring before everything except :disabled

	This can be used to establish function and variable definitions that
	will 1) make the byte-compiler happy (it won't complain about functions
	whose definitions are unknown because you have them within a guard
	block), and 2) allow you to define code that can be used in an `:if`
	test.

2015-03-15  John Wiegley  <johnw@newartisans.com>

	Some minor code reformatting

	Fix to :ensure normalization

2015-03-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from thomasf/master

	Fix :ensure value interpretation
	GitHub-reference: https://github.com/jwiegley/use-package/issues/163

2015-03-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/warning

	use-package-expand: use display-warning
	GitHub-reference: https://github.com/jwiegley/use-package/issues/162

2015-03-14  Thomas Frössman  <thomasf@jossystem.se>

	Fix :ensure value interpretation

2015-03-14  Noam Postavsky  <npostavs@gmail.com>

	use-package-expand: use display-warning

	instead of with-demoted-errors. This prevents errors from getting lost
	in the *Messages* buffer.

2015-03-14  John Wiegley  <johnw@newartisans.com>

	Begin refactoring for 2.0; NOTE: BREAKING CHANGES

	The major change is that :init is now always performed before loading a
	file, whether loading is deferred or not.  This is a change from before,
	where the semantics of :init varied between demand and defer.  The new
	usage is now entirely consistent.

	Also, because :init and :config now mean "before" and "after", the
	:pre-* and :post-* keywords are gone, as they should no longer be
	necessary.

	Lastly, an effort has been made to make your Emacs start even in the
	presence of use-package configuration failures.  So after this change,
	be sure to check your *Messages* buffer.  Most likely, you will have
	several instances where you are using :init, but should be using :config
	(this was the case for me in a number of places).

2015-03-13  John Wiegley  <johnw@newartisans.com>

	Many stylistics cleanups and simplifications

2015-03-13  John Wiegley  <johnw@newartisans.com>

	Revert "Don't add autoload for existing commands"

	This reverts commit a2b23f8326d06690c8092ecc5e83ba2e4dd3c336.

2015-03-13  John Wiegley  <johnw@newartisans.com>

	Stylistic changes

	Minor style edits

	Minor changes

	Show more informative errors when they occur

2015-01-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsius/master

	Allow using expanded macro without loading feature
	GitHub-reference: https://github.com/jwiegley/use-package/issues/151

2015-01-18  Jonas Bernoulli  <jonas@bernoul.li>

	Allow using expanded macro without loading feature

	In the macro `use-package-with-elapased-timer' use `bound-and-true-p'
	go get the values of the customizable options `use-package-verbose'
	and `use-package-minimum-reported-time'.  This way the library only
	has to be required at compile time, provided these options are not
	actually customized.  If the user has changed the values, then she
	also has to load the library at runtime or the macros fall back to
	the default of doing their job silently.  See https://github.com/jwiegley/use-package/issues/149.

2015-01-04  John Wiegley  <johnw@newartisans.com>

	Merge pull request from killdash9/keymap

	Passing t into keymap function
	GitHub-reference: https://github.com/jwiegley/use-package/issues/145

2015-01-03  Russell Black  <black.russell@gmail.com>

	Passing t into keymap function

2015-01-02  John Wiegley  <johnw@newartisans.com>

	Merge pull request from killdash9/keymap

	:bind-keymap - bind a key prefix to an autoloaded package keymap
	GitHub-reference: https://github.com/jwiegley/use-package/issues/142

2015-01-02  John Wiegley  <johnw@newartisans.com>

	Merge pull request from thiagowfx/patch-1

	fix small typo (key > keymap)
	GitHub-reference: https://github.com/jwiegley/use-package/issues/144

2015-01-02  Thiago Barroso Perrotta  <thiagoperrotta95@gmail.com>

	fix small typo (key > keymap)

2014-12-31  Russell Black  <black.russell@gmail.com>

	:bind-keymap - bind a key prefix to an autoloaded package keymap

2014-12-20  John Wiegley  <johnw@newartisans.com>

	Merge pull request from vermiculus/master

	Do not quote lambda expressions
	GitHub-reference: https://github.com/jwiegley/use-package/issues/140

2014-12-19  Sean Allred  <code@seanallred.com>

	Do not quote lambda expressions

	https://emacs.stackexchange.com/a/3596

	Quoting lambda expressions is at best redundant and at worst
	detrimental; this commit removes all use of the sharp-quote to reduce
	confusion.

2014-12-17  John Wiegley  <johnw@newartisans.com>

	Merge pull request from YoungFrog/fixautoloads

	Don't add autoload for existing commands
	GitHub-reference: https://github.com/jwiegley/use-package/issues/138

2014-12-17  John Wiegley  <johnw@newartisans.com>

	Merge pull request from peterhoeg/master

	Check if an archive is valid when pinning
	GitHub-reference: https://github.com/jwiegley/use-package/issues/137

2014-12-17  Peter Hoeg  <peter@speartail.com>

	Check if package-archives are valid when pinning

2014-12-17  Nicolas Richard  <theonewiththeevillook@yahoo.fr>

	Don't add autoload for existing commands

2014-12-16  Peter Hoeg  <peter@speartail.com>

	pure cleanup

2014-12-16  John Wiegley  <johnw@newartisans.com>

	Merge pull request from peterhoeg/master

	Support for pinning package to archive
	GitHub-reference: https://github.com/jwiegley/use-package/issues/136

2014-12-11  Peter Hoeg  <peter@speartail.com>

	support for pinning package to archive

2014-09-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from Silex/master

	Fix "compiling" typo
	GitHub-reference: https://github.com/jwiegley/use-package/issues/125

2014-09-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from waymondo/master

	Add :bind* keyword for `bind-key*`
	GitHub-reference: https://github.com/jwiegley/use-package/issues/126

2014-09-16  Justin Talbott  <justin@waymondo.com>

	add :bind* keyword for `bind-key*`

2014-09-16  Philippe Vaucher  <philippe.vaucher@gmail.com>

	Fix "compiling" typo

2014-09-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from thomasf/master

	Display which package that has compile errors
	GitHub-reference: https://github.com/jwiegley/use-package/issues/124

2014-09-14  Thomas Frössman  <thomasf@jossystem.se>

	Display which package that has compile errors

2014-09-08  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsius/master

	assume the declare-function macro exists
	GitHub-reference: https://github.com/jwiegley/use-package/issues/123

2014-09-07  Jonas Bernoulli  <jonas@bernoul.li>

	assume the declare-function macro exists

	Since `declare-function' was added in Emacs 23.1 (five years ago), we
	don't need to assert that it is defined.  If the assertion was without
	any problems there would be no harm in keeping it, but unfortunately it
	causes a compile warning.  Because `declare-function' is a macro with
	always expands to `nil' the value of (fboundp 'declare-function) ends
	up being unused.

2014-06-20  John Wiegley  <johnw@newartisans.com>

	Merge pull request from BernardHurley/master

	bind-keys macro changed to allow prefix map to have a menu string.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/112

2014-06-20  Bernard Hurley  <bernard@marcade.biz>

	bind-keys macro changed to allow prefix map to have a menu string

2014-05-31  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/desc-vector

	Avoid putting vector key sequences in personal-keybindings
	GitHub-reference: https://github.com/jwiegley/use-package/issues/110

2014-05-31  Noam Postavsky  <npostavs@gmail.com>

	bind-key: cleanup

2014-05-31  Noam Postavsky  <npostavs@gmail.com>

	bind-key: no vector keys in personal-keybindings

	describe-personal-keybindings requires the key sequences to be stored as
	strings.

2014-05-31  Noam Postavsky  <npostavs@gmail.com>

	personal-keybindings: add docstring

	fix typo in bind-key docstring

2014-05-25  John Wiegley  <johnw@newartisans.com>

	Merge pull request from alezost/bind-keys

	Add bind-keys*
	GitHub-reference: https://github.com/jwiegley/use-package/issues/107

2014-05-25  Alex Kost  <alezost@gmail.com>

	Add bind-keys* macro

2014-05-17  John Wiegley  <johnw@newartisans.com>

	Merge pull request from thomasf/master

	Don't abort compiling package loading fails
	GitHub-reference: https://github.com/jwiegley/use-package/issues/106

2014-05-17  Thomas Frössman  <thomasf@jossystem.se>

	Don't abort compiling if package loading fails

2014-05-08  John Wiegley  <johnw@newartisans.com>

	Revert "Merge pull request from alexko/master"

	This reverts commit 8c04377608bd9b27d6fc6c37990984185563a907, reversing
	changes made to a9ba368fa79e4c15b624de73e30c87c98475d466.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/104

2014-05-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from alexko/master

	if package can't be located, treat it the same way as disabled
	GitHub-reference: https://github.com/jwiegley/use-package/issues/104

2014-05-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from YoungFrog/fix-mult-mode

	Eval backquote earlier and support non-`progn' lists.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/95

2014-05-06  Alex Kosorukoff  <alex@3form.com>

	if package can't be located, treat it the same way as disabled

	There will be a message "Unable to locate <package-name>" in the log.

2014-05-05  Nicolas Richard  <theonewiththeevillook@yahoo.fr>

	Eval backquote earlier and support non-`progn' lists

	* use-package.el (use-package-plist-get): add optional args: `eval-backquote'
	  and `no-progn' to control how arguments are retrieved.
	  (use-package-plist-get-value): remove this function
	  (use-package): replace calls to old function to modified function.

	Fixes issue https://github.com/jwiegley/use-package/issues/94.

	Rationale :
	- use-package-plist-get-value was just another layer for no good reason,
	  and IMO its name was totally unclear.
	- we now eval-as-backquote earlier, allowing constructs like:
	(let ((my-list-of-commands-in-foo '(foo1 foo2)))
	  (use-package foo :commands ,@my-list-of-commands-in-foo))

2014-04-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from YoungFrog/keynameeval

	* bind-key.el (bind-key): don't eval key-name at macro expansion time.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/102

2014-04-14  Nicolas Richard  <theonewiththeevillook@yahoo.fr>

	* bind-key.el (bind-key): don't eval key-name at macro expansion time

2014-04-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/bind-vectors

	bind-keys: bind directly to prefix-map
	GitHub-reference: https://github.com/jwiegley/use-package/issues/101

2014-04-14  Noam Postavsky  <npostavs@gmail.com>

	bind-keys: bind directly to prefix-map

	instead of constructing equivalent key sequence by string concatenation.
	This allows specifying vector key sequences, as in bind-key (since
	f0776c2aeb3f7f0af66597e10a3e4469ca26629d).

2014-04-14  Noam Postavsky  <npostavs@gmail.com>

	bind-keys: ,@(when map (list map)) => map

	Omitting map is same as passing nil.

2014-04-14  Noam Postavsky  <npostavs@gmail.com>

	fix typo

	Actually the reader accepts (list 'a'b) = (list 'a 'b); it still looks
	wrong.

2014-03-17  John Wiegley  <johnw@newartisans.com>

	Merge pull request from YoungFrog/idle-interval

	Add new option use-package-idle-interval.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/99

2014-03-17  Nicolas Richard  <theonewiththeevillook@yahoo.fr>

	Add new option use-package-idle-interval

	* use-package.el (use-package-idle-interval): new defcustom
	(use-package-start-idle-timer): use it
	(use-package-idle-eval): use it
	* README.md: document it

	This addresses bug https://github.com/jwiegley/use-package/issues/77

2014-03-17  John Wiegley  <johnw@newartisans.com>

	Merge pull request from ffevotte/idle-priority

	Add a :idle-priority keyword to change the running order of idle functions
	GitHub-reference: https://github.com/jwiegley/use-package/issues/98

2014-03-17  François Févotte  <fevotte@gmail.com>

	:idle-priority keyword to change the running order of idle functions

	Lower-priority idle functions are run first. Idle functions with no
	specified priority default to 5 and all functions with the same priority
	are run in the order in which they are evaluated, meaning the behavior
	is backwards compatible.

	Updated documentation as well.

2014-03-10  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsius/master

	use-package-with-elapsed-timer: respect option at runtime
	GitHub-reference: https://github.com/jwiegley/use-package/issues/96

2014-03-09  Jonas Bernoulli  <jonas@bernoul.li>

	use-package-font-lock-keywords: add use-package-with-elapsed-timer

	use-package-with-elapsed-timer: add declare indent rule

2014-03-09  Jonas Bernoulli  <jonas@bernoul.li>

	use-package-with-elapsed-timer: respect option at runtime

	Previously the option `use-package-verbose' was consulted at macro
	expansion time, and as a result customizing the option did nothing,
	without also recompiling `use-package.el'.

2014-03-02  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/bind-vector

	let bind-key accept vectors, add docstring
	GitHub-reference: https://github.com/jwiegley/use-package/issues/92

2014-03-01  Noam Postavsky  <npostavs@gmail.com>

	let bind-key accept vectors, add docstring

2014-02-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from Fuco1/variable-col-width

	Add variable column width
	GitHub-reference: https://github.com/jwiegley/use-package/issues/90

2014-02-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from Fuco1/special-form-desc

	Add better descriptions for lambdas, closures, keymaps
	GitHub-reference: https://github.com/jwiegley/use-package/issues/89

2014-02-18  Matus Goljer  <dota.keys@gmail.com>

	Add variable column width

	Add better descriptions for lambdas, closures, keymaps

2014-02-17  John Wiegley  <johnw@newartisans.com>

	Merge pull request from Fuco1/bind-keys

	Add `bind-keys` macro
	GitHub-reference: https://github.com/jwiegley/use-package/issues/87

2014-02-13  Matus Goljer  <dota.keys@gmail.com>

	Add `bind-keys` macro

2014-02-12  Nicolas Richard  <theonewiththeevillook@yahoo.fr>

	Move tests to separate file

2014-02-10  Nicolas Richard  <theonewiththeevillook@yahoo.fr>

	Allow multiple forms after keywords

	* use-package.el (use-package-mplist-get):
	(use-package-plist-get):
	(use-package-mplist-keys): new functions

	(plist-get-value):
	(use-package): use new functions

	(plist-keys): remove function

	The idea is to allow a modified kind of plist where keys are all
	keywords that appear in the list, and values are the intermediary
	elements. If a keyword is present but it's another keyword just after it
	(like (use-package :defer :config (setq foo 'bar))), its associated
	value will be t. If a keyword is not present, its value associated value
	will be nil. Otherwise the value will be the list of elements between
	the keyword and the next keyword.

2014-02-05  Adam Spiers  <emacs@adamspiers.org>

	stop describe-personal-keybindings adding trailing space

	When emacs is configured to highlight trailing whitespace,
	the *Personal Keybindings* buffer looked pretty ugly.
	This fixes that.

2014-01-06  John Wiegley  <johnw@newartisans.com>

	Merge pull request from aspiers/best-practices

	Start addressing some of @jaalto's submitted issues.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/79

2014-01-06  Adam Spiers  <emacs@adamspiers.org>

	fix bind-key URL (fixes)

	Also makes a start on https://github.com/jwiegley/use-package/issues/32.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/58

2014-01-06  Adam Spiers  <emacs@adamspiers.org>

	add 'use-package-' prefix to 'with-elapsed-timer'

	Fixes https://github.com/jwiegley/use-package/issues/35.

2014-01-06  John Wiegley  <johnw@newartisans.com>

	Merge pull request from aspiers/hyperlink-all-bindings

	hyperlink functions in Comments column
	GitHub-reference: https://github.com/jwiegley/use-package/issues/76

2014-01-06  John Wiegley  <johnw@newartisans.com>

	Merge pull request from aspiers/docs

	Synchronize docs and then remove one copy to prevent future issues.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/78

2014-01-06  Adam Spiers  <emacs@adamspiers.org>

	fix DRY violation by only having documentation in one place

	The documentation in README.md was previously identical to that
	in the Commentary section of use-package.el, modulo the following
	differences:

	  - No elisp comment ";; " prefix
	  - Code blocks indented 4 columns not 2, as required by Markdown
	  - Elisp symbols marked in backtick delimiters for monospace, not
	    emacs backtick/forward tick pairs.

	Unfortunately due to this duplication, sometimes only one of the
	two files got updated, so they got out of sync.  With us all being
	human, this is likely to continue to happen as long as the
	duplication exists ;-)  Therefore since most users are likely to
	encounter README.md before the elisp, and bearing in mind that
	Markdown is a much more flexible format for documentation than
	elisp comments (richer formatting, can be exported to numerous
	other formats etc.), it is better to replace the docs in
	use-package.el with a pointer to the README.md.

2014-01-04  Adam Spiers  <emacs@adamspiers.org>

	hyperlink functions in Comments column

	Previously, only the functions in the Command column were hyper-linked.
	Also clarify the meaning of the "was" entries in the Comments column.

2013-12-16  John Wiegley  <johnw@newartisans.com>

	Merge pull request from aspiers/short-mode

	allow :mode and :interpreter to accept a string
	GitHub-reference: https://github.com/jwiegley/use-package/issues/73

2013-12-16  Adam Spiers  <emacs@adamspiers.org>

	allow :mode and :interpreter to accept a string

	Fixes https://github.com/jwiegley/use-package/issues/72.

2013-12-09  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsius/defun

	use-package: use defun as lisp-indent-function
	GitHub-reference: https://github.com/jwiegley/use-package/issues/69

2013-12-09  Jonas Bernoulli  <jonas@bernoul.li>

	use-package: use defun as lisp-indent-function

	When `use-package' is called with only one keyword it is useful to
	write:

	(use-package foo :init
	  (progn
	    ... long lines ...))

	instead of

	(use-package foo
	  :init (progn
	    ... *too* long lines ...))

	or

	(use-package foo
	  :init
	  (progn
	    ... long lines ...))

	Even when there are multiple keywords or when one never wants to format
	the calls to `use-package' as in the first example the use of `defun'
	does not really pose a problem.

2013-12-04  John Wiegley  <johnw@newartisans.com>

	Add a :demand directive, to override deferred loading ()

	GitHub-reference: https://github.com/jwiegley/use-package/issues/65

2013-12-04  John Wiegley  <johnw@newartisans.com>

	fboundp is a function, not a variable

	Fixes https://github.com/jwiegley/use-package/issues/68

2013-12-04  John Wiegley  <johnw@newartisans.com>

	Merge pull request from dabrahams/patch-1

	Backward compatibility with emacs-22.1
	GitHub-reference: https://github.com/jwiegley/use-package/issues/67

2013-12-02  Dave Abrahams  <dave@boostpro.com>

	Backward compatibility with emacs-22.1

	This change supports the emacs that ships with MacOS X, the last version not encumbered by GPLv3.

2013-12-02  John Wiegley  <johnw@newartisans.com>

	Default use-package-verbose to nil

2013-11-05  John Wiegley  <johnw@newartisans.com>

	Merge pull request from Silex/master

	Remove el-get support
	GitHub-reference: https://github.com/jwiegley/use-package/issues/64

2013-11-05  Philippe Vaucher  <philippe.vaucher@gmail.com>

	Remove el-get support

2013-10-28  John Wiegley  <johnw@newartisans.com>

	Merge pull request from aethanyc/add-missing-keyword

	Add :pre-load to use-package-keywords
	GitHub-reference: https://github.com/jwiegley/use-package/issues/62

2013-10-25  Ting-Yu Lin  <aethanyc@gmail.com>

	Add :pre-load to use-package-keywords

	The :pre-load keyword cannot be used unless it is in
	`use-package-keywords' list.

2013-10-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from PhilHudson/master

	Properly enable runtime dependency for :idle stanza (issue https://github.com/jwiegley/use-package/issues/60)
	GitHub-reference: https://github.com/jwiegley/use-package/issues/61

2013-10-15  Phil Hudson  <phil.hudson@iname.com>

	Properly enable runtime dependency for :idle stanza (issue)

	See issue https://github.com/jwiegley/use-package/issues/60.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/60

2013-10-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/comma

	remove extra comma (added by 026c46c)
	GitHub-reference: https://github.com/jwiegley/use-package/issues/59

2013-10-14  Noam Postavsky  <npostavs@gmail.com>

	remove extra comma (added by 026c46c)

2013-10-12  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/cleanup

	Cleanup
	GitHub-reference: https://github.com/jwiegley/use-package/issues/57

2013-10-12  Noam Postavsky  <npostavs@gmail.com>

	let with-elapsed-timer return last form

	make `with-elapsed-timer' hygienic

	with-elapsed-timer: only check verbosity once

2013-10-12  Noam Postavsky  <npostavs@gmail.com>

	remove after-init-hook for override-global-mode

	The INIT-VALUE argument to define-minor-mode is t, so it's enabled by
	default.

2013-10-12  Noam Postavsky  <npostavs@gmail.com>

	macroexpand not needed

	Since lambda thunking replaced quoting in a76d167.

	To see why, observe that cases 3 and 4 disassemble to identical code.
	The difference between cases 1 and 2 shows why the macroexpand was
	needed originally.

	(defmacro test-quote (name-string)
	  `(eval-after-load "foo"
	     `(with-elapsed-timer ,(format "Configuring package %s" name-string)
	        (message "test-quote"))))

	(defmacro test-expand-quote (name-string)
	  `(eval-after-load "foo"
	     ,(macroexpand-all
	       `(with-elapsed-timer ,(format "Configuring package %s" name-string)
	          (message "test-expand-quote")))))

	(defmacro test-lambda (name-string)
	  `(eval-after-load "foo"
	     `(,(lambda ()
	          (with-elapsed-timer ,(format "Configuring package %s" name-string)
	            (message "test-lambda"))))))

	(defmacro test-expand-lambda (name-string)
	  `(eval-after-load "foo"
	     `(,(lambda ()
	          ,(macroexpand-all
	            `(with-elapsed-timer ,(format "Configuring package %s" name-string)
	               (message "test-lambda")))))))

	(disassemble (lambda () (test-quote "testing...")))
	(disassemble (lambda () (test-expand-quote "testing...")))
	(disassemble (lambda () (test-lambda "testing...")))
	(disassemble (lambda () (test-expand-lambda "testing...")))

2013-10-12  Noam Postavsky  <npostavs@gmail.com>

	cl not needed since flet was removed in 82903da

2013-10-07  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phillord/first-keyword

	Add a ":first" keyword for those occasions that it's necessary.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/42

2013-09-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/quasiquote

	Quasiquote
	GitHub-reference: https://github.com/jwiegley/use-package/issues/56

2013-09-25  Noam Postavsky  <npostavs@gmail.com>

	use plist-get-value for all non-sexp args

2013-09-25  Noam Postavsky  <npostavs@gmail.com>

	plist-get-value treats arg as backquoted

	This allows use of variables or even arbitrary expressions to construct
	use-package arguments:

	(use-package some-package
	  :mode ,mode-spec
	  :bind (,binding
	         ,@more-bindings
	         ,@(cl-loop for i from ?a to ?z
	                    collect `(,(string i) . nifty-function))))

2013-09-25  John Wiegley  <johnw@newartisans.com>

	Merge pull request from dudebout/fixes-

	Removes `plist-get-sexp`
	GitHub-reference: https://github.com/jwiegley/use-package/issues/55
	GitHub-reference: https://github.com/jwiegley/use-package/issues/54

2013-09-25  Nicolas Dudebout  <nicolas.dudebout@gmail.com>

	Removes `plist-get-sexp`

	This function was not working as advertised.
	Then `funcall` was evaluated too early and all the benefits of late evaluation for autoloads was lost.
	Furthermore, this function was not really needed in the first place:

	```
	(use-package foo
	  :config my-foo-function)
	```

	can easily be replaced by the following:

	```
	(use-package foo
	  :config (my-foo-function))
	```

2013-09-24  John Wiegley  <johnw@newartisans.com>

	Merge pull request from dudebout/variable-and-function-support

	Enables using variables and functions as arguments
	GitHub-reference: https://github.com/jwiegley/use-package/issues/54

2013-09-24  Nicolas Dudebout  <nicolas.dudebout@gmail.com>

	Enables using variables and functions as arguments

	This change an extra level on indirection for two cases:

	+ when an association or an alist is required, it is possible to pass a
	variable containing an association or an alist
	+ when a sexp to be evaluated is required, it is possible to pass a
	function instead

2013-09-17  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/eval-after-name

	pass name (not name-string) to eval-after-load
	GitHub-reference: https://github.com/jwiegley/use-package/issues/53

2013-09-16  Noam Postavsky  <npostavs@gmail.com>

	pass name (not name-string) to eval-after-load

	Fixes https://github.com/jwiegley/use-package/issues/52: the :config block would be triggered when loading a config
	file with the same name as the package and again when loading the
	package itself.

2013-09-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from aethanyc/fix-highlight

	Fix highlight use-package for Emacs snapshot
	GitHub-reference: https://github.com/jwiegley/use-package/issues/49

2013-09-13  Ting-Yu Lin  <aethanyc@gmail.com>

	Fix highlight use-package for Emacs snapshot

	The commit 57f80d4 fixed the highlight by following the regexp as for
	require. However in Emacs truck, it only highlights first part of the
	package name.

	This change follows the regexp for require on emacs truck. See line
	2327 on font-lock.el in the following patch.
	https://bzr.savannah.gnu.org/lh/emacs/trunk/revision/111821

2013-09-04  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/hilite-redux

	highlight use-package before typing package name
	GitHub-reference: https://github.com/jwiegley/use-package/issues/47

2013-09-04  John Wiegley  <johnw@newartisans.com>

	Merge pull request from aethanyc/improve-output-buffer

	Improve (describe-personal-keybindings) output
	GitHub-reference: https://github.com/jwiegley/use-package/issues/48

2013-09-04  Ting-Yu Lin  <aethanyc@gmail.com>

	Improve (describe-personal-keybindings) output

	Create *Personal Keybindings* by with-output-to-temp-buffer. It
	redirects standard output to the buffer and display it in help mode. So
	we can get help mode keybindings such as "q" for free.

	Quote the command-desc output so that it is made into a hyperlink.

2013-09-03  Noam Postavsky  <npostavs@gmail.com>

	highlight use-package before typing package name

	This follow the same pattern as the highlighting for provide and require
	from `lisp-font-lock-keywords-2' in font-lock.el

2013-08-16  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/master

	also check `byte-compile-current-file' for compile time loads, fixes issue https://github.com/jwiegley/use-package/issues/44
	GitHub-reference: https://github.com/jwiegley/use-package/issues/45

2013-08-15  Noam Postavsky  <npostavs@gmail.com>

	also check `byte-compile-current-file' for compile time loads, fixes issue

	`eval-when-compile' is really `eval-when-macroexpand' which includes
	loading from source
	GitHub-reference: https://github.com/jwiegley/use-package/issues/44

2013-08-15  Phillip Lord  <phillip.lord@russet.org.uk>

	Changed :first to :pre-load

	Updated and extended documentation.

2013-08-13  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/master

	Byte compilation, fixes for https://github.com/jwiegley/use-package/issues/29 and https://github.com/jwiegley/use-package/issues/30
	GitHub-reference: https://github.com/jwiegley/use-package/issues/43

2013-08-13  Noam Postavsky  <npostavs@gmail.com>

	use lambda around deferred :config forms to compile them, fixes issue

	GitHub-reference: https://github.com/jwiegley/use-package/issues/30

2013-08-13  Noam Postavsky  <npostavs@gmail.com>

	use `eval-when-compile' for loading package at compile time, fixes issue

	GitHub-reference: https://github.com/jwiegley/use-package/issues/29

2013-08-13  Phillip Lord  <phillip.lord@russet.org.uk>

	Add a ":first" keyword for those occasions that it's necessary

2013-08-12  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/master

	refine use-package highlighting regexp
	GitHub-reference: https://github.com/jwiegley/use-package/issues/41

2013-08-11  Noam Postavsky  <npostavs@gmail.com>

	refine use-package highlighting regexp

2013-07-28  John Wiegley  <johnw@newartisans.com>

	Merge pull request from purcell/patch-2

	Fix initial line to satisfy package.el
	GitHub-reference: https://github.com/jwiegley/use-package/issues/40

2013-07-28  Steve Purcell  <steve@sanityinc.com>

	Fix initial line to satisfy package.el

2013-07-03  Phil Hudson  <phil.hudson@iname.com>

	Validate keywords. Error if any keyword is unrecognized

	Conflicts:
		use-package.el

2013-06-26  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phillord/ensure-doc

	Ensure doc
	GitHub-reference: https://github.com/jwiegley/use-package/issues/37

2013-06-26  Phillip Lord  <phillip.lord@russet.org.uk>

	Added documentation to use-package macro

	Documentation added for :ensure keyword

2013-05-15  John Wiegley  <johnw@newartisans.com>

	Merge pull request from milkypostman/master

	package header should be the full filename + ext
	GitHub-reference: https://github.com/jwiegley/use-package/issues/28

2013-05-15  Donald Curtis  <dcurtis@milkbox.net>

	package header should, hold, sold be the full filename + ext

	this fixes a bug in using `(package-buffer-info)`

2013-04-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsius/font-lock

	fontify use-package form
	GitHub-reference: https://github.com/jwiegley/use-package/issues/25

2013-04-27  John Wiegley  <johnw@newartisans.com>

	Merge pull request from tarsius/master

	some small cleanups
	GitHub-reference: https://github.com/jwiegley/use-package/issues/24

2013-04-27  Jonas Bernoulli  <jonas@bernoul.li>

	fontify use-package form

	add dots; cleanup whitespace

	quiet byte-compiler; ensure package.el is loaded

2013-04-27  Jonas Bernoulli  <jonas@bernoul.li>

	don't use obsolete flet

	Unfortunately there isn't a proper dynamically scoped
	replacement, so we have to resort to using funcall.

2013-04-27  Jonas Bernoulli  <jonas@bernoul.li>

	enforce use of spaces for indentation

2013-04-23  John Wiegley  <johnw@newartisans.com>

	Merge pull request from purcell/patch-1

	Add Package-Requires header for ELPA installations
	GitHub-reference: https://github.com/jwiegley/use-package/issues/22

2013-04-23  Steve Purcell  <steve@sanityinc.com>

	Add Package-Requires header for ELPA installations

2013-04-16  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/easy-diminish

	needed extra layer of nesting for diminish calls
	GitHub-reference: https://github.com/jwiegley/use-package/issues/21

2013-04-16  Noam Postavsky  <npostavs@gmail.com>

	needed extra layer of nesting for diminish calls

2013-04-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/easy-diminish

	let :diminish "string" guess correct mode symbol
	GitHub-reference: https://github.com/jwiegley/use-package/issues/20

2013-04-14  John Wiegley  <johnw@newartisans.com>

	Merge pull request from npostavs/bind-override

	let bind-key* override minor modes with emulation-mode-map-alists
	GitHub-reference: https://github.com/jwiegley/use-package/issues/19

2013-04-14  Noam Postavsky  <npostavs@gmail.com>

	let :diminish "string" guess correct mode symbol

2013-04-13  Noam Postavsky  <npostavs@gmail.com>

	let bind-key* override minor modes with emulation-mode-map-alists

2013-03-23  John Wiegley  <johnw@newartisans.com>

	Merge pull request from PhilHudson/master

	Macro expansion redux
	GitHub-reference: https://github.com/jwiegley/use-package/issues/17

2013-03-23  Phil Hudson  <phil.hudson@iname.com>

	Runtime client code independence redux

	Tweak to previous fix for expanding macros correctly at code-planting time. Specifically, eval `use-package-minimum-reported-time' at code-planting time not at runtime (which would require use-package.el to be loaded first).

2013-02-18  John Wiegley  <johnw@newartisans.com>

	Corrected a typo

2013-02-12  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phillord/master

	Support for idle loading of packages
	GitHub-reference: https://github.com/jwiegley/use-package/issues/16

2013-02-12  Phillip Lord  <phillip.lord@russet.org.uk>

	Merge branch 'master' of https://github.com/jwiegley/use-package

2013-02-12  Phillip Lord  <phillip.lord@russet.org.uk>

	idle initiation of packages

	A new feature which adds support for idle startup and loading of packages.

2013-02-06  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phillord/master

	Load time display option.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/15

2013-02-05  Phillip Lord  <phillip.lord@russet.org.uk>

	Added minimum load time display option

	Makes the minimum load time before use-package displays
	a message a customizable option.

2013-01-28  John Wiegley  <johnw@newartisans.com>

	Merge pull request from bdd/master

	Remove trailing whitespace
	GitHub-reference: https://github.com/jwiegley/use-package/issues/14

2013-01-28  Berk D. Demir  <bdd@mindcast.org>

	Cleanup trailing whitespace

	Just `M-x delete-trailing-whitespace' on use-package.el

2013-01-23  John Wiegley  <johnw@newartisans.com>

	Merge pull request from PhilHudson/macroexpand

	Macroexpand quoted eval-after-load block early
	GitHub-reference: https://github.com/jwiegley/use-package/issues/13

2013-01-23  Phil Hudson  <phil.hudson@iname.com>

	Macroexpand quoted eval-after-load block early

	The main `use-package' macro incorrectly planted code containing a call to the `with-elapsed-timer' macro in a quoted block to be run by `eval-after-load'. If package use-package was not loaded at runtime, the block would error saying correctly that `with-elapsed-timer' is undefined. This mod correctly macroexpands the block at code generation time.

2013-01-18  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phillord/master

	Better support for ELPA.
	GitHub-reference: https://github.com/jwiegley/use-package/issues/11

2013-01-18  Phillip Lord  <phillip.lord@russet.org.uk>

	Support packages where autoload and elpa name are different

	Some packages such as ECB already provide an autoload file,
	so it is this that use-package needs to require. However,
	the ELPA name is ecb. This commit allows ensure to take an
	argument (other than t).

2013-01-17  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phillord/master

	Inline documentation
	GitHub-reference: https://github.com/jwiegley/use-package/issues/10

2013-01-17  Phillip Lord  <phillip.lord@russet.org.uk>

	Documentation for the use-package macro

2013-01-17  Phillip Lord  <phillip.lord@russet.org.uk>

	Reverting "Documentation for the use-package macro."

	Revert "Documentation for the use-package macro."

	This reverts commit abc0ebc92dc1cf9ef9adfe133d0b30bf7382b65c.

2013-01-17  Phillip Lord  <phillip.lord@russet.org.uk>

	Documentation for the use-package macro

2013-01-12  John Wiegley  <johnw@newartisans.com>

	Merge pull request from phillord/master

	ELPA support
	GitHub-reference: https://github.com/jwiegley/use-package/issues/9

2012-12-31  Phillip Lord  <phillip.lord@russet.org.uk>

	ELPA package support

2012-11-20  John Wiegley  <johnw@newartisans.com>

	Merge pull request from PhilHudson/master

	Support optional diminish replacement string parameter using conses
	GitHub-reference: https://github.com/jwiegley/use-package/issues/4

2012-11-20  Phil Hudson  <phil.hudson@iname.com>

	Support diminishing to a replacement string as well as to nothing

	`diminish' accepts an optional second argument, a replacement string. This change supports all the following arguments to ':diminish':

	* package
	* (package . "pkg")
	* (package1 package2)
	* ((package1 . "p1") (package2 . "p2))

	The second and fourth formats are new with this change.

2012-07-30  John Wiegley  <johnw@newartisans.com>

	Use-package now accepts function as argument

2012-07-11  John Wiegley  <johnw@newartisans.com>

	Only use user-site-lisp-directory if defined

2012-06-26  John Wiegley  <johnw@newartisans.com>

	Correct return value from with-elapsed-timer

2012-06-22  John Wiegley  <johnw@newartisans.com>

	More updates to support el-get

	Byte-compilation related fix

2012-06-21  John Wiegley  <johnw@newartisans.com>

	Added :pre-init

2012-06-20  John Wiegley  <johnw@newartisans.com>

	Establish autoloads after :init

2012-06-17  John Wiegley  <johnw@newartisans.com>

	Added :mode and :interpreter keywords

	Add a note about how to use :load-path

	If :load-path is absolute, don't expand it

	Die typos, die

	Fixed a typo

	Minor reformatting

	Minor grammatical nit

	Integrated support for working with el-get

	Make use-package-verbose customizable

	Have loading timer include time to require

	Fixed a typo in bind-key.el

	README and other updates

2022-04-04  Eli Zaretskii  <eliz@gnu.org>

	* Version 28.1 released.

2022-04-03  Eli Zaretskii  <eliz@gnu.org>

	Bump Emacs version to 28.1

	* README:
	* configure.ac:
	* nt/README.W32:
	* msdos/sed2v2.inp: Bump Emacs version to 28.1

This file records repository revisions from
commit f2ae39829812098d8269eafbc0fcb98959ee5bb7 (exclusive) to
commit 1cda0967b4d3c815fc610794ad6a8fc2b913a3c5 (inclusive).
See ChangeLog.3 for earlier changes.

;; Local Variables:
;; coding: utf-8
;; End:

  Copyright (C) 2022-2025 Free Software Foundation, Inc.

  This file is part of GNU Emacs.

  GNU Emacs is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  GNU Emacs is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
